unquote and unquote-splicing can split multiple expressions
authorAndy Wingo <wingo@pobox.com>
Tue, 8 Feb 2011 20:38:57 +0000 (21:38 +0100)
committerAndy Wingo <wingo@pobox.com>
Tue, 8 Feb 2011 20:38:57 +0000 (21:38 +0100)
* module/ice-9/psyntax.scm (quasiquote): Import new definition from
  upstream psyntax, to allow unquote and unquote-splicing to take
  multiple arguments.
  (unquote, unquote-splicing): Adapt to not require a particular syntax
  form.

* module/ice-9/psyntax-pp.scm: Regenerated.

module/ice-9/psyntax-pp.scm
module/ice-9/psyntax.scm

index 70f7370..207e72c 100644 (file)
                                                   (lambda (#{x\ 3744}#
                                                            #{ids\ 3745}#)
                                                     (values
-                                                      (list->vector
-                                                        (cons 'each+
-                                                              (cons #{x\ 3744}#
-                                                                    (cons (reverse
-                                                                            #{ys\ 3740}#)
-                                                                          '(())))))
+                                                      (vector
+                                                        'each+
+                                                        #{x\ 3744}#
+                                                        (reverse #{ys\ 3740}#)
+                                                        '())
                                                       #{ids\ 3745}#))))))
                                           #{tmp\ 3726}#)
                                         (let ((#{tmp\ 3749}#
     'quasiquote
     'macro
     (letrec*
-      ((#{quasicons\ 4369}#
-         (lambda (#{x\ 4373}# #{y\ 4374}#)
-           (let ((#{tmp\ 4378}# (list #{x\ 4373}# #{y\ 4374}#)))
-             (let ((#{tmp\ 4379}#
-                     ($sc-dispatch #{tmp\ 4378}# '(any any))))
-               (if #{tmp\ 4379}#
+      ((#{quasi\ 4366}#
+         (lambda (#{p\ 4379}# #{lev\ 4380}#)
+           (let ((#{tmp\ 4383}# #{p\ 4379}#))
+             (let ((#{tmp\ 4384}#
+                     ($sc-dispatch
+                       #{tmp\ 4383}#
+                       '(#(free-id
+                           #(syntax-object
+                             unquote
+                             ((top)
+                              #(ribcage () () ())
+                              #(ribcage
+                                #(p lev)
+                                #((top) (top))
+                                #("i4381" "i4382"))
+                              #(ribcage
+                                (emit quasivector
+                                      quasilist*
+                                      quasiappend
+                                      quasicons
+                                      vquasi
+                                      quasi)
+                                ((top) (top) (top) (top) (top) (top) (top))
+                                ("i4377"
+                                 "i4375"
+                                 "i4373"
+                                 "i4371"
+                                 "i4369"
+                                 "i4367"
+                                 "i4365")))
+                             (hygiene guile)))
+                         any))))
+               (if #{tmp\ 4384}#
+                 (@apply
+                   (lambda (#{p\ 4386}#)
+                     (if (= #{lev\ 4380}# 0)
+                       (list '#(syntax-object
+                                "value"
+                                ((top)
+                                 #(ribcage #(p) #((top)) #("i4385"))
+                                 #(ribcage () () ())
+                                 #(ribcage
+                                   #(p lev)
+                                   #((top) (top))
+                                   #("i4381" "i4382"))
+                                 #(ribcage
+                                   (emit quasivector
+                                         quasilist*
+                                         quasiappend
+                                         quasicons
+                                         vquasi
+                                         quasi)
+                                   ((top) (top) (top) (top) (top) (top) (top))
+                                   ("i4377"
+                                    "i4375"
+                                    "i4373"
+                                    "i4371"
+                                    "i4369"
+                                    "i4367"
+                                    "i4365")))
+                                (hygiene guile))
+                             #{p\ 4386}#)
+                       (#{quasicons\ 4370}#
+                         '(#(syntax-object
+                             "quote"
+                             ((top)
+                              #(ribcage #(p) #((top)) #("i4385"))
+                              #(ribcage () () ())
+                              #(ribcage
+                                #(p lev)
+                                #((top) (top))
+                                #("i4381" "i4382"))
+                              #(ribcage
+                                (emit quasivector
+                                      quasilist*
+                                      quasiappend
+                                      quasicons
+                                      vquasi
+                                      quasi)
+                                ((top) (top) (top) (top) (top) (top) (top))
+                                ("i4377"
+                                 "i4375"
+                                 "i4373"
+                                 "i4371"
+                                 "i4369"
+                                 "i4367"
+                                 "i4365")))
+                             (hygiene guile))
+                           #(syntax-object
+                             unquote
+                             ((top)
+                              #(ribcage #(p) #((top)) #("i4385"))
+                              #(ribcage () () ())
+                              #(ribcage
+                                #(p lev)
+                                #((top) (top))
+                                #("i4381" "i4382"))
+                              #(ribcage
+                                (emit quasivector
+                                      quasilist*
+                                      quasiappend
+                                      quasicons
+                                      vquasi
+                                      quasi)
+                                ((top) (top) (top) (top) (top) (top) (top))
+                                ("i4377"
+                                 "i4375"
+                                 "i4373"
+                                 "i4371"
+                                 "i4369"
+                                 "i4367"
+                                 "i4365")))
+                             (hygiene guile)))
+                         (#{quasi\ 4366}#
+                           (list #{p\ 4386}#)
+                           (1- #{lev\ 4380}#)))))
+                   #{tmp\ 4384}#)
+                 (let ((#{tmp\ 4387}#
+                         ($sc-dispatch
+                           #{tmp\ 4383}#
+                           '(#(free-id
+                               #(syntax-object
+                                 quasiquote
+                                 ((top)
+                                  #(ribcage () () ())
+                                  #(ribcage
+                                    #(p lev)
+                                    #((top) (top))
+                                    #("i4381" "i4382"))
+                                  #(ribcage
+                                    (emit quasivector
+                                          quasilist*
+                                          quasiappend
+                                          quasicons
+                                          vquasi
+                                          quasi)
+                                    ((top) (top) (top) (top) (top) (top) (top))
+                                    ("i4377"
+                                     "i4375"
+                                     "i4373"
+                                     "i4371"
+                                     "i4369"
+                                     "i4367"
+                                     "i4365")))
+                                 (hygiene guile)))
+                             any))))
+                   (if #{tmp\ 4387}#
+                     (@apply
+                       (lambda (#{p\ 4389}#)
+                         (#{quasicons\ 4370}#
+                           '(#(syntax-object
+                               "quote"
+                               ((top)
+                                #(ribcage #(p) #((top)) #("i4388"))
+                                #(ribcage () () ())
+                                #(ribcage
+                                  #(p lev)
+                                  #((top) (top))
+                                  #("i4381" "i4382"))
+                                #(ribcage
+                                  (emit quasivector
+                                        quasilist*
+                                        quasiappend
+                                        quasicons
+                                        vquasi
+                                        quasi)
+                                  ((top) (top) (top) (top) (top) (top) (top))
+                                  ("i4377"
+                                   "i4375"
+                                   "i4373"
+                                   "i4371"
+                                   "i4369"
+                                   "i4367"
+                                   "i4365")))
+                               (hygiene guile))
+                             #(syntax-object
+                               quasiquote
+                               ((top)
+                                #(ribcage #(p) #((top)) #("i4388"))
+                                #(ribcage () () ())
+                                #(ribcage
+                                  #(p lev)
+                                  #((top) (top))
+                                  #("i4381" "i4382"))
+                                #(ribcage
+                                  (emit quasivector
+                                        quasilist*
+                                        quasiappend
+                                        quasicons
+                                        vquasi
+                                        quasi)
+                                  ((top) (top) (top) (top) (top) (top) (top))
+                                  ("i4377"
+                                   "i4375"
+                                   "i4373"
+                                   "i4371"
+                                   "i4369"
+                                   "i4367"
+                                   "i4365")))
+                               (hygiene guile)))
+                           (#{quasi\ 4366}#
+                             (list #{p\ 4389}#)
+                             (1+ #{lev\ 4380}#))))
+                       #{tmp\ 4387}#)
+                     (let ((#{tmp\ 4390}#
+                             ($sc-dispatch #{tmp\ 4383}# '(any . any))))
+                       (if #{tmp\ 4390}#
+                         (@apply
+                           (lambda (#{p\ 4393}# #{q\ 4394}#)
+                             (let ((#{tmp\ 4395}# #{p\ 4393}#))
+                               (let ((#{tmp\ 4396}#
+                                       ($sc-dispatch
+                                         #{tmp\ 4395}#
+                                         '(#(free-id
+                                             #(syntax-object
+                                               unquote
+                                               ((top)
+                                                #(ribcage
+                                                  #(p q)
+                                                  #((top) (top))
+                                                  #("i4391" "i4392"))
+                                                #(ribcage () () ())
+                                                #(ribcage
+                                                  #(p lev)
+                                                  #((top) (top))
+                                                  #("i4381" "i4382"))
+                                                #(ribcage
+                                                  (emit quasivector
+                                                        quasilist*
+                                                        quasiappend
+                                                        quasicons
+                                                        vquasi
+                                                        quasi)
+                                                  ((top)
+                                                   (top)
+                                                   (top)
+                                                   (top)
+                                                   (top)
+                                                   (top)
+                                                   (top))
+                                                  ("i4377"
+                                                   "i4375"
+                                                   "i4373"
+                                                   "i4371"
+                                                   "i4369"
+                                                   "i4367"
+                                                   "i4365")))
+                                               (hygiene guile)))
+                                           .
+                                           each-any))))
+                                 (if #{tmp\ 4396}#
+                                   (@apply
+                                     (lambda (#{p\ 4398}#)
+                                       (if (= #{lev\ 4380}# 0)
+                                         (#{quasilist*\ 4374}#
+                                           (map (lambda (#{tmp\ 4399}#)
+                                                  (list '#(syntax-object
+                                                           "value"
+                                                           ((top)
+                                                            #(ribcage
+                                                              #(p)
+                                                              #((top))
+                                                              #("i4397"))
+                                                            #(ribcage
+                                                              #(p q)
+                                                              #((top) (top))
+                                                              #("i4391"
+                                                                "i4392"))
+                                                            #(ribcage () () ())
+                                                            #(ribcage
+                                                              #(p lev)
+                                                              #((top) (top))
+                                                              #("i4381"
+                                                                "i4382"))
+                                                            #(ribcage
+                                                              (emit quasivector
+                                                                    quasilist*
+                                                                    quasiappend
+                                                                    quasicons
+                                                                    vquasi
+                                                                    quasi)
+                                                              ((top)
+                                                               (top)
+                                                               (top)
+                                                               (top)
+                                                               (top)
+                                                               (top)
+                                                               (top))
+                                                              ("i4377"
+                                                               "i4375"
+                                                               "i4373"
+                                                               "i4371"
+                                                               "i4369"
+                                                               "i4367"
+                                                               "i4365")))
+                                                           (hygiene guile))
+                                                        #{tmp\ 4399}#))
+                                                #{p\ 4398}#)
+                                           (#{quasi\ 4366}#
+                                             #{q\ 4394}#
+                                             #{lev\ 4380}#))
+                                         (#{quasicons\ 4370}#
+                                           (#{quasicons\ 4370}#
+                                             '(#(syntax-object
+                                                 "quote"
+                                                 ((top)
+                                                  #(ribcage
+                                                    #(p)
+                                                    #((top))
+                                                    #("i4397"))
+                                                  #(ribcage
+                                                    #(p q)
+                                                    #((top) (top))
+                                                    #("i4391" "i4392"))
+                                                  #(ribcage () () ())
+                                                  #(ribcage
+                                                    #(p lev)
+                                                    #((top) (top))
+                                                    #("i4381" "i4382"))
+                                                  #(ribcage
+                                                    (emit quasivector
+                                                          quasilist*
+                                                          quasiappend
+                                                          quasicons
+                                                          vquasi
+                                                          quasi)
+                                                    ((top)
+                                                     (top)
+                                                     (top)
+                                                     (top)
+                                                     (top)
+                                                     (top)
+                                                     (top))
+                                                    ("i4377"
+                                                     "i4375"
+                                                     "i4373"
+                                                     "i4371"
+                                                     "i4369"
+                                                     "i4367"
+                                                     "i4365")))
+                                                 (hygiene guile))
+                                               #(syntax-object
+                                                 unquote
+                                                 ((top)
+                                                  #(ribcage
+                                                    #(p)
+                                                    #((top))
+                                                    #("i4397"))
+                                                  #(ribcage
+                                                    #(p q)
+                                                    #((top) (top))
+                                                    #("i4391" "i4392"))
+                                                  #(ribcage () () ())
+                                                  #(ribcage
+                                                    #(p lev)
+                                                    #((top) (top))
+                                                    #("i4381" "i4382"))
+                                                  #(ribcage
+                                                    (emit quasivector
+                                                          quasilist*
+                                                          quasiappend
+                                                          quasicons
+                                                          vquasi
+                                                          quasi)
+                                                    ((top)
+                                                     (top)
+                                                     (top)
+                                                     (top)
+                                                     (top)
+                                                     (top)
+                                                     (top))
+                                                    ("i4377"
+                                                     "i4375"
+                                                     "i4373"
+                                                     "i4371"
+                                                     "i4369"
+                                                     "i4367"
+                                                     "i4365")))
+                                                 (hygiene guile)))
+                                             (#{quasi\ 4366}#
+                                               #{p\ 4398}#
+                                               (1- #{lev\ 4380}#)))
+                                           (#{quasi\ 4366}#
+                                             #{q\ 4394}#
+                                             #{lev\ 4380}#))))
+                                     #{tmp\ 4396}#)
+                                   (let ((#{tmp\ 4401}#
+                                           ($sc-dispatch
+                                             #{tmp\ 4395}#
+                                             '(#(free-id
+                                                 #(syntax-object
+                                                   unquote-splicing
+                                                   ((top)
+                                                    #(ribcage
+                                                      #(p q)
+                                                      #((top) (top))
+                                                      #("i4391" "i4392"))
+                                                    #(ribcage () () ())
+                                                    #(ribcage
+                                                      #(p lev)
+                                                      #((top) (top))
+                                                      #("i4381" "i4382"))
+                                                    #(ribcage
+                                                      (emit quasivector
+                                                            quasilist*
+                                                            quasiappend
+                                                            quasicons
+                                                            vquasi
+                                                            quasi)
+                                                      ((top)
+                                                       (top)
+                                                       (top)
+                                                       (top)
+                                                       (top)
+                                                       (top)
+                                                       (top))
+                                                      ("i4377"
+                                                       "i4375"
+                                                       "i4373"
+                                                       "i4371"
+                                                       "i4369"
+                                                       "i4367"
+                                                       "i4365")))
+                                                   (hygiene guile)))
+                                               .
+                                               each-any))))
+                                     (if #{tmp\ 4401}#
+                                       (@apply
+                                         (lambda (#{p\ 4403}#)
+                                           (if (= #{lev\ 4380}# 0)
+                                             (#{quasiappend\ 4372}#
+                                               (map (lambda (#{tmp\ 4404}#)
+                                                      (list '#(syntax-object
+                                                               "value"
+                                                               ((top)
+                                                                #(ribcage
+                                                                  #(p)
+                                                                  #((top))
+                                                                  #("i4402"))
+                                                                #(ribcage
+                                                                  #(p q)
+                                                                  #((top)
+                                                                    (top))
+                                                                  #("i4391"
+                                                                    "i4392"))
+                                                                #(ribcage
+                                                                  ()
+                                                                  ()
+                                                                  ())
+                                                                #(ribcage
+                                                                  #(p lev)
+                                                                  #((top)
+                                                                    (top))
+                                                                  #("i4381"
+                                                                    "i4382"))
+                                                                #(ribcage
+                                                                  (emit quasivector
+                                                                        quasilist*
+                                                                        quasiappend
+                                                                        quasicons
+                                                                        vquasi
+                                                                        quasi)
+                                                                  ((top)
+                                                                   (top)
+                                                                   (top)
+                                                                   (top)
+                                                                   (top)
+                                                                   (top)
+                                                                   (top))
+                                                                  ("i4377"
+                                                                   "i4375"
+                                                                   "i4373"
+                                                                   "i4371"
+                                                                   "i4369"
+                                                                   "i4367"
+                                                                   "i4365")))
+                                                               (hygiene guile))
+                                                            #{tmp\ 4404}#))
+                                                    #{p\ 4403}#)
+                                               (#{quasi\ 4366}#
+                                                 #{q\ 4394}#
+                                                 #{lev\ 4380}#))
+                                             (#{quasicons\ 4370}#
+                                               (#{quasicons\ 4370}#
+                                                 '(#(syntax-object
+                                                     "quote"
+                                                     ((top)
+                                                      #(ribcage
+                                                        #(p)
+                                                        #((top))
+                                                        #("i4402"))
+                                                      #(ribcage
+                                                        #(p q)
+                                                        #((top) (top))
+                                                        #("i4391" "i4392"))
+                                                      #(ribcage () () ())
+                                                      #(ribcage
+                                                        #(p lev)
+                                                        #((top) (top))
+                                                        #("i4381" "i4382"))
+                                                      #(ribcage
+                                                        (emit quasivector
+                                                              quasilist*
+                                                              quasiappend
+                                                              quasicons
+                                                              vquasi
+                                                              quasi)
+                                                        ((top)
+                                                         (top)
+                                                         (top)
+                                                         (top)
+                                                         (top)
+                                                         (top)
+                                                         (top))
+                                                        ("i4377"
+                                                         "i4375"
+                                                         "i4373"
+                                                         "i4371"
+                                                         "i4369"
+                                                         "i4367"
+                                                         "i4365")))
+                                                     (hygiene guile))
+                                                   #(syntax-object
+                                                     unquote-splicing
+                                                     ((top)
+                                                      #(ribcage
+                                                        #(p)
+                                                        #((top))
+                                                        #("i4402"))
+                                                      #(ribcage
+                                                        #(p q)
+                                                        #((top) (top))
+                                                        #("i4391" "i4392"))
+                                                      #(ribcage () () ())
+                                                      #(ribcage
+                                                        #(p lev)
+                                                        #((top) (top))
+                                                        #("i4381" "i4382"))
+                                                      #(ribcage
+                                                        (emit quasivector
+                                                              quasilist*
+                                                              quasiappend
+                                                              quasicons
+                                                              vquasi
+                                                              quasi)
+                                                        ((top)
+                                                         (top)
+                                                         (top)
+                                                         (top)
+                                                         (top)
+                                                         (top)
+                                                         (top))
+                                                        ("i4377"
+                                                         "i4375"
+                                                         "i4373"
+                                                         "i4371"
+                                                         "i4369"
+                                                         "i4367"
+                                                         "i4365")))
+                                                     (hygiene guile)))
+                                                 (#{quasi\ 4366}#
+                                                   #{p\ 4403}#
+                                                   (1- #{lev\ 4380}#)))
+                                               (#{quasi\ 4366}#
+                                                 #{q\ 4394}#
+                                                 #{lev\ 4380}#))))
+                                         #{tmp\ 4401}#)
+                                       (let ((#{_\ 4407}# #{tmp\ 4395}#))
+                                         (#{quasicons\ 4370}#
+                                           (#{quasi\ 4366}#
+                                             #{p\ 4393}#
+                                             #{lev\ 4380}#)
+                                           (#{quasi\ 4366}#
+                                             #{q\ 4394}#
+                                             #{lev\ 4380}#)))))))))
+                           #{tmp\ 4390}#)
+                         (let ((#{tmp\ 4408}#
+                                 ($sc-dispatch
+                                   #{tmp\ 4383}#
+                                   '#(vector each-any))))
+                           (if #{tmp\ 4408}#
+                             (@apply
+                               (lambda (#{x\ 4410}#)
+                                 (#{quasivector\ 4376}#
+                                   (#{vquasi\ 4368}#
+                                     #{x\ 4410}#
+                                     #{lev\ 4380}#)))
+                               #{tmp\ 4408}#)
+                             (let ((#{p\ 4413}# #{tmp\ 4383}#))
+                               (list '#(syntax-object
+                                        "quote"
+                                        ((top)
+                                         #(ribcage #(p) #((top)) #("i4412"))
+                                         #(ribcage () () ())
+                                         #(ribcage
+                                           #(p lev)
+                                           #((top) (top))
+                                           #("i4381" "i4382"))
+                                         #(ribcage
+                                           (emit quasivector
+                                                 quasilist*
+                                                 quasiappend
+                                                 quasicons
+                                                 vquasi
+                                                 quasi)
+                                           ((top)
+                                            (top)
+                                            (top)
+                                            (top)
+                                            (top)
+                                            (top)
+                                            (top))
+                                           ("i4377"
+                                            "i4375"
+                                            "i4373"
+                                            "i4371"
+                                            "i4369"
+                                            "i4367"
+                                            "i4365")))
+                                        (hygiene guile))
+                                     #{p\ 4413}#)))))))))))))
+       (#{vquasi\ 4368}#
+         (lambda (#{p\ 4414}# #{lev\ 4415}#)
+           (let ((#{tmp\ 4418}# #{p\ 4414}#))
+             (let ((#{tmp\ 4419}#
+                     ($sc-dispatch #{tmp\ 4418}# '(any . any))))
+               (if #{tmp\ 4419}#
                  (@apply
-                   (lambda (#{x\ 4382}# #{y\ 4383}#)
-                     (let ((#{tmp\ 4384}# #{y\ 4383}#))
-                       (let ((#{tmp\ 4385}#
+                   (lambda (#{p\ 4422}# #{q\ 4423}#)
+                     (let ((#{tmp\ 4424}# #{p\ 4422}#))
+                       (let ((#{tmp\ 4425}#
                                ($sc-dispatch
-                                 #{tmp\ 4384}#
+                                 #{tmp\ 4424}#
                                  '(#(free-id
                                      #(syntax-object
-                                       quote
+                                       unquote
                                        ((top)
                                         #(ribcage
-                                          #(x y)
+                                          #(p q)
                                           #((top) (top))
-                                          #("i4380" "i4381"))
-                                        #(ribcage () () ())
+                                          #("i4420" "i4421"))
                                         #(ribcage () () ())
                                         #(ribcage
-                                          #(x y)
+                                          #(p lev)
                                           #((top) (top))
-                                          #("i4375" "i4376"))
+                                          #("i4416" "i4417"))
                                         #(ribcage
-                                          #(quasicons
-                                            quasiappend
-                                            quasivector
-                                            quasi)
-                                          #((top) (top) (top) (top))
-                                          #("i4365" "i4366" "i4367" "i4368")))
+                                          (emit quasivector
+                                                quasilist*
+                                                quasiappend
+                                                quasicons
+                                                vquasi
+                                                quasi)
+                                          ((top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top))
+                                          ("i4377"
+                                           "i4375"
+                                           "i4373"
+                                           "i4371"
+                                           "i4369"
+                                           "i4367"
+                                           "i4365")))
                                        (hygiene guile)))
-                                   any))))
-                         (if #{tmp\ 4385}#
+                                   .
+                                   each-any))))
+                         (if #{tmp\ 4425}#
+                           (@apply
+                             (lambda (#{p\ 4427}#)
+                               (if (= #{lev\ 4415}# 0)
+                                 (#{quasilist*\ 4374}#
+                                   (map (lambda (#{tmp\ 4428}#)
+                                          (list '#(syntax-object
+                                                   "value"
+                                                   ((top)
+                                                    #(ribcage
+                                                      #(p)
+                                                      #((top))
+                                                      #("i4426"))
+                                                    #(ribcage
+                                                      #(p q)
+                                                      #((top) (top))
+                                                      #("i4420" "i4421"))
+                                                    #(ribcage () () ())
+                                                    #(ribcage
+                                                      #(p lev)
+                                                      #((top) (top))
+                                                      #("i4416" "i4417"))
+                                                    #(ribcage
+                                                      (emit quasivector
+                                                            quasilist*
+                                                            quasiappend
+                                                            quasicons
+                                                            vquasi
+                                                            quasi)
+                                                      ((top)
+                                                       (top)
+                                                       (top)
+                                                       (top)
+                                                       (top)
+                                                       (top)
+                                                       (top))
+                                                      ("i4377"
+                                                       "i4375"
+                                                       "i4373"
+                                                       "i4371"
+                                                       "i4369"
+                                                       "i4367"
+                                                       "i4365")))
+                                                   (hygiene guile))
+                                                #{tmp\ 4428}#))
+                                        #{p\ 4427}#)
+                                   (#{vquasi\ 4368}#
+                                     #{q\ 4423}#
+                                     #{lev\ 4415}#))
+                                 (#{quasicons\ 4370}#
+                                   (#{quasicons\ 4370}#
+                                     '(#(syntax-object
+                                         "quote"
+                                         ((top)
+                                          #(ribcage #(p) #((top)) #("i4426"))
+                                          #(ribcage
+                                            #(p q)
+                                            #((top) (top))
+                                            #("i4420" "i4421"))
+                                          #(ribcage () () ())
+                                          #(ribcage
+                                            #(p lev)
+                                            #((top) (top))
+                                            #("i4416" "i4417"))
+                                          #(ribcage
+                                            (emit quasivector
+                                                  quasilist*
+                                                  quasiappend
+                                                  quasicons
+                                                  vquasi
+                                                  quasi)
+                                            ((top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top))
+                                            ("i4377"
+                                             "i4375"
+                                             "i4373"
+                                             "i4371"
+                                             "i4369"
+                                             "i4367"
+                                             "i4365")))
+                                         (hygiene guile))
+                                       #(syntax-object
+                                         unquote
+                                         ((top)
+                                          #(ribcage #(p) #((top)) #("i4426"))
+                                          #(ribcage
+                                            #(p q)
+                                            #((top) (top))
+                                            #("i4420" "i4421"))
+                                          #(ribcage () () ())
+                                          #(ribcage
+                                            #(p lev)
+                                            #((top) (top))
+                                            #("i4416" "i4417"))
+                                          #(ribcage
+                                            (emit quasivector
+                                                  quasilist*
+                                                  quasiappend
+                                                  quasicons
+                                                  vquasi
+                                                  quasi)
+                                            ((top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top))
+                                            ("i4377"
+                                             "i4375"
+                                             "i4373"
+                                             "i4371"
+                                             "i4369"
+                                             "i4367"
+                                             "i4365")))
+                                         (hygiene guile)))
+                                     (#{quasi\ 4366}#
+                                       #{p\ 4427}#
+                                       (1- #{lev\ 4415}#)))
+                                   (#{vquasi\ 4368}#
+                                     #{q\ 4423}#
+                                     #{lev\ 4415}#))))
+                             #{tmp\ 4425}#)
+                           (let ((#{tmp\ 4430}#
+                                   ($sc-dispatch
+                                     #{tmp\ 4424}#
+                                     '(#(free-id
+                                         #(syntax-object
+                                           unquote-splicing
+                                           ((top)
+                                            #(ribcage
+                                              #(p q)
+                                              #((top) (top))
+                                              #("i4420" "i4421"))
+                                            #(ribcage () () ())
+                                            #(ribcage
+                                              #(p lev)
+                                              #((top) (top))
+                                              #("i4416" "i4417"))
+                                            #(ribcage
+                                              (emit quasivector
+                                                    quasilist*
+                                                    quasiappend
+                                                    quasicons
+                                                    vquasi
+                                                    quasi)
+                                              ((top)
+                                               (top)
+                                               (top)
+                                               (top)
+                                               (top)
+                                               (top)
+                                               (top))
+                                              ("i4377"
+                                               "i4375"
+                                               "i4373"
+                                               "i4371"
+                                               "i4369"
+                                               "i4367"
+                                               "i4365")))
+                                           (hygiene guile)))
+                                       .
+                                       each-any))))
+                             (if #{tmp\ 4430}#
+                               (@apply
+                                 (lambda (#{p\ 4432}#)
+                                   (if (= #{lev\ 4415}# 0)
+                                     (#{quasiappend\ 4372}#
+                                       (map (lambda (#{tmp\ 4433}#)
+                                              (list '#(syntax-object
+                                                       "value"
+                                                       ((top)
+                                                        #(ribcage
+                                                          #(p)
+                                                          #((top))
+                                                          #("i4431"))
+                                                        #(ribcage
+                                                          #(p q)
+                                                          #((top) (top))
+                                                          #("i4420" "i4421"))
+                                                        #(ribcage () () ())
+                                                        #(ribcage
+                                                          #(p lev)
+                                                          #((top) (top))
+                                                          #("i4416" "i4417"))
+                                                        #(ribcage
+                                                          (emit quasivector
+                                                                quasilist*
+                                                                quasiappend
+                                                                quasicons
+                                                                vquasi
+                                                                quasi)
+                                                          ((top)
+                                                           (top)
+                                                           (top)
+                                                           (top)
+                                                           (top)
+                                                           (top)
+                                                           (top))
+                                                          ("i4377"
+                                                           "i4375"
+                                                           "i4373"
+                                                           "i4371"
+                                                           "i4369"
+                                                           "i4367"
+                                                           "i4365")))
+                                                       (hygiene guile))
+                                                    #{tmp\ 4433}#))
+                                            #{p\ 4432}#)
+                                       (#{vquasi\ 4368}#
+                                         #{q\ 4423}#
+                                         #{lev\ 4415}#))
+                                     (#{quasicons\ 4370}#
+                                       (#{quasicons\ 4370}#
+                                         '(#(syntax-object
+                                             "quote"
+                                             ((top)
+                                              #(ribcage
+                                                #(p)
+                                                #((top))
+                                                #("i4431"))
+                                              #(ribcage
+                                                #(p q)
+                                                #((top) (top))
+                                                #("i4420" "i4421"))
+                                              #(ribcage () () ())
+                                              #(ribcage
+                                                #(p lev)
+                                                #((top) (top))
+                                                #("i4416" "i4417"))
+                                              #(ribcage
+                                                (emit quasivector
+                                                      quasilist*
+                                                      quasiappend
+                                                      quasicons
+                                                      vquasi
+                                                      quasi)
+                                                ((top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top))
+                                                ("i4377"
+                                                 "i4375"
+                                                 "i4373"
+                                                 "i4371"
+                                                 "i4369"
+                                                 "i4367"
+                                                 "i4365")))
+                                             (hygiene guile))
+                                           #(syntax-object
+                                             unquote-splicing
+                                             ((top)
+                                              #(ribcage
+                                                #(p)
+                                                #((top))
+                                                #("i4431"))
+                                              #(ribcage
+                                                #(p q)
+                                                #((top) (top))
+                                                #("i4420" "i4421"))
+                                              #(ribcage () () ())
+                                              #(ribcage
+                                                #(p lev)
+                                                #((top) (top))
+                                                #("i4416" "i4417"))
+                                              #(ribcage
+                                                (emit quasivector
+                                                      quasilist*
+                                                      quasiappend
+                                                      quasicons
+                                                      vquasi
+                                                      quasi)
+                                                ((top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top))
+                                                ("i4377"
+                                                 "i4375"
+                                                 "i4373"
+                                                 "i4371"
+                                                 "i4369"
+                                                 "i4367"
+                                                 "i4365")))
+                                             (hygiene guile)))
+                                         (#{quasi\ 4366}#
+                                           #{p\ 4432}#
+                                           (1- #{lev\ 4415}#)))
+                                       (#{vquasi\ 4368}#
+                                         #{q\ 4423}#
+                                         #{lev\ 4415}#))))
+                                 #{tmp\ 4430}#)
+                               (let ((#{_\ 4436}# #{tmp\ 4424}#))
+                                 (#{quasicons\ 4370}#
+                                   (#{quasi\ 4366}# #{p\ 4422}# #{lev\ 4415}#)
+                                   (#{vquasi\ 4368}#
+                                     #{q\ 4423}#
+                                     #{lev\ 4415}#)))))))))
+                   #{tmp\ 4419}#)
+                 (let ((#{tmp\ 4437}# ($sc-dispatch #{tmp\ 4418}# '())))
+                   (if #{tmp\ 4437}#
+                     (@apply
+                       (lambda ()
+                         '(#(syntax-object
+                             "quote"
+                             ((top)
+                              #(ribcage () () ())
+                              #(ribcage
+                                #(p lev)
+                                #((top) (top))
+                                #("i4416" "i4417"))
+                              #(ribcage
+                                (emit quasivector
+                                      quasilist*
+                                      quasiappend
+                                      quasicons
+                                      vquasi
+                                      quasi)
+                                ((top) (top) (top) (top) (top) (top) (top))
+                                ("i4377"
+                                 "i4375"
+                                 "i4373"
+                                 "i4371"
+                                 "i4369"
+                                 "i4367"
+                                 "i4365")))
+                             (hygiene guile))
+                           ()))
+                       #{tmp\ 4437}#)
+                     (syntax-violation
+                       #f
+                       "source expression failed to match any pattern"
+                       #{tmp\ 4418}#))))))))
+       (#{quasicons\ 4370}#
+         (lambda (#{x\ 4438}# #{y\ 4439}#)
+           (let ((#{tmp\ 4443}# (list #{x\ 4438}# #{y\ 4439}#)))
+             (let ((#{tmp\ 4444}#
+                     ($sc-dispatch #{tmp\ 4443}# '(any any))))
+               (if #{tmp\ 4444}#
+                 (@apply
+                   (lambda (#{x\ 4447}# #{y\ 4448}#)
+                     (let ((#{tmp\ 4449}# #{y\ 4448}#))
+                       (let ((#{tmp\ 4450}#
+                               ($sc-dispatch
+                                 #{tmp\ 4449}#
+                                 '(#(atom "quote") any))))
+                         (if #{tmp\ 4450}#
                            (@apply
-                             (lambda (#{dy\ 4387}#)
-                               (let ((#{tmp\ 4388}# #{x\ 4382}#))
-                                 (let ((#{tmp\ 4389}#
+                             (lambda (#{dy\ 4452}#)
+                               (let ((#{tmp\ 4453}# #{x\ 4447}#))
+                                 (let ((#{tmp\ 4454}#
                                          ($sc-dispatch
-                                           #{tmp\ 4388}#
-                                           '(#(free-id
-                                               #(syntax-object
-                                                 quote
-                                                 ((top)
-                                                  #(ribcage
-                                                    #(dy)
-                                                    #((top))
-                                                    #("i4386"))
-                                                  #(ribcage
-                                                    #(x y)
-                                                    #((top) (top))
-                                                    #("i4380" "i4381"))
-                                                  #(ribcage () () ())
-                                                  #(ribcage () () ())
-                                                  #(ribcage
-                                                    #(x y)
-                                                    #((top) (top))
-                                                    #("i4375" "i4376"))
-                                                  #(ribcage
-                                                    #(quasicons
-                                                      quasiappend
-                                                      quasivector
-                                                      quasi)
-                                                    #((top) (top) (top) (top))
-                                                    #("i4365"
-                                                      "i4366"
-                                                      "i4367"
-                                                      "i4368")))
-                                                 (hygiene guile)))
-                                             any))))
-                                   (if #{tmp\ 4389}#
+                                           #{tmp\ 4453}#
+                                           '(#(atom "quote") any))))
+                                   (if #{tmp\ 4454}#
                                      (@apply
-                                       (lambda (#{dx\ 4391}#)
+                                       (lambda (#{dx\ 4456}#)
                                          (list '#(syntax-object
-                                                  quote
+                                                  "quote"
                                                   ((top)
                                                    #(ribcage
                                                      #(dx)
                                                      #((top))
-                                                     #("i4390"))
+                                                     #("i4455"))
                                                    #(ribcage
                                                      #(dy)
                                                      #((top))
-                                                     #("i4386"))
+                                                     #("i4451"))
                                                    #(ribcage
                                                      #(x y)
                                                      #((top) (top))
-                                                     #("i4380" "i4381"))
+                                                     #("i4445" "i4446"))
                                                    #(ribcage () () ())
                                                    #(ribcage () () ())
                                                    #(ribcage
                                                      #(x y)
                                                      #((top) (top))
-                                                     #("i4375" "i4376"))
+                                                     #("i4440" "i4441"))
                                                    #(ribcage
-                                                     #(quasicons
-                                                       quasiappend
-                                                       quasivector
-                                                       quasi)
-                                                     #((top) (top) (top) (top))
-                                                     #("i4365"
-                                                       "i4366"
-                                                       "i4367"
-                                                       "i4368")))
+                                                     (emit quasivector
+                                                           quasilist*
+                                                           quasiappend
+                                                           quasicons
+                                                           vquasi
+                                                           quasi)
+                                                     ((top)
+                                                      (top)
+                                                      (top)
+                                                      (top)
+                                                      (top)
+                                                      (top)
+                                                      (top))
+                                                     ("i4377"
+                                                      "i4375"
+                                                      "i4373"
+                                                      "i4371"
+                                                      "i4369"
+                                                      "i4367"
+                                                      "i4365")))
                                                   (hygiene guile))
-                                               (cons #{dx\ 4391}#
-                                                     #{dy\ 4387}#)))
-                                       #{tmp\ 4389}#)
-                                     (let ((#{_\ 4393}# #{tmp\ 4388}#))
-                                       (if (null? #{dy\ 4387}#)
+                                               (cons #{dx\ 4456}#
+                                                     #{dy\ 4452}#)))
+                                       #{tmp\ 4454}#)
+                                     (let ((#{_\ 4458}# #{tmp\ 4453}#))
+                                       (if (null? #{dy\ 4452}#)
                                          (list '#(syntax-object
-                                                  list
+                                                  "list"
                                                   ((top)
                                                    #(ribcage
                                                      #(_)
                                                      #((top))
-                                                     #("i4392"))
+                                                     #("i4457"))
                                                    #(ribcage
                                                      #(dy)
                                                      #((top))
-                                                     #("i4386"))
+                                                     #("i4451"))
                                                    #(ribcage
                                                      #(x y)
                                                      #((top) (top))
-                                                     #("i4380" "i4381"))
+                                                     #("i4445" "i4446"))
                                                    #(ribcage () () ())
                                                    #(ribcage () () ())
                                                    #(ribcage
                                                      #(x y)
                                                      #((top) (top))
-                                                     #("i4375" "i4376"))
+                                                     #("i4440" "i4441"))
                                                    #(ribcage
-                                                     #(quasicons
-                                                       quasiappend
-                                                       quasivector
-                                                       quasi)
-                                                     #((top) (top) (top) (top))
-                                                     #("i4365"
-                                                       "i4366"
-                                                       "i4367"
-                                                       "i4368")))
+                                                     (emit quasivector
+                                                           quasilist*
+                                                           quasiappend
+                                                           quasicons
+                                                           vquasi
+                                                           quasi)
+                                                     ((top)
+                                                      (top)
+                                                      (top)
+                                                      (top)
+                                                      (top)
+                                                      (top)
+                                                      (top))
+                                                     ("i4377"
+                                                      "i4375"
+                                                      "i4373"
+                                                      "i4371"
+                                                      "i4369"
+                                                      "i4367"
+                                                      "i4365")))
                                                   (hygiene guile))
-                                               #{x\ 4382}#)
+                                               #{x\ 4447}#)
                                          (list '#(syntax-object
-                                                  cons
+                                                  "list*"
                                                   ((top)
                                                    #(ribcage
                                                      #(_)
                                                      #((top))
-                                                     #("i4392"))
+                                                     #("i4457"))
                                                    #(ribcage
                                                      #(dy)
                                                      #((top))
-                                                     #("i4386"))
+                                                     #("i4451"))
                                                    #(ribcage
                                                      #(x y)
                                                      #((top) (top))
-                                                     #("i4380" "i4381"))
+                                                     #("i4445" "i4446"))
                                                    #(ribcage () () ())
                                                    #(ribcage () () ())
                                                    #(ribcage
                                                      #(x y)
                                                      #((top) (top))
-                                                     #("i4375" "i4376"))
+                                                     #("i4440" "i4441"))
                                                    #(ribcage
-                                                     #(quasicons
-                                                       quasiappend
-                                                       quasivector
-                                                       quasi)
-                                                     #((top) (top) (top) (top))
-                                                     #("i4365"
-                                                       "i4366"
-                                                       "i4367"
-                                                       "i4368")))
+                                                     (emit quasivector
+                                                           quasilist*
+                                                           quasiappend
+                                                           quasicons
+                                                           vquasi
+                                                           quasi)
+                                                     ((top)
+                                                      (top)
+                                                      (top)
+                                                      (top)
+                                                      (top)
+                                                      (top)
+                                                      (top))
+                                                     ("i4377"
+                                                      "i4375"
+                                                      "i4373"
+                                                      "i4371"
+                                                      "i4369"
+                                                      "i4367"
+                                                      "i4365")))
                                                   (hygiene guile))
-                                               #{x\ 4382}#
-                                               #{y\ 4383}#)))))))
-                             #{tmp\ 4385}#)
-                           (let ((#{tmp\ 4394}#
+                                               #{x\ 4447}#
+                                               #{y\ 4448}#)))))))
+                             #{tmp\ 4450}#)
+                           (let ((#{tmp\ 4459}#
                                    ($sc-dispatch
-                                     #{tmp\ 4384}#
-                                     '(#(free-id
-                                         #(syntax-object
-                                           list
-                                           ((top)
-                                            #(ribcage
-                                              #(x y)
-                                              #((top) (top))
-                                              #("i4380" "i4381"))
-                                            #(ribcage () () ())
-                                            #(ribcage () () ())
-                                            #(ribcage
-                                              #(x y)
-                                              #((top) (top))
-                                              #("i4375" "i4376"))
-                                            #(ribcage
-                                              #(quasicons
-                                                quasiappend
-                                                quasivector
-                                                quasi)
-                                              #((top) (top) (top) (top))
-                                              #("i4365"
-                                                "i4366"
-                                                "i4367"
-                                                "i4368")))
-                                           (hygiene guile)))
-                                       .
-                                       any))))
-                             (if #{tmp\ 4394}#
+                                     #{tmp\ 4449}#
+                                     '(#(atom "list") . any))))
+                             (if #{tmp\ 4459}#
                                (@apply
-                                 (lambda (#{stuff\ 4396}#)
+                                 (lambda (#{stuff\ 4461}#)
                                    (cons '#(syntax-object
-                                            list
+                                            "list"
                                             ((top)
                                              #(ribcage
                                                #(stuff)
                                                #((top))
-                                               #("i4395"))
+                                               #("i4460"))
                                              #(ribcage
                                                #(x y)
                                                #((top) (top))
-                                               #("i4380" "i4381"))
+                                               #("i4445" "i4446"))
                                              #(ribcage () () ())
                                              #(ribcage () () ())
                                              #(ribcage
                                                #(x y)
                                                #((top) (top))
-                                               #("i4375" "i4376"))
+                                               #("i4440" "i4441"))
                                              #(ribcage
-                                               #(quasicons
-                                                 quasiappend
-                                                 quasivector
-                                                 quasi)
-                                               #((top) (top) (top) (top))
-                                               #("i4365"
-                                                 "i4366"
-                                                 "i4367"
-                                                 "i4368")))
+                                               (emit quasivector
+                                                     quasilist*
+                                                     quasiappend
+                                                     quasicons
+                                                     vquasi
+                                                     quasi)
+                                               ((top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top))
+                                               ("i4377"
+                                                "i4375"
+                                                "i4373"
+                                                "i4371"
+                                                "i4369"
+                                                "i4367"
+                                                "i4365")))
                                             (hygiene guile))
-                                         (cons #{x\ 4382}# #{stuff\ 4396}#)))
-                                 #{tmp\ 4394}#)
-                               (let ((#{else\ 4398}# #{tmp\ 4384}#))
-                                 (list '#(syntax-object
-                                          cons
-                                          ((top)
-                                           #(ribcage
-                                             #(else)
-                                             #((top))
-                                             #("i4397"))
-                                           #(ribcage
-                                             #(x y)
-                                             #((top) (top))
-                                             #("i4380" "i4381"))
-                                           #(ribcage () () ())
-                                           #(ribcage () () ())
-                                           #(ribcage
-                                             #(x y)
-                                             #((top) (top))
-                                             #("i4375" "i4376"))
-                                           #(ribcage
-                                             #(quasicons
-                                               quasiappend
-                                               quasivector
-                                               quasi)
-                                             #((top) (top) (top) (top))
-                                             #("i4365"
-                                               "i4366"
-                                               "i4367"
-                                               "i4368")))
-                                          (hygiene guile))
-                                       #{x\ 4382}#
-                                       #{y\ 4383}#))))))))
-                   #{tmp\ 4379}#)
-                 (syntax-violation
-                   #f
-                   "source expression failed to match any pattern"
-                   #{tmp\ 4378}#))))))
-       (#{quasiappend\ 4370}#
-         (lambda (#{x\ 4399}# #{y\ 4400}#)
-           (let ((#{tmp\ 4404}# (list #{x\ 4399}# #{y\ 4400}#)))
-             (let ((#{tmp\ 4405}#
-                     ($sc-dispatch #{tmp\ 4404}# '(any any))))
-               (if #{tmp\ 4405}#
-                 (@apply
-                   (lambda (#{x\ 4408}# #{y\ 4409}#)
-                     (let ((#{tmp\ 4410}# #{y\ 4409}#))
-                       (let ((#{tmp\ 4411}#
-                               ($sc-dispatch
-                                 #{tmp\ 4410}#
-                                 '(#(free-id
-                                     #(syntax-object
-                                       quote
-                                       ((top)
-                                        #(ribcage
-                                          #(x y)
-                                          #((top) (top))
-                                          #("i4406" "i4407"))
-                                        #(ribcage () () ())
-                                        #(ribcage () () ())
-                                        #(ribcage
-                                          #(x y)
-                                          #((top) (top))
-                                          #("i4401" "i4402"))
-                                        #(ribcage
-                                          #(quasicons
-                                            quasiappend
-                                            quasivector
-                                            quasi)
-                                          #((top) (top) (top) (top))
-                                          #("i4365" "i4366" "i4367" "i4368")))
-                                       (hygiene guile)))
-                                   ()))))
-                         (if #{tmp\ 4411}#
-                           (@apply (lambda () #{x\ 4408}#) #{tmp\ 4411}#)
-                           (let ((#{_\ 4413}# #{tmp\ 4410}#))
-                             (list '#(syntax-object
-                                      append
-                                      ((top)
-                                       #(ribcage #(_) #((top)) #("i4412"))
-                                       #(ribcage
-                                         #(x y)
-                                         #((top) (top))
-                                         #("i4406" "i4407"))
-                                       #(ribcage () () ())
-                                       #(ribcage () () ())
-                                       #(ribcage
-                                         #(x y)
-                                         #((top) (top))
-                                         #("i4401" "i4402"))
-                                       #(ribcage
-                                         #(quasicons
-                                           quasiappend
-                                           quasivector
-                                           quasi)
-                                         #((top) (top) (top) (top))
-                                         #("i4365" "i4366" "i4367" "i4368")))
-                                      (hygiene guile))
-                                   #{x\ 4408}#
-                                   #{y\ 4409}#))))))
-                   #{tmp\ 4405}#)
+                                         (cons #{x\ 4447}# #{stuff\ 4461}#)))
+                                 #{tmp\ 4459}#)
+                               (let ((#{tmp\ 4462}#
+                                       ($sc-dispatch
+                                         #{tmp\ 4449}#
+                                         '(#(atom "list*") . any))))
+                                 (if #{tmp\ 4462}#
+                                   (@apply
+                                     (lambda (#{stuff\ 4464}#)
+                                       (cons '#(syntax-object
+                                                "list*"
+                                                ((top)
+                                                 #(ribcage
+                                                   #(stuff)
+                                                   #((top))
+                                                   #("i4463"))
+                                                 #(ribcage
+                                                   #(x y)
+                                                   #((top) (top))
+                                                   #("i4445" "i4446"))
+                                                 #(ribcage () () ())
+                                                 #(ribcage () () ())
+                                                 #(ribcage
+                                                   #(x y)
+                                                   #((top) (top))
+                                                   #("i4440" "i4441"))
+                                                 #(ribcage
+                                                   (emit quasivector
+                                                         quasilist*
+                                                         quasiappend
+                                                         quasicons
+                                                         vquasi
+                                                         quasi)
+                                                   ((top)
+                                                    (top)
+                                                    (top)
+                                                    (top)
+                                                    (top)
+                                                    (top)
+                                                    (top))
+                                                   ("i4377"
+                                                    "i4375"
+                                                    "i4373"
+                                                    "i4371"
+                                                    "i4369"
+                                                    "i4367"
+                                                    "i4365")))
+                                                (hygiene guile))
+                                             (cons #{x\ 4447}#
+                                                   #{stuff\ 4464}#)))
+                                     #{tmp\ 4462}#)
+                                   (let ((#{_\ 4466}# #{tmp\ 4449}#))
+                                     (list '#(syntax-object
+                                              "list*"
+                                              ((top)
+                                               #(ribcage
+                                                 #(_)
+                                                 #((top))
+                                                 #("i4465"))
+                                               #(ribcage
+                                                 #(x y)
+                                                 #((top) (top))
+                                                 #("i4445" "i4446"))
+                                               #(ribcage () () ())
+                                               #(ribcage () () ())
+                                               #(ribcage
+                                                 #(x y)
+                                                 #((top) (top))
+                                                 #("i4440" "i4441"))
+                                               #(ribcage
+                                                 (emit quasivector
+                                                       quasilist*
+                                                       quasiappend
+                                                       quasicons
+                                                       vquasi
+                                                       quasi)
+                                                 ((top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top))
+                                                 ("i4377"
+                                                  "i4375"
+                                                  "i4373"
+                                                  "i4371"
+                                                  "i4369"
+                                                  "i4367"
+                                                  "i4365")))
+                                              (hygiene guile))
+                                           #{x\ 4447}#
+                                           #{y\ 4448}#))))))))))
+                   #{tmp\ 4444}#)
                  (syntax-violation
                    #f
                    "source expression failed to match any pattern"
-                   #{tmp\ 4404}#))))))
-       (#{quasivector\ 4371}#
-         (lambda (#{x\ 4414}#)
-           (let ((#{tmp\ 4417}# #{x\ 4414}#))
-             (let ((#{x\ 4419}# #{tmp\ 4417}#))
-               (let ((#{tmp\ 4420}# #{x\ 4419}#))
-                 (let ((#{tmp\ 4421}#
-                         ($sc-dispatch
-                           #{tmp\ 4420}#
-                           '(#(free-id
-                               #(syntax-object
-                                 quote
-                                 ((top)
-                                  #(ribcage #(x) #((top)) #("i4418"))
-                                  #(ribcage () () ())
-                                  #(ribcage () () ())
-                                  #(ribcage #(x) #((top)) #("i4415"))
-                                  #(ribcage
-                                    #(quasicons quasiappend quasivector quasi)
-                                    #((top) (top) (top) (top))
-                                    #("i4365" "i4366" "i4367" "i4368")))
-                                 (hygiene guile)))
-                             each-any))))
-                   (if #{tmp\ 4421}#
-                     (@apply
-                       (lambda (#{x\ 4423}#)
-                         (list '#(syntax-object
-                                  quote
-                                  ((top)
-                                   #(ribcage #(x) #((top)) #("i4422"))
-                                   #(ribcage #(x) #((top)) #("i4418"))
-                                   #(ribcage () () ())
-                                   #(ribcage () () ())
-                                   #(ribcage #(x) #((top)) #("i4415"))
-                                   #(ribcage
-                                     #(quasicons quasiappend quasivector quasi)
-                                     #((top) (top) (top) (top))
-                                     #("i4365" "i4366" "i4367" "i4368")))
-                                  (hygiene guile))
-                               (list->vector #{x\ 4423}#)))
-                       #{tmp\ 4421}#)
-                     (let ((#{tmp\ 4425}#
-                             ($sc-dispatch
-                               #{tmp\ 4420}#
-                               '(#(free-id
-                                   #(syntax-object
-                                     list
-                                     ((top)
-                                      #(ribcage #(x) #((top)) #("i4418"))
-                                      #(ribcage () () ())
-                                      #(ribcage () () ())
-                                      #(ribcage #(x) #((top)) #("i4415"))
-                                      #(ribcage
-                                        #(quasicons
-                                          quasiappend
-                                          quasivector
-                                          quasi)
-                                        #((top) (top) (top) (top))
-                                        #("i4365" "i4366" "i4367" "i4368")))
-                                     (hygiene guile)))
-                                 .
-                                 each-any))))
-                       (if #{tmp\ 4425}#
-                         (@apply
-                           (lambda (#{x\ 4427}#)
-                             (cons '#(syntax-object
-                                      vector
-                                      ((top)
-                                       #(ribcage #(x) #((top)) #("i4426"))
-                                       #(ribcage #(x) #((top)) #("i4418"))
-                                       #(ribcage () () ())
-                                       #(ribcage () () ())
-                                       #(ribcage #(x) #((top)) #("i4415"))
-                                       #(ribcage
-                                         #(quasicons
-                                           quasiappend
-                                           quasivector
-                                           quasi)
-                                         #((top) (top) (top) (top))
-                                         #("i4365" "i4366" "i4367" "i4368")))
-                                      (hygiene guile))
-                                   #{x\ 4427}#))
-                           #{tmp\ 4425}#)
-                         (let ((#{_\ 4430}# #{tmp\ 4420}#))
-                           (list '#(syntax-object
-                                    list->vector
-                                    ((top)
-                                     #(ribcage #(_) #((top)) #("i4429"))
-                                     #(ribcage #(x) #((top)) #("i4418"))
-                                     #(ribcage () () ())
-                                     #(ribcage () () ())
-                                     #(ribcage #(x) #((top)) #("i4415"))
-                                     #(ribcage
-                                       #(quasicons
-                                         quasiappend
-                                         quasivector
-                                         quasi)
-                                       #((top) (top) (top) (top))
-                                       #("i4365" "i4366" "i4367" "i4368")))
-                                    (hygiene guile))
-                                 #{x\ 4419}#)))))))))))
-       (#{quasi\ 4372}#
-         (lambda (#{p\ 4431}# #{lev\ 4432}#)
-           (let ((#{tmp\ 4435}# #{p\ 4431}#))
-             (let ((#{tmp\ 4436}#
+                   #{tmp\ 4443}#))))))
+       (#{quasiappend\ 4372}#
+         (lambda (#{x\ 4467}# #{y\ 4468}#)
+           (let ((#{tmp\ 4471}# #{y\ 4468}#))
+             (let ((#{tmp\ 4472}#
                      ($sc-dispatch
-                       #{tmp\ 4435}#
-                       '(#(free-id
-                           #(syntax-object
-                             unquote
-                             ((top)
-                              #(ribcage () () ())
-                              #(ribcage
-                                #(p lev)
-                                #((top) (top))
-                                #("i4433" "i4434"))
-                              #(ribcage
-                                #(quasicons quasiappend quasivector quasi)
-                                #((top) (top) (top) (top))
-                                #("i4365" "i4366" "i4367" "i4368")))
-                             (hygiene guile)))
-                         any))))
-               (if #{tmp\ 4436}#
+                       #{tmp\ 4471}#
+                       '(#(atom "quote") ()))))
+               (if #{tmp\ 4472}#
                  (@apply
-                   (lambda (#{p\ 4438}#)
-                     (if (= #{lev\ 4432}# 0)
-                       #{p\ 4438}#
-                       (#{quasicons\ 4369}#
-                         '(#(syntax-object
-                             quote
-                             ((top)
-                              #(ribcage #(p) #((top)) #("i4437"))
-                              #(ribcage () () ())
-                              #(ribcage
-                                #(p lev)
-                                #((top) (top))
-                                #("i4433" "i4434"))
-                              #(ribcage
-                                #(quasicons quasiappend quasivector quasi)
-                                #((top) (top) (top) (top))
-                                #("i4365" "i4366" "i4367" "i4368")))
-                             (hygiene guile))
-                           #(syntax-object
-                             unquote
-                             ((top)
-                              #(ribcage #(p) #((top)) #("i4437"))
-                              #(ribcage () () ())
-                              #(ribcage
-                                #(p lev)
-                                #((top) (top))
-                                #("i4433" "i4434"))
-                              #(ribcage
-                                #(quasicons quasiappend quasivector quasi)
-                                #((top) (top) (top) (top))
-                                #("i4365" "i4366" "i4367" "i4368")))
-                             (hygiene guile)))
-                         (#{quasi\ 4372}#
-                           (list #{p\ 4438}#)
-                           (1- #{lev\ 4432}#)))))
-                   #{tmp\ 4436}#)
-                 (let ((#{tmp\ 4439}#
-                         ($sc-dispatch
-                           #{tmp\ 4435}#
-                           '(#(free-id
-                               #(syntax-object
-                                 unquote
-                                 ((top)
-                                  #(ribcage () () ())
-                                  #(ribcage
-                                    #(p lev)
-                                    #((top) (top))
-                                    #("i4433" "i4434"))
-                                  #(ribcage
-                                    #(quasicons quasiappend quasivector quasi)
-                                    #((top) (top) (top) (top))
-                                    #("i4365" "i4366" "i4367" "i4368")))
-                                 (hygiene guile)))
-                             .
-                             any))))
-                   (if (if #{tmp\ 4439}#
-                         (@apply
-                           (lambda (#{args\ 4441}#) (= #{lev\ 4432}# 0))
-                           #{tmp\ 4439}#)
-                         #f)
-                     (@apply
-                       (lambda (#{args\ 4443}#)
-                         (syntax-violation
-                           'unquote
-                           "unquote takes exactly one argument"
-                           #{p\ 4431}#
-                           (cons '#(syntax-object
-                                    unquote
-                                    ((top)
-                                     #(ribcage #(args) #((top)) #("i4442"))
-                                     #(ribcage () () ())
-                                     #(ribcage
-                                       #(p lev)
-                                       #((top) (top))
-                                       #("i4433" "i4434"))
-                                     #(ribcage
-                                       #(quasicons
-                                         quasiappend
-                                         quasivector
-                                         quasi)
-                                       #((top) (top) (top) (top))
-                                       #("i4365" "i4366" "i4367" "i4368")))
-                                    (hygiene guile))
-                                 #{args\ 4443}#)))
-                       #{tmp\ 4439}#)
-                     (let ((#{tmp\ 4444}#
-                             ($sc-dispatch
-                               #{tmp\ 4435}#
-                               '((#(free-id
-                                    #(syntax-object
-                                      unquote-splicing
-                                      ((top)
-                                       #(ribcage () () ())
-                                       #(ribcage
-                                         #(p lev)
-                                         #((top) (top))
-                                         #("i4433" "i4434"))
-                                       #(ribcage
-                                         #(quasicons
-                                           quasiappend
-                                           quasivector
-                                           quasi)
-                                         #((top) (top) (top) (top))
-                                         #("i4365" "i4366" "i4367" "i4368")))
-                                      (hygiene guile)))
-                                  any)
-                                 .
-                                 any))))
-                       (if #{tmp\ 4444}#
-                         (@apply
-                           (lambda (#{p\ 4447}# #{q\ 4448}#)
-                             (if (= #{lev\ 4432}# 0)
-                               (#{quasiappend\ 4370}#
-                                 #{p\ 4447}#
-                                 (#{quasi\ 4372}# #{q\ 4448}# #{lev\ 4432}#))
-                               (#{quasicons\ 4369}#
-                                 (#{quasicons\ 4369}#
-                                   '(#(syntax-object
-                                       quote
-                                       ((top)
-                                        #(ribcage
-                                          #(p q)
-                                          #((top) (top))
-                                          #("i4445" "i4446"))
-                                        #(ribcage () () ())
-                                        #(ribcage
-                                          #(p lev)
-                                          #((top) (top))
-                                          #("i4433" "i4434"))
-                                        #(ribcage
-                                          #(quasicons
-                                            quasiappend
-                                            quasivector
-                                            quasi)
-                                          #((top) (top) (top) (top))
-                                          #("i4365" "i4366" "i4367" "i4368")))
-                                       (hygiene guile))
-                                     #(syntax-object
-                                       unquote-splicing
-                                       ((top)
-                                        #(ribcage
-                                          #(p q)
-                                          #((top) (top))
-                                          #("i4445" "i4446"))
-                                        #(ribcage () () ())
-                                        #(ribcage
-                                          #(p lev)
-                                          #((top) (top))
-                                          #("i4433" "i4434"))
-                                        #(ribcage
-                                          #(quasicons
-                                            quasiappend
-                                            quasivector
-                                            quasi)
-                                          #((top) (top) (top) (top))
-                                          #("i4365" "i4366" "i4367" "i4368")))
-                                       (hygiene guile)))
-                                   (#{quasi\ 4372}#
-                                     (list #{p\ 4447}#)
-                                     (1- #{lev\ 4432}#)))
-                                 (#{quasi\ 4372}# #{q\ 4448}# #{lev\ 4432}#))))
-                           #{tmp\ 4444}#)
-                         (let ((#{tmp\ 4449}#
-                                 ($sc-dispatch
-                                   #{tmp\ 4435}#
-                                   '((#(free-id
-                                        #(syntax-object
-                                          unquote-splicing
-                                          ((top)
-                                           #(ribcage () () ())
-                                           #(ribcage
-                                             #(p lev)
-                                             #((top) (top))
-                                             #("i4433" "i4434"))
-                                           #(ribcage
-                                             #(quasicons
-                                               quasiappend
-                                               quasivector
-                                               quasi)
-                                             #((top) (top) (top) (top))
-                                             #("i4365"
-                                               "i4366"
-                                               "i4367"
-                                               "i4368")))
-                                          (hygiene guile)))
-                                      .
-                                      any)
-                                     .
-                                     any))))
-                           (if (if #{tmp\ 4449}#
-                                 (@apply
-                                   (lambda (#{args\ 4452}# #{q\ 4453}#)
-                                     (= #{lev\ 4432}# 0))
-                                   #{tmp\ 4449}#)
-                                 #f)
-                             (@apply
-                               (lambda (#{args\ 4456}# #{q\ 4457}#)
-                                 (syntax-violation
-                                   'unquote-splicing
-                                   "unquote-splicing takes exactly one argument"
-                                   #{p\ 4431}#
+                   (lambda ()
+                     (if (null? #{x\ 4467}#)
+                       '(#(syntax-object
+                           "quote"
+                           ((top)
+                            #(ribcage () () ())
+                            #(ribcage
+                              #(x y)
+                              #((top) (top))
+                              #("i4469" "i4470"))
+                            #(ribcage
+                              (emit quasivector
+                                    quasilist*
+                                    quasiappend
+                                    quasicons
+                                    vquasi
+                                    quasi)
+                              ((top) (top) (top) (top) (top) (top) (top))
+                              ("i4377"
+                               "i4375"
+                               "i4373"
+                               "i4371"
+                               "i4369"
+                               "i4367"
+                               "i4365")))
+                           (hygiene guile))
+                         ())
+                       (if (null? (cdr #{x\ 4467}#))
+                         (car #{x\ 4467}#)
+                         (let ((#{tmp\ 4479}# #{x\ 4467}#))
+                           (let ((#{tmp\ 4480}#
+                                   ($sc-dispatch #{tmp\ 4479}# 'each-any)))
+                             (if #{tmp\ 4480}#
+                               (@apply
+                                 (lambda (#{p\ 4482}#)
                                    (cons '#(syntax-object
-                                            unquote-splicing
+                                            "append"
                                             ((top)
                                              #(ribcage
-                                               #(args q)
-                                               #((top) (top))
-                                               #("i4454" "i4455"))
+                                               #(p)
+                                               #((top))
+                                               #("i4481"))
                                              #(ribcage () () ())
                                              #(ribcage
-                                               #(p lev)
+                                               #(x y)
                                                #((top) (top))
-                                               #("i4433" "i4434"))
+                                               #("i4469" "i4470"))
                                              #(ribcage
-                                               #(quasicons
+                                               (emit quasivector
+                                                     quasilist*
+                                                     quasiappend
+                                                     quasicons
+                                                     vquasi
+                                                     quasi)
+                                               ((top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top))
+                                               ("i4377"
+                                                "i4375"
+                                                "i4373"
+                                                "i4371"
+                                                "i4369"
+                                                "i4367"
+                                                "i4365")))
+                                            (hygiene guile))
+                                         #{p\ 4482}#))
+                                 #{tmp\ 4480}#)
+                               (syntax-violation
+                                 #f
+                                 "source expression failed to match any pattern"
+                                 #{tmp\ 4479}#)))))))
+                   #{tmp\ 4472}#)
+                 (let ((#{_\ 4485}# #{tmp\ 4471}#))
+                   (if (null? #{x\ 4467}#)
+                     #{y\ 4468}#
+                     (let ((#{tmp\ 4490}# (list #{x\ 4467}# #{y\ 4468}#)))
+                       (let ((#{tmp\ 4491}#
+                               ($sc-dispatch #{tmp\ 4490}# '(each-any any))))
+                         (if #{tmp\ 4491}#
+                           (@apply
+                             (lambda (#{p\ 4494}# #{y\ 4495}#)
+                               (cons '#(syntax-object
+                                        "append"
+                                        ((top)
+                                         #(ribcage
+                                           #(p y)
+                                           #((top) (top))
+                                           #("i4492" "i4493"))
+                                         #(ribcage #(_) #((top)) #("i4484"))
+                                         #(ribcage () () ())
+                                         #(ribcage
+                                           #(x y)
+                                           #((top) (top))
+                                           #("i4469" "i4470"))
+                                         #(ribcage
+                                           (emit quasivector
+                                                 quasilist*
                                                  quasiappend
-                                                 quasivector
+                                                 quasicons
+                                                 vquasi
                                                  quasi)
-                                               #((top) (top) (top) (top))
-                                               #("i4365"
-                                                 "i4366"
-                                                 "i4367"
-                                                 "i4368")))
-                                            (hygiene guile))
-                                         #{args\ 4456}#)))
-                               #{tmp\ 4449}#)
-                             (let ((#{tmp\ 4458}#
-                                     ($sc-dispatch
-                                       #{tmp\ 4435}#
-                                       '(#(free-id
-                                           #(syntax-object
-                                             quasiquote
-                                             ((top)
-                                              #(ribcage () () ())
-                                              #(ribcage
-                                                #(p lev)
-                                                #((top) (top))
-                                                #("i4433" "i4434"))
-                                              #(ribcage
-                                                #(quasicons
-                                                  quasiappend
-                                                  quasivector
-                                                  quasi)
-                                                #((top) (top) (top) (top))
-                                                #("i4365"
-                                                  "i4366"
-                                                  "i4367"
-                                                  "i4368")))
-                                             (hygiene guile)))
-                                         any))))
-                               (if #{tmp\ 4458}#
-                                 (@apply
-                                   (lambda (#{p\ 4460}#)
-                                     (#{quasicons\ 4369}#
-                                       '(#(syntax-object
-                                           quote
                                            ((top)
-                                            #(ribcage #(p) #((top)) #("i4459"))
-                                            #(ribcage () () ())
-                                            #(ribcage
-                                              #(p lev)
-                                              #((top) (top))
-                                              #("i4433" "i4434"))
-                                            #(ribcage
-                                              #(quasicons
-                                                quasiappend
-                                                quasivector
-                                                quasi)
-                                              #((top) (top) (top) (top))
-                                              #("i4365"
-                                                "i4366"
-                                                "i4367"
-                                                "i4368")))
-                                           (hygiene guile))
-                                         #(syntax-object
-                                           quasiquote
-                                           ((top)
-                                            #(ribcage #(p) #((top)) #("i4459"))
-                                            #(ribcage () () ())
-                                            #(ribcage
-                                              #(p lev)
-                                              #((top) (top))
-                                              #("i4433" "i4434"))
-                                            #(ribcage
-                                              #(quasicons
-                                                quasiappend
-                                                quasivector
-                                                quasi)
-                                              #((top) (top) (top) (top))
-                                              #("i4365"
-                                                "i4366"
+                                            (top)
+                                            (top)
+                                            (top)
+                                            (top)
+                                            (top)
+                                            (top))
+                                           ("i4377"
+                                            "i4375"
+                                            "i4373"
+                                            "i4371"
+                                            "i4369"
+                                            "i4367"
+                                            "i4365")))
+                                        (hygiene guile))
+                                     (append #{p\ 4494}# (list #{y\ 4495}#))))
+                             #{tmp\ 4491}#)
+                           (syntax-violation
+                             #f
+                             "source expression failed to match any pattern"
+                             #{tmp\ 4490}#)))))))))))
+       (#{quasilist*\ 4374}#
+         (lambda (#{x\ 4497}# #{y\ 4498}#)
+           (letrec*
+             ((#{f\ 4503}#
+                (lambda (#{x\ 4504}#)
+                  (if (null? #{x\ 4504}#)
+                    #{y\ 4498}#
+                    (#{quasicons\ 4370}#
+                      (car #{x\ 4504}#)
+                      (#{f\ 4503}# (cdr #{x\ 4504}#)))))))
+             (begin (#{f\ 4503}# #{x\ 4497}#)))))
+       (#{quasivector\ 4376}#
+         (lambda (#{x\ 4505}#)
+           (let ((#{tmp\ 4507}# #{x\ 4505}#))
+             (let ((#{tmp\ 4508}#
+                     ($sc-dispatch
+                       #{tmp\ 4507}#
+                       '(#(atom "quote") each-any))))
+               (if #{tmp\ 4508}#
+                 (@apply
+                   (lambda (#{x\ 4510}#)
+                     (list '#(syntax-object
+                              "quote"
+                              ((top)
+                               #(ribcage #(x) #((top)) #("i4509"))
+                               #(ribcage () () ())
+                               #(ribcage #(x) #((top)) #("i4506"))
+                               #(ribcage
+                                 (emit quasivector
+                                       quasilist*
+                                       quasiappend
+                                       quasicons
+                                       vquasi
+                                       quasi)
+                                 ((top) (top) (top) (top) (top) (top) (top))
+                                 ("i4377"
+                                  "i4375"
+                                  "i4373"
+                                  "i4371"
+                                  "i4369"
+                                  "i4367"
+                                  "i4365")))
+                              (hygiene guile))
+                           (list->vector #{x\ 4510}#)))
+                   #{tmp\ 4508}#)
+                 (let ((#{_\ 4513}# #{tmp\ 4507}#))
+                   (letrec*
+                     ((#{f\ 4517}#
+                        (lambda (#{y\ 4518}# #{k\ 4519}#)
+                          (let ((#{tmp\ 4530}# #{y\ 4518}#))
+                            (let ((#{tmp\ 4531}#
+                                    ($sc-dispatch
+                                      #{tmp\ 4530}#
+                                      '(#(atom "quote") each-any))))
+                              (if #{tmp\ 4531}#
+                                (@apply
+                                  (lambda (#{y\ 4533}#)
+                                    (#{k\ 4519}#
+                                      (map (lambda (#{tmp\ 4534}#)
+                                             (list '#(syntax-object
+                                                      "quote"
+                                                      ((top)
+                                                       #(ribcage
+                                                         #(y)
+                                                         #((top))
+                                                         #("i4532"))
+                                                       #(ribcage () () ())
+                                                       #(ribcage
+                                                         #(f y k)
+                                                         #((top) (top) (top))
+                                                         #("i4514"
+                                                           "i4515"
+                                                           "i4516"))
+                                                       #(ribcage
+                                                         #(_)
+                                                         #((top))
+                                                         #("i4512"))
+                                                       #(ribcage () () ())
+                                                       #(ribcage
+                                                         #(x)
+                                                         #((top))
+                                                         #("i4506"))
+                                                       #(ribcage
+                                                         (emit quasivector
+                                                               quasilist*
+                                                               quasiappend
+                                                               quasicons
+                                                               vquasi
+                                                               quasi)
+                                                         ((top)
+                                                          (top)
+                                                          (top)
+                                                          (top)
+                                                          (top)
+                                                          (top)
+                                                          (top))
+                                                         ("i4377"
+                                                          "i4375"
+                                                          "i4373"
+                                                          "i4371"
+                                                          "i4369"
+                                                          "i4367"
+                                                          "i4365")))
+                                                      (hygiene guile))
+                                                   #{tmp\ 4534}#))
+                                           #{y\ 4533}#)))
+                                  #{tmp\ 4531}#)
+                                (let ((#{tmp\ 4535}#
+                                        ($sc-dispatch
+                                          #{tmp\ 4530}#
+                                          '(#(atom "list") . each-any))))
+                                  (if #{tmp\ 4535}#
+                                    (@apply
+                                      (lambda (#{y\ 4537}#)
+                                        (#{k\ 4519}# #{y\ 4537}#))
+                                      #{tmp\ 4535}#)
+                                    (let ((#{tmp\ 4539}#
+                                            ($sc-dispatch
+                                              #{tmp\ 4530}#
+                                              '(#(atom "list*")
+                                                .
+                                                #(each+ any (any) ())))))
+                                      (if #{tmp\ 4539}#
+                                        (@apply
+                                          (lambda (#{y\ 4542}# #{z\ 4543}#)
+                                            (#{f\ 4517}#
+                                              #{z\ 4543}#
+                                              (lambda (#{ls\ 4544}#)
+                                                (#{k\ 4519}#
+                                                  (append
+                                                    #{y\ 4542}#
+                                                    #{ls\ 4544}#)))))
+                                          #{tmp\ 4539}#)
+                                        (let ((#{else\ 4548}# #{tmp\ 4530}#))
+                                          (let ((#{tmp\ 4552}# #{x\ 4505}#))
+                                            (let ((#{\ g4549\ 4554}#
+                                                    #{tmp\ 4552}#))
+                                              (list '#(syntax-object
+                                                       "list->vector"
+                                                       ((top)
+                                                        #(ribcage
+                                                          #(#{\ g4549}#)
+                                                          #((m4550 top))
+                                                          #("i4553"))
+                                                        #(ribcage
+                                                          #(else)
+                                                          #((top))
+                                                          #("i4547"))
+                                                        #(ribcage () () ())
+                                                        #(ribcage
+                                                          #(f y k)
+                                                          #((top) (top) (top))
+                                                          #("i4514"
+                                                            "i4515"
+                                                            "i4516"))
+                                                        #(ribcage
+                                                          #(_)
+                                                          #((top))
+                                                          #("i4512"))
+                                                        #(ribcage () () ())
+                                                        #(ribcage
+                                                          #(x)
+                                                          #((top))
+                                                          #("i4506"))
+                                                        #(ribcage
+                                                          (emit quasivector
+                                                                quasilist*
+                                                                quasiappend
+                                                                quasicons
+                                                                vquasi
+                                                                quasi)
+                                                          ((top)
+                                                           (top)
+                                                           (top)
+                                                           (top)
+                                                           (top)
+                                                           (top)
+                                                           (top))
+                                                          ("i4377"
+                                                           "i4375"
+                                                           "i4373"
+                                                           "i4371"
+                                                           "i4369"
+                                                           "i4367"
+                                                           "i4365")))
+                                                       (hygiene guile))
+                                                    #{\ g4549\ 4554}#))))))))))))))
+                     (begin
+                       (#{f\ 4517}#
+                         #{x\ 4505}#
+                         (lambda (#{ls\ 4520}#)
+                           (let ((#{tmp\ 4525}# #{ls\ 4520}#))
+                             (let ((#{tmp\ 4526}#
+                                     ($sc-dispatch #{tmp\ 4525}# 'each-any)))
+                               (if #{tmp\ 4526}#
+                                 (@apply
+                                   (lambda (#{\ g4522\ 4528}#)
+                                     (cons '#(syntax-object
+                                              "vector"
+                                              ((top)
+                                               #(ribcage
+                                                 #(#{\ g4522}#)
+                                                 #((m4523 top))
+                                                 #("i4527"))
+                                               #(ribcage () () ())
+                                               #(ribcage () () ())
+                                               #(ribcage () () ())
+                                               #(ribcage
+                                                 #(ls)
+                                                 #((top))
+                                                 #("i4521"))
+                                               #(ribcage
+                                                 #(_)
+                                                 #((top))
+                                                 #("i4512"))
+                                               #(ribcage () () ())
+                                               #(ribcage
+                                                 #(x)
+                                                 #((top))
+                                                 #("i4506"))
+                                               #(ribcage
+                                                 (emit quasivector
+                                                       quasilist*
+                                                       quasiappend
+                                                       quasicons
+                                                       vquasi
+                                                       quasi)
+                                                 ((top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top))
+                                                 ("i4377"
+                                                  "i4375"
+                                                  "i4373"
+                                                  "i4371"
+                                                  "i4369"
+                                                  "i4367"
+                                                  "i4365")))
+                                              (hygiene guile))
+                                           #{\ g4522\ 4528}#))
+                                   #{tmp\ 4526}#)
+                                 (syntax-violation
+                                   #f
+                                   "source expression failed to match any pattern"
+                                   #{tmp\ 4525}#))))))))))))))
+       (#{emit\ 4378}#
+         (lambda (#{x\ 4555}#)
+           (let ((#{tmp\ 4557}# #{x\ 4555}#))
+             (let ((#{tmp\ 4558}#
+                     ($sc-dispatch
+                       #{tmp\ 4557}#
+                       '(#(atom "quote") any))))
+               (if #{tmp\ 4558}#
+                 (@apply
+                   (lambda (#{x\ 4560}#)
+                     (list '#(syntax-object
+                              quote
+                              ((top)
+                               #(ribcage #(x) #((top)) #("i4559"))
+                               #(ribcage () () ())
+                               #(ribcage #(x) #((top)) #("i4556"))
+                               #(ribcage
+                                 (emit quasivector
+                                       quasilist*
+                                       quasiappend
+                                       quasicons
+                                       vquasi
+                                       quasi)
+                                 ((top) (top) (top) (top) (top) (top) (top))
+                                 ("i4377"
+                                  "i4375"
+                                  "i4373"
+                                  "i4371"
+                                  "i4369"
+                                  "i4367"
+                                  "i4365")))
+                              (hygiene guile))
+                           #{x\ 4560}#))
+                   #{tmp\ 4558}#)
+                 (let ((#{tmp\ 4561}#
+                         ($sc-dispatch
+                           #{tmp\ 4557}#
+                           '(#(atom "list") . each-any))))
+                   (if #{tmp\ 4561}#
+                     (@apply
+                       (lambda (#{x\ 4563}#)
+                         (let ((#{tmp\ 4567}#
+                                 (map #{emit\ 4378}# #{x\ 4563}#)))
+                           (let ((#{tmp\ 4568}#
+                                   ($sc-dispatch #{tmp\ 4567}# 'each-any)))
+                             (if #{tmp\ 4568}#
+                               (@apply
+                                 (lambda (#{\ g4564\ 4570}#)
+                                   (cons '#(syntax-object
+                                            list
+                                            ((top)
+                                             #(ribcage
+                                               #(#{\ g4564}#)
+                                               #((m4565 top))
+                                               #("i4569"))
+                                             #(ribcage
+                                               #(x)
+                                               #((top))
+                                               #("i4562"))
+                                             #(ribcage () () ())
+                                             #(ribcage
+                                               #(x)
+                                               #((top))
+                                               #("i4556"))
+                                             #(ribcage
+                                               (emit quasivector
+                                                     quasilist*
+                                                     quasiappend
+                                                     quasicons
+                                                     vquasi
+                                                     quasi)
+                                               ((top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top))
+                                               ("i4377"
+                                                "i4375"
+                                                "i4373"
+                                                "i4371"
+                                                "i4369"
                                                 "i4367"
-                                                "i4368")))
-                                           (hygiene guile)))
-                                       (#{quasi\ 4372}#
-                                         (list #{p\ 4460}#)
-                                         (1+ #{lev\ 4432}#))))
-                                   #{tmp\ 4458}#)
-                                 (let ((#{tmp\ 4461}#
-                                         ($sc-dispatch
-                                           #{tmp\ 4435}#
-                                           '(any . any))))
-                                   (if #{tmp\ 4461}#
-                                     (@apply
-                                       (lambda (#{p\ 4464}# #{q\ 4465}#)
-                                         (#{quasicons\ 4369}#
-                                           (#{quasi\ 4372}#
-                                             #{p\ 4464}#
-                                             #{lev\ 4432}#)
-                                           (#{quasi\ 4372}#
-                                             #{q\ 4465}#
-                                             #{lev\ 4432}#)))
-                                       #{tmp\ 4461}#)
-                                     (let ((#{tmp\ 4466}#
-                                             ($sc-dispatch
-                                               #{tmp\ 4435}#
-                                               '#(vector each-any))))
-                                       (if #{tmp\ 4466}#
-                                         (@apply
-                                           (lambda (#{x\ 4468}#)
-                                             (#{quasivector\ 4371}#
-                                               (#{quasi\ 4372}#
-                                                 #{x\ 4468}#
-                                                 #{lev\ 4432}#)))
-                                           #{tmp\ 4466}#)
-                                         (let ((#{p\ 4471}# #{tmp\ 4435}#))
-                                           (list '#(syntax-object
-                                                    quote
+                                                "i4365")))
+                                            (hygiene guile))
+                                         #{\ g4564\ 4570}#))
+                                 #{tmp\ 4568}#)
+                               (syntax-violation
+                                 #f
+                                 "source expression failed to match any pattern"
+                                 #{tmp\ 4567}#)))))
+                       #{tmp\ 4561}#)
+                     (let ((#{tmp\ 4573}#
+                             ($sc-dispatch
+                               #{tmp\ 4557}#
+                               '(#(atom "list*") . #(each+ any (any) ())))))
+                       (if #{tmp\ 4573}#
+                         (@apply
+                           (lambda (#{x\ 4576}# #{y\ 4577}#)
+                             (letrec*
+                               ((#{f\ 4580}#
+                                  (lambda (#{x*\ 4581}#)
+                                    (if (null? #{x*\ 4581}#)
+                                      (#{emit\ 4378}# #{y\ 4577}#)
+                                      (let ((#{tmp\ 4587}#
+                                              (list (#{emit\ 4378}#
+                                                      (car #{x*\ 4581}#))
+                                                    (#{f\ 4580}#
+                                                      (cdr #{x*\ 4581}#)))))
+                                        (let ((#{tmp\ 4588}#
+                                                ($sc-dispatch
+                                                  #{tmp\ 4587}#
+                                                  '(any any))))
+                                          (if #{tmp\ 4588}#
+                                            (@apply
+                                              (lambda (#{\ g4584\ 4591}#
+                                                       #{\ g4583\ 4592}#)
+                                                (list '#(syntax-object
+                                                         cons
+                                                         ((top)
+                                                          #(ribcage
+                                                            #(#{\ g4584}#
+                                                              #{\ g4583}#)
+                                                            #((m4585 top)
+                                                              (m4585 top))
+                                                            #("i4589" "i4590"))
+                                                          #(ribcage () () ())
+                                                          #(ribcage
+                                                            #(f x*)
+                                                            #((top) (top))
+                                                            #("i4578" "i4579"))
+                                                          #(ribcage
+                                                            #(x y)
+                                                            #((top) (top))
+                                                            #("i4574" "i4575"))
+                                                          #(ribcage () () ())
+                                                          #(ribcage
+                                                            #(x)
+                                                            #((top))
+                                                            #("i4556"))
+                                                          #(ribcage
+                                                            (emit quasivector
+                                                                  quasilist*
+                                                                  quasiappend
+                                                                  quasicons
+                                                                  vquasi
+                                                                  quasi)
+                                                            ((top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top))
+                                                            ("i4377"
+                                                             "i4375"
+                                                             "i4373"
+                                                             "i4371"
+                                                             "i4369"
+                                                             "i4367"
+                                                             "i4365")))
+                                                         (hygiene guile))
+                                                      #{\ g4584\ 4591}#
+                                                      #{\ g4583\ 4592}#))
+                                              #{tmp\ 4588}#)
+                                            (syntax-violation
+                                              #f
+                                              "source expression failed to match any pattern"
+                                              #{tmp\ 4587}#))))))))
+                               (begin (#{f\ 4580}# #{x\ 4576}#))))
+                           #{tmp\ 4573}#)
+                         (let ((#{tmp\ 4593}#
+                                 ($sc-dispatch
+                                   #{tmp\ 4557}#
+                                   '(#(atom "append") . each-any))))
+                           (if #{tmp\ 4593}#
+                             (@apply
+                               (lambda (#{x\ 4595}#)
+                                 (let ((#{tmp\ 4599}#
+                                         (map #{emit\ 4378}# #{x\ 4595}#)))
+                                   (let ((#{tmp\ 4600}#
+                                           ($sc-dispatch
+                                             #{tmp\ 4599}#
+                                             'each-any)))
+                                     (if #{tmp\ 4600}#
+                                       (@apply
+                                         (lambda (#{\ g4596\ 4602}#)
+                                           (cons '#(syntax-object
+                                                    append
                                                     ((top)
                                                      #(ribcage
-                                                       #(p)
+                                                       #(#{\ g4596}#)
+                                                       #((m4597 top))
+                                                       #("i4601"))
+                                                     #(ribcage
+                                                       #(x)
                                                        #((top))
-                                                       #("i4470"))
+                                                       #("i4594"))
                                                      #(ribcage () () ())
                                                      #(ribcage
-                                                       #(p lev)
-                                                       #((top) (top))
-                                                       #("i4433" "i4434"))
+                                                       #(x)
+                                                       #((top))
+                                                       #("i4556"))
                                                      #(ribcage
-                                                       #(quasicons
-                                                         quasiappend
-                                                         quasivector
-                                                         quasi)
-                                                       #((top)
-                                                         (top)
-                                                         (top)
-                                                         (top))
-                                                       #("i4365"
-                                                         "i4366"
-                                                         "i4367"
-                                                         "i4368")))
+                                                       (emit quasivector
+                                                             quasilist*
+                                                             quasiappend
+                                                             quasicons
+                                                             vquasi
+                                                             quasi)
+                                                       ((top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top))
+                                                       ("i4377"
+                                                        "i4375"
+                                                        "i4373"
+                                                        "i4371"
+                                                        "i4369"
+                                                        "i4367"
+                                                        "i4365")))
                                                     (hygiene guile))
-                                                 #{p\ 4471}#))))))))))))))))))))
+                                                 #{\ g4596\ 4602}#))
+                                         #{tmp\ 4600}#)
+                                       (syntax-violation
+                                         #f
+                                         "source expression failed to match any pattern"
+                                         #{tmp\ 4599}#)))))
+                               #{tmp\ 4593}#)
+                             (let ((#{tmp\ 4605}#
+                                     ($sc-dispatch
+                                       #{tmp\ 4557}#
+                                       '(#(atom "vector") . each-any))))
+                               (if #{tmp\ 4605}#
+                                 (@apply
+                                   (lambda (#{x\ 4607}#)
+                                     (let ((#{tmp\ 4611}#
+                                             (map #{emit\ 4378}# #{x\ 4607}#)))
+                                       (let ((#{tmp\ 4612}#
+                                               ($sc-dispatch
+                                                 #{tmp\ 4611}#
+                                                 'each-any)))
+                                         (if #{tmp\ 4612}#
+                                           (@apply
+                                             (lambda (#{\ g4608\ 4614}#)
+                                               (cons '#(syntax-object
+                                                        vector
+                                                        ((top)
+                                                         #(ribcage
+                                                           #(#{\ g4608}#)
+                                                           #((m4609 top))
+                                                           #("i4613"))
+                                                         #(ribcage
+                                                           #(x)
+                                                           #((top))
+                                                           #("i4606"))
+                                                         #(ribcage () () ())
+                                                         #(ribcage
+                                                           #(x)
+                                                           #((top))
+                                                           #("i4556"))
+                                                         #(ribcage
+                                                           (emit quasivector
+                                                                 quasilist*
+                                                                 quasiappend
+                                                                 quasicons
+                                                                 vquasi
+                                                                 quasi)
+                                                           ((top)
+                                                            (top)
+                                                            (top)
+                                                            (top)
+                                                            (top)
+                                                            (top)
+                                                            (top))
+                                                           ("i4377"
+                                                            "i4375"
+                                                            "i4373"
+                                                            "i4371"
+                                                            "i4369"
+                                                            "i4367"
+                                                            "i4365")))
+                                                        (hygiene guile))
+                                                     #{\ g4608\ 4614}#))
+                                             #{tmp\ 4612}#)
+                                           (syntax-violation
+                                             #f
+                                             "source expression failed to match any pattern"
+                                             #{tmp\ 4611}#)))))
+                                   #{tmp\ 4605}#)
+                                 (let ((#{tmp\ 4617}#
+                                         ($sc-dispatch
+                                           #{tmp\ 4557}#
+                                           '(#(atom "list->vector") any))))
+                                   (if #{tmp\ 4617}#
+                                     (@apply
+                                       (lambda (#{x\ 4619}#)
+                                         (let ((#{tmp\ 4623}#
+                                                 (#{emit\ 4378}# #{x\ 4619}#)))
+                                           (let ((#{\ g4620\ 4625}#
+                                                   #{tmp\ 4623}#))
+                                             (list '#(syntax-object
+                                                      list->vector
+                                                      ((top)
+                                                       #(ribcage
+                                                         #(#{\ g4620}#)
+                                                         #((m4621 top))
+                                                         #("i4624"))
+                                                       #(ribcage
+                                                         #(x)
+                                                         #((top))
+                                                         #("i4618"))
+                                                       #(ribcage () () ())
+                                                       #(ribcage
+                                                         #(x)
+                                                         #((top))
+                                                         #("i4556"))
+                                                       #(ribcage
+                                                         (emit quasivector
+                                                               quasilist*
+                                                               quasiappend
+                                                               quasicons
+                                                               vquasi
+                                                               quasi)
+                                                         ((top)
+                                                          (top)
+                                                          (top)
+                                                          (top)
+                                                          (top)
+                                                          (top)
+                                                          (top))
+                                                         ("i4377"
+                                                          "i4375"
+                                                          "i4373"
+                                                          "i4371"
+                                                          "i4369"
+                                                          "i4367"
+                                                          "i4365")))
+                                                      (hygiene guile))
+                                                   #{\ g4620\ 4625}#))))
+                                       #{tmp\ 4617}#)
+                                     (let ((#{tmp\ 4626}#
+                                             ($sc-dispatch
+                                               #{tmp\ 4557}#
+                                               '(#(atom "value") any))))
+                                       (if #{tmp\ 4626}#
+                                         (@apply
+                                           (lambda (#{x\ 4628}#) #{x\ 4628}#)
+                                           #{tmp\ 4626}#)
+                                         (syntax-violation
+                                           #f
+                                           "source expression failed to match any pattern"
+                                           #{tmp\ 4557}#)))))))))))))))))))
       (begin
-        (lambda (#{x\ 4472}#)
-          (let ((#{tmp\ 4474}# #{x\ 4472}#))
-            (let ((#{tmp\ 4475}#
-                    ($sc-dispatch #{tmp\ 4474}# '(_ any))))
-              (if #{tmp\ 4475}#
+        (lambda (#{x\ 4629}#)
+          (let ((#{tmp\ 4631}# #{x\ 4629}#))
+            (let ((#{tmp\ 4632}#
+                    ($sc-dispatch #{tmp\ 4631}# '(_ any))))
+              (if #{tmp\ 4632}#
                 (@apply
-                  (lambda (#{e\ 4477}#)
-                    (#{quasi\ 4372}# #{e\ 4477}# 0))
-                  #{tmp\ 4475}#)
+                  (lambda (#{e\ 4634}#)
+                    (#{emit\ 4378}# (#{quasi\ 4366}# #{e\ 4634}# 0)))
+                  #{tmp\ 4632}#)
                 (syntax-violation
                   #f
                   "source expression failed to match any pattern"
-                  #{tmp\ 4474}#)))))))))
+                  #{tmp\ 4631}#)))))))))
 
 (define include
   (make-syntax-transformer
     'include
     'macro
-    (lambda (#{x\ 4478}#)
+    (lambda (#{x\ 4635}#)
       (letrec*
-        ((#{read-file\ 4481}#
-           (lambda (#{fn\ 4482}# #{k\ 4483}#)
+        ((#{read-file\ 4638}#
+           (lambda (#{fn\ 4639}# #{k\ 4640}#)
              (begin
-               (let ((#{p\ 4487}# (open-input-file #{fn\ 4482}#)))
+               (let ((#{p\ 4644}# (open-input-file #{fn\ 4639}#)))
                  (letrec*
-                   ((#{f\ 4491}#
-                      (lambda (#{x\ 4492}# #{result\ 4493}#)
-                        (if (eof-object? #{x\ 4492}#)
+                   ((#{f\ 4648}#
+                      (lambda (#{x\ 4649}# #{result\ 4650}#)
+                        (if (eof-object? #{x\ 4649}#)
                           (begin
-                            (close-input-port #{p\ 4487}#)
-                            (reverse #{result\ 4493}#))
-                          (#{f\ 4491}#
-                            (read #{p\ 4487}#)
-                            (cons (datum->syntax #{k\ 4483}# #{x\ 4492}#)
-                                  #{result\ 4493}#))))))
-                   (begin (#{f\ 4491}# (read #{p\ 4487}#) '()))))))))
+                            (close-input-port #{p\ 4644}#)
+                            (reverse #{result\ 4650}#))
+                          (#{f\ 4648}#
+                            (read #{p\ 4644}#)
+                            (cons (datum->syntax #{k\ 4640}# #{x\ 4649}#)
+                                  #{result\ 4650}#))))))
+                   (begin (#{f\ 4648}# (read #{p\ 4644}#) '()))))))))
         (begin
-          (let ((#{tmp\ 4494}# #{x\ 4478}#))
-            (let ((#{tmp\ 4495}#
-                    ($sc-dispatch #{tmp\ 4494}# '(any any))))
-              (if #{tmp\ 4495}#
+          (let ((#{tmp\ 4651}# #{x\ 4635}#))
+            (let ((#{tmp\ 4652}#
+                    ($sc-dispatch #{tmp\ 4651}# '(any any))))
+              (if #{tmp\ 4652}#
                 (@apply
-                  (lambda (#{k\ 4498}# #{filename\ 4499}#)
+                  (lambda (#{k\ 4655}# #{filename\ 4656}#)
                     (begin
-                      (let ((#{fn\ 4501}# (syntax->datum #{filename\ 4499}#)))
-                        (let ((#{tmp\ 4503}#
-                                (#{read-file\ 4481}#
-                                  #{fn\ 4501}#
-                                  #{filename\ 4499}#)))
-                          (let ((#{tmp\ 4504}#
-                                  ($sc-dispatch #{tmp\ 4503}# 'each-any)))
-                            (if #{tmp\ 4504}#
+                      (let ((#{fn\ 4658}# (syntax->datum #{filename\ 4656}#)))
+                        (let ((#{tmp\ 4660}#
+                                (#{read-file\ 4638}#
+                                  #{fn\ 4658}#
+                                  #{filename\ 4656}#)))
+                          (let ((#{tmp\ 4661}#
+                                  ($sc-dispatch #{tmp\ 4660}# 'each-any)))
+                            (if #{tmp\ 4661}#
                               (@apply
-                                (lambda (#{exp\ 4506}#)
+                                (lambda (#{exp\ 4663}#)
                                   (cons '#(syntax-object
                                            begin
                                            ((top)
                                             #(ribcage
                                               #(exp)
                                               #((top))
-                                              #("i4505"))
+                                              #("i4662"))
                                             #(ribcage () () ())
                                             #(ribcage () () ())
                                             #(ribcage
                                               #(fn)
                                               #((top))
-                                              #("i4500"))
+                                              #("i4657"))
                                             #(ribcage
                                               #(k filename)
                                               #((top) (top))
-                                              #("i4496" "i4497"))
+                                              #("i4653" "i4654"))
                                             #(ribcage
                                               (read-file)
                                               ((top))
-                                              ("i4480"))
+                                              ("i4637"))
                                             #(ribcage
                                               #(x)
                                               #((top))
-                                              #("i4479")))
+                                              #("i4636")))
                                            (hygiene guile))
-                                        #{exp\ 4506}#))
-                                #{tmp\ 4504}#)
+                                        #{exp\ 4663}#))
+                                #{tmp\ 4661}#)
                               (syntax-violation
                                 #f
                                 "source expression failed to match any pattern"
-                                #{tmp\ 4503}#)))))))
-                  #{tmp\ 4495}#)
+                                #{tmp\ 4660}#)))))))
+                  #{tmp\ 4652}#)
                 (syntax-violation
                   #f
                   "source expression failed to match any pattern"
-                  #{tmp\ 4494}#)))))))))
+                  #{tmp\ 4651}#)))))))))
 
 (define include-from-path
   (make-syntax-transformer
     'include-from-path
     'macro
-    (lambda (#{x\ 4508}#)
-      (let ((#{tmp\ 4510}# #{x\ 4508}#))
-        (let ((#{tmp\ 4511}#
-                ($sc-dispatch #{tmp\ 4510}# '(any any))))
-          (if #{tmp\ 4511}#
+    (lambda (#{x\ 4665}#)
+      (let ((#{tmp\ 4667}# #{x\ 4665}#))
+        (let ((#{tmp\ 4668}#
+                ($sc-dispatch #{tmp\ 4667}# '(any any))))
+          (if #{tmp\ 4668}#
             (@apply
-              (lambda (#{k\ 4514}# #{filename\ 4515}#)
+              (lambda (#{k\ 4671}# #{filename\ 4672}#)
                 (begin
-                  (let ((#{fn\ 4517}# (syntax->datum #{filename\ 4515}#)))
-                    (let ((#{tmp\ 4519}#
+                  (let ((#{fn\ 4674}# (syntax->datum #{filename\ 4672}#)))
+                    (let ((#{tmp\ 4676}#
                             (datum->syntax
-                              #{filename\ 4515}#
+                              #{filename\ 4672}#
                               (begin
-                                (let ((#{t\ 4524}#
-                                        (%search-load-path #{fn\ 4517}#)))
-                                  (if #{t\ 4524}#
-                                    #{t\ 4524}#
+                                (let ((#{t\ 4681}#
+                                        (%search-load-path #{fn\ 4674}#)))
+                                  (if #{t\ 4681}#
+                                    #{t\ 4681}#
                                     (syntax-violation
                                       'include-from-path
                                       "file not found in path"
-                                      #{x\ 4508}#
-                                      #{filename\ 4515}#)))))))
-                      (let ((#{fn\ 4521}# #{tmp\ 4519}#))
+                                      #{x\ 4665}#
+                                      #{filename\ 4672}#)))))))
+                      (let ((#{fn\ 4678}# #{tmp\ 4676}#))
                         (list '#(syntax-object
                                  include
                                  ((top)
-                                  #(ribcage #(fn) #((top)) #("i4520"))
+                                  #(ribcage #(fn) #((top)) #("i4677"))
                                   #(ribcage () () ())
                                   #(ribcage () () ())
-                                  #(ribcage #(fn) #((top)) #("i4516"))
+                                  #(ribcage #(fn) #((top)) #("i4673"))
                                   #(ribcage
                                     #(k filename)
                                     #((top) (top))
-                                    #("i4512" "i4513"))
+                                    #("i4669" "i4670"))
                                   #(ribcage () () ())
-                                  #(ribcage #(x) #((top)) #("i4509")))
+                                  #(ribcage #(x) #((top)) #("i4666")))
                                  (hygiene guile))
-                              #{fn\ 4521}#))))))
-              #{tmp\ 4511}#)
+                              #{fn\ 4678}#))))))
+              #{tmp\ 4668}#)
             (syntax-violation
               #f
               "source expression failed to match any pattern"
-              #{tmp\ 4510}#)))))))
+              #{tmp\ 4667}#)))))))
 
 (define unquote
   (make-syntax-transformer
     'unquote
     'macro
-    (lambda (#{x\ 4526}#)
-      (let ((#{tmp\ 4528}# #{x\ 4526}#))
-        (let ((#{tmp\ 4529}#
-                ($sc-dispatch #{tmp\ 4528}# '(_ any))))
-          (if #{tmp\ 4529}#
-            (@apply
-              (lambda (#{e\ 4531}#)
-                (syntax-violation
-                  'unquote
-                  "expression not valid outside of quasiquote"
-                  #{x\ 4526}#))
-              #{tmp\ 4529}#)
-            (syntax-violation
-              #f
-              "source expression failed to match any pattern"
-              #{tmp\ 4528}#)))))))
+    (lambda (#{x\ 4683}#)
+      (syntax-violation
+        'unquote
+        "expression not valid outside of quasiquote"
+        #{x\ 4683}#))))
 
 (define unquote-splicing
   (make-syntax-transformer
     'unquote-splicing
     'macro
-    (lambda (#{x\ 4532}#)
-      (let ((#{tmp\ 4534}# #{x\ 4532}#))
-        (let ((#{tmp\ 4535}#
-                ($sc-dispatch #{tmp\ 4534}# '(_ any))))
-          (if #{tmp\ 4535}#
-            (@apply
-              (lambda (#{e\ 4537}#)
-                (syntax-violation
-                  'unquote-splicing
-                  "expression not valid outside of quasiquote"
-                  #{x\ 4532}#))
-              #{tmp\ 4535}#)
-            (syntax-violation
-              #f
-              "source expression failed to match any pattern"
-              #{tmp\ 4534}#)))))))
+    (lambda (#{x\ 4685}#)
+      (syntax-violation
+        'unquote-splicing
+        "expression not valid outside of quasiquote"
+        #{x\ 4685}#))))
 
 (define case
   (make-syntax-transformer
     'case
     'macro
-    (lambda (#{x\ 4538}#)
-      (let ((#{tmp\ 4540}# #{x\ 4538}#))
-        (let ((#{tmp\ 4541}#
+    (lambda (#{x\ 4687}#)
+      (let ((#{tmp\ 4689}# #{x\ 4687}#))
+        (let ((#{tmp\ 4690}#
                 ($sc-dispatch
-                  #{tmp\ 4540}#
+                  #{tmp\ 4689}#
                   '(_ any any . each-any))))
-          (if #{tmp\ 4541}#
+          (if #{tmp\ 4690}#
             (@apply
-              (lambda (#{e\ 4545}# #{m1\ 4546}# #{m2\ 4547}#)
-                (let ((#{tmp\ 4549}#
+              (lambda (#{e\ 4694}# #{m1\ 4695}# #{m2\ 4696}#)
+                (let ((#{tmp\ 4698}#
                         (letrec*
-                          ((#{f\ 4555}#
-                             (lambda (#{clause\ 4556}# #{clauses\ 4557}#)
-                               (if (null? #{clauses\ 4557}#)
-                                 (let ((#{tmp\ 4559}# #{clause\ 4556}#))
-                                   (let ((#{tmp\ 4560}#
+                          ((#{f\ 4704}#
+                             (lambda (#{clause\ 4705}# #{clauses\ 4706}#)
+                               (if (null? #{clauses\ 4706}#)
+                                 (let ((#{tmp\ 4708}# #{clause\ 4705}#))
+                                   (let ((#{tmp\ 4709}#
                                            ($sc-dispatch
-                                             #{tmp\ 4559}#
+                                             #{tmp\ 4708}#
                                              '(#(free-id
                                                  #(syntax-object
                                                    else
                                                     #(ribcage
                                                       #(f clause clauses)
                                                       #((top) (top) (top))
-                                                      #("i4552"
-                                                        "i4553"
-                                                        "i4554"))
+                                                      #("i4701"
+                                                        "i4702"
+                                                        "i4703"))
                                                     #(ribcage
                                                       #(e m1 m2)
                                                       #((top) (top) (top))
-                                                      #("i4542"
-                                                        "i4543"
-                                                        "i4544"))
+                                                      #("i4691"
+                                                        "i4692"
+                                                        "i4693"))
                                                     #(ribcage () () ())
                                                     #(ribcage
                                                       #(x)
                                                       #((top))
-                                                      #("i4539")))
+                                                      #("i4688")))
                                                    (hygiene guile)))
                                                any
                                                .
                                                each-any))))
-                                     (if #{tmp\ 4560}#
+                                     (if #{tmp\ 4709}#
                                        (@apply
-                                         (lambda (#{e1\ 4563}# #{e2\ 4564}#)
+                                         (lambda (#{e1\ 4712}# #{e2\ 4713}#)
                                            (cons '#(syntax-object
                                                     begin
                                                     ((top)
                                                      #(ribcage
                                                        #(e1 e2)
                                                        #((top) (top))
-                                                       #("i4561" "i4562"))
+                                                       #("i4710" "i4711"))
                                                      #(ribcage () () ())
                                                      #(ribcage
                                                        #(f clause clauses)
                                                        #((top) (top) (top))
-                                                       #("i4552"
-                                                         "i4553"
-                                                         "i4554"))
+                                                       #("i4701"
+                                                         "i4702"
+                                                         "i4703"))
                                                      #(ribcage
                                                        #(e m1 m2)
                                                        #((top) (top) (top))
-                                                       #("i4542"
-                                                         "i4543"
-                                                         "i4544"))
+                                                       #("i4691"
+                                                         "i4692"
+                                                         "i4693"))
                                                      #(ribcage () () ())
                                                      #(ribcage
                                                        #(x)
                                                        #((top))
-                                                       #("i4539")))
+                                                       #("i4688")))
                                                     (hygiene guile))
-                                                 (cons #{e1\ 4563}#
-                                                       #{e2\ 4564}#)))
-                                         #{tmp\ 4560}#)
-                                       (let ((#{tmp\ 4566}#
+                                                 (cons #{e1\ 4712}#
+                                                       #{e2\ 4713}#)))
+                                         #{tmp\ 4709}#)
+                                       (let ((#{tmp\ 4715}#
                                                ($sc-dispatch
-                                                 #{tmp\ 4559}#
+                                                 #{tmp\ 4708}#
                                                  '(each-any any . each-any))))
-                                         (if #{tmp\ 4566}#
+                                         (if #{tmp\ 4715}#
                                            (@apply
-                                             (lambda (#{k\ 4570}#
-                                                      #{e1\ 4571}#
-                                                      #{e2\ 4572}#)
+                                             (lambda (#{k\ 4719}#
+                                                      #{e1\ 4720}#
+                                                      #{e2\ 4721}#)
                                                (list '#(syntax-object
                                                         if
                                                         ((top)
                                                          #(ribcage
                                                            #(k e1 e2)
                                                            #((top) (top) (top))
-                                                           #("i4567"
-                                                             "i4568"
-                                                             "i4569"))
+                                                           #("i4716"
+                                                             "i4717"
+                                                             "i4718"))
                                                          #(ribcage () () ())
                                                          #(ribcage
                                                            #(f clause clauses)
                                                            #((top) (top) (top))
-                                                           #("i4552"
-                                                             "i4553"
-                                                             "i4554"))
+                                                           #("i4701"
+                                                             "i4702"
+                                                             "i4703"))
                                                          #(ribcage
                                                            #(e m1 m2)
                                                            #((top) (top) (top))
-                                                           #("i4542"
-                                                             "i4543"
-                                                             "i4544"))
+                                                           #("i4691"
+                                                             "i4692"
+                                                             "i4693"))
                                                          #(ribcage () () ())
                                                          #(ribcage
                                                            #(x)
                                                            #((top))
-                                                           #("i4539")))
+                                                           #("i4688")))
                                                         (hygiene guile))
                                                      (list '#(syntax-object
                                                               memv
                                                                  #((top)
                                                                    (top)
                                                                    (top))
-                                                                 #("i4567"
-                                                                   "i4568"
-                                                                   "i4569"))
+                                                                 #("i4716"
+                                                                   "i4717"
+                                                                   "i4718"))
                                                                #(ribcage
                                                                  ()
                                                                  ()
                                                                  #((top)
                                                                    (top)
                                                                    (top))
-                                                                 #("i4552"
-                                                                   "i4553"
-                                                                   "i4554"))
+                                                                 #("i4701"
+                                                                   "i4702"
+                                                                   "i4703"))
                                                                #(ribcage
                                                                  #(e m1 m2)
                                                                  #((top)
                                                                    (top)
                                                                    (top))
-                                                                 #("i4542"
-                                                                   "i4543"
-                                                                   "i4544"))
+                                                                 #("i4691"
+                                                                   "i4692"
+                                                                   "i4693"))
                                                                #(ribcage
                                                                  ()
                                                                  ()
                                                                #(ribcage
                                                                  #(x)
                                                                  #((top))
-                                                                 #("i4539")))
+                                                                 #("i4688")))
                                                               (hygiene guile))
                                                            '#(syntax-object
                                                               t
                                                                  #((top)
                                                                    (top)
                                                                    (top))
-                                                                 #("i4567"
-                                                                   "i4568"
-                                                                   "i4569"))
+                                                                 #("i4716"
+                                                                   "i4717"
+                                                                   "i4718"))
                                                                #(ribcage
                                                                  ()
                                                                  ()
                                                                  #((top)
                                                                    (top)
                                                                    (top))
-                                                                 #("i4552"
-                                                                   "i4553"
-                                                                   "i4554"))
+                                                                 #("i4701"
+                                                                   "i4702"
+                                                                   "i4703"))
                                                                #(ribcage
                                                                  #(e m1 m2)
                                                                  #((top)
                                                                    (top)
                                                                    (top))
-                                                                 #("i4542"
-                                                                   "i4543"
-                                                                   "i4544"))
+                                                                 #("i4691"
+                                                                   "i4692"
+                                                                   "i4693"))
                                                                #(ribcage
                                                                  ()
                                                                  ()
                                                                #(ribcage
                                                                  #(x)
                                                                  #((top))
-                                                                 #("i4539")))
+                                                                 #("i4688")))
                                                               (hygiene guile))
                                                            (list '#(syntax-object
                                                                     quote
                                                                        #((top)
                                                                          (top)
                                                                          (top))
-                                                                       #("i4567"
-                                                                         "i4568"
-                                                                         "i4569"))
+                                                                       #("i4716"
+                                                                         "i4717"
+                                                                         "i4718"))
                                                                      #(ribcage
                                                                        ()
                                                                        ()
                                                                        #((top)
                                                                          (top)
                                                                          (top))
-                                                                       #("i4552"
-                                                                         "i4553"
-                                                                         "i4554"))
+                                                                       #("i4701"
+                                                                         "i4702"
+                                                                         "i4703"))
                                                                      #(ribcage
                                                                        #(e
                                                                          m1
                                                                        #((top)
                                                                          (top)
                                                                          (top))
-                                                                       #("i4542"
-                                                                         "i4543"
-                                                                         "i4544"))
+                                                                       #("i4691"
+                                                                         "i4692"
+                                                                         "i4693"))
                                                                      #(ribcage
                                                                        ()
                                                                        ()
                                                                      #(ribcage
                                                                        #(x)
                                                                        #((top))
-                                                                       #("i4539")))
+                                                                       #("i4688")))
                                                                     (hygiene
                                                                       guile))
-                                                                 #{k\ 4570}#))
+                                                                 #{k\ 4719}#))
                                                      (cons '#(syntax-object
                                                               begin
                                                               ((top)
                                                                  #((top)
                                                                    (top)
                                                                    (top))
-                                                                 #("i4567"
-                                                                   "i4568"
-                                                                   "i4569"))
+                                                                 #("i4716"
+                                                                   "i4717"
+                                                                   "i4718"))
                                                                #(ribcage
                                                                  ()
                                                                  ()
                                                                  #((top)
                                                                    (top)
                                                                    (top))
-                                                                 #("i4552"
-                                                                   "i4553"
-                                                                   "i4554"))
+                                                                 #("i4701"
+                                                                   "i4702"
+                                                                   "i4703"))
                                                                #(ribcage
                                                                  #(e m1 m2)
                                                                  #((top)
                                                                    (top)
                                                                    (top))
-                                                                 #("i4542"
-                                                                   "i4543"
-                                                                   "i4544"))
+                                                                 #("i4691"
+                                                                   "i4692"
+                                                                   "i4693"))
                                                                #(ribcage
                                                                  ()
                                                                  ()
                                                                #(ribcage
                                                                  #(x)
                                                                  #((top))
-                                                                 #("i4539")))
+                                                                 #("i4688")))
                                                               (hygiene guile))
-                                                           (cons #{e1\ 4571}#
-                                                                 #{e2\ 4572}#))))
-                                             #{tmp\ 4566}#)
-                                           (let ((#{_\ 4576}# #{tmp\ 4559}#))
+                                                           (cons #{e1\ 4720}#
+                                                                 #{e2\ 4721}#))))
+                                             #{tmp\ 4715}#)
+                                           (let ((#{_\ 4725}# #{tmp\ 4708}#))
                                              (syntax-violation
                                                'case
                                                "bad clause"
-                                               #{x\ 4538}#
-                                               #{clause\ 4556}#)))))))
-                                 (let ((#{tmp\ 4578}#
-                                         (#{f\ 4555}#
-                                           (car #{clauses\ 4557}#)
-                                           (cdr #{clauses\ 4557}#))))
-                                   (let ((#{rest\ 4580}# #{tmp\ 4578}#))
-                                     (let ((#{tmp\ 4581}# #{clause\ 4556}#))
-                                       (let ((#{tmp\ 4582}#
+                                               #{x\ 4687}#
+                                               #{clause\ 4705}#)))))))
+                                 (let ((#{tmp\ 4727}#
+                                         (#{f\ 4704}#
+                                           (car #{clauses\ 4706}#)
+                                           (cdr #{clauses\ 4706}#))))
+                                   (let ((#{rest\ 4729}# #{tmp\ 4727}#))
+                                     (let ((#{tmp\ 4730}# #{clause\ 4705}#))
+                                       (let ((#{tmp\ 4731}#
                                                ($sc-dispatch
-                                                 #{tmp\ 4581}#
+                                                 #{tmp\ 4730}#
                                                  '(each-any any . each-any))))
-                                         (if #{tmp\ 4582}#
+                                         (if #{tmp\ 4731}#
                                            (@apply
-                                             (lambda (#{k\ 4586}#
-                                                      #{e1\ 4587}#
-                                                      #{e2\ 4588}#)
+                                             (lambda (#{k\ 4735}#
+                                                      #{e1\ 4736}#
+                                                      #{e2\ 4737}#)
                                                (list '#(syntax-object
                                                         if
                                                         ((top)
                                                          #(ribcage
                                                            #(k e1 e2)
                                                            #((top) (top) (top))
-                                                           #("i4583"
-                                                             "i4584"
-                                                             "i4585"))
+                                                           #("i4732"
+                                                             "i4733"
+                                                             "i4734"))
                                                          #(ribcage
                                                            #(rest)
                                                            #((top))
-                                                           #("i4579"))
+                                                           #("i4728"))
                                                          #(ribcage () () ())
                                                          #(ribcage
                                                            #(f clause clauses)
                                                            #((top) (top) (top))
-                                                           #("i4552"
-                                                             "i4553"
-                                                             "i4554"))
+                                                           #("i4701"
+                                                             "i4702"
+                                                             "i4703"))
                                                          #(ribcage
                                                            #(e m1 m2)
                                                            #((top) (top) (top))
-                                                           #("i4542"
-                                                             "i4543"
-                                                             "i4544"))
+                                                           #("i4691"
+                                                             "i4692"
+                                                             "i4693"))
                                                          #(ribcage () () ())
                                                          #(ribcage
                                                            #(x)
                                                            #((top))
-                                                           #("i4539")))
+                                                           #("i4688")))
                                                         (hygiene guile))
                                                      (list '#(syntax-object
                                                               memv
                                                                  #((top)
                                                                    (top)
                                                                    (top))
-                                                                 #("i4583"
-                                                                   "i4584"
-                                                                   "i4585"))
+                                                                 #("i4732"
+                                                                   "i4733"
+                                                                   "i4734"))
                                                                #(ribcage
                                                                  #(rest)
                                                                  #((top))
-                                                                 #("i4579"))
+                                                                 #("i4728"))
                                                                #(ribcage
                                                                  ()
                                                                  ()
                                                                  #((top)
                                                                    (top)
                                                                    (top))
-                                                                 #("i4552"
-                                                                   "i4553"
-                                                                   "i4554"))
+                                                                 #("i4701"
+                                                                   "i4702"
+                                                                   "i4703"))
                                                                #(ribcage
                                                                  #(e m1 m2)
                                                                  #((top)
                                                                    (top)
                                                                    (top))
-                                                                 #("i4542"
-                                                                   "i4543"
-                                                                   "i4544"))
+                                                                 #("i4691"
+                                                                   "i4692"
+                                                                   "i4693"))
                                                                #(ribcage
                                                                  ()
                                                                  ()
                                                                #(ribcage
                                                                  #(x)
                                                                  #((top))
-                                                                 #("i4539")))
+                                                                 #("i4688")))
                                                               (hygiene guile))
                                                            '#(syntax-object
                                                               t
                                                                  #((top)
                                                                    (top)
                                                                    (top))
-                                                                 #("i4583"
-                                                                   "i4584"
-                                                                   "i4585"))
+                                                                 #("i4732"
+                                                                   "i4733"
+                                                                   "i4734"))
                                                                #(ribcage
                                                                  #(rest)
                                                                  #((top))
-                                                                 #("i4579"))
+                                                                 #("i4728"))
                                                                #(ribcage
                                                                  ()
                                                                  ()
                                                                  #((top)
                                                                    (top)
                                                                    (top))
-                                                                 #("i4552"
-                                                                   "i4553"
-                                                                   "i4554"))
+                                                                 #("i4701"
+                                                                   "i4702"
+                                                                   "i4703"))
                                                                #(ribcage
                                                                  #(e m1 m2)
                                                                  #((top)
                                                                    (top)
                                                                    (top))
-                                                                 #("i4542"
-                                                                   "i4543"
-                                                                   "i4544"))
+                                                                 #("i4691"
+                                                                   "i4692"
+                                                                   "i4693"))
                                                                #(ribcage
                                                                  ()
                                                                  ()
                                                                #(ribcage
                                                                  #(x)
                                                                  #((top))
-                                                                 #("i4539")))
+                                                                 #("i4688")))
                                                               (hygiene guile))
                                                            (list '#(syntax-object
                                                                     quote
                                                                        #((top)
                                                                          (top)
                                                                          (top))
-                                                                       #("i4583"
-                                                                         "i4584"
-                                                                         "i4585"))
+                                                                       #("i4732"
+                                                                         "i4733"
+                                                                         "i4734"))
                                                                      #(ribcage
                                                                        #(rest)
                                                                        #((top))
-                                                                       #("i4579"))
+                                                                       #("i4728"))
                                                                      #(ribcage
                                                                        ()
                                                                        ()
                                                                        #((top)
                                                                          (top)
                                                                          (top))
-                                                                       #("i4552"
-                                                                         "i4553"
-                                                                         "i4554"))
+                                                                       #("i4701"
+                                                                         "i4702"
+                                                                         "i4703"))
                                                                      #(ribcage
                                                                        #(e
                                                                          m1
                                                                        #((top)
                                                                          (top)
                                                                          (top))
-                                                                       #("i4542"
-                                                                         "i4543"
-                                                                         "i4544"))
+                                                                       #("i4691"
+                                                                         "i4692"
+                                                                         "i4693"))
                                                                      #(ribcage
                                                                        ()
                                                                        ()
                                                                      #(ribcage
                                                                        #(x)
                                                                        #((top))
-                                                                       #("i4539")))
+                                                                       #("i4688")))
                                                                     (hygiene
                                                                       guile))
-                                                                 #{k\ 4586}#))
+                                                                 #{k\ 4735}#))
                                                      (cons '#(syntax-object
                                                               begin
                                                               ((top)
                                                                  #((top)
                                                                    (top)
                                                                    (top))
-                                                                 #("i4583"
-                                                                   "i4584"
-                                                                   "i4585"))
+                                                                 #("i4732"
+                                                                   "i4733"
+                                                                   "i4734"))
                                                                #(ribcage
                                                                  #(rest)
                                                                  #((top))
-                                                                 #("i4579"))
+                                                                 #("i4728"))
                                                                #(ribcage
                                                                  ()
                                                                  ()
                                                                  #((top)
                                                                    (top)
                                                                    (top))
-                                                                 #("i4552"
-                                                                   "i4553"
-                                                                   "i4554"))
+                                                                 #("i4701"
+                                                                   "i4702"
+                                                                   "i4703"))
                                                                #(ribcage
                                                                  #(e m1 m2)
                                                                  #((top)
                                                                    (top)
                                                                    (top))
-                                                                 #("i4542"
-                                                                   "i4543"
-                                                                   "i4544"))
+                                                                 #("i4691"
+                                                                   "i4692"
+                                                                   "i4693"))
                                                                #(ribcage
                                                                  ()
                                                                  ()
                                                                #(ribcage
                                                                  #(x)
                                                                  #((top))
-                                                                 #("i4539")))
+                                                                 #("i4688")))
                                                               (hygiene guile))
-                                                           (cons #{e1\ 4587}#
-                                                                 #{e2\ 4588}#))
-                                                     #{rest\ 4580}#))
-                                             #{tmp\ 4582}#)
-                                           (let ((#{_\ 4592}# #{tmp\ 4581}#))
+                                                           (cons #{e1\ 4736}#
+                                                                 #{e2\ 4737}#))
+                                                     #{rest\ 4729}#))
+                                             #{tmp\ 4731}#)
+                                           (let ((#{_\ 4741}# #{tmp\ 4730}#))
                                              (syntax-violation
                                                'case
                                                "bad clause"
-                                               #{x\ 4538}#
-                                               #{clause\ 4556}#)))))))))))
-                          (begin (#{f\ 4555}# #{m1\ 4546}# #{m2\ 4547}#)))))
-                  (let ((#{body\ 4551}# #{tmp\ 4549}#))
+                                               #{x\ 4687}#
+                                               #{clause\ 4705}#)))))))))))
+                          (begin (#{f\ 4704}# #{m1\ 4695}# #{m2\ 4696}#)))))
+                  (let ((#{body\ 4700}# #{tmp\ 4698}#))
                     (list '#(syntax-object
                              let
                              ((top)
-                              #(ribcage #(body) #((top)) #("i4550"))
+                              #(ribcage #(body) #((top)) #("i4699"))
                               #(ribcage
                                 #(e m1 m2)
                                 #((top) (top) (top))
-                                #("i4542" "i4543" "i4544"))
+                                #("i4691" "i4692" "i4693"))
                               #(ribcage () () ())
-                              #(ribcage #(x) #((top)) #("i4539")))
+                              #(ribcage #(x) #((top)) #("i4688")))
                              (hygiene guile))
                           (list (list '#(syntax-object
                                          t
                                           #(ribcage
                                             #(body)
                                             #((top))
-                                            #("i4550"))
+                                            #("i4699"))
                                           #(ribcage
                                             #(e m1 m2)
                                             #((top) (top) (top))
-                                            #("i4542" "i4543" "i4544"))
+                                            #("i4691" "i4692" "i4693"))
                                           #(ribcage () () ())
-                                          #(ribcage #(x) #((top)) #("i4539")))
+                                          #(ribcage #(x) #((top)) #("i4688")))
                                          (hygiene guile))
-                                      #{e\ 4545}#))
-                          #{body\ 4551}#))))
-              #{tmp\ 4541}#)
+                                      #{e\ 4694}#))
+                          #{body\ 4700}#))))
+              #{tmp\ 4690}#)
             (syntax-violation
               #f
               "source expression failed to match any pattern"
-              #{tmp\ 4540}#)))))))
+              #{tmp\ 4689}#)))))))
 
 (define make-variable-transformer
-  (lambda (#{proc\ 4593}#)
-    (if (procedure? #{proc\ 4593}#)
+  (lambda (#{proc\ 4742}#)
+    (if (procedure? #{proc\ 4742}#)
       (begin
         (letrec*
-          ((#{trans\ 4596}#
-             (lambda (#{x\ 4597}#)
-               (#{proc\ 4593}# #{x\ 4597}#))))
+          ((#{trans\ 4745}#
+             (lambda (#{x\ 4746}#)
+               (#{proc\ 4742}# #{x\ 4746}#))))
           (begin
             (set-procedure-property!
-              #{trans\ 4596}#
+              #{trans\ 4745}#
               'variable-transformer
               #t)
-            #{trans\ 4596}#)))
+            #{trans\ 4745}#)))
       (error "variable transformer not a procedure"
-             #{proc\ 4593}#))))
+             #{proc\ 4742}#))))
 
 (define identifier-syntax
   (make-syntax-transformer
     'identifier-syntax
     'macro
-    (lambda (#{x\ 4599}#)
-      (let ((#{tmp\ 4601}# #{x\ 4599}#))
-        (let ((#{tmp\ 4602}#
-                ($sc-dispatch #{tmp\ 4601}# '(_ any))))
-          (if #{tmp\ 4602}#
+    (lambda (#{x\ 4748}#)
+      (let ((#{tmp\ 4750}# #{x\ 4748}#))
+        (let ((#{tmp\ 4751}#
+                ($sc-dispatch #{tmp\ 4750}# '(_ any))))
+          (if #{tmp\ 4751}#
             (@apply
-              (lambda (#{e\ 4604}#)
+              (lambda (#{e\ 4753}#)
                 (list '#(syntax-object
                          lambda
                          ((top)
-                          #(ribcage #(e) #((top)) #("i4603"))
+                          #(ribcage #(e) #((top)) #("i4752"))
                           #(ribcage () () ())
-                          #(ribcage #(x) #((top)) #("i4600")))
+                          #(ribcage #(x) #((top)) #("i4749")))
                          (hygiene guile))
                       '(#(syntax-object
                           x
                           ((top)
-                           #(ribcage #(e) #((top)) #("i4603"))
+                           #(ribcage #(e) #((top)) #("i4752"))
                            #(ribcage () () ())
-                           #(ribcage #(x) #((top)) #("i4600")))
+                           #(ribcage #(x) #((top)) #("i4749")))
                           (hygiene guile)))
                       '#((#(syntax-object
                             macro-type
                             ((top)
-                             #(ribcage #(e) #((top)) #("i4603"))
+                             #(ribcage #(e) #((top)) #("i4752"))
                              #(ribcage () () ())
-                             #(ribcage #(x) #((top)) #("i4600")))
+                             #(ribcage #(x) #((top)) #("i4749")))
                             (hygiene guile))
                           .
                           #(syntax-object
                             identifier-syntax
                             ((top)
-                             #(ribcage #(e) #((top)) #("i4603"))
+                             #(ribcage #(e) #((top)) #("i4752"))
                              #(ribcage () () ())
-                             #(ribcage #(x) #((top)) #("i4600")))
+                             #(ribcage #(x) #((top)) #("i4749")))
                             (hygiene guile))))
                       (list '#(syntax-object
                                syntax-case
                                ((top)
-                                #(ribcage #(e) #((top)) #("i4603"))
+                                #(ribcage #(e) #((top)) #("i4752"))
                                 #(ribcage () () ())
-                                #(ribcage #(x) #((top)) #("i4600")))
+                                #(ribcage #(x) #((top)) #("i4749")))
                                (hygiene guile))
                             '#(syntax-object
                                x
                                ((top)
-                                #(ribcage #(e) #((top)) #("i4603"))
+                                #(ribcage #(e) #((top)) #("i4752"))
                                 #(ribcage () () ())
-                                #(ribcage #(x) #((top)) #("i4600")))
+                                #(ribcage #(x) #((top)) #("i4749")))
                                (hygiene guile))
                             '()
                             (list '#(syntax-object
                                      id
                                      ((top)
-                                      #(ribcage #(e) #((top)) #("i4603"))
+                                      #(ribcage #(e) #((top)) #("i4752"))
                                       #(ribcage () () ())
-                                      #(ribcage #(x) #((top)) #("i4600")))
+                                      #(ribcage #(x) #((top)) #("i4749")))
                                      (hygiene guile))
                                   '(#(syntax-object
                                       identifier?
                                       ((top)
-                                       #(ribcage #(e) #((top)) #("i4603"))
+                                       #(ribcage #(e) #((top)) #("i4752"))
                                        #(ribcage () () ())
-                                       #(ribcage #(x) #((top)) #("i4600")))
+                                       #(ribcage #(x) #((top)) #("i4749")))
                                       (hygiene guile))
                                     (#(syntax-object
                                        syntax
                                        ((top)
-                                        #(ribcage #(e) #((top)) #("i4603"))
+                                        #(ribcage #(e) #((top)) #("i4752"))
                                         #(ribcage () () ())
-                                        #(ribcage #(x) #((top)) #("i4600")))
+                                        #(ribcage #(x) #((top)) #("i4749")))
                                        (hygiene guile))
                                      #(syntax-object
                                        id
                                        ((top)
-                                        #(ribcage #(e) #((top)) #("i4603"))
+                                        #(ribcage #(e) #((top)) #("i4752"))
                                         #(ribcage () () ())
-                                        #(ribcage #(x) #((top)) #("i4600")))
+                                        #(ribcage #(x) #((top)) #("i4749")))
                                        (hygiene guile))))
                                   (list '#(syntax-object
                                            syntax
                                            ((top)
-                                            #(ribcage #(e) #((top)) #("i4603"))
+                                            #(ribcage #(e) #((top)) #("i4752"))
                                             #(ribcage () () ())
                                             #(ribcage
                                               #(x)
                                               #((top))
-                                              #("i4600")))
+                                              #("i4749")))
                                            (hygiene guile))
-                                        #{e\ 4604}#))
+                                        #{e\ 4753}#))
                             (list '(#(syntax-object
                                       _
                                       ((top)
-                                       #(ribcage #(e) #((top)) #("i4603"))
+                                       #(ribcage #(e) #((top)) #("i4752"))
                                        #(ribcage () () ())
-                                       #(ribcage #(x) #((top)) #("i4600")))
+                                       #(ribcage #(x) #((top)) #("i4749")))
                                       (hygiene guile))
                                     #(syntax-object
                                       x
                                       ((top)
-                                       #(ribcage #(e) #((top)) #("i4603"))
+                                       #(ribcage #(e) #((top)) #("i4752"))
                                        #(ribcage () () ())
-                                       #(ribcage #(x) #((top)) #("i4600")))
+                                       #(ribcage #(x) #((top)) #("i4749")))
                                       (hygiene guile))
                                     #(syntax-object
                                       ...
                                       ((top)
-                                       #(ribcage #(e) #((top)) #("i4603"))
+                                       #(ribcage #(e) #((top)) #("i4752"))
                                        #(ribcage () () ())
-                                       #(ribcage #(x) #((top)) #("i4600")))
+                                       #(ribcage #(x) #((top)) #("i4749")))
                                       (hygiene guile)))
                                   (list '#(syntax-object
                                            syntax
                                            ((top)
-                                            #(ribcage #(e) #((top)) #("i4603"))
+                                            #(ribcage #(e) #((top)) #("i4752"))
                                             #(ribcage () () ())
                                             #(ribcage
                                               #(x)
                                               #((top))
-                                              #("i4600")))
+                                              #("i4749")))
                                            (hygiene guile))
-                                        (cons #{e\ 4604}#
+                                        (cons #{e\ 4753}#
                                               '(#(syntax-object
                                                   x
                                                   ((top)
                                                    #(ribcage
                                                      #(e)
                                                      #((top))
-                                                     #("i4603"))
+                                                     #("i4752"))
                                                    #(ribcage () () ())
                                                    #(ribcage
                                                      #(x)
                                                      #((top))
-                                                     #("i4600")))
+                                                     #("i4749")))
                                                   (hygiene guile))
                                                 #(syntax-object
                                                   ...
                                                    #(ribcage
                                                      #(e)
                                                      #((top))
-                                                     #("i4603"))
+                                                     #("i4752"))
                                                    #(ribcage () () ())
                                                    #(ribcage
                                                      #(x)
                                                      #((top))
-                                                     #("i4600")))
+                                                     #("i4749")))
                                                   (hygiene guile)))))))))
-              #{tmp\ 4602}#)
-            (let ((#{tmp\ 4605}#
+              #{tmp\ 4751}#)
+            (let ((#{tmp\ 4754}#
                     ($sc-dispatch
-                      #{tmp\ 4601}#
+                      #{tmp\ 4750}#
                       '(_ (any any)
                           ((#(free-id
                               #(syntax-object
                                 set!
                                 ((top)
                                  #(ribcage () () ())
-                                 #(ribcage #(x) #((top)) #("i4600")))
+                                 #(ribcage #(x) #((top)) #("i4749")))
                                 (hygiene guile)))
                             any
                             any)
                            any)))))
-              (if (if #{tmp\ 4605}#
+              (if (if #{tmp\ 4754}#
                     (@apply
-                      (lambda (#{id\ 4611}#
-                               #{exp1\ 4612}#
-                               #{var\ 4613}#
-                               #{val\ 4614}#
-                               #{exp2\ 4615}#)
-                        (if (identifier? #{id\ 4611}#)
-                          (identifier? #{var\ 4613}#)
+                      (lambda (#{id\ 4760}#
+                               #{exp1\ 4761}#
+                               #{var\ 4762}#
+                               #{val\ 4763}#
+                               #{exp2\ 4764}#)
+                        (if (identifier? #{id\ 4760}#)
+                          (identifier? #{var\ 4762}#)
                           #f))
-                      #{tmp\ 4605}#)
+                      #{tmp\ 4754}#)
                     #f)
                 (@apply
-                  (lambda (#{id\ 4623}#
-                           #{exp1\ 4624}#
-                           #{var\ 4625}#
-                           #{val\ 4626}#
-                           #{exp2\ 4627}#)
+                  (lambda (#{id\ 4772}#
+                           #{exp1\ 4773}#
+                           #{var\ 4774}#
+                           #{val\ 4775}#
+                           #{exp2\ 4776}#)
                     (list '#(syntax-object
                              make-variable-transformer
                              ((top)
                               #(ribcage
                                 #(id exp1 var val exp2)
                                 #((top) (top) (top) (top) (top))
-                                #("i4618" "i4619" "i4620" "i4621" "i4622"))
+                                #("i4767" "i4768" "i4769" "i4770" "i4771"))
                               #(ribcage () () ())
-                              #(ribcage #(x) #((top)) #("i4600")))
+                              #(ribcage #(x) #((top)) #("i4749")))
                              (hygiene guile))
                           (list '#(syntax-object
                                    lambda
                                     #(ribcage
                                       #(id exp1 var val exp2)
                                       #((top) (top) (top) (top) (top))
-                                      #("i4618"
-                                        "i4619"
-                                        "i4620"
-                                        "i4621"
-                                        "i4622"))
+                                      #("i4767"
+                                        "i4768"
+                                        "i4769"
+                                        "i4770"
+                                        "i4771"))
                                     #(ribcage () () ())
-                                    #(ribcage #(x) #((top)) #("i4600")))
+                                    #(ribcage #(x) #((top)) #("i4749")))
                                    (hygiene guile))
                                 '(#(syntax-object
                                     x
                                      #(ribcage
                                        #(id exp1 var val exp2)
                                        #((top) (top) (top) (top) (top))
-                                       #("i4618"
-                                         "i4619"
-                                         "i4620"
-                                         "i4621"
-                                         "i4622"))
+                                       #("i4767"
+                                         "i4768"
+                                         "i4769"
+                                         "i4770"
+                                         "i4771"))
                                      #(ribcage () () ())
-                                     #(ribcage #(x) #((top)) #("i4600")))
+                                     #(ribcage #(x) #((top)) #("i4749")))
                                     (hygiene guile)))
                                 '#((#(syntax-object
                                       macro-type
                                        #(ribcage
                                          #(id exp1 var val exp2)
                                          #((top) (top) (top) (top) (top))
-                                         #("i4618"
-                                           "i4619"
-                                           "i4620"
-                                           "i4621"
-                                           "i4622"))
+                                         #("i4767"
+                                           "i4768"
+                                           "i4769"
+                                           "i4770"
+                                           "i4771"))
                                        #(ribcage () () ())
-                                       #(ribcage #(x) #((top)) #("i4600")))
+                                       #(ribcage #(x) #((top)) #("i4749")))
                                       (hygiene guile))
                                     .
                                     #(syntax-object
                                        #(ribcage
                                          #(id exp1 var val exp2)
                                          #((top) (top) (top) (top) (top))
-                                         #("i4618"
-                                           "i4619"
-                                           "i4620"
-                                           "i4621"
-                                           "i4622"))
+                                         #("i4767"
+                                           "i4768"
+                                           "i4769"
+                                           "i4770"
+                                           "i4771"))
                                        #(ribcage () () ())
-                                       #(ribcage #(x) #((top)) #("i4600")))
+                                       #(ribcage #(x) #((top)) #("i4749")))
                                       (hygiene guile))))
                                 (list '#(syntax-object
                                          syntax-case
                                           #(ribcage
                                             #(id exp1 var val exp2)
                                             #((top) (top) (top) (top) (top))
-                                            #("i4618"
-                                              "i4619"
-                                              "i4620"
-                                              "i4621"
-                                              "i4622"))
+                                            #("i4767"
+                                              "i4768"
+                                              "i4769"
+                                              "i4770"
+                                              "i4771"))
                                           #(ribcage () () ())
-                                          #(ribcage #(x) #((top)) #("i4600")))
+                                          #(ribcage #(x) #((top)) #("i4749")))
                                          (hygiene guile))
                                       '#(syntax-object
                                          x
                                           #(ribcage
                                             #(id exp1 var val exp2)
                                             #((top) (top) (top) (top) (top))
-                                            #("i4618"
-                                              "i4619"
-                                              "i4620"
-                                              "i4621"
-                                              "i4622"))
+                                            #("i4767"
+                                              "i4768"
+                                              "i4769"
+                                              "i4770"
+                                              "i4771"))
                                           #(ribcage () () ())
-                                          #(ribcage #(x) #((top)) #("i4600")))
+                                          #(ribcage #(x) #((top)) #("i4749")))
                                          (hygiene guile))
                                       '(#(syntax-object
                                           set!
                                            #(ribcage
                                              #(id exp1 var val exp2)
                                              #((top) (top) (top) (top) (top))
-                                             #("i4618"
-                                               "i4619"
-                                               "i4620"
-                                               "i4621"
-                                               "i4622"))
+                                             #("i4767"
+                                               "i4768"
+                                               "i4769"
+                                               "i4770"
+                                               "i4771"))
                                            #(ribcage () () ())
-                                           #(ribcage #(x) #((top)) #("i4600")))
+                                           #(ribcage #(x) #((top)) #("i4749")))
                                           (hygiene guile)))
                                       (list (list '#(syntax-object
                                                      set!
                                                           (top)
                                                           (top)
                                                           (top))
-                                                        #("i4618"
-                                                          "i4619"
-                                                          "i4620"
-                                                          "i4621"
-                                                          "i4622"))
+                                                        #("i4767"
+                                                          "i4768"
+                                                          "i4769"
+                                                          "i4770"
+                                                          "i4771"))
                                                       #(ribcage () () ())
                                                       #(ribcage
                                                         #(x)
                                                         #((top))
-                                                        #("i4600")))
+                                                        #("i4749")))
                                                      (hygiene guile))
-                                                  #{var\ 4625}#
-                                                  #{val\ 4626}#)
+                                                  #{var\ 4774}#
+                                                  #{val\ 4775}#)
                                             (list '#(syntax-object
                                                      syntax
                                                      ((top)
                                                           (top)
                                                           (top)
                                                           (top))
-                                                        #("i4618"
-                                                          "i4619"
-                                                          "i4620"
-                                                          "i4621"
-                                                          "i4622"))
+                                                        #("i4767"
+                                                          "i4768"
+                                                          "i4769"
+                                                          "i4770"
+                                                          "i4771"))
                                                       #(ribcage () () ())
                                                       #(ribcage
                                                         #(x)
                                                         #((top))
-                                                        #("i4600")))
+                                                        #("i4749")))
                                                      (hygiene guile))
-                                                  #{exp2\ 4627}#))
-                                      (list (cons #{id\ 4623}#
+                                                  #{exp2\ 4776}#))
+                                      (list (cons #{id\ 4772}#
                                                   '(#(syntax-object
                                                       x
                                                       ((top)
                                                            (top)
                                                            (top)
                                                            (top))
-                                                         #("i4618"
-                                                           "i4619"
-                                                           "i4620"
-                                                           "i4621"
-                                                           "i4622"))
+                                                         #("i4767"
+                                                           "i4768"
+                                                           "i4769"
+                                                           "i4770"
+                                                           "i4771"))
                                                        #(ribcage () () ())
                                                        #(ribcage
                                                          #(x)
                                                          #((top))
-                                                         #("i4600")))
+                                                         #("i4749")))
                                                       (hygiene guile))
                                                     #(syntax-object
                                                       ...
                                                            (top)
                                                            (top)
                                                            (top))
-                                                         #("i4618"
-                                                           "i4619"
-                                                           "i4620"
-                                                           "i4621"
-                                                           "i4622"))
+                                                         #("i4767"
+                                                           "i4768"
+                                                           "i4769"
+                                                           "i4770"
+                                                           "i4771"))
                                                        #(ribcage () () ())
                                                        #(ribcage
                                                          #(x)
                                                          #((top))
-                                                         #("i4600")))
+                                                         #("i4749")))
                                                       (hygiene guile))))
                                             (list '#(syntax-object
                                                      syntax
                                                           (top)
                                                           (top)
                                                           (top))
-                                                        #("i4618"
-                                                          "i4619"
-                                                          "i4620"
-                                                          "i4621"
-                                                          "i4622"))
+                                                        #("i4767"
+                                                          "i4768"
+                                                          "i4769"
+                                                          "i4770"
+                                                          "i4771"))
                                                       #(ribcage () () ())
                                                       #(ribcage
                                                         #(x)
                                                         #((top))
-                                                        #("i4600")))
+                                                        #("i4749")))
                                                      (hygiene guile))
-                                                  (cons #{exp1\ 4624}#
+                                                  (cons #{exp1\ 4773}#
                                                         '(#(syntax-object
                                                             x
                                                             ((top)
                                                                  (top)
                                                                  (top)
                                                                  (top))
-                                                               #("i4618"
-                                                                 "i4619"
-                                                                 "i4620"
-                                                                 "i4621"
-                                                                 "i4622"))
+                                                               #("i4767"
+                                                                 "i4768"
+                                                                 "i4769"
+                                                                 "i4770"
+                                                                 "i4771"))
                                                              #(ribcage
                                                                ()
                                                                ()
                                                              #(ribcage
                                                                #(x)
                                                                #((top))
-                                                               #("i4600")))
+                                                               #("i4749")))
                                                             (hygiene guile))
                                                           #(syntax-object
                                                             ...
                                                                  (top)
                                                                  (top)
                                                                  (top))
-                                                               #("i4618"
-                                                                 "i4619"
-                                                                 "i4620"
-                                                                 "i4621"
-                                                                 "i4622"))
+                                                               #("i4767"
+                                                                 "i4768"
+                                                                 "i4769"
+                                                                 "i4770"
+                                                                 "i4771"))
                                                              #(ribcage
                                                                ()
                                                                ()
                                                              #(ribcage
                                                                #(x)
                                                                #((top))
-                                                               #("i4600")))
+                                                               #("i4749")))
                                                             (hygiene
                                                               guile))))))
-                                      (list #{id\ 4623}#
+                                      (list #{id\ 4772}#
                                             (list '#(syntax-object
                                                      identifier?
                                                      ((top)
                                                           (top)
                                                           (top)
                                                           (top))
-                                                        #("i4618"
-                                                          "i4619"
-                                                          "i4620"
-                                                          "i4621"
-                                                          "i4622"))
+                                                        #("i4767"
+                                                          "i4768"
+                                                          "i4769"
+                                                          "i4770"
+                                                          "i4771"))
                                                       #(ribcage () () ())
                                                       #(ribcage
                                                         #(x)
                                                         #((top))
-                                                        #("i4600")))
+                                                        #("i4749")))
                                                      (hygiene guile))
                                                   (list '#(syntax-object
                                                            syntax
                                                                 (top)
                                                                 (top)
                                                                 (top))
-                                                              #("i4618"
-                                                                "i4619"
-                                                                "i4620"
-                                                                "i4621"
-                                                                "i4622"))
+                                                              #("i4767"
+                                                                "i4768"
+                                                                "i4769"
+                                                                "i4770"
+                                                                "i4771"))
                                                             #(ribcage () () ())
                                                             #(ribcage
                                                               #(x)
                                                               #((top))
-                                                              #("i4600")))
+                                                              #("i4749")))
                                                            (hygiene guile))
-                                                        #{id\ 4623}#))
+                                                        #{id\ 4772}#))
                                             (list '#(syntax-object
                                                      syntax
                                                      ((top)
                                                           (top)
                                                           (top)
                                                           (top))
-                                                        #("i4618"
-                                                          "i4619"
-                                                          "i4620"
-                                                          "i4621"
-                                                          "i4622"))
+                                                        #("i4767"
+                                                          "i4768"
+                                                          "i4769"
+                                                          "i4770"
+                                                          "i4771"))
                                                       #(ribcage () () ())
                                                       #(ribcage
                                                         #(x)
                                                         #((top))
-                                                        #("i4600")))
+                                                        #("i4749")))
                                                      (hygiene guile))
-                                                  #{exp1\ 4624}#))))))
-                  #{tmp\ 4605}#)
+                                                  #{exp1\ 4773}#))))))
+                  #{tmp\ 4754}#)
                 (syntax-violation
                   #f
                   "source expression failed to match any pattern"
-                  #{tmp\ 4601}#)))))))))
+                  #{tmp\ 4750}#)))))))))
 
 (define define*
   (make-syntax-transformer
     'define*
     'macro
-    (lambda (#{x\ 4628}#)
-      (let ((#{tmp\ 4630}# #{x\ 4628}#))
-        (let ((#{tmp\ 4631}#
+    (lambda (#{x\ 4777}#)
+      (let ((#{tmp\ 4779}# #{x\ 4777}#))
+        (let ((#{tmp\ 4780}#
                 ($sc-dispatch
-                  #{tmp\ 4630}#
+                  #{tmp\ 4779}#
                   '(_ (any . any) any . each-any))))
-          (if #{tmp\ 4631}#
+          (if #{tmp\ 4780}#
             (@apply
-              (lambda (#{id\ 4636}#
-                       #{args\ 4637}#
-                       #{b0\ 4638}#
-                       #{b1\ 4639}#)
+              (lambda (#{id\ 4785}#
+                       #{args\ 4786}#
+                       #{b0\ 4787}#
+                       #{b1\ 4788}#)
                 (list '#(syntax-object
                          define
                          ((top)
                           #(ribcage
                             #(id args b0 b1)
                             #((top) (top) (top) (top))
-                            #("i4632" "i4633" "i4634" "i4635"))
+                            #("i4781" "i4782" "i4783" "i4784"))
                           #(ribcage () () ())
-                          #(ribcage #(x) #((top)) #("i4629")))
+                          #(ribcage #(x) #((top)) #("i4778")))
                          (hygiene guile))
-                      #{id\ 4636}#
+                      #{id\ 4785}#
                       (cons '#(syntax-object
                                lambda*
                                ((top)
                                 #(ribcage
                                   #(id args b0 b1)
                                   #((top) (top) (top) (top))
-                                  #("i4632" "i4633" "i4634" "i4635"))
+                                  #("i4781" "i4782" "i4783" "i4784"))
                                 #(ribcage () () ())
-                                #(ribcage #(x) #((top)) #("i4629")))
+                                #(ribcage #(x) #((top)) #("i4778")))
                                (hygiene guile))
-                            (cons #{args\ 4637}#
-                                  (cons #{b0\ 4638}# #{b1\ 4639}#)))))
-              #{tmp\ 4631}#)
-            (let ((#{tmp\ 4641}#
-                    ($sc-dispatch #{tmp\ 4630}# '(_ any any))))
-              (if (if #{tmp\ 4641}#
+                            (cons #{args\ 4786}#
+                                  (cons #{b0\ 4787}# #{b1\ 4788}#)))))
+              #{tmp\ 4780}#)
+            (let ((#{tmp\ 4790}#
+                    ($sc-dispatch #{tmp\ 4779}# '(_ any any))))
+              (if (if #{tmp\ 4790}#
                     (@apply
-                      (lambda (#{id\ 4644}# #{val\ 4645}#)
+                      (lambda (#{id\ 4793}# #{val\ 4794}#)
                         (identifier?
                           '#(syntax-object
                              x
                               #(ribcage
                                 #(id val)
                                 #((top) (top))
-                                #("i4642" "i4643"))
+                                #("i4791" "i4792"))
                               #(ribcage () () ())
-                              #(ribcage #(x) #((top)) #("i4629")))
+                              #(ribcage #(x) #((top)) #("i4778")))
                              (hygiene guile))))
-                      #{tmp\ 4641}#)
+                      #{tmp\ 4790}#)
                     #f)
                 (@apply
-                  (lambda (#{id\ 4648}# #{val\ 4649}#)
+                  (lambda (#{id\ 4797}# #{val\ 4798}#)
                     (list '#(syntax-object
                              define
                              ((top)
                               #(ribcage
                                 #(id val)
                                 #((top) (top))
-                                #("i4646" "i4647"))
+                                #("i4795" "i4796"))
                               #(ribcage () () ())
-                              #(ribcage #(x) #((top)) #("i4629")))
+                              #(ribcage #(x) #((top)) #("i4778")))
                              (hygiene guile))
-                          #{id\ 4648}#
-                          #{val\ 4649}#))
-                  #{tmp\ 4641}#)
+                          #{id\ 4797}#
+                          #{val\ 4798}#))
+                  #{tmp\ 4790}#)
                 (syntax-violation
                   #f
                   "source expression failed to match any pattern"
-                  #{tmp\ 4630}#)))))))))
+                  #{tmp\ 4779}#)))))))))
 
index 8674ae5..fa63fd6 100644 (file)
                         (begin c ... (doloop step ...)))))))))))
 
 (define-syntax quasiquote
-   (letrec
-      ((quasicons
-        (lambda (x y)
-          (with-syntax ((x x) (y y))
-            (syntax-case #'y (quote list)
-              ((quote dy)
-               (syntax-case #'x (quote)
-                 ((quote dx) #'(quote (dx . dy)))
-                 (_ (if (null? #'dy)
-                        #'(list x)
-                        #'(cons x y)))))
-              ((list . stuff) #'(list x . stuff))
-              (else #'(cons x y))))))
-       (quasiappend
-        (lambda (x y)
-          (with-syntax ((x x) (y y))
-            (syntax-case #'y (quote)
-              ((quote ()) #'x)
-              (_ #'(append x y))))))
-       (quasivector
-        (lambda (x)
-          (with-syntax ((x x))
-            (syntax-case #'x (quote list)
-              ((quote (x ...)) #'(quote #(x ...)))
-              ((list x ...) #'(vector x ...))
-              (_ #'(list->vector x))))))
-       (quasi
-        (lambda (p lev)
-           (syntax-case p (unquote unquote-splicing quasiquote)
-              ((unquote p)
-               (if (= lev 0)
-                   #'p
-                   (quasicons #'(quote unquote)
-                              (quasi #'(p) (- lev 1)))))
-              ((unquote . args)
-               (= lev 0)
-               (syntax-violation 'unquote
-                                 "unquote takes exactly one argument"
-                                 p #'(unquote . args)))
-              (((unquote-splicing p) . q)
-               (if (= lev 0)
-                   (quasiappend #'p (quasi #'q lev))
-                   (quasicons (quasicons #'(quote unquote-splicing)
-                                         (quasi #'(p) (- lev 1)))
-                              (quasi #'q lev))))
-              (((unquote-splicing . args) . q)
-               (= lev 0)
-               (syntax-violation 'unquote-splicing
-                                 "unquote-splicing takes exactly one argument"
-                                 p #'(unquote-splicing . args)))
-              ((quasiquote p)
-               (quasicons #'(quote quasiquote)
-                          (quasi #'(p) (+ lev 1))))
-              ((p . q)
-               (quasicons (quasi #'p lev) (quasi #'q lev)))
-              (#(x ...) (quasivector (quasi #'(x ...) lev)))
-              (p #'(quote p))))))
+  (let ()
+    (define (quasi p lev)
+      (syntax-case p (unquote quasiquote)
+        ((unquote p)
+         (if (= lev 0)
+             #'("value" p)
+             (quasicons #'("quote" unquote) (quasi #'(p) (- lev 1)))))
+        ((quasiquote p) (quasicons #'("quote" quasiquote) (quasi #'(p) (+ lev 1))))
+        ((p . q)
+         (syntax-case #'p (unquote unquote-splicing)
+           ((unquote p ...)
+            (if (= lev 0)
+                (quasilist* #'(("value" p) ...) (quasi #'q lev))
+                (quasicons
+                 (quasicons #'("quote" unquote) (quasi #'(p ...) (- lev 1)))
+                 (quasi #'q lev))))
+           ((unquote-splicing p ...)
+            (if (= lev 0)
+                (quasiappend #'(("value" p) ...) (quasi #'q lev))
+                (quasicons
+                 (quasicons #'("quote" unquote-splicing) (quasi #'(p ...) (- lev 1)))
+                 (quasi #'q lev))))
+           (_ (quasicons (quasi #'p lev) (quasi #'q lev)))))
+        (#(x ...) (quasivector (vquasi #'(x ...) lev)))
+        (p #'("quote" p))))
+    (define (vquasi p lev)
+      (syntax-case p ()
+        ((p . q)
+         (syntax-case #'p (unquote unquote-splicing)
+           ((unquote p ...)
+            (if (= lev 0)
+                (quasilist* #'(("value" p) ...) (vquasi #'q lev))
+                (quasicons
+                 (quasicons #'("quote" unquote) (quasi #'(p ...) (- lev 1)))
+                 (vquasi #'q lev))))
+           ((unquote-splicing p ...)
+            (if (= lev 0)
+                (quasiappend #'(("value" p) ...) (vquasi #'q lev))
+                (quasicons
+                 (quasicons
+                  #'("quote" unquote-splicing)
+                  (quasi #'(p ...) (- lev 1)))
+                 (vquasi #'q lev))))
+           (_ (quasicons (quasi #'p lev) (vquasi #'q lev)))))
+        (() #'("quote" ()))))
+    (define (quasicons x y)
+      (with-syntax ((x x) (y y))
+        (syntax-case #'y ()
+          (("quote" dy)
+           (syntax-case #'x ()
+             (("quote" dx) #'("quote" (dx . dy)))
+             (_ (if (null? #'dy) #'("list" x) #'("list*" x y)))))
+          (("list" . stuff) #'("list" x . stuff))
+          (("list*" . stuff) #'("list*" x . stuff))
+          (_ #'("list*" x y)))))
+    (define (quasiappend x y)
+      (syntax-case y ()
+        (("quote" ())
+         (cond
+          ((null? x) #'("quote" ()))
+          ((null? (cdr x)) (car x))
+          (else (with-syntax (((p ...) x)) #'("append" p ...)))))
+        (_
+         (cond
+          ((null? x) y)
+          (else (with-syntax (((p ...) x) (y y)) #'("append" p ... y)))))))
+    (define (quasilist* x y)
+      (let f ((x x))
+        (if (null? x)
+            y
+            (quasicons (car x) (f (cdr x))))))
+    (define (quasivector x)
+      (syntax-case x ()
+        (("quote" (x ...)) #'("quote" #(x ...)))
+        (_
+         (let f ((y x) (k (lambda (ls) #`("vector" #,@ls))))
+           (syntax-case y ()
+             (("quote" (y ...)) (k #'(("quote" y) ...)))
+             (("list" y ...) (k #'(y ...)))
+             (("list*" y ... z) (f #'z (lambda (ls) (k (append #'(y ...) ls)))))
+             (else #`("list->vector" #,x)))))))
+    (define (emit x)
+      (syntax-case x ()
+        (("quote" x) #''x)
+        (("list" x ...) #`(list #,@(map emit #'(x ...))))
+        ;; could emit list* for 3+ arguments if implementation supports
+        ;; list*
+        (("list*" x ... y)
+         (let f ((x* #'(x ...)))
+           (if (null? x*)
+               (emit #'y)
+               #`(cons #,(emit (car x*)) #,(f (cdr x*))))))
+        (("append" x ...) #`(append #,@(map emit #'(x ...))))
+        (("vector" x ...) #`(vector #,@(map emit #'(x ...))))
+        (("list->vector" x) #`(list->vector #,(emit #'x)))
+        (("value" x) #'x)))
     (lambda (x)
-       (syntax-case x ()
-          ((_ e) (quasi #'e 0))))))
+      (syntax-case x ()
+        ;; convert to intermediate language, combining introduced (but
+        ;; not unquoted source) quote expressions where possible and
+        ;; choosing optimal construction code otherwise, then emit
+        ;; Scheme code corresponding to the intermediate language forms.
+        ((_ e) (emit (quasi #'e 0))))))) 
 
 (define-syntax include
   (lambda (x)
 
 (define-syntax unquote
   (lambda (x)
-    (syntax-case x ()
-      ((_ e)
-       (syntax-violation 'unquote
-                         "expression not valid outside of quasiquote"
-                         x)))))
+    (syntax-violation 'unquote
+                      "expression not valid outside of quasiquote"
+                      x)))
 
 (define-syntax unquote-splicing
   (lambda (x)
-    (syntax-case x ()
-      ((_ e)
-       (syntax-violation 'unquote-splicing
-                         "expression not valid outside of quasiquote"
-                         x)))))
+    (syntax-violation 'unquote-splicing
+                      "expression not valid outside of quasiquote"
+                      x)))
 
 (define-syntax case
   (lambda (x)