guile-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Guile-commits] GNU Guile branch, master, updated. v2.1.0-88-g840cf0d


From: Andy Wingo
Subject: [Guile-commits] GNU Guile branch, master, updated. v2.1.0-88-g840cf0d
Date: Thu, 29 Sep 2011 16:07:10 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Guile".

http://git.savannah.gnu.org/cgit/guile.git/commit/?id=840cf0d1e2bb3b019210958056404f29347042fe

The branch, master has been updated
       via  840cf0d1e2bb3b019210958056404f29347042fe (commit)
       via  ca128245811fab5abcf02756cd7a322a3a40d192 (commit)
       via  014de9e25d87b7d3a13566aee4c271c1a11ea0b7 (commit)
       via  b275fb2691af150cc57e395e65df5a66e315017e (commit)
       via  df40b969780df2979f9f5e1c9ae8b9d6f09dbd9a (commit)
       via  0353a2d817d0d5b3c563af4fa1b5c7c1fe7ce3a6 (commit)
       via  40be30c97459e1baf8a9997c1c116a67f153cfef (commit)
       via  fc283c92cbdb31942f033541b52376fd1bade3f2 (commit)
       via  b5ae223d129b427e2b5695c82c45f16995f36236 (commit)
       via  1cc1c2d7e33bc40ac23e05636e69434d80e90af1 (commit)
       via  6c4ffe2b2560eaeb0fe5aedb266183e3bb80dbd8 (commit)
       via  ea726a53b2180ee4548723f81d9b1be7732ef5d8 (commit)
       via  fbc9387f68be677663e6756c35afa973a9dc0a1a (commit)
       via  58b5a2d4e10d2afb34dfcb086d2550e936800b3f (commit)
       via  7a1e193710ff3efa63ddd665a627c682ccec5ce6 (commit)
       via  7af1ba2f6c4d4bcd4fbf0214384551f9b8208d4a (commit)
       via  153ca1d2391115f1428837b9465bce89c76691de (commit)
       via  05c9389e3f869f3158d97289f50a52dc2b3caa26 (commit)
       via  ef6c0883c3467b0b4b3c3e3cfb94f2b80422d875 (commit)
       via  02ebea537fa805c615df44c4228db6a44d74c4b3 (commit)
       via  cf82943f9f075248d803b31e19ddb8e933ad35ba (commit)
       via  b839233282686301a5ba762b2dda890b3659ce4d (commit)
       via  fab137869e67d2f1d76764aa8b2855c88ae95379 (commit)
       via  062bf3aa443c33a2f07fe929aba03fcd44d959b1 (commit)
       via  8018dfdc023fe3136e96550c9d0dcd1712759917 (commit)
       via  ded8ad84a781ec792c0796e82568854c5d63ea65 (commit)
       via  f6123e4fda470a634b6cf0510d0312d162973e75 (commit)
       via  e43921a982fe207c99695c6eb01abffb0c9a559b (commit)
       via  b8a2b628e9c663ff58d442a895c4d20541d54b1f (commit)
       via  1eb4886ffa9c4c81c946af7fed8fb39020fcde12 (commit)
       via  8d06538e821c3e6cdd4861e1d8b1ec25ed930453 (commit)
       via  e535a37db891323708d375ad9c9c6f2b407261f1 (commit)
       via  8f6dfb9ad226eb1b017cc08fda8b03350c9a209a (commit)
       via  250991010f08d6a9e16dabad32941c948a8b4ba4 (commit)
       via  9e8a5b6637c71b909a0c3ca42e6756d0b2177a05 (commit)
       via  dd7ab5d8a44a34112b3992a711db2851f503ce00 (commit)
       via  c829531a4652b2cf4d4aac1eb0af08c3231bdecf (commit)
       via  a4c7fe5cde907f3bc4cbc5190bfc7e748d6bac45 (commit)
       via  ec6e09bee7bd85862dbbea8fdefb295b7cc5205f (commit)
       via  d851e32fdc3d14804108f0389faa75a57599ced4 (commit)
       via  40bd6a7e57a779d249f901f710d7368bf26550bb (commit)
       via  9581febbb004b24843630adcefb72810624d0300 (commit)
       via  2605b6ba2749a90c55a7f49bb91d6f20f256a20e (commit)
       via  ddbee5c00f438c4dc1dbe2b944b559a3c2de0e6b (commit)
       via  5d5e4f399a38e530a5f0081d6fdec80d3eb4736a (commit)
       via  4f33b47591e823500d800ee4f9d98c8ae98ceab8 (commit)
       via  65a32655253cdfcf4e2caf03a73ac66b05da5f71 (commit)
       via  03026d0fb888c4d19b87a995c641cb3e93afd973 (commit)
       via  d111abd0f6d06308b172cc1fa964eb11ccf5d94a (commit)
       via  0c448ef47b752683855753ece53bef52733aee0b (commit)
       via  78295f242adc2e308eba69839a8812da6cc1e02e (commit)
       via  ccb771575a9fc03eab034bef4c77917486bbf8c7 (commit)
       via  72b2ca55f6e115927aa4e76401c992f21198681f (commit)
       via  239b4b2ac6fda615e117193076df0b6b2bccb5d7 (commit)
       via  1e2b4920cac71e6750673a84642db97c404092a7 (commit)
       via  2b0b09fed4e446712dde60781ed09a6100e833f3 (commit)
       via  2ae0775e405de414e2da4806588b674c07793b8e (commit)
       via  3f2d6efc7b61999a4522b1c35d6f4a875a2c74c0 (commit)
       via  af1c6e424ffb7f37391fc62d788591adc40381e1 (commit)
       via  735249513a0a2966f6570ee32cd2988b3bc6524d (commit)
       via  61237fa4b96d020e96388cca4fd065ddf43bca60 (commit)
       via  1e8ace33d17a3156c184e8121eb291a7c9324ccc (commit)
       via  870dfc609b0bf090d38878d7224e65843c355485 (commit)
       via  89436781e8758ee4df98f5d720f3ade50c2439fa (commit)
       via  d5f76917820a00ea94f9904c3fd1dcef1c37bd95 (commit)
       via  fe1336405062c69ff08fd7ad0d98c3f2aca7766f (commit)
       via  cb7bcfca3520a147881e4b7f052b68b88a740bf1 (commit)
       via  86b4309b7166fe5ec4f55f0cc64501d07b0852f9 (commit)
       via  a8d7fba8d45220e4d12c57f5aa85bfade9d21100 (commit)
       via  73df2c37424e89956df6c0e9a7d777b477423a93 (commit)
       via  cf14f3011bdb32c303ec1937a245269c100abe95 (commit)
       via  c8286111e0d149adc30687a27e5f52c9c064291a (commit)
       via  f9c1b8278dbf1992d83f91f91391ee39e714d364 (commit)
       via  11671bbacbdd52039c77978bfe7f24a3316f6019 (commit)
       via  16a3b316113b4000a39b92ddfe4c3edc16954d52 (commit)
       via  91db4a375cb9adc8f3a47f0355c3e6566b9acebf (commit)
       via  8568067836a7f127b18833a00d6bfc0509fa31ef (commit)
       via  5fcb7b3cc58464b8895b09d0927e9364c079fe41 (commit)
       via  d9241a37e8184ac18e5836ff739212139aca91e3 (commit)
       via  5f237d6e0e5d16b131c739c8daed3de9b162ec96 (commit)
       via  df08fc359c87a2c802ab82c4c70db7bda9baaa52 (commit)
       via  eddd81f4652db72a085f7c8dfe2ca04b7c4de829 (commit)
       via  cd4171d012f0ef2291274b5a9b26854c0223921b (commit)
       via  0c65f52c6d45f60e197fad7162d05c0fce89e817 (commit)
       via  1bbe0a631c4e72fffc033cb4f83eba7252ce3c9c (commit)
       via  dea14eb99bfb70f970db24f72340dfc9b98e0640 (commit)
      from  25f4a88032f51cecdf8b0147c8a2d0a4574972fa (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 840cf0d1e2bb3b019210958056404f29347042fe
Author: Andy Wingo <address@hidden>
Date:   Thu Sep 29 18:07:02 2011 +0200

    regenerate psyntax-pp.scm
    
    * module/ice-9/psyntax-pp.scm: Regenerate.

commit ca128245811fab5abcf02756cd7a322a3a40d192
Merge: 25f4a88 014de9e
Author: Andy Wingo <address@hidden>
Date:   Thu Sep 29 18:02:28 2011 +0200

    Merge remote-tracking branch 'origin/stable-2.0'
    
    This was a pretty big merge involving a fair amount of porting,
    especially to peval and its tests.  I did not update psyntax-pp.scm,
    that comes in the next commit.
    
    Conflicts:
        module/ice-9/boot-9.scm
        module/ice-9/psyntax-pp.scm
        module/language/ecmascript/compile-tree-il.scm
        module/language/tree-il.scm
        module/language/tree-il/analyze.scm
        module/language/tree-il/inline.scm
        test-suite/tests/tree-il.test

-----------------------------------------------------------------------

Summary of changes:
 doc/ref/api-compound.texi                         |    2 +-
 doc/ref/api-macros.texi                           |   27 +-
 doc/ref/api-modules.texi                          |   62 +-
 doc/ref/guile-invoke.texi                         |    6 +
 doc/ref/guile.texi                                |    9 +-
 doc/ref/match.texi                                |   52 +-
 libguile/numbers.c                                |   14 +-
 libguile/snarf.h                                  |    2 +-
 libguile/strings.c                                |    8 +-
 module/Makefile.am                                |    6 +-
 module/ice-9/boot-9.scm                           |  132 +-
 module/ice-9/command-line.scm                     |   10 +-
 module/ice-9/compile-psyntax.scm                  |   12 +-
 module/ice-9/control.scm                          |   22 +-
 module/ice-9/futures.scm                          |    8 +-
 module/ice-9/match.scm                            |   43 +-
 module/ice-9/match.upstream.scm                   |  307 +-
 module/ice-9/optargs.scm                          |   12 +-
 module/ice-9/poll.scm                             |    7 +-
 module/ice-9/psyntax-pp.scm                       |35397 +++++++++++----------
 module/ice-9/psyntax.scm                          |   87 +-
 module/ice-9/receive.scm                          |   14 +-
 module/ice-9/threads.scm                          |   56 +-
 module/ice-9/vlist.scm                            |   20 +-
 module/language/assembly/compile-bytecode.scm     |   18 +-
 module/language/ecmascript/compile-tree-il.scm    |   36 +-
 module/language/glil/compile-assembly.scm         |    2 +-
 module/language/tree-il.scm                       |  156 +-
 module/language/tree-il/analyze.scm               |   70 +-
 module/language/tree-il/canonicalize.scm          |   76 +
 module/language/tree-il/compile-glil.scm          |    2 +
 module/language/tree-il/inline.scm                |  186 +-
 module/language/tree-il/optimize.scm              |   17 +-
 module/language/tree-il/peval.scm                 |  922 +
 module/language/tree-il/primitives.scm            |   76 +-
 module/oop/goops.scm                              |   67 +-
 module/oop/goops/simple.scm                       |    8 +-
 module/oop/goops/stklos.scm                       |    8 +-
 module/srfi/srfi-1.scm                            |    8 +-
 module/srfi/srfi-35.scm                           |   32 +-
 module/srfi/srfi-39.scm                           |   12 +-
 module/srfi/srfi-45.scm                           |   13 +-
 module/srfi/srfi-67/compare.scm                   |  189 +-
 module/sxml/match.scm                             |   37 +-
 module/system/repl/error-handling.scm             |    6 +-
 module/system/repl/repl.scm                       |   16 +-
 module/system/vm/inspect.scm                      |   21 +-
 module/texinfo.scm                                |   20 +-
 module/web/http.scm                               |   28 +-
 module/web/server.scm                             |    8 +-
 test-suite/Makefile.am                            |    1 +
 test-suite/standalone/Makefile.am                 |    7 +
 test-suite/standalone/test-scm-to-latin1-string.c |   78 +
 test-suite/tests/gc.test                          |   14 +-
 test-suite/tests/match.test                       |  106 +-
 test-suite/tests/match.test.upstream              |  168 +
 test-suite/tests/statprof.test                    |   11 +-
 test-suite/tests/threads.test                     |   11 +-
 test-suite/tests/tree-il.test                     |  779 +-
 test-suite/tests/web-http.test                    |    3 +
 test-suite/vm/t-match.scm                         |    2 +-
 61 files changed, 22451 insertions(+), 17078 deletions(-)
 create mode 100644 module/language/tree-il/canonicalize.scm
 create mode 100644 module/language/tree-il/peval.scm
 create mode 100644 test-suite/standalone/test-scm-to-latin1-string.c
 create mode 100644 test-suite/tests/match.test.upstream

diff --git a/doc/ref/api-compound.texi b/doc/ref/api-compound.texi
index da8813b..c52fed4 100644
--- a/doc/ref/api-compound.texi
+++ b/doc/ref/api-compound.texi
@@ -3207,7 +3207,7 @@ key is typically a constant-time operation.
 
 The VHash programming interface of @code{(ice-9 vlist)} is mostly the same as
 that of association lists found in SRFI-1, with procedure names prefixed by
address@hidden instead of @code{vlist-} (@pxref{SRFI-1 Association Lists}).
address@hidden instead of @code{alist-} (@pxref{SRFI-1 Association Lists}).
 
 In addition, vhashes can be manipulated using VList operations:
 
diff --git a/doc/ref/api-macros.texi b/doc/ref/api-macros.texi
index f0eeb6e..92816ad 100644
--- a/doc/ref/api-macros.texi
+++ b/doc/ref/api-macros.texi
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Guile Reference Manual.
address@hidden Copyright (C)  1996, 1997, 2000, 2001, 2002, 2003, 2004, 2009, 
2010
address@hidden Copyright (C)  1996, 1997, 2000, 2001, 2002, 2003, 2004, 2009, 
2010, 2011
 @c   Free Software Foundation, Inc.
 @c See the file guile.texi for copying conditions.
 
@@ -24,9 +24,15 @@ macro must appear as the first element, like this:
 @end lisp
 
 @cindex macro expansion
address@hidden domain-specific language
address@hidden embedded domain-specific language
address@hidden DSL
address@hidden EDSL
 Macro expansion is a separate phase of evaluation, run before code is
 interpreted or compiled. A macro is a program that runs on programs, 
translating
-an embedded language into core Scheme.
+an embedded language into core address@hidden days such embedded
+languages are often referred to as @dfn{embedded domain-specific
+languages}, or EDSLs.}.
 
 @menu
 * Defining Macros::             Binding macros, globally and locally.
@@ -336,6 +342,23 @@ This discussion is mostly relevant in the context of 
traditional Lisp macros
 (@pxref{Defmacros}), which do not preserve referential transparency. Hygiene
 adds to the expressive power of Scheme.
 
address@hidden Shorthands
+
+One often ends up writing simple one-clause @code{syntax-rules} macros.
+There is a convenient shorthand for this idiom, in the form of
address@hidden
+
address@hidden {Syntax} define-syntax-rule (keyword . pattern) [docstring] 
template
+Define @var{keyword} as a new @code{syntax-rules} macro with one clause.
address@hidden deffn
+
+Cast into this form, our @code{when} example is significantly shorter:
+
address@hidden
+(define-syntax-rule (when c e ...)
+  (if c (begin e ...)))
address@hidden example
+
 @subsubsection Further Information
 
 For a formal definition of @code{syntax-rules} and its pattern language, see
diff --git a/doc/ref/api-modules.texi b/doc/ref/api-modules.texi
index 3feced4..33c9819 100644
--- a/doc/ref/api-modules.texi
+++ b/doc/ref/api-modules.texi
@@ -919,28 +919,28 @@ can also work with modules from C, but it is more 
cumbersome.
 
 The following procedures are available.
 
address@hidden {C Procedure} SCM scm_current_module ()
address@hidden {C Function} SCM scm_current_module ()
 Return the module that is the @emph{current module}.
 @end deftypefn
 
address@hidden {C Procedure} SCM scm_set_current_module (SCM @var{module})
address@hidden {C Function} SCM scm_set_current_module (SCM @var{module})
 Set the current module to @var{module} and return the previous current
 module.
 @end deftypefn
 
address@hidden {C Procedure} SCM scm_c_call_with_current_module (SCM 
@var{module}, SCM (address@hidden)(void *), void address@hidden)
address@hidden {C Function} SCM scm_c_call_with_current_module (SCM 
@var{module}, SCM (address@hidden)(void *), void address@hidden)
 Call @var{func} and make @var{module} the current module during the
 call.  The argument @var{data} is passed to @var{func}.  The return
 value of @code{scm_c_call_with_current_module} is the return value of
 @var{func}.
 @end deftypefn
 
address@hidden SCM scm_public_variable (SCM @var{module_name}, SCM @var{name})
address@hidden SCM scm_c_public_variable (const char * @var{module_name}, const 
char * @var{name})
address@hidden {C Function} SCM scm_public_variable (SCM @var{module_name}, SCM 
@var{name})
address@hidden {C Function} SCM scm_c_public_variable ({const char 
address@hidden, {const char address@hidden)
 Find a the variable bound to the symbol @var{name} in the public
 interface of the module named @var{module_name}.
 
- @var{module_name} should be a list of symbols, when represented as a
address@hidden should be a list of symbols, when represented as a
 Scheme object, or a space-separated string, in the @code{const char *}
 case.  See @code{scm_c_define_module} below, for more examples.
 
@@ -948,17 +948,17 @@ Signals an error if no module was found with the given 
name.  If
 @var{name} is not bound in the module, just returns @code{#f}.
 @end deftypefn
 
address@hidden SCM scm_private_variable (SCM @var{module_name}, SCM @var{name})
address@hidden SCM scm_c_private_variable (const char * @var{module_name}, 
const char * @var{name})
address@hidden {C Function} SCM scm_private_variable (SCM @var{module_name}, 
SCM @var{name})
address@hidden {C Function} SCM scm_c_private_variable ({const char 
address@hidden, {const char address@hidden)
 Like @code{scm_public_variable}, but looks in the internals of the
 module named @var{module_name} instead of the public interface.
 Logically, these procedures should only be called on modules you write.
 @end deftypefn
 
address@hidden SCM scm_public_lookup (SCM @var{module_name}, SCM @var{name})
address@hidden SCM scm_c_public_lookup (const char * @var{module_name}, const 
char * @var{name})
address@hidden SCM scm_private_lookup (SCM @var{module_name}, SCM @var{name})
address@hidden SCM scm_c_private_lookup (const char * @var{module_name}, const 
char * @var{name})
address@hidden {C Function} SCM scm_public_lookup (SCM @var{module_name}, SCM 
@var{name})
address@hidden {C Function} SCM scm_c_public_lookup ({const char 
address@hidden, {const char address@hidden)
address@hidden {C Function} SCM scm_private_lookup (SCM @var{module_name}, SCM 
@var{name})
address@hidden {C Function} SCM scm_c_private_lookup ({const char 
address@hidden, {const char address@hidden)
 Like @code{scm_public_variable} or @code{scm_private_variable}, but if
 the @var{name} is not bound in the module, signals an error.  Returns a
 variable, always.
@@ -977,10 +977,10 @@ SCM my_eval_string (SCM str)
 @end example
 @end deftypefn
 
address@hidden SCM scm_public_ref (SCM @var{module_name}, SCM @var{name})
address@hidden SCM scm_c_public_ref (const char * @var{module_name}, const char 
* @var{name})
address@hidden SCM scm_private_ref (SCM @var{module_name}, SCM @var{name})
address@hidden SCM scm_c_private_ref (const char * @var{module_name}, const 
char * @var{name})
address@hidden {C Function} SCM scm_public_ref (SCM @var{module_name}, SCM 
@var{name})
address@hidden {C Function} SCM scm_c_public_ref ({const char address@hidden, 
{const char address@hidden)
address@hidden {C Function} SCM scm_private_ref (SCM @var{module_name}, SCM 
@var{name})
address@hidden {C Function} SCM scm_c_private_ref ({const char address@hidden, 
{const char address@hidden)
 Like @code{scm_public_lookup} or @code{scm_private_lookup}, but
 additionally dereferences the variable.  If the variable object is
 unbound, signals an error.  Returns the value bound to @var{name} in
@@ -991,50 +991,50 @@ In addition, there are a number of other lookup-related 
procedures.  We
 suggest that you use the @code{scm_public_} and @code{scm_private_}
 family of procedures instead, if possible.
 
address@hidden {C Procedure} SCM scm_c_lookup (const char address@hidden)
address@hidden {C Function} SCM scm_c_lookup ({const char address@hidden)
 Return the variable bound to the symbol indicated by @var{name} in the
 current module.  If there is no such binding or the symbol is not
 bound to a variable, signal an error.
 @end deftypefn
 
address@hidden {C Procedure} SCM scm_lookup (SCM @var{name})
address@hidden {C Function} SCM scm_lookup (SCM @var{name})
 Like @code{scm_c_lookup}, but the symbol is specified directly.
 @end deftypefn
 
address@hidden {C Procedure} SCM scm_c_module_lookup (SCM @var{module}, const 
char address@hidden)
address@hidden {C Procedure} SCM scm_module_lookup (SCM @var{module}, SCM 
@var{name})
address@hidden {C Function} SCM scm_c_module_lookup (SCM @var{module}, {const 
char address@hidden)
address@hidden {C Function} SCM scm_module_lookup (SCM @var{module}, SCM 
@var{name})
 Like @code{scm_c_lookup} and @code{scm_lookup}, but the specified
 module is used instead of the current one.
 @end deftypefn
 
address@hidden {C Procedure} SCM scm_module_variable (SCM @var{module}, SCM 
@var{name})
address@hidden {C Function} SCM scm_module_variable (SCM @var{module}, SCM 
@var{name})
 Like @code{scm_module_lookup}, but if the binding does not exist, just
 returns @code{#f} instead of raising an error.
 @end deftypefn
 
 To define a value, use @code{scm_define}:
 
address@hidden {C Procedure} SCM scm_c_define (const char address@hidden, SCM 
@var{val})
address@hidden {C Function} SCM scm_c_define ({const char address@hidden, SCM 
@var{val})
 Bind the symbol indicated by @var{name} to a variable in the current
 module and set that variable to @var{val}.  When @var{name} is already
 bound to a variable, use that.  Else create a new variable.
 @end deftypefn
 
address@hidden {C Procedure} SCM scm_define (SCM @var{name}, SCM @var{val})
address@hidden {C Function} SCM scm_define (SCM @var{name}, SCM @var{val})
 Like @code{scm_c_define}, but the symbol is specified directly.
 @end deftypefn
 
address@hidden {C Procedure} SCM scm_c_module_define (SCM @var{module}, const 
char address@hidden, SCM @var{val})
address@hidden {C Procedure} SCM scm_module_define (SCM @var{module}, SCM 
@var{name}, SCM @var{val})
address@hidden {C Function} SCM scm_c_module_define (SCM @var{module}, {const 
char address@hidden, SCM @var{val})
address@hidden {C Function} SCM scm_module_define (SCM @var{module}, SCM 
@var{name}, SCM @var{val})
 Like @code{scm_c_define} and @code{scm_define}, but the specified
 module is used instead of the current one.
 @end deftypefn
 
address@hidden {C Procedure} SCM scm_module_reverse_lookup (SCM @var{module}, 
SCM @var{variable})
address@hidden {C Function} SCM scm_module_reverse_lookup (SCM @var{module}, 
SCM @var{variable})
 Find the symbol that is bound to @var{variable} in @var{module}.  When no such 
binding is found, return @var{#f}.
 @end deftypefn
 
address@hidden {C Procedure} SCM scm_c_define_module (const char 
address@hidden, void (address@hidden)(void *), void address@hidden)
address@hidden {C Function} SCM scm_c_define_module ({const char 
address@hidden, void (address@hidden)(void *), void address@hidden)
 Define a new module named @var{name} and make it current while
 @var{init} is called, passing it @var{data}.  Return the module.
 
@@ -1046,25 +1046,25 @@ When there already exists a module named @var{name}, it 
is used
 unchanged, otherwise, an empty module is created.
 @end deftypefn
 
address@hidden {C Procedure} SCM scm_c_resolve_module (const char 
address@hidden)
address@hidden {C Function} SCM scm_c_resolve_module ({const char 
address@hidden)
 Find the module name @var{name} and return it.  When it has not
 already been defined, try to auto-load it.  When it can't be found
 that way either, create an empty module.  The name is interpreted as
 for @code{scm_c_define_module}.
 @end deftypefn
 
address@hidden {C Procedure} SCM scm_resolve_module (SCM @var{name})
address@hidden {C Function} SCM scm_resolve_module (SCM @var{name})
 Like @code{scm_c_resolve_module}, but the name is given as a real list
 of symbols.
 @end deftypefn
 
address@hidden {C Procedure} SCM scm_c_use_module (const char address@hidden)
address@hidden {C Function} SCM scm_c_use_module ({const char address@hidden)
 Add the module named @var{name} to the uses list of the current
 module, as with @code{(use-modules @var{name})}.  The name is
 interpreted as for @code{scm_c_define_module}.
 @end deftypefn
 
address@hidden {C Procedure} SCM scm_c_export (const char address@hidden, ...)
address@hidden {C Function} SCM scm_c_export ({const char address@hidden, ...)
 Add the bindings designated by @var{name}, ... to the public interface
 of the current module.  The list of names is terminated by
 @code{NULL}.
diff --git a/doc/ref/guile-invoke.texi b/doc/ref/guile-invoke.texi
index 9379a8b..ccb5301 100644
--- a/doc/ref/guile-invoke.texi
+++ b/doc/ref/guile-invoke.texi
@@ -156,6 +156,12 @@ interactive session.  When executing a script with 
@option{-s} or
 Do not use the debugging VM engine, even when entering an interactive
 session.
 
+Note that, despite the name, Guile running with @option{--no-debug}
address@hidden support the usual debugging facilities, such as printing a
+detailed backtrace upon error.  The only difference with
address@hidden is lack of support for VM hooks and the facilities that
+build upon it (see above).
+
 @item -q
 @cindex init file, not loading
 @cindex @file{.guile} file, not loading
diff --git a/doc/ref/guile.texi b/doc/ref/guile.texi
index f43cc5a..9581f0c 100644
--- a/doc/ref/guile.texi
+++ b/doc/ref/guile.texi
@@ -17,11 +17,10 @@ Copyright (C) 1996, 1997, 2000, 2001, 2002, 2003, 2004, 
2005, 2009,
 
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.3 or
-any later version published by the Free Software Foundation; with
-no Invariant Sections, with the Front-Cover Texts being ``A GNU
-Manual,'' and with the Back-Cover Text ``You are free to copy and
-modify this GNU Manual.''.  A copy of the license is included in the
-section entitled ``GNU Free Documentation License''.
+any later version published by the Free Software Foundation; with no
+Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.  A
+copy of the license is included in the section entitled ``GNU Free
+Documentation License.''
 @end copying
 
 
diff --git a/doc/ref/match.texi b/doc/ref/match.texi
index 66bb0bf..d1618ce 100644
--- a/doc/ref/match.texi
+++ b/doc/ref/match.texi
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Guile Reference Manual.
address@hidden Copyright (C) 2010  Free Software Foundation, Inc.
address@hidden Copyright (C) 2010, 2011  Free Software Foundation, Inc.
 @c See the file guile.texi for copying conditions.
 @c
 
@@ -26,7 +26,7 @@ matcher found in many Scheme implementations.
 @cindex pattern variable
 A pattern matcher can match an object against several patterns and
 extract the elements that make it up.  Patterns can represent any Scheme
-object: lists, strings, symbols, etc.  They can optionally contain
+object: lists, strings, symbols, records, etc.  They can optionally contain
 @dfn{pattern variables}.  When a matching pattern is found, an
 expression associated with the pattern is evaluated, optionally with all
 pattern variables bound to the corresponding elements of the object:
@@ -43,8 +43,8 @@ In this example, list @var{l} matches the pattern 
@code{('hello (who))},
 because it is a two-element list whose first element is the symbol
 @code{hello} and whose second element is a one-element list.  Here
 @var{who} is a pattern variable.  @code{match}, the pattern matcher,
-locally binds @var{who} to the value contained in this one-element list,
-i.e., the symbol @code{world}.
+locally binds @var{who} to the value contained in this one-element
+list---i.e., the symbol @code{world}.
 
 The same object can be matched against a simpler pattern:
 
@@ -112,8 +112,8 @@ pat ::= identifier                      anything, and binds 
identifier
       | #(pat_1 ... pat_n pat_n+1 ooo)  vector of n or more, each element
                                           of remainder must match pat_n+1
       | #&pat                           box
-      | ($ struct-name pat_1 ... pat_n) a structure
-      | (= field pat)                   a field of a structure
+      | ($ record-name pat_1 ... pat_n) a record
+      | (= field pat)                   a ``field'' of an object
       | (and pat_1 ... pat_n)           if all of pat_1 thru pat_n match
       | (or pat_1 ... pat_n)            if any of pat_1 thru pat_n match
       | (not pat_1 ... pat_n)           if all pat_1 thru pat_n don't match
@@ -122,11 +122,13 @@ pat ::= identifier                      anything, and 
binds identifier
       | (set! identifier)               anything, and binds setter
       | (get! identifier)               anything, and binds getter
       | `qp                             a quasi-pattern
+      | (identifier *** pat)            matches pat in a tree and binds
+                                        identifier to the path leading
+                                        to the object that matches pat
 
 ooo ::= ...                             zero or more
       | ___                             zero or more
-      | ..k                             k or more
-      | __k                             k or more
+      | ..1                             1 or more
 
         quasi-patterns:                 matches:
 
@@ -154,6 +156,40 @@ The names @code{quote}, @code{quasiquote}, @code{unquote},
 @code{or}, @code{not}, @code{set!}, @code{get!}, @code{...}, and
 @code{___} cannot be used as pattern variables.
 
+Here is a more complex example:
+
address@hidden
+(use-modules (srfi srfi-9))
+
+(let ()
+  (define-record-type person
+    (make-person name friends)
+    person?
+    (name    person-name)
+    (friends person-friends))
+
+  (letrec ((alice (make-person "Alice" (delay (list bob))))
+           (bob   (make-person "Bob" (delay (list alice)))))
+    (match alice
+      (($ person name (= force (($ person "Bob"))))
+       (list 'friend-of-bob name))
+      (_ #f))))
+
address@hidden (friend-of-bob "Alice")
address@hidden example
+
address@hidden
+Here the @code{$} pattern is used to match a SRFI-9 record of type
address@hidden containing two or more slots.  The value of the first slot
+is bound to @var{name}.  The @code{=} pattern is used to apply
address@hidden on the second slot, and then checking that the result
+matches the given pattern.  In other words, the complete pattern matches
+any @var{person} whose second slot is a promise that evaluates to a
+one-element list containing a @var{person} whose first slot is
address@hidden"Bob"}.
+
+Please refer to the @code{ice-9/match.upstream.scm} file in your Guile
+installation for more details.
 
 Guile also comes with a pattern matcher specifically tailored to SXML
 trees, @xref{sxml-match}.
diff --git a/libguile/numbers.c b/libguile/numbers.c
index 235bbbb..a278ed5 100644
--- a/libguile/numbers.c
+++ b/libguile/numbers.c
@@ -5436,6 +5436,9 @@ char_decimal_value (scm_t_uint32 c)
   return d;
 }
 
+/* Parse the substring of MEM starting at *P_IDX for an unsigned integer
+   in base RADIX.  Upon success, return the unsigned integer and update
+   *P_IDX and *P_EXACTNESS accordingly.  Return #f on failure.  */
 static SCM
 mem2uinteger (SCM mem, unsigned int *p_idx,
              unsigned int radix, enum t_exactness *p_exactness)
@@ -5707,7 +5710,16 @@ mem2ureal (SCM mem, unsigned int *p_idx,
       /* Cobble up the fractional part.  We might want to set the
         NaN's mantissa from it. */
       idx += 4;
-      mem2uinteger (mem, &idx, 10, &implicit_x);
+      if (!scm_is_eq (mem2uinteger (mem, &idx, 10, &implicit_x), SCM_INUM0))
+        {
+#if SCM_ENABLE_DEPRECATED == 1
+          scm_c_issue_deprecation_warning
+            ("Non-zero suffixes to `+nan.' are deprecated.  Use `+nan.0'.");
+#else
+          return SCM_BOOL_F;
+#endif
+        }
+          
       *p_idx = idx;
       return scm_nan ();
     }
diff --git a/libguile/snarf.h b/libguile/snarf.h
index b0800c4..1c072ba 100644
--- a/libguile/snarf.h
+++ b/libguile/snarf.h
@@ -372,7 +372,7 @@ SCM_SNARF_INIT(scm_set_smob_apply((tag), (c_name), (req), 
(opt), (rest));)
     SCM_PACK (0),                                                       \
     foreign,                                                            \
     SCM_BOOL_F, /* the name */                                          \
-  };                                                                   \
+  }
 
 #define SCM_STATIC_PROGRAM(c_name, objcode, objtable, freevars)         \
   static SCM_ALIGNED (8) SCM_UNUSED SCM                                 \
diff --git a/libguile/strings.c b/libguile/strings.c
index dd859c4..2de0035 100644
--- a/libguile/strings.c
+++ b/libguile/strings.c
@@ -1779,14 +1779,16 @@ scm_to_latin1_stringn (SCM str, size_t *lenp)
 
   if (scm_i_is_narrow_string (str))
     {
+      size_t len = scm_i_string_length (str);
+
       if (lenp)
-       *lenp = scm_i_string_length (str);
+        *lenp = len;
 
-      result = scm_strdup (scm_i_string_data (str));
+      result = scm_strndup (scm_i_string_data (str), len);
     }
   else
     result = scm_to_stringn (str, lenp, NULL,
-                            SCM_FAILED_CONVERSION_ERROR);
+                             SCM_FAILED_CONVERSION_ERROR);
 
   return result;
 }
diff --git a/module/Makefile.am b/module/Makefile.am
index 0787f20..6b265b6 100644
--- a/module/Makefile.am
+++ b/module/Makefile.am
@@ -91,10 +91,12 @@ SCHEME_LANG_SOURCES =                                       
        \
 
 TREE_IL_LANG_SOURCES =                                         \
   language/tree-il/primitives.scm                              \
-  language/tree-il/optimize.scm                                 \
-  language/tree-il/inline.scm                                   \
+  language/tree-il/peval.scm                                   \
   language/tree-il/fix-letrec.scm                               \
+  language/tree-il/optimize.scm                                 \
+  language/tree-il/canonicalize.scm                             \
   language/tree-il/analyze.scm                                 \
+  language/tree-il/inline.scm                                  \
   language/tree-il/compile-glil.scm                            \
   language/tree-il/spec.scm
 
diff --git a/module/ice-9/boot-9.scm b/module/ice-9/boot-9.scm
index b233a00..639a63c 100644
--- a/module/ice-9/boot-9.scm
+++ b/module/ice-9/boot-9.scm
@@ -410,6 +410,20 @@ If there is no handler at all, Guile prints an error and 
then exits."
 ;; The binding for `macroexpand' has now been overridden, making psyntax the
 ;; expander now.
 
+(define-syntax define-syntax-rule
+  (lambda (x)
+    (syntax-case x ()
+      ((_ (name . pattern) template)
+       #'(define-syntax name
+           (syntax-rules ()
+             ((_ . pattern) template))))
+      ((_ (name . pattern) docstring template)
+       (string? (syntax->datum #'docstring))
+       #'(define-syntax name
+           (syntax-rules ()
+             docstring
+             ((_ . pattern) template)))))))
+
 (define-syntax and
   (syntax-rules ()
     ((_) #t)
@@ -504,9 +518,8 @@ If there is no handler at all, Guile prints an error and 
then exits."
     ((do "step" x y)
      y)))
 
-(define-syntax delay
-  (syntax-rules ()
-    ((_ exp) (make-promise (lambda () exp)))))
+(define-syntax-rule (delay exp)
+  (make-promise (lambda () exp)))
 
 (include-from-path "ice-9/quasisyntax")
 
@@ -517,11 +530,9 @@ If there is no handler at all, Guile prints an error and 
then exits."
        (with-syntax ((s (datum->syntax x (syntax-source x))))
          #''s)))))
 
-(define-syntax define-once
-  (syntax-rules ()
-    ((_ sym val)
-     (define sym
-       (if (module-locally-bound? (current-module) 'sym) sym val)))))
+(define-syntax-rule (define-once sym val)
+  (define sym
+    (if (module-locally-bound? (current-module) 'sym) sym val)))
 
 ;;; The real versions of `map' and `for-each', with cycle detection, and
 ;;; that use reverse! instead of recursion in the case of `map'.
@@ -853,12 +864,10 @@ VALUE."
 (define (and=> value procedure) (and value (procedure value)))
 (define call/cc call-with-current-continuation)
 
-(define-syntax false-if-exception
-  (syntax-rules ()
-    ((_ expr)
-     (catch #t
-       (lambda () expr)
-       (lambda (k . args) #f)))))
+(define-syntax-rule (false-if-exception expr)
+  (catch #t
+    (lambda () expr)
+    (lambda (k . args) #f)))
 
 
 
@@ -877,12 +886,10 @@ VALUE."
 ;; properties within the object itself.
 
 (define (make-object-property)
-  (define-syntax with-mutex
-    (syntax-rules ()
-      ((_ lock exp)
-       (dynamic-wind (lambda () (lock-mutex lock))
-                     (lambda () exp)
-                     (lambda () (unlock-mutex lock))))))
+  (define-syntax-rule (with-mutex lock exp)
+    (dynamic-wind (lambda () (lock-mutex lock))
+                  (lambda () exp)
+                  (lambda () (unlock-mutex lock))))
   (let ((prop (make-weak-key-hash-table))
         (lock (make-mutex)))
     (make-procedure-with-setter
@@ -1380,10 +1387,9 @@ VALUE."
          (thunk)))
      (lambda (k . args)
        (%start-stack tag (lambda () (apply k args)))))))
-(define-syntax start-stack
-  (syntax-rules ()
-    ((_ tag exp)
-     (%start-stack tag (lambda () exp)))))
+
+(define-syntax-rule (start-stack tag exp)
+  (%start-stack tag (lambda () exp)))
 
 
 
@@ -2819,11 +2825,9 @@ module '(ice-9 q) '(make-q q-length))}."
                      flags)
            (interface options)
            (interface)))
-       (define-syntax option-set!
-         (syntax-rules ()
-           ((_ opt val)
-            (eval-when (eval load compile expand)
-              (options (append (options) (list 'opt val)))))))))))
+       (define-syntax-rule (option-set! opt val)
+         (eval-when (eval load compile expand)
+           (options (append (options) (list 'opt val)))))))))
 
 (define-option-interface
   (debug-options-interface
@@ -3150,10 +3154,8 @@ module '(ice-9 q) '(make-q q-length))}."
 
 (include-from-path "ice-9/r6rs-libraries")
 
-(define-syntax define-private
-  (syntax-rules ()
-    ((_ foo bar)
-     (define foo bar))))
+(define-syntax-rule (define-private foo bar)
+  (define foo bar))
 
 (define-syntax define-public
   (syntax-rules ()
@@ -3164,18 +3166,14 @@ module '(ice-9 q) '(make-q q-length))}."
        (define name val)
        (export name)))))
 
-(define-syntax defmacro-public
-  (syntax-rules ()
-    ((_ name args . body)
-     (begin
-       (defmacro name args . body)
-       (export-syntax name)))))
+(define-syntax-rule (defmacro-public name args body ...)
+  (begin
+    (defmacro name args body ...)
+    (export-syntax name)))
 
 ;; And now for the most important macro.
-(define-syntax λ
-  (syntax-rules ()
-    ((_ formals body ...)
-     (lambda formals body ...))))
+(define-syntax-rule (λ formals body ...)
+  (lambda formals body ...))
 
 
 ;; Export a local variable
@@ -3234,39 +3232,29 @@ module '(ice-9 q) '(make-q q-length))}."
                          (module-add! public-i external-name var)))))
               names)))
 
-(define-syntax export
-  (syntax-rules ()
-    ((_ name ...)
-     (eval-when (eval load compile expand)
-       (call-with-deferred-observers
-        (lambda ()
-          (module-export! (current-module) '(name ...))))))))
+(define-syntax-rule (export name ...)
+  (eval-when (eval load compile expand)
+    (call-with-deferred-observers
+     (lambda ()
+       (module-export! (current-module) '(name ...))))))
 
-(define-syntax re-export
-  (syntax-rules ()
-    ((_ name ...)
-     (eval-when (eval load compile expand)
-       (call-with-deferred-observers
-        (lambda ()
-          (module-re-export! (current-module) '(name ...))))))))
+(define-syntax-rule (re-export name ...)
+  (eval-when (eval load compile expand)
+    (call-with-deferred-observers
+     (lambda ()
+       (module-re-export! (current-module) '(name ...))))))
 
-(define-syntax export!
-  (syntax-rules ()
-    ((_ name ...)
-     (eval-when (eval load compile expand)
-       (call-with-deferred-observers
-        (lambda ()
-          (module-replace! (current-module) '(name ...))))))))
+(define-syntax-rule (export! name ...)
+  (eval-when (eval load compile expand)
+    (call-with-deferred-observers
+     (lambda ()
+       (module-replace! (current-module) '(name ...))))))
 
-(define-syntax export-syntax
-  (syntax-rules ()
-    ((_ name ...)
-     (export name ...))))
+(define-syntax-rule (export-syntax name ...)
+  (export name ...))
 
-(define-syntax re-export-syntax
-  (syntax-rules ()
-    ((_ name ...)
-     (re-export name ...))))
+(define-syntax-rule (re-export-syntax name ...)
+  (re-export name ...))
 
 
 
diff --git a/module/ice-9/command-line.scm b/module/ice-9/command-line.scm
index e94336a..8aed74e 100644
--- a/module/ice-9/command-line.scm
+++ b/module/ice-9/command-line.scm
@@ -122,8 +122,8 @@ If FILE begins with `-' the -s switch is mandatory.
   -e FUNCTION    after reading script, apply FUNCTION to
                  command line arguments
   -ds            do -s script at this point
-  --debug        start with debugging evaluator and backtraces
-  --no-debug     start with normal evaluator
+  --debug        start with the \"debugging\" VM engine
+  --no-debug     start with the normal VM engine, which also supports debugging
                  Default is to enable debugging for interactive
                  use, but not for `-s' and `-c'.
   --auto-compile compile source files automatically
@@ -331,15 +331,15 @@ If FILE begins with `-' the -s switch is mandatory.
             (parse
              args
              (cons
-              (let ((where (substring arg 8)))
+              (let ((where (substring arg 9)))
                 (cond
                  ((string->number where) ; --listen=PORT
                   => (lambda (port)
                        (if (and (integer? port) (exact? port) (>= port 0))
-                           (error "invalid port for --listen")
                            `(@@ (system repl server)
                                 (spawn-server
-                                 (make-tcp-server-socket #:port ,port))))))
+                                 (make-tcp-server-socket #:port ,port)))
+                           (error "invalid port for --listen"))))
                  ((string-prefix? "/" where) ; --listen=/PATH/TO/SOCKET
                   `(@@ (system repl server)
                        (spawn-server
diff --git a/module/ice-9/compile-psyntax.scm b/module/ice-9/compile-psyntax.scm
index 86b94ac..48bab92 100644
--- a/module/ice-9/compile-psyntax.scm
+++ b/module/ice-9/compile-psyntax.scm
@@ -1,6 +1,6 @@
 ;;; -*- mode: scheme; coding: utf-8; -*-
 ;;;
-;;; Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+;;; Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc.
 ;;;
 ;;; This library is free software; you can redistribute it and/or
 ;;; modify it under the terms of the GNU Lesser General Public
@@ -18,6 +18,7 @@
 
 (use-modules (language tree-il)
              (language tree-il optimize)
+             (language tree-il canonicalize)
              (ice-9 pretty-print))
 
 (let ((source (list-ref (command-line) 1))
@@ -34,10 +35,11 @@
             (close-port in))
           (begin
             (pretty-print (tree-il->scheme
-                           (optimize!
-                            (macroexpand x 'c '(compile load eval))
-                            (current-module)
-                            '()))
+                           (canonicalize!
+                            (optimize!
+                             (macroexpand x 'c '(compile load eval))
+                             (current-module)
+                             '())))
                           out)
             (newline out)
             (loop (read in))))))
diff --git a/module/ice-9/control.scm b/module/ice-9/control.scm
index 908e0e9..5f25738 100644
--- a/module/ice-9/control.scm
+++ b/module/ice-9/control.scm
@@ -60,20 +60,16 @@
 ;; http://okmij.org/ftp/Scheme/delim-control-n.scm, which are in the
 ;; public domain, as noted at the top of http://okmij.org/ftp/.
 ;; 
-(define-syntax reset
-  (syntax-rules ()
-    ((_ . body)
-     (call-with-prompt (default-prompt-tag)
-                       (lambda () . body)
-                       (lambda (cont f) (f cont))))))
+(define-syntax-rule (reset . body)
+  (call-with-prompt (default-prompt-tag)
+                    (lambda () . body)
+                    (lambda (cont f) (f cont))))
 
-(define-syntax shift
-  (syntax-rules ()
-    ((_ var . body)
-     (abort-to-prompt (default-prompt-tag)
-                      (lambda (cont)
-                        ((lambda (var) (reset . body))
-                         (lambda vals (reset (apply cont vals)))))))))
+(define-syntax-rule (shift var . body)
+  (abort-to-prompt (default-prompt-tag)
+                   (lambda (cont)
+                     ((lambda (var) (reset . body))
+                      (lambda vals (reset (apply cont vals)))))))
 
 (define (reset* thunk)
   (reset (thunk)))
diff --git a/module/ice-9/futures.scm b/module/ice-9/futures.scm
index 012ebbf..3c4cd7d 100644
--- a/module/ice-9/futures.scm
+++ b/module/ice-9/futures.scm
@@ -173,8 +173,6 @@ touched."
 ;;; Syntax.
 ;;;
 
-(define-syntax future
-  (syntax-rules ()
-    "Return a new future for BODY."
-    ((_ body)
-     (make-future (lambda () body)))))
+(define-syntax-rule (future body)
+  "Return a new future for BODY."
+  (make-future (lambda () body)))
diff --git a/module/ice-9/match.scm b/module/ice-9/match.scm
index 7cedff0..0384f69 100644
--- a/module/ice-9/match.scm
+++ b/module/ice-9/match.scm
@@ -1,6 +1,6 @@
 ;;; -*- mode: scheme; coding: utf-8; -*-
 ;;;
-;;; Copyright (C) 2010 Free Software Foundation, Inc.
+;;; Copyright (C) 2010, 2011 Free Software Foundation, Inc.
 ;;;
 ;;; This library is free software; you can redistribute it and/or
 ;;; modify it under the terms of the GNU Lesser General Public
@@ -28,11 +28,50 @@
   ;; Error procedure for run-time "no matching pattern" errors.
   (throw 'match-error "match" msg))
 
+;; Support for record matching.
+
+(define-syntax slot-ref
+  (syntax-rules ()
+    ((_ rtd rec n)
+     (struct-ref rec n))))
+
+(define-syntax slot-set!
+  (syntax-rules ()
+    ((_ rtd rec n value)
+     (struct-set! rec n value))))
+
+(define-syntax is-a?
+  (syntax-rules ()
+    ((_ rec rtd)
+     (and (struct? rec)
+          (eq? (struct-vtable rec) rtd)))))
+
 ;; Compared to Andrew K. Wright's `match', this one lacks `match-define',
 ;; `match:error-control', `match:set-error-control', `match:error',
 ;; `match:set-error', and all structure-related procedures.  Also,
 ;; `match' doesn't support clauses of the form `(pat => exp)'.
 
 ;; Unmodified public domain code by Alex Shinn retrieved from
-;; <http://synthcode.com/scheme/match.scm>.
+;; the Chibi-Scheme repository, commit 833:6daa2971f3fe.
+;;
+;; Note: Make sure to update `match.test.upstream' when updating this
+;; file.
 (include-from-path "ice-9/match.upstream.scm")
+
+(define-syntax match
+  (syntax-rules ()
+    ((match)
+     (match-syntax-error "missing match expression"))
+    ((match atom)
+     (match-syntax-error "no match clauses"))
+    ((match (app ...) (pat . body) ...)
+     (let ((v (app ...)))
+       (match-next v ((app ...) (set! (app ...))) (pat . body) ...)))
+    ((match #(vec ...) (pat . body) ...)
+     (let ((v #(vec ...)))
+       (match-next v (v (set! v)) (pat . body) ...)))
+    ((match atom (pat . body) ...)
+     (let ((v atom))
+       (match-next v (atom (set! atom)) (pat . body) ...)))
+    ))
+
diff --git a/module/ice-9/match.upstream.scm b/module/ice-9/match.upstream.scm
index df6b3d9..6fc01a6 100644
--- a/module/ice-9/match.upstream.scm
+++ b/module/ice-9/match.upstream.scm
@@ -1,20 +1,203 @@
 ;;;; match.scm -- portable hygienic pattern matcher
+;;;; -*- coding: utf-8 -*-
 ;;
 ;; This code is written by Alex Shinn and placed in the
 ;; Public Domain.  All warranties are disclaimed.
 
-;; This is a full superset of the popular MATCH package by Andrew
-;; Wright, written in fully portable SYNTAX-RULES (R5RS only, breaks
-;; in R6RS SYNTAX-RULES), and thus preserving hygiene.
+;;> @example-import[(srfi 9)]
 
-;; This is a simple generative pattern matcher - each pattern is
-;; expanded into the required tests, calling a failure continuation if
-;; the tests fail.  This makes the logic easy to follow and extend,
-;; but produces sub-optimal code in cases where you have many similar
-;; clauses due to repeating the same tests.  Nonetheless a smart
-;; compiler should be able to remove the redundant tests.  For
-;; MATCH-LET and DESTRUCTURING-BIND type uses there is no performance
-;; hit.
+;;> This is a full superset of the popular @hyperlink[
+;;> "http://www.cs.indiana.edu/scheme-repository/code.match.html"]{match}
+;;> package by Andrew Wright, written in fully portable @scheme{syntax-rules}
+;;> and thus preserving hygiene.
+
+;;> The most notable extensions are the ability to use @emph{non-linear}
+;;> patterns - patterns in which the same identifier occurs multiple
+;;> times, tail patterns after ellipsis, and the experimental tree patterns.
+
+;;> @subsubsection{Patterns}
+
+;;> Patterns are written to look like the printed representation of
+;;> the objects they match.  The basic usage is
+
+;;> @scheme{(match expr (pat body ...) ...)}
+
+;;> where the result of @var{expr} is matched against each pattern in
+;;> turn, and the corresponding body is evaluated for the first to
+;;> succeed.  Thus, a list of three elements matches a list of three
+;;> elements.
+
+;;> @example{(let ((ls (list 1 2 3))) (match ls ((1 2 3) #t)))}
+
+;;> If no patterns match an error is signalled.
+
+;;> Identifiers will match anything, and make the corresponding
+;;> binding available in the body.
+
+;;> @example{(match (list 1 2 3) ((a b c) b))}
+
+;;> If the same identifier occurs multiple times, the first instance
+;;> will match anything, but subsequent instances must match a value
+;;> which is @scheme{equal?} to the first.
+
+;;> @example{(match (list 1 2 1) ((a a b) 1) ((a b a) 2))}
+
+;;> The special identifier @scheme{_} matches anything, no matter how
+;;> many times it is used, and does not bind the result in the body.
+
+;;> @example{(match (list 1 2 1) ((_ _ b) 1) ((a b a) 2))}
+
+;;> To match a literal identifier (or list or any other literal), use
+;;> @scheme{quote}.
+
+;;> @example{(match 'a ('b 1) ('a 2))}
+
+;;> Analogous to its normal usage in scheme, @scheme{quasiquote} can
+;;> be used to quote a mostly literally matching object with selected
+;;> parts unquoted.
+
+;;> @example|{(match (list 1 2 3) (`(1 ,b ,c) (list b c)))}|
+
+;;> Often you want to match any number of a repeated pattern.  Inside
+;;> a list pattern you can append @scheme{...} after an element to
+;;> match zero or more of that pattern (like a regexp Kleene star).
+
+;;> @example{(match (list 1 2) ((1 2 3 ...) #t))}
+;;> @example{(match (list 1 2 3) ((1 2 3 ...) #t))}
+;;> @example{(match (list 1 2 3 3 3) ((1 2 3 ...) #t))}
+
+;;> Pattern variables matched inside the repeated pattern are bound to
+;;> a list of each matching instance in the body.
+
+;;> @example{(match (list 1 2) ((a b c ...) c))}
+;;> @example{(match (list 1 2 3) ((a b c ...) c))}
+;;> @example{(match (list 1 2 3 4 5) ((a b c ...) c))}
+
+;;> More than one @scheme{...} may not be used in the same list, since
+;;> this would require exponential backtracking in the general case.
+;;> However, @scheme{...} need not be the final element in the list,
+;;> and may be succeeded by a fixed number of patterns.
+
+;;> @example{(match (list 1 2 3 4) ((a b c ... d e) c))}
+;;> @example{(match (list 1 2 3 4 5) ((a b c ... d e) c))}
+;;> @example{(match (list 1 2 3 4 5 6 7) ((a b c ... d e) c))}
+
+;;> @scheme{___} is provided as an alias for @scheme{...} when it is
+;;> inconvenient to use the ellipsis (as in a syntax-rules template).
+
+;;> The @scheme{..1} syntax is exactly like the @scheme{...} except
+;;> that it matches one or more repetitions (like a regexp "+").
+
+;;> @example{(match (list 1 2) ((a b c ..1) c))}
+;;> @example{(match (list 1 2 3) ((a b c ..1) c))}
+
+;;> The boolean operators @scheme{and}, @scheme{or} and @scheme{not}
+;;> can be used to group and negate patterns analogously to their
+;;> Scheme counterparts.
+
+;;> The @scheme{and} operator ensures that all subpatterns match.
+;;> This operator is often used with the idiom @scheme{(and x pat)} to
+;;> bind @var{x} to the entire value that matches @var{pat}
+;;> (c.f. "as-patterns" in ML or Haskell).  Another common use is in
+;;> conjunction with @scheme{not} patterns to match a general case
+;;> with certain exceptions.
+
+;;> @example{(match 1 ((and) #t))}
+;;> @example{(match 1 ((and x) x))}
+;;> @example{(match 1 ((and x 1) x))}
+
+;;> The @scheme{or} operator ensures that at least one subpattern
+;;> matches.  If the same identifier occurs in different subpatterns,
+;;> it is matched independently.  All identifiers from all subpatterns
+;;> are bound if the @scheme{or} operator matches, but the binding is
+;;> only defined for identifiers from the subpattern which matched.
+
+;;> @example{(match 1 ((or) #t) (else #f))}
+;;> @example{(match 1 ((or x) x))}
+;;> @example{(match 1 ((or x 2) x))}
+
+;;> The @scheme{not} operator succeeds if the given pattern doesn't
+;;> match.  None of the identifiers used are available in the body.
+
+;;> @example{(match 1 ((not 2) #t))}
+
+;;> The more general operator @scheme{?} can be used to provide a
+;;> predicate.  The usage is @scheme{(? predicate pat ...)} where
+;;> @var{predicate} is a Scheme expression evaluating to a predicate
+;;> called on the value to match, and any optional patterns after the
+;;> predicate are then matched as in an @scheme{and} pattern.
+
+;;> @example{(match 1 ((? odd? x) x))}
+
+;;> The field operator @scheme{=} is used to extract an arbitrary
+;;> field and match against it.  It is useful for more complex or
+;;> conditional destructuring that can't be more directly expressed in
+;;> the pattern syntax.  The usage is @scheme{(= field pat)}, where
+;;> @var{field} can be any expression, and should result in a
+;;> procedure of one argument, which is applied to the value to match
+;;> to generate a new value to match against @var{pat}.
+
+;;> Thus the pattern @scheme{(and (= car x) (= cdr y))} is equivalent
+;;> to @scheme{(x . y)}, except it will result in an immediate error
+;;> if the value isn't a pair.
+
+;;> @example{(match '(1 . 2) ((= car x) x))}
+;;> @example{(match 4 ((= sqrt x) x))}
+
+;;> The record operator @scheme{$} is used as a concise way to match
+;;> records defined by SRFI-9 (or SRFI-99).  The usage is
+;;> @scheme{($ rtd field ...)}, where @var{rtd} should be the record
+;;> type descriptor specified as the first argument to
+;;> @scheme{define-record-type}, and each @var{field} is a subpattern
+;;> matched against the fields of the record in order.  Not all fields
+;;> must be present.
+
+;;> @example{
+;;> (let ()
+;;>   (define-record-type employee
+;;>     (make-employee name title)
+;;>     employee?
+;;>     (name get-name)
+;;>     (title get-title))
+;;>   (match (make-employee "Bob" "Doctor")
+;;>     (($ employee n t) (list t n))))
+;;> }
+
+;;> The @scheme{set!} and @scheme{get!} operators are used to bind an
+;;> identifier to the setter and getter of a field, respectively.  The
+;;> setter is a procedure of one argument, which mutates the field to
+;;> that argument.  The getter is a procedure of no arguments which
+;;> returns the current value of the field.
+
+;;> @example{(let ((x (cons 1 2))) (match x ((1 . (set! s)) (s 3) x)))}
+;;> @example{(match '(1 . 2) ((1 . (get! g)) (g)))}
+
+;;> The new operator @scheme{***} can be used to search a tree for
+;;> subpatterns.  A pattern of the form @scheme{(x *** y)} represents
+;;> the subpattern @var{y} located somewhere in a tree where the path
+;;> from the current object to @var{y} can be seen as a list of the
+;;> form @scheme{(x ...)}.  @var{y} can immediately match the current
+;;> object in which case the path is the empty list.  In a sense it's
+;;> a 2-dimensional version of the @scheme{...} pattern.
+
+;;> As a common case the pattern @scheme{(_ *** y)} can be used to
+;;> search for @var{y} anywhere in a tree, regardless of the path
+;;> used.
+
+;;> @example{(match '(a (a (a b))) ((x *** 'b) x))}
+;;> @example{(match '(a (b) (c (d e) (f g))) ((x *** 'g) x))}
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Notes
+
+;; The implementation is a simple generative pattern matcher - each
+;; pattern is expanded into the required tests, calling a failure
+;; continuation if the tests fail.  This makes the logic easy to
+;; follow and extend, but produces sub-optimal code in cases where you
+;; have many similar clauses due to repeating the same tests.
+;; Nonetheless a smart compiler should be able to remove the redundant
+;; tests.  For MATCH-LET and DESTRUCTURING-BIND type uses there is no
+;; performance hit.
 
 ;; The original version was written on 2006/11/29 and described in the
 ;; following Usenet post:
@@ -28,6 +211,9 @@
 ;; performance can be found at
 ;;   http://synthcode.com/scheme/match-cond-expand.scm
 ;;
+;; 2011/01/27 - fixing bug when matching tail patterns against improper lists
+;; 2010/09/26 - adding `..1' patterns (thanks to Ludovic Courtès)
+;; 2010/09/07 - fixing identifier extraction in some `...' and `***' patterns
 ;; 2009/11/25 - adding `***' tree search patterns
 ;; 2008/03/20 - fixing bug where (a ...) matched non-lists
 ;; 2008/03/15 - removing redundant check in vector patterns
@@ -49,6 +235,21 @@
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
+;;> @subsubsection{Syntax}
+
+;;> @address@hidden(match expr (pattern . body) ...)@br{}
+;;> (match expr (pattern (=> failure) . body) ...)}}
+
+;;> The result of @var{expr} is matched against each @var{pattern} in
+;;> turn, according to the pattern rules described in the previous
+;;> section, until the the first @var{pattern} matches.  When a match is
+;;> found, the corresponding @var{body}s are evaluated in order,
+;;> and the result of the last expression is returned as the result
+;;> of the entire @scheme{match}.  If a @var{failure} is provided,
+;;> then it is bound to a procedure of no arguments which continues,
+;;> processing at the next @var{pattern}.  If no @var{pattern} matches,
+;;> an error is signalled.
+
 ;; The basic interface.  MATCH just performs some basic syntax
 ;; validation, binds the match expression to a temporary variable `v',
 ;; and passes it on to MATCH-NEXT.  It's a constant throughout the
@@ -165,6 +366,10 @@
      (if (pair? v)
          (match-one v (p ___) g+s sk fk i)
          fk))
+    ((match-two v ($ rec p ...) g+s sk fk i)
+     (if (is-a? v rec)
+         (match-record-refs v rec 0 (p ...) g+s sk fk i)
+         fk))
     ((match-two v (p . q) g+s sk fk i)
      (if (pair? v)
          (let ((w (car v)) (x (cdr v)))
@@ -240,6 +445,11 @@
   (syntax-rules ()
     ((_ expr ids ...) expr)))
 
+(define-syntax match-tuck-ids
+  (syntax-rules ()
+    ((_ (letish args (expr ...)) ids ...)
+     (letish args (expr ... ids ...)))))
+
 (define-syntax match-drop-first-arg
   (syntax-rules ()
     ((_ arg expr) expr)))
@@ -309,14 +519,14 @@
       r
       (let* ((tail-len (length 'r))
              (ls v)
-             (len (length ls)))
-        (if (< len tail-len)
+             (len (and (list? ls) (length ls))))
+        (if (or (not len) (< len tail-len))
             fk
             (let loop ((ls ls) (n len) (id-ls '()) ...)
               (cond
                 ((= n tail-len)
                  (let ((id (reverse id-ls)) ...)
-                   (match-one ls r (#f #f) (sk ... i) fk i)))
+                   (match-one ls r (#f #f) (sk ...) fk i)))
                 ((pair? ls)
                  (let ((w (car ls)))
                    (match-one w p ((car ls) (set-car! ls))
@@ -349,21 +559,7 @@
     ((_ x sk)
      (match-syntax-error "dotted tail not allowed after ellipse" x))))
 
-;; Matching a tree search pattern is only slightly more complicated.
-;; Here we allow patterns of the form
-;;
-;;     (x *** y)
-;;
-;; to represent the pattern y located somewhere in a tree where the
-;; path from the current object to y can be seen as a list of the form
-;; (X ...).  Y can immediately match the current object in which case
-;; the path is the empty list.  In a sense it's a 2-dimensional
-;; version of the ... pattern.
-;;
-;; As a common case the pattern (_ *** y) can be used to search for Y
-;; anywhere in a tree, regardless of the path used.
-;;
-;; To implement the search, we use two recursive procedures.  TRY
+;; To implement the tree search, we use two recursive procedures.  TRY
 ;; attempts to match Y once, and on success it calls the normal SK on
 ;; the accumulated list ids as in MATCH-GEN-ELLIPSES.  On failure, we
 ;; call NEXT which first checks if the current value is a list
@@ -380,7 +576,7 @@
     ((match-gen-search v p q g+s sk fk i ((id id-ls) ...))
      (letrec ((try (lambda (w fail id-ls ...)
                      (match-one w q g+s
-                                (match-drop-ids
+                                (match-tuck-ids
                                  (let ((id (reverse id-ls)) ...)
                                    sk))
                                 (next w fail id-ls ...) i)))
@@ -475,6 +671,15 @@
                       (match-drop-ids (loop (+ j 1) (cons id id-ls) ...))
                       fk i)))))))
 
+(define-syntax match-record-refs
+  (syntax-rules ()
+    ((_ v rec n (p . q) g+s sk fk i)
+     (let ((w (slot-ref rec v n)))
+       (match-one w p ((slot-ref rec v n) (slot-set! rec v n))
+                  (match-record-refs v rec (+ n 1) q g+s sk fk) fk i)))
+    ((_ v rec n () g+s (sk ...) fk i)
+     (sk ... i))))
+
 ;; Extract all identifiers in a pattern.  A little more complicated
 ;; than just looking for symbols, we need to ignore special keywords
 ;; and non-pattern forms (such as the predicate expression in ?
@@ -518,8 +723,8 @@
      (match-extract-vars (p ...) . x))
     ((match-extract-vars _ (k ...) i v)    (k ... v))
     ((match-extract-vars ___ (k ...) i v)  (k ... v))
-    ((match-extract-vars ..1 (k ...) i v)  (k ... v))
     ((match-extract-vars *** (k ...) i v)  (k ... v))
+    ((match-extract-vars ..1 (k ...) i v)  (k ... v))
     ;; This is the main part, the only place where we might add a new
     ;; var if it's an unbound symbol.
     ((match-extract-vars p (k ...) (i ...) v)
@@ -527,7 +732,7 @@
          ((new-sym?
            (syntax-rules (i ...)
              ((new-sym? p sk fk) sk)
-             ((new-sym? x sk fk) fk))))
+             ((new-sym? any sk fk) fk))))
        (new-sym? random-sym-to-match
                  (k ... ((p p-ls) . v))
                  (k ... v))))
@@ -572,24 +777,42 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; Gimme some sugar baby.
 
+;;> Shortcut for @scheme{lambda} + @scheme{match}.  Creates a
+;;> procedure of one argument, and matches that argument against each
+;;> clause.
+
 (define-syntax match-lambda
   (syntax-rules ()
-    ((_ clause ...) (lambda (expr) (match expr clause ...)))))
+    ((_ (pattern . body) ...) (lambda (expr) (match expr (pattern . body) 
...)))))
+
+;;> Similar to @scheme{match-lambda}.  Creates a procedure of any
+;;> number of arguments, and matches the argument list against each
+;;> clause.
 
 (define-syntax match-lambda*
   (syntax-rules ()
-    ((_ clause ...) (lambda expr (match expr clause ...)))))
+    ((_ (pattern . body) ...) (lambda expr (match expr (pattern . body) 
...)))))
+
+;;> Matches each var to the corresponding expression, and evaluates
+;;> the body with all match variables in scope.  Raises an error if
+;;> any of the expressions fail to match.  Syntax analogous to named
+;;> let can also be used for recursive functions which match on their
+;;> arguments as in @scheme{match-lambda*}.
 
 (define-syntax match-let
   (syntax-rules ()
-    ((_ (vars ...) . body)
-     (match-let/helper let () () (vars ...) . body))
-    ((_ loop . rest)
-     (match-named-let loop () . rest))))
+    ((_ ((var value) ...) . body)
+     (match-let/helper let () () ((var value) ...) . body))
+    ((_ loop ((var init) ...) . body)
+     (match-named-let loop ((var init) ...) . body))))
+
+;;> Similar to @scheme{match-let}, but analogously to @scheme{letrec}
+;;> matches and binds the variables with all match variables in scope.
 
 (define-syntax match-letrec
   (syntax-rules ()
-    ((_ vars . body) (match-let/helper letrec () () vars . body))))
+    ((_ ((var value) ...) . body)
+     (match-let/helper letrec () () ((var value) ...) . body))))
 
 (define-syntax match-let/helper
   (syntax-rules ()
@@ -617,6 +840,12 @@
     ((_ loop (v ...) ((pat expr) . rest) . body)
      (match-named-let loop (v ... (pat expr tmp)) rest . body))))
 
+;;> @address@hidden(match-let* ((var value) ...) body ...)}}
+
+;;> Similar to @scheme{match-let}, but analogously to @scheme{let*}
+;;> matches and binds the variables in sequence, with preceding match
+;;> variables in scope.
+
 (define-syntax match-let*
   (syntax-rules ()
     ((_ () . body)
diff --git a/module/ice-9/optargs.scm b/module/ice-9/optargs.scm
index 50a8299..dc4ec95 100644
--- a/module/ice-9/optargs.scm
+++ b/module/ice-9/optargs.scm
@@ -1,6 +1,6 @@
 ;;;; optargs.scm -- support for optional arguments
 ;;;;
-;;;;   Copyright (C) 1997, 1998, 1999, 2001, 2002, 2004, 2006, 2009, 2010 Free 
Software Foundation, Inc.
+;;;;   Copyright (C) 1997, 1998, 1999, 2001, 2002, 2004, 2006, 2009, 2010, 
2011 Free Software Foundation, Inc.
 ;;;;
 ;;;; This library is free software; you can redistribute it and/or
 ;;;; modify it under the terms of the GNU Lesser General Public
@@ -278,12 +278,10 @@
        #'(define-macro id doc (lambda* args b0 b1 ...)))
       ((_ id args b0 b1 ...) 
        #'(define-macro id #f (lambda* args b0 b1 ...))))))
-(define-syntax defmacro*-public
-  (syntax-rules ()
-    ((_ id args b0 b1 ...)
-     (begin
-       (defmacro* id args b0 b1 ...)
-       (export-syntax id)))))
+(define-syntax-rule (defmacro*-public id args b0 b1 ...)
+  (begin
+    (defmacro* id args b0 b1 ...)
+    (export-syntax id)))
 
 ;;; Support for optional & keyword args with the interpreter.
 (define *uninitialized* (list 'uninitialized))
diff --git a/module/ice-9/poll.scm b/module/ice-9/poll.scm
index 26b264b..cf61294 100644
--- a/module/ice-9/poll.scm
+++ b/module/ice-9/poll.scm
@@ -1,6 +1,6 @@
 ;; poll
 
-;;;; Copyright (C) 2010 Free Software Foundation, Inc.
+;;;; Copyright (C) 2010, 2011 Free Software Foundation, Inc.
 ;;;; 
 ;;;; This library is free software; you can redistribute it and/or
 ;;;; modify it under the terms of the GNU Lesser General Public
@@ -68,9 +68,8 @@
   (ports pset-ports set-pset-ports!)
   )
 
-(define-syntax pollfd-offset
-  (syntax-rules ()
-    ((_ n) (* n 8))))
+(define-syntax-rule (pollfd-offset n)
+  (* n 8))
 
 (define* (make-empty-poll-set #:optional (pre-allocated 4))
   (make-poll-set (make-bytevector (pollfd-offset pre-allocated) 0)
diff --git a/module/ice-9/psyntax-pp.scm b/module/ice-9/psyntax-pp.scm
index 40734cf..db6fc8a 100644
--- a/module/ice-9/psyntax-pp.scm
+++ b/module/ice-9/psyntax-pp.scm
@@ -2,14098 +2,16857 @@
 (if #f #f)
 
 (letrec*
-  ((#{make-void 203}#
-     (lambda (#{src 765}#)
+  ((#{make-void 208}#
+     (lambda (#{src 783}#)
        (make-struct/no-tail
          (vector-ref %expanded-vtables 0)
-         #{src 765}#)))
-   (#{make-const 205}#
-     (lambda (#{src 767}# #{exp 768}#)
+         #{src 783}#)))
+   (#{make-const 210}#
+     (lambda (#{src 785}# #{exp 786}#)
        (make-struct/no-tail
          (vector-ref %expanded-vtables 1)
-         #{src 767}#
-         #{exp 768}#)))
-   (#{make-primitive-ref 207}#
-     (lambda (#{src 771}# #{name 772}#)
-       (make-struct/no-tail
-         (vector-ref %expanded-vtables 2)
-         #{src 771}#
-         #{name 772}#)))
-   (#{make-lexical-ref 209}#
-     (lambda (#{src 775}# #{name 776}# #{gensym 777}#)
+         #{src 785}#
+         #{exp 786}#)))
+   (#{make-lexical-ref 214}#
+     (lambda (#{src 793}# #{name 794}# #{gensym 795}#)
        (make-struct/no-tail
          (vector-ref %expanded-vtables 3)
-         #{src 775}#
-         #{name 776}#
-         #{gensym 777}#)))
-   (#{make-lexical-set 211}#
-     (lambda (#{src 781}#
-              #{name 782}#
-              #{gensym 783}#
-              #{exp 784}#)
+         #{src 793}#
+         #{name 794}#
+         #{gensym 795}#)))
+   (#{make-lexical-set 216}#
+     (lambda (#{src 799}#
+              #{name 800}#
+              #{gensym 801}#
+              #{exp 802}#)
        (make-struct/no-tail
          (vector-ref %expanded-vtables 4)
-         #{src 781}#
-         #{name 782}#
-         #{gensym 783}#
-         #{exp 784}#)))
-   (#{make-module-ref 213}#
-     (lambda (#{src 789}#
-              #{mod 790}#
-              #{name 791}#
-              #{public? 792}#)
+         #{src 799}#
+         #{name 800}#
+         #{gensym 801}#
+         #{exp 802}#)))
+   (#{make-module-ref 218}#
+     (lambda (#{src 807}#
+              #{mod 808}#
+              #{name 809}#
+              #{public? 810}#)
        (make-struct/no-tail
          (vector-ref %expanded-vtables 5)
-         #{src 789}#
-         #{mod 790}#
-         #{name 791}#
-         #{public? 792}#)))
-   (#{make-module-set 215}#
-     (lambda (#{src 797}#
-              #{mod 798}#
-              #{name 799}#
-              #{public? 800}#
-              #{exp 801}#)
+         #{src 807}#
+         #{mod 808}#
+         #{name 809}#
+         #{public? 810}#)))
+   (#{make-module-set 220}#
+     (lambda (#{src 815}#
+              #{mod 816}#
+              #{name 817}#
+              #{public? 818}#
+              #{exp 819}#)
        (make-struct/no-tail
          (vector-ref %expanded-vtables 6)
-         #{src 797}#
-         #{mod 798}#
-         #{name 799}#
-         #{public? 800}#
-         #{exp 801}#)))
-   (#{make-toplevel-ref 217}#
-     (lambda (#{src 807}# #{name 808}#)
+         #{src 815}#
+         #{mod 816}#
+         #{name 817}#
+         #{public? 818}#
+         #{exp 819}#)))
+   (#{make-toplevel-ref 222}#
+     (lambda (#{src 825}# #{name 826}#)
        (make-struct/no-tail
          (vector-ref %expanded-vtables 7)
-         #{src 807}#
-         #{name 808}#)))
-   (#{make-toplevel-set 219}#
-     (lambda (#{src 811}# #{name 812}# #{exp 813}#)
+         #{src 825}#
+         #{name 826}#)))
+   (#{make-toplevel-set 224}#
+     (lambda (#{src 829}# #{name 830}# #{exp 831}#)
        (make-struct/no-tail
          (vector-ref %expanded-vtables 8)
-         #{src 811}#
-         #{name 812}#
-         #{exp 813}#)))
-   (#{make-toplevel-define 221}#
-     (lambda (#{src 817}# #{name 818}# #{exp 819}#)
+         #{src 829}#
+         #{name 830}#
+         #{exp 831}#)))
+   (#{make-toplevel-define 226}#
+     (lambda (#{src 835}# #{name 836}# #{exp 837}#)
        (make-struct/no-tail
          (vector-ref %expanded-vtables 9)
-         #{src 817}#
-         #{name 818}#
-         #{exp 819}#)))
-   (#{make-conditional 223}#
-     (lambda (#{src 823}#
-              #{test 824}#
-              #{consequent 825}#
-              #{alternate 826}#)
+         #{src 835}#
+         #{name 836}#
+         #{exp 837}#)))
+   (#{make-conditional 228}#
+     (lambda (#{src 841}#
+              #{test 842}#
+              #{consequent 843}#
+              #{alternate 844}#)
        (make-struct/no-tail
          (vector-ref %expanded-vtables 10)
-         #{src 823}#
-         #{test 824}#
-         #{consequent 825}#
-         #{alternate 826}#)))
-   (#{make-call 225}#
-     (lambda (#{src 831}# #{proc 832}# #{args 833}#)
+         #{src 841}#
+         #{test 842}#
+         #{consequent 843}#
+         #{alternate 844}#)))
+   (#{make-call 230}#
+     (lambda (#{src 849}# #{proc 850}# #{args 851}#)
        (make-struct/no-tail
          (vector-ref %expanded-vtables 11)
-         #{src 831}#
-         #{proc 832}#
-         #{args 833}#)))
-   (#{make-primcall 227}#
-     (lambda (#{src 837}# #{name 838}# #{args 839}#)
+         #{src 849}#
+         #{proc 850}#
+         #{args 851}#)))
+   (#{make-primcall 232}#
+     (lambda (#{src 855}# #{name 856}# #{args 857}#)
        (make-struct/no-tail
          (vector-ref %expanded-vtables 12)
-         #{src 837}#
-         #{name 838}#
-         #{args 839}#)))
-   (#{make-seq 229}#
-     (lambda (#{src 843}# #{head 844}# #{tail 845}#)
+         #{src 855}#
+         #{name 856}#
+         #{args 857}#)))
+   (#{make-seq 234}#
+     (lambda (#{src 861}# #{head 862}# #{tail 863}#)
        (make-struct/no-tail
          (vector-ref %expanded-vtables 13)
-         #{src 843}#
-         #{head 844}#
-         #{tail 845}#)))
-   (#{make-lambda 231}#
-     (lambda (#{src 849}# #{meta 850}# #{body 851}#)
+         #{src 861}#
+         #{head 862}#
+         #{tail 863}#)))
+   (#{make-lambda 236}#
+     (lambda (#{src 867}# #{meta 868}# #{body 869}#)
        (make-struct/no-tail
          (vector-ref %expanded-vtables 14)
-         #{src 849}#
-         #{meta 850}#
-         #{body 851}#)))
-   (#{make-lambda-case 233}#
-     (lambda (#{src 855}#
-              #{req 856}#
-              #{opt 857}#
-              #{rest 858}#
-              #{kw 859}#
-              #{inits 860}#
-              #{gensyms 861}#
-              #{body 862}#
-              #{alternate 863}#)
+         #{src 867}#
+         #{meta 868}#
+         #{body 869}#)))
+   (#{make-lambda-case 238}#
+     (lambda (#{src 873}#
+              #{req 874}#
+              #{opt 875}#
+              #{rest 876}#
+              #{kw 877}#
+              #{inits 878}#
+              #{gensyms 879}#
+              #{body 880}#
+              #{alternate 881}#)
        (make-struct/no-tail
          (vector-ref %expanded-vtables 15)
-         #{src 855}#
-         #{req 856}#
-         #{opt 857}#
-         #{rest 858}#
-         #{kw 859}#
-         #{inits 860}#
-         #{gensyms 861}#
-         #{body 862}#
-         #{alternate 863}#)))
-   (#{make-let 235}#
-     (lambda (#{src 873}#
-              #{names 874}#
-              #{gensyms 875}#
-              #{vals 876}#
-              #{body 877}#)
+         #{src 873}#
+         #{req 874}#
+         #{opt 875}#
+         #{rest 876}#
+         #{kw 877}#
+         #{inits 878}#
+         #{gensyms 879}#
+         #{body 880}#
+         #{alternate 881}#)))
+   (#{make-let 240}#
+     (lambda (#{src 891}#
+              #{names 892}#
+              #{gensyms 893}#
+              #{vals 894}#
+              #{body 895}#)
        (make-struct/no-tail
          (vector-ref %expanded-vtables 16)
-         #{src 873}#
-         #{names 874}#
-         #{gensyms 875}#
-         #{vals 876}#
-         #{body 877}#)))
-   (#{make-letrec 237}#
-     (lambda (#{src 883}#
-              #{in-order? 884}#
-              #{names 885}#
-              #{gensyms 886}#
-              #{vals 887}#
-              #{body 888}#)
+         #{src 891}#
+         #{names 892}#
+         #{gensyms 893}#
+         #{vals 894}#
+         #{body 895}#)))
+   (#{make-letrec 242}#
+     (lambda (#{src 901}#
+              #{in-order? 902}#
+              #{names 903}#
+              #{gensyms 904}#
+              #{vals 905}#
+              #{body 906}#)
        (make-struct/no-tail
          (vector-ref %expanded-vtables 17)
-         #{src 883}#
-         #{in-order? 884}#
-         #{names 885}#
-         #{gensyms 886}#
-         #{vals 887}#
-         #{body 888}#)))
-   (#{make-dynlet 239}#
-     (lambda (#{src 895}#
-              #{fluids 896}#
-              #{vals 897}#
-              #{body 898}#)
+         #{src 901}#
+         #{in-order? 902}#
+         #{names 903}#
+         #{gensyms 904}#
+         #{vals 905}#
+         #{body 906}#)))
+   (#{make-dynlet 244}#
+     (lambda (#{src 913}#
+              #{fluids 914}#
+              #{vals 915}#
+              #{body 916}#)
        (make-struct/no-tail
          (vector-ref %expanded-vtables 18)
-         #{src 895}#
-         #{fluids 896}#
-         #{vals 897}#
-         #{body 898}#)))
-   (#{lambda? 242}#
-     (lambda (#{x 903}#)
-       (if (struct? #{x 903}#)
-         (eq? (struct-vtable #{x 903}#)
+         #{src 913}#
+         #{fluids 914}#
+         #{vals 915}#
+         #{body 916}#)))
+   (#{lambda? 247}#
+     (lambda (#{x 921}#)
+       (if (struct? #{x 921}#)
+         (eq? (struct-vtable #{x 921}#)
               (vector-ref %expanded-vtables 14))
          #f)))
-   (#{lambda-meta 244}#
-     (lambda (#{x 907}#) (struct-ref #{x 907}# 1)))
-   (#{set-lambda-meta! 246}#
-     (lambda (#{x 909}# #{v 910}#)
-       (struct-set! #{x 909}# 1 #{v 910}#)))
-   (#{top-level-eval-hook 252}#
-     (lambda (#{x 913}# #{mod 914}#)
-       (primitive-eval #{x 913}#)))
-   (#{local-eval-hook 254}#
-     (lambda (#{x 917}# #{mod 918}#)
-       (primitive-eval #{x 917}#)))
-   (#{put-global-definition-hook 257}#
-     (lambda (#{symbol 921}# #{type 922}# #{val 923}#)
+   (#{lambda-meta 249}#
+     (lambda (#{x 925}#) (struct-ref #{x 925}# 1)))
+   (#{set-lambda-meta! 251}#
+     (lambda (#{x 927}# #{v 928}#)
+       (struct-set! #{x 927}# 1 #{v 928}#)))
+   (#{top-level-eval-hook 257}#
+     (lambda (#{x 931}# #{mod 932}#)
+       (primitive-eval #{x 931}#)))
+   (#{local-eval-hook 259}#
+     (lambda (#{x 935}# #{mod 936}#)
+       (primitive-eval #{x 935}#)))
+   (#{put-global-definition-hook 263}#
+     (lambda (#{symbol 939}# #{type 940}# #{val 941}#)
        (module-define!
          (current-module)
-         #{symbol 921}#
+         #{symbol 939}#
          (make-syntax-transformer
-           #{symbol 921}#
-           #{type 922}#
-           #{val 923}#))))
-   (#{get-global-definition-hook 259}#
-     (lambda (#{symbol 927}# #{module 928}#)
+           #{symbol 939}#
+           #{type 940}#
+           #{val 941}#))))
+   (#{get-global-definition-hook 265}#
+     (lambda (#{symbol 945}# #{module 946}#)
        (begin
-         (if (if (not #{module 928}#) (current-module) #f)
+         (if (if (not #{module 946}#) (current-module) #f)
            (warn "module system is booted, we should have a module"
-                 #{symbol 927}#))
-         (let ((#{v 934}# (module-variable
-                            (if #{module 928}#
-                              (resolve-module (cdr #{module 928}#))
+                 #{symbol 945}#))
+         (let ((#{v 952}# (module-variable
+                            (if #{module 946}#
+                              (resolve-module (cdr #{module 946}#))
                               (current-module))
-                            #{symbol 927}#)))
-           (if #{v 934}#
-             (if (variable-bound? #{v 934}#)
-               (let ((#{val 939}# (variable-ref #{v 934}#)))
-                 (if (macro? #{val 939}#)
-                   (if (macro-type #{val 939}#)
-                     (cons (macro-type #{val 939}#)
-                           (macro-binding #{val 939}#))
+                            #{symbol 945}#)))
+           (if #{v 952}#
+             (if (variable-bound? #{v 952}#)
+               (let ((#{val 957}# (variable-ref #{v 952}#)))
+                 (if (macro? #{val 957}#)
+                   (if (macro-type #{val 957}#)
+                     (cons (macro-type #{val 957}#)
+                           (macro-binding #{val 957}#))
                      #f)
                    #f))
                #f)
              #f)))))
-   (#{decorate-source 261}#
-     (lambda (#{e 943}# #{s 944}#)
-       (begin
-         (if (if (pair? #{e 943}#) #{s 944}# #f)
-           (set-source-properties! #{e 943}# #{s 944}#))
-         #{e 943}#)))
-   (#{maybe-name-value! 263}#
-     (lambda (#{name 949}# #{val 950}#)
-       (if (#{lambda? 242}# #{val 950}#)
-         (let ((#{meta 954}# (#{lambda-meta 244}# #{val 950}#)))
-           (if (not (assq 'name #{meta 954}#))
-             (#{set-lambda-meta! 246}#
-               #{val 950}#
-               (cons (cons 'name #{name 949}#) #{meta 954}#)))))))
-   (#{build-void 265}#
-     (lambda (#{source 955}#)
-       (#{make-void 203}# #{source 955}#)))
-   (#{build-call 267}#
-     (lambda (#{source 957}# #{fun-exp 958}# #{arg-exps 959}#)
-       (#{make-call 225}#
-         #{source 957}#
-         #{fun-exp 958}#
-         #{arg-exps 959}#)))
-   (#{build-conditional 269}#
-     (lambda (#{source 963}#
-              #{test-exp 964}#
-              #{then-exp 965}#
-              #{else-exp 966}#)
-       (#{make-conditional 223}#
-         #{source 963}#
-         #{test-exp 964}#
-         #{then-exp 965}#
-         #{else-exp 966}#)))
-   (#{build-dynlet 271}#
-     (lambda (#{source 971}#
-              #{fluids 972}#
-              #{vals 973}#
-              #{body 974}#)
-       (#{make-dynlet 239}#
-         #{source 971}#
-         #{fluids 972}#
-         #{vals 973}#
-         #{body 974}#)))
-   (#{build-lexical-reference 273}#
-     (lambda (#{type 979}#
-              #{source 980}#
-              #{name 981}#
-              #{var 982}#)
-       (#{make-lexical-ref 209}#
-         #{source 980}#
-         #{name 981}#
-         #{var 982}#)))
-   (#{build-lexical-assignment 275}#
-     (lambda (#{source 987}#
-              #{name 988}#
-              #{var 989}#
-              #{exp 990}#)
+   (#{decorate-source 267}#
+     (lambda (#{e 961}# #{s 962}#)
        (begin
-         (#{maybe-name-value! 263}#
-           #{name 988}#
-           #{exp 990}#)
-         (#{make-lexical-set 211}#
-           #{source 987}#
-           #{name 988}#
-           #{var 989}#
-           #{exp 990}#))))
-   (#{analyze-variable 277}#
-     (lambda (#{mod 995}#
-              #{var 996}#
-              #{modref-cont 997}#
-              #{bare-cont 998}#)
-       (if (not #{mod 995}#)
-         (#{bare-cont 998}# #{var 996}#)
-         (let ((#{kind 1005}# (car #{mod 995}#))
-               (#{mod 1006}# (cdr #{mod 995}#)))
-           (if (memv #{kind 1005}# '(public))
-             (#{modref-cont 997}# #{mod 1006}# #{var 996}# #t)
-             (if (memv #{kind 1005}# '(private))
+         (if (if (pair? #{e 961}#) #{s 962}# #f)
+           (set-source-properties! #{e 961}# #{s 962}#))
+         #{e 961}#)))
+   (#{maybe-name-value! 269}#
+     (lambda (#{name 967}# #{val 968}#)
+       (if (#{lambda? 247}# #{val 968}#)
+         (let ((#{meta 972}# (#{lambda-meta 249}# #{val 968}#)))
+           (if (not (assq 'name #{meta 972}#))
+             (#{set-lambda-meta! 251}#
+               #{val 968}#
+               (cons (cons 'name #{name 967}#) #{meta 972}#)))))))
+   (#{build-void 271}#
+     (lambda (#{source 973}#)
+       (#{make-void 208}# #{source 973}#)))
+   (#{build-call 273}#
+     (lambda (#{source 975}# #{fun-exp 976}# #{arg-exps 977}#)
+       (#{make-call 230}#
+         #{source 975}#
+         #{fun-exp 976}#
+         #{arg-exps 977}#)))
+   (#{build-conditional 275}#
+     (lambda (#{source 981}#
+              #{test-exp 982}#
+              #{then-exp 983}#
+              #{else-exp 984}#)
+       (#{make-conditional 228}#
+         #{source 981}#
+         #{test-exp 982}#
+         #{then-exp 983}#
+         #{else-exp 984}#)))
+   (#{build-lexical-reference 279}#
+     (lambda (#{type 997}#
+              #{source 998}#
+              #{name 999}#
+              #{var 1000}#)
+       (#{make-lexical-ref 214}#
+         #{source 998}#
+         #{name 999}#
+         #{var 1000}#)))
+   (#{analyze-variable 283}#
+     (lambda (#{mod 1013}#
+              #{var 1014}#
+              #{modref-cont 1015}#
+              #{bare-cont 1016}#)
+       (if (not #{mod 1013}#)
+         (#{bare-cont 1016}# #{var 1014}#)
+         (let ((#{kind 1023}# (car #{mod 1013}#))
+               (#{mod 1024}# (cdr #{mod 1013}#)))
+           (if (memv #{kind 1023}# '(public))
+             (#{modref-cont 1015}#
+               #{mod 1024}#
+               #{var 1014}#
+               #t)
+             (if (memv #{kind 1023}# '(private))
                (if (not (equal?
-                          #{mod 1006}#
+                          #{mod 1024}#
                           (module-name (current-module))))
-                 (#{modref-cont 997}# #{mod 1006}# #{var 996}# #f)
-                 (#{bare-cont 998}# #{var 996}#))
-               (if (memv #{kind 1005}# '(bare))
-                 (#{bare-cont 998}# #{var 996}#)
-                 (if (memv #{kind 1005}# '(hygiene))
+                 (#{modref-cont 1015}#
+                   #{mod 1024}#
+                   #{var 1014}#
+                   #f)
+                 (#{bare-cont 1016}# #{var 1014}#))
+               (if (memv #{kind 1023}# '(bare))
+                 (#{bare-cont 1016}# #{var 1014}#)
+                 (if (memv #{kind 1023}# '(hygiene))
                    (if (if (not (equal?
-                                  #{mod 1006}#
+                                  #{mod 1024}#
                                   (module-name (current-module))))
                          (module-variable
-                           (resolve-module #{mod 1006}#)
-                           #{var 996}#)
+                           (resolve-module #{mod 1024}#)
+                           #{var 1014}#)
                          #f)
-                     (#{modref-cont 997}# #{mod 1006}# #{var 996}# #f)
-                     (#{bare-cont 998}# #{var 996}#))
+                     (#{modref-cont 1015}#
+                       #{mod 1024}#
+                       #{var 1014}#
+                       #f)
+                     (#{bare-cont 1016}# #{var 1014}#))
                    (syntax-violation
                      #f
                      "bad module kind"
-                     #{var 996}#
-                     #{mod 1006}#)))))))))
-   (#{build-global-reference 279}#
-     (lambda (#{source 1014}# #{var 1015}# #{mod 1016}#)
-       (#{analyze-variable 277}#
-         #{mod 1016}#
-         #{var 1015}#
-         (lambda (#{mod 1020}# #{var 1021}# #{public? 1022}#)
-           (#{make-module-ref 213}#
-             #{source 1014}#
-             #{mod 1020}#
-             #{var 1021}#
-             #{public? 1022}#))
-         (lambda (#{var 1026}#)
-           (#{make-toplevel-ref 217}#
-             #{source 1014}#
-             #{var 1026}#)))))
-   (#{build-global-assignment 281}#
-     (lambda (#{source 1028}#
-              #{var 1029}#
-              #{exp 1030}#
-              #{mod 1031}#)
+                     #{var 1014}#
+                     #{mod 1024}#)))))))))
+   (#{build-global-reference 285}#
+     (lambda (#{source 1032}# #{var 1033}# #{mod 1034}#)
+       (#{analyze-variable 283}#
+         #{mod 1034}#
+         #{var 1033}#
+         (lambda (#{mod 1038}# #{var 1039}# #{public? 1040}#)
+           (#{make-module-ref 218}#
+             #{source 1032}#
+             #{mod 1038}#
+             #{var 1039}#
+             #{public? 1040}#))
+         (lambda (#{var 1044}#)
+           (#{make-toplevel-ref 222}#
+             #{source 1032}#
+             #{var 1044}#)))))
+   (#{build-global-assignment 287}#
+     (lambda (#{source 1046}#
+              #{var 1047}#
+              #{exp 1048}#
+              #{mod 1049}#)
        (begin
-         (#{maybe-name-value! 263}#
-           #{var 1029}#
-           #{exp 1030}#)
-         (#{analyze-variable 277}#
-           #{mod 1031}#
-           #{var 1029}#
-           (lambda (#{mod 1036}# #{var 1037}# #{public? 1038}#)
-             (#{make-module-set 215}#
-               #{source 1028}#
-               #{mod 1036}#
-               #{var 1037}#
-               #{public? 1038}#
-               #{exp 1030}#))
-           (lambda (#{var 1042}#)
-             (#{make-toplevel-set 219}#
-               #{source 1028}#
-               #{var 1042}#
-               #{exp 1030}#))))))
-   (#{build-global-definition 283}#
-     (lambda (#{source 1044}# #{var 1045}# #{exp 1046}#)
+         (#{maybe-name-value! 269}#
+           #{var 1047}#
+           #{exp 1048}#)
+         (#{analyze-variable 283}#
+           #{mod 1049}#
+           #{var 1047}#
+           (lambda (#{mod 1054}# #{var 1055}# #{public? 1056}#)
+             (#{make-module-set 220}#
+               #{source 1046}#
+               #{mod 1054}#
+               #{var 1055}#
+               #{public? 1056}#
+               #{exp 1048}#))
+           (lambda (#{var 1060}#)
+             (#{make-toplevel-set 224}#
+               #{source 1046}#
+               #{var 1060}#
+               #{exp 1048}#))))))
+   (#{build-global-definition 289}#
+     (lambda (#{source 1062}# #{var 1063}# #{exp 1064}#)
        (begin
-         (#{maybe-name-value! 263}#
-           #{var 1045}#
-           #{exp 1046}#)
-         (#{make-toplevel-define 221}#
-           #{source 1044}#
-           #{var 1045}#
-           #{exp 1046}#))))
-   (#{build-simple-lambda 285}#
-     (lambda (#{src 1050}#
-              #{req 1051}#
-              #{rest 1052}#
-              #{vars 1053}#
-              #{meta 1054}#
-              #{exp 1055}#)
-       (#{make-lambda 231}#
-         #{src 1050}#
-         #{meta 1054}#
-         (#{make-lambda-case 233}#
-           #{src 1050}#
-           #{req 1051}#
+         (#{maybe-name-value! 269}#
+           #{var 1063}#
+           #{exp 1064}#)
+         (#{make-toplevel-define 226}#
+           #{source 1062}#
+           #{var 1063}#
+           #{exp 1064}#))))
+   (#{build-simple-lambda 291}#
+     (lambda (#{src 1068}#
+              #{req 1069}#
+              #{rest 1070}#
+              #{vars 1071}#
+              #{meta 1072}#
+              #{exp 1073}#)
+       (#{make-lambda 236}#
+         #{src 1068}#
+         #{meta 1072}#
+         (#{make-lambda-case 238}#
+           #{src 1068}#
+           #{req 1069}#
            #f
-           #{rest 1052}#
+           #{rest 1070}#
            #f
            '()
-           #{vars 1053}#
-           #{exp 1055}#
+           #{vars 1071}#
+           #{exp 1073}#
            #f))))
-   (#{build-case-lambda 287}#
-     (lambda (#{src 1062}# #{meta 1063}# #{body 1064}#)
-       (#{make-lambda 231}#
-         #{src 1062}#
-         #{meta 1063}#
-         #{body 1064}#)))
-   (#{build-lambda-case 289}#
-     (lambda (#{src 1068}#
-              #{req 1069}#
-              #{opt 1070}#
-              #{rest 1071}#
-              #{kw 1072}#
-              #{inits 1073}#
-              #{vars 1074}#
-              #{body 1075}#
-              #{else-case 1076}#)
-       (#{make-lambda-case 233}#
-         #{src 1068}#
-         #{req 1069}#
-         #{opt 1070}#
-         #{rest 1071}#
-         #{kw 1072}#
-         #{inits 1073}#
-         #{vars 1074}#
-         #{body 1075}#
-         #{else-case 1076}#)))
-   (#{build-primcall 291}#
-     (lambda (#{src 1086}# #{name 1087}# #{args 1088}#)
-       (#{make-primcall 227}#
+   (#{build-lambda-case 295}#
+     (lambda (#{src 1086}#
+              #{req 1087}#
+              #{opt 1088}#
+              #{rest 1089}#
+              #{kw 1090}#
+              #{inits 1091}#
+              #{vars 1092}#
+              #{body 1093}#
+              #{else-case 1094}#)
+       (#{make-lambda-case 238}#
          #{src 1086}#
-         #{name 1087}#
-         #{args 1088}#)))
-   (#{build-primref 293}#
-     (lambda (#{src 1092}# #{name 1093}#)
-       (#{make-primitive-ref 207}#
-         #{src 1092}#
-         #{name 1093}#)))
-   (#{build-data 295}#
-     (lambda (#{src 1096}# #{exp 1097}#)
-       (#{make-const 205}# #{src 1096}# #{exp 1097}#)))
-   (#{build-sequence 297}#
-     (lambda (#{src 1100}# #{exps 1101}#)
-       (if (null? (cdr #{exps 1101}#))
-         (car #{exps 1101}#)
-         (#{make-seq 229}#
-           #{src 1100}#
-           (car #{exps 1101}#)
-           (#{build-sequence 297}# #f (cdr #{exps 1101}#))))))
-   (#{build-let 299}#
-     (lambda (#{src 1104}#
-              #{ids 1105}#
-              #{vars 1106}#
-              #{val-exps 1107}#
-              #{body-exp 1108}#)
-       (begin
-         (for-each
-           #{maybe-name-value! 263}#
-           #{ids 1105}#
-           #{val-exps 1107}#)
-         (if (null? #{vars 1106}#)
-           #{body-exp 1108}#
-           (#{make-let 235}#
-             #{src 1104}#
-             #{ids 1105}#
-             #{vars 1106}#
-             #{val-exps 1107}#
-             #{body-exp 1108}#)))))
-   (#{build-named-let 301}#
-     (lambda (#{src 1114}#
-              #{ids 1115}#
-              #{vars 1116}#
-              #{val-exps 1117}#
-              #{body-exp 1118}#)
-       (let ((#{f 1128}# (car #{vars 1116}#))
-             (#{f-name 1129}# (car #{ids 1115}#))
-             (#{vars 1130}# (cdr #{vars 1116}#))
-             (#{ids 1131}# (cdr #{ids 1115}#)))
-         (let ((#{proc 1133}#
-                 (#{build-simple-lambda 285}#
-                   #{src 1114}#
-                   #{ids 1131}#
-                   #f
-                   #{vars 1130}#
-                   '()
-                   #{body-exp 1118}#)))
-           (begin
-             (#{maybe-name-value! 263}#
-               #{f-name 1129}#
-               #{proc 1133}#)
-             (for-each
-               #{maybe-name-value! 263}#
-               #{ids 1131}#
-               #{val-exps 1117}#)
-             (#{make-letrec 237}#
-               #{src 1114}#
-               #f
-               (list #{f-name 1129}#)
-               (list #{f 1128}#)
-               (list #{proc 1133}#)
-               (#{build-call 267}#
-                 #{src 1114}#
-                 (#{build-lexical-reference 273}#
-                   'fun
-                   #{src 1114}#
-                   #{f-name 1129}#
-                   #{f 1128}#)
-                 #{val-exps 1117}#)))))))
-   (#{build-letrec 303}#
-     (lambda (#{src 1134}#
-              #{in-order? 1135}#
-              #{ids 1136}#
-              #{vars 1137}#
-              #{val-exps 1138}#
-              #{body-exp 1139}#)
-       (if (null? #{vars 1137}#)
-         #{body-exp 1139}#
+         #{req 1087}#
+         #{opt 1088}#
+         #{rest 1089}#
+         #{kw 1090}#
+         #{inits 1091}#
+         #{vars 1092}#
+         #{body 1093}#
+         #{else-case 1094}#)))
+   (#{build-primcall 297}#
+     (lambda (#{src 1104}# #{name 1105}# #{args 1106}#)
+       (#{make-primcall 232}#
+         #{src 1104}#
+         #{name 1105}#
+         #{args 1106}#)))
+   (#{build-data 301}#
+     (lambda (#{src 1114}# #{exp 1115}#)
+       (#{make-const 210}# #{src 1114}# #{exp 1115}#)))
+   (#{build-sequence 303}#
+     (lambda (#{src 1118}# #{exps 1119}#)
+       (if (null? (cdr #{exps 1119}#))
+         (car #{exps 1119}#)
+         (#{make-seq 234}#
+           #{src 1118}#
+           (car #{exps 1119}#)
+           (#{build-sequence 303}# #f (cdr #{exps 1119}#))))))
+   (#{build-letrec 309}#
+     (lambda (#{src 1152}#
+              #{in-order? 1153}#
+              #{ids 1154}#
+              #{vars 1155}#
+              #{val-exps 1156}#
+              #{body-exp 1157}#)
+       (if (null? #{vars 1155}#)
+         #{body-exp 1157}#
          (begin
            (for-each
-             #{maybe-name-value! 263}#
-             #{ids 1136}#
-             #{val-exps 1138}#)
-           (#{make-letrec 237}#
-             #{src 1134}#
-             #{in-order? 1135}#
-             #{ids 1136}#
-             #{vars 1137}#
-             #{val-exps 1138}#
-             #{body-exp 1139}#)))))
-   (#{make-syntax-object 307}#
-     (lambda (#{expression 1146}#
-              #{wrap 1147}#
-              #{module 1148}#)
+             #{maybe-name-value! 269}#
+             #{ids 1154}#
+             #{val-exps 1156}#)
+           (#{make-letrec 242}#
+             #{src 1152}#
+             #{in-order? 1153}#
+             #{ids 1154}#
+             #{vars 1155}#
+             #{val-exps 1156}#
+             #{body-exp 1157}#)))))
+   (#{make-syntax-object 314}#
+     (lambda (#{expression 1164}#
+              #{wrap 1165}#
+              #{module 1166}#)
        (vector
          'syntax-object
-         #{expression 1146}#
-         #{wrap 1147}#
-         #{module 1148}#)))
-   (#{syntax-object? 309}#
-     (lambda (#{x 1152}#)
-       (if (vector? #{x 1152}#)
-         (if (= (vector-length #{x 1152}#) 4)
-           (eq? (vector-ref #{x 1152}# 0) 'syntax-object)
+         #{expression 1164}#
+         #{wrap 1165}#
+         #{module 1166}#)))
+   (#{syntax-object? 316}#
+     (lambda (#{x 1170}#)
+       (if (vector? #{x 1170}#)
+         (if (= (vector-length #{x 1170}#) 4)
+           (eq? (vector-ref #{x 1170}# 0) 'syntax-object)
            #f)
          #f)))
-   (#{syntax-object-expression 311}#
-     (lambda (#{x 1157}#) (vector-ref #{x 1157}# 1)))
-   (#{syntax-object-wrap 313}#
-     (lambda (#{x 1159}#) (vector-ref #{x 1159}# 2)))
-   (#{syntax-object-module 315}#
-     (lambda (#{x 1161}#) (vector-ref #{x 1161}# 3)))
-   (#{source-annotation 324}#
-     (lambda (#{x 1175}#)
-       (if (#{syntax-object? 309}# #{x 1175}#)
-         (#{source-annotation 324}#
-           (#{syntax-object-expression 311}# #{x 1175}#))
-         (if (pair? #{x 1175}#)
-           (let ((#{props 1182}# (source-properties #{x 1175}#)))
-             (if (pair? #{props 1182}#) #{props 1182}# #f))
+   (#{syntax-object-expression 318}#
+     (lambda (#{x 1175}#) (vector-ref #{x 1175}# 1)))
+   (#{syntax-object-wrap 320}#
+     (lambda (#{x 1177}#) (vector-ref #{x 1177}# 2)))
+   (#{syntax-object-module 322}#
+     (lambda (#{x 1179}#) (vector-ref #{x 1179}# 3)))
+   (#{source-annotation 331}#
+     (lambda (#{x 1193}#)
+       (if (#{syntax-object? 316}# #{x 1193}#)
+         (#{source-annotation 331}#
+           (#{syntax-object-expression 318}# #{x 1193}#))
+         (if (pair? #{x 1193}#)
+           (let ((#{props 1200}# (source-properties #{x 1193}#)))
+             (if (pair? #{props 1200}#) #{props 1200}# #f))
            #f))))
-   (#{extend-env 331}#
-     (lambda (#{labels 1184}# #{bindings 1185}# #{r 1186}#)
-       (if (null? #{labels 1184}#)
-         #{r 1186}#
-         (#{extend-env 331}#
-           (cdr #{labels 1184}#)
-           (cdr #{bindings 1185}#)
-           (cons (cons (car #{labels 1184}#)
-                       (car #{bindings 1185}#))
-                 #{r 1186}#)))))
-   (#{extend-var-env 333}#
-     (lambda (#{labels 1190}# #{vars 1191}# #{r 1192}#)
-       (if (null? #{labels 1190}#)
-         #{r 1192}#
-         (#{extend-var-env 333}#
-           (cdr #{labels 1190}#)
-           (cdr #{vars 1191}#)
-           (cons (cons (car #{labels 1190}#)
-                       (cons 'lexical (car #{vars 1191}#)))
-                 #{r 1192}#)))))
-   (#{macros-only-env 335}#
-     (lambda (#{r 1197}#)
-       (if (null? #{r 1197}#)
+   (#{extend-env 341}#
+     (lambda (#{labels 1202}# #{bindings 1203}# #{r 1204}#)
+       (if (null? #{labels 1202}#)
+         #{r 1204}#
+         (#{extend-env 341}#
+           (cdr #{labels 1202}#)
+           (cdr #{bindings 1203}#)
+           (cons (cons (car #{labels 1202}#)
+                       (car #{bindings 1203}#))
+                 #{r 1204}#)))))
+   (#{extend-var-env 343}#
+     (lambda (#{labels 1208}# #{vars 1209}# #{r 1210}#)
+       (if (null? #{labels 1208}#)
+         #{r 1210}#
+         (#{extend-var-env 343}#
+           (cdr #{labels 1208}#)
+           (cdr #{vars 1209}#)
+           (cons (cons (car #{labels 1208}#)
+                       (cons 'lexical (car #{vars 1209}#)))
+                 #{r 1210}#)))))
+   (#{macros-only-env 345}#
+     (lambda (#{r 1215}#)
+       (if (null? #{r 1215}#)
          '()
-         (let ((#{a 1200}# (car #{r 1197}#)))
-           (if (eq? (car (cdr #{a 1200}#)) 'macro)
-             (cons #{a 1200}#
-                   (#{macros-only-env 335}# (cdr #{r 1197}#)))
-             (#{macros-only-env 335}# (cdr #{r 1197}#)))))))
-   (#{lookup 337}#
-     (lambda (#{x 1201}# #{r 1202}# #{mod 1203}#)
-       (let ((#{t 1209}# (assq #{x 1201}# #{r 1202}#)))
-         (if #{t 1209}#
-           (cdr #{t 1209}#)
-           (if (symbol? #{x 1201}#)
-             (let ((#{t 1215}#
-                     (#{get-global-definition-hook 259}#
-                       #{x 1201}#
-                       #{mod 1203}#)))
-               (if #{t 1215}# #{t 1215}# '(global)))
+         (let ((#{a 1218}# (car #{r 1215}#)))
+           (if (eq? (car (cdr #{a 1218}#)) 'macro)
+             (cons #{a 1218}#
+                   (#{macros-only-env 345}# (cdr #{r 1215}#)))
+             (#{macros-only-env 345}# (cdr #{r 1215}#)))))))
+   (#{lookup 347}#
+     (lambda (#{x 1219}# #{r 1220}# #{mod 1221}#)
+       (let ((#{t 1227}# (assq #{x 1219}# #{r 1220}#)))
+         (if #{t 1227}#
+           (cdr #{t 1227}#)
+           (if (symbol? #{x 1219}#)
+             (let ((#{t 1233}#
+                     (#{get-global-definition-hook 265}#
+                       #{x 1219}#
+                       #{mod 1221}#)))
+               (if #{t 1233}# #{t 1233}# '(global)))
              '(displaced-lexical))))))
-   (#{global-extend 339}#
-     (lambda (#{type 1220}# #{sym 1221}# #{val 1222}#)
-       (#{put-global-definition-hook 257}#
-         #{sym 1221}#
-         #{type 1220}#
-         #{val 1222}#)))
-   (#{nonsymbol-id? 341}#
-     (lambda (#{x 1226}#)
-       (if (#{syntax-object? 309}# #{x 1226}#)
+   (#{global-extend 349}#
+     (lambda (#{type 1238}# #{sym 1239}# #{val 1240}#)
+       (#{put-global-definition-hook 263}#
+         #{sym 1239}#
+         #{type 1238}#
+         #{val 1240}#)))
+   (#{nonsymbol-id? 351}#
+     (lambda (#{x 1244}#)
+       (if (#{syntax-object? 316}# #{x 1244}#)
          (symbol?
-           (#{syntax-object-expression 311}# #{x 1226}#))
+           (#{syntax-object-expression 318}# #{x 1244}#))
          #f)))
-   (#{id? 343}#
-     (lambda (#{x 1230}#)
-       (if (symbol? #{x 1230}#)
+   (#{id? 353}#
+     (lambda (#{x 1248}#)
+       (if (symbol? #{x 1248}#)
          #t
-         (if (#{syntax-object? 309}# #{x 1230}#)
+         (if (#{syntax-object? 316}# #{x 1248}#)
            (symbol?
-             (#{syntax-object-expression 311}# #{x 1230}#))
+             (#{syntax-object-expression 318}# #{x 1248}#))
            #f))))
-   (#{id-sym-name&marks 346}#
-     (lambda (#{x 1237}# #{w 1238}#)
-       (if (#{syntax-object? 309}# #{x 1237}#)
+   (#{id-sym-name&marks 357}#
+     (lambda (#{x 1255}# #{w 1256}#)
+       (if (#{syntax-object? 316}# #{x 1255}#)
          (values
-           (#{syntax-object-expression 311}# #{x 1237}#)
-           (#{join-marks 393}#
-             (car #{w 1238}#)
-             (car (#{syntax-object-wrap 313}# #{x 1237}#))))
-         (values #{x 1237}# (car #{w 1238}#)))))
-   (#{gen-label 356}#
+           (#{syntax-object-expression 318}# #{x 1255}#)
+           (#{join-marks 411}#
+             (car #{w 1256}#)
+             (car (#{syntax-object-wrap 320}# #{x 1255}#))))
+         (values #{x 1255}# (car #{w 1256}#)))))
+   (#{gen-label 371}#
      (lambda () (symbol->string (gensym "i"))))
-   (#{gen-labels 358}#
-     (lambda (#{ls 1244}#)
-       (if (null? #{ls 1244}#)
+   (#{gen-labels 373}#
+     (lambda (#{ls 1262}#)
+       (if (null? #{ls 1262}#)
          '()
-         (cons (#{gen-label 356}#)
-               (#{gen-labels 358}# (cdr #{ls 1244}#))))))
-   (#{make-ribcage 361}#
-     (lambda (#{symnames 1246}#
-              #{marks 1247}#
-              #{labels 1248}#)
+         (cons (#{gen-label 371}#)
+               (#{gen-labels 373}# (cdr #{ls 1262}#))))))
+   (#{make-ribcage 376}#
+     (lambda (#{symnames 1264}#
+              #{marks 1265}#
+              #{labels 1266}#)
        (vector
          'ribcage
-         #{symnames 1246}#
-         #{marks 1247}#
-         #{labels 1248}#)))
-   (#{ribcage-symnames 365}#
-     (lambda (#{x 1257}#) (vector-ref #{x 1257}# 1)))
-   (#{ribcage-marks 367}#
-     (lambda (#{x 1259}#) (vector-ref #{x 1259}# 2)))
-   (#{ribcage-labels 369}#
-     (lambda (#{x 1261}#) (vector-ref #{x 1261}# 3)))
-   (#{set-ribcage-symnames! 371}#
-     (lambda (#{x 1263}# #{update 1264}#)
-       (vector-set! #{x 1263}# 1 #{update 1264}#)))
-   (#{set-ribcage-marks! 373}#
-     (lambda (#{x 1267}# #{update 1268}#)
-       (vector-set! #{x 1267}# 2 #{update 1268}#)))
-   (#{set-ribcage-labels! 375}#
-     (lambda (#{x 1271}# #{update 1272}#)
-       (vector-set! #{x 1271}# 3 #{update 1272}#)))
-   (#{anti-mark 381}#
-     (lambda (#{w 1275}#)
-       (cons (cons #f (car #{w 1275}#))
-             (cons 'shift (cdr #{w 1275}#)))))
-   (#{extend-ribcage! 385}#
-     (lambda (#{ribcage 1281}# #{id 1282}# #{label 1283}#)
+         #{symnames 1264}#
+         #{marks 1265}#
+         #{labels 1266}#)))
+   (#{ribcage-symnames 380}#
+     (lambda (#{x 1275}#) (vector-ref #{x 1275}# 1)))
+   (#{ribcage-marks 382}#
+     (lambda (#{x 1277}#) (vector-ref #{x 1277}# 2)))
+   (#{ribcage-labels 384}#
+     (lambda (#{x 1279}#) (vector-ref #{x 1279}# 3)))
+   (#{set-ribcage-symnames! 386}#
+     (lambda (#{x 1281}# #{update 1282}#)
+       (vector-set! #{x 1281}# 1 #{update 1282}#)))
+   (#{set-ribcage-marks! 388}#
+     (lambda (#{x 1285}# #{update 1286}#)
+       (vector-set! #{x 1285}# 2 #{update 1286}#)))
+   (#{set-ribcage-labels! 390}#
+     (lambda (#{x 1289}# #{update 1290}#)
+       (vector-set! #{x 1289}# 3 #{update 1290}#)))
+   (#{anti-mark 397}#
+     (lambda (#{w 1293}#)
+       (cons (cons #f (car #{w 1293}#))
+             (cons 'shift (cdr #{w 1293}#)))))
+   (#{extend-ribcage! 403}#
+     (lambda (#{ribcage 1299}# #{id 1300}# #{label 1301}#)
        (begin
-         (#{set-ribcage-symnames! 371}#
-           #{ribcage 1281}#
-           (cons (#{syntax-object-expression 311}# #{id 1282}#)
-                 (#{ribcage-symnames 365}# #{ribcage 1281}#)))
-         (#{set-ribcage-marks! 373}#
-           #{ribcage 1281}#
-           (cons (car (#{syntax-object-wrap 313}# #{id 1282}#))
-                 (#{ribcage-marks 367}# #{ribcage 1281}#)))
-         (#{set-ribcage-labels! 375}#
-           #{ribcage 1281}#
-           (cons #{label 1283}#
-                 (#{ribcage-labels 369}# #{ribcage 1281}#))))))
-   (#{make-binding-wrap 387}#
-     (lambda (#{ids 1288}# #{labels 1289}# #{w 1290}#)
-       (if (null? #{ids 1288}#)
-         #{w 1290}#
-         (cons (car #{w 1290}#)
-               (cons (let ((#{labelvec 1297}#
-                             (list->vector #{labels 1289}#)))
-                       (let ((#{n 1299}# (vector-length #{labelvec 1297}#)))
-                         (let ((#{symnamevec 1302}# (make-vector #{n 1299}#))
-                               (#{marksvec 1303}# (make-vector #{n 1299}#)))
+         (#{set-ribcage-symnames! 386}#
+           #{ribcage 1299}#
+           (cons (#{syntax-object-expression 318}# #{id 1300}#)
+                 (#{ribcage-symnames 380}# #{ribcage 1299}#)))
+         (#{set-ribcage-marks! 388}#
+           #{ribcage 1299}#
+           (cons (car (#{syntax-object-wrap 320}# #{id 1300}#))
+                 (#{ribcage-marks 382}# #{ribcage 1299}#)))
+         (#{set-ribcage-labels! 390}#
+           #{ribcage 1299}#
+           (cons #{label 1301}#
+                 (#{ribcage-labels 384}# #{ribcage 1299}#))))))
+   (#{make-binding-wrap 405}#
+     (lambda (#{ids 1306}# #{labels 1307}# #{w 1308}#)
+       (if (null? #{ids 1306}#)
+         #{w 1308}#
+         (cons (car #{w 1308}#)
+               (cons (let ((#{labelvec 1315}#
+                             (list->vector #{labels 1307}#)))
+                       (let ((#{n 1317}# (vector-length #{labelvec 1315}#)))
+                         (let ((#{symnamevec 1320}# (make-vector #{n 1317}#))
+                               (#{marksvec 1321}# (make-vector #{n 1317}#)))
                            (begin
                              (letrec*
-                               ((#{f 1307}#
-                                  (lambda (#{ids 1308}# #{i 1309}#)
-                                    (if (not (null? #{ids 1308}#))
+                               ((#{f 1325}#
+                                  (lambda (#{ids 1326}# #{i 1327}#)
+                                    (if (not (null? #{ids 1326}#))
                                       (call-with-values
                                         (lambda ()
-                                          (#{id-sym-name&marks 346}#
-                                            (car #{ids 1308}#)
-                                            #{w 1290}#))
-                                        (lambda (#{symname 1310}#
-                                                 #{marks 1311}#)
+                                          (#{id-sym-name&marks 357}#
+                                            (car #{ids 1326}#)
+                                            #{w 1308}#))
+                                        (lambda (#{symname 1328}#
+                                                 #{marks 1329}#)
                                           (begin
                                             (vector-set!
-                                              #{symnamevec 1302}#
-                                              #{i 1309}#
-                                              #{symname 1310}#)
+                                              #{symnamevec 1320}#
+                                              #{i 1327}#
+                                              #{symname 1328}#)
                                             (vector-set!
-                                              #{marksvec 1303}#
-                                              #{i 1309}#
-                                              #{marks 1311}#)
-                                            (#{f 1307}#
-                                              (cdr #{ids 1308}#)
-                                              (#{1+}# #{i 1309}#)))))))))
-                               (#{f 1307}# #{ids 1288}# 0))
-                             (#{make-ribcage 361}#
-                               #{symnamevec 1302}#
-                               #{marksvec 1303}#
-                               #{labelvec 1297}#)))))
-                     (cdr #{w 1290}#))))))
-   (#{smart-append 389}#
-     (lambda (#{m1 1316}# #{m2 1317}#)
-       (if (null? #{m2 1317}#)
-         #{m1 1316}#
-         (append #{m1 1316}# #{m2 1317}#))))
-   (#{join-wraps 391}#
-     (lambda (#{w1 1320}# #{w2 1321}#)
-       (let ((#{m1 1326}# (car #{w1 1320}#))
-             (#{s1 1327}# (cdr #{w1 1320}#)))
-         (if (null? #{m1 1326}#)
-           (if (null? #{s1 1327}#)
-             #{w2 1321}#
-             (cons (car #{w2 1321}#)
-                   (#{smart-append 389}#
-                     #{s1 1327}#
-                     (cdr #{w2 1321}#))))
-           (cons (#{smart-append 389}#
-                   #{m1 1326}#
-                   (car #{w2 1321}#))
-                 (#{smart-append 389}#
-                   #{s1 1327}#
-                   (cdr #{w2 1321}#)))))))
-   (#{join-marks 393}#
-     (lambda (#{m1 1336}# #{m2 1337}#)
-       (#{smart-append 389}# #{m1 1336}# #{m2 1337}#)))
-   (#{same-marks? 395}#
-     (lambda (#{x 1340}# #{y 1341}#)
-       (let ((#{t 1346}# (eq? #{x 1340}# #{y 1341}#)))
-         (if #{t 1346}#
-           #{t 1346}#
-           (if (not (null? #{x 1340}#))
-             (if (not (null? #{y 1341}#))
-               (if (eq? (car #{x 1340}#) (car #{y 1341}#))
-                 (#{same-marks? 395}#
-                   (cdr #{x 1340}#)
-                   (cdr #{y 1341}#))
-                 #f)
+                                              #{marksvec 1321}#
+                                              #{i 1327}#
+                                              #{marks 1329}#)
+                                            (#{f 1325}#
+                                              (cdr #{ids 1326}#)
+                                              (#{1+}# #{i 1327}#)))))))))
+                               (#{f 1325}# #{ids 1306}# 0))
+                             (#{make-ribcage 376}#
+                               #{symnamevec 1320}#
+                               #{marksvec 1321}#
+                               #{labelvec 1315}#)))))
+                     (cdr #{w 1308}#))))))
+   (#{smart-append 407}#
+     (lambda (#{m1 1334}# #{m2 1335}#)
+       (if (null? #{m2 1335}#)
+         #{m1 1334}#
+         (append #{m1 1334}# #{m2 1335}#))))
+   (#{join-wraps 409}#
+     (lambda (#{w1 1338}# #{w2 1339}#)
+       (let ((#{m1 1344}# (car #{w1 1338}#))
+             (#{s1 1345}# (cdr #{w1 1338}#)))
+         (if (null? #{m1 1344}#)
+           (if (null? #{s1 1345}#)
+             #{w2 1339}#
+             (cons (car #{w2 1339}#)
+                   (#{smart-append 407}#
+                     #{s1 1345}#
+                     (cdr #{w2 1339}#))))
+           (cons (#{smart-append 407}#
+                   #{m1 1344}#
+                   (car #{w2 1339}#))
+                 (#{smart-append 407}#
+                   #{s1 1345}#
+                   (cdr #{w2 1339}#)))))))
+   (#{join-marks 411}#
+     (lambda (#{m1 1354}# #{m2 1355}#)
+       (#{smart-append 407}# #{m1 1354}# #{m2 1355}#)))
+   (#{same-marks? 413}#
+     (lambda (#{x 1358}# #{y 1359}#)
+       (if (eq? #{x 1358}# #{y 1359}#)
+         (eq? #{x 1358}# #{y 1359}#)
+         (if (not (null? #{x 1358}#))
+           (if (not (null? #{y 1359}#))
+             (if (eq? (car #{x 1358}#) (car #{y 1359}#))
+               (#{same-marks? 413}#
+                 (cdr #{x 1358}#)
+                 (cdr #{y 1359}#))
                #f)
-             #f)))))
-   (#{id-var-name 397}#
-     (lambda (#{id 1352}# #{w 1353}#)
+             #f)
+           #f))))
+   (#{id-var-name 415}#
+     (lambda (#{id 1370}# #{w 1371}#)
        (letrec*
-         ((#{search 1358}#
-            (lambda (#{sym 1374}# #{subst 1375}# #{marks 1376}#)
-              (if (null? #{subst 1375}#)
-                (values #f #{marks 1376}#)
-                (let ((#{fst 1381}# (car #{subst 1375}#)))
-                  (if (eq? #{fst 1381}# 'shift)
-                    (#{search 1358}#
-                      #{sym 1374}#
-                      (cdr #{subst 1375}#)
-                      (cdr #{marks 1376}#))
-                    (let ((#{symnames 1383}#
-                            (#{ribcage-symnames 365}# #{fst 1381}#)))
-                      (if (vector? #{symnames 1383}#)
-                        (#{search-vector-rib 1362}#
-                          #{sym 1374}#
-                          #{subst 1375}#
-                          #{marks 1376}#
-                          #{symnames 1383}#
-                          #{fst 1381}#)
-                        (#{search-list-rib 1360}#
-                          #{sym 1374}#
-                          #{subst 1375}#
-                          #{marks 1376}#
-                          #{symnames 1383}#
-                          #{fst 1381}#))))))))
-          (#{search-list-rib 1360}#
-            (lambda (#{sym 1384}#
-                     #{subst 1385}#
-                     #{marks 1386}#
-                     #{symnames 1387}#
-                     #{ribcage 1388}#)
+         ((#{search 1377}#
+            (lambda (#{sym 1393}# #{subst 1394}# #{marks 1395}#)
+              (if (null? #{subst 1394}#)
+                (values #f #{marks 1395}#)
+                (let ((#{fst 1400}# (car #{subst 1394}#)))
+                  (if (eq? #{fst 1400}# 'shift)
+                    (#{search 1377}#
+                      #{sym 1393}#
+                      (cdr #{subst 1394}#)
+                      (cdr #{marks 1395}#))
+                    (let ((#{symnames 1402}#
+                            (#{ribcage-symnames 380}# #{fst 1400}#)))
+                      (if (vector? #{symnames 1402}#)
+                        (#{search-vector-rib 1381}#
+                          #{sym 1393}#
+                          #{subst 1394}#
+                          #{marks 1395}#
+                          #{symnames 1402}#
+                          #{fst 1400}#)
+                        (#{search-list-rib 1379}#
+                          #{sym 1393}#
+                          #{subst 1394}#
+                          #{marks 1395}#
+                          #{symnames 1402}#
+                          #{fst 1400}#))))))))
+          (#{search-list-rib 1379}#
+            (lambda (#{sym 1403}#
+                     #{subst 1404}#
+                     #{marks 1405}#
+                     #{symnames 1406}#
+                     #{ribcage 1407}#)
               (letrec*
-                ((#{f 1397}#
-                   (lambda (#{symnames 1398}# #{i 1399}#)
-                     (if (null? #{symnames 1398}#)
-                       (#{search 1358}#
-                         #{sym 1384}#
-                         (cdr #{subst 1385}#)
-                         #{marks 1386}#)
-                       (if (if (eq? (car #{symnames 1398}#) #{sym 1384}#)
-                             (#{same-marks? 395}#
-                               #{marks 1386}#
+                ((#{f 1416}#
+                   (lambda (#{symnames 1417}# #{i 1418}#)
+                     (if (null? #{symnames 1417}#)
+                       (#{search 1377}#
+                         #{sym 1403}#
+                         (cdr #{subst 1404}#)
+                         #{marks 1405}#)
+                       (if (if (eq? (car #{symnames 1417}#) #{sym 1403}#)
+                             (#{same-marks? 413}#
+                               #{marks 1405}#
                                (list-ref
-                                 (#{ribcage-marks 367}# #{ribcage 1388}#)
-                                 #{i 1399}#))
+                                 (#{ribcage-marks 382}# #{ribcage 1407}#)
+                                 #{i 1418}#))
                              #f)
                          (values
                            (list-ref
-                             (#{ribcage-labels 369}# #{ribcage 1388}#)
-                             #{i 1399}#)
-                           #{marks 1386}#)
-                         (#{f 1397}#
-                           (cdr #{symnames 1398}#)
-                           (#{1+}# #{i 1399}#)))))))
-                (#{f 1397}# #{symnames 1387}# 0))))
-          (#{search-vector-rib 1362}#
-            (lambda (#{sym 1408}#
-                     #{subst 1409}#
-                     #{marks 1410}#
-                     #{symnames 1411}#
-                     #{ribcage 1412}#)
-              (let ((#{n 1419}# (vector-length #{symnames 1411}#)))
+                             (#{ribcage-labels 384}# #{ribcage 1407}#)
+                             #{i 1418}#)
+                           #{marks 1405}#)
+                         (#{f 1416}#
+                           (cdr #{symnames 1417}#)
+                           (#{1+}# #{i 1418}#)))))))
+                (#{f 1416}# #{symnames 1406}# 0))))
+          (#{search-vector-rib 1381}#
+            (lambda (#{sym 1427}#
+                     #{subst 1428}#
+                     #{marks 1429}#
+                     #{symnames 1430}#
+                     #{ribcage 1431}#)
+              (let ((#{n 1438}# (vector-length #{symnames 1430}#)))
                 (letrec*
-                  ((#{f 1422}#
-                     (lambda (#{i 1423}#)
-                       (if (= #{i 1423}# #{n 1419}#)
-                         (#{search 1358}#
-                           #{sym 1408}#
-                           (cdr #{subst 1409}#)
-                           #{marks 1410}#)
-                         (if (if (eq? (vector-ref #{symnames 1411}# #{i 1423}#)
-                                      #{sym 1408}#)
-                               (#{same-marks? 395}#
-                                 #{marks 1410}#
+                  ((#{f 1441}#
+                     (lambda (#{i 1442}#)
+                       (if (= #{i 1442}# #{n 1438}#)
+                         (#{search 1377}#
+                           #{sym 1427}#
+                           (cdr #{subst 1428}#)
+                           #{marks 1429}#)
+                         (if (if (eq? (vector-ref #{symnames 1430}# #{i 1442}#)
+                                      #{sym 1427}#)
+                               (#{same-marks? 413}#
+                                 #{marks 1429}#
                                  (vector-ref
-                                   (#{ribcage-marks 367}# #{ribcage 1412}#)
-                                   #{i 1423}#))
+                                   (#{ribcage-marks 382}# #{ribcage 1431}#)
+                                   #{i 1442}#))
                                #f)
                            (values
                              (vector-ref
-                               (#{ribcage-labels 369}# #{ribcage 1412}#)
-                               #{i 1423}#)
-                             #{marks 1410}#)
-                           (#{f 1422}# (#{1+}# #{i 1423}#)))))))
-                  (#{f 1422}# 0))))))
-         (if (symbol? #{id 1352}#)
-           (let ((#{t 1435}#
-                   (#{search 1358}#
-                     #{id 1352}#
-                     (cdr #{w 1353}#)
-                     (car #{w 1353}#))))
-             (if #{t 1435}# #{t 1435}# #{id 1352}#))
-           (if (#{syntax-object? 309}# #{id 1352}#)
-             (let ((#{id 1444}#
-                     (#{syntax-object-expression 311}# #{id 1352}#))
-                   (#{w1 1445}#
-                     (#{syntax-object-wrap 313}# #{id 1352}#)))
-               (let ((#{marks 1447}#
-                       (#{join-marks 393}#
-                         (car #{w 1353}#)
-                         (car #{w1 1445}#))))
+                               (#{ribcage-labels 384}# #{ribcage 1431}#)
+                               #{i 1442}#)
+                             #{marks 1429}#)
+                           (#{f 1441}# (#{1+}# #{i 1442}#)))))))
+                  (#{f 1441}# 0))))))
+         (if (symbol? #{id 1370}#)
+           (let ((#{t 1454}#
+                   (#{search 1377}#
+                     #{id 1370}#
+                     (cdr #{w 1371}#)
+                     (car #{w 1371}#))))
+             (if #{t 1454}# #{t 1454}# #{id 1370}#))
+           (if (#{syntax-object? 316}# #{id 1370}#)
+             (let ((#{id 1463}#
+                     (#{syntax-object-expression 318}# #{id 1370}#))
+                   (#{w1 1464}#
+                     (#{syntax-object-wrap 320}# #{id 1370}#)))
+               (let ((#{marks 1466}#
+                       (#{join-marks 411}#
+                         (car #{w 1371}#)
+                         (car #{w1 1464}#))))
                  (call-with-values
                    (lambda ()
-                     (#{search 1358}#
-                       #{id 1444}#
-                       (cdr #{w 1353}#)
-                       #{marks 1447}#))
-                   (lambda (#{new-id 1451}# #{marks 1452}#)
-                     (let ((#{t 1457}# #{new-id 1451}#))
-                       (if #{t 1457}#
-                         #{t 1457}#
-                         (let ((#{t 1460}#
-                                 (#{search 1358}#
-                                   #{id 1444}#
-                                   (cdr #{w1 1445}#)
-                                   #{marks 1452}#)))
-                           (if #{t 1460}# #{t 1460}# #{id 1444}#))))))))
+                     (#{search 1377}#
+                       #{id 1463}#
+                       (cdr #{w 1371}#)
+                       #{marks 1466}#))
+                   (lambda (#{new-id 1470}# #{marks 1471}#)
+                     (if #{new-id 1470}#
+                       #{new-id 1470}#
+                       (let ((#{t 1479}#
+                               (#{search 1377}#
+                                 #{id 1463}#
+                                 (cdr #{w1 1464}#)
+                                 #{marks 1471}#)))
+                         (if #{t 1479}# #{t 1479}# #{id 1463}#)))))))
              (syntax-violation
                'id-var-name
                "invalid id"
-               #{id 1352}#))))))
-   (#{free-id=? 399}#
-     (lambda (#{i 1465}# #{j 1466}#)
-       (let ((#{ni 1471}#
-               (#{id-var-name 397}# #{i 1465}# '(())))
-             (#{nj 1472}#
-               (#{id-var-name 397}# #{j 1466}# '(()))))
-         (letrec*
-           ((#{id-module-binding 1476}#
-              (lambda (#{id 1477}#)
-                (let ((#{mod 1480}#
-                        (if (#{syntax-object? 309}# #{id 1477}#)
-                          (#{syntax-object-module 315}# #{id 1477}#)
-                          #f)))
-                  (module-variable
-                    (if #{mod 1480}#
-                      (resolve-module (cdr #{mod 1480}#))
-                      (current-module))
-                    (let ((#{x 1485}# #{id 1477}#))
-                      (if (#{syntax-object? 309}# #{x 1485}#)
-                        (#{syntax-object-expression 311}# #{x 1485}#)
-                        #{x 1485}#)))))))
-           (if (eq? #{ni 1471}#
-                    (let ((#{x 1488}# #{i 1465}#))
-                      (if (#{syntax-object? 309}# #{x 1488}#)
-                        (#{syntax-object-expression 311}# #{x 1488}#)
-                        #{x 1488}#)))
-             (if (eq? #{nj 1472}#
-                      (let ((#{x 1492}# #{j 1466}#))
-                        (if (#{syntax-object? 309}# #{x 1492}#)
-                          (#{syntax-object-expression 311}# #{x 1492}#)
-                          #{x 1492}#)))
-               (if (let ((#{bi 1495}#
-                           (#{id-module-binding 1476}# #{i 1465}#)))
-                     (if #{bi 1495}#
-                       (eq? #{bi 1495}#
-                            (#{id-module-binding 1476}# #{j 1466}#))
-                       (if (not (#{id-module-binding 1476}# #{j 1466}#))
-                         (eq? #{ni 1471}# #{nj 1472}#)
-                         #f)))
-                 (eq? (#{id-module-binding 1476}# #{i 1465}#)
-                      (#{id-module-binding 1476}# #{j 1466}#))
-                 #f)
+               #{id 1370}#))))))
+   (#{free-id=? 417}#
+     (lambda (#{i 1484}# #{j 1485}#)
+       (let ((#{ni 1490}#
+               (#{id-var-name 415}# #{i 1484}# '(())))
+             (#{nj 1491}#
+               (#{id-var-name 415}# #{j 1485}# '(()))))
+         (if (eq? #{ni 1490}#
+                  (if (#{syntax-object? 316}# #{i 1484}#)
+                    (#{syntax-object-expression 318}# #{i 1484}#)
+                    #{i 1484}#))
+           (if (eq? #{nj 1491}#
+                    (if (#{syntax-object? 316}# #{j 1485}#)
+                      (#{syntax-object-expression 318}# #{j 1485}#)
+                      #{j 1485}#))
+             (if (let ((#{bi 1514}#
+                         (let ((#{mod 4428}#
+                                 (if (#{syntax-object? 316}# #{i 1484}#)
+                                   (#{syntax-object-module 322}# #{i 1484}#)
+                                   #f)))
+                           (module-variable
+                             (if #{mod 4428}#
+                               (resolve-module (cdr #{mod 4428}#))
+                               (current-module))
+                             (if (#{syntax-object? 316}# #{i 1484}#)
+                               (#{syntax-object-expression 318}# #{i 1484}#)
+                               #{i 1484}#)))))
+                   (if #{bi 1514}#
+                     (eq? #{bi 1514}#
+                          (let ((#{mod 4432}#
+                                  (if (#{syntax-object? 316}# #{j 1485}#)
+                                    (#{syntax-object-module 322}# #{j 1485}#)
+                                    #f)))
+                            (module-variable
+                              (if #{mod 4432}#
+                                (resolve-module (cdr #{mod 4432}#))
+                                (current-module))
+                              (if (#{syntax-object? 316}# #{j 1485}#)
+                                (#{syntax-object-expression 318}# #{j 1485}#)
+                                #{j 1485}#))))
+                     (if (not (let ((#{mod 4436}#
+                                      (if (#{syntax-object? 316}# #{j 1485}#)
+                                        (#{syntax-object-module 322}#
+                                          #{j 1485}#)
+                                        #f)))
+                                (module-variable
+                                  (if #{mod 4436}#
+                                    (resolve-module (cdr #{mod 4436}#))
+                                    (current-module))
+                                  (if (#{syntax-object? 316}# #{j 1485}#)
+                                    (#{syntax-object-expression 318}#
+                                      #{j 1485}#)
+                                    #{j 1485}#))))
+                       (eq? #{ni 1490}# #{nj 1491}#)
+                       #f)))
+               (eq? (let ((#{mod 4440}#
+                            (if (#{syntax-object? 316}# #{i 1484}#)
+                              (#{syntax-object-module 322}# #{i 1484}#)
+                              #f)))
+                      (module-variable
+                        (if #{mod 4440}#
+                          (resolve-module (cdr #{mod 4440}#))
+                          (current-module))
+                        (if (#{syntax-object? 316}# #{i 1484}#)
+                          (#{syntax-object-expression 318}# #{i 1484}#)
+                          #{i 1484}#)))
+                    (let ((#{mod 4444}#
+                            (if (#{syntax-object? 316}# #{j 1485}#)
+                              (#{syntax-object-module 322}# #{j 1485}#)
+                              #f)))
+                      (module-variable
+                        (if #{mod 4444}#
+                          (resolve-module (cdr #{mod 4444}#))
+                          (current-module))
+                        (if (#{syntax-object? 316}# #{j 1485}#)
+                          (#{syntax-object-expression 318}# #{j 1485}#)
+                          #{j 1485}#))))
                #f)
-             (if (eq? #{ni 1471}# #{nj 1472}#)
-               (not (eq? #{nj 1472}#
-                         (let ((#{x 1503}# #{j 1466}#))
-                           (if (#{syntax-object? 309}# #{x 1503}#)
-                             (#{syntax-object-expression 311}# #{x 1503}#)
-                             #{x 1503}#))))
-               #f))))))
-   (#{bound-id=? 401}#
-     (lambda (#{i 1504}# #{j 1505}#)
-       (if (if (#{syntax-object? 309}# #{i 1504}#)
-             (#{syntax-object? 309}# #{j 1505}#)
              #f)
-         (if (eq? (#{syntax-object-expression 311}# #{i 1504}#)
-                  (#{syntax-object-expression 311}# #{j 1505}#))
-           (#{same-marks? 395}#
-             (car (#{syntax-object-wrap 313}# #{i 1504}#))
-             (car (#{syntax-object-wrap 313}# #{j 1505}#)))
+           (if (eq? #{ni 1490}# #{nj 1491}#)
+             (not (eq? #{nj 1491}#
+                       (if (#{syntax-object? 316}# #{j 1485}#)
+                         (#{syntax-object-expression 318}# #{j 1485}#)
+                         #{j 1485}#)))
+             #f)))))
+   (#{bound-id=? 419}#
+     (lambda (#{i 1523}# #{j 1524}#)
+       (if (if (#{syntax-object? 316}# #{i 1523}#)
+             (#{syntax-object? 316}# #{j 1524}#)
+             #f)
+         (if (eq? (#{syntax-object-expression 318}# #{i 1523}#)
+                  (#{syntax-object-expression 318}# #{j 1524}#))
+           (#{same-marks? 413}#
+             (car (#{syntax-object-wrap 320}# #{i 1523}#))
+             (car (#{syntax-object-wrap 320}# #{j 1524}#)))
            #f)
-         (eq? #{i 1504}# #{j 1505}#))))
-   (#{valid-bound-ids? 403}#
-     (lambda (#{ids 1514}#)
+         (eq? #{i 1523}# #{j 1524}#))))
+   (#{valid-bound-ids? 421}#
+     (lambda (#{ids 1533}#)
        (if (letrec*
-             ((#{all-ids? 1519}#
-                (lambda (#{ids 1520}#)
-                  (let ((#{t 1523}# (null? #{ids 1520}#)))
-                    (if #{t 1523}#
-                      #{t 1523}#
-                      (if (#{id? 343}# (car #{ids 1520}#))
-                        (#{all-ids? 1519}# (cdr #{ids 1520}#))
-                        #f))))))
-             (#{all-ids? 1519}# #{ids 1514}#))
-         (#{distinct-bound-ids? 405}# #{ids 1514}#)
+             ((#{all-ids? 1538}#
+                (lambda (#{ids 1539}#)
+                  (if (null? #{ids 1539}#)
+                    (null? #{ids 1539}#)
+                    (if (#{id? 353}# (car #{ids 1539}#))
+                      (#{all-ids? 1538}# (cdr #{ids 1539}#))
+                      #f)))))
+             (#{all-ids? 1538}# #{ids 1533}#))
+         (#{distinct-bound-ids? 423}# #{ids 1533}#)
          #f)))
-   (#{distinct-bound-ids? 405}#
-     (lambda (#{ids 1528}#)
+   (#{distinct-bound-ids? 423}#
+     (lambda (#{ids 1547}#)
        (letrec*
-         ((#{distinct? 1532}#
-            (lambda (#{ids 1533}#)
-              (let ((#{t 1536}# (null? #{ids 1533}#)))
-                (if #{t 1536}#
-                  #{t 1536}#
-                  (if (not (#{bound-id-member? 407}#
-                             (car #{ids 1533}#)
-                             (cdr #{ids 1533}#)))
-                    (#{distinct? 1532}# (cdr #{ids 1533}#))
-                    #f))))))
-         (#{distinct? 1532}# #{ids 1528}#))))
-   (#{bound-id-member? 407}#
-     (lambda (#{x 1540}# #{list 1541}#)
-       (if (not (null? #{list 1541}#))
-         (let ((#{t 1548}#
-                 (#{bound-id=? 401}#
-                   #{x 1540}#
-                   (car #{list 1541}#))))
-           (if #{t 1548}#
-             #{t 1548}#
-             (#{bound-id-member? 407}#
-               #{x 1540}#
-               (cdr #{list 1541}#))))
+         ((#{distinct? 1551}#
+            (lambda (#{ids 1552}#)
+              (if (null? #{ids 1552}#)
+                (null? #{ids 1552}#)
+                (if (not (#{bound-id-member? 425}#
+                           (car #{ids 1552}#)
+                           (cdr #{ids 1552}#)))
+                  (#{distinct? 1551}# (cdr #{ids 1552}#))
+                  #f)))))
+         (#{distinct? 1551}# #{ids 1547}#))))
+   (#{bound-id-member? 425}#
+     (lambda (#{x 1559}# #{list 1560}#)
+       (if (not (null? #{list 1560}#))
+         (let ((#{t 1567}#
+                 (#{bound-id=? 419}#
+                   #{x 1559}#
+                   (car #{list 1560}#))))
+           (if #{t 1567}#
+             #{t 1567}#
+             (#{bound-id-member? 425}#
+               #{x 1559}#
+               (cdr #{list 1560}#))))
          #f)))
-   (#{wrap 409}#
-     (lambda (#{x 1550}# #{w 1551}# #{defmod 1552}#)
-       (if (if (null? (car #{w 1551}#))
-             (null? (cdr #{w 1551}#))
+   (#{wrap 427}#
+     (lambda (#{x 1569}# #{w 1570}# #{defmod 1571}#)
+       (if (if (null? (car #{w 1570}#))
+             (null? (cdr #{w 1570}#))
              #f)
-         #{x 1550}#
-         (if (#{syntax-object? 309}# #{x 1550}#)
-           (#{make-syntax-object 307}#
-             (#{syntax-object-expression 311}# #{x 1550}#)
-             (#{join-wraps 391}#
-               #{w 1551}#
-               (#{syntax-object-wrap 313}# #{x 1550}#))
-             (#{syntax-object-module 315}# #{x 1550}#))
-           (if (null? #{x 1550}#)
-             #{x 1550}#
-             (#{make-syntax-object 307}#
-               #{x 1550}#
-               #{w 1551}#
-               #{defmod 1552}#))))))
-   (#{source-wrap 411}#
-     (lambda (#{x 1567}#
-              #{w 1568}#
-              #{s 1569}#
-              #{defmod 1570}#)
-       (#{wrap 409}#
-         (#{decorate-source 261}# #{x 1567}# #{s 1569}#)
-         #{w 1568}#
-         #{defmod 1570}#)))
-   (#{chi-sequence 413}#
-     (lambda (#{body 1575}#
-              #{r 1576}#
-              #{w 1577}#
-              #{s 1578}#
-              #{mod 1579}#)
-       (#{build-sequence 297}#
-         #{s 1578}#
+         #{x 1569}#
+         (if (#{syntax-object? 316}# #{x 1569}#)
+           (#{make-syntax-object 314}#
+             (#{syntax-object-expression 318}# #{x 1569}#)
+             (#{join-wraps 409}#
+               #{w 1570}#
+               (#{syntax-object-wrap 320}# #{x 1569}#))
+             (#{syntax-object-module 322}# #{x 1569}#))
+           (if (null? #{x 1569}#)
+             #{x 1569}#
+             (#{make-syntax-object 314}#
+               #{x 1569}#
+               #{w 1570}#
+               #{defmod 1571}#))))))
+   (#{source-wrap 429}#
+     (lambda (#{x 1586}#
+              #{w 1587}#
+              #{s 1588}#
+              #{defmod 1589}#)
+       (#{wrap 427}#
+         (#{decorate-source 267}# #{x 1586}# #{s 1588}#)
+         #{w 1587}#
+         #{defmod 1589}#)))
+   (#{chi-sequence 431}#
+     (lambda (#{body 1594}#
+              #{r 1595}#
+              #{w 1596}#
+              #{s 1597}#
+              #{mod 1598}#)
+       (#{build-sequence 303}#
+         #{s 1597}#
          (letrec*
-           ((#{dobody 1590}#
-              (lambda (#{body 1591}#
-                       #{r 1592}#
-                       #{w 1593}#
-                       #{mod 1594}#)
-                (if (null? #{body 1591}#)
+           ((#{dobody 1609}#
+              (lambda (#{body 1610}#
+                       #{r 1611}#
+                       #{w 1612}#
+                       #{mod 1613}#)
+                (if (null? #{body 1610}#)
                   '()
-                  (let ((#{first 1596}#
-                          (#{chi 423}#
-                            (car #{body 1591}#)
-                            #{r 1592}#
-                            #{w 1593}#
-                            #{mod 1594}#)))
-                    (cons #{first 1596}#
-                          (#{dobody 1590}#
-                            (cdr #{body 1591}#)
-                            #{r 1592}#
-                            #{w 1593}#
-                            #{mod 1594}#)))))))
-           (#{dobody 1590}#
-             #{body 1575}#
-             #{r 1576}#
-             #{w 1577}#
-             #{mod 1579}#)))))
-   (#{chi-top-sequence 415}#
-     (lambda (#{body 1597}#
-              #{r 1598}#
-              #{w 1599}#
-              #{s 1600}#
-              #{m 1601}#
-              #{esew 1602}#
-              #{mod 1603}#)
+                  (let ((#{first 1615}#
+                          (#{chi 441}#
+                            (car #{body 1610}#)
+                            #{r 1611}#
+                            #{w 1612}#
+                            #{mod 1613}#)))
+                    (cons #{first 1615}#
+                          (#{dobody 1609}#
+                            (cdr #{body 1610}#)
+                            #{r 1611}#
+                            #{w 1612}#
+                            #{mod 1613}#)))))))
+           (#{dobody 1609}#
+             #{body 1594}#
+             #{r 1595}#
+             #{w 1596}#
+             #{mod 1598}#)))))
+   (#{chi-top-sequence 433}#
+     (lambda (#{body 1616}#
+              #{r 1617}#
+              #{w 1618}#
+              #{s 1619}#
+              #{m 1620}#
+              #{esew 1621}#
+              #{mod 1622}#)
        (letrec*
-         ((#{scan 1612}#
-            (lambda (#{body 1613}#
-                     #{r 1614}#
-                     #{w 1615}#
-                     #{s 1616}#
-                     #{m 1617}#
-                     #{esew 1618}#
-                     #{mod 1619}#
-                     #{exps 1620}#)
-              (if (null? #{body 1613}#)
-                #{exps 1620}#
+         ((#{scan 1631}#
+            (lambda (#{body 1632}#
+                     #{r 1633}#
+                     #{w 1634}#
+                     #{s 1635}#
+                     #{m 1636}#
+                     #{esew 1637}#
+                     #{mod 1638}#
+                     #{exps 1639}#)
+              (if (null? #{body 1632}#)
+                #{exps 1639}#
                 (call-with-values
                   (lambda ()
                     (call-with-values
                       (lambda ()
-                        (let ((#{e 1633}# (car #{body 1613}#)))
-                          (#{syntax-type 421}#
-                            #{e 1633}#
-                            #{r 1614}#
-                            #{w 1615}#
-                            (let ((#{t 1636}#
-                                    (#{source-annotation 324}# #{e 1633}#)))
-                              (if #{t 1636}# #{t 1636}# #{s 1616}#))
+                        (let ((#{e 1652}# (car #{body 1632}#)))
+                          (#{syntax-type 439}#
+                            #{e 1652}#
+                            #{r 1633}#
+                            #{w 1634}#
+                            (let ((#{t 1655}#
+                                    (#{source-annotation 331}# #{e 1652}#)))
+                              (if #{t 1655}# #{t 1655}# #{s 1635}#))
                             #f
-                            #{mod 1619}#
+                            #{mod 1638}#
                             #f)))
-                      (lambda (#{type 1638}#
-                               #{value 1639}#
-                               #{e 1640}#
-                               #{w 1641}#
-                               #{s 1642}#
-                               #{mod 1643}#)
-                        (if (memv #{type 1638}# '(begin-form))
-                          (let ((#{tmp 1651}# #{e 1640}#))
-                            (let ((#{tmp 1652}#
-                                    ($sc-dispatch #{tmp 1651}# '(_))))
-                              (if #{tmp 1652}#
-                                (@apply (lambda () #{exps 1620}#) #{tmp 1652}#)
-                                (let ((#{tmp 1653}#
-                                        ($sc-dispatch
-                                          #{tmp 1651}#
-                                          '(_ any . each-any))))
-                                  (if #{tmp 1653}#
-                                    (@apply
-                                      (lambda (#{e1 1656}# #{e2 1657}#)
-                                        (#{scan 1612}#
-                                          (cons #{e1 1656}# #{e2 1657}#)
-                                          #{r 1614}#
-                                          #{w 1641}#
-                                          #{s 1642}#
-                                          #{m 1617}#
-                                          #{esew 1618}#
-                                          #{mod 1643}#
-                                          #{exps 1620}#))
-                                      #{tmp 1653}#)
-                                    (syntax-violation
-                                      #f
-                                      "source expression failed to match any 
pattern"
-                                      #{tmp 1651}#))))))
-                          (if (memv #{type 1638}# '(local-syntax-form))
-                            (#{chi-local-syntax 433}#
-                              #{value 1639}#
-                              #{e 1640}#
-                              #{r 1614}#
-                              #{w 1641}#
-                              #{s 1642}#
-                              #{mod 1643}#
-                              (lambda (#{body 1660}#
-                                       #{r 1661}#
-                                       #{w 1662}#
-                                       #{s 1663}#
-                                       #{mod 1664}#)
-                                (#{scan 1612}#
-                                  #{body 1660}#
-                                  #{r 1661}#
-                                  #{w 1662}#
-                                  #{s 1663}#
-                                  #{m 1617}#
-                                  #{esew 1618}#
-                                  #{mod 1664}#
-                                  #{exps 1620}#)))
-                            (if (memv #{type 1638}# '(eval-when-form))
-                              (let ((#{tmp 1671}# #{e 1640}#))
-                                (let ((#{tmp 1672}#
-                                        ($sc-dispatch
-                                          #{tmp 1671}#
-                                          '(_ each-any any . each-any))))
-                                  (if #{tmp 1672}#
-                                    (@apply
-                                      (lambda (#{x 1676}#
-                                               #{e1 1677}#
-                                               #{e2 1678}#)
-                                        (let ((#{when-list 1681}#
-                                                (#{chi-when-list 419}#
-                                                  #{e 1640}#
-                                                  #{x 1676}#
-                                                  #{w 1641}#))
-                                              (#{body 1682}#
-                                                (cons #{e1 1677}#
-                                                      #{e2 1678}#)))
-                                          (if (eq? #{m 1617}# 'e)
-                                            (if (memq 'eval #{when-list 1681}#)
-                                              (#{scan 1612}#
-                                                #{body 1682}#
-                                                #{r 1614}#
-                                                #{w 1641}#
-                                                #{s 1642}#
-                                                (if (memq 'expand
-                                                          #{when-list 1681}#)
-                                                  'c&e
-                                                  'e)
-                                                '(eval)
-                                                #{mod 1643}#
-                                                #{exps 1620}#)
+                      (lambda (#{type 1657}#
+                               #{value 1658}#
+                               #{e 1659}#
+                               #{w 1660}#
+                               #{s 1661}#
+                               #{mod 1662}#)
+                        (if (memv #{type 1657}# '(begin-form))
+                          (let ((#{tmp 1671}# ($sc-dispatch #{e 1659}# '(_))))
+                            (if #{tmp 1671}#
+                              (@apply (lambda () #{exps 1639}#) #{tmp 1671}#)
+                              (let ((#{tmp 1672}#
+                                      ($sc-dispatch
+                                        #{e 1659}#
+                                        '(_ any . each-any))))
+                                (if #{tmp 1672}#
+                                  (@apply
+                                    (lambda (#{e1 1675}# #{e2 1676}#)
+                                      (#{scan 1631}#
+                                        (cons #{e1 1675}# #{e2 1676}#)
+                                        #{r 1633}#
+                                        #{w 1660}#
+                                        #{s 1661}#
+                                        #{m 1636}#
+                                        #{esew 1637}#
+                                        #{mod 1662}#
+                                        #{exps 1639}#))
+                                    #{tmp 1672}#)
+                                  (syntax-violation
+                                    #f
+                                    "source expression failed to match any 
pattern"
+                                    #{e 1659}#)))))
+                          (if (memv #{type 1657}# '(local-syntax-form))
+                            (#{chi-local-syntax 451}#
+                              #{value 1658}#
+                              #{e 1659}#
+                              #{r 1633}#
+                              #{w 1660}#
+                              #{s 1661}#
+                              #{mod 1662}#
+                              (lambda (#{body 1679}#
+                                       #{r 1680}#
+                                       #{w 1681}#
+                                       #{s 1682}#
+                                       #{mod 1683}#)
+                                (#{scan 1631}#
+                                  #{body 1679}#
+                                  #{r 1680}#
+                                  #{w 1681}#
+                                  #{s 1682}#
+                                  #{m 1636}#
+                                  #{esew 1637}#
+                                  #{mod 1683}#
+                                  #{exps 1639}#)))
+                            (if (memv #{type 1657}# '(eval-when-form))
+                              (let ((#{tmp 1691}#
+                                      ($sc-dispatch
+                                        #{e 1659}#
+                                        '(_ each-any any . each-any))))
+                                (if #{tmp 1691}#
+                                  (@apply
+                                    (lambda (#{x 1695}#
+                                             #{e1 1696}#
+                                             #{e2 1697}#)
+                                      (let ((#{when-list 1700}#
+                                              (#{chi-when-list 437}#
+                                                #{e 1659}#
+                                                #{x 1695}#
+                                                #{w 1660}#))
+                                            (#{body 1701}#
+                                              (cons #{e1 1696}# #{e2 1697}#)))
+                                        (if (eq? #{m 1636}# 'e)
+                                          (if (memq 'eval #{when-list 1700}#)
+                                            (#{scan 1631}#
+                                              #{body 1701}#
+                                              #{r 1633}#
+                                              #{w 1660}#
+                                              #{s 1661}#
+                                              (if (memq 'expand
+                                                        #{when-list 1700}#)
+                                                'c&e
+                                                'e)
+                                              '(eval)
+                                              #{mod 1662}#
+                                              #{exps 1639}#)
+                                            (begin
+                                              (if (memq 'expand
+                                                        #{when-list 1700}#)
+                                                (#{top-level-eval-hook 257}#
+                                                  (#{chi-top-sequence 433}#
+                                                    #{body 1701}#
+                                                    #{r 1633}#
+                                                    #{w 1660}#
+                                                    #{s 1661}#
+                                                    'e
+                                                    '(eval)
+                                                    #{mod 1662}#)
+                                                  #{mod 1662}#))
+                                              (values #{exps 1639}#)))
+                                          (if (memq 'load #{when-list 1700}#)
+                                            (if (let ((#{t 1710}#
+                                                        (memq 'compile
+                                                              #{when-list 
1700}#)))
+                                                  (if #{t 1710}#
+                                                    #{t 1710}#
+                                                    (let ((#{t 1713}#
+                                                            (memq 'expand
+                                                                  #{when-list 
1700}#)))
+                                                      (if #{t 1713}#
+                                                        #{t 1713}#
+                                                        (if (eq? #{m 1636}#
+                                                                 'c&e)
+                                                          (memq 'eval
+                                                                #{when-list 
1700}#)
+                                                          #f)))))
+                                              (#{scan 1631}#
+                                                #{body 1701}#
+                                                #{r 1633}#
+                                                #{w 1660}#
+                                                #{s 1661}#
+                                                'c&e
+                                                '(compile load)
+                                                #{mod 1662}#
+                                                #{exps 1639}#)
+                                              (if (memq #{m 1636}# '(c c&e))
+                                                (#{scan 1631}#
+                                                  #{body 1701}#
+                                                  #{r 1633}#
+                                                  #{w 1660}#
+                                                  #{s 1661}#
+                                                  'c
+                                                  '(load)
+                                                  #{mod 1662}#
+                                                  #{exps 1639}#)
+                                                (values #{exps 1639}#)))
+                                            (if (let ((#{t 1721}#
+                                                        (memq 'compile
+                                                              #{when-list 
1700}#)))
+                                                  (if #{t 1721}#
+                                                    #{t 1721}#
+                                                    (let ((#{t 1724}#
+                                                            (memq 'expand
+                                                                  #{when-list 
1700}#)))
+                                                      (if #{t 1724}#
+                                                        #{t 1724}#
+                                                        (if (eq? #{m 1636}#
+                                                                 'c&e)
+                                                          (memq 'eval
+                                                                #{when-list 
1700}#)
+                                                          #f)))))
                                               (begin
-                                                (if (memq 'expand
-                                                          #{when-list 1681}#)
-                                                  (#{top-level-eval-hook 252}#
-                                                    (#{chi-top-sequence 415}#
-                                                      #{body 1682}#
-                                                      #{r 1614}#
-                                                      #{w 1641}#
-                                                      #{s 1642}#
-                                                      'e
-                                                      '(eval)
-                                                      #{mod 1643}#)
-                                                    #{mod 1643}#))
-                                                (values #{exps 1620}#)))
-                                            (if (memq 'load #{when-list 1681}#)
-                                              (if (let ((#{t 1691}#
-                                                          (memq 'compile
-                                                                #{when-list 
1681}#)))
-                                                    (if #{t 1691}#
-                                                      #{t 1691}#
-                                                      (let ((#{t 1694}#
-                                                              (memq 'expand
-                                                                    
#{when-list 1681}#)))
-                                                        (if #{t 1694}#
-                                                          #{t 1694}#
-                                                          (if (eq? #{m 1617}#
-                                                                   'c&e)
-                                                            (memq 'eval
-                                                                  #{when-list 
1681}#)
-                                                            #f)))))
-                                                (#{scan 1612}#
-                                                  #{body 1682}#
-                                                  #{r 1614}#
-                                                  #{w 1641}#
-                                                  #{s 1642}#
-                                                  'c&e
-                                                  '(compile load)
-                                                  #{mod 1643}#
-                                                  #{exps 1620}#)
-                                                (if (memq #{m 1617}# '(c c&e))
-                                                  (#{scan 1612}#
-                                                    #{body 1682}#
-                                                    #{r 1614}#
-                                                    #{w 1641}#
-                                                    #{s 1642}#
-                                                    'c
-                                                    '(load)
-                                                    #{mod 1643}#
-                                                    #{exps 1620}#)
-                                                  (values #{exps 1620}#)))
-                                              (if (let ((#{t 1702}#
-                                                          (memq 'compile
-                                                                #{when-list 
1681}#)))
-                                                    (if #{t 1702}#
-                                                      #{t 1702}#
-                                                      (let ((#{t 1705}#
-                                                              (memq 'expand
-                                                                    
#{when-list 1681}#)))
-                                                        (if #{t 1705}#
-                                                          #{t 1705}#
-                                                          (if (eq? #{m 1617}#
-                                                                   'c&e)
-                                                            (memq 'eval
-                                                                  #{when-list 
1681}#)
-                                                            #f)))))
-                                                (begin
-                                                  (#{top-level-eval-hook 252}#
-                                                    (#{chi-top-sequence 415}#
-                                                      #{body 1682}#
-                                                      #{r 1614}#
-                                                      #{w 1641}#
-                                                      #{s 1642}#
-                                                      'e
-                                                      '(eval)
-                                                      #{mod 1643}#)
-                                                    #{mod 1643}#)
-                                                  (values #{exps 1620}#))
-                                                (values #{exps 1620}#))))))
-                                      #{tmp 1672}#)
-                                    (syntax-violation
-                                      #f
-                                      "source expression failed to match any 
pattern"
-                                      #{tmp 1671}#))))
-                              (if (memv #{type 1638}# '(define-syntax-form))
-                                (let ((#{n 1713}#
-                                        (#{id-var-name 397}#
-                                          #{value 1639}#
-                                          #{w 1641}#))
-                                      (#{r 1714}#
-                                        (#{macros-only-env 335}# #{r 1614}#)))
-                                  (if (memv #{m 1617}# '(c))
-                                    (if (memq 'compile #{esew 1618}#)
-                                      (let ((#{e 1717}#
-                                              (#{chi-install-global 417}#
-                                                #{n 1713}#
-                                                (#{chi 423}#
-                                                  #{e 1640}#
-                                                  #{r 1714}#
-                                                  #{w 1641}#
-                                                  #{mod 1643}#))))
+                                                (#{top-level-eval-hook 257}#
+                                                  (#{chi-top-sequence 433}#
+                                                    #{body 1701}#
+                                                    #{r 1633}#
+                                                    #{w 1660}#
+                                                    #{s 1661}#
+                                                    'e
+                                                    '(eval)
+                                                    #{mod 1662}#)
+                                                  #{mod 1662}#)
+                                                (values #{exps 1639}#))
+                                              (values #{exps 1639}#))))))
+                                    #{tmp 1691}#)
+                                  (syntax-violation
+                                    #f
+                                    "source expression failed to match any 
pattern"
+                                    #{e 1659}#)))
+                              (if (memv #{type 1657}# '(define-syntax-form))
+                                (let ((#{n 1732}#
+                                        (#{id-var-name 415}#
+                                          #{value 1658}#
+                                          #{w 1660}#))
+                                      (#{r 1733}#
+                                        (#{macros-only-env 345}# #{r 1633}#)))
+                                  (if (memv #{m 1636}# '(c))
+                                    (if (memq 'compile #{esew 1637}#)
+                                      (let ((#{e 1736}#
+                                              (#{chi-install-global 435}#
+                                                #{n 1732}#
+                                                (#{chi 441}#
+                                                  #{e 1659}#
+                                                  #{r 1733}#
+                                                  #{w 1660}#
+                                                  #{mod 1662}#))))
                                         (begin
-                                          (#{top-level-eval-hook 252}#
-                                            #{e 1717}#
-                                            #{mod 1643}#)
-                                          (if (memq 'load #{esew 1618}#)
+                                          (#{top-level-eval-hook 257}#
+                                            #{e 1736}#
+                                            #{mod 1662}#)
+                                          (if (memq 'load #{esew 1637}#)
                                             (values
-                                              (cons #{e 1717}# #{exps 1620}#))
-                                            (values #{exps 1620}#))))
-                                      (if (memq 'load #{esew 1618}#)
+                                              (cons #{e 1736}# #{exps 1639}#))
+                                            (values #{exps 1639}#))))
+                                      (if (memq 'load #{esew 1637}#)
                                         (values
-                                          (cons (#{chi-install-global 417}#
-                                                  #{n 1713}#
-                                                  (#{chi 423}#
-                                                    #{e 1640}#
-                                                    #{r 1714}#
-                                                    #{w 1641}#
-                                                    #{mod 1643}#))
-                                                #{exps 1620}#))
-                                        (values #{exps 1620}#)))
-                                    (if (memv #{m 1617}# '(c&e))
-                                      (let ((#{e 1720}#
-                                              (#{chi-install-global 417}#
-                                                #{n 1713}#
-                                                (#{chi 423}#
-                                                  #{e 1640}#
-                                                  #{r 1714}#
-                                                  #{w 1641}#
-                                                  #{mod 1643}#))))
+                                          (cons (#{chi-install-global 435}#
+                                                  #{n 1732}#
+                                                  (#{chi 441}#
+                                                    #{e 1659}#
+                                                    #{r 1733}#
+                                                    #{w 1660}#
+                                                    #{mod 1662}#))
+                                                #{exps 1639}#))
+                                        (values #{exps 1639}#)))
+                                    (if (memv #{m 1636}# '(c&e))
+                                      (let ((#{e 1739}#
+                                              (#{chi-install-global 435}#
+                                                #{n 1732}#
+                                                (#{chi 441}#
+                                                  #{e 1659}#
+                                                  #{r 1733}#
+                                                  #{w 1660}#
+                                                  #{mod 1662}#))))
                                         (begin
-                                          (#{top-level-eval-hook 252}#
-                                            #{e 1720}#
-                                            #{mod 1643}#)
+                                          (#{top-level-eval-hook 257}#
+                                            #{e 1739}#
+                                            #{mod 1662}#)
                                           (values
-                                            (cons #{e 1720}# #{exps 1620}#))))
+                                            (cons #{e 1739}# #{exps 1639}#))))
                                       (begin
-                                        (if (memq 'eval #{esew 1618}#)
-                                          (#{top-level-eval-hook 252}#
-                                            (#{chi-install-global 417}#
-                                              #{n 1713}#
-                                              (#{chi 423}#
-                                                #{e 1640}#
-                                                #{r 1714}#
-                                                #{w 1641}#
-                                                #{mod 1643}#))
-                                            #{mod 1643}#))
-                                        (values #{exps 1620}#)))))
-                                (if (memv #{type 1638}# '(define-form))
-                                  (let ((#{n 1725}#
-                                          (#{id-var-name 397}#
-                                            #{value 1639}#
-                                            #{w 1641}#)))
-                                    (let ((#{type 1727}#
-                                            (car (#{lookup 337}#
-                                                   #{n 1725}#
-                                                   #{r 1614}#
-                                                   #{mod 1643}#))))
-                                      (if (memv #{type 1727}#
+                                        (if (memq 'eval #{esew 1637}#)
+                                          (#{top-level-eval-hook 257}#
+                                            (#{chi-install-global 435}#
+                                              #{n 1732}#
+                                              (#{chi 441}#
+                                                #{e 1659}#
+                                                #{r 1733}#
+                                                #{w 1660}#
+                                                #{mod 1662}#))
+                                            #{mod 1662}#))
+                                        (values #{exps 1639}#)))))
+                                (if (memv #{type 1657}# '(define-form))
+                                  (let ((#{n 1744}#
+                                          (#{id-var-name 415}#
+                                            #{value 1658}#
+                                            #{w 1660}#)))
+                                    (let ((#{type 1746}#
+                                            (car (#{lookup 347}#
+                                                   #{n 1744}#
+                                                   #{r 1633}#
+                                                   #{mod 1662}#))))
+                                      (if (memv #{type 1746}#
                                                 '(global
                                                    core
                                                    macro
                                                    module-ref))
                                         (begin
-                                          (if (if (memq #{m 1617}# '(c c&e))
+                                          (if (if (memq #{m 1636}# '(c c&e))
                                                 (if (not (module-local-variable
                                                            (current-module)
-                                                           #{n 1725}#))
+                                                           #{n 1744}#))
                                                   (current-module)
                                                   #f)
                                                 #f)
-                                            (let ((#{old 1734}#
+                                            (let ((#{old 1753}#
                                                     (module-variable
                                                       (current-module)
-                                                      #{n 1725}#)))
-                                              (if (if (variable? #{old 1734}#)
+                                                      #{n 1744}#)))
+                                              (if (if (variable? #{old 1753}#)
                                                     (variable-bound?
-                                                      #{old 1734}#)
+                                                      #{old 1753}#)
                                                     #f)
                                                 (module-define!
                                                   (current-module)
-                                                  #{n 1725}#
-                                                  (variable-ref #{old 1734}#))
+                                                  #{n 1744}#
+                                                  (variable-ref #{old 1753}#))
                                                 (module-add!
                                                   (current-module)
-                                                  #{n 1725}#
+                                                  #{n 1744}#
                                                   (make-undefined-variable)))))
                                           (values
-                                            (cons (if (eq? #{m 1617}# 'c&e)
-                                                    (let ((#{x 1738}#
-                                                            
(#{build-global-definition 283}#
-                                                              #{s 1642}#
-                                                              #{n 1725}#
-                                                              (#{chi 423}#
-                                                                #{e 1640}#
-                                                                #{r 1614}#
-                                                                #{w 1641}#
-                                                                #{mod 
1643}#))))
+                                            (cons (if (eq? #{m 1636}# 'c&e)
+                                                    (let ((#{x 1757}#
+                                                            
(#{build-global-definition 289}#
+                                                              #{s 1661}#
+                                                              #{n 1744}#
+                                                              (#{chi 441}#
+                                                                #{e 1659}#
+                                                                #{r 1633}#
+                                                                #{w 1660}#
+                                                                #{mod 
1662}#))))
                                                       (begin
-                                                        (#{top-level-eval-hook 
252}#
-                                                          #{x 1738}#
-                                                          #{mod 1643}#)
-                                                        #{x 1738}#))
+                                                        (#{top-level-eval-hook 
257}#
+                                                          #{x 1757}#
+                                                          #{mod 1662}#)
+                                                        #{x 1757}#))
                                                     (lambda ()
-                                                      
(#{build-global-definition 283}#
-                                                        #{s 1642}#
-                                                        #{n 1725}#
-                                                        (#{chi 423}#
-                                                          #{e 1640}#
-                                                          #{r 1614}#
-                                                          #{w 1641}#
-                                                          #{mod 1643}#))))
-                                                  #{exps 1620}#)))
-                                        (if (memv #{type 1727}#
+                                                      
(#{build-global-definition 289}#
+                                                        #{s 1661}#
+                                                        #{n 1744}#
+                                                        (#{chi 441}#
+                                                          #{e 1659}#
+                                                          #{r 1633}#
+                                                          #{w 1660}#
+                                                          #{mod 1662}#))))
+                                                  #{exps 1639}#)))
+                                        (if (memv #{type 1746}#
                                                   '(displaced-lexical))
                                           (syntax-violation
                                             #f
                                             "identifier out of context"
-                                            #{e 1640}#
-                                            (#{wrap 409}#
-                                              #{value 1639}#
-                                              #{w 1641}#
-                                              #{mod 1643}#))
+                                            #{e 1659}#
+                                            (#{wrap 427}#
+                                              #{value 1658}#
+                                              #{w 1660}#
+                                              #{mod 1662}#))
                                           (syntax-violation
                                             #f
                                             "cannot define keyword at top 
level"
-                                            #{e 1640}#
-                                            (#{wrap 409}#
-                                              #{value 1639}#
-                                              #{w 1641}#
-                                              #{mod 1643}#))))))
+                                            #{e 1659}#
+                                            (#{wrap 427}#
+                                              #{value 1658}#
+                                              #{w 1660}#
+                                              #{mod 1662}#))))))
                                   (values
-                                    (cons (if (eq? #{m 1617}# 'c&e)
-                                            (let ((#{x 1743}#
-                                                    (#{chi-expr 425}#
-                                                      #{type 1638}#
-                                                      #{value 1639}#
-                                                      #{e 1640}#
-                                                      #{r 1614}#
-                                                      #{w 1641}#
-                                                      #{s 1642}#
-                                                      #{mod 1643}#)))
+                                    (cons (if (eq? #{m 1636}# 'c&e)
+                                            (let ((#{x 1762}#
+                                                    (#{chi-expr 443}#
+                                                      #{type 1657}#
+                                                      #{value 1658}#
+                                                      #{e 1659}#
+                                                      #{r 1633}#
+                                                      #{w 1660}#
+                                                      #{s 1661}#
+                                                      #{mod 1662}#)))
                                               (begin
-                                                (#{top-level-eval-hook 252}#
-                                                  #{x 1743}#
-                                                  #{mod 1643}#)
-                                                #{x 1743}#))
+                                                (#{top-level-eval-hook 257}#
+                                                  #{x 1762}#
+                                                  #{mod 1662}#)
+                                                #{x 1762}#))
                                             (lambda ()
-                                              (#{chi-expr 425}#
-                                                #{type 1638}#
-                                                #{value 1639}#
-                                                #{e 1640}#
-                                                #{r 1614}#
-                                                #{w 1641}#
-                                                #{s 1642}#
-                                                #{mod 1643}#)))
-                                          #{exps 1620}#))))))))))
-                  (lambda (#{exps 1744}#)
-                    (#{scan 1612}#
-                      (cdr #{body 1613}#)
-                      #{r 1614}#
-                      #{w 1615}#
-                      #{s 1616}#
-                      #{m 1617}#
-                      #{esew 1618}#
-                      #{mod 1619}#
-                      #{exps 1744}#)))))))
+                                              (#{chi-expr 443}#
+                                                #{type 1657}#
+                                                #{value 1658}#
+                                                #{e 1659}#
+                                                #{r 1633}#
+                                                #{w 1660}#
+                                                #{s 1661}#
+                                                #{mod 1662}#)))
+                                          #{exps 1639}#))))))))))
+                  (lambda (#{exps 1763}#)
+                    (#{scan 1631}#
+                      (cdr #{body 1632}#)
+                      #{r 1633}#
+                      #{w 1634}#
+                      #{s 1635}#
+                      #{m 1636}#
+                      #{esew 1637}#
+                      #{mod 1638}#
+                      #{exps 1763}#)))))))
          (call-with-values
            (lambda ()
-             (#{scan 1612}#
-               #{body 1597}#
-               #{r 1598}#
-               #{w 1599}#
-               #{s 1600}#
-               #{m 1601}#
-               #{esew 1602}#
-               #{mod 1603}#
+             (#{scan 1631}#
+               #{body 1616}#
+               #{r 1617}#
+               #{w 1618}#
+               #{s 1619}#
+               #{m 1620}#
+               #{esew 1621}#
+               #{mod 1622}#
                '()))
-           (lambda (#{exps 1746}#)
-             (if (null? #{exps 1746}#)
-               (#{build-void 265}# #{s 1600}#)
-               (#{build-sequence 297}#
-                 #{s 1600}#
+           (lambda (#{exps 1765}#)
+             (if (null? #{exps 1765}#)
+               (#{build-void 271}# #{s 1619}#)
+               (#{build-sequence 303}#
+                 #{s 1619}#
                  (letrec*
-                   ((#{lp 1751}#
-                      (lambda (#{in 1752}# #{out 1753}#)
-                        (if (null? #{in 1752}#)
-                          #{out 1753}#
-                          (let ((#{e 1755}# (car #{in 1752}#)))
-                            (#{lp 1751}#
-                              (cdr #{in 1752}#)
-                              (cons (if (procedure? #{e 1755}#)
-                                      (#{e 1755}#)
-                                      #{e 1755}#)
-                                    #{out 1753}#)))))))
-                   (#{lp 1751}# #{exps 1746}# '())))))))))
-   (#{chi-install-global 417}#
-     (lambda (#{name 1756}# #{e 1757}#)
-       (#{build-global-definition 283}#
+                   ((#{lp 1770}#
+                      (lambda (#{in 1771}# #{out 1772}#)
+                        (if (null? #{in 1771}#)
+                          #{out 1772}#
+                          (let ((#{e 1774}# (car #{in 1771}#)))
+                            (#{lp 1770}#
+                              (cdr #{in 1771}#)
+                              (cons (if (procedure? #{e 1774}#)
+                                      (#{e 1774}#)
+                                      #{e 1774}#)
+                                    #{out 1772}#)))))))
+                   (#{lp 1770}# #{exps 1765}# '())))))))))
+   (#{chi-install-global 435}#
+     (lambda (#{name 1775}# #{e 1776}#)
+       (#{build-global-definition 289}#
          #f
-         #{name 1756}#
-         (#{build-primcall 291}#
+         #{name 1775}#
+         (#{build-primcall 297}#
            #f
            'make-syntax-transformer
-           (list (#{build-data 295}# #f #{name 1756}#)
-                 (#{build-data 295}# #f 'macro)
-                 #{e 1757}#)))))
-   (#{chi-when-list 419}#
-     (lambda (#{e 1764}# #{when-list 1765}# #{w 1766}#)
+           (list (#{build-data 301}# #f #{name 1775}#)
+                 (#{build-data 301}# #f 'macro)
+                 #{e 1776}#)))))
+   (#{chi-when-list 437}#
+     (lambda (#{e 1783}# #{when-list 1784}# #{w 1785}#)
        (letrec*
-         ((#{f 1773}#
-            (lambda (#{when-list 1774}# #{situations 1775}#)
-              (if (null? #{when-list 1774}#)
-                #{situations 1775}#
-                (#{f 1773}#
-                  (cdr #{when-list 1774}#)
-                  (cons (let ((#{x 1777}#
-                                (syntax->datum (car #{when-list 1774}#))))
-                          (if (memq #{x 1777}# '(compile load eval expand))
-                            #{x 1777}#
+         ((#{f 1792}#
+            (lambda (#{when-list 1793}# #{situations 1794}#)
+              (if (null? #{when-list 1793}#)
+                #{situations 1794}#
+                (#{f 1792}#
+                  (cdr #{when-list 1793}#)
+                  (cons (let ((#{x 1796}#
+                                (syntax->datum (car #{when-list 1793}#))))
+                          (if (memq #{x 1796}# '(compile load eval expand))
+                            #{x 1796}#
                             (syntax-violation
                               'eval-when
                               "invalid situation"
-                              #{e 1764}#
-                              (#{wrap 409}#
-                                (car #{when-list 1774}#)
-                                #{w 1766}#
+                              #{e 1783}#
+                              (#{wrap 427}#
+                                (car #{when-list 1793}#)
+                                #{w 1785}#
                                 #f))))
-                        #{situations 1775}#))))))
-         (#{f 1773}# #{when-list 1765}# '()))))
-   (#{syntax-type 421}#
-     (lambda (#{e 1778}#
-              #{r 1779}#
-              #{w 1780}#
-              #{s 1781}#
-              #{rib 1782}#
-              #{mod 1783}#
-              #{for-car? 1784}#)
-       (if (symbol? #{e 1778}#)
-         (let ((#{n 1796}#
-                 (#{id-var-name 397}# #{e 1778}# #{w 1780}#)))
-           (let ((#{b 1798}#
-                   (#{lookup 337}#
-                     #{n 1796}#
-                     #{r 1779}#
-                     #{mod 1783}#)))
-             (let ((#{type 1800}# (car #{b 1798}#)))
-               (if (memv #{type 1800}# '(lexical))
+                        #{situations 1794}#))))))
+         (#{f 1792}# #{when-list 1784}# '()))))
+   (#{syntax-type 439}#
+     (lambda (#{e 1797}#
+              #{r 1798}#
+              #{w 1799}#
+              #{s 1800}#
+              #{rib 1801}#
+              #{mod 1802}#
+              #{for-car? 1803}#)
+       (if (symbol? #{e 1797}#)
+         (let ((#{n 1815}#
+                 (#{id-var-name 415}# #{e 1797}# #{w 1799}#)))
+           (let ((#{b 1817}#
+                   (#{lookup 347}#
+                     #{n 1815}#
+                     #{r 1798}#
+                     #{mod 1802}#)))
+             (let ((#{type 1819}# (car #{b 1817}#)))
+               (if (memv #{type 1819}# '(lexical))
                  (values
-                   #{type 1800}#
-                   (cdr #{b 1798}#)
-                   #{e 1778}#
-                   #{w 1780}#
-                   #{s 1781}#
-                   #{mod 1783}#)
-                 (if (memv #{type 1800}# '(global))
+                   #{type 1819}#
+                   (cdr #{b 1817}#)
+                   #{e 1797}#
+                   #{w 1799}#
+                   #{s 1800}#
+                   #{mod 1802}#)
+                 (if (memv #{type 1819}# '(global))
                    (values
-                     #{type 1800}#
-                     #{n 1796}#
-                     #{e 1778}#
-                     #{w 1780}#
-                     #{s 1781}#
-                     #{mod 1783}#)
-                   (if (memv #{type 1800}# '(macro))
-                     (if #{for-car? 1784}#
+                     #{type 1819}#
+                     #{n 1815}#
+                     #{e 1797}#
+                     #{w 1799}#
+                     #{s 1800}#
+                     #{mod 1802}#)
+                   (if (memv #{type 1819}# '(macro))
+                     (if #{for-car? 1803}#
                        (values
-                         #{type 1800}#
-                         (cdr #{b 1798}#)
-                         #{e 1778}#
-                         #{w 1780}#
-                         #{s 1781}#
-                         #{mod 1783}#)
-                       (#{syntax-type 421}#
-                         (#{chi-macro 429}#
-                           (cdr #{b 1798}#)
-                           #{e 1778}#
-                           #{r 1779}#
-                           #{w 1780}#
-                           #{s 1781}#
-                           #{rib 1782}#
-                           #{mod 1783}#)
-                         #{r 1779}#
+                         #{type 1819}#
+                         (cdr #{b 1817}#)
+                         #{e 1797}#
+                         #{w 1799}#
+                         #{s 1800}#
+                         #{mod 1802}#)
+                       (#{syntax-type 439}#
+                         (#{chi-macro 447}#
+                           (cdr #{b 1817}#)
+                           #{e 1797}#
+                           #{r 1798}#
+                           #{w 1799}#
+                           #{s 1800}#
+                           #{rib 1801}#
+                           #{mod 1802}#)
+                         #{r 1798}#
                          '(())
-                         #{s 1781}#
-                         #{rib 1782}#
-                         #{mod 1783}#
+                         #{s 1800}#
+                         #{rib 1801}#
+                         #{mod 1802}#
                          #f))
                      (values
-                       #{type 1800}#
-                       (cdr #{b 1798}#)
-                       #{e 1778}#
-                       #{w 1780}#
-                       #{s 1781}#
-                       #{mod 1783}#)))))))
-         (if (pair? #{e 1778}#)
-           (let ((#{first 1814}# (car #{e 1778}#)))
+                       #{type 1819}#
+                       (cdr #{b 1817}#)
+                       #{e 1797}#
+                       #{w 1799}#
+                       #{s 1800}#
+                       #{mod 1802}#)))))))
+         (if (pair? #{e 1797}#)
+           (let ((#{first 1833}# (car #{e 1797}#)))
              (call-with-values
                (lambda ()
-                 (#{syntax-type 421}#
-                   #{first 1814}#
-                   #{r 1779}#
-                   #{w 1780}#
-                   #{s 1781}#
-                   #{rib 1782}#
-                   #{mod 1783}#
+                 (#{syntax-type 439}#
+                   #{first 1833}#
+                   #{r 1798}#
+                   #{w 1799}#
+                   #{s 1800}#
+                   #{rib 1801}#
+                   #{mod 1802}#
                    #t))
-               (lambda (#{ftype 1815}#
-                        #{fval 1816}#
-                        #{fe 1817}#
-                        #{fw 1818}#
-                        #{fs 1819}#
-                        #{fmod 1820}#)
-                 (if (memv #{ftype 1815}# '(lexical))
+               (lambda (#{ftype 1834}#
+                        #{fval 1835}#
+                        #{fe 1836}#
+                        #{fw 1837}#
+                        #{fs 1838}#
+                        #{fmod 1839}#)
+                 (if (memv #{ftype 1834}# '(lexical))
                    (values
                      'lexical-call
-                     #{fval 1816}#
-                     #{e 1778}#
-                     #{w 1780}#
-                     #{s 1781}#
-                     #{mod 1783}#)
-                   (if (memv #{ftype 1815}# '(global))
+                     #{fval 1835}#
+                     #{e 1797}#
+                     #{w 1799}#
+                     #{s 1800}#
+                     #{mod 1802}#)
+                   (if (memv #{ftype 1834}# '(global))
                      (values
                        'global-call
-                       (#{make-syntax-object 307}#
-                         #{fval 1816}#
-                         #{w 1780}#
-                         #{fmod 1820}#)
-                       #{e 1778}#
-                       #{w 1780}#
-                       #{s 1781}#
-                       #{mod 1783}#)
-                     (if (memv #{ftype 1815}# '(macro))
-                       (#{syntax-type 421}#
-                         (#{chi-macro 429}#
-                           #{fval 1816}#
-                           #{e 1778}#
-                           #{r 1779}#
-                           #{w 1780}#
-                           #{s 1781}#
-                           #{rib 1782}#
-                           #{mod 1783}#)
-                         #{r 1779}#
+                       (#{make-syntax-object 314}#
+                         #{fval 1835}#
+                         #{w 1799}#
+                         #{fmod 1839}#)
+                       #{e 1797}#
+                       #{w 1799}#
+                       #{s 1800}#
+                       #{mod 1802}#)
+                     (if (memv #{ftype 1834}# '(macro))
+                       (#{syntax-type 439}#
+                         (#{chi-macro 447}#
+                           #{fval 1835}#
+                           #{e 1797}#
+                           #{r 1798}#
+                           #{w 1799}#
+                           #{s 1800}#
+                           #{rib 1801}#
+                           #{mod 1802}#)
+                         #{r 1798}#
                          '(())
-                         #{s 1781}#
-                         #{rib 1782}#
-                         #{mod 1783}#
-                         #{for-car? 1784}#)
-                       (if (memv #{ftype 1815}# '(module-ref))
+                         #{s 1800}#
+                         #{rib 1801}#
+                         #{mod 1802}#
+                         #{for-car? 1803}#)
+                       (if (memv #{ftype 1834}# '(module-ref))
                          (call-with-values
                            (lambda ()
-                             (#{fval 1816}# #{e 1778}# #{r 1779}# #{w 1780}#))
-                           (lambda (#{e 1832}#
-                                    #{r 1833}#
-                                    #{w 1834}#
-                                    #{s 1835}#
-                                    #{mod 1836}#)
-                             (#{syntax-type 421}#
-                               #{e 1832}#
-                               #{r 1833}#
-                               #{w 1834}#
-                               #{s 1835}#
-                               #{rib 1782}#
-                               #{mod 1836}#
-                               #{for-car? 1784}#)))
-                         (if (memv #{ftype 1815}# '(core))
+                             (#{fval 1835}# #{e 1797}# #{r 1798}# #{w 1799}#))
+                           (lambda (#{e 1851}#
+                                    #{r 1852}#
+                                    #{w 1853}#
+                                    #{s 1854}#
+                                    #{mod 1855}#)
+                             (#{syntax-type 439}#
+                               #{e 1851}#
+                               #{r 1852}#
+                               #{w 1853}#
+                               #{s 1854}#
+                               #{rib 1801}#
+                               #{mod 1855}#
+                               #{for-car? 1803}#)))
+                         (if (memv #{ftype 1834}# '(core))
                            (values
                              'core-form
-                             #{fval 1816}#
-                             #{e 1778}#
-                             #{w 1780}#
-                             #{s 1781}#
-                             #{mod 1783}#)
-                           (if (memv #{ftype 1815}# '(local-syntax))
+                             #{fval 1835}#
+                             #{e 1797}#
+                             #{w 1799}#
+                             #{s 1800}#
+                             #{mod 1802}#)
+                           (if (memv #{ftype 1834}# '(local-syntax))
                              (values
                                'local-syntax-form
-                               #{fval 1816}#
-                               #{e 1778}#
-                               #{w 1780}#
-                               #{s 1781}#
-                               #{mod 1783}#)
-                             (if (memv #{ftype 1815}# '(begin))
+                               #{fval 1835}#
+                               #{e 1797}#
+                               #{w 1799}#
+                               #{s 1800}#
+                               #{mod 1802}#)
+                             (if (memv #{ftype 1834}# '(begin))
                                (values
                                  'begin-form
                                  #f
-                                 #{e 1778}#
-                                 #{w 1780}#
-                                 #{s 1781}#
-                                 #{mod 1783}#)
-                               (if (memv #{ftype 1815}# '(eval-when))
+                                 #{e 1797}#
+                                 #{w 1799}#
+                                 #{s 1800}#
+                                 #{mod 1802}#)
+                               (if (memv #{ftype 1834}# '(eval-when))
                                  (values
                                    'eval-when-form
                                    #f
-                                   #{e 1778}#
-                                   #{w 1780}#
-                                   #{s 1781}#
-                                   #{mod 1783}#)
-                                 (if (memv #{ftype 1815}# '(define))
-                                   (let ((#{tmp 1847}# #{e 1778}#))
-                                     (let ((#{tmp 1848}#
-                                             ($sc-dispatch
-                                               #{tmp 1847}#
-                                               '(_ any any))))
-                                       (if (if #{tmp 1848}#
-                                             (@apply
-                                               (lambda (#{name 1851}#
-                                                        #{val 1852}#)
-                                                 (#{id? 343}# #{name 1851}#))
-                                               #{tmp 1848}#)
-                                             #f)
-                                         (@apply
-                                           (lambda (#{name 1855}# #{val 1856}#)
-                                             (values
-                                               'define-form
-                                               #{name 1855}#
-                                               #{val 1856}#
-                                               #{w 1780}#
-                                               #{s 1781}#
-                                               #{mod 1783}#))
-                                           #{tmp 1848}#)
-                                         (let ((#{tmp 1857}#
-                                                 ($sc-dispatch
-                                                   #{tmp 1847}#
-                                                   '(_ (any . any)
-                                                       any
-                                                       .
-                                                       each-any))))
-                                           (if (if #{tmp 1857}#
-                                                 (@apply
-                                                   (lambda (#{name 1862}#
-                                                            #{args 1863}#
-                                                            #{e1 1864}#
-                                                            #{e2 1865}#)
-                                                     (if (#{id? 343}#
-                                                           #{name 1862}#)
-                                                       (#{valid-bound-ids? 
403}#
-                                                         (#{lambda-var-list 
453}#
-                                                           #{args 1863}#))
-                                                       #f))
-                                                   #{tmp 1857}#)
-                                                 #f)
-                                             (@apply
-                                               (lambda (#{name 1872}#
-                                                        #{args 1873}#
-                                                        #{e1 1874}#
-                                                        #{e2 1875}#)
-                                                 (values
-                                                   'define-form
-                                                   (#{wrap 409}#
-                                                     #{name 1872}#
-                                                     #{w 1780}#
-                                                     #{mod 1783}#)
-                                                   (#{decorate-source 261}#
-                                                     (cons '#(syntax-object
-                                                              lambda
-                                                              ((top)
-                                                               #(ribcage
-                                                                 #(name
-                                                                   args
-                                                                   e1
-                                                                   e2)
-                                                                 #((top)
-                                                                   (top)
-                                                                   (top)
-                                                                   (top))
-                                                                 #("i1868"
-                                                                   "i1869"
-                                                                   "i1870"
-                                                                   "i1871"))
-                                                               #(ribcage
-                                                                 ()
-                                                                 ()
-                                                                 ())
-                                                               #(ribcage
-                                                                 ()
-                                                                 ()
-                                                                 ())
-                                                               #(ribcage
-                                                                 #(ftype
-                                                                   fval
-                                                                   fe
-                                                                   fw
-                                                                   fs
-                                                                   fmod)
-                                                                 #((top)
-                                                                   (top)
-                                                                   (top)
-                                                                   (top)
-                                                                   (top)
-                                                                   (top))
-                                                                 #("i1821"
-                                                                   "i1822"
-                                                                   "i1823"
-                                                                   "i1824"
-                                                                   "i1825"
-                                                                   "i1826"))
-                                                               #(ribcage
-                                                                 ()
-                                                                 ()
-                                                                 ())
-                                                               #(ribcage
-                                                                 #(first)
-                                                                 #((top))
-                                                                 #("i1813"))
-                                                               #(ribcage
-                                                                 ()
-                                                                 ()
-                                                                 ())
-                                                               #(ribcage
-                                                                 ()
-                                                                 ()
-                                                                 ())
-                                                               #(ribcage
-                                                                 ()
-                                                                 ()
-                                                                 ())
-                                                               #(ribcage
-                                                                 #(e
-                                                                   r
-                                                                   w
-                                                                   s
-                                                                   rib
-                                                                   mod
-                                                                   for-car?)
-                                                                 #((top)
-                                                                   (top)
-                                                                   (top)
-                                                                   (top)
-                                                                   (top)
-                                                                   (top)
-                                                                   (top))
-                                                                 #("i1785"
-                                                                   "i1786"
-                                                                   "i1787"
-                                                                   "i1788"
-                                                                   "i1789"
-                                                                   "i1790"
-                                                                   "i1791"))
-                                                               #(ribcage
-                                                                 
(lambda-var-list
-                                                                   gen-var
-                                                                   strip
-                                                                   
chi-lambda-case
-                                                                   
lambda*-formals
-                                                                   
chi-simple-lambda
-                                                                   
lambda-formals
-                                                                   ellipsis?
-                                                                   chi-void
-                                                                   
eval-local-transformer
-                                                                   
chi-local-syntax
-                                                                   chi-body
-                                                                   chi-macro
-                                                                   chi-call
-                                                                   chi-expr
-                                                                   chi
-                                                                   syntax-type
-                                                                   
chi-when-list
-                                                                   
chi-install-global
-                                                                   
chi-top-sequence
-                                                                   chi-sequence
-                                                                   source-wrap
-                                                                   wrap
-                                                                   
bound-id-member?
-                                                                   
distinct-bound-ids?
-                                                                   
valid-bound-ids?
-                                                                   bound-id=?
-                                                                   free-id=?
-                                                                   id-var-name
-                                                                   same-marks?
-                                                                   join-marks
-                                                                   join-wraps
-                                                                   smart-append
-                                                                   
make-binding-wrap
-                                                                   
extend-ribcage!
-                                                                   
make-empty-ribcage
-                                                                   new-mark
-                                                                   anti-mark
-                                                                   
the-anti-mark
-                                                                   top-marked?
-                                                                   top-wrap
-                                                                   empty-wrap
-                                                                   
set-ribcage-labels!
-                                                                   
set-ribcage-marks!
-                                                                   
set-ribcage-symnames!
-                                                                   
ribcage-labels
-                                                                   
ribcage-marks
-                                                                   
ribcage-symnames
-                                                                   ribcage?
-                                                                   make-ribcage
-                                                                   gen-labels
-                                                                   gen-label
-                                                                   make-rename
-                                                                   rename-marks
-                                                                   rename-new
-                                                                   rename-old
-                                                                   
subst-rename?
-                                                                   wrap-subst
-                                                                   wrap-marks
-                                                                   make-wrap
-                                                                   
id-sym-name&marks
-                                                                   id-sym-name
-                                                                   id?
-                                                                   
nonsymbol-id?
-                                                                   
global-extend
-                                                                   lookup
-                                                                   
macros-only-env
-                                                                   
extend-var-env
-                                                                   extend-env
-                                                                   null-env
-                                                                   
binding-value
-                                                                   binding-type
-                                                                   make-binding
-                                                                   arg-check
-                                                                   
source-annotation
-                                                                   no-source
-                                                                   
set-syntax-object-module!
-                                                                   
set-syntax-object-wrap!
-                                                                   
set-syntax-object-expression!
-                                                                   
syntax-object-module
-                                                                   
syntax-object-wrap
-                                                                   
syntax-object-expression
-                                                                   
syntax-object?
-                                                                   
make-syntax-object
-                                                                   
build-lexical-var
-                                                                   build-letrec
-                                                                   
build-named-let
-                                                                   build-let
-                                                                   
build-sequence
-                                                                   build-data
-                                                                   
build-primref
-                                                                   
build-primcall
-                                                                   
build-lambda-case
-                                                                   
build-case-lambda
-                                                                   
build-simple-lambda
-                                                                   
build-global-definition
-                                                                   
build-global-assignment
-                                                                   
build-global-reference
-                                                                   
analyze-variable
-                                                                   
build-lexical-assignment
-                                                                   
build-lexical-reference
-                                                                   build-dynlet
-                                                                   
build-conditional
-                                                                   build-call
-                                                                   build-void
-                                                                   
maybe-name-value!
-                                                                   
decorate-source
-                                                                   
get-global-definition-hook
-                                                                   
put-global-definition-hook
-                                                                   gensym-hook
-                                                                   
local-eval-hook
-                                                                   
top-level-eval-hook
-                                                                   fx<
-                                                                   fx=
-                                                                   fx-
-                                                                   fx+
-                                                                   
set-lambda-meta!
-                                                                   lambda-meta
-                                                                   lambda?
-                                                                   make-dynlet
-                                                                   make-letrec
-                                                                   make-let
-                                                                   
make-lambda-case
-                                                                   make-lambda
-                                                                   make-seq
-                                                                   
make-primcall
-                                                                   make-call
-                                                                   
make-conditional
-                                                                   
make-toplevel-define
-                                                                   
make-toplevel-set
-                                                                   
make-toplevel-ref
-                                                                   
make-module-set
-                                                                   
make-module-ref
-                                                                   
make-lexical-set
-                                                                   
make-lexical-ref
-                                                                   
make-primitive-ref
-                                                                   make-const
-                                                                   make-void)
-                                                                 ((top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top))
-                                                                 ("i452"
-                                                                  "i450"
-                                                                  "i448"
-                                                                  "i446"
-                                                                  "i444"
-                                                                  "i442"
-                                                                  "i440"
-                                                                  "i438"
-                                                                  "i436"
-                                                                  "i434"
-                                                                  "i432"
-                                                                  "i430"
-                                                                  "i428"
-                                                                  "i426"
-                                                                  "i424"
-                                                                  "i422"
-                                                                  "i420"
-                                                                  "i418"
-                                                                  "i416"
-                                                                  "i414"
-                                                                  "i412"
-                                                                  "i410"
-                                                                  "i408"
-                                                                  "i406"
-                                                                  "i404"
-                                                                  "i402"
-                                                                  "i400"
-                                                                  "i398"
-                                                                  "i396"
-                                                                  "i394"
-                                                                  "i392"
-                                                                  "i390"
-                                                                  "i388"
-                                                                  "i386"
-                                                                  "i384"
-                                                                  "i383"
-                                                                  "i382"
-                                                                  "i380"
-                                                                  "i379"
-                                                                  "i378"
-                                                                  "i377"
-                                                                  "i376"
-                                                                  "i374"
-                                                                  "i372"
-                                                                  "i370"
-                                                                  "i368"
-                                                                  "i366"
-                                                                  "i364"
-                                                                  "i362"
-                                                                  "i360"
-                                                                  "i357"
-                                                                  "i355"
-                                                                  "i354"
-                                                                  "i353"
-                                                                  "i352"
-                                                                  "i351"
-                                                                  "i350"
-                                                                  "i349"
-                                                                  "i348"
-                                                                  "i347"
-                                                                  "i345"
-                                                                  "i344"
-                                                                  "i342"
-                                                                  "i340"
-                                                                  "i338"
-                                                                  "i336"
-                                                                  "i334"
-                                                                  "i332"
-                                                                  "i330"
-                                                                  "i329"
-                                                                  "i328"
-                                                                  "i327"
-                                                                  "i326"
-                                                                  "i325"
-                                                                  "i323"
-                                                                  "i322"
-                                                                  "i320"
-                                                                  "i318"
-                                                                  "i316"
-                                                                  "i314"
-                                                                  "i312"
-                                                                  "i310"
-                                                                  "i308"
-                                                                  "i306"
-                                                                  "i304"
-                                                                  "i302"
-                                                                  "i300"
-                                                                  "i298"
-                                                                  "i296"
-                                                                  "i294"
-                                                                  "i292"
-                                                                  "i290"
-                                                                  "i288"
-                                                                  "i286"
-                                                                  "i284"
-                                                                  "i282"
-                                                                  "i280"
-                                                                  "i278"
-                                                                  "i276"
-                                                                  "i274"
-                                                                  "i272"
-                                                                  "i270"
-                                                                  "i268"
-                                                                  "i266"
-                                                                  "i264"
-                                                                  "i262"
-                                                                  "i260"
-                                                                  "i258"
-                                                                  "i256"
-                                                                  "i255"
-                                                                  "i253"
-                                                                  "i251"
-                                                                  "i250"
-                                                                  "i249"
-                                                                  "i248"
-                                                                  "i247"
-                                                                  "i245"
-                                                                  "i243"
-                                                                  "i241"
-                                                                  "i238"
-                                                                  "i236"
-                                                                  "i234"
-                                                                  "i232"
-                                                                  "i230"
-                                                                  "i228"
-                                                                  "i226"
-                                                                  "i224"
-                                                                  "i222"
-                                                                  "i220"
-                                                                  "i218"
-                                                                  "i216"
-                                                                  "i214"
-                                                                  "i212"
-                                                                  "i210"
-                                                                  "i208"
-                                                                  "i206"
-                                                                  "i204"
-                                                                  "i202"))
-                                                               #(ribcage
-                                                                 
(define-structure
-                                                                   
define-expansion-accessors
-                                                                   
define-expansion-constructors)
-                                                                 ((top)
-                                                                  (top)
-                                                                  (top))
-                                                                 ("i40"
-                                                                  "i39"
-                                                                  "i38")))
-                                                              (hygiene guile))
-                                                           (#{wrap 409}#
-                                                             (cons #{args 
1873}#
-                                                                   (cons #{e1 
1874}#
-                                                                         #{e2 
1875}#))
-                                                             #{w 1780}#
-                                                             #{mod 1783}#))
-                                                     #{s 1781}#)
-                                                   '(())
-                                                   #{s 1781}#
-                                                   #{mod 1783}#))
-                                               #{tmp 1857}#)
-                                             (let ((#{tmp 1878}#
-                                                     ($sc-dispatch
-                                                       #{tmp 1847}#
-                                                       '(_ any))))
-                                               (if (if #{tmp 1878}#
-                                                     (@apply
-                                                       (lambda (#{name 1880}#)
-                                                         (#{id? 343}#
-                                                           #{name 1880}#))
-                                                       #{tmp 1878}#)
-                                                     #f)
-                                                 (@apply
-                                                   (lambda (#{name 1882}#)
-                                                     (values
-                                                       'define-form
-                                                       (#{wrap 409}#
-                                                         #{name 1882}#
-                                                         #{w 1780}#
-                                                         #{mod 1783}#)
-                                                       '(#(syntax-object
-                                                           if
-                                                           ((top)
-                                                            #(ribcage
-                                                              #(name)
-                                                              #((top))
-                                                              #("i1881"))
-                                                            #(ribcage () () ())
-                                                            #(ribcage () () ())
-                                                            #(ribcage
-                                                              #(ftype
-                                                                fval
-                                                                fe
-                                                                fw
-                                                                fs
-                                                                fmod)
-                                                              #((top)
+                                   #{e 1797}#
+                                   #{w 1799}#
+                                   #{s 1800}#
+                                   #{mod 1802}#)
+                                 (if (memv #{ftype 1834}# '(define))
+                                   (let ((#{tmp 1867}#
+                                           ($sc-dispatch
+                                             #{e 1797}#
+                                             '(_ any any))))
+                                     (if (if #{tmp 1867}#
+                                           (@apply
+                                             (lambda (#{name 1870}#
+                                                      #{val 1871}#)
+                                               (#{id? 353}# #{name 1870}#))
+                                             #{tmp 1867}#)
+                                           #f)
+                                       (@apply
+                                         (lambda (#{name 1874}# #{val 1875}#)
+                                           (values
+                                             'define-form
+                                             #{name 1874}#
+                                             #{val 1875}#
+                                             #{w 1799}#
+                                             #{s 1800}#
+                                             #{mod 1802}#))
+                                         #{tmp 1867}#)
+                                       (let ((#{tmp 1876}#
+                                               ($sc-dispatch
+                                                 #{e 1797}#
+                                                 '(_ (any . any)
+                                                     any
+                                                     .
+                                                     each-any))))
+                                         (if (if #{tmp 1876}#
+                                               (@apply
+                                                 (lambda (#{name 1881}#
+                                                          #{args 1882}#
+                                                          #{e1 1883}#
+                                                          #{e2 1884}#)
+                                                   (if (#{id? 353}#
+                                                         #{name 1881}#)
+                                                     (#{valid-bound-ids? 421}#
+                                                       (#{lambda-var-list 471}#
+                                                         #{args 1882}#))
+                                                     #f))
+                                                 #{tmp 1876}#)
+                                               #f)
+                                           (@apply
+                                             (lambda (#{name 1891}#
+                                                      #{args 1892}#
+                                                      #{e1 1893}#
+                                                      #{e2 1894}#)
+                                               (values
+                                                 'define-form
+                                                 (#{wrap 427}#
+                                                   #{name 1891}#
+                                                   #{w 1799}#
+                                                   #{mod 1802}#)
+                                                 (#{decorate-source 267}#
+                                                   (cons '#(syntax-object
+                                                            lambda
+                                                            ((top)
+                                                             #(ribcage
+                                                               #(name
+                                                                 args
+                                                                 e1
+                                                                 e2)
+                                                               #((top)
+                                                                 (top)
+                                                                 (top)
+                                                                 (top))
+                                                               #("i1887"
+                                                                 "i1888"
+                                                                 "i1889"
+                                                                 "i1890"))
+                                                             #(ribcage
+                                                               ()
+                                                               ()
+                                                               ())
+                                                             #(ribcage
+                                                               ()
+                                                               ()
+                                                               ())
+                                                             #(ribcage
+                                                               #(ftype
+                                                                 fval
+                                                                 fe
+                                                                 fw
+                                                                 fs
+                                                                 fmod)
+                                                               #((top)
+                                                                 (top)
+                                                                 (top)
+                                                                 (top)
+                                                                 (top)
+                                                                 (top))
+                                                               #("i1840"
+                                                                 "i1841"
+                                                                 "i1842"
+                                                                 "i1843"
+                                                                 "i1844"
+                                                                 "i1845"))
+                                                             #(ribcage
+                                                               ()
+                                                               ()
+                                                               ())
+                                                             #(ribcage
+                                                               #(first)
+                                                               #((top))
+                                                               #("i1832"))
+                                                             #(ribcage
+                                                               ()
+                                                               ()
+                                                               ())
+                                                             #(ribcage
+                                                               ()
+                                                               ()
+                                                               ())
+                                                             #(ribcage
+                                                               ()
+                                                               ()
+                                                               ())
+                                                             #(ribcage
+                                                               #(e
+                                                                 r
+                                                                 w
+                                                                 s
+                                                                 rib
+                                                                 mod
+                                                                 for-car?)
+                                                               #((top)
+                                                                 (top)
+                                                                 (top)
+                                                                 (top)
+                                                                 (top)
+                                                                 (top)
+                                                                 (top))
+                                                               #("i1804"
+                                                                 "i1805"
+                                                                 "i1806"
+                                                                 "i1807"
+                                                                 "i1808"
+                                                                 "i1809"
+                                                                 "i1810"))
+                                                             #(ribcage
+                                                               (lambda-var-list
+                                                                 gen-var
+                                                                 strip
+                                                                 
chi-lambda-case
+                                                                 
lambda*-formals
+                                                                 
chi-simple-lambda
+                                                                 lambda-formals
+                                                                 ellipsis?
+                                                                 chi-void
+                                                                 
eval-local-transformer
+                                                                 
chi-local-syntax
+                                                                 chi-body
+                                                                 chi-macro
+                                                                 chi-call
+                                                                 chi-expr
+                                                                 chi
+                                                                 syntax-type
+                                                                 chi-when-list
+                                                                 
chi-install-global
+                                                                 
chi-top-sequence
+                                                                 chi-sequence
+                                                                 source-wrap
+                                                                 wrap
+                                                                 
bound-id-member?
+                                                                 
distinct-bound-ids?
+                                                                 
valid-bound-ids?
+                                                                 bound-id=?
+                                                                 free-id=?
+                                                                 id-var-name
+                                                                 same-marks?
+                                                                 join-marks
+                                                                 join-wraps
+                                                                 smart-append
+                                                                 
make-binding-wrap
+                                                                 
extend-ribcage!
+                                                                 
make-empty-ribcage
+                                                                 new-mark
+                                                                 anti-mark
+                                                                 the-anti-mark
+                                                                 top-marked?
+                                                                 top-wrap
+                                                                 empty-wrap
+                                                                 
set-ribcage-labels!
+                                                                 
set-ribcage-marks!
+                                                                 
set-ribcage-symnames!
+                                                                 ribcage-labels
+                                                                 ribcage-marks
+                                                                 
ribcage-symnames
+                                                                 ribcage?
+                                                                 make-ribcage
+                                                                 gen-labels
+                                                                 gen-label
+                                                                 make-rename
+                                                                 rename-marks
+                                                                 rename-new
+                                                                 rename-old
+                                                                 subst-rename?
+                                                                 wrap-subst
+                                                                 wrap-marks
+                                                                 make-wrap
+                                                                 
id-sym-name&marks
+                                                                 id-sym-name
+                                                                 id?
+                                                                 nonsymbol-id?
+                                                                 global-extend
+                                                                 lookup
+                                                                 
macros-only-env
+                                                                 extend-var-env
+                                                                 extend-env
+                                                                 null-env
+                                                                 binding-value
+                                                                 binding-type
+                                                                 make-binding
+                                                                 arg-check
+                                                                 
source-annotation
+                                                                 no-source
+                                                                 
set-syntax-object-module!
+                                                                 
set-syntax-object-wrap!
+                                                                 
set-syntax-object-expression!
+                                                                 
syntax-object-module
+                                                                 
syntax-object-wrap
+                                                                 
syntax-object-expression
+                                                                 syntax-object?
+                                                                 
make-syntax-object
+                                                                 
build-lexical-var
+                                                                 build-letrec
+                                                                 
build-named-let
+                                                                 build-let
+                                                                 build-sequence
+                                                                 build-data
+                                                                 build-primref
+                                                                 build-primcall
+                                                                 
build-lambda-case
+                                                                 
build-case-lambda
+                                                                 
build-simple-lambda
+                                                                 
build-global-definition
+                                                                 
build-global-assignment
+                                                                 
build-global-reference
+                                                                 
analyze-variable
+                                                                 
build-lexical-assignment
+                                                                 
build-lexical-reference
+                                                                 build-dynlet
+                                                                 
build-conditional
+                                                                 build-call
+                                                                 build-void
+                                                                 
maybe-name-value!
+                                                                 
decorate-source
+                                                                 
get-global-definition-hook
+                                                                 
put-global-definition-hook
+                                                                 gensym-hook
+                                                                 
local-eval-hook
+                                                                 
top-level-eval-hook
+                                                                 fx<
+                                                                 fx=
+                                                                 fx-
+                                                                 fx+
+                                                                 
set-lambda-meta!
+                                                                 lambda-meta
+                                                                 lambda?
+                                                                 make-dynlet
+                                                                 make-letrec
+                                                                 make-let
+                                                                 
make-lambda-case
+                                                                 make-lambda
+                                                                 make-seq
+                                                                 make-primcall
+                                                                 make-call
+                                                                 
make-conditional
+                                                                 
make-toplevel-define
+                                                                 
make-toplevel-set
+                                                                 
make-toplevel-ref
+                                                                 
make-module-set
+                                                                 
make-module-ref
+                                                                 
make-lexical-set
+                                                                 
make-lexical-ref
+                                                                 
make-primitive-ref
+                                                                 make-const
+                                                                 make-void)
+                                                               ((top)
                                                                 (top)
                                                                 (top)
                                                                 (top)
                                                                 (top)
-                                                                (top))
-                                                              #("i1821"
-                                                                "i1822"
-                                                                "i1823"
-                                                                "i1824"
-                                                                "i1825"
-                                                                "i1826"))
-                                                            #(ribcage () () ())
-                                                            #(ribcage
-                                                              #(first)
-                                                              #((top))
-                                                              #("i1813"))
-                                                            #(ribcage () () ())
-                                                            #(ribcage () () ())
-                                                            #(ribcage () () ())
-                                                            #(ribcage
-                                                              #(e
-                                                                r
-                                                                w
-                                                                s
-                                                                rib
-                                                                mod
-                                                                for-car?)
-                                                              #((top)
                                                                 (top)
                                                                 (top)
                                                                 (top)
                                                                 (top)
                                                                 (top)
-                                                                (top))
-                                                              #("i1785"
-                                                                "i1786"
-                                                                "i1787"
-                                                                "i1788"
-                                                                "i1789"
-                                                                "i1790"
-                                                                "i1791"))
-                                                            #(ribcage
-                                                              (lambda-var-list
-                                                                gen-var
-                                                                strip
-                                                                chi-lambda-case
-                                                                lambda*-formals
-                                                                
chi-simple-lambda
-                                                                lambda-formals
-                                                                ellipsis?
-                                                                chi-void
-                                                                
eval-local-transformer
-                                                                
chi-local-syntax
-                                                                chi-body
-                                                                chi-macro
-                                                                chi-call
-                                                                chi-expr
-                                                                chi
-                                                                syntax-type
-                                                                chi-when-list
-                                                                
chi-install-global
-                                                                
chi-top-sequence
-                                                                chi-sequence
-                                                                source-wrap
-                                                                wrap
-                                                                
bound-id-member?
-                                                                
distinct-bound-ids?
-                                                                
valid-bound-ids?
-                                                                bound-id=?
-                                                                free-id=?
-                                                                id-var-name
-                                                                same-marks?
-                                                                join-marks
-                                                                join-wraps
-                                                                smart-append
-                                                                
make-binding-wrap
-                                                                extend-ribcage!
-                                                                
make-empty-ribcage
-                                                                new-mark
-                                                                anti-mark
-                                                                the-anti-mark
-                                                                top-marked?
-                                                                top-wrap
-                                                                empty-wrap
-                                                                
set-ribcage-labels!
-                                                                
set-ribcage-marks!
-                                                                
set-ribcage-symnames!
-                                                                ribcage-labels
-                                                                ribcage-marks
-                                                                
ribcage-symnames
-                                                                ribcage?
-                                                                make-ribcage
-                                                                gen-labels
-                                                                gen-label
-                                                                make-rename
-                                                                rename-marks
-                                                                rename-new
-                                                                rename-old
-                                                                subst-rename?
-                                                                wrap-subst
-                                                                wrap-marks
-                                                                make-wrap
-                                                                
id-sym-name&marks
-                                                                id-sym-name
-                                                                id?
-                                                                nonsymbol-id?
-                                                                global-extend
-                                                                lookup
-                                                                macros-only-env
-                                                                extend-var-env
-                                                                extend-env
-                                                                null-env
-                                                                binding-value
-                                                                binding-type
-                                                                make-binding
-                                                                arg-check
-                                                                
source-annotation
-                                                                no-source
-                                                                
set-syntax-object-module!
-                                                                
set-syntax-object-wrap!
-                                                                
set-syntax-object-expression!
-                                                                
syntax-object-module
-                                                                
syntax-object-wrap
-                                                                
syntax-object-expression
-                                                                syntax-object?
-                                                                
make-syntax-object
-                                                                
build-lexical-var
-                                                                build-letrec
-                                                                build-named-let
-                                                                build-let
-                                                                build-sequence
-                                                                build-data
-                                                                build-primref
-                                                                build-primcall
-                                                                
build-lambda-case
-                                                                
build-case-lambda
-                                                                
build-simple-lambda
-                                                                
build-global-definition
-                                                                
build-global-assignment
-                                                                
build-global-reference
-                                                                
analyze-variable
-                                                                
build-lexical-assignment
-                                                                
build-lexical-reference
-                                                                build-dynlet
-                                                                
build-conditional
-                                                                build-call
-                                                                build-void
-                                                                
maybe-name-value!
-                                                                decorate-source
-                                                                
get-global-definition-hook
-                                                                
put-global-definition-hook
-                                                                gensym-hook
-                                                                local-eval-hook
-                                                                
top-level-eval-hook
-                                                                fx<
-                                                                fx=
-                                                                fx-
-                                                                fx+
-                                                                
set-lambda-meta!
-                                                                lambda-meta
-                                                                lambda?
-                                                                make-dynlet
-                                                                make-letrec
-                                                                make-let
-                                                                
make-lambda-case
-                                                                make-lambda
-                                                                make-seq
-                                                                make-primcall
-                                                                make-call
-                                                                
make-conditional
-                                                                
make-toplevel-define
-                                                                
make-toplevel-set
-                                                                
make-toplevel-ref
-                                                                make-module-set
-                                                                make-module-ref
-                                                                
make-lexical-set
-                                                                
make-lexical-ref
-                                                                
make-primitive-ref
-                                                                make-const
-                                                                make-void)
-                                                              ((top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top))
-                                                              ("i452"
-                                                               "i450"
-                                                               "i448"
-                                                               "i446"
-                                                               "i444"
-                                                               "i442"
-                                                               "i440"
-                                                               "i438"
-                                                               "i436"
-                                                               "i434"
-                                                               "i432"
-                                                               "i430"
-                                                               "i428"
-                                                               "i426"
-                                                               "i424"
-                                                               "i422"
-                                                               "i420"
-                                                               "i418"
-                                                               "i416"
-                                                               "i414"
-                                                               "i412"
-                                                               "i410"
-                                                               "i408"
-                                                               "i406"
-                                                               "i404"
-                                                               "i402"
-                                                               "i400"
-                                                               "i398"
-                                                               "i396"
-                                                               "i394"
-                                                               "i392"
-                                                               "i390"
-                                                               "i388"
-                                                               "i386"
-                                                               "i384"
-                                                               "i383"
-                                                               "i382"
-                                                               "i380"
-                                                               "i379"
-                                                               "i378"
-                                                               "i377"
-                                                               "i376"
-                                                               "i374"
-                                                               "i372"
-                                                               "i370"
-                                                               "i368"
-                                                               "i366"
-                                                               "i364"
-                                                               "i362"
-                                                               "i360"
-                                                               "i357"
-                                                               "i355"
-                                                               "i354"
-                                                               "i353"
-                                                               "i352"
-                                                               "i351"
-                                                               "i350"
-                                                               "i349"
-                                                               "i348"
-                                                               "i347"
-                                                               "i345"
-                                                               "i344"
-                                                               "i342"
-                                                               "i340"
-                                                               "i338"
-                                                               "i336"
-                                                               "i334"
-                                                               "i332"
-                                                               "i330"
-                                                               "i329"
-                                                               "i328"
-                                                               "i327"
-                                                               "i326"
-                                                               "i325"
-                                                               "i323"
-                                                               "i322"
-                                                               "i320"
-                                                               "i318"
-                                                               "i316"
-                                                               "i314"
-                                                               "i312"
-                                                               "i310"
-                                                               "i308"
-                                                               "i306"
-                                                               "i304"
-                                                               "i302"
-                                                               "i300"
-                                                               "i298"
-                                                               "i296"
-                                                               "i294"
-                                                               "i292"
-                                                               "i290"
-                                                               "i288"
-                                                               "i286"
-                                                               "i284"
-                                                               "i282"
-                                                               "i280"
-                                                               "i278"
-                                                               "i276"
-                                                               "i274"
-                                                               "i272"
-                                                               "i270"
-                                                               "i268"
-                                                               "i266"
-                                                               "i264"
-                                                               "i262"
-                                                               "i260"
-                                                               "i258"
-                                                               "i256"
-                                                               "i255"
-                                                               "i253"
-                                                               "i251"
-                                                               "i250"
-                                                               "i249"
-                                                               "i248"
-                                                               "i247"
-                                                               "i245"
-                                                               "i243"
-                                                               "i241"
-                                                               "i238"
-                                                               "i236"
-                                                               "i234"
-                                                               "i232"
-                                                               "i230"
-                                                               "i228"
-                                                               "i226"
-                                                               "i224"
-                                                               "i222"
-                                                               "i220"
-                                                               "i218"
-                                                               "i216"
-                                                               "i214"
-                                                               "i212"
-                                                               "i210"
-                                                               "i208"
-                                                               "i206"
-                                                               "i204"
-                                                               "i202"))
-                                                            #(ribcage
-                                                              (define-structure
-                                                                
define-expansion-accessors
-                                                                
define-expansion-constructors)
-                                                              ((top)
-                                                               (top)
-                                                               (top))
-                                                              ("i40"
-                                                               "i39"
-                                                               "i38")))
-                                                           (hygiene guile))
-                                                         #(syntax-object
-                                                           #f
-                                                           ((top)
-                                                            #(ribcage
-                                                              #(name)
-                                                              #((top))
-                                                              #("i1881"))
-                                                            #(ribcage () () ())
-                                                            #(ribcage () () ())
-                                                            #(ribcage
-                                                              #(ftype
-                                                                fval
-                                                                fe
-                                                                fw
-                                                                fs
-                                                                fmod)
-                                                              #((top)
                                                                 (top)
                                                                 (top)
                                                                 (top)
                                                                 (top)
-                                                                (top))
-                                                              #("i1821"
-                                                                "i1822"
-                                                                "i1823"
-                                                                "i1824"
-                                                                "i1825"
-                                                                "i1826"))
-                                                            #(ribcage () () ())
-                                                            #(ribcage
-                                                              #(first)
-                                                              #((top))
-                                                              #("i1813"))
-                                                            #(ribcage () () ())
-                                                            #(ribcage () () ())
-                                                            #(ribcage () () ())
-                                                            #(ribcage
-                                                              #(e
-                                                                r
-                                                                w
-                                                                s
-                                                                rib
-                                                                mod
-                                                                for-car?)
-                                                              #((top)
                                                                 (top)
                                                                 (top)
                                                                 (top)
                                                                 (top)
                                                                 (top)
-                                                                (top))
-                                                              #("i1785"
-                                                                "i1786"
-                                                                "i1787"
-                                                                "i1788"
-                                                                "i1789"
-                                                                "i1790"
-                                                                "i1791"))
-                                                            #(ribcage
-                                                              (lambda-var-list
-                                                                gen-var
-                                                                strip
-                                                                chi-lambda-case
-                                                                lambda*-formals
-                                                                
chi-simple-lambda
-                                                                lambda-formals
-                                                                ellipsis?
-                                                                chi-void
-                                                                
eval-local-transformer
-                                                                
chi-local-syntax
-                                                                chi-body
-                                                                chi-macro
-                                                                chi-call
-                                                                chi-expr
-                                                                chi
-                                                                syntax-type
-                                                                chi-when-list
-                                                                
chi-install-global
-                                                                
chi-top-sequence
-                                                                chi-sequence
-                                                                source-wrap
-                                                                wrap
-                                                                
bound-id-member?
-                                                                
distinct-bound-ids?
-                                                                
valid-bound-ids?
-                                                                bound-id=?
-                                                                free-id=?
-                                                                id-var-name
-                                                                same-marks?
-                                                                join-marks
-                                                                join-wraps
-                                                                smart-append
-                                                                
make-binding-wrap
-                                                                extend-ribcage!
-                                                                
make-empty-ribcage
-                                                                new-mark
-                                                                anti-mark
-                                                                the-anti-mark
-                                                                top-marked?
-                                                                top-wrap
-                                                                empty-wrap
-                                                                
set-ribcage-labels!
-                                                                
set-ribcage-marks!
-                                                                
set-ribcage-symnames!
-                                                                ribcage-labels
-                                                                ribcage-marks
-                                                                
ribcage-symnames
-                                                                ribcage?
-                                                                make-ribcage
-                                                                gen-labels
-                                                                gen-label
-                                                                make-rename
-                                                                rename-marks
-                                                                rename-new
-                                                                rename-old
-                                                                subst-rename?
-                                                                wrap-subst
-                                                                wrap-marks
-                                                                make-wrap
-                                                                
id-sym-name&marks
-                                                                id-sym-name
-                                                                id?
-                                                                nonsymbol-id?
-                                                                global-extend
-                                                                lookup
-                                                                macros-only-env
-                                                                extend-var-env
-                                                                extend-env
-                                                                null-env
-                                                                binding-value
-                                                                binding-type
-                                                                make-binding
-                                                                arg-check
-                                                                
source-annotation
-                                                                no-source
-                                                                
set-syntax-object-module!
-                                                                
set-syntax-object-wrap!
-                                                                
set-syntax-object-expression!
-                                                                
syntax-object-module
-                                                                
syntax-object-wrap
-                                                                
syntax-object-expression
-                                                                syntax-object?
-                                                                
make-syntax-object
-                                                                
build-lexical-var
-                                                                build-letrec
-                                                                build-named-let
-                                                                build-let
-                                                                build-sequence
-                                                                build-data
-                                                                build-primref
-                                                                build-primcall
-                                                                
build-lambda-case
-                                                                
build-case-lambda
-                                                                
build-simple-lambda
-                                                                
build-global-definition
-                                                                
build-global-assignment
-                                                                
build-global-reference
-                                                                
analyze-variable
-                                                                
build-lexical-assignment
-                                                                
build-lexical-reference
-                                                                build-dynlet
-                                                                
build-conditional
-                                                                build-call
-                                                                build-void
-                                                                
maybe-name-value!
-                                                                decorate-source
-                                                                
get-global-definition-hook
-                                                                
put-global-definition-hook
-                                                                gensym-hook
-                                                                local-eval-hook
-                                                                
top-level-eval-hook
-                                                                fx<
-                                                                fx=
-                                                                fx-
-                                                                fx+
-                                                                
set-lambda-meta!
-                                                                lambda-meta
-                                                                lambda?
-                                                                make-dynlet
-                                                                make-letrec
-                                                                make-let
-                                                                
make-lambda-case
-                                                                make-lambda
-                                                                make-seq
-                                                                make-primcall
-                                                                make-call
-                                                                
make-conditional
-                                                                
make-toplevel-define
-                                                                
make-toplevel-set
-                                                                
make-toplevel-ref
-                                                                make-module-set
-                                                                make-module-ref
-                                                                
make-lexical-set
-                                                                
make-lexical-ref
-                                                                
make-primitive-ref
-                                                                make-const
-                                                                make-void)
-                                                              ((top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top))
-                                                              ("i452"
-                                                               "i450"
-                                                               "i448"
-                                                               "i446"
-                                                               "i444"
-                                                               "i442"
-                                                               "i440"
-                                                               "i438"
-                                                               "i436"
-                                                               "i434"
-                                                               "i432"
-                                                               "i430"
-                                                               "i428"
-                                                               "i426"
-                                                               "i424"
-                                                               "i422"
-                                                               "i420"
-                                                               "i418"
-                                                               "i416"
-                                                               "i414"
-                                                               "i412"
-                                                               "i410"
-                                                               "i408"
-                                                               "i406"
-                                                               "i404"
-                                                               "i402"
-                                                               "i400"
-                                                               "i398"
-                                                               "i396"
-                                                               "i394"
-                                                               "i392"
-                                                               "i390"
-                                                               "i388"
-                                                               "i386"
-                                                               "i384"
-                                                               "i383"
-                                                               "i382"
-                                                               "i380"
-                                                               "i379"
-                                                               "i378"
-                                                               "i377"
-                                                               "i376"
-                                                               "i374"
-                                                               "i372"
-                                                               "i370"
-                                                               "i368"
-                                                               "i366"
-                                                               "i364"
-                                                               "i362"
-                                                               "i360"
-                                                               "i357"
-                                                               "i355"
-                                                               "i354"
-                                                               "i353"
-                                                               "i352"
-                                                               "i351"
-                                                               "i350"
-                                                               "i349"
-                                                               "i348"
-                                                               "i347"
-                                                               "i345"
-                                                               "i344"
-                                                               "i342"
-                                                               "i340"
-                                                               "i338"
-                                                               "i336"
-                                                               "i334"
-                                                               "i332"
-                                                               "i330"
-                                                               "i329"
-                                                               "i328"
-                                                               "i327"
-                                                               "i326"
-                                                               "i325"
-                                                               "i323"
-                                                               "i322"
-                                                               "i320"
-                                                               "i318"
-                                                               "i316"
-                                                               "i314"
-                                                               "i312"
-                                                               "i310"
-                                                               "i308"
-                                                               "i306"
-                                                               "i304"
-                                                               "i302"
-                                                               "i300"
-                                                               "i298"
-                                                               "i296"
-                                                               "i294"
-                                                               "i292"
-                                                               "i290"
-                                                               "i288"
-                                                               "i286"
-                                                               "i284"
-                                                               "i282"
-                                                               "i280"
-                                                               "i278"
-                                                               "i276"
-                                                               "i274"
-                                                               "i272"
-                                                               "i270"
-                                                               "i268"
-                                                               "i266"
-                                                               "i264"
-                                                               "i262"
-                                                               "i260"
-                                                               "i258"
-                                                               "i256"
-                                                               "i255"
-                                                               "i253"
-                                                               "i251"
-                                                               "i250"
-                                                               "i249"
-                                                               "i248"
-                                                               "i247"
-                                                               "i245"
-                                                               "i243"
-                                                               "i241"
-                                                               "i238"
-                                                               "i236"
-                                                               "i234"
-                                                               "i232"
-                                                               "i230"
-                                                               "i228"
-                                                               "i226"
-                                                               "i224"
-                                                               "i222"
-                                                               "i220"
-                                                               "i218"
-                                                               "i216"
-                                                               "i214"
-                                                               "i212"
-                                                               "i210"
-                                                               "i208"
-                                                               "i206"
-                                                               "i204"
-                                                               "i202"))
-                                                            #(ribcage
-                                                              (define-structure
-                                                                
define-expansion-accessors
-                                                                
define-expansion-constructors)
-                                                              ((top)
-                                                               (top)
-                                                               (top))
-                                                              ("i40"
-                                                               "i39"
-                                                               "i38")))
-                                                           (hygiene guile))
-                                                         #(syntax-object
-                                                           #f
-                                                           ((top)
-                                                            #(ribcage
-                                                              #(name)
-                                                              #((top))
-                                                              #("i1881"))
-                                                            #(ribcage () () ())
-                                                            #(ribcage () () ())
-                                                            #(ribcage
-                                                              #(ftype
-                                                                fval
-                                                                fe
-                                                                fw
-                                                                fs
-                                                                fmod)
-                                                              #((top)
                                                                 (top)
                                                                 (top)
                                                                 (top)
                                                                 (top)
-                                                                (top))
-                                                              #("i1821"
-                                                                "i1822"
-                                                                "i1823"
-                                                                "i1824"
-                                                                "i1825"
-                                                                "i1826"))
-                                                            #(ribcage () () ())
-                                                            #(ribcage
-                                                              #(first)
-                                                              #((top))
-                                                              #("i1813"))
-                                                            #(ribcage () () ())
-                                                            #(ribcage () () ())
-                                                            #(ribcage () () ())
-                                                            #(ribcage
-                                                              #(e
-                                                                r
-                                                                w
-                                                                s
-                                                                rib
-                                                                mod
-                                                                for-car?)
-                                                              #((top)
                                                                 (top)
                                                                 (top)
                                                                 (top)
                                                                 (top)
                                                                 (top)
-                                                                (top))
-                                                              #("i1785"
-                                                                "i1786"
-                                                                "i1787"
-                                                                "i1788"
-                                                                "i1789"
-                                                                "i1790"
-                                                                "i1791"))
-                                                            #(ribcage
-                                                              (lambda-var-list
-                                                                gen-var
-                                                                strip
-                                                                chi-lambda-case
-                                                                lambda*-formals
-                                                                
chi-simple-lambda
-                                                                lambda-formals
-                                                                ellipsis?
-                                                                chi-void
-                                                                
eval-local-transformer
-                                                                
chi-local-syntax
-                                                                chi-body
-                                                                chi-macro
-                                                                chi-call
-                                                                chi-expr
-                                                                chi
-                                                                syntax-type
-                                                                chi-when-list
-                                                                
chi-install-global
-                                                                
chi-top-sequence
-                                                                chi-sequence
-                                                                source-wrap
-                                                                wrap
-                                                                
bound-id-member?
-                                                                
distinct-bound-ids?
-                                                                
valid-bound-ids?
-                                                                bound-id=?
-                                                                free-id=?
-                                                                id-var-name
-                                                                same-marks?
-                                                                join-marks
-                                                                join-wraps
-                                                                smart-append
-                                                                
make-binding-wrap
-                                                                extend-ribcage!
-                                                                
make-empty-ribcage
-                                                                new-mark
-                                                                anti-mark
-                                                                the-anti-mark
-                                                                top-marked?
-                                                                top-wrap
-                                                                empty-wrap
-                                                                
set-ribcage-labels!
-                                                                
set-ribcage-marks!
-                                                                
set-ribcage-symnames!
-                                                                ribcage-labels
-                                                                ribcage-marks
-                                                                
ribcage-symnames
-                                                                ribcage?
-                                                                make-ribcage
-                                                                gen-labels
-                                                                gen-label
-                                                                make-rename
-                                                                rename-marks
-                                                                rename-new
-                                                                rename-old
-                                                                subst-rename?
-                                                                wrap-subst
-                                                                wrap-marks
-                                                                make-wrap
-                                                                
id-sym-name&marks
-                                                                id-sym-name
-                                                                id?
-                                                                nonsymbol-id?
-                                                                global-extend
-                                                                lookup
-                                                                macros-only-env
-                                                                extend-var-env
-                                                                extend-env
-                                                                null-env
-                                                                binding-value
-                                                                binding-type
-                                                                make-binding
-                                                                arg-check
-                                                                
source-annotation
-                                                                no-source
-                                                                
set-syntax-object-module!
-                                                                
set-syntax-object-wrap!
-                                                                
set-syntax-object-expression!
-                                                                
syntax-object-module
-                                                                
syntax-object-wrap
-                                                                
syntax-object-expression
-                                                                syntax-object?
-                                                                
make-syntax-object
-                                                                
build-lexical-var
-                                                                build-letrec
-                                                                build-named-let
-                                                                build-let
-                                                                build-sequence
-                                                                build-data
-                                                                build-primref
-                                                                build-primcall
-                                                                
build-lambda-case
-                                                                
build-case-lambda
-                                                                
build-simple-lambda
-                                                                
build-global-definition
-                                                                
build-global-assignment
-                                                                
build-global-reference
-                                                                
analyze-variable
-                                                                
build-lexical-assignment
-                                                                
build-lexical-reference
-                                                                build-dynlet
-                                                                
build-conditional
-                                                                build-call
-                                                                build-void
-                                                                
maybe-name-value!
-                                                                decorate-source
-                                                                
get-global-definition-hook
-                                                                
put-global-definition-hook
-                                                                gensym-hook
-                                                                local-eval-hook
-                                                                
top-level-eval-hook
-                                                                fx<
-                                                                fx=
-                                                                fx-
-                                                                fx+
-                                                                
set-lambda-meta!
-                                                                lambda-meta
-                                                                lambda?
-                                                                make-dynlet
-                                                                make-letrec
-                                                                make-let
-                                                                
make-lambda-case
-                                                                make-lambda
-                                                                make-seq
-                                                                make-primcall
-                                                                make-call
-                                                                
make-conditional
-                                                                
make-toplevel-define
-                                                                
make-toplevel-set
-                                                                
make-toplevel-ref
-                                                                make-module-set
-                                                                make-module-ref
-                                                                
make-lexical-set
-                                                                
make-lexical-ref
-                                                                
make-primitive-ref
-                                                                make-const
-                                                                make-void)
-                                                              ((top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top))
-                                                              ("i452"
-                                                               "i450"
-                                                               "i448"
-                                                               "i446"
-                                                               "i444"
-                                                               "i442"
-                                                               "i440"
-                                                               "i438"
-                                                               "i436"
-                                                               "i434"
-                                                               "i432"
-                                                               "i430"
-                                                               "i428"
-                                                               "i426"
-                                                               "i424"
-                                                               "i422"
-                                                               "i420"
-                                                               "i418"
-                                                               "i416"
-                                                               "i414"
-                                                               "i412"
-                                                               "i410"
-                                                               "i408"
-                                                               "i406"
-                                                               "i404"
-                                                               "i402"
-                                                               "i400"
-                                                               "i398"
-                                                               "i396"
-                                                               "i394"
-                                                               "i392"
-                                                               "i390"
-                                                               "i388"
-                                                               "i386"
-                                                               "i384"
-                                                               "i383"
-                                                               "i382"
-                                                               "i380"
-                                                               "i379"
-                                                               "i378"
-                                                               "i377"
-                                                               "i376"
-                                                               "i374"
-                                                               "i372"
-                                                               "i370"
-                                                               "i368"
-                                                               "i366"
-                                                               "i364"
-                                                               "i362"
-                                                               "i360"
-                                                               "i357"
-                                                               "i355"
-                                                               "i354"
-                                                               "i353"
-                                                               "i352"
-                                                               "i351"
-                                                               "i350"
-                                                               "i349"
-                                                               "i348"
-                                                               "i347"
-                                                               "i345"
-                                                               "i344"
-                                                               "i342"
-                                                               "i340"
-                                                               "i338"
-                                                               "i336"
-                                                               "i334"
-                                                               "i332"
-                                                               "i330"
-                                                               "i329"
-                                                               "i328"
-                                                               "i327"
-                                                               "i326"
-                                                               "i325"
-                                                               "i323"
-                                                               "i322"
-                                                               "i320"
-                                                               "i318"
-                                                               "i316"
-                                                               "i314"
-                                                               "i312"
-                                                               "i310"
-                                                               "i308"
-                                                               "i306"
-                                                               "i304"
-                                                               "i302"
-                                                               "i300"
-                                                               "i298"
-                                                               "i296"
-                                                               "i294"
-                                                               "i292"
-                                                               "i290"
-                                                               "i288"
-                                                               "i286"
-                                                               "i284"
-                                                               "i282"
-                                                               "i280"
-                                                               "i278"
-                                                               "i276"
-                                                               "i274"
-                                                               "i272"
-                                                               "i270"
-                                                               "i268"
-                                                               "i266"
-                                                               "i264"
-                                                               "i262"
-                                                               "i260"
-                                                               "i258"
-                                                               "i256"
-                                                               "i255"
-                                                               "i253"
-                                                               "i251"
-                                                               "i250"
-                                                               "i249"
-                                                               "i248"
-                                                               "i247"
-                                                               "i245"
-                                                               "i243"
-                                                               "i241"
-                                                               "i238"
-                                                               "i236"
-                                                               "i234"
-                                                               "i232"
-                                                               "i230"
-                                                               "i228"
-                                                               "i226"
-                                                               "i224"
-                                                               "i222"
-                                                               "i220"
-                                                               "i218"
-                                                               "i216"
-                                                               "i214"
-                                                               "i212"
-                                                               "i210"
-                                                               "i208"
-                                                               "i206"
-                                                               "i204"
-                                                               "i202"))
-                                                            #(ribcage
-                                                              (define-structure
-                                                                
define-expansion-accessors
-                                                                
define-expansion-constructors)
-                                                              ((top)
-                                                               (top)
-                                                               (top))
-                                                              ("i40"
-                                                               "i39"
-                                                               "i38")))
-                                                           (hygiene guile)))
-                                                       '(())
-                                                       #{s 1781}#
-                                                       #{mod 1783}#))
-                                                   #{tmp 1878}#)
-                                                 (syntax-violation
-                                                   #f
-                                                   "source expression failed 
to match any pattern"
-                                                   #{tmp 1847}#))))))))
-                                   (if (memv #{ftype 1815}# '(define-syntax))
-                                     (let ((#{tmp 1885}# #{e 1778}#))
-                                       (let ((#{tmp 1886}#
-                                               ($sc-dispatch
-                                                 #{tmp 1885}#
-                                                 '(_ any any))))
-                                         (if (if #{tmp 1886}#
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top)
+                                                                (top))
+                                                               ("i470"
+                                                                "i468"
+                                                                "i466"
+                                                                "i464"
+                                                                "i462"
+                                                                "i460"
+                                                                "i458"
+                                                                "i456"
+                                                                "i454"
+                                                                "i452"
+                                                                "i450"
+                                                                "i448"
+                                                                "i446"
+                                                                "i444"
+                                                                "i442"
+                                                                "i440"
+                                                                "i438"
+                                                                "i436"
+                                                                "i434"
+                                                                "i432"
+                                                                "i430"
+                                                                "i428"
+                                                                "i426"
+                                                                "i424"
+                                                                "i422"
+                                                                "i420"
+                                                                "i418"
+                                                                "i416"
+                                                                "i414"
+                                                                "i412"
+                                                                "i410"
+                                                                "i408"
+                                                                "i406"
+                                                                "i404"
+                                                                "i402"
+                                                                "i401"
+                                                                "i399"
+                                                                "i396"
+                                                                "i395"
+                                                                "i394"
+                                                                "i392"
+                                                                "i391"
+                                                                "i389"
+                                                                "i387"
+                                                                "i385"
+                                                                "i383"
+                                                                "i381"
+                                                                "i379"
+                                                                "i377"
+                                                                "i375"
+                                                                "i372"
+                                                                "i370"
+                                                                "i369"
+                                                                "i367"
+                                                                "i365"
+                                                                "i363"
+                                                                "i361"
+                                                                "i360"
+                                                                "i359"
+                                                                "i358"
+                                                                "i356"
+                                                                "i355"
+                                                                "i352"
+                                                                "i350"
+                                                                "i348"
+                                                                "i346"
+                                                                "i344"
+                                                                "i342"
+                                                                "i340"
+                                                                "i339"
+                                                                "i338"
+                                                                "i336"
+                                                                "i334"
+                                                                "i333"
+                                                                "i330"
+                                                                "i329"
+                                                                "i327"
+                                                                "i325"
+                                                                "i323"
+                                                                "i321"
+                                                                "i319"
+                                                                "i317"
+                                                                "i315"
+                                                                "i313"
+                                                                "i311"
+                                                                "i308"
+                                                                "i306"
+                                                                "i304"
+                                                                "i302"
+                                                                "i300"
+                                                                "i298"
+                                                                "i296"
+                                                                "i294"
+                                                                "i292"
+                                                                "i290"
+                                                                "i288"
+                                                                "i286"
+                                                                "i284"
+                                                                "i282"
+                                                                "i280"
+                                                                "i278"
+                                                                "i276"
+                                                                "i274"
+                                                                "i272"
+                                                                "i270"
+                                                                "i268"
+                                                                "i266"
+                                                                "i264"
+                                                                "i262"
+                                                                "i261"
+                                                                "i258"
+                                                                "i256"
+                                                                "i255"
+                                                                "i254"
+                                                                "i253"
+                                                                "i252"
+                                                                "i250"
+                                                                "i248"
+                                                                "i246"
+                                                                "i243"
+                                                                "i241"
+                                                                "i239"
+                                                                "i237"
+                                                                "i235"
+                                                                "i233"
+                                                                "i231"
+                                                                "i229"
+                                                                "i227"
+                                                                "i225"
+                                                                "i223"
+                                                                "i221"
+                                                                "i219"
+                                                                "i217"
+                                                                "i215"
+                                                                "i213"
+                                                                "i211"
+                                                                "i209"
+                                                                "i207"))
+                                                             #(ribcage
+                                                               
(define-structure
+                                                                 
define-expansion-accessors
+                                                                 
define-expansion-constructors)
+                                                               ((top)
+                                                                (top)
+                                                                (top))
+                                                               ("i45"
+                                                                "i44"
+                                                                "i43")))
+                                                            (hygiene guile))
+                                                         (#{wrap 427}#
+                                                           (cons #{args 1892}#
+                                                                 (cons #{e1 
1893}#
+                                                                       #{e2 
1894}#))
+                                                           #{w 1799}#
+                                                           #{mod 1802}#))
+                                                   #{s 1800}#)
+                                                 '(())
+                                                 #{s 1800}#
+                                                 #{mod 1802}#))
+                                             #{tmp 1876}#)
+                                           (let ((#{tmp 1897}#
+                                                   ($sc-dispatch
+                                                     #{e 1797}#
+                                                     '(_ any))))
+                                             (if (if #{tmp 1897}#
+                                                   (@apply
+                                                     (lambda (#{name 1899}#)
+                                                       (#{id? 353}#
+                                                         #{name 1899}#))
+                                                     #{tmp 1897}#)
+                                                   #f)
                                                (@apply
-                                                 (lambda (#{name 1889}#
-                                                          #{val 1890}#)
-                                                   (#{id? 343}# #{name 1889}#))
-                                                 #{tmp 1886}#)
-                                               #f)
-                                           (@apply
-                                             (lambda (#{name 1893}#
-                                                      #{val 1894}#)
-                                               (values
-                                                 'define-syntax-form
-                                                 #{name 1893}#
-                                                 #{val 1894}#
-                                                 #{w 1780}#
-                                                 #{s 1781}#
-                                                 #{mod 1783}#))
-                                             #{tmp 1886}#)
-                                           (syntax-violation
-                                             #f
-                                             "source expression failed to 
match any pattern"
-                                             #{tmp 1885}#))))
-                                     (values
-                                       'call
-                                       #f
-                                       #{e 1778}#
-                                       #{w 1780}#
-                                       #{s 1781}#
-                                       #{mod 1783}#))))))))))))))
-           (if (#{syntax-object? 309}# #{e 1778}#)
-             (#{syntax-type 421}#
-               (#{syntax-object-expression 311}# #{e 1778}#)
-               #{r 1779}#
-               (#{join-wraps 391}#
-                 #{w 1780}#
-                 (#{syntax-object-wrap 313}# #{e 1778}#))
-               (let ((#{t 1900}#
-                       (#{source-annotation 324}# #{e 1778}#)))
-                 (if #{t 1900}# #{t 1900}# #{s 1781}#))
-               #{rib 1782}#
-               (let ((#{t 1904}#
-                       (#{syntax-object-module 315}# #{e 1778}#)))
-                 (if #{t 1904}# #{t 1904}# #{mod 1783}#))
-               #{for-car? 1784}#)
-             (if (self-evaluating? #{e 1778}#)
-               (values
-                 'constant
-                 #f
-                 #{e 1778}#
-                 #{w 1780}#
-                 #{s 1781}#
-                 #{mod 1783}#)
-               (values
-                 'other
-                 #f
-                 #{e 1778}#
-                 #{w 1780}#
-                 #{s 1781}#
-                 #{mod 1783}#)))))))
-   (#{chi 423}#
-     (lambda (#{e 1909}# #{r 1910}# #{w 1911}# #{mod 1912}#)
-       (call-with-values
-         (lambda ()
-           (#{syntax-type 421}#
-             #{e 1909}#
-             #{r 1910}#
-             #{w 1911}#
-             (#{source-annotation 324}# #{e 1909}#)
-             #f
-             #{mod 1912}#
-             #f))
-         (lambda (#{type 1917}#
-                  #{value 1918}#
-                  #{e 1919}#
-                  #{w 1920}#
-                  #{s 1921}#
-                  #{mod 1922}#)
-           (#{chi-expr 425}#
-             #{type 1917}#
-             #{value 1918}#
-             #{e 1919}#
-             #{r 1910}#
-             #{w 1920}#
-             #{s 1921}#
-             #{mod 1922}#)))))
-   (#{chi-expr 425}#
-     (lambda (#{type 1929}#
-              #{value 1930}#
-              #{e 1931}#
-              #{r 1932}#
-              #{w 1933}#
-              #{s 1934}#
-              #{mod 1935}#)
-       (if (memv #{type 1929}# '(lexical))
-         (#{build-lexical-reference 273}#
-           'value
-           #{s 1934}#
-           #{e 1931}#
-           #{value 1930}#)
-         (if (memv #{type 1929}# '(core core-form))
-           (#{value 1930}#
-             #{e 1931}#
-             #{r 1932}#
-             #{w 1933}#
-             #{s 1934}#
-             #{mod 1935}#)
-           (if (memv #{type 1929}# '(module-ref))
-             (call-with-values
-               (lambda ()
-                 (#{value 1930}# #{e 1931}# #{r 1932}# #{w 1933}#))
-               (lambda (#{e 1946}#
-                        #{r 1947}#
-                        #{w 1948}#
-                        #{s 1949}#
-                        #{mod 1950}#)
-                 (#{chi 423}#
-                   #{e 1946}#
-                   #{r 1947}#
-                   #{w 1948}#
-                   #{mod 1950}#)))
-             (if (memv #{type 1929}# '(lexical-call))
-               (#{chi-call 427}#
-                 (let ((#{id 1958}# (car #{e 1931}#)))
-                   (#{build-lexical-reference 273}#
-                     'fun
-                     (#{source-annotation 324}# #{id 1958}#)
-                     (if (#{syntax-object? 309}# #{id 1958}#)
-                       (syntax->datum #{id 1958}#)
-                       #{id 1958}#)
-                     #{value 1930}#))
-                 #{e 1931}#
-                 #{r 1932}#
-                 #{w 1933}#
-                 #{s 1934}#
-                 #{mod 1935}#)
-               (if (memv #{type 1929}# '(global-call))
-                 (#{chi-call 427}#
-                   (#{build-global-reference 279}#
-                     (#{source-annotation 324}# (car #{e 1931}#))
-                     (if (#{syntax-object? 309}# #{value 1930}#)
-                       (#{syntax-object-expression 311}# #{value 1930}#)
-                       #{value 1930}#)
-                     (if (#{syntax-object? 309}# #{value 1930}#)
-                       (#{syntax-object-module 315}# #{value 1930}#)
-                       #{mod 1935}#))
-                   #{e 1931}#
-                   #{r 1932}#
-                   #{w 1933}#
-                   #{s 1934}#
-                   #{mod 1935}#)
-                 (if (memv #{type 1929}# '(constant))
-                   (#{build-data 295}#
-                     #{s 1934}#
-                     (#{strip 449}#
-                       (#{source-wrap 411}#
-                         #{e 1931}#
-                         #{w 1933}#
-                         #{s 1934}#
-                         #{mod 1935}#)
-                       '(())))
-                   (if (memv #{type 1929}# '(global))
-                     (#{build-global-reference 279}#
-                       #{s 1934}#
-                       #{value 1930}#
-                       #{mod 1935}#)
-                     (if (memv #{type 1929}# '(call))
-                       (#{chi-call 427}#
-                         (#{chi 423}#
-                           (car #{e 1931}#)
-                           #{r 1932}#
-                           #{w 1933}#
-                           #{mod 1935}#)
-                         #{e 1931}#
-                         #{r 1932}#
-                         #{w 1933}#
-                         #{s 1934}#
-                         #{mod 1935}#)
-                       (if (memv #{type 1929}# '(begin-form))
-                         (let ((#{tmp 1965}# #{e 1931}#))
-                           (let ((#{tmp 1966}#
-                                   ($sc-dispatch
-                                     #{tmp 1965}#
-                                     '(_ any . each-any))))
-                             (if #{tmp 1966}#
-                               (@apply
-                                 (lambda (#{e1 1969}# #{e2 1970}#)
-                                   (#{chi-sequence 413}#
-                                     (cons #{e1 1969}# #{e2 1970}#)
-                                     #{r 1932}#
-                                     #{w 1933}#
-                                     #{s 1934}#
-                                     #{mod 1935}#))
-                                 #{tmp 1966}#)
-                               (syntax-violation
-                                 #f
-                                 "source expression failed to match any 
pattern"
-                                 #{tmp 1965}#))))
-                         (if (memv #{type 1929}# '(local-syntax-form))
-                           (#{chi-local-syntax 433}#
-                             #{value 1930}#
-                             #{e 1931}#
-                             #{r 1932}#
-                             #{w 1933}#
-                             #{s 1934}#
-                             #{mod 1935}#
-                             #{chi-sequence 413}#)
-                           (if (memv #{type 1929}# '(eval-when-form))
-                             (let ((#{tmp 1974}# #{e 1931}#))
-                               (let ((#{tmp 1975}#
-                                       ($sc-dispatch
-                                         #{tmp 1974}#
-                                         '(_ each-any any . each-any))))
-                                 (if #{tmp 1975}#
-                                   (@apply
-                                     (lambda (#{x 1979}#
-                                              #{e1 1980}#
-                                              #{e2 1981}#)
-                                       (let ((#{when-list 1983}#
-                                               (#{chi-when-list 419}#
-                                                 #{e 1931}#
-                                                 #{x 1979}#
-                                                 #{w 1933}#)))
-                                         (if (memq 'eval #{when-list 1983}#)
-                                           (#{chi-sequence 413}#
-                                             (cons #{e1 1980}# #{e2 1981}#)
-                                             #{r 1932}#
-                                             #{w 1933}#
-                                             #{s 1934}#
-                                             #{mod 1935}#)
-                                           (#{chi-void 437}#))))
-                                     #{tmp 1975}#)
-                                   (syntax-violation
-                                     #f
-                                     "source expression failed to match any 
pattern"
-                                     #{tmp 1974}#))))
-                             (if (memv #{type 1929}#
-                                       '(define-form define-syntax-form))
-                               (syntax-violation
-                                 #f
-                                 "definition in expression context"
-                                 #{e 1931}#
-                                 (#{wrap 409}#
-                                   #{value 1930}#
-                                   #{w 1933}#
-                                   #{mod 1935}#))
-                               (if (memv #{type 1929}# '(syntax))
-                                 (syntax-violation
-                                   #f
-                                   "reference to pattern variable outside 
syntax form"
-                                   (#{source-wrap 411}#
-                                     #{e 1931}#
-                                     #{w 1933}#
-                                     #{s 1934}#
-                                     #{mod 1935}#))
-                                 (if (memv #{type 1929}# '(displaced-lexical))
-                                   (syntax-violation
-                                     #f
-                                     "reference to identifier outside its 
scope"
-                                     (#{source-wrap 411}#
-                                       #{e 1931}#
-                                       #{w 1933}#
-                                       #{s 1934}#
-                                       #{mod 1935}#))
-                                   (syntax-violation
-                                     #f
-                                     "unexpected syntax"
-                                     (#{source-wrap 411}#
-                                       #{e 1931}#
-                                       #{w 1933}#
-                                       #{s 1934}#
-                                       #{mod 1935}#))))))))))))))))))
-   (#{chi-call 427}#
-     (lambda (#{x 1990}#
-              #{e 1991}#
-              #{r 1992}#
-              #{w 1993}#
-              #{s 1994}#
-              #{mod 1995}#)
-       (let ((#{tmp 2002}# #{e 1991}#))
-         (let ((#{tmp 2003}#
-                 ($sc-dispatch #{tmp 2002}# '(any . each-any))))
-           (if #{tmp 2003}#
-             (@apply
-               (lambda (#{e0 2006}# #{e1 2007}#)
-                 (#{build-call 267}#
-                   #{s 1994}#
-                   #{x 1990}#
-                   (map (lambda (#{e 2008}#)
-                          (#{chi 423}#
-                            #{e 2008}#
-                            #{r 1992}#
-                            #{w 1993}#
-                            #{mod 1995}#))
-                        #{e1 2007}#)))
-               #{tmp 2003}#)
-             (syntax-violation
-               #f
-               "source expression failed to match any pattern"
-               #{tmp 2002}#))))))
-   (#{chi-macro 429}#
-     (lambda (#{p 2011}#
-              #{e 2012}#
-              #{r 2013}#
-              #{w 2014}#
-              #{s 2015}#
-              #{rib 2016}#
-              #{mod 2017}#)
-       (letrec*
-         ((#{rebuild-macro-output 2026}#
-            (lambda (#{x 2027}# #{m 2028}#)
-              (if (pair? #{x 2027}#)
-                (#{decorate-source 261}#
-                  (cons (#{rebuild-macro-output 2026}#
-                          (car #{x 2027}#)
-                          #{m 2028}#)
-                        (#{rebuild-macro-output 2026}#
-                          (cdr #{x 2027}#)
-                          #{m 2028}#))
-                  #{s 2015}#)
-                (if (#{syntax-object? 309}# #{x 2027}#)
-                  (let ((#{w 2036}#
-                          (#{syntax-object-wrap 313}# #{x 2027}#)))
-                    (let ((#{ms 2039}# (car #{w 2036}#))
-                          (#{s 2040}# (cdr #{w 2036}#)))
-                      (if (if (pair? #{ms 2039}#)
-                            (eq? (car #{ms 2039}#) #f)
-                            #f)
-                        (#{make-syntax-object 307}#
-                          (#{syntax-object-expression 311}# #{x 2027}#)
-                          (cons (cdr #{ms 2039}#)
-                                (if #{rib 2016}#
-                                  (cons #{rib 2016}# (cdr #{s 2040}#))
-                                  (cdr #{s 2040}#)))
-                          (#{syntax-object-module 315}# #{x 2027}#))
-                        (#{make-syntax-object 307}#
-                          (#{decorate-source 261}#
-                            (#{syntax-object-expression 311}# #{x 2027}#)
-                            #{s 2040}#)
-                          (cons (cons #{m 2028}# #{ms 2039}#)
-                                (if #{rib 2016}#
-                                  (cons #{rib 2016}# (cons 'shift #{s 2040}#))
-                                  (cons 'shift #{s 2040}#)))
-                          (#{syntax-object-module 315}# #{x 2027}#)))))
-                  (if (vector? #{x 2027}#)
-                    (let ((#{n 2052}# (vector-length #{x 2027}#)))
-                      (let ((#{v 2054}#
-                              (#{decorate-source 261}#
-                                (make-vector #{n 2052}#)
-                                #{x 2027}#)))
-                        (letrec*
-                          ((#{loop 2057}#
-                             (lambda (#{i 2058}#)
-                               (if (= #{i 2058}# #{n 2052}#)
-                                 (begin (if #f #f) #{v 2054}#)
-                                 (begin
-                                   (vector-set!
-                                     #{v 2054}#
-                                     #{i 2058}#
-                                     (#{rebuild-macro-output 2026}#
-                                       (vector-ref #{x 2027}# #{i 2058}#)
-                                       #{m 2028}#))
-                                   (#{loop 2057}# (#{1+}# #{i 2058}#)))))))
-                          (#{loop 2057}# 0))))
-                    (if (symbol? #{x 2027}#)
-                      (syntax-violation
-                        #f
-                        "encountered raw symbol in macro output"
-                        (#{source-wrap 411}#
-                          #{e 2012}#
-                          #{w 2014}#
-                          (cdr #{w 2014}#)
-                          #{mod 2017}#)
-                        #{x 2027}#)
-                      (#{decorate-source 261}# #{x 2027}# #{s 2015}#))))))))
-         (#{rebuild-macro-output 2026}#
-           (#{p 2011}#
-             (#{source-wrap 411}#
-               #{e 2012}#
-               (#{anti-mark 381}# #{w 2014}#)
-               #{s 2015}#
-               #{mod 2017}#))
-           (gensym "m")))))
-   (#{chi-body 431}#
-     (lambda (#{body 2068}#
-              #{outer-form 2069}#
-              #{r 2070}#
-              #{w 2071}#
-              #{mod 2072}#)
-       (let ((#{r 2080}#
-               (cons '("placeholder" placeholder) #{r 2070}#)))
-         (let ((#{ribcage 2082}#
-                 (#{make-ribcage 361}# '() '() '())))
-           (let ((#{w 2085}#
-                   (cons (car #{w 2071}#)
-                         (cons #{ribcage 2082}# (cdr #{w 2071}#)))))
-             (letrec*
-               ((#{parse 2097}#
-                  (lambda (#{body 2098}#
-                           #{ids 2099}#
-                           #{labels 2100}#
-                           #{var-ids 2101}#
-                           #{vars 2102}#
-                           #{vals 2103}#
-                           #{bindings 2104}#)
-                    (if (null? #{body 2098}#)
-                      (syntax-violation
-                        #f
-                        "no expressions in body"
-                        #{outer-form 2069}#)
-                      (let ((#{e 2109}# (cdr (car #{body 2098}#)))
-                            (#{er 2110}# (car (car #{body 2098}#))))
-                        (call-with-values
-                          (lambda ()
-                            (#{syntax-type 421}#
-                              #{e 2109}#
-                              #{er 2110}#
-                              '(())
-                              (#{source-annotation 324}# #{er 2110}#)
-                              #{ribcage 2082}#
-                              #{mod 2072}#
-                              #f))
-                          (lambda (#{type 2112}#
-                                   #{value 2113}#
-                                   #{e 2114}#
-                                   #{w 2115}#
-                                   #{s 2116}#
-                                   #{mod 2117}#)
-                            (if (memv #{type 2112}# '(define-form))
-                              (let ((#{id 2127}#
-                                      (#{wrap 409}#
-                                        #{value 2113}#
-                                        #{w 2115}#
-                                        #{mod 2117}#))
-                                    (#{label 2128}# (#{gen-label 356}#)))
-                                (let ((#{var 2130}#
-                                        (#{gen-var 451}# #{id 2127}#)))
-                                  (begin
-                                    (#{extend-ribcage! 385}#
-                                      #{ribcage 2082}#
-                                      #{id 2127}#
-                                      #{label 2128}#)
-                                    (#{parse 2097}#
-                                      (cdr #{body 2098}#)
-                                      (cons #{id 2127}# #{ids 2099}#)
-                                      (cons #{label 2128}# #{labels 2100}#)
-                                      (cons #{id 2127}# #{var-ids 2101}#)
-                                      (cons #{var 2130}# #{vars 2102}#)
-                                      (cons (cons #{er 2110}#
-                                                  (#{wrap 409}#
-                                                    #{e 2114}#
-                                                    #{w 2115}#
-                                                    #{mod 2117}#))
-                                            #{vals 2103}#)
-                                      (cons (cons 'lexical #{var 2130}#)
-                                            #{bindings 2104}#)))))
-                              (if (memv #{type 2112}# '(define-syntax-form))
-                                (let ((#{id 2135}#
-                                        (#{wrap 409}#
-                                          #{value 2113}#
-                                          #{w 2115}#
-                                          #{mod 2117}#))
-                                      (#{label 2136}# (#{gen-label 356}#)))
-                                  (begin
-                                    (#{extend-ribcage! 385}#
-                                      #{ribcage 2082}#
-                                      #{id 2135}#
-                                      #{label 2136}#)
-                                    (#{parse 2097}#
-                                      (cdr #{body 2098}#)
-                                      (cons #{id 2135}# #{ids 2099}#)
-                                      (cons #{label 2136}# #{labels 2100}#)
-                                      #{var-ids 2101}#
-                                      #{vars 2102}#
-                                      #{vals 2103}#
-                                      (cons (cons 'macro
-                                                  (cons #{er 2110}#
-                                                        (#{wrap 409}#
-                                                          #{e 2114}#
-                                                          #{w 2115}#
-                                                          #{mod 2117}#)))
-                                            #{bindings 2104}#))))
-                                (if (memv #{type 2112}# '(begin-form))
-                                  (let ((#{tmp 2139}# #{e 2114}#))
-                                    (let ((#{tmp 2140}#
-                                            ($sc-dispatch
-                                              #{tmp 2139}#
-                                              '(_ . each-any))))
-                                      (if #{tmp 2140}#
-                                        (@apply
-                                          (lambda (#{e1 2142}#)
-                                            (#{parse 2097}#
-                                              (letrec*
-                                                ((#{f 2145}#
-                                                   (lambda (#{forms 2146}#)
-                                                     (if (null? #{forms 2146}#)
-                                                       (cdr #{body 2098}#)
-                                                       (cons (cons #{er 2110}#
-                                                                   (#{wrap 
409}#
-                                                                     (car 
#{forms 2146}#)
-                                                                     #{w 2115}#
-                                                                     #{mod 
2117}#))
-                                                             (#{f 2145}#
-                                                               (cdr #{forms 
2146}#)))))))
-                                                (#{f 2145}# #{e1 2142}#))
-                                              #{ids 2099}#
-                                              #{labels 2100}#
-                                              #{var-ids 2101}#
-                                              #{vars 2102}#
-                                              #{vals 2103}#
-                                              #{bindings 2104}#))
-                                          #{tmp 2140}#)
-                                        (syntax-violation
-                                          #f
-                                          "source expression failed to match 
any pattern"
-                                          #{tmp 2139}#))))
-                                  (if (memv #{type 2112}# '(local-syntax-form))
-                                    (#{chi-local-syntax 433}#
-                                      #{value 2113}#
-                                      #{e 2114}#
-                                      #{er 2110}#
-                                      #{w 2115}#
-                                      #{s 2116}#
-                                      #{mod 2117}#
-                                      (lambda (#{forms 2149}#
-                                               #{er 2150}#
-                                               #{w 2151}#
-                                               #{s 2152}#
-                                               #{mod 2153}#)
-                                        (#{parse 2097}#
-                                          (letrec*
-                                            ((#{f 2161}#
-                                               (lambda (#{forms 2162}#)
-                                                 (if (null? #{forms 2162}#)
-                                                   (cdr #{body 2098}#)
-                                                   (cons (cons #{er 2150}#
-                                                               (#{wrap 409}#
-                                                                 (car #{forms 
2162}#)
-                                                                 #{w 2151}#
-                                                                 #{mod 2153}#))
-                                                         (#{f 2161}#
-                                                           (cdr #{forms 
2162}#)))))))
-                                            (#{f 2161}# #{forms 2149}#))
-                                          #{ids 2099}#
-                                          #{labels 2100}#
-                                          #{var-ids 2101}#
-                                          #{vars 2102}#
-                                          #{vals 2103}#
-                                          #{bindings 2104}#)))
-                                    (if (null? #{ids 2099}#)
-                                      (#{build-sequence 297}#
-                                        #f
-                                        (map (lambda (#{x 2165}#)
-                                               (#{chi 423}#
-                                                 (cdr #{x 2165}#)
-                                                 (car #{x 2165}#)
-                                                 '(())
-                                                 #{mod 2117}#))
-                                             (cons (cons #{er 2110}#
-                                                         (#{source-wrap 411}#
-                                                           #{e 2114}#
-                                                           #{w 2115}#
-                                                           #{s 2116}#
-                                                           #{mod 2117}#))
-                                                   (cdr #{body 2098}#))))
-                                      (begin
-                                        (if (not (#{valid-bound-ids? 403}#
-                                                   #{ids 2099}#))
-                                          (syntax-violation
-                                            #f
-                                            "invalid or duplicate identifier 
in definition"
-                                            #{outer-form 2069}#))
-                                        (letrec*
-                                          ((#{loop 2172}#
-                                             (lambda (#{bs 2173}#
-                                                      #{er-cache 2174}#
-                                                      #{r-cache 2175}#)
-                                               (if (not (null? #{bs 2173}#))
-                                                 (let ((#{b 2178}#
-                                                         (car #{bs 2173}#)))
-                                                   (if (eq? (car #{b 2178}#)
-                                                            'macro)
-                                                     (let ((#{er 2181}#
-                                                             (car (cdr #{b 
2178}#))))
-                                                       (let ((#{r-cache 2183}#
-                                                               (if (eq? #{er 
2181}#
-                                                                        
#{er-cache 2174}#)
-                                                                 #{r-cache 
2175}#
-                                                                 
(#{macros-only-env 335}#
-                                                                   #{er 
2181}#))))
-                                                         (begin
-                                                           (set-cdr!
-                                                             #{b 2178}#
-                                                             
(#{eval-local-transformer 435}#
-                                                               (#{chi 423}#
-                                                                 (cdr (cdr #{b 
2178}#))
-                                                                 #{r-cache 
2183}#
-                                                                 '(())
-                                                                 #{mod 2117}#)
-                                                               #{mod 2117}#))
-                                                           (#{loop 2172}#
-                                                             (cdr #{bs 2173}#)
-                                                             #{er 2181}#
-                                                             #{r-cache 
2183}#))))
-                                                     (#{loop 2172}#
-                                                       (cdr #{bs 2173}#)
-                                                       #{er-cache 2174}#
-                                                       #{r-cache 2175}#)))))))
-                                          (#{loop 2172}#
-                                            #{bindings 2104}#
-                                            #f
-                                            #f))
-                                        (set-cdr!
-                                          #{r 2080}#
-                                          (#{extend-env 331}#
-                                            #{labels 2100}#
-                                            #{bindings 2104}#
-                                            (cdr #{r 2080}#)))
-                                        (#{build-letrec 303}#
-                                          #f
-                                          #t
-                                          (reverse
-                                            (map syntax->datum
-                                                 #{var-ids 2101}#))
-                                          (reverse #{vars 2102}#)
-                                          (map (lambda (#{x 2186}#)
-                                                 (#{chi 423}#
-                                                   (cdr #{x 2186}#)
-                                                   (car #{x 2186}#)
-                                                   '(())
-                                                   #{mod 2117}#))
-                                               (reverse #{vals 2103}#))
-                                          (#{build-sequence 297}#
-                                            #f
-                                            (map (lambda (#{x 2190}#)
-                                                   (#{chi 423}#
-                                                     (cdr #{x 2190}#)
-                                                     (car #{x 2190}#)
-                                                     '(())
-                                                     #{mod 2117}#))
-                                                 (cons (cons #{er 2110}#
-                                                             (#{source-wrap 
411}#
-                                                               #{e 2114}#
-                                                               #{w 2115}#
-                                                               #{s 2116}#
-                                                               #{mod 2117}#))
-                                                       (cdr #{body 
2098}#))))))))))))))))))
-               (#{parse 2097}#
-                 (map (lambda (#{x 2105}#)
-                        (cons #{r 2080}#
-                              (#{wrap 409}#
-                                #{x 2105}#
-                                #{w 2085}#
-                                #{mod 2072}#)))
-                      #{body 2068}#)
-                 '()
-                 '()
-                 '()
-                 '()
-                 '()
-                 '())))))))
-   (#{chi-local-syntax 433}#
-     (lambda (#{rec? 2193}#
-              #{e 2194}#
-              #{r 2195}#
-              #{w 2196}#
-              #{s 2197}#
-              #{mod 2198}#
-              #{k 2199}#)
-       (let ((#{tmp 2207}# #{e 2194}#))
-         (let ((#{tmp 2208}#
-                 ($sc-dispatch
-                   #{tmp 2207}#
-                   '(_ #(each (any any)) any . each-any))))
-           (if #{tmp 2208}#
-             (@apply
-               (lambda (#{id 2213}#
-                        #{val 2214}#
-                        #{e1 2215}#
-                        #{e2 2216}#)
-                 (let ((#{ids 2218}# #{id 2213}#))
-                   (if (not (#{valid-bound-ids? 403}# #{ids 2218}#))
-                     (syntax-violation
-                       #f
-                       "duplicate bound keyword"
-                       #{e 2194}#)
-                     (let ((#{labels 2221}#
-                             (#{gen-labels 358}# #{ids 2218}#)))
-                       (let ((#{new-w 2223}#
-                               (#{make-binding-wrap 387}#
-                                 #{ids 2218}#
-                                 #{labels 2221}#
-                                 #{w 2196}#)))
-                         (#{k 2199}#
-                           (cons #{e1 2215}# #{e2 2216}#)
-                           (#{extend-env 331}#
-                             #{labels 2221}#
-                             (let ((#{w 2227}#
-                                     (if #{rec? 2193}#
-                                       #{new-w 2223}#
-                                       #{w 2196}#))
-                                   (#{trans-r 2228}#
-                                     (#{macros-only-env 335}# #{r 2195}#)))
-                               (map (lambda (#{x 2229}#)
-                                      (cons 'macro
-                                            (#{eval-local-transformer 435}#
-                                              (#{chi 423}#
-                                                #{x 2229}#
-                                                #{trans-r 2228}#
-                                                #{w 2227}#
-                                                #{mod 2198}#)
-                                              #{mod 2198}#)))
-                                    #{val 2214}#))
-                             #{r 2195}#)
-                           #{new-w 2223}#
-                           #{s 2197}#
-                           #{mod 2198}#))))))
-               #{tmp 2208}#)
-             (let ((#{_ 2234}# #{tmp 2207}#))
-               (syntax-violation
-                 #f
-                 "bad local syntax definition"
-                 (#{source-wrap 411}#
-                   #{e 2194}#
-                   #{w 2196}#
-                   #{s 2197}#
-                   #{mod 2198}#))))))))
-   (#{eval-local-transformer 435}#
-     (lambda (#{expanded 2235}# #{mod 2236}#)
-       (let ((#{p 2240}#
-               (#{local-eval-hook 254}#
-                 #{expanded 2235}#
-                 #{mod 2236}#)))
-         (if (procedure? #{p 2240}#)
-           #{p 2240}#
-           (syntax-violation
-             #f
-             "nonprocedure transformer"
-             #{p 2240}#)))))
-   (#{chi-void 437}#
-     (lambda () (#{build-void 265}# #f)))
-   (#{ellipsis? 439}#
-     (lambda (#{x 2242}#)
-       (if (#{nonsymbol-id? 341}# #{x 2242}#)
-         (#{free-id=? 399}#
-           #{x 2242}#
-           '#(syntax-object
-              ...
-              ((top)
-               #(ribcage () () ())
-               #(ribcage () () ())
-               #(ribcage #(x) #((top)) #("i2243"))
-               #(ribcage
-                 (lambda-var-list
-                   gen-var
-                   strip
-                   chi-lambda-case
-                   lambda*-formals
-                   chi-simple-lambda
-                   lambda-formals
-                   ellipsis?
-                   chi-void
-                   eval-local-transformer
-                   chi-local-syntax
-                   chi-body
-                   chi-macro
-                   chi-call
-                   chi-expr
-                   chi
-                   syntax-type
-                   chi-when-list
-                   chi-install-global
-                   chi-top-sequence
-                   chi-sequence
-                   source-wrap
-                   wrap
-                   bound-id-member?
-                   distinct-bound-ids?
-                   valid-bound-ids?
-                   bound-id=?
-                   free-id=?
-                   id-var-name
-                   same-marks?
-                   join-marks
-                   join-wraps
-                   smart-append
-                   make-binding-wrap
-                   extend-ribcage!
-                   make-empty-ribcage
-                   new-mark
-                   anti-mark
-                   the-anti-mark
-                   top-marked?
-                   top-wrap
-                   empty-wrap
-                   set-ribcage-labels!
-                   set-ribcage-marks!
-                   set-ribcage-symnames!
-                   ribcage-labels
-                   ribcage-marks
-                   ribcage-symnames
-                   ribcage?
-                   make-ribcage
-                   gen-labels
-                   gen-label
-                   make-rename
-                   rename-marks
-                   rename-new
-                   rename-old
-                   subst-rename?
-                   wrap-subst
-                   wrap-marks
-                   make-wrap
-                   id-sym-name&marks
-                   id-sym-name
-                   id?
-                   nonsymbol-id?
-                   global-extend
-                   lookup
-                   macros-only-env
-                   extend-var-env
-                   extend-env
-                   null-env
-                   binding-value
-                   binding-type
-                   make-binding
-                   arg-check
-                   source-annotation
-                   no-source
-                   set-syntax-object-module!
-                   set-syntax-object-wrap!
-                   set-syntax-object-expression!
-                   syntax-object-module
-                   syntax-object-wrap
-                   syntax-object-expression
-                   syntax-object?
-                   make-syntax-object
-                   build-lexical-var
-                   build-letrec
-                   build-named-let
-                   build-let
-                   build-sequence
-                   build-data
-                   build-primref
-                   build-primcall
-                   build-lambda-case
-                   build-case-lambda
-                   build-simple-lambda
-                   build-global-definition
-                   build-global-assignment
-                   build-global-reference
-                   analyze-variable
-                   build-lexical-assignment
-                   build-lexical-reference
-                   build-dynlet
-                   build-conditional
-                   build-call
-                   build-void
-                   maybe-name-value!
-                   decorate-source
-                   get-global-definition-hook
-                   put-global-definition-hook
-                   gensym-hook
-                   local-eval-hook
-                   top-level-eval-hook
-                   fx<
-                   fx=
-                   fx-
-                   fx+
-                   set-lambda-meta!
-                   lambda-meta
-                   lambda?
-                   make-dynlet
-                   make-letrec
-                   make-let
-                   make-lambda-case
-                   make-lambda
-                   make-seq
-                   make-primcall
-                   make-call
-                   make-conditional
-                   make-toplevel-define
-                   make-toplevel-set
-                   make-toplevel-ref
-                   make-module-set
-                   make-module-ref
-                   make-lexical-set
-                   make-lexical-ref
-                   make-primitive-ref
-                   make-const
-                   make-void)
-                 ((top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top)
-                  (top))
-                 ("i452"
-                  "i450"
-                  "i448"
-                  "i446"
-                  "i444"
-                  "i442"
-                  "i440"
-                  "i438"
-                  "i436"
-                  "i434"
-                  "i432"
-                  "i430"
-                  "i428"
-                  "i426"
-                  "i424"
-                  "i422"
-                  "i420"
-                  "i418"
-                  "i416"
-                  "i414"
-                  "i412"
-                  "i410"
-                  "i408"
-                  "i406"
-                  "i404"
-                  "i402"
-                  "i400"
-                  "i398"
-                  "i396"
-                  "i394"
-                  "i392"
-                  "i390"
-                  "i388"
-                  "i386"
-                  "i384"
-                  "i383"
-                  "i382"
-                  "i380"
-                  "i379"
-                  "i378"
-                  "i377"
-                  "i376"
-                  "i374"
-                  "i372"
-                  "i370"
-                  "i368"
-                  "i366"
-                  "i364"
-                  "i362"
-                  "i360"
-                  "i357"
-                  "i355"
-                  "i354"
-                  "i353"
-                  "i352"
-                  "i351"
-                  "i350"
-                  "i349"
-                  "i348"
-                  "i347"
-                  "i345"
-                  "i344"
-                  "i342"
-                  "i340"
-                  "i338"
-                  "i336"
-                  "i334"
-                  "i332"
-                  "i330"
-                  "i329"
-                  "i328"
-                  "i327"
-                  "i326"
-                  "i325"
-                  "i323"
-                  "i322"
-                  "i320"
-                  "i318"
-                  "i316"
-                  "i314"
-                  "i312"
-                  "i310"
-                  "i308"
-                  "i306"
-                  "i304"
-                  "i302"
-                  "i300"
-                  "i298"
-                  "i296"
-                  "i294"
-                  "i292"
-                  "i290"
-                  "i288"
-                  "i286"
-                  "i284"
-                  "i282"
-                  "i280"
-                  "i278"
-                  "i276"
-                  "i274"
-                  "i272"
-                  "i270"
-                  "i268"
-                  "i266"
-                  "i264"
-                  "i262"
-                  "i260"
-                  "i258"
-                  "i256"
-                  "i255"
-                  "i253"
-                  "i251"
-                  "i250"
-                  "i249"
-                  "i248"
-                  "i247"
-                  "i245"
-                  "i243"
-                  "i241"
-                  "i238"
-                  "i236"
-                  "i234"
-                  "i232"
-                  "i230"
-                  "i228"
-                  "i226"
-                  "i224"
-                  "i222"
-                  "i220"
-                  "i218"
-                  "i216"
-                  "i214"
-                  "i212"
-                  "i210"
-                  "i208"
-                  "i206"
-                  "i204"
-                  "i202"))
-               #(ribcage
-                 (define-structure
-                   define-expansion-accessors
-                   define-expansion-constructors)
-                 ((top) (top) (top))
-                 ("i40" "i39" "i38")))
-              (hygiene guile)))
-         #f)))
-   (#{lambda-formals 441}#
-     (lambda (#{orig-args 2246}#)
-       (letrec*
-         ((#{req 2249}#
-            (lambda (#{args 2252}# #{rreq 2253}#)
-              (let ((#{tmp 2256}# #{args 2252}#))
-                (let ((#{tmp 2257}# ($sc-dispatch #{tmp 2256}# '())))
-                  (if #{tmp 2257}#
-                    (@apply
-                      (lambda ()
-                        (#{check 2251}# (reverse #{rreq 2253}#) #f))
-                      #{tmp 2257}#)
-                    (let ((#{tmp 2258}#
-                            ($sc-dispatch #{tmp 2256}# '(any . any))))
-                      (if (if #{tmp 2258}#
-                            (@apply
-                              (lambda (#{a 2261}# #{b 2262}#)
-                                (#{id? 343}# #{a 2261}#))
-                              #{tmp 2258}#)
-                            #f)
-                        (@apply
-                          (lambda (#{a 2265}# #{b 2266}#)
-                            (#{req 2249}#
-                              #{b 2266}#
-                              (cons #{a 2265}# #{rreq 2253}#)))
-                          #{tmp 2258}#)
-                        (let ((#{tmp 2267}# (list #{tmp 2256}#)))
-                          (if (if #{tmp 2267}#
-                                (@apply
-                                  (lambda (#{r 2269}#)
-                                    (#{id? 343}# #{r 2269}#))
-                                  #{tmp 2267}#)
-                                #f)
-                            (@apply
-                              (lambda (#{r 2271}#)
-                                (#{check 2251}#
-                                  (reverse #{rreq 2253}#)
-                                  #{r 2271}#))
-                              #{tmp 2267}#)
-                            (let ((#{else 2273}# #{tmp 2256}#))
-                              (syntax-violation
-                                'lambda
-                                "invalid argument list"
-                                #{orig-args 2246}#
-                                #{args 2252}#)))))))))))
-          (#{check 2251}#
-            (lambda (#{req 2274}# #{rest 2275}#)
-              (if (#{distinct-bound-ids? 405}#
-                    (if #{rest 2275}#
-                      (cons #{rest 2275}# #{req 2274}#)
-                      #{req 2274}#))
-                (values #{req 2274}# #f #{rest 2275}# #f)
-                (syntax-violation
-                  'lambda
-                  "duplicate identifier in argument list"
-                  #{orig-args 2246}#)))))
-         (#{req 2249}# #{orig-args 2246}# '()))))
-   (#{chi-simple-lambda 443}#
-     (lambda (#{e 2281}#
-              #{r 2282}#
-              #{w 2283}#
-              #{s 2284}#
-              #{mod 2285}#
-              #{req 2286}#
-              #{rest 2287}#
-              #{meta 2288}#
-              #{body 2289}#)
-       (let ((#{ids 2301}#
-               (if #{rest 2287}#
-                 (append #{req 2286}# (list #{rest 2287}#))
-                 #{req 2286}#)))
-         (let ((#{vars 2303}#
-                 (map #{gen-var 451}# #{ids 2301}#)))
-           (let ((#{labels 2305}#
-                   (#{gen-labels 358}# #{ids 2301}#)))
-             (#{build-simple-lambda 285}#
-               #{s 2284}#
-               (map syntax->datum #{req 2286}#)
-               (if #{rest 2287}#
-                 (syntax->datum #{rest 2287}#)
-                 #f)
-               #{vars 2303}#
-               #{meta 2288}#
-               (#{chi-body 431}#
-                 #{body 2289}#
-                 (#{source-wrap 411}#
-                   #{e 2281}#
-                   #{w 2283}#
-                   #{s 2284}#
-                   #{mod 2285}#)
-                 (#{extend-var-env 333}#
-                   #{labels 2305}#
-                   #{vars 2303}#
-                   #{r 2282}#)
-                 (#{make-binding-wrap 387}#
-                   #{ids 2301}#
-                   #{labels 2305}#
-                   #{w 2283}#)
-                 #{mod 2285}#)))))))
-   (#{lambda*-formals 445}#
-     (lambda (#{orig-args 2308}#)
-       (letrec*
-         ((#{req 2311}#
-            (lambda (#{args 2320}# #{rreq 2321}#)
-              (let ((#{tmp 2324}# #{args 2320}#))
-                (let ((#{tmp 2325}# ($sc-dispatch #{tmp 2324}# '())))
-                  (if #{tmp 2325}#
-                    (@apply
-                      (lambda ()
-                        (#{check 2319}#
-                          (reverse #{rreq 2321}#)
-                          '()
-                          #f
-                          '()))
-                      #{tmp 2325}#)
-                    (let ((#{tmp 2326}#
-                            ($sc-dispatch #{tmp 2324}# '(any . any))))
-                      (if (if #{tmp 2326}#
-                            (@apply
-                              (lambda (#{a 2329}# #{b 2330}#)
-                                (#{id? 343}# #{a 2329}#))
-                              #{tmp 2326}#)
-                            #f)
-                        (@apply
-                          (lambda (#{a 2333}# #{b 2334}#)
-                            (#{req 2311}#
-                              #{b 2334}#
-                              (cons #{a 2333}# #{rreq 2321}#)))
-                          #{tmp 2326}#)
-                        (let ((#{tmp 2335}#
-                                ($sc-dispatch #{tmp 2324}# '(any . any))))
-                          (if (if #{tmp 2335}#
-                                (@apply
-                                  (lambda (#{a 2338}# #{b 2339}#)
-                                    (eq? (syntax->datum #{a 2338}#)
-                                         #:optional))
-                                  #{tmp 2335}#)
-                                #f)
-                            (@apply
-                              (lambda (#{a 2342}# #{b 2343}#)
-                                (#{opt 2313}#
-                                  #{b 2343}#
-                                  (reverse #{rreq 2321}#)
-                                  '()))
-                              #{tmp 2335}#)
-                            (let ((#{tmp 2344}#
-                                    ($sc-dispatch #{tmp 2324}# '(any . any))))
-                              (if (if #{tmp 2344}#
-                                    (@apply
-                                      (lambda (#{a 2347}# #{b 2348}#)
-                                        (eq? (syntax->datum #{a 2347}#) #:key))
-                                      #{tmp 2344}#)
-                                    #f)
-                                (@apply
-                                  (lambda (#{a 2351}# #{b 2352}#)
-                                    (#{key 2315}#
-                                      #{b 2352}#
-                                      (reverse #{rreq 2321}#)
-                                      '()
-                                      '()))
-                                  #{tmp 2344}#)
-                                (let ((#{tmp 2353}#
-                                        ($sc-dispatch
-                                          #{tmp 2324}#
-                                          '(any any))))
-                                  (if (if #{tmp 2353}#
-                                        (@apply
-                                          (lambda (#{a 2356}# #{b 2357}#)
-                                            (eq? (syntax->datum #{a 2356}#)
-                                                 #:rest))
-                                          #{tmp 2353}#)
-                                        #f)
-                                    (@apply
-                                      (lambda (#{a 2360}# #{b 2361}#)
-                                        (#{rest 2317}#
-                                          #{b 2361}#
-                                          (reverse #{rreq 2321}#)
-                                          '()
-                                          '()))
-                                      #{tmp 2353}#)
-                                    (let ((#{tmp 2362}# (list #{tmp 2324}#)))
-                                      (if (if #{tmp 2362}#
-                                            (@apply
-                                              (lambda (#{r 2364}#)
-                                                (#{id? 343}# #{r 2364}#))
-                                              #{tmp 2362}#)
-                                            #f)
-                                        (@apply
-                                          (lambda (#{r 2366}#)
-                                            (#{rest 2317}#
-                                              #{r 2366}#
-                                              (reverse #{rreq 2321}#)
-                                              '()
-                                              '()))
-                                          #{tmp 2362}#)
-                                        (let ((#{else 2368}# #{tmp 2324}#))
-                                          (syntax-violation
-                                            'lambda*
-                                            "invalid argument list"
-                                            #{orig-args 2308}#
-                                            #{args 2320}#)))))))))))))))))
-          (#{opt 2313}#
-            (lambda (#{args 2369}# #{req 2370}# #{ropt 2371}#)
-              (let ((#{tmp 2375}# #{args 2369}#))
-                (let ((#{tmp 2376}# ($sc-dispatch #{tmp 2375}# '())))
-                  (if #{tmp 2376}#
-                    (@apply
-                      (lambda ()
-                        (#{check 2319}#
-                          #{req 2370}#
-                          (reverse #{ropt 2371}#)
-                          #f
-                          '()))
-                      #{tmp 2376}#)
-                    (let ((#{tmp 2377}#
-                            ($sc-dispatch #{tmp 2375}# '(any . any))))
-                      (if (if #{tmp 2377}#
-                            (@apply
-                              (lambda (#{a 2380}# #{b 2381}#)
-                                (#{id? 343}# #{a 2380}#))
-                              #{tmp 2377}#)
-                            #f)
-                        (@apply
-                          (lambda (#{a 2384}# #{b 2385}#)
-                            (#{opt 2313}#
-                              #{b 2385}#
-                              #{req 2370}#
-                              (cons (cons #{a 2384}#
-                                          '(#(syntax-object
-                                              #f
-                                              ((top)
-                                               #(ribcage
-                                                 #(a b)
-                                                 #((top) (top))
-                                                 #("i2382" "i2383"))
-                                               #(ribcage () () ())
-                                               #(ribcage
-                                                 #(args req ropt)
-                                                 #((top) (top) (top))
-                                                 #("i2372" "i2373" "i2374"))
-                                               #(ribcage
-                                                 (check rest key opt req)
-                                                 ((top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top))
-                                                 ("i2318"
-                                                  "i2316"
-                                                  "i2314"
-                                                  "i2312"
-                                                  "i2310"))
-                                               #(ribcage
-                                                 #(orig-args)
-                                                 #((top))
-                                                 #("i2309"))
-                                               #(ribcage
-                                                 (lambda-var-list
-                                                   gen-var
-                                                   strip
-                                                   chi-lambda-case
-                                                   lambda*-formals
-                                                   chi-simple-lambda
-                                                   lambda-formals
-                                                   ellipsis?
-                                                   chi-void
-                                                   eval-local-transformer
-                                                   chi-local-syntax
-                                                   chi-body
-                                                   chi-macro
-                                                   chi-call
-                                                   chi-expr
-                                                   chi
-                                                   syntax-type
-                                                   chi-when-list
-                                                   chi-install-global
-                                                   chi-top-sequence
-                                                   chi-sequence
-                                                   source-wrap
-                                                   wrap
-                                                   bound-id-member?
-                                                   distinct-bound-ids?
-                                                   valid-bound-ids?
-                                                   bound-id=?
-                                                   free-id=?
-                                                   id-var-name
-                                                   same-marks?
-                                                   join-marks
-                                                   join-wraps
-                                                   smart-append
-                                                   make-binding-wrap
-                                                   extend-ribcage!
-                                                   make-empty-ribcage
-                                                   new-mark
-                                                   anti-mark
-                                                   the-anti-mark
-                                                   top-marked?
-                                                   top-wrap
-                                                   empty-wrap
-                                                   set-ribcage-labels!
-                                                   set-ribcage-marks!
-                                                   set-ribcage-symnames!
-                                                   ribcage-labels
-                                                   ribcage-marks
-                                                   ribcage-symnames
-                                                   ribcage?
-                                                   make-ribcage
-                                                   gen-labels
-                                                   gen-label
-                                                   make-rename
-                                                   rename-marks
-                                                   rename-new
-                                                   rename-old
-                                                   subst-rename?
-                                                   wrap-subst
-                                                   wrap-marks
-                                                   make-wrap
-                                                   id-sym-name&marks
-                                                   id-sym-name
-                                                   id?
-                                                   nonsymbol-id?
-                                                   global-extend
-                                                   lookup
-                                                   macros-only-env
-                                                   extend-var-env
-                                                   extend-env
-                                                   null-env
-                                                   binding-value
-                                                   binding-type
-                                                   make-binding
-                                                   arg-check
-                                                   source-annotation
-                                                   no-source
-                                                   set-syntax-object-module!
-                                                   set-syntax-object-wrap!
-                                                   
set-syntax-object-expression!
-                                                   syntax-object-module
-                                                   syntax-object-wrap
-                                                   syntax-object-expression
-                                                   syntax-object?
-                                                   make-syntax-object
-                                                   build-lexical-var
-                                                   build-letrec
-                                                   build-named-let
-                                                   build-let
-                                                   build-sequence
-                                                   build-data
-                                                   build-primref
-                                                   build-primcall
-                                                   build-lambda-case
-                                                   build-case-lambda
-                                                   build-simple-lambda
-                                                   build-global-definition
-                                                   build-global-assignment
-                                                   build-global-reference
-                                                   analyze-variable
-                                                   build-lexical-assignment
-                                                   build-lexical-reference
-                                                   build-dynlet
-                                                   build-conditional
-                                                   build-call
-                                                   build-void
-                                                   maybe-name-value!
-                                                   decorate-source
-                                                   get-global-definition-hook
-                                                   put-global-definition-hook
-                                                   gensym-hook
-                                                   local-eval-hook
-                                                   top-level-eval-hook
-                                                   fx<
-                                                   fx=
-                                                   fx-
-                                                   fx+
-                                                   set-lambda-meta!
-                                                   lambda-meta
-                                                   lambda?
-                                                   make-dynlet
-                                                   make-letrec
-                                                   make-let
-                                                   make-lambda-case
-                                                   make-lambda
-                                                   make-seq
-                                                   make-primcall
-                                                   make-call
-                                                   make-conditional
-                                                   make-toplevel-define
-                                                   make-toplevel-set
-                                                   make-toplevel-ref
-                                                   make-module-set
-                                                   make-module-ref
-                                                   make-lexical-set
-                                                   make-lexical-ref
-                                                   make-primitive-ref
-                                                   make-const
-                                                   make-void)
-                                                 ((top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top))
-                                                 ("i452"
-                                                  "i450"
-                                                  "i448"
-                                                  "i446"
-                                                  "i444"
-                                                  "i442"
-                                                  "i440"
-                                                  "i438"
-                                                  "i436"
-                                                  "i434"
-                                                  "i432"
-                                                  "i430"
-                                                  "i428"
-                                                  "i426"
-                                                  "i424"
-                                                  "i422"
-                                                  "i420"
-                                                  "i418"
-                                                  "i416"
-                                                  "i414"
-                                                  "i412"
-                                                  "i410"
-                                                  "i408"
-                                                  "i406"
-                                                  "i404"
-                                                  "i402"
-                                                  "i400"
-                                                  "i398"
-                                                  "i396"
-                                                  "i394"
-                                                  "i392"
-                                                  "i390"
-                                                  "i388"
-                                                  "i386"
-                                                  "i384"
-                                                  "i383"
-                                                  "i382"
-                                                  "i380"
-                                                  "i379"
-                                                  "i378"
-                                                  "i377"
-                                                  "i376"
-                                                  "i374"
-                                                  "i372"
-                                                  "i370"
-                                                  "i368"
-                                                  "i366"
-                                                  "i364"
-                                                  "i362"
-                                                  "i360"
-                                                  "i357"
-                                                  "i355"
-                                                  "i354"
-                                                  "i353"
-                                                  "i352"
-                                                  "i351"
-                                                  "i350"
-                                                  "i349"
-                                                  "i348"
-                                                  "i347"
-                                                  "i345"
-                                                  "i344"
-                                                  "i342"
-                                                  "i340"
-                                                  "i338"
-                                                  "i336"
-                                                  "i334"
-                                                  "i332"
-                                                  "i330"
-                                                  "i329"
-                                                  "i328"
-                                                  "i327"
-                                                  "i326"
-                                                  "i325"
-                                                  "i323"
-                                                  "i322"
-                                                  "i320"
-                                                  "i318"
-                                                  "i316"
-                                                  "i314"
-                                                  "i312"
-                                                  "i310"
-                                                  "i308"
-                                                  "i306"
-                                                  "i304"
-                                                  "i302"
-                                                  "i300"
-                                                  "i298"
-                                                  "i296"
-                                                  "i294"
-                                                  "i292"
-                                                  "i290"
-                                                  "i288"
-                                                  "i286"
-                                                  "i284"
-                                                  "i282"
-                                                  "i280"
-                                                  "i278"
-                                                  "i276"
-                                                  "i274"
-                                                  "i272"
-                                                  "i270"
-                                                  "i268"
-                                                  "i266"
-                                                  "i264"
-                                                  "i262"
-                                                  "i260"
-                                                  "i258"
-                                                  "i256"
-                                                  "i255"
-                                                  "i253"
-                                                  "i251"
-                                                  "i250"
-                                                  "i249"
-                                                  "i248"
-                                                  "i247"
-                                                  "i245"
-                                                  "i243"
-                                                  "i241"
-                                                  "i238"
-                                                  "i236"
-                                                  "i234"
-                                                  "i232"
-                                                  "i230"
-                                                  "i228"
-                                                  "i226"
-                                                  "i224"
-                                                  "i222"
-                                                  "i220"
-                                                  "i218"
-                                                  "i216"
-                                                  "i214"
-                                                  "i212"
-                                                  "i210"
-                                                  "i208"
-                                                  "i206"
-                                                  "i204"
-                                                  "i202"))
-                                               #(ribcage
-                                                 (define-structure
-                                                   define-expansion-accessors
-                                                   
define-expansion-constructors)
-                                                 ((top) (top) (top))
-                                                 ("i40" "i39" "i38")))
-                                              (hygiene guile))))
-                                    #{ropt 2371}#)))
-                          #{tmp 2377}#)
-                        (let ((#{tmp 2386}#
-                                ($sc-dispatch
-                                  #{tmp 2375}#
-                                  '((any any) . any))))
-                          (if (if #{tmp 2386}#
-                                (@apply
-                                  (lambda (#{a 2390}# #{init 2391}# #{b 2392}#)
-                                    (#{id? 343}# #{a 2390}#))
-                                  #{tmp 2386}#)
-                                #f)
-                            (@apply
-                              (lambda (#{a 2396}# #{init 2397}# #{b 2398}#)
-                                (#{opt 2313}#
-                                  #{b 2398}#
-                                  #{req 2370}#
-                                  (cons (list #{a 2396}# #{init 2397}#)
-                                        #{ropt 2371}#)))
-                              #{tmp 2386}#)
-                            (let ((#{tmp 2399}#
-                                    ($sc-dispatch #{tmp 2375}# '(any . any))))
-                              (if (if #{tmp 2399}#
-                                    (@apply
-                                      (lambda (#{a 2402}# #{b 2403}#)
-                                        (eq? (syntax->datum #{a 2402}#) #:key))
-                                      #{tmp 2399}#)
-                                    #f)
-                                (@apply
-                                  (lambda (#{a 2406}# #{b 2407}#)
-                                    (#{key 2315}#
-                                      #{b 2407}#
-                                      #{req 2370}#
-                                      (reverse #{ropt 2371}#)
-                                      '()))
-                                  #{tmp 2399}#)
-                                (let ((#{tmp 2408}#
-                                        ($sc-dispatch
-                                          #{tmp 2375}#
-                                          '(any any))))
-                                  (if (if #{tmp 2408}#
-                                        (@apply
-                                          (lambda (#{a 2411}# #{b 2412}#)
-                                            (eq? (syntax->datum #{a 2411}#)
-                                                 #:rest))
-                                          #{tmp 2408}#)
-                                        #f)
-                                    (@apply
-                                      (lambda (#{a 2415}# #{b 2416}#)
-                                        (#{rest 2317}#
-                                          #{b 2416}#
-                                          #{req 2370}#
-                                          (reverse #{ropt 2371}#)
-                                          '()))
-                                      #{tmp 2408}#)
-                                    (let ((#{tmp 2417}# (list #{tmp 2375}#)))
-                                      (if (if #{tmp 2417}#
-                                            (@apply
-                                              (lambda (#{r 2419}#)
-                                                (#{id? 343}# #{r 2419}#))
-                                              #{tmp 2417}#)
-                                            #f)
-                                        (@apply
-                                          (lambda (#{r 2421}#)
-                                            (#{rest 2317}#
-                                              #{r 2421}#
-                                              #{req 2370}#
-                                              (reverse #{ropt 2371}#)
-                                              '()))
-                                          #{tmp 2417}#)
-                                        (let ((#{else 2423}# #{tmp 2375}#))
-                                          (syntax-violation
-                                            'lambda*
-                                            "invalid optional argument list"
-                                            #{orig-args 2308}#
-                                            #{args 2369}#)))))))))))))))))
-          (#{key 2315}#
-            (lambda (#{args 2424}#
-                     #{req 2425}#
-                     #{opt 2426}#
-                     #{rkey 2427}#)
-              (let ((#{tmp 2432}# #{args 2424}#))
-                (let ((#{tmp 2433}# ($sc-dispatch #{tmp 2432}# '())))
-                  (if #{tmp 2433}#
-                    (@apply
-                      (lambda ()
-                        (#{check 2319}#
-                          #{req 2425}#
-                          #{opt 2426}#
-                          #f
-                          (cons #f (reverse #{rkey 2427}#))))
-                      #{tmp 2433}#)
-                    (let ((#{tmp 2434}#
-                            ($sc-dispatch #{tmp 2432}# '(any . any))))
-                      (if (if #{tmp 2434}#
-                            (@apply
-                              (lambda (#{a 2437}# #{b 2438}#)
-                                (#{id? 343}# #{a 2437}#))
-                              #{tmp 2434}#)
-                            #f)
-                        (@apply
-                          (lambda (#{a 2441}# #{b 2442}#)
-                            (let ((#{tmp 2444}#
-                                    (symbol->keyword
-                                      (syntax->datum #{a 2441}#))))
-                              (let ((#{k 2446}# #{tmp 2444}#))
-                                (#{key 2315}#
-                                  #{b 2442}#
-                                  #{req 2425}#
-                                  #{opt 2426}#
-                                  (cons (cons #{k 2446}#
-                                              (cons #{a 2441}#
-                                                    '(#(syntax-object
-                                                        #f
-                                                        ((top)
-                                                         #(ribcage () () ())
-                                                         #(ribcage
-                                                           #(k)
-                                                           #((top))
-                                                           #("i2445"))
-                                                         #(ribcage
-                                                           #(a b)
-                                                           #((top) (top))
-                                                           #("i2439" "i2440"))
-                                                         #(ribcage () () ())
-                                                         #(ribcage
-                                                           #(args req opt rkey)
-                                                           #((top)
-                                                             (top)
-                                                             (top)
-                                                             (top))
-                                                           #("i2428"
-                                                             "i2429"
-                                                             "i2430"
-                                                             "i2431"))
-                                                         #(ribcage
-                                                           (check rest
-                                                                  key
-                                                                  opt
-                                                                  req)
-                                                           ((top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top))
-                                                           ("i2318"
-                                                            "i2316"
-                                                            "i2314"
-                                                            "i2312"
-                                                            "i2310"))
-                                                         #(ribcage
-                                                           #(orig-args)
-                                                           #((top))
-                                                           #("i2309"))
-                                                         #(ribcage
-                                                           (lambda-var-list
-                                                             gen-var
-                                                             strip
-                                                             chi-lambda-case
-                                                             lambda*-formals
-                                                             chi-simple-lambda
-                                                             lambda-formals
-                                                             ellipsis?
-                                                             chi-void
-                                                             
eval-local-transformer
-                                                             chi-local-syntax
-                                                             chi-body
-                                                             chi-macro
-                                                             chi-call
-                                                             chi-expr
-                                                             chi
-                                                             syntax-type
-                                                             chi-when-list
-                                                             chi-install-global
-                                                             chi-top-sequence
-                                                             chi-sequence
-                                                             source-wrap
-                                                             wrap
-                                                             bound-id-member?
-                                                             
distinct-bound-ids?
-                                                             valid-bound-ids?
-                                                             bound-id=?
-                                                             free-id=?
-                                                             id-var-name
-                                                             same-marks?
-                                                             join-marks
-                                                             join-wraps
-                                                             smart-append
-                                                             make-binding-wrap
-                                                             extend-ribcage!
-                                                             make-empty-ribcage
-                                                             new-mark
-                                                             anti-mark
-                                                             the-anti-mark
-                                                             top-marked?
-                                                             top-wrap
-                                                             empty-wrap
-                                                             
set-ribcage-labels!
-                                                             set-ribcage-marks!
-                                                             
set-ribcage-symnames!
-                                                             ribcage-labels
-                                                             ribcage-marks
-                                                             ribcage-symnames
-                                                             ribcage?
-                                                             make-ribcage
-                                                             gen-labels
-                                                             gen-label
-                                                             make-rename
-                                                             rename-marks
-                                                             rename-new
-                                                             rename-old
-                                                             subst-rename?
-                                                             wrap-subst
-                                                             wrap-marks
-                                                             make-wrap
-                                                             id-sym-name&marks
-                                                             id-sym-name
-                                                             id?
-                                                             nonsymbol-id?
-                                                             global-extend
-                                                             lookup
-                                                             macros-only-env
-                                                             extend-var-env
-                                                             extend-env
-                                                             null-env
-                                                             binding-value
-                                                             binding-type
-                                                             make-binding
-                                                             arg-check
-                                                             source-annotation
-                                                             no-source
-                                                             
set-syntax-object-module!
-                                                             
set-syntax-object-wrap!
-                                                             
set-syntax-object-expression!
-                                                             
syntax-object-module
-                                                             syntax-object-wrap
-                                                             
syntax-object-expression
-                                                             syntax-object?
-                                                             make-syntax-object
-                                                             build-lexical-var
-                                                             build-letrec
-                                                             build-named-let
-                                                             build-let
-                                                             build-sequence
-                                                             build-data
-                                                             build-primref
-                                                             build-primcall
-                                                             build-lambda-case
-                                                             build-case-lambda
-                                                             
build-simple-lambda
-                                                             
build-global-definition
-                                                             
build-global-assignment
-                                                             
build-global-reference
-                                                             analyze-variable
-                                                             
build-lexical-assignment
-                                                             
build-lexical-reference
-                                                             build-dynlet
-                                                             build-conditional
-                                                             build-call
-                                                             build-void
-                                                             maybe-name-value!
-                                                             decorate-source
-                                                             
get-global-definition-hook
-                                                             
put-global-definition-hook
-                                                             gensym-hook
-                                                             local-eval-hook
-                                                             
top-level-eval-hook
-                                                             fx<
-                                                             fx=
-                                                             fx-
-                                                             fx+
-                                                             set-lambda-meta!
-                                                             lambda-meta
-                                                             lambda?
-                                                             make-dynlet
-                                                             make-letrec
-                                                             make-let
-                                                             make-lambda-case
-                                                             make-lambda
-                                                             make-seq
-                                                             make-primcall
-                                                             make-call
-                                                             make-conditional
-                                                             
make-toplevel-define
-                                                             make-toplevel-set
-                                                             make-toplevel-ref
-                                                             make-module-set
-                                                             make-module-ref
-                                                             make-lexical-set
-                                                             make-lexical-ref
-                                                             make-primitive-ref
-                                                             make-const
-                                                             make-void)
-                                                           ((top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top))
-                                                           ("i452"
-                                                            "i450"
-                                                            "i448"
-                                                            "i446"
-                                                            "i444"
-                                                            "i442"
-                                                            "i440"
-                                                            "i438"
-                                                            "i436"
-                                                            "i434"
-                                                            "i432"
-                                                            "i430"
-                                                            "i428"
-                                                            "i426"
-                                                            "i424"
-                                                            "i422"
-                                                            "i420"
-                                                            "i418"
-                                                            "i416"
-                                                            "i414"
-                                                            "i412"
-                                                            "i410"
-                                                            "i408"
-                                                            "i406"
-                                                            "i404"
-                                                            "i402"
-                                                            "i400"
-                                                            "i398"
-                                                            "i396"
-                                                            "i394"
-                                                            "i392"
-                                                            "i390"
-                                                            "i388"
-                                                            "i386"
-                                                            "i384"
-                                                            "i383"
-                                                            "i382"
-                                                            "i380"
-                                                            "i379"
-                                                            "i378"
-                                                            "i377"
-                                                            "i376"
-                                                            "i374"
-                                                            "i372"
-                                                            "i370"
-                                                            "i368"
-                                                            "i366"
-                                                            "i364"
-                                                            "i362"
-                                                            "i360"
-                                                            "i357"
-                                                            "i355"
-                                                            "i354"
-                                                            "i353"
-                                                            "i352"
-                                                            "i351"
-                                                            "i350"
-                                                            "i349"
-                                                            "i348"
-                                                            "i347"
-                                                            "i345"
-                                                            "i344"
-                                                            "i342"
-                                                            "i340"
-                                                            "i338"
-                                                            "i336"
-                                                            "i334"
-                                                            "i332"
-                                                            "i330"
-                                                            "i329"
-                                                            "i328"
-                                                            "i327"
-                                                            "i326"
-                                                            "i325"
-                                                            "i323"
-                                                            "i322"
-                                                            "i320"
-                                                            "i318"
-                                                            "i316"
-                                                            "i314"
-                                                            "i312"
-                                                            "i310"
-                                                            "i308"
-                                                            "i306"
-                                                            "i304"
-                                                            "i302"
-                                                            "i300"
-                                                            "i298"
-                                                            "i296"
-                                                            "i294"
-                                                            "i292"
-                                                            "i290"
-                                                            "i288"
-                                                            "i286"
-                                                            "i284"
-                                                            "i282"
-                                                            "i280"
-                                                            "i278"
-                                                            "i276"
-                                                            "i274"
-                                                            "i272"
-                                                            "i270"
-                                                            "i268"
-                                                            "i266"
-                                                            "i264"
-                                                            "i262"
-                                                            "i260"
-                                                            "i258"
-                                                            "i256"
-                                                            "i255"
-                                                            "i253"
-                                                            "i251"
-                                                            "i250"
-                                                            "i249"
-                                                            "i248"
-                                                            "i247"
-                                                            "i245"
-                                                            "i243"
-                                                            "i241"
-                                                            "i238"
-                                                            "i236"
-                                                            "i234"
-                                                            "i232"
-                                                            "i230"
-                                                            "i228"
-                                                            "i226"
-                                                            "i224"
-                                                            "i222"
-                                                            "i220"
-                                                            "i218"
-                                                            "i216"
-                                                            "i214"
-                                                            "i212"
-                                                            "i210"
-                                                            "i208"
-                                                            "i206"
-                                                            "i204"
-                                                            "i202"))
-                                                         #(ribcage
-                                                           (define-structure
-                                                             
define-expansion-accessors
-                                                             
define-expansion-constructors)
-                                                           ((top) (top) (top))
-                                                           ("i40"
-                                                            "i39"
-                                                            "i38")))
-                                                        (hygiene guile)))))
-                                        #{rkey 2427}#)))))
-                          #{tmp 2434}#)
-                        (let ((#{tmp 2447}#
-                                ($sc-dispatch
-                                  #{tmp 2432}#
-                                  '((any any) . any))))
-                          (if (if #{tmp 2447}#
-                                (@apply
-                                  (lambda (#{a 2451}# #{init 2452}# #{b 2453}#)
-                                    (#{id? 343}# #{a 2451}#))
-                                  #{tmp 2447}#)
-                                #f)
-                            (@apply
-                              (lambda (#{a 2457}# #{init 2458}# #{b 2459}#)
-                                (let ((#{tmp 2461}#
-                                        (symbol->keyword
-                                          (syntax->datum #{a 2457}#))))
-                                  (let ((#{k 2463}# #{tmp 2461}#))
-                                    (#{key 2315}#
-                                      #{b 2459}#
-                                      #{req 2425}#
-                                      #{opt 2426}#
-                                      (cons (list #{k 2463}#
-                                                  #{a 2457}#
-                                                  #{init 2458}#)
-                                            #{rkey 2427}#)))))
-                              #{tmp 2447}#)
-                            (let ((#{tmp 2464}#
-                                    ($sc-dispatch
-                                      #{tmp 2432}#
-                                      '((any any any) . any))))
-                              (if (if #{tmp 2464}#
-                                    (@apply
-                                      (lambda (#{a 2469}#
-                                               #{init 2470}#
-                                               #{k 2471}#
-                                               #{b 2472}#)
-                                        (if (#{id? 343}# #{a 2469}#)
-                                          (keyword? (syntax->datum #{k 2471}#))
-                                          #f))
-                                      #{tmp 2464}#)
-                                    #f)
-                                (@apply
-                                  (lambda (#{a 2479}#
-                                           #{init 2480}#
-                                           #{k 2481}#
-                                           #{b 2482}#)
-                                    (#{key 2315}#
-                                      #{b 2482}#
-                                      #{req 2425}#
-                                      #{opt 2426}#
-                                      (cons (list #{k 2481}#
-                                                  #{a 2479}#
-                                                  #{init 2480}#)
-                                            #{rkey 2427}#)))
-                                  #{tmp 2464}#)
-                                (let ((#{tmp 2483}#
-                                        ($sc-dispatch #{tmp 2432}# '(any))))
-                                  (if (if #{tmp 2483}#
-                                        (@apply
-                                          (lambda (#{aok 2485}#)
-                                            (eq? (syntax->datum #{aok 2485}#)
-                                                 #:allow-other-keys))
-                                          #{tmp 2483}#)
-                                        #f)
-                                    (@apply
-                                      (lambda (#{aok 2487}#)
-                                        (#{check 2319}#
-                                          #{req 2425}#
-                                          #{opt 2426}#
-                                          #f
-                                          (cons #t (reverse #{rkey 2427}#))))
-                                      #{tmp 2483}#)
-                                    (let ((#{tmp 2488}#
-                                            ($sc-dispatch
-                                              #{tmp 2432}#
-                                              '(any any any))))
-                                      (if (if #{tmp 2488}#
-                                            (@apply
-                                              (lambda (#{aok 2492}#
-                                                       #{a 2493}#
-                                                       #{b 2494}#)
-                                                (if (eq? (syntax->datum
-                                                           #{aok 2492}#)
-                                                         #:allow-other-keys)
-                                                  (eq? (syntax->datum
-                                                         #{a 2493}#)
-                                                       #:rest)
-                                                  #f))
-                                              #{tmp 2488}#)
-                                            #f)
-                                        (@apply
-                                          (lambda (#{aok 2500}#
-                                                   #{a 2501}#
-                                                   #{b 2502}#)
-                                            (#{rest 2317}#
-                                              #{b 2502}#
-                                              #{req 2425}#
-                                              #{opt 2426}#
-                                              (cons #t
-                                                    (reverse #{rkey 2427}#))))
-                                          #{tmp 2488}#)
-                                        (let ((#{tmp 2503}#
-                                                ($sc-dispatch
-                                                  #{tmp 2432}#
-                                                  '(any . any))))
-                                          (if (if #{tmp 2503}#
-                                                (@apply
-                                                  (lambda (#{aok 2506}#
-                                                           #{r 2507}#)
-                                                    (if (eq? (syntax->datum
-                                                               #{aok 2506}#)
-                                                             
#:allow-other-keys)
-                                                      (#{id? 343}# #{r 2507}#)
-                                                      #f))
-                                                  #{tmp 2503}#)
-                                                #f)
-                                            (@apply
-                                              (lambda (#{aok 2512}# #{r 2513}#)
-                                                (#{rest 2317}#
-                                                  #{r 2513}#
-                                                  #{req 2425}#
-                                                  #{opt 2426}#
-                                                  (cons #t
-                                                        (reverse
-                                                          #{rkey 2427}#))))
-                                              #{tmp 2503}#)
-                                            (let ((#{tmp 2514}#
-                                                    ($sc-dispatch
-                                                      #{tmp 2432}#
-                                                      '(any any))))
-                                              (if (if #{tmp 2514}#
-                                                    (@apply
-                                                      (lambda (#{a 2517}#
-                                                               #{b 2518}#)
-                                                        (eq? (syntax->datum
-                                                               #{a 2517}#)
-                                                             #:rest))
-                                                      #{tmp 2514}#)
-                                                    #f)
-                                                (@apply
-                                                  (lambda (#{a 2521}#
-                                                           #{b 2522}#)
-                                                    (#{rest 2317}#
-                                                      #{b 2522}#
-                                                      #{req 2425}#
-                                                      #{opt 2426}#
-                                                      (cons #f
-                                                            (reverse
-                                                              #{rkey 2427}#))))
-                                                  #{tmp 2514}#)
-                                                (let ((#{tmp 2523}#
-                                                        (list #{tmp 2432}#)))
-                                                  (if (if #{tmp 2523}#
-                                                        (@apply
-                                                          (lambda (#{r 2525}#)
-                                                            (#{id? 343}#
-                                                              #{r 2525}#))
-                                                          #{tmp 2523}#)
-                                                        #f)
-                                                    (@apply
-                                                      (lambda (#{r 2527}#)
-                                                        (#{rest 2317}#
-                                                          #{r 2527}#
-                                                          #{req 2425}#
-                                                          #{opt 2426}#
-                                                          (cons #f
-                                                                (reverse
-                                                                  #{rkey 
2427}#))))
-                                                      #{tmp 2523}#)
-                                                    (let ((#{else 2529}#
-                                                            #{tmp 2432}#))
-                                                      (syntax-violation
-                                                        'lambda*
-                                                        "invalid keyword 
argument list"
-                                                        #{orig-args 2308}#
-                                                        #{args 
2424}#)))))))))))))))))))))))
-          (#{rest 2317}#
-            (lambda (#{args 2530}#
-                     #{req 2531}#
-                     #{opt 2532}#
-                     #{kw 2533}#)
-              (let ((#{tmp 2538}# #{args 2530}#))
-                (let ((#{tmp 2539}# (list #{tmp 2538}#)))
-                  (if (if #{tmp 2539}#
-                        (@apply
-                          (lambda (#{r 2541}#) (#{id? 343}# #{r 2541}#))
-                          #{tmp 2539}#)
-                        #f)
-                    (@apply
-                      (lambda (#{r 2543}#)
-                        (#{check 2319}#
-                          #{req 2531}#
-                          #{opt 2532}#
-                          #{r 2543}#
-                          #{kw 2533}#))
-                      #{tmp 2539}#)
-                    (let ((#{else 2545}# #{tmp 2538}#))
-                      (syntax-violation
-                        'lambda*
-                        "invalid rest argument"
-                        #{orig-args 2308}#
-                        #{args 2530}#)))))))
-          (#{check 2319}#
-            (lambda (#{req 2546}#
-                     #{opt 2547}#
-                     #{rest 2548}#
-                     #{kw 2549}#)
-              (if (#{distinct-bound-ids? 405}#
-                    (append
-                      #{req 2546}#
-                      (map car #{opt 2547}#)
-                      (if #{rest 2548}# (list #{rest 2548}#) '())
-                      (if (pair? #{kw 2549}#)
-                        (map cadr (cdr #{kw 2549}#))
-                        '())))
-                (values
-                  #{req 2546}#
-                  #{opt 2547}#
-                  #{rest 2548}#
-                  #{kw 2549}#)
-                (syntax-violation
-                  'lambda*
-                  "duplicate identifier in argument list"
-                  #{orig-args 2308}#)))))
-         (#{req 2311}# #{orig-args 2308}# '()))))
-   (#{chi-lambda-case 447}#
-     (lambda (#{e 2557}#
-              #{r 2558}#
-              #{w 2559}#
-              #{s 2560}#
-              #{mod 2561}#
-              #{get-formals 2562}#
-              #{clauses 2563}#)
-       (letrec*
-         ((#{expand-req 2572}#
-            (lambda (#{req 2579}#
-                     #{opt 2580}#
-                     #{rest 2581}#
-                     #{kw 2582}#
-                     #{body 2583}#)
-              (let ((#{vars 2591}#
-                      (map #{gen-var 451}# #{req 2579}#))
-                    (#{labels 2592}#
-                      (#{gen-labels 358}# #{req 2579}#)))
-                (let ((#{r* 2595}#
-                        (#{extend-var-env 333}#
-                          #{labels 2592}#
-                          #{vars 2591}#
-                          #{r 2558}#))
-                      (#{w* 2596}#
-                        (#{make-binding-wrap 387}#
-                          #{req 2579}#
-                          #{labels 2592}#
-                          #{w 2559}#)))
-                  (#{expand-opt 2574}#
-                    (map syntax->datum #{req 2579}#)
-                    #{opt 2580}#
-                    #{rest 2581}#
-                    #{kw 2582}#
-                    #{body 2583}#
-                    (reverse #{vars 2591}#)
-                    #{r* 2595}#
-                    #{w* 2596}#
-                    '()
-                    '())))))
-          (#{expand-opt 2574}#
-            (lambda (#{req 2597}#
-                     #{opt 2598}#
-                     #{rest 2599}#
-                     #{kw 2600}#
-                     #{body 2601}#
-                     #{vars 2602}#
-                     #{r* 2603}#
-                     #{w* 2604}#
-                     #{out 2605}#
-                     #{inits 2606}#)
-              (if (pair? #{opt 2598}#)
-                (let ((#{tmp 2619}# (car #{opt 2598}#)))
-                  (let ((#{tmp 2620}#
-                          ($sc-dispatch #{tmp 2619}# '(any any))))
-                    (if #{tmp 2620}#
-                      (@apply
-                        (lambda (#{id 2623}# #{i 2624}#)
-                          (let ((#{v 2627}# (#{gen-var 451}# #{id 2623}#)))
-                            (let ((#{l 2629}#
-                                    (#{gen-labels 358}# (list #{v 2627}#))))
-                              (let ((#{r** 2631}#
-                                      (#{extend-var-env 333}#
-                                        #{l 2629}#
-                                        (list #{v 2627}#)
-                                        #{r* 2603}#)))
-                                (let ((#{w** 2633}#
-                                        (#{make-binding-wrap 387}#
-                                          (list #{id 2623}#)
-                                          #{l 2629}#
-                                          #{w* 2604}#)))
-                                  (#{expand-opt 2574}#
-                                    #{req 2597}#
-                                    (cdr #{opt 2598}#)
-                                    #{rest 2599}#
-                                    #{kw 2600}#
-                                    #{body 2601}#
-                                    (cons #{v 2627}# #{vars 2602}#)
-                                    #{r** 2631}#
-                                    #{w** 2633}#
-                                    (cons (syntax->datum #{id 2623}#)
-                                          #{out 2605}#)
-                                    (cons (#{chi 423}#
-                                            #{i 2624}#
-                                            #{r* 2603}#
-                                            #{w* 2604}#
-                                            #{mod 2561}#)
-                                          #{inits 2606}#)))))))
-                        #{tmp 2620}#)
-                      (syntax-violation
-                        #f
-                        "source expression failed to match any pattern"
-                        #{tmp 2619}#))))
-                (if #{rest 2599}#
-                  (let ((#{v 2638}# (#{gen-var 451}# #{rest 2599}#)))
-                    (let ((#{l 2640}#
-                            (#{gen-labels 358}# (list #{v 2638}#))))
-                      (let ((#{r* 2642}#
-                              (#{extend-var-env 333}#
-                                #{l 2640}#
-                                (list #{v 2638}#)
-                                #{r* 2603}#)))
-                        (let ((#{w* 2644}#
-                                (#{make-binding-wrap 387}#
-                                  (list #{rest 2599}#)
-                                  #{l 2640}#
-                                  #{w* 2604}#)))
-                          (#{expand-kw 2576}#
-                            #{req 2597}#
-                            (if (pair? #{out 2605}#)
-                              (reverse #{out 2605}#)
-                              #f)
-                            (syntax->datum #{rest 2599}#)
-                            (if (pair? #{kw 2600}#)
-                              (cdr #{kw 2600}#)
-                              #{kw 2600}#)
-                            #{body 2601}#
-                            (cons #{v 2638}# #{vars 2602}#)
-                            #{r* 2642}#
-                            #{w* 2644}#
-                            (if (pair? #{kw 2600}#) (car #{kw 2600}#) #f)
-                            '()
-                            #{inits 2606}#)))))
-                  (#{expand-kw 2576}#
-                    #{req 2597}#
-                    (if (pair? #{out 2605}#)
-                      (reverse #{out 2605}#)
-                      #f)
-                    #f
-                    (if (pair? #{kw 2600}#)
-                      (cdr #{kw 2600}#)
-                      #{kw 2600}#)
-                    #{body 2601}#
-                    #{vars 2602}#
-                    #{r* 2603}#
-                    #{w* 2604}#
-                    (if (pair? #{kw 2600}#) (car #{kw 2600}#) #f)
-                    '()
-                    #{inits 2606}#)))))
-          (#{expand-kw 2576}#
-            (lambda (#{req 2646}#
-                     #{opt 2647}#
-                     #{rest 2648}#
-                     #{kw 2649}#
-                     #{body 2650}#
-                     #{vars 2651}#
-                     #{r* 2652}#
-                     #{w* 2653}#
-                     #{aok 2654}#
-                     #{out 2655}#
-                     #{inits 2656}#)
-              (if (pair? #{kw 2649}#)
-                (let ((#{tmp 2670}# (car #{kw 2649}#)))
-                  (let ((#{tmp 2671}#
-                          ($sc-dispatch #{tmp 2670}# '(any any any))))
-                    (if #{tmp 2671}#
-                      (@apply
-                        (lambda (#{k 2675}# #{id 2676}# #{i 2677}#)
-                          (let ((#{v 2680}# (#{gen-var 451}# #{id 2676}#)))
-                            (let ((#{l 2682}#
-                                    (#{gen-labels 358}# (list #{v 2680}#))))
-                              (let ((#{r** 2684}#
-                                      (#{extend-var-env 333}#
-                                        #{l 2682}#
-                                        (list #{v 2680}#)
-                                        #{r* 2652}#)))
-                                (let ((#{w** 2686}#
-                                        (#{make-binding-wrap 387}#
-                                          (list #{id 2676}#)
-                                          #{l 2682}#
-                                          #{w* 2653}#)))
-                                  (#{expand-kw 2576}#
-                                    #{req 2646}#
-                                    #{opt 2647}#
-                                    #{rest 2648}#
-                                    (cdr #{kw 2649}#)
-                                    #{body 2650}#
-                                    (cons #{v 2680}# #{vars 2651}#)
-                                    #{r** 2684}#
-                                    #{w** 2686}#
-                                    #{aok 2654}#
-                                    (cons (list (syntax->datum #{k 2675}#)
-                                                (syntax->datum #{id 2676}#)
-                                                #{v 2680}#)
-                                          #{out 2655}#)
-                                    (cons (#{chi 423}#
-                                            #{i 2677}#
-                                            #{r* 2652}#
-                                            #{w* 2653}#
-                                            #{mod 2561}#)
-                                          #{inits 2656}#)))))))
-                        #{tmp 2671}#)
-                      (syntax-violation
-                        #f
-                        "source expression failed to match any pattern"
-                        #{tmp 2670}#))))
-                (#{expand-body 2578}#
-                  #{req 2646}#
-                  #{opt 2647}#
-                  #{rest 2648}#
-                  (if (let ((#{t 2690}# #{aok 2654}#))
-                        (if #{t 2690}# #{t 2690}# (pair? #{out 2655}#)))
-                    (cons #{aok 2654}# (reverse #{out 2655}#))
-                    #f)
-                  #{body 2650}#
-                  (reverse #{vars 2651}#)
-                  #{r* 2652}#
-                  #{w* 2653}#
-                  (reverse #{inits 2656}#)
-                  '()))))
-          (#{expand-body 2578}#
-            (lambda (#{req 2692}#
-                     #{opt 2693}#
-                     #{rest 2694}#
-                     #{kw 2695}#
-                     #{body 2696}#
-                     #{vars 2697}#
-                     #{r* 2698}#
-                     #{w* 2699}#
-                     #{inits 2700}#
-                     #{meta 2701}#)
-              (let ((#{tmp 2712}# #{body 2696}#))
-                (let ((#{tmp 2713}#
-                        ($sc-dispatch #{tmp 2712}# '(any any . each-any))))
-                  (if (if #{tmp 2713}#
-                        (@apply
-                          (lambda (#{docstring 2717}# #{e1 2718}# #{e2 2719}#)
-                            (string? (syntax->datum #{docstring 2717}#)))
-                          #{tmp 2713}#)
-                        #f)
-                    (@apply
-                      (lambda (#{docstring 2723}# #{e1 2724}# #{e2 2725}#)
-                        (#{expand-body 2578}#
-                          #{req 2692}#
-                          #{opt 2693}#
-                          #{rest 2694}#
-                          #{kw 2695}#
-                          (cons #{e1 2724}# #{e2 2725}#)
-                          #{vars 2697}#
-                          #{r* 2698}#
-                          #{w* 2699}#
-                          #{inits 2700}#
-                          (append
-                            #{meta 2701}#
-                            (list (cons 'documentation
-                                        (syntax->datum #{docstring 2723}#))))))
-                      #{tmp 2713}#)
-                    (let ((#{tmp 2728}#
-                            ($sc-dispatch
-                              #{tmp 2712}#
-                              '(#(vector #(each (any . any)))
-                                any
-                                .
-                                each-any))))
-                      (if #{tmp 2728}#
-                        (@apply
-                          (lambda (#{k 2733}#
-                                   #{v 2734}#
-                                   #{e1 2735}#
-                                   #{e2 2736}#)
-                            (#{expand-body 2578}#
-                              #{req 2692}#
-                              #{opt 2693}#
-                              #{rest 2694}#
-                              #{kw 2695}#
-                              (cons #{e1 2735}# #{e2 2736}#)
-                              #{vars 2697}#
-                              #{r* 2698}#
-                              #{w* 2699}#
-                              #{inits 2700}#
-                              (append
-                                #{meta 2701}#
-                                (syntax->datum
-                                  (map cons #{k 2733}# #{v 2734}#)))))
-                          #{tmp 2728}#)
-                        (let ((#{tmp 2740}#
-                                ($sc-dispatch #{tmp 2712}# '(any . each-any))))
-                          (if #{tmp 2740}#
-                            (@apply
-                              (lambda (#{e1 2743}# #{e2 2744}#)
-                                (values
-                                  #{meta 2701}#
-                                  #{req 2692}#
-                                  #{opt 2693}#
-                                  #{rest 2694}#
-                                  #{kw 2695}#
-                                  #{inits 2700}#
-                                  #{vars 2697}#
-                                  (#{chi-body 431}#
-                                    (cons #{e1 2743}# #{e2 2744}#)
-                                    (#{source-wrap 411}#
-                                      #{e 2557}#
-                                      #{w 2559}#
-                                      #{s 2560}#
-                                      #{mod 2561}#)
-                                    #{r* 2698}#
-                                    #{w* 2699}#
-                                    #{mod 2561}#)))
-                              #{tmp 2740}#)
-                            (syntax-violation
-                              #f
-                              "source expression failed to match any pattern"
-                              #{tmp 2712}#)))))))))))
-         (let ((#{tmp 2746}# #{clauses 2563}#))
-           (let ((#{tmp 2747}# ($sc-dispatch #{tmp 2746}# '())))
-             (if #{tmp 2747}#
-               (@apply (lambda () (values '() #f)) #{tmp 2747}#)
-               (let ((#{tmp 2748}#
-                       ($sc-dispatch
-                         #{tmp 2746}#
-                         '((any any . each-any)
-                           .
-                           #(each (any any . each-any))))))
-                 (if #{tmp 2748}#
-                   (@apply
-                     (lambda (#{args 2755}#
-                              #{e1 2756}#
-                              #{e2 2757}#
-                              #{args* 2758}#
-                              #{e1* 2759}#
-                              #{e2* 2760}#)
-                       (call-with-values
-                         (lambda () (#{get-formals 2562}# #{args 2755}#))
-                         (lambda (#{req 2761}#
-                                  #{opt 2762}#
-                                  #{rest 2763}#
-                                  #{kw 2764}#)
-                           (call-with-values
-                             (lambda ()
-                               (#{expand-req 2572}#
-                                 #{req 2761}#
-                                 #{opt 2762}#
-                                 #{rest 2763}#
-                                 #{kw 2764}#
-                                 (cons #{e1 2756}# #{e2 2757}#)))
-                             (lambda (#{meta 2770}#
-                                      #{req 2771}#
-                                      #{opt 2772}#
-                                      #{rest 2773}#
-                                      #{kw 2774}#
-                                      #{inits 2775}#
-                                      #{vars 2776}#
-                                      #{body 2777}#)
-                               (call-with-values
-                                 (lambda ()
-                                   (#{chi-lambda-case 447}#
-                                     #{e 2557}#
-                                     #{r 2558}#
-                                     #{w 2559}#
-                                     #{s 2560}#
-                                     #{mod 2561}#
-                                     #{get-formals 2562}#
-                                     (map (lambda (#{tmp 2788}#
-                                                   #{tmp 2787}#
-                                                   #{tmp 2786}#)
-                                            (cons #{tmp 2786}#
-                                                  (cons #{tmp 2787}#
-                                                        #{tmp 2788}#)))
-                                          #{e2* 2760}#
-                                          #{e1* 2759}#
-                                          #{args* 2758}#)))
-                                 (lambda (#{meta* 2790}# #{else* 2791}#)
-                                   (values
-                                     (append #{meta 2770}# #{meta* 2790}#)
-                                     (#{build-lambda-case 289}#
-                                       #{s 2560}#
-                                       #{req 2771}#
-                                       #{opt 2772}#
-                                       #{rest 2773}#
-                                       #{kw 2774}#
-                                       #{inits 2775}#
-                                       #{vars 2776}#
-                                       #{body 2777}#
-                                       #{else* 2791}#)))))))))
-                     #{tmp 2748}#)
-                   (syntax-violation
-                     #f
-                     "source expression failed to match any pattern"
-                     #{tmp 2746}#)))))))))
-   (#{strip 449}#
-     (lambda (#{x 2794}# #{w 2795}#)
-       (if (memq 'top (car #{w 2795}#))
-         #{x 2794}#
-         (letrec*
-           ((#{f 2802}#
-              (lambda (#{x 2803}#)
-                (if (#{syntax-object? 309}# #{x 2803}#)
-                  (#{strip 449}#
-                    (#{syntax-object-expression 311}# #{x 2803}#)
-                    (#{syntax-object-wrap 313}# #{x 2803}#))
-                  (if (pair? #{x 2803}#)
-                    (let ((#{a 2810}# (#{f 2802}# (car #{x 2803}#)))
-                          (#{d 2811}# (#{f 2802}# (cdr #{x 2803}#))))
-                      (if (if (eq? #{a 2810}# (car #{x 2803}#))
-                            (eq? #{d 2811}# (cdr #{x 2803}#))
-                            #f)
-                        #{x 2803}#
-                        (cons #{a 2810}# #{d 2811}#)))
-                    (if (vector? #{x 2803}#)
-                      (let ((#{old 2817}# (vector->list #{x 2803}#)))
-                        (let ((#{new 2819}# (map #{f 2802}# #{old 2817}#)))
-                          (letrec*
-                            ((#{lp 2823}#
-                               (lambda (#{l1 2824}# #{l2 2825}#)
-                                 (if (null? #{l1 2824}#)
-                                   #{x 2803}#
-                                   (if (eq? (car #{l1 2824}#)
-                                            (car #{l2 2825}#))
-                                     (#{lp 2823}#
-                                       (cdr #{l1 2824}#)
-                                       (cdr #{l2 2825}#))
-                                     (list->vector #{new 2819}#))))))
-                            (#{lp 2823}# #{old 2817}# #{new 2819}#))))
-                      #{x 2803}#))))))
-           (#{f 2802}# #{x 2794}#)))))
-   (#{gen-var 451}#
-     (lambda (#{id 2827}#)
-       (let ((#{id 2830}#
-               (if (#{syntax-object? 309}# #{id 2827}#)
-                 (#{syntax-object-expression 311}# #{id 2827}#)
-                 #{id 2827}#)))
-         (gensym
-           (string-append (symbol->string #{id 2830}#) " ")))))
-   (#{lambda-var-list 453}#
-     (lambda (#{vars 2832}#)
-       (letrec*
-         ((#{lvl 2838}#
-            (lambda (#{vars 2839}# #{ls 2840}# #{w 2841}#)
-              (if (pair? #{vars 2839}#)
-                (#{lvl 2838}#
-                  (cdr #{vars 2839}#)
-                  (cons (#{wrap 409}# (car #{vars 2839}#) #{w 2841}# #f)
-                        #{ls 2840}#)
-                  #{w 2841}#)
-                (if (#{id? 343}# #{vars 2839}#)
-                  (cons (#{wrap 409}# #{vars 2839}# #{w 2841}# #f)
-                        #{ls 2840}#)
-                  (if (null? #{vars 2839}#)
-                    #{ls 2840}#
-                    (if (#{syntax-object? 309}# #{vars 2839}#)
-                      (#{lvl 2838}#
-                        (#{syntax-object-expression 311}# #{vars 2839}#)
-                        #{ls 2840}#
-                        (#{join-wraps 391}#
-                          #{w 2841}#
-                          (#{syntax-object-wrap 313}# #{vars 2839}#)))
-                      (cons #{vars 2839}# #{ls 2840}#))))))))
-         (#{lvl 2838}# #{vars 2832}# '() '(()))))))
-  (begin
-    (lambda (#{x 1163}# #{update 1164}#)
-      (vector-set! #{x 1163}# 1 #{update 1164}#))
-    (lambda (#{x 1167}# #{update 1168}#)
-      (vector-set! #{x 1167}# 2 #{update 1168}#))
-    (lambda (#{x 1171}# #{update 1172}#)
-      (vector-set! #{x 1171}# 3 #{update 1172}#))
-    (lambda (#{x 1252}#)
-      (if (vector? #{x 1252}#)
-        (if (= (vector-length #{x 1252}#) 4)
-          (eq? (vector-ref #{x 1252}# 0) 'ribcage)
-          #f)
-        #f))
-    (#{global-extend 339}#
-      'local-syntax
-      'letrec-syntax
-      #t)
-    (#{global-extend 339}#
-      'local-syntax
-      'let-syntax
-      #f)
-    (#{global-extend 339}#
-      'core
-      'fluid-let-syntax
-      (lambda (#{e 2852}#
-               #{r 2853}#
-               #{w 2854}#
-               #{s 2855}#
-               #{mod 2856}#)
-        (let ((#{tmp 2862}# #{e 2852}#))
-          (let ((#{tmp 2863}#
-                  ($sc-dispatch
-                    #{tmp 2862}#
-                    '(_ #(each (any any)) any . each-any))))
-            (if (if #{tmp 2863}#
-                  (@apply
-                    (lambda (#{var 2868}#
-                             #{val 2869}#
-                             #{e1 2870}#
-                             #{e2 2871}#)
-                      (#{valid-bound-ids? 403}# #{var 2868}#))
-                    #{tmp 2863}#)
-                  #f)
-              (@apply
-                (lambda (#{var 2877}#
-                         #{val 2878}#
-                         #{e1 2879}#
-                         #{e2 2880}#)
-                  (let ((#{names 2882}#
-                          (map (lambda (#{x 2883}#)
-                                 (#{id-var-name 397}# #{x 2883}# #{w 2854}#))
-                               #{var 2877}#)))
-                    (begin
-                      (for-each
-                        (lambda (#{id 2886}# #{n 2887}#)
-                          (let ((#{atom-key 2892}#
-                                  (car (#{lookup 337}#
-                                         #{n 2887}#
-                                         #{r 2853}#
-                                         #{mod 2856}#))))
-                            (if (memv #{atom-key 2892}# '(displaced-lexical))
-                              (syntax-violation
-                                'fluid-let-syntax
-                                "identifier out of context"
-                                #{e 2852}#
-                                (#{source-wrap 411}#
-                                  #{id 2886}#
-                                  #{w 2854}#
-                                  #{s 2855}#
-                                  #{mod 2856}#)))))
-                        #{var 2877}#
-                        #{names 2882}#)
-                      (#{chi-body 431}#
-                        (cons #{e1 2879}# #{e2 2880}#)
-                        (#{source-wrap 411}#
-                          #{e 2852}#
-                          #{w 2854}#
-                          #{s 2855}#
-                          #{mod 2856}#)
-                        (#{extend-env 331}#
-                          #{names 2882}#
-                          (let ((#{trans-r 2898}#
-                                  (#{macros-only-env 335}# #{r 2853}#)))
-                            (map (lambda (#{x 2899}#)
-                                   (cons 'macro
-                                         (#{eval-local-transformer 435}#
-                                           (#{chi 423}#
-                                             #{x 2899}#
-                                             #{trans-r 2898}#
-                                             #{w 2854}#
-                                             #{mod 2856}#)
-                                           #{mod 2856}#)))
-                                 #{val 2878}#))
-                          #{r 2853}#)
-                        #{w 2854}#
-                        #{mod 2856}#))))
-                #{tmp 2863}#)
-              (let ((#{_ 2904}# #{tmp 2862}#))
-                (syntax-violation
-                  'fluid-let-syntax
-                  "bad syntax"
-                  (#{source-wrap 411}#
-                    #{e 2852}#
-                    #{w 2854}#
-                    #{s 2855}#
-                    #{mod 2856}#))))))))
-    (#{global-extend 339}#
-      'core
-      'quote
-      (lambda (#{e 2905}#
-               #{r 2906}#
-               #{w 2907}#
-               #{s 2908}#
-               #{mod 2909}#)
-        (let ((#{tmp 2915}# #{e 2905}#))
-          (let ((#{tmp 2916}#
-                  ($sc-dispatch #{tmp 2915}# '(_ any))))
-            (if #{tmp 2916}#
-              (@apply
-                (lambda (#{e 2918}#)
-                  (#{build-data 295}#
-                    #{s 2908}#
-                    (#{strip 449}# #{e 2918}# #{w 2907}#)))
-                #{tmp 2916}#)
-              (let ((#{_ 2920}# #{tmp 2915}#))
-                (syntax-violation
-                  'quote
-                  "bad syntax"
-                  (#{source-wrap 411}#
-                    #{e 2905}#
-                    #{w 2907}#
-                    #{s 2908}#
-                    #{mod 2909}#))))))))
-    (#{global-extend 339}#
-      'core
-      'syntax
-      (letrec*
-        ((#{gen-syntax 2922}#
-           (lambda (#{src 2937}#
-                    #{e 2938}#
-                    #{r 2939}#
-                    #{maps 2940}#
-                    #{ellipsis? 2941}#
-                    #{mod 2942}#)
-             (if (#{id? 343}# #{e 2938}#)
-               (let ((#{label 2950}#
-                       (#{id-var-name 397}# #{e 2938}# '(()))))
-                 (let ((#{b 2953}#
-                         (#{lookup 337}#
-                           #{label 2950}#
-                           #{r 2939}#
-                           #{mod 2942}#)))
-                   (if (eq? (car #{b 2953}#) 'syntax)
-                     (call-with-values
-                       (lambda ()
-                         (let ((#{var.lev 2956}# (cdr #{b 2953}#)))
-                           (#{gen-ref 2924}#
-                             #{src 2937}#
-                             (car #{var.lev 2956}#)
-                             (cdr #{var.lev 2956}#)
-                             #{maps 2940}#)))
-                       (lambda (#{var 2958}# #{maps 2959}#)
-                         (values (list 'ref #{var 2958}#) #{maps 2959}#)))
-                     (if (#{ellipsis? 2941}# #{e 2938}#)
-                       (syntax-violation
-                         'syntax
-                         "misplaced ellipsis"
-                         #{src 2937}#)
-                       (values (list 'quote #{e 2938}#) #{maps 2940}#)))))
-               (let ((#{tmp 2964}# #{e 2938}#))
-                 (let ((#{tmp 2965}#
-                         ($sc-dispatch #{tmp 2964}# '(any any))))
-                   (if (if #{tmp 2965}#
-                         (@apply
-                           (lambda (#{dots 2968}# #{e 2969}#)
-                             (#{ellipsis? 2941}# #{dots 2968}#))
-                           #{tmp 2965}#)
-                         #f)
-                     (@apply
-                       (lambda (#{dots 2972}# #{e 2973}#)
-                         (#{gen-syntax 2922}#
-                           #{src 2937}#
-                           #{e 2973}#
-                           #{r 2939}#
-                           #{maps 2940}#
-                           (lambda (#{x 2974}#) #f)
-                           #{mod 2942}#))
-                       #{tmp 2965}#)
-                     (let ((#{tmp 2976}#
-                             ($sc-dispatch #{tmp 2964}# '(any any . any))))
-                       (if (if #{tmp 2976}#
-                             (@apply
-                               (lambda (#{x 2980}# #{dots 2981}# #{y 2982}#)
-                                 (#{ellipsis? 2941}# #{dots 2981}#))
-                               #{tmp 2976}#)
-                             #f)
-                         (@apply
-                           (lambda (#{x 2986}# #{dots 2987}# #{y 2988}#)
-                             (letrec*
-                               ((#{f 2992}#
-                                  (lambda (#{y 2993}# #{k 2994}#)
-                                    (let ((#{tmp 3001}# #{y 2993}#))
-                                      (let ((#{tmp 3002}#
-                                              ($sc-dispatch
-                                                #{tmp 3001}#
-                                                '(any . any))))
-                                        (if (if #{tmp 3002}#
-                                              (@apply
-                                                (lambda (#{dots 3005}#
-                                                         #{y 3006}#)
-                                                  (#{ellipsis? 2941}#
-                                                    #{dots 3005}#))
-                                                #{tmp 3002}#)
-                                              #f)
-                                          (@apply
-                                            (lambda (#{dots 3009}# #{y 3010}#)
-                                              (#{f 2992}#
-                                                #{y 3010}#
-                                                (lambda (#{maps 3011}#)
-                                                  (call-with-values
-                                                    (lambda ()
-                                                      (#{k 2994}#
-                                                        (cons '()
-                                                              #{maps 3011}#)))
-                                                    (lambda (#{x 3013}#
-                                                             #{maps 3014}#)
-                                                      (if (null? (car #{maps 
3014}#))
-                                                        (syntax-violation
-                                                          'syntax
-                                                          "extra ellipsis"
-                                                          #{src 2937}#)
-                                                        (values
-                                                          (#{gen-mappend 2926}#
-                                                            #{x 3013}#
-                                                            (car #{maps 
3014}#))
-                                                          (cdr #{maps 
3014}#))))))))
-                                            #{tmp 3002}#)
-                                          (let ((#{_ 3018}# #{tmp 3001}#))
-                                            (call-with-values
-                                              (lambda ()
-                                                (#{gen-syntax 2922}#
-                                                  #{src 2937}#
-                                                  #{y 2993}#
-                                                  #{r 2939}#
-                                                  #{maps 2940}#
-                                                  #{ellipsis? 2941}#
-                                                  #{mod 2942}#))
-                                              (lambda (#{y 3019}#
-                                                       #{maps 3020}#)
-                                                (call-with-values
-                                                  (lambda ()
-                                                    (#{k 2994}# #{maps 3020}#))
-                                                  (lambda (#{x 3023}#
-                                                           #{maps 3024}#)
-                                                    (values
-                                                      (#{gen-append 2932}#
-                                                        #{x 3023}#
-                                                        #{y 3019}#)
-                                                      #{maps 3024}#))))))))))))
-                               (#{f 2992}#
-                                 #{y 2988}#
-                                 (lambda (#{maps 2995}#)
-                                   (call-with-values
-                                     (lambda ()
-                                       (#{gen-syntax 2922}#
-                                         #{src 2937}#
-                                         #{x 2986}#
-                                         #{r 2939}#
-                                         (cons '() #{maps 2995}#)
-                                         #{ellipsis? 2941}#
-                                         #{mod 2942}#))
-                                     (lambda (#{x 2997}# #{maps 2998}#)
-                                       (if (null? (car #{maps 2998}#))
-                                         (syntax-violation
-                                           'syntax
-                                           "extra ellipsis"
-                                           #{src 2937}#)
-                                         (values
-                                           (#{gen-map 2928}#
-                                             #{x 2997}#
-                                             (car #{maps 2998}#))
-                                           (cdr #{maps 2998}#)))))))))
-                           #{tmp 2976}#)
-                         (let ((#{tmp 3027}#
-                                 ($sc-dispatch #{tmp 2964}# '(any . any))))
-                           (if #{tmp 3027}#
-                             (@apply
-                               (lambda (#{x 3030}# #{y 3031}#)
-                                 (call-with-values
-                                   (lambda ()
-                                     (#{gen-syntax 2922}#
-                                       #{src 2937}#
-                                       #{x 3030}#
-                                       #{r 2939}#
-                                       #{maps 2940}#
-                                       #{ellipsis? 2941}#
-                                       #{mod 2942}#))
-                                   (lambda (#{x 3032}# #{maps 3033}#)
-                                     (call-with-values
-                                       (lambda ()
-                                         (#{gen-syntax 2922}#
-                                           #{src 2937}#
-                                           #{y 3031}#
-                                           #{r 2939}#
-                                           #{maps 3033}#
-                                           #{ellipsis? 2941}#
-                                           #{mod 2942}#))
-                                       (lambda (#{y 3036}# #{maps 3037}#)
-                                         (values
-                                           (#{gen-cons 2930}#
-                                             #{x 3032}#
-                                             #{y 3036}#)
-                                           #{maps 3037}#))))))
-                               #{tmp 3027}#)
-                             (let ((#{tmp 3040}#
-                                     ($sc-dispatch
-                                       #{tmp 2964}#
-                                       '#(vector (any . each-any)))))
-                               (if #{tmp 3040}#
-                                 (@apply
-                                   (lambda (#{e1 3043}# #{e2 3044}#)
-                                     (call-with-values
-                                       (lambda ()
-                                         (#{gen-syntax 2922}#
-                                           #{src 2937}#
-                                           (cons #{e1 3043}# #{e2 3044}#)
-                                           #{r 2939}#
-                                           #{maps 2940}#
-                                           #{ellipsis? 2941}#
-                                           #{mod 2942}#))
-                                       (lambda (#{e 3046}# #{maps 3047}#)
-                                         (values
-                                           (#{gen-vector 2934}# #{e 3046}#)
-                                           #{maps 3047}#))))
-                                   #{tmp 3040}#)
-                                 (let ((#{_ 3051}# #{tmp 2964}#))
-                                   (values
-                                     (list 'quote #{e 2938}#)
-                                     #{maps 2940}#))))))))))))))
-         (#{gen-ref 2924}#
-           (lambda (#{src 3053}#
-                    #{var 3054}#
-                    #{level 3055}#
-                    #{maps 3056}#)
-             (if (= #{level 3055}# 0)
-               (values #{var 3054}# #{maps 3056}#)
-               (if (null? #{maps 3056}#)
-                 (syntax-violation
-                   'syntax
-                   "missing ellipsis"
-                   #{src 3053}#)
-                 (call-with-values
-                   (lambda ()
-                     (#{gen-ref 2924}#
-                       #{src 3053}#
-                       #{var 3054}#
-                       (#{1-}# #{level 3055}#)
-                       (cdr #{maps 3056}#)))
-                   (lambda (#{outer-var 3063}# #{outer-maps 3064}#)
-                     (let ((#{b 3068}#
-                             (assq #{outer-var 3063}# (car #{maps 3056}#))))
-                       (if #{b 3068}#
-                         (values (cdr #{b 3068}#) #{maps 3056}#)
-                         (let ((#{inner-var 3070}# (#{gen-var 451}# 'tmp)))
-                           (values
-                             #{inner-var 3070}#
-                             (cons (cons (cons #{outer-var 3063}#
-                                               #{inner-var 3070}#)
-                                         (car #{maps 3056}#))
-                                   #{outer-maps 3064}#)))))))))))
-         (#{gen-mappend 2926}#
-           (lambda (#{e 3071}# #{map-env 3072}#)
-             (list 'apply
-                   '(primitive append)
-                   (#{gen-map 2928}# #{e 3071}# #{map-env 3072}#))))
-         (#{gen-map 2928}#
-           (lambda (#{e 3076}# #{map-env 3077}#)
-             (let ((#{formals 3082}# (map cdr #{map-env 3077}#))
-                   (#{actuals 3083}#
-                     (map (lambda (#{x 3084}#)
-                            (list 'ref (car #{x 3084}#)))
-                          #{map-env 3077}#)))
-               (if (eq? (car #{e 3076}#) 'ref)
-                 (car #{actuals 3083}#)
-                 (if (and-map
-                       (lambda (#{x 3091}#)
-                         (if (eq? (car #{x 3091}#) 'ref)
-                           (memq (car (cdr #{x 3091}#)) #{formals 3082}#)
-                           #f))
-                       (cdr #{e 3076}#))
-                   (cons 'map
-                         (cons (list 'primitive (car #{e 3076}#))
-                               (map (let ((#{r 3097}#
-                                            (map cons
-                                                 #{formals 3082}#
-                                                 #{actuals 3083}#)))
-                                      (lambda (#{x 3098}#)
-                                        (cdr (assq (car (cdr #{x 3098}#))
-                                                   #{r 3097}#))))
-                                    (cdr #{e 3076}#))))
-                   (cons 'map
-                         (cons (list 'lambda #{formals 3082}# #{e 3076}#)
-                               #{actuals 3083}#)))))))
-         (#{gen-cons 2930}#
-           (lambda (#{x 3102}# #{y 3103}#)
-             (let ((#{atom-key 3108}# (car #{y 3103}#)))
-               (if (memv #{atom-key 3108}# '(quote))
-                 (if (eq? (car #{x 3102}#) 'quote)
-                   (list 'quote
-                         (cons (car (cdr #{x 3102}#))
-                               (car (cdr #{y 3103}#))))
-                   (if (eq? (car (cdr #{y 3103}#)) '())
-                     (list 'list #{x 3102}#)
-                     (list 'cons #{x 3102}# #{y 3103}#)))
-                 (if (memv #{atom-key 3108}# '(list))
-                   (cons 'list (cons #{x 3102}# (cdr #{y 3103}#)))
-                   (list 'cons #{x 3102}# #{y 3103}#))))))
-         (#{gen-append 2932}#
-           (lambda (#{x 3117}# #{y 3118}#)
-             (if (equal? #{y 3118}# ''())
-               #{x 3117}#
-               (list 'append #{x 3117}# #{y 3118}#))))
-         (#{gen-vector 2934}#
-           (lambda (#{x 3122}#)
-             (if (eq? (car #{x 3122}#) 'list)
-               (cons 'vector (cdr #{x 3122}#))
-               (if (eq? (car #{x 3122}#) 'quote)
-                 (list 'quote
-                       (list->vector (car (cdr #{x 3122}#))))
-                 (list 'list->vector #{x 3122}#)))))
-         (#{regen 2936}#
-           (lambda (#{x 3132}#)
-             (let ((#{atom-key 3136}# (car #{x 3132}#)))
-               (if (memv #{atom-key 3136}# '(ref))
-                 (#{build-lexical-reference 273}#
-                   'value
-                   #f
-                   (car (cdr #{x 3132}#))
-                   (car (cdr #{x 3132}#)))
-                 (if (memv #{atom-key 3136}# '(primitive))
-                   (#{build-primref 293}# #f (car (cdr #{x 3132}#)))
-                   (if (memv #{atom-key 3136}# '(quote))
-                     (#{build-data 295}# #f (car (cdr #{x 3132}#)))
-                     (if (memv #{atom-key 3136}# '(lambda))
-                       (if (list? (car (cdr #{x 3132}#)))
-                         (#{build-simple-lambda 285}#
-                           #f
-                           (car (cdr #{x 3132}#))
-                           #f
-                           (car (cdr #{x 3132}#))
-                           '()
-                           (#{regen 2936}# (car (cdr (cdr #{x 3132}#)))))
-                         (error "how did we get here" #{x 3132}#))
-                       (#{build-primcall 291}#
-                         #f
-                         (car #{x 3132}#)
-                         (map #{regen 2936}# (cdr #{x 3132}#)))))))))))
-        (lambda (#{e 3147}#
-                 #{r 3148}#
-                 #{w 3149}#
-                 #{s 3150}#
-                 #{mod 3151}#)
-          (let ((#{e 3158}#
-                  (#{source-wrap 411}#
-                    #{e 3147}#
-                    #{w 3149}#
-                    #{s 3150}#
-                    #{mod 3151}#)))
-            (let ((#{tmp 3159}# #{e 3158}#))
-              (let ((#{tmp 3160}#
-                      ($sc-dispatch #{tmp 3159}# '(_ any))))
-                (if #{tmp 3160}#
-                  (@apply
-                    (lambda (#{x 3162}#)
-                      (call-with-values
-                        (lambda ()
-                          (#{gen-syntax 2922}#
-                            #{e 3158}#
-                            #{x 3162}#
-                            #{r 3148}#
-                            '()
-                            #{ellipsis? 439}#
-                            #{mod 3151}#))
-                        (lambda (#{e 3163}# #{maps 3164}#)
-                          (#{regen 2936}# #{e 3163}#))))
-                    #{tmp 3160}#)
-                  (let ((#{_ 3168}# #{tmp 3159}#))
-                    (syntax-violation
-                      'syntax
-                      "bad `syntax' form"
-                      #{e 3158}#)))))))))
-    (#{global-extend 339}#
-      'core
-      'lambda
-      (lambda (#{e 3169}#
-               #{r 3170}#
-               #{w 3171}#
-               #{s 3172}#
-               #{mod 3173}#)
-        (let ((#{tmp 3179}# #{e 3169}#))
-          (let ((#{tmp 3180}#
-                  ($sc-dispatch
-                    #{tmp 3179}#
-                    '(_ any any . each-any))))
-            (if #{tmp 3180}#
-              (@apply
-                (lambda (#{args 3184}# #{e1 3185}# #{e2 3186}#)
-                  (call-with-values
-                    (lambda ()
-                      (#{lambda-formals 441}# #{args 3184}#))
-                    (lambda (#{req 3187}#
-                             #{opt 3188}#
-                             #{rest 3189}#
-                             #{kw 3190}#)
-                      (letrec*
-                        ((#{lp 3198}#
-                           (lambda (#{body 3199}# #{meta 3200}#)
-                             (let ((#{tmp 3202}# #{body 3199}#))
-                               (let ((#{tmp 3203}#
-                                       ($sc-dispatch
-                                         #{tmp 3202}#
-                                         '(any any . each-any))))
-                                 (if (if #{tmp 3203}#
-                                       (@apply
-                                         (lambda (#{docstring 3207}#
-                                                  #{e1 3208}#
-                                                  #{e2 3209}#)
-                                           (string?
-                                             (syntax->datum
-                                               #{docstring 3207}#)))
-                                         #{tmp 3203}#)
-                                       #f)
-                                   (@apply
-                                     (lambda (#{docstring 3213}#
-                                              #{e1 3214}#
-                                              #{e2 3215}#)
-                                       (#{lp 3198}#
-                                         (cons #{e1 3214}# #{e2 3215}#)
-                                         (append
-                                           #{meta 3200}#
-                                           (list (cons 'documentation
-                                                       (syntax->datum
-                                                         #{docstring 
3213}#))))))
-                                     #{tmp 3203}#)
-                                   (let ((#{tmp 3218}#
-                                           ($sc-dispatch
-                                             #{tmp 3202}#
-                                             '(#(vector #(each (any . any)))
-                                               any
-                                               .
-                                               each-any))))
-                                     (if #{tmp 3218}#
-                                       (@apply
-                                         (lambda (#{k 3223}#
-                                                  #{v 3224}#
-                                                  #{e1 3225}#
-                                                  #{e2 3226}#)
-                                           (#{lp 3198}#
-                                             (cons #{e1 3225}# #{e2 3226}#)
-                                             (append
-                                               #{meta 3200}#
-                                               (syntax->datum
-                                                 (map cons
-                                                      #{k 3223}#
-                                                      #{v 3224}#)))))
-                                         #{tmp 3218}#)
-                                       (let ((#{_ 3231}# #{tmp 3202}#))
-                                         (#{chi-simple-lambda 443}#
-                                           #{e 3169}#
-                                           #{r 3170}#
-                                           #{w 3171}#
-                                           #{s 3172}#
-                                           #{mod 3173}#
-                                           #{req 3187}#
-                                           #{rest 3189}#
-                                           #{meta 3200}#
-                                           #{body 3199}#))))))))))
-                        (#{lp 3198}# (cons #{e1 3185}# #{e2 3186}#) '())))))
-                #{tmp 3180}#)
-              (let ((#{_ 3233}# #{tmp 3179}#))
-                (syntax-violation
-                  'lambda
-                  "bad lambda"
-                  #{e 3169}#)))))))
-    (#{global-extend 339}#
-      'core
-      'lambda*
-      (lambda (#{e 3234}#
-               #{r 3235}#
-               #{w 3236}#
-               #{s 3237}#
-               #{mod 3238}#)
-        (let ((#{tmp 3244}# #{e 3234}#))
-          (let ((#{tmp 3245}#
-                  ($sc-dispatch
-                    #{tmp 3244}#
-                    '(_ any any . each-any))))
-            (if #{tmp 3245}#
-              (@apply
-                (lambda (#{args 3249}# #{e1 3250}# #{e2 3251}#)
-                  (call-with-values
-                    (lambda ()
-                      (#{chi-lambda-case 447}#
-                        #{e 3234}#
-                        #{r 3235}#
-                        #{w 3236}#
-                        #{s 3237}#
-                        #{mod 3238}#
-                        #{lambda*-formals 445}#
-                        (list (cons #{args 3249}#
-                                    (cons #{e1 3250}# #{e2 3251}#)))))
-                    (lambda (#{meta 3253}# #{lcase 3254}#)
-                      (#{build-case-lambda 287}#
-                        #{s 3237}#
-                        #{meta 3253}#
-                        #{lcase 3254}#))))
-                #{tmp 3245}#)
-              (let ((#{_ 3258}# #{tmp 3244}#))
-                (syntax-violation
-                  'lambda
-                  "bad lambda*"
-                  #{e 3234}#)))))))
-    (#{global-extend 339}#
-      'core
-      'case-lambda
-      (lambda (#{e 3259}#
-               #{r 3260}#
-               #{w 3261}#
-               #{s 3262}#
-               #{mod 3263}#)
-        (let ((#{tmp 3269}# #{e 3259}#))
-          (let ((#{tmp 3270}#
-                  ($sc-dispatch
-                    #{tmp 3269}#
-                    '(_ (any any . each-any)
-                        .
-                        #(each (any any . each-any))))))
-            (if #{tmp 3270}#
-              (@apply
-                (lambda (#{args 3277}#
-                         #{e1 3278}#
-                         #{e2 3279}#
-                         #{args* 3280}#
-                         #{e1* 3281}#
-                         #{e2* 3282}#)
-                  (call-with-values
-                    (lambda ()
-                      (#{chi-lambda-case 447}#
-                        #{e 3259}#
-                        #{r 3260}#
-                        #{w 3261}#
-                        #{s 3262}#
-                        #{mod 3263}#
-                        #{lambda-formals 441}#
-                        (cons (cons #{args 3277}#
-                                    (cons #{e1 3278}# #{e2 3279}#))
-                              (map (lambda (#{tmp 3286}#
-                                            #{tmp 3285}#
-                                            #{tmp 3284}#)
-                                     (cons #{tmp 3284}#
-                                           (cons #{tmp 3285}# #{tmp 3286}#)))
-                                   #{e2* 3282}#
-                                   #{e1* 3281}#
-                                   #{args* 3280}#))))
-                    (lambda (#{meta 3288}# #{lcase 3289}#)
-                      (#{build-case-lambda 287}#
-                        #{s 3262}#
-                        #{meta 3288}#
-                        #{lcase 3289}#))))
-                #{tmp 3270}#)
-              (let ((#{_ 3293}# #{tmp 3269}#))
-                (syntax-violation
-                  'case-lambda
-                  "bad case-lambda"
-                  #{e 3259}#)))))))
-    (#{global-extend 339}#
-      'core
-      'case-lambda*
-      (lambda (#{e 3294}#
-               #{r 3295}#
-               #{w 3296}#
-               #{s 3297}#
-               #{mod 3298}#)
-        (let ((#{tmp 3304}# #{e 3294}#))
-          (let ((#{tmp 3305}#
-                  ($sc-dispatch
-                    #{tmp 3304}#
-                    '(_ (any any . each-any)
-                        .
-                        #(each (any any . each-any))))))
-            (if #{tmp 3305}#
-              (@apply
-                (lambda (#{args 3312}#
-                         #{e1 3313}#
-                         #{e2 3314}#
-                         #{args* 3315}#
-                         #{e1* 3316}#
-                         #{e2* 3317}#)
-                  (call-with-values
-                    (lambda ()
-                      (#{chi-lambda-case 447}#
-                        #{e 3294}#
-                        #{r 3295}#
-                        #{w 3296}#
-                        #{s 3297}#
-                        #{mod 3298}#
-                        #{lambda*-formals 445}#
-                        (cons (cons #{args 3312}#
-                                    (cons #{e1 3313}# #{e2 3314}#))
-                              (map (lambda (#{tmp 3321}#
-                                            #{tmp 3320}#
-                                            #{tmp 3319}#)
-                                     (cons #{tmp 3319}#
-                                           (cons #{tmp 3320}# #{tmp 3321}#)))
-                                   #{e2* 3317}#
-                                   #{e1* 3316}#
-                                   #{args* 3315}#))))
-                    (lambda (#{meta 3323}# #{lcase 3324}#)
-                      (#{build-case-lambda 287}#
-                        #{s 3297}#
-                        #{meta 3323}#
-                        #{lcase 3324}#))))
-                #{tmp 3305}#)
-              (let ((#{_ 3328}# #{tmp 3304}#))
-                (syntax-violation
-                  'case-lambda
-                  "bad case-lambda*"
-                  #{e 3294}#)))))))
-    (#{global-extend 339}#
-      'core
-      'let
-      (letrec*
-        ((#{chi-let 3330}#
-           (lambda (#{e 3331}#
-                    #{r 3332}#
-                    #{w 3333}#
-                    #{s 3334}#
-                    #{mod 3335}#
-                    #{constructor 3336}#
-                    #{ids 3337}#
-                    #{vals 3338}#
-                    #{exps 3339}#)
-             (if (not (#{valid-bound-ids? 403}# #{ids 3337}#))
-               (syntax-violation
-                 'let
-                 "duplicate bound variable"
-                 #{e 3331}#)
-               (let ((#{labels 3351}#
-                       (#{gen-labels 358}# #{ids 3337}#))
-                     (#{new-vars 3352}#
-                       (map #{gen-var 451}# #{ids 3337}#)))
-                 (let ((#{nw 3355}#
-                         (#{make-binding-wrap 387}#
-                           #{ids 3337}#
-                           #{labels 3351}#
-                           #{w 3333}#))
-                       (#{nr 3356}#
-                         (#{extend-var-env 333}#
-                           #{labels 3351}#
-                           #{new-vars 3352}#
-                           #{r 3332}#)))
-                   (#{constructor 3336}#
-                     #{s 3334}#
-                     (map syntax->datum #{ids 3337}#)
-                     #{new-vars 3352}#
-                     (map (lambda (#{x 3357}#)
-                            (#{chi 423}#
-                              #{x 3357}#
-                              #{r 3332}#
-                              #{w 3333}#
-                              #{mod 3335}#))
-                          #{vals 3338}#)
-                     (#{chi-body 431}#
-                       #{exps 3339}#
-                       (#{source-wrap 411}#
-                         #{e 3331}#
-                         #{nw 3355}#
-                         #{s 3334}#
-                         #{mod 3335}#)
-                       #{nr 3356}#
-                       #{nw 3355}#
-                       #{mod 3335}#))))))))
-        (lambda (#{e 3359}#
-                 #{r 3360}#
-                 #{w 3361}#
-                 #{s 3362}#
-                 #{mod 3363}#)
-          (let ((#{tmp 3369}# #{e 3359}#))
-            (let ((#{tmp 3370}#
-                    ($sc-dispatch
-                      #{tmp 3369}#
-                      '(_ #(each (any any)) any . each-any))))
-              (if (if #{tmp 3370}#
-                    (@apply
-                      (lambda (#{id 3375}#
-                               #{val 3376}#
-                               #{e1 3377}#
-                               #{e2 3378}#)
-                        (and-map #{id? 343}# #{id 3375}#))
-                      #{tmp 3370}#)
-                    #f)
-                (@apply
-                  (lambda (#{id 3384}#
-                           #{val 3385}#
-                           #{e1 3386}#
-                           #{e2 3387}#)
-                    (#{chi-let 3330}#
-                      #{e 3359}#
-                      #{r 3360}#
-                      #{w 3361}#
-                      #{s 3362}#
-                      #{mod 3363}#
-                      #{build-let 299}#
-                      #{id 3384}#
-                      #{val 3385}#
-                      (cons #{e1 3386}# #{e2 3387}#)))
-                  #{tmp 3370}#)
-                (let ((#{tmp 3391}#
-                        ($sc-dispatch
-                          #{tmp 3369}#
-                          '(_ any #(each (any any)) any . each-any))))
-                  (if (if #{tmp 3391}#
-                        (@apply
-                          (lambda (#{f 3397}#
-                                   #{id 3398}#
-                                   #{val 3399}#
-                                   #{e1 3400}#
-                                   #{e2 3401}#)
-                            (if (#{id? 343}# #{f 3397}#)
-                              (and-map #{id? 343}# #{id 3398}#)
-                              #f))
-                          #{tmp 3391}#)
-                        #f)
-                    (@apply
-                      (lambda (#{f 3410}#
-                               #{id 3411}#
-                               #{val 3412}#
-                               #{e1 3413}#
-                               #{e2 3414}#)
-                        (#{chi-let 3330}#
-                          #{e 3359}#
-                          #{r 3360}#
-                          #{w 3361}#
-                          #{s 3362}#
-                          #{mod 3363}#
-                          #{build-named-let 301}#
-                          (cons #{f 3410}# #{id 3411}#)
-                          #{val 3412}#
-                          (cons #{e1 3413}# #{e2 3414}#)))
-                      #{tmp 3391}#)
-                    (let ((#{_ 3419}# #{tmp 3369}#))
-                      (syntax-violation
-                        'let
-                        "bad let"
-                        (#{source-wrap 411}#
-                          #{e 3359}#
-                          #{w 3361}#
-                          #{s 3362}#
-                          #{mod 3363}#)))))))))))
-    (#{global-extend 339}#
-      'core
-      'letrec
-      (lambda (#{e 3420}#
-               #{r 3421}#
-               #{w 3422}#
-               #{s 3423}#
-               #{mod 3424}#)
-        (let ((#{tmp 3430}# #{e 3420}#))
-          (let ((#{tmp 3431}#
-                  ($sc-dispatch
-                    #{tmp 3430}#
-                    '(_ #(each (any any)) any . each-any))))
-            (if (if #{tmp 3431}#
-                  (@apply
-                    (lambda (#{id 3436}#
-                             #{val 3437}#
-                             #{e1 3438}#
-                             #{e2 3439}#)
-                      (and-map #{id? 343}# #{id 3436}#))
-                    #{tmp 3431}#)
-                  #f)
-              (@apply
-                (lambda (#{id 3445}#
-                         #{val 3446}#
-                         #{e1 3447}#
-                         #{e2 3448}#)
-                  (let ((#{ids 3450}# #{id 3445}#))
-                    (if (not (#{valid-bound-ids? 403}# #{ids 3450}#))
-                      (syntax-violation
-                        'letrec
-                        "duplicate bound variable"
-                        #{e 3420}#)
-                      (let ((#{labels 3454}#
-                              (#{gen-labels 358}# #{ids 3450}#))
-                            (#{new-vars 3455}#
-                              (map #{gen-var 451}# #{ids 3450}#)))
-                        (let ((#{w 3458}#
-                                (#{make-binding-wrap 387}#
-                                  #{ids 3450}#
-                                  #{labels 3454}#
-                                  #{w 3422}#))
-                              (#{r 3459}#
-                                (#{extend-var-env 333}#
-                                  #{labels 3454}#
-                                  #{new-vars 3455}#
-                                  #{r 3421}#)))
-                          (#{build-letrec 303}#
-                            #{s 3423}#
-                            #f
-                            (map syntax->datum #{ids 3450}#)
-                            #{new-vars 3455}#
-                            (map (lambda (#{x 3460}#)
-                                   (#{chi 423}#
-                                     #{x 3460}#
-                                     #{r 3459}#
-                                     #{w 3458}#
-                                     #{mod 3424}#))
-                                 #{val 3446}#)
-                            (#{chi-body 431}#
-                              (cons #{e1 3447}# #{e2 3448}#)
-                              (#{source-wrap 411}#
-                                #{e 3420}#
-                                #{w 3458}#
-                                #{s 3423}#
-                                #{mod 3424}#)
-                              #{r 3459}#
-                              #{w 3458}#
-                              #{mod 3424}#)))))))
-                #{tmp 3431}#)
-              (let ((#{_ 3465}# #{tmp 3430}#))
-                (syntax-violation
-                  'letrec
-                  "bad letrec"
-                  (#{source-wrap 411}#
-                    #{e 3420}#
-                    #{w 3422}#
-                    #{s 3423}#
-                    #{mod 3424}#))))))))
-    (#{global-extend 339}#
-      'core
-      'letrec*
-      (lambda (#{e 3466}#
-               #{r 3467}#
-               #{w 3468}#
-               #{s 3469}#
-               #{mod 3470}#)
-        (let ((#{tmp 3476}# #{e 3466}#))
-          (let ((#{tmp 3477}#
-                  ($sc-dispatch
-                    #{tmp 3476}#
-                    '(_ #(each (any any)) any . each-any))))
-            (if (if #{tmp 3477}#
-                  (@apply
-                    (lambda (#{id 3482}#
-                             #{val 3483}#
-                             #{e1 3484}#
-                             #{e2 3485}#)
-                      (and-map #{id? 343}# #{id 3482}#))
-                    #{tmp 3477}#)
-                  #f)
-              (@apply
-                (lambda (#{id 3491}#
-                         #{val 3492}#
-                         #{e1 3493}#
-                         #{e2 3494}#)
-                  (let ((#{ids 3496}# #{id 3491}#))
-                    (if (not (#{valid-bound-ids? 403}# #{ids 3496}#))
-                      (syntax-violation
-                        'letrec*
-                        "duplicate bound variable"
-                        #{e 3466}#)
-                      (let ((#{labels 3500}#
-                              (#{gen-labels 358}# #{ids 3496}#))
-                            (#{new-vars 3501}#
-                              (map #{gen-var 451}# #{ids 3496}#)))
-                        (let ((#{w 3504}#
-                                (#{make-binding-wrap 387}#
-                                  #{ids 3496}#
-                                  #{labels 3500}#
-                                  #{w 3468}#))
-                              (#{r 3505}#
-                                (#{extend-var-env 333}#
-                                  #{labels 3500}#
-                                  #{new-vars 3501}#
-                                  #{r 3467}#)))
-                          (#{build-letrec 303}#
-                            #{s 3469}#
-                            #t
-                            (map syntax->datum #{ids 3496}#)
-                            #{new-vars 3501}#
-                            (map (lambda (#{x 3506}#)
-                                   (#{chi 423}#
-                                     #{x 3506}#
-                                     #{r 3505}#
-                                     #{w 3504}#
-                                     #{mod 3470}#))
-                                 #{val 3492}#)
-                            (#{chi-body 431}#
-                              (cons #{e1 3493}# #{e2 3494}#)
-                              (#{source-wrap 411}#
-                                #{e 3466}#
-                                #{w 3504}#
-                                #{s 3469}#
-                                #{mod 3470}#)
-                              #{r 3505}#
-                              #{w 3504}#
-                              #{mod 3470}#)))))))
-                #{tmp 3477}#)
-              (let ((#{_ 3511}# #{tmp 3476}#))
-                (syntax-violation
-                  'letrec*
-                  "bad letrec*"
-                  (#{source-wrap 411}#
-                    #{e 3466}#
-                    #{w 3468}#
-                    #{s 3469}#
-                    #{mod 3470}#))))))))
-    (#{global-extend 339}#
-      'core
-      'set!
-      (lambda (#{e 3512}#
-               #{r 3513}#
-               #{w 3514}#
-               #{s 3515}#
-               #{mod 3516}#)
-        (let ((#{tmp 3522}# #{e 3512}#))
-          (let ((#{tmp 3523}#
-                  ($sc-dispatch #{tmp 3522}# '(_ any any))))
-            (if (if #{tmp 3523}#
-                  (@apply
-                    (lambda (#{id 3526}# #{val 3527}#)
-                      (#{id? 343}# #{id 3526}#))
-                    #{tmp 3523}#)
-                  #f)
-              (@apply
-                (lambda (#{id 3530}# #{val 3531}#)
-                  (let ((#{n 3534}#
-                          (#{id-var-name 397}# #{id 3530}# #{w 3514}#))
-                        (#{id-mod 3535}#
-                          (if (#{syntax-object? 309}# #{id 3530}#)
-                            (#{syntax-object-module 315}# #{id 3530}#)
-                            #{mod 3516}#)))
-                    (let ((#{b 3537}#
-                            (#{lookup 337}#
-                              #{n 3534}#
-                              #{r 3513}#
-                              #{id-mod 3535}#)))
-                      (let ((#{atom-key 3540}# (car #{b 3537}#)))
-                        (if (memv #{atom-key 3540}# '(lexical))
-                          (#{build-lexical-assignment 275}#
-                            #{s 3515}#
-                            (syntax->datum #{id 3530}#)
-                            (cdr #{b 3537}#)
-                            (#{chi 423}#
-                              #{val 3531}#
-                              #{r 3513}#
-                              #{w 3514}#
-                              #{mod 3516}#))
-                          (if (memv #{atom-key 3540}# '(global))
-                            (#{build-global-assignment 281}#
-                              #{s 3515}#
-                              #{n 3534}#
-                              (#{chi 423}#
-                                #{val 3531}#
-                                #{r 3513}#
-                                #{w 3514}#
-                                #{mod 3516}#)
-                              #{id-mod 3535}#)
-                            (if (memv #{atom-key 3540}# '(macro))
-                              (let ((#{p 3547}# (cdr #{b 3537}#)))
-                                (if (procedure-property
-                                      #{p 3547}#
-                                      'variable-transformer)
-                                  (#{chi 423}#
-                                    (#{chi-macro 429}#
-                                      #{p 3547}#
-                                      #{e 3512}#
-                                      #{r 3513}#
-                                      #{w 3514}#
-                                      #{s 3515}#
-                                      #f
-                                      #{mod 3516}#)
-                                    #{r 3513}#
-                                    '(())
-                                    #{mod 3516}#)
-                                  (syntax-violation
-                                    'set!
-                                    "not a variable transformer"
-                                    (#{wrap 409}#
-                                      #{e 3512}#
-                                      #{w 3514}#
-                                      #{mod 3516}#)
-                                    (#{wrap 409}#
-                                      #{id 3530}#
-                                      #{w 3514}#
-                                      #{id-mod 3535}#))))
-                              (if (memv #{atom-key 3540}# '(displaced-lexical))
-                                (syntax-violation
-                                  'set!
-                                  "identifier out of context"
-                                  (#{wrap 409}#
-                                    #{id 3530}#
-                                    #{w 3514}#
-                                    #{mod 3516}#))
-                                (syntax-violation
-                                  'set!
-                                  "bad set!"
-                                  (#{source-wrap 411}#
-                                    #{e 3512}#
-                                    #{w 3514}#
-                                    #{s 3515}#
-                                    #{mod 3516}#))))))))))
-                #{tmp 3523}#)
-              (let ((#{tmp 3552}#
-                      ($sc-dispatch
-                        #{tmp 3522}#
-                        '(_ (any . each-any) any))))
-                (if #{tmp 3552}#
-                  (@apply
-                    (lambda (#{head 3556}# #{tail 3557}# #{val 3558}#)
-                      (call-with-values
-                        (lambda ()
-                          (#{syntax-type 421}#
-                            #{head 3556}#
-                            #{r 3513}#
-                            '(())
-                            #f
-                            #f
-                            #{mod 3516}#
-                            #t))
-                        (lambda (#{type 3561}#
-                                 #{value 3562}#
-                                 #{ee 3563}#
-                                 #{ww 3564}#
-                                 #{ss 3565}#
-                                 #{modmod 3566}#)
-                          (if (memv #{type 3561}# '(module-ref))
-                            (let ((#{val 3575}#
-                                    (#{chi 423}#
-                                      #{val 3558}#
-                                      #{r 3513}#
-                                      #{w 3514}#
-                                      #{mod 3516}#)))
-                              (call-with-values
-                                (lambda ()
-                                  (#{value 3562}#
-                                    (cons #{head 3556}# #{tail 3557}#)
-                                    #{r 3513}#
-                                    #{w 3514}#))
-                                (lambda (#{e 3577}#
-                                         #{r 3578}#
-                                         #{w 3579}#
-                                         #{s* 3580}#
-                                         #{mod 3581}#)
-                                  (let ((#{tmp 3587}# #{e 3577}#))
-                                    (let ((#{tmp 3588}# (list #{tmp 3587}#)))
-                                      (if (if #{tmp 3588}#
-                                            (@apply
-                                              (lambda (#{e 3590}#)
-                                                (#{id? 343}# #{e 3590}#))
-                                              #{tmp 3588}#)
-                                            #f)
-                                        (@apply
-                                          (lambda (#{e 3592}#)
-                                            (#{build-global-assignment 281}#
-                                              #{s 3515}#
-                                              (syntax->datum #{e 3592}#)
-                                              #{val 3575}#
-                                              #{mod 3581}#))
-                                          #{tmp 3588}#)
-                                        (syntax-violation
-                                          #f
-                                          "source expression failed to match 
any pattern"
-                                          #{tmp 3587}#)))))))
-                            (#{build-call 267}#
-                              #{s 3515}#
-                              (#{chi 423}#
-                                (list '#(syntax-object
-                                         setter
-                                         ((top)
-                                          #(ribcage () () ())
-                                          #(ribcage () () ())
-                                          #(ribcage
-                                            #(type value ee ww ss modmod)
-                                            #((top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top))
-                                            #("i3567"
-                                              "i3568"
-                                              "i3569"
-                                              "i3570"
-                                              "i3571"
-                                              "i3572"))
-                                          #(ribcage
-                                            #(head tail val)
-                                            #((top) (top) (top))
-                                            #("i3553" "i3554" "i3555"))
-                                          #(ribcage () () ())
-                                          #(ribcage
-                                            #(e r w s mod)
-                                            #((top) (top) (top) (top) (top))
-                                            #("i3517"
-                                              "i3518"
-                                              "i3519"
-                                              "i3520"
-                                              "i3521"))
-                                          #(ribcage
-                                            (lambda-var-list
-                                              gen-var
-                                              strip
-                                              chi-lambda-case
-                                              lambda*-formals
-                                              chi-simple-lambda
-                                              lambda-formals
-                                              ellipsis?
-                                              chi-void
-                                              eval-local-transformer
-                                              chi-local-syntax
-                                              chi-body
-                                              chi-macro
-                                              chi-call
-                                              chi-expr
-                                              chi
-                                              syntax-type
-                                              chi-when-list
-                                              chi-install-global
-                                              chi-top-sequence
-                                              chi-sequence
-                                              source-wrap
-                                              wrap
-                                              bound-id-member?
-                                              distinct-bound-ids?
-                                              valid-bound-ids?
-                                              bound-id=?
-                                              free-id=?
-                                              id-var-name
-                                              same-marks?
-                                              join-marks
-                                              join-wraps
-                                              smart-append
-                                              make-binding-wrap
-                                              extend-ribcage!
-                                              make-empty-ribcage
-                                              new-mark
-                                              anti-mark
-                                              the-anti-mark
-                                              top-marked?
-                                              top-wrap
-                                              empty-wrap
-                                              set-ribcage-labels!
-                                              set-ribcage-marks!
-                                              set-ribcage-symnames!
-                                              ribcage-labels
-                                              ribcage-marks
-                                              ribcage-symnames
-                                              ribcage?
-                                              make-ribcage
-                                              gen-labels
-                                              gen-label
-                                              make-rename
-                                              rename-marks
-                                              rename-new
-                                              rename-old
-                                              subst-rename?
-                                              wrap-subst
-                                              wrap-marks
-                                              make-wrap
-                                              id-sym-name&marks
-                                              id-sym-name
-                                              id?
-                                              nonsymbol-id?
-                                              global-extend
-                                              lookup
-                                              macros-only-env
-                                              extend-var-env
-                                              extend-env
-                                              null-env
-                                              binding-value
-                                              binding-type
-                                              make-binding
-                                              arg-check
-                                              source-annotation
-                                              no-source
-                                              set-syntax-object-module!
-                                              set-syntax-object-wrap!
-                                              set-syntax-object-expression!
-                                              syntax-object-module
-                                              syntax-object-wrap
-                                              syntax-object-expression
-                                              syntax-object?
-                                              make-syntax-object
-                                              build-lexical-var
-                                              build-letrec
-                                              build-named-let
-                                              build-let
-                                              build-sequence
-                                              build-data
-                                              build-primref
-                                              build-primcall
-                                              build-lambda-case
-                                              build-case-lambda
-                                              build-simple-lambda
-                                              build-global-definition
-                                              build-global-assignment
-                                              build-global-reference
-                                              analyze-variable
-                                              build-lexical-assignment
-                                              build-lexical-reference
-                                              build-dynlet
-                                              build-conditional
-                                              build-call
-                                              build-void
-                                              maybe-name-value!
-                                              decorate-source
-                                              get-global-definition-hook
-                                              put-global-definition-hook
-                                              gensym-hook
-                                              local-eval-hook
-                                              top-level-eval-hook
-                                              fx<
-                                              fx=
-                                              fx-
-                                              fx+
-                                              set-lambda-meta!
-                                              lambda-meta
-                                              lambda?
-                                              make-dynlet
-                                              make-letrec
-                                              make-let
-                                              make-lambda-case
-                                              make-lambda
-                                              make-seq
-                                              make-primcall
-                                              make-call
-                                              make-conditional
-                                              make-toplevel-define
-                                              make-toplevel-set
-                                              make-toplevel-ref
-                                              make-module-set
-                                              make-module-ref
-                                              make-lexical-set
-                                              make-lexical-ref
-                                              make-primitive-ref
-                                              make-const
-                                              make-void)
-                                            ((top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top))
-                                            ("i452"
-                                             "i450"
-                                             "i448"
-                                             "i446"
-                                             "i444"
-                                             "i442"
-                                             "i440"
-                                             "i438"
-                                             "i436"
-                                             "i434"
-                                             "i432"
-                                             "i430"
-                                             "i428"
-                                             "i426"
-                                             "i424"
-                                             "i422"
-                                             "i420"
-                                             "i418"
-                                             "i416"
-                                             "i414"
-                                             "i412"
-                                             "i410"
-                                             "i408"
-                                             "i406"
-                                             "i404"
-                                             "i402"
-                                             "i400"
-                                             "i398"
-                                             "i396"
-                                             "i394"
-                                             "i392"
-                                             "i390"
-                                             "i388"
-                                             "i386"
-                                             "i384"
-                                             "i383"
-                                             "i382"
-                                             "i380"
-                                             "i379"
-                                             "i378"
-                                             "i377"
-                                             "i376"
-                                             "i374"
-                                             "i372"
-                                             "i370"
-                                             "i368"
-                                             "i366"
-                                             "i364"
-                                             "i362"
-                                             "i360"
-                                             "i357"
-                                             "i355"
-                                             "i354"
-                                             "i353"
-                                             "i352"
-                                             "i351"
-                                             "i350"
-                                             "i349"
-                                             "i348"
-                                             "i347"
-                                             "i345"
-                                             "i344"
-                                             "i342"
-                                             "i340"
-                                             "i338"
-                                             "i336"
-                                             "i334"
-                                             "i332"
-                                             "i330"
-                                             "i329"
-                                             "i328"
-                                             "i327"
-                                             "i326"
-                                             "i325"
-                                             "i323"
-                                             "i322"
-                                             "i320"
-                                             "i318"
-                                             "i316"
-                                             "i314"
-                                             "i312"
-                                             "i310"
-                                             "i308"
-                                             "i306"
-                                             "i304"
-                                             "i302"
-                                             "i300"
-                                             "i298"
-                                             "i296"
-                                             "i294"
-                                             "i292"
-                                             "i290"
-                                             "i288"
-                                             "i286"
-                                             "i284"
-                                             "i282"
-                                             "i280"
-                                             "i278"
-                                             "i276"
-                                             "i274"
-                                             "i272"
-                                             "i270"
-                                             "i268"
-                                             "i266"
-                                             "i264"
-                                             "i262"
-                                             "i260"
-                                             "i258"
-                                             "i256"
-                                             "i255"
-                                             "i253"
-                                             "i251"
-                                             "i250"
-                                             "i249"
-                                             "i248"
-                                             "i247"
-                                             "i245"
-                                             "i243"
-                                             "i241"
-                                             "i238"
-                                             "i236"
-                                             "i234"
-                                             "i232"
-                                             "i230"
-                                             "i228"
-                                             "i226"
-                                             "i224"
-                                             "i222"
-                                             "i220"
-                                             "i218"
-                                             "i216"
-                                             "i214"
-                                             "i212"
-                                             "i210"
-                                             "i208"
-                                             "i206"
-                                             "i204"
-                                             "i202"))
-                                          #(ribcage
-                                            (define-structure
-                                              define-expansion-accessors
-                                              define-expansion-constructors)
-                                            ((top) (top) (top))
-                                            ("i40" "i39" "i38")))
-                                         (hygiene guile))
-                                      #{head 3556}#)
-                                #{r 3513}#
-                                #{w 3514}#
-                                #{mod 3516}#)
-                              (map (lambda (#{e 3594}#)
-                                     (#{chi 423}#
-                                       #{e 3594}#
-                                       #{r 3513}#
-                                       #{w 3514}#
-                                       #{mod 3516}#))
-                                   (append
-                                     #{tail 3557}#
-                                     (list #{val 3558}#))))))))
-                    #{tmp 3552}#)
-                  (let ((#{_ 3598}# #{tmp 3522}#))
-                    (syntax-violation
-                      'set!
-                      "bad set!"
-                      (#{source-wrap 411}#
-                        #{e 3512}#
-                        #{w 3514}#
-                        #{s 3515}#
-                        #{mod 3516}#))))))))))
-    (#{global-extend 339}#
-      'module-ref
-      '@
-      (lambda (#{e 3599}# #{r 3600}# #{w 3601}#)
-        (let ((#{tmp 3605}# #{e 3599}#))
-          (let ((#{tmp 3606}#
-                  ($sc-dispatch #{tmp 3605}# '(_ each-any any))))
-            (if (if #{tmp 3606}#
-                  (@apply
-                    (lambda (#{mod 3609}# #{id 3610}#)
-                      (if (and-map #{id? 343}# #{mod 3609}#)
-                        (#{id? 343}# #{id 3610}#)
-                        #f))
-                    #{tmp 3606}#)
-                  #f)
-              (@apply
-                (lambda (#{mod 3616}# #{id 3617}#)
-                  (values
-                    (syntax->datum #{id 3617}#)
-                    #{r 3600}#
-                    #{w 3601}#
-                    #f
-                    (syntax->datum
-                      (cons '#(syntax-object
-                               public
-                               ((top)
-                                #(ribcage
-                                  #(mod id)
-                                  #((top) (top))
-                                  #("i3614" "i3615"))
-                                #(ribcage () () ())
-                                #(ribcage
-                                  #(e r w)
-                                  #((top) (top) (top))
-                                  #("i3602" "i3603" "i3604"))
-                                #(ribcage
-                                  (lambda-var-list
-                                    gen-var
-                                    strip
-                                    chi-lambda-case
-                                    lambda*-formals
-                                    chi-simple-lambda
-                                    lambda-formals
-                                    ellipsis?
-                                    chi-void
-                                    eval-local-transformer
-                                    chi-local-syntax
-                                    chi-body
-                                    chi-macro
-                                    chi-call
-                                    chi-expr
-                                    chi
-                                    syntax-type
-                                    chi-when-list
-                                    chi-install-global
-                                    chi-top-sequence
-                                    chi-sequence
-                                    source-wrap
-                                    wrap
-                                    bound-id-member?
-                                    distinct-bound-ids?
-                                    valid-bound-ids?
-                                    bound-id=?
-                                    free-id=?
-                                    id-var-name
-                                    same-marks?
-                                    join-marks
-                                    join-wraps
-                                    smart-append
-                                    make-binding-wrap
-                                    extend-ribcage!
-                                    make-empty-ribcage
-                                    new-mark
-                                    anti-mark
-                                    the-anti-mark
-                                    top-marked?
-                                    top-wrap
-                                    empty-wrap
-                                    set-ribcage-labels!
-                                    set-ribcage-marks!
-                                    set-ribcage-symnames!
-                                    ribcage-labels
-                                    ribcage-marks
-                                    ribcage-symnames
-                                    ribcage?
-                                    make-ribcage
-                                    gen-labels
-                                    gen-label
-                                    make-rename
-                                    rename-marks
-                                    rename-new
-                                    rename-old
-                                    subst-rename?
-                                    wrap-subst
-                                    wrap-marks
-                                    make-wrap
-                                    id-sym-name&marks
-                                    id-sym-name
-                                    id?
-                                    nonsymbol-id?
-                                    global-extend
-                                    lookup
-                                    macros-only-env
-                                    extend-var-env
-                                    extend-env
-                                    null-env
-                                    binding-value
-                                    binding-type
-                                    make-binding
-                                    arg-check
-                                    source-annotation
-                                    no-source
-                                    set-syntax-object-module!
-                                    set-syntax-object-wrap!
-                                    set-syntax-object-expression!
-                                    syntax-object-module
-                                    syntax-object-wrap
-                                    syntax-object-expression
-                                    syntax-object?
-                                    make-syntax-object
-                                    build-lexical-var
-                                    build-letrec
-                                    build-named-let
-                                    build-let
-                                    build-sequence
-                                    build-data
-                                    build-primref
-                                    build-primcall
-                                    build-lambda-case
-                                    build-case-lambda
-                                    build-simple-lambda
-                                    build-global-definition
-                                    build-global-assignment
-                                    build-global-reference
-                                    analyze-variable
-                                    build-lexical-assignment
-                                    build-lexical-reference
-                                    build-dynlet
-                                    build-conditional
-                                    build-call
-                                    build-void
-                                    maybe-name-value!
-                                    decorate-source
-                                    get-global-definition-hook
-                                    put-global-definition-hook
-                                    gensym-hook
-                                    local-eval-hook
-                                    top-level-eval-hook
-                                    fx<
-                                    fx=
-                                    fx-
-                                    fx+
-                                    set-lambda-meta!
-                                    lambda-meta
-                                    lambda?
-                                    make-dynlet
-                                    make-letrec
-                                    make-let
-                                    make-lambda-case
-                                    make-lambda
-                                    make-seq
-                                    make-primcall
-                                    make-call
-                                    make-conditional
-                                    make-toplevel-define
-                                    make-toplevel-set
-                                    make-toplevel-ref
-                                    make-module-set
-                                    make-module-ref
-                                    make-lexical-set
-                                    make-lexical-ref
-                                    make-primitive-ref
-                                    make-const
-                                    make-void)
-                                  ((top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top)
-                                   (top))
-                                  ("i452"
-                                   "i450"
-                                   "i448"
-                                   "i446"
-                                   "i444"
-                                   "i442"
-                                   "i440"
-                                   "i438"
-                                   "i436"
-                                   "i434"
-                                   "i432"
-                                   "i430"
-                                   "i428"
-                                   "i426"
-                                   "i424"
-                                   "i422"
-                                   "i420"
-                                   "i418"
-                                   "i416"
-                                   "i414"
-                                   "i412"
-                                   "i410"
-                                   "i408"
-                                   "i406"
-                                   "i404"
-                                   "i402"
-                                   "i400"
-                                   "i398"
-                                   "i396"
-                                   "i394"
-                                   "i392"
-                                   "i390"
-                                   "i388"
-                                   "i386"
-                                   "i384"
-                                   "i383"
-                                   "i382"
-                                   "i380"
-                                   "i379"
-                                   "i378"
-                                   "i377"
-                                   "i376"
-                                   "i374"
-                                   "i372"
-                                   "i370"
-                                   "i368"
-                                   "i366"
-                                   "i364"
-                                   "i362"
-                                   "i360"
-                                   "i357"
-                                   "i355"
-                                   "i354"
-                                   "i353"
-                                   "i352"
-                                   "i351"
-                                   "i350"
-                                   "i349"
-                                   "i348"
-                                   "i347"
-                                   "i345"
-                                   "i344"
-                                   "i342"
-                                   "i340"
-                                   "i338"
-                                   "i336"
-                                   "i334"
-                                   "i332"
-                                   "i330"
-                                   "i329"
-                                   "i328"
-                                   "i327"
-                                   "i326"
-                                   "i325"
-                                   "i323"
-                                   "i322"
-                                   "i320"
-                                   "i318"
-                                   "i316"
-                                   "i314"
-                                   "i312"
-                                   "i310"
-                                   "i308"
-                                   "i306"
-                                   "i304"
-                                   "i302"
-                                   "i300"
-                                   "i298"
-                                   "i296"
-                                   "i294"
-                                   "i292"
-                                   "i290"
-                                   "i288"
-                                   "i286"
-                                   "i284"
-                                   "i282"
-                                   "i280"
-                                   "i278"
-                                   "i276"
-                                   "i274"
-                                   "i272"
-                                   "i270"
-                                   "i268"
-                                   "i266"
-                                   "i264"
-                                   "i262"
-                                   "i260"
-                                   "i258"
-                                   "i256"
-                                   "i255"
-                                   "i253"
-                                   "i251"
-                                   "i250"
-                                   "i249"
-                                   "i248"
-                                   "i247"
-                                   "i245"
-                                   "i243"
-                                   "i241"
-                                   "i238"
-                                   "i236"
-                                   "i234"
-                                   "i232"
-                                   "i230"
-                                   "i228"
-                                   "i226"
-                                   "i224"
-                                   "i222"
-                                   "i220"
-                                   "i218"
-                                   "i216"
-                                   "i214"
-                                   "i212"
-                                   "i210"
-                                   "i208"
-                                   "i206"
-                                   "i204"
-                                   "i202"))
-                                #(ribcage
-                                  (define-structure
-                                    define-expansion-accessors
-                                    define-expansion-constructors)
-                                  ((top) (top) (top))
-                                  ("i40" "i39" "i38")))
-                               (hygiene guile))
-                            #{mod 3616}#))))
-                #{tmp 3606}#)
-              (syntax-violation
-                #f
-                "source expression failed to match any pattern"
-                #{tmp 3605}#))))))
-    (#{global-extend 339}#
-      'module-ref
-      '@@
-      (lambda (#{e 3619}# #{r 3620}# #{w 3621}#)
-        (letrec*
-          ((#{remodulate 3626}#
-             (lambda (#{x 3627}# #{mod 3628}#)
-               (if (pair? #{x 3627}#)
-                 (cons (#{remodulate 3626}#
-                         (car #{x 3627}#)
-                         #{mod 3628}#)
-                       (#{remodulate 3626}#
-                         (cdr #{x 3627}#)
-                         #{mod 3628}#))
-                 (if (#{syntax-object? 309}# #{x 3627}#)
-                   (#{make-syntax-object 307}#
-                     (#{remodulate 3626}#
-                       (#{syntax-object-expression 311}# #{x 3627}#)
-                       #{mod 3628}#)
-                     (#{syntax-object-wrap 313}# #{x 3627}#)
-                     #{mod 3628}#)
-                   (if (vector? #{x 3627}#)
-                     (let ((#{n 3639}# (vector-length #{x 3627}#)))
-                       (let ((#{v 3641}# (make-vector #{n 3639}#)))
-                         (letrec*
-                           ((#{loop 3644}#
-                              (lambda (#{i 3645}#)
-                                (if (= #{i 3645}# #{n 3639}#)
-                                  (begin (if #f #f) #{v 3641}#)
-                                  (begin
-                                    (vector-set!
-                                      #{v 3641}#
-                                      #{i 3645}#
-                                      (#{remodulate 3626}#
-                                        (vector-ref #{x 3627}# #{i 3645}#)
-                                        #{mod 3628}#))
-                                    (#{loop 3644}# (#{1+}# #{i 3645}#)))))))
-                           (#{loop 3644}# 0))))
-                     #{x 3627}#))))))
-          (let ((#{tmp 3651}# #{e 3619}#))
-            (let ((#{tmp 3652}#
-                    ($sc-dispatch #{tmp 3651}# '(_ each-any any))))
-              (if (if #{tmp 3652}#
-                    (@apply
-                      (lambda (#{mod 3655}# #{exp 3656}#)
-                        (and-map #{id? 343}# #{mod 3655}#))
-                      #{tmp 3652}#)
-                    #f)
-                (@apply
-                  (lambda (#{mod 3660}# #{exp 3661}#)
-                    (let ((#{mod 3663}#
-                            (syntax->datum
-                              (cons '#(syntax-object
-                                       private
-                                       ((top)
-                                        #(ribcage
-                                          #(mod exp)
-                                          #((top) (top))
-                                          #("i3658" "i3659"))
-                                        #(ribcage
-                                          (remodulate)
-                                          ((top))
-                                          ("i3625"))
-                                        #(ribcage
-                                          #(e r w)
-                                          #((top) (top) (top))
-                                          #("i3622" "i3623" "i3624"))
-                                        #(ribcage
-                                          (lambda-var-list
-                                            gen-var
-                                            strip
-                                            chi-lambda-case
-                                            lambda*-formals
-                                            chi-simple-lambda
-                                            lambda-formals
-                                            ellipsis?
-                                            chi-void
-                                            eval-local-transformer
-                                            chi-local-syntax
-                                            chi-body
-                                            chi-macro
-                                            chi-call
-                                            chi-expr
-                                            chi
-                                            syntax-type
-                                            chi-when-list
-                                            chi-install-global
-                                            chi-top-sequence
-                                            chi-sequence
-                                            source-wrap
-                                            wrap
-                                            bound-id-member?
-                                            distinct-bound-ids?
-                                            valid-bound-ids?
-                                            bound-id=?
-                                            free-id=?
-                                            id-var-name
-                                            same-marks?
-                                            join-marks
-                                            join-wraps
-                                            smart-append
-                                            make-binding-wrap
-                                            extend-ribcage!
-                                            make-empty-ribcage
-                                            new-mark
-                                            anti-mark
-                                            the-anti-mark
-                                            top-marked?
-                                            top-wrap
-                                            empty-wrap
-                                            set-ribcage-labels!
-                                            set-ribcage-marks!
-                                            set-ribcage-symnames!
-                                            ribcage-labels
-                                            ribcage-marks
-                                            ribcage-symnames
-                                            ribcage?
-                                            make-ribcage
-                                            gen-labels
-                                            gen-label
-                                            make-rename
-                                            rename-marks
-                                            rename-new
-                                            rename-old
-                                            subst-rename?
-                                            wrap-subst
-                                            wrap-marks
-                                            make-wrap
-                                            id-sym-name&marks
-                                            id-sym-name
-                                            id?
-                                            nonsymbol-id?
-                                            global-extend
-                                            lookup
-                                            macros-only-env
-                                            extend-var-env
-                                            extend-env
-                                            null-env
-                                            binding-value
-                                            binding-type
-                                            make-binding
-                                            arg-check
-                                            source-annotation
-                                            no-source
-                                            set-syntax-object-module!
-                                            set-syntax-object-wrap!
-                                            set-syntax-object-expression!
-                                            syntax-object-module
-                                            syntax-object-wrap
-                                            syntax-object-expression
-                                            syntax-object?
-                                            make-syntax-object
-                                            build-lexical-var
-                                            build-letrec
-                                            build-named-let
-                                            build-let
-                                            build-sequence
-                                            build-data
-                                            build-primref
-                                            build-primcall
-                                            build-lambda-case
-                                            build-case-lambda
-                                            build-simple-lambda
-                                            build-global-definition
-                                            build-global-assignment
-                                            build-global-reference
-                                            analyze-variable
-                                            build-lexical-assignment
-                                            build-lexical-reference
-                                            build-dynlet
-                                            build-conditional
-                                            build-call
-                                            build-void
-                                            maybe-name-value!
-                                            decorate-source
-                                            get-global-definition-hook
-                                            put-global-definition-hook
-                                            gensym-hook
-                                            local-eval-hook
-                                            top-level-eval-hook
-                                            fx<
-                                            fx=
-                                            fx-
-                                            fx+
-                                            set-lambda-meta!
-                                            lambda-meta
-                                            lambda?
-                                            make-dynlet
-                                            make-letrec
-                                            make-let
-                                            make-lambda-case
-                                            make-lambda
-                                            make-seq
-                                            make-primcall
-                                            make-call
-                                            make-conditional
-                                            make-toplevel-define
-                                            make-toplevel-set
-                                            make-toplevel-ref
-                                            make-module-set
-                                            make-module-ref
-                                            make-lexical-set
-                                            make-lexical-ref
-                                            make-primitive-ref
-                                            make-const
-                                            make-void)
-                                          ((top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top))
-                                          ("i452"
-                                           "i450"
-                                           "i448"
-                                           "i446"
-                                           "i444"
-                                           "i442"
-                                           "i440"
-                                           "i438"
-                                           "i436"
-                                           "i434"
-                                           "i432"
-                                           "i430"
-                                           "i428"
-                                           "i426"
-                                           "i424"
-                                           "i422"
-                                           "i420"
-                                           "i418"
-                                           "i416"
-                                           "i414"
-                                           "i412"
-                                           "i410"
-                                           "i408"
-                                           "i406"
-                                           "i404"
-                                           "i402"
-                                           "i400"
-                                           "i398"
-                                           "i396"
-                                           "i394"
-                                           "i392"
-                                           "i390"
-                                           "i388"
-                                           "i386"
-                                           "i384"
-                                           "i383"
-                                           "i382"
-                                           "i380"
-                                           "i379"
-                                           "i378"
-                                           "i377"
-                                           "i376"
-                                           "i374"
-                                           "i372"
-                                           "i370"
-                                           "i368"
-                                           "i366"
-                                           "i364"
-                                           "i362"
-                                           "i360"
-                                           "i357"
-                                           "i355"
-                                           "i354"
-                                           "i353"
-                                           "i352"
-                                           "i351"
-                                           "i350"
-                                           "i349"
-                                           "i348"
-                                           "i347"
-                                           "i345"
-                                           "i344"
-                                           "i342"
-                                           "i340"
-                                           "i338"
-                                           "i336"
-                                           "i334"
-                                           "i332"
-                                           "i330"
-                                           "i329"
-                                           "i328"
-                                           "i327"
-                                           "i326"
-                                           "i325"
-                                           "i323"
-                                           "i322"
-                                           "i320"
-                                           "i318"
-                                           "i316"
-                                           "i314"
-                                           "i312"
-                                           "i310"
-                                           "i308"
-                                           "i306"
-                                           "i304"
-                                           "i302"
-                                           "i300"
-                                           "i298"
-                                           "i296"
-                                           "i294"
-                                           "i292"
-                                           "i290"
-                                           "i288"
-                                           "i286"
-                                           "i284"
-                                           "i282"
-                                           "i280"
-                                           "i278"
-                                           "i276"
-                                           "i274"
-                                           "i272"
-                                           "i270"
-                                           "i268"
-                                           "i266"
-                                           "i264"
-                                           "i262"
-                                           "i260"
-                                           "i258"
-                                           "i256"
-                                           "i255"
-                                           "i253"
-                                           "i251"
-                                           "i250"
-                                           "i249"
-                                           "i248"
-                                           "i247"
-                                           "i245"
-                                           "i243"
-                                           "i241"
-                                           "i238"
-                                           "i236"
-                                           "i234"
-                                           "i232"
-                                           "i230"
-                                           "i228"
-                                           "i226"
-                                           "i224"
-                                           "i222"
-                                           "i220"
-                                           "i218"
-                                           "i216"
-                                           "i214"
-                                           "i212"
-                                           "i210"
-                                           "i208"
-                                           "i206"
-                                           "i204"
-                                           "i202"))
-                                        #(ribcage
-                                          (define-structure
-                                            define-expansion-accessors
-                                            define-expansion-constructors)
-                                          ((top) (top) (top))
-                                          ("i40" "i39" "i38")))
-                                       (hygiene guile))
-                                    #{mod 3660}#))))
-                      (values
-                        (#{remodulate 3626}# #{exp 3661}# #{mod 3663}#)
-                        #{r 3620}#
-                        #{w 3621}#
-                        (#{source-annotation 324}# #{exp 3661}#)
-                        #{mod 3663}#)))
-                  #{tmp 3652}#)
-                (syntax-violation
-                  #f
-                  "source expression failed to match any pattern"
-                  #{tmp 3651}#)))))))
-    (#{global-extend 339}#
-      'core
-      'if
-      (lambda (#{e 3665}#
-               #{r 3666}#
-               #{w 3667}#
-               #{s 3668}#
-               #{mod 3669}#)
-        (let ((#{tmp 3675}# #{e 3665}#))
-          (let ((#{tmp 3676}#
-                  ($sc-dispatch #{tmp 3675}# '(_ any any))))
-            (if #{tmp 3676}#
-              (@apply
-                (lambda (#{test 3679}# #{then 3680}#)
-                  (#{build-conditional 269}#
-                    #{s 3668}#
-                    (#{chi 423}#
-                      #{test 3679}#
-                      #{r 3666}#
-                      #{w 3667}#
-                      #{mod 3669}#)
-                    (#{chi 423}#
-                      #{then 3680}#
-                      #{r 3666}#
-                      #{w 3667}#
-                      #{mod 3669}#)
-                    (#{build-void 265}# #f)))
-                #{tmp 3676}#)
-              (let ((#{tmp 3682}#
-                      ($sc-dispatch #{tmp 3675}# '(_ any any any))))
-                (if #{tmp 3682}#
-                  (@apply
-                    (lambda (#{test 3686}# #{then 3687}# #{else 3688}#)
-                      (#{build-conditional 269}#
-                        #{s 3668}#
-                        (#{chi 423}#
-                          #{test 3686}#
-                          #{r 3666}#
-                          #{w 3667}#
-                          #{mod 3669}#)
-                        (#{chi 423}#
-                          #{then 3687}#
-                          #{r 3666}#
-                          #{w 3667}#
-                          #{mod 3669}#)
-                        (#{chi 423}#
-                          #{else 3688}#
-                          #{r 3666}#
-                          #{w 3667}#
-                          #{mod 3669}#)))
-                    #{tmp 3682}#)
-                  (syntax-violation
-                    #f
-                    "source expression failed to match any pattern"
-                    #{tmp 3675}#))))))))
-    (#{global-extend 339}#
-      'core
-      'with-fluids
-      (lambda (#{e 3689}#
-               #{r 3690}#
-               #{w 3691}#
-               #{s 3692}#
-               #{mod 3693}#)
-        (let ((#{tmp 3699}# #{e 3689}#))
-          (let ((#{tmp 3700}#
-                  ($sc-dispatch
-                    #{tmp 3699}#
-                    '(_ #(each (any any)) any . each-any))))
-            (if #{tmp 3700}#
-              (@apply
-                (lambda (#{fluid 3705}#
-                         #{val 3706}#
-                         #{b 3707}#
-                         #{b* 3708}#)
-                  (#{build-dynlet 271}#
-                    #{s 3692}#
-                    (map (lambda (#{x 3709}#)
-                           (#{chi 423}#
-                             #{x 3709}#
-                             #{r 3690}#
-                             #{w 3691}#
-                             #{mod 3693}#))
-                         #{fluid 3705}#)
-                    (map (lambda (#{x 3712}#)
-                           (#{chi 423}#
-                             #{x 3712}#
-                             #{r 3690}#
-                             #{w 3691}#
-                             #{mod 3693}#))
-                         #{val 3706}#)
-                    (#{chi-body 431}#
-                      (cons #{b 3707}# #{b* 3708}#)
-                      (#{source-wrap 411}#
-                        #{e 3689}#
-                        #{w 3691}#
-                        #{s 3692}#
-                        #{mod 3693}#)
-                      #{r 3690}#
-                      #{w 3691}#
-                      #{mod 3693}#)))
-                #{tmp 3700}#)
-              (syntax-violation
-                #f
-                "source expression failed to match any pattern"
-                #{tmp 3699}#))))))
-    (#{global-extend 339}# 'begin 'begin '())
-    (#{global-extend 339}# 'define 'define '())
-    (#{global-extend 339}#
-      'define-syntax
-      'define-syntax
-      '())
-    (#{global-extend 339}# 'eval-when 'eval-when '())
-    (#{global-extend 339}#
-      'core
-      'syntax-case
-      (letrec*
-        ((#{convert-pattern 3717}#
-           (lambda (#{pattern 3724}# #{keys 3725}#)
-             (letrec*
-               ((#{cvt* 3729}#
-                  (lambda (#{p* 3734}# #{n 3735}# #{ids 3736}#)
-                    (if (not (pair? #{p* 3734}#))
-                      (#{cvt 3733}#
-                        #{p* 3734}#
-                        #{n 3735}#
-                        #{ids 3736}#)
-                      (call-with-values
-                        (lambda ()
-                          (#{cvt* 3729}#
-                            (cdr #{p* 3734}#)
-                            #{n 3735}#
-                            #{ids 3736}#))
-                        (lambda (#{y 3740}# #{ids 3741}#)
-                          (call-with-values
-                            (lambda ()
-                              (#{cvt 3733}#
-                                (car #{p* 3734}#)
-                                #{n 3735}#
-                                #{ids 3741}#))
-                            (lambda (#{x 3744}# #{ids 3745}#)
-                              (values
-                                (cons #{x 3744}# #{y 3740}#)
-                                #{ids 3745}#))))))))
-                (#{v-reverse 3731}#
-                  (lambda (#{x 3748}#)
-                    (letrec*
-                      ((#{loop 3753}#
-                         (lambda (#{r 3754}# #{x 3755}#)
-                           (if (not (pair? #{x 3755}#))
-                             (values #{r 3754}# #{x 3755}#)
-                             (#{loop 3753}#
-                               (cons (car #{x 3755}#) #{r 3754}#)
-                               (cdr #{x 3755}#))))))
-                      (#{loop 3753}# '() #{x 3748}#))))
-                (#{cvt 3733}#
-                  (lambda (#{p 3756}# #{n 3757}# #{ids 3758}#)
-                    (if (#{id? 343}# #{p 3756}#)
-                      (if (#{bound-id-member? 407}#
-                            #{p 3756}#
-                            #{keys 3725}#)
-                        (values
-                          (vector 'free-id #{p 3756}#)
-                          #{ids 3758}#)
-                        (if (#{free-id=? 399}#
-                              #{p 3756}#
-                              '#(syntax-object
-                                 _
-                                 ((top)
-                                  #(ribcage () () ())
-                                  #(ribcage
-                                    #(p n ids)
-                                    #((top) (top) (top))
-                                    #("i3759" "i3760" "i3761"))
-                                  #(ribcage
-                                    (cvt v-reverse cvt*)
-                                    ((top) (top) (top))
-                                    ("i3732" "i3730" "i3728"))
-                                  #(ribcage
-                                    #(pattern keys)
-                                    #((top) (top))
-                                    #("i3726" "i3727"))
-                                  #(ribcage
-                                    (gen-syntax-case
-                                      gen-clause
-                                      build-dispatch-call
-                                      convert-pattern)
-                                    ((top) (top) (top) (top))
-                                    ("i3722" "i3720" "i3718" "i3716"))
-                                  #(ribcage
-                                    (lambda-var-list
-                                      gen-var
-                                      strip
-                                      chi-lambda-case
-                                      lambda*-formals
-                                      chi-simple-lambda
-                                      lambda-formals
-                                      ellipsis?
-                                      chi-void
-                                      eval-local-transformer
-                                      chi-local-syntax
-                                      chi-body
-                                      chi-macro
-                                      chi-call
-                                      chi-expr
-                                      chi
-                                      syntax-type
-                                      chi-when-list
-                                      chi-install-global
-                                      chi-top-sequence
-                                      chi-sequence
-                                      source-wrap
-                                      wrap
-                                      bound-id-member?
-                                      distinct-bound-ids?
-                                      valid-bound-ids?
-                                      bound-id=?
-                                      free-id=?
-                                      id-var-name
-                                      same-marks?
-                                      join-marks
-                                      join-wraps
-                                      smart-append
-                                      make-binding-wrap
-                                      extend-ribcage!
-                                      make-empty-ribcage
-                                      new-mark
-                                      anti-mark
-                                      the-anti-mark
-                                      top-marked?
-                                      top-wrap
-                                      empty-wrap
-                                      set-ribcage-labels!
-                                      set-ribcage-marks!
-                                      set-ribcage-symnames!
-                                      ribcage-labels
-                                      ribcage-marks
-                                      ribcage-symnames
-                                      ribcage?
-                                      make-ribcage
-                                      gen-labels
-                                      gen-label
-                                      make-rename
-                                      rename-marks
-                                      rename-new
-                                      rename-old
-                                      subst-rename?
-                                      wrap-subst
-                                      wrap-marks
-                                      make-wrap
-                                      id-sym-name&marks
-                                      id-sym-name
-                                      id?
-                                      nonsymbol-id?
-                                      global-extend
-                                      lookup
-                                      macros-only-env
-                                      extend-var-env
-                                      extend-env
-                                      null-env
-                                      binding-value
-                                      binding-type
-                                      make-binding
-                                      arg-check
-                                      source-annotation
-                                      no-source
-                                      set-syntax-object-module!
-                                      set-syntax-object-wrap!
-                                      set-syntax-object-expression!
-                                      syntax-object-module
-                                      syntax-object-wrap
-                                      syntax-object-expression
-                                      syntax-object?
-                                      make-syntax-object
-                                      build-lexical-var
-                                      build-letrec
-                                      build-named-let
-                                      build-let
-                                      build-sequence
-                                      build-data
-                                      build-primref
-                                      build-primcall
-                                      build-lambda-case
-                                      build-case-lambda
-                                      build-simple-lambda
-                                      build-global-definition
-                                      build-global-assignment
-                                      build-global-reference
-                                      analyze-variable
-                                      build-lexical-assignment
-                                      build-lexical-reference
-                                      build-dynlet
-                                      build-conditional
-                                      build-call
-                                      build-void
-                                      maybe-name-value!
-                                      decorate-source
-                                      get-global-definition-hook
-                                      put-global-definition-hook
-                                      gensym-hook
-                                      local-eval-hook
-                                      top-level-eval-hook
-                                      fx<
-                                      fx=
-                                      fx-
-                                      fx+
-                                      set-lambda-meta!
-                                      lambda-meta
-                                      lambda?
-                                      make-dynlet
-                                      make-letrec
-                                      make-let
-                                      make-lambda-case
-                                      make-lambda
-                                      make-seq
-                                      make-primcall
-                                      make-call
-                                      make-conditional
-                                      make-toplevel-define
-                                      make-toplevel-set
-                                      make-toplevel-ref
-                                      make-module-set
-                                      make-module-ref
-                                      make-lexical-set
-                                      make-lexical-ref
-                                      make-primitive-ref
-                                      make-const
-                                      make-void)
-                                    ((top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top)
-                                     (top))
-                                    ("i452"
-                                     "i450"
-                                     "i448"
-                                     "i446"
-                                     "i444"
-                                     "i442"
-                                     "i440"
-                                     "i438"
-                                     "i436"
-                                     "i434"
-                                     "i432"
-                                     "i430"
-                                     "i428"
-                                     "i426"
-                                     "i424"
-                                     "i422"
-                                     "i420"
-                                     "i418"
-                                     "i416"
-                                     "i414"
-                                     "i412"
-                                     "i410"
-                                     "i408"
-                                     "i406"
-                                     "i404"
-                                     "i402"
-                                     "i400"
-                                     "i398"
-                                     "i396"
-                                     "i394"
-                                     "i392"
-                                     "i390"
-                                     "i388"
-                                     "i386"
-                                     "i384"
-                                     "i383"
-                                     "i382"
-                                     "i380"
-                                     "i379"
-                                     "i378"
-                                     "i377"
-                                     "i376"
-                                     "i374"
-                                     "i372"
-                                     "i370"
-                                     "i368"
-                                     "i366"
-                                     "i364"
-                                     "i362"
-                                     "i360"
-                                     "i357"
-                                     "i355"
-                                     "i354"
-                                     "i353"
-                                     "i352"
-                                     "i351"
-                                     "i350"
-                                     "i349"
-                                     "i348"
-                                     "i347"
-                                     "i345"
-                                     "i344"
-                                     "i342"
-                                     "i340"
-                                     "i338"
-                                     "i336"
-                                     "i334"
-                                     "i332"
-                                     "i330"
-                                     "i329"
-                                     "i328"
-                                     "i327"
-                                     "i326"
-                                     "i325"
-                                     "i323"
-                                     "i322"
-                                     "i320"
-                                     "i318"
-                                     "i316"
-                                     "i314"
-                                     "i312"
-                                     "i310"
-                                     "i308"
-                                     "i306"
-                                     "i304"
-                                     "i302"
-                                     "i300"
-                                     "i298"
-                                     "i296"
-                                     "i294"
-                                     "i292"
-                                     "i290"
-                                     "i288"
-                                     "i286"
-                                     "i284"
-                                     "i282"
-                                     "i280"
-                                     "i278"
-                                     "i276"
-                                     "i274"
-                                     "i272"
-                                     "i270"
-                                     "i268"
-                                     "i266"
-                                     "i264"
-                                     "i262"
-                                     "i260"
-                                     "i258"
-                                     "i256"
-                                     "i255"
-                                     "i253"
-                                     "i251"
-                                     "i250"
-                                     "i249"
-                                     "i248"
-                                     "i247"
-                                     "i245"
-                                     "i243"
-                                     "i241"
-                                     "i238"
-                                     "i236"
-                                     "i234"
-                                     "i232"
-                                     "i230"
-                                     "i228"
-                                     "i226"
-                                     "i224"
-                                     "i222"
-                                     "i220"
-                                     "i218"
-                                     "i216"
-                                     "i214"
-                                     "i212"
-                                     "i210"
-                                     "i208"
-                                     "i206"
-                                     "i204"
-                                     "i202"))
-                                  #(ribcage
-                                    (define-structure
-                                      define-expansion-accessors
-                                      define-expansion-constructors)
-                                    ((top) (top) (top))
-                                    ("i40" "i39" "i38")))
-                                 (hygiene guile)))
-                          (values '_ #{ids 3758}#)
-                          (values
-                            'any
-                            (cons (cons #{p 3756}# #{n 3757}#) #{ids 3758}#))))
-                      (let ((#{tmp 3767}# #{p 3756}#))
-                        (let ((#{tmp 3768}#
-                                ($sc-dispatch #{tmp 3767}# '(any any))))
-                          (if (if #{tmp 3768}#
-                                (@apply
-                                  (lambda (#{x 3771}# #{dots 3772}#)
-                                    (#{ellipsis? 439}# #{dots 3772}#))
-                                  #{tmp 3768}#)
-                                #f)
-                            (@apply
-                              (lambda (#{x 3775}# #{dots 3776}#)
-                                (call-with-values
-                                  (lambda ()
-                                    (#{cvt 3733}#
-                                      #{x 3775}#
-                                      (#{1+}# #{n 3757}#)
-                                      #{ids 3758}#))
-                                  (lambda (#{p 3778}# #{ids 3779}#)
-                                    (values
-                                      (if (eq? #{p 3778}# 'any)
-                                        'each-any
-                                        (vector 'each #{p 3778}#))
-                                      #{ids 3779}#))))
-                              #{tmp 3768}#)
-                            (let ((#{tmp 3782}#
-                                    ($sc-dispatch
-                                      #{tmp 3767}#
-                                      '(any any . any))))
-                              (if (if #{tmp 3782}#
-                                    (@apply
-                                      (lambda (#{x 3786}#
-                                               #{dots 3787}#
-                                               #{ys 3788}#)
-                                        (#{ellipsis? 439}# #{dots 3787}#))
-                                      #{tmp 3782}#)
-                                    #f)
-                                (@apply
-                                  (lambda (#{x 3792}#
-                                           #{dots 3793}#
-                                           #{ys 3794}#)
-                                    (call-with-values
-                                      (lambda ()
-                                        (#{cvt* 3729}#
-                                          #{ys 3794}#
-                                          #{n 3757}#
-                                          #{ids 3758}#))
-                                      (lambda (#{ys 3795}# #{ids 3796}#)
-                                        (call-with-values
-                                          (lambda ()
-                                            (#{cvt 3733}#
-                                              #{x 3792}#
-                                              (#{1+}# #{n 3757}#)
-                                              #{ids 3796}#))
-                                          (lambda (#{x 3799}# #{ids 3800}#)
-                                            (call-with-values
-                                              (lambda ()
-                                                (#{v-reverse 3731}#
-                                                  #{ys 3795}#))
-                                              (lambda (#{ys 3803}# #{e 3804}#)
-                                                (values
-                                                  (vector
-                                                    'each+
-                                                    #{x 3799}#
-                                                    #{ys 3803}#
-                                                    #{e 3804}#)
-                                                  #{ids 3800}#))))))))
-                                  #{tmp 3782}#)
-                                (let ((#{tmp 3808}#
-                                        ($sc-dispatch
-                                          #{tmp 3767}#
-                                          '(any . any))))
-                                  (if #{tmp 3808}#
-                                    (@apply
-                                      (lambda (#{x 3811}# #{y 3812}#)
-                                        (call-with-values
-                                          (lambda ()
-                                            (#{cvt 3733}#
-                                              #{y 3812}#
-                                              #{n 3757}#
-                                              #{ids 3758}#))
-                                          (lambda (#{y 3813}# #{ids 3814}#)
-                                            (call-with-values
-                                              (lambda ()
-                                                (#{cvt 3733}#
-                                                  #{x 3811}#
-                                                  #{n 3757}#
-                                                  #{ids 3814}#))
-                                              (lambda (#{x 3817}# #{ids 3818}#)
-                                                (values
-                                                  (cons #{x 3817}# #{y 3813}#)
-                                                  #{ids 3818}#))))))
-                                      #{tmp 3808}#)
-                                    (let ((#{tmp 3821}#
-                                            ($sc-dispatch #{tmp 3767}# '())))
-                                      (if #{tmp 3821}#
-                                        (@apply
-                                          (lambda () (values '() #{ids 3758}#))
-                                          #{tmp 3821}#)
-                                        (let ((#{tmp 3822}#
-                                                ($sc-dispatch
-                                                  #{tmp 3767}#
-                                                  '#(vector each-any))))
-                                          (if #{tmp 3822}#
-                                            (@apply
-                                              (lambda (#{x 3824}#)
-                                                (call-with-values
-                                                  (lambda ()
-                                                    (#{cvt 3733}#
-                                                      #{x 3824}#
-                                                      #{n 3757}#
-                                                      #{ids 3758}#))
-                                                  (lambda (#{p 3826}#
-                                                           #{ids 3827}#)
-                                                    (values
-                                                      (vector
-                                                        'vector
-                                                        #{p 3826}#)
-                                                      #{ids 3827}#))))
-                                              #{tmp 3822}#)
-                                            (let ((#{x 3831}# #{tmp 3767}#))
-                                              (values
-                                                (vector
-                                                  'atom
-                                                  (#{strip 449}#
-                                                    #{p 3756}#
-                                                    '(())))
-                                                #{ids 3758}#)))))))))))))))))
-               (#{cvt 3733}# #{pattern 3724}# 0 '()))))
-         (#{build-dispatch-call 3719}#
-           (lambda (#{pvars 3833}#
-                    #{exp 3834}#
-                    #{y 3835}#
-                    #{r 3836}#
-                    #{mod 3837}#)
-             (begin
-               (map cdr #{pvars 3833}#)
-               (let ((#{ids 3845}# (map car #{pvars 3833}#)))
-                 (let ((#{labels 3849}#
-                         (#{gen-labels 358}# #{ids 3845}#))
-                       (#{new-vars 3850}#
-                         (map #{gen-var 451}# #{ids 3845}#)))
-                   (#{build-primcall 291}#
-                     #f
-                     'apply
-                     (list (#{build-simple-lambda 285}#
-                             #f
-                             (map syntax->datum #{ids 3845}#)
-                             #f
-                             #{new-vars 3850}#
-                             '()
-                             (#{chi 423}#
-                               #{exp 3834}#
-                               (#{extend-env 331}#
-                                 #{labels 3849}#
-                                 (map (lambda (#{var 3853}# #{level 3854}#)
-                                        (cons 'syntax
-                                              (cons #{var 3853}#
-                                                    #{level 3854}#)))
-                                      #{new-vars 3850}#
-                                      (map cdr #{pvars 3833}#))
-                                 #{r 3836}#)
-                               (#{make-binding-wrap 387}#
-                                 #{ids 3845}#
-                                 #{labels 3849}#
-                                 '(()))
-                               #{mod 3837}#))
-                           #{y 3835}#)))))))
-         (#{gen-clause 3721}#
-           (lambda (#{x 3860}#
-                    #{keys 3861}#
-                    #{clauses 3862}#
-                    #{r 3863}#
-                    #{pat 3864}#
-                    #{fender 3865}#
-                    #{exp 3866}#
-                    #{mod 3867}#)
-             (call-with-values
-               (lambda ()
-                 (#{convert-pattern 3717}#
-                   #{pat 3864}#
-                   #{keys 3861}#))
-               (lambda (#{p 3876}# #{pvars 3877}#)
-                 (if (not (#{distinct-bound-ids? 405}#
-                            (map car #{pvars 3877}#)))
-                   (syntax-violation
-                     'syntax-case
-                     "duplicate pattern variable"
-                     #{pat 3864}#)
-                   (if (not (and-map
-                              (lambda (#{x 3884}#)
-                                (not (#{ellipsis? 439}# (car #{x 3884}#))))
-                              #{pvars 3877}#))
-                     (syntax-violation
-                       'syntax-case
-                       "misplaced ellipsis"
-                       #{pat 3864}#)
-                     (let ((#{y 3888}# (#{gen-var 451}# 'tmp)))
-                       (#{build-call 267}#
-                         #f
-                         (#{build-simple-lambda 285}#
-                           #f
-                           (list 'tmp)
-                           #f
-                           (list #{y 3888}#)
-                           '()
-                           (let ((#{y 3892}#
-                                   (#{build-lexical-reference 273}#
-                                     'value
-                                     #f
-                                     'tmp
-                                     #{y 3888}#)))
-                             (#{build-conditional 269}#
-                               #f
-                               (let ((#{tmp 3895}# #{fender 3865}#))
-                                 (let ((#{tmp 3896}#
-                                         ($sc-dispatch
-                                           #{tmp 3895}#
-                                           '#(atom #t))))
-                                   (if #{tmp 3896}#
-                                     (@apply
-                                       (lambda () #{y 3892}#)
-                                       #{tmp 3896}#)
-                                     (let ((#{_ 3898}# #{tmp 3895}#))
-                                       (#{build-conditional 269}#
-                                         #f
-                                         #{y 3892}#
-                                         (#{build-dispatch-call 3719}#
-                                           #{pvars 3877}#
-                                           #{fender 3865}#
-                                           #{y 3892}#
-                                           #{r 3863}#
-                                           #{mod 3867}#)
-                                         (#{build-data 295}# #f #f))))))
-                               (#{build-dispatch-call 3719}#
-                                 #{pvars 3877}#
-                                 #{exp 3866}#
-                                 #{y 3892}#
-                                 #{r 3863}#
-                                 #{mod 3867}#)
-                               (#{gen-syntax-case 3723}#
-                                 #{x 3860}#
-                                 #{keys 3861}#
-                                 #{clauses 3862}#
-                                 #{r 3863}#
-                                 #{mod 3867}#))))
-                         (list (if (eq? #{p 3876}# 'any)
-                                 (#{build-primcall 291}#
-                                   #f
-                                   'list
-                                   (list #{x 3860}#))
-                                 (#{build-primcall 291}#
-                                   #f
-                                   '$sc-dispatch
-                                   (list #{x 3860}#
-                                         (#{build-data 295}#
-                                           #f
-                                           #{p 3876}#)))))))))))))
-         (#{gen-syntax-case 3723}#
-           (lambda (#{x 3904}#
-                    #{keys 3905}#
-                    #{clauses 3906}#
-                    #{r 3907}#
-                    #{mod 3908}#)
-             (if (null? #{clauses 3906}#)
-               (#{build-primcall 291}#
-                 #f
-                 'syntax-violation
-                 (list (#{build-data 295}# #f #f)
-                       (#{build-data 295}#
-                         #f
-                         "source expression failed to match any pattern")
-                       #{x 3904}#))
-               (let ((#{tmp 3917}# (car #{clauses 3906}#)))
-                 (let ((#{tmp 3918}#
-                         ($sc-dispatch #{tmp 3917}# '(any any))))
-                   (if #{tmp 3918}#
-                     (@apply
-                       (lambda (#{pat 3921}# #{exp 3922}#)
-                         (if (if (#{id? 343}# #{pat 3921}#)
-                               (and-map
-                                 (lambda (#{x 3925}#)
-                                   (not (#{free-id=? 399}#
-                                          #{pat 3921}#
-                                          #{x 3925}#)))
-                                 (cons '#(syntax-object
-                                          ...
-                                          ((top)
-                                           #(ribcage
-                                             #(pat exp)
-                                             #((top) (top))
-                                             #("i3919" "i3920"))
-                                           #(ribcage () () ())
-                                           #(ribcage
-                                             #(x keys clauses r mod)
-                                             #((top) (top) (top) (top) (top))
-                                             #("i3909"
-                                               "i3910"
-                                               "i3911"
-                                               "i3912"
-                                               "i3913"))
-                                           #(ribcage
-                                             (gen-syntax-case
-                                               gen-clause
-                                               build-dispatch-call
-                                               convert-pattern)
-                                             ((top) (top) (top) (top))
-                                             ("i3722" "i3720" "i3718" "i3716"))
-                                           #(ribcage
-                                             (lambda-var-list
-                                               gen-var
-                                               strip
-                                               chi-lambda-case
-                                               lambda*-formals
-                                               chi-simple-lambda
-                                               lambda-formals
-                                               ellipsis?
-                                               chi-void
-                                               eval-local-transformer
-                                               chi-local-syntax
-                                               chi-body
-                                               chi-macro
-                                               chi-call
-                                               chi-expr
-                                               chi
-                                               syntax-type
-                                               chi-when-list
-                                               chi-install-global
-                                               chi-top-sequence
-                                               chi-sequence
-                                               source-wrap
-                                               wrap
-                                               bound-id-member?
-                                               distinct-bound-ids?
-                                               valid-bound-ids?
-                                               bound-id=?
-                                               free-id=?
-                                               id-var-name
-                                               same-marks?
-                                               join-marks
-                                               join-wraps
-                                               smart-append
-                                               make-binding-wrap
-                                               extend-ribcage!
-                                               make-empty-ribcage
-                                               new-mark
-                                               anti-mark
-                                               the-anti-mark
-                                               top-marked?
-                                               top-wrap
-                                               empty-wrap
-                                               set-ribcage-labels!
-                                               set-ribcage-marks!
-                                               set-ribcage-symnames!
-                                               ribcage-labels
-                                               ribcage-marks
-                                               ribcage-symnames
-                                               ribcage?
-                                               make-ribcage
-                                               gen-labels
-                                               gen-label
-                                               make-rename
-                                               rename-marks
-                                               rename-new
-                                               rename-old
-                                               subst-rename?
-                                               wrap-subst
-                                               wrap-marks
-                                               make-wrap
-                                               id-sym-name&marks
-                                               id-sym-name
-                                               id?
-                                               nonsymbol-id?
-                                               global-extend
-                                               lookup
-                                               macros-only-env
-                                               extend-var-env
-                                               extend-env
-                                               null-env
-                                               binding-value
-                                               binding-type
-                                               make-binding
-                                               arg-check
-                                               source-annotation
-                                               no-source
-                                               set-syntax-object-module!
-                                               set-syntax-object-wrap!
-                                               set-syntax-object-expression!
-                                               syntax-object-module
-                                               syntax-object-wrap
-                                               syntax-object-expression
-                                               syntax-object?
-                                               make-syntax-object
-                                               build-lexical-var
-                                               build-letrec
-                                               build-named-let
-                                               build-let
-                                               build-sequence
-                                               build-data
-                                               build-primref
-                                               build-primcall
-                                               build-lambda-case
-                                               build-case-lambda
-                                               build-simple-lambda
-                                               build-global-definition
-                                               build-global-assignment
-                                               build-global-reference
-                                               analyze-variable
-                                               build-lexical-assignment
-                                               build-lexical-reference
-                                               build-dynlet
-                                               build-conditional
-                                               build-call
-                                               build-void
-                                               maybe-name-value!
-                                               decorate-source
-                                               get-global-definition-hook
-                                               put-global-definition-hook
-                                               gensym-hook
-                                               local-eval-hook
-                                               top-level-eval-hook
-                                               fx<
-                                               fx=
-                                               fx-
-                                               fx+
-                                               set-lambda-meta!
-                                               lambda-meta
-                                               lambda?
-                                               make-dynlet
-                                               make-letrec
-                                               make-let
-                                               make-lambda-case
-                                               make-lambda
-                                               make-seq
-                                               make-primcall
-                                               make-call
-                                               make-conditional
-                                               make-toplevel-define
-                                               make-toplevel-set
-                                               make-toplevel-ref
-                                               make-module-set
-                                               make-module-ref
-                                               make-lexical-set
-                                               make-lexical-ref
-                                               make-primitive-ref
-                                               make-const
-                                               make-void)
-                                             ((top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top)
-                                              (top))
-                                             ("i452"
-                                              "i450"
-                                              "i448"
-                                              "i446"
-                                              "i444"
-                                              "i442"
-                                              "i440"
-                                              "i438"
-                                              "i436"
-                                              "i434"
-                                              "i432"
-                                              "i430"
-                                              "i428"
-                                              "i426"
-                                              "i424"
-                                              "i422"
-                                              "i420"
-                                              "i418"
-                                              "i416"
-                                              "i414"
-                                              "i412"
-                                              "i410"
-                                              "i408"
-                                              "i406"
-                                              "i404"
-                                              "i402"
-                                              "i400"
-                                              "i398"
-                                              "i396"
-                                              "i394"
-                                              "i392"
-                                              "i390"
-                                              "i388"
-                                              "i386"
-                                              "i384"
-                                              "i383"
-                                              "i382"
-                                              "i380"
-                                              "i379"
-                                              "i378"
-                                              "i377"
-                                              "i376"
-                                              "i374"
-                                              "i372"
-                                              "i370"
-                                              "i368"
-                                              "i366"
-                                              "i364"
-                                              "i362"
-                                              "i360"
-                                              "i357"
-                                              "i355"
-                                              "i354"
-                                              "i353"
-                                              "i352"
-                                              "i351"
-                                              "i350"
-                                              "i349"
-                                              "i348"
-                                              "i347"
-                                              "i345"
-                                              "i344"
-                                              "i342"
-                                              "i340"
-                                              "i338"
-                                              "i336"
-                                              "i334"
-                                              "i332"
-                                              "i330"
-                                              "i329"
-                                              "i328"
-                                              "i327"
-                                              "i326"
-                                              "i325"
-                                              "i323"
-                                              "i322"
-                                              "i320"
-                                              "i318"
-                                              "i316"
-                                              "i314"
-                                              "i312"
-                                              "i310"
-                                              "i308"
-                                              "i306"
-                                              "i304"
-                                              "i302"
-                                              "i300"
-                                              "i298"
-                                              "i296"
-                                              "i294"
-                                              "i292"
-                                              "i290"
-                                              "i288"
-                                              "i286"
-                                              "i284"
-                                              "i282"
-                                              "i280"
-                                              "i278"
-                                              "i276"
-                                              "i274"
-                                              "i272"
-                                              "i270"
-                                              "i268"
-                                              "i266"
-                                              "i264"
-                                              "i262"
-                                              "i260"
-                                              "i258"
-                                              "i256"
-                                              "i255"
-                                              "i253"
-                                              "i251"
-                                              "i250"
-                                              "i249"
-                                              "i248"
-                                              "i247"
-                                              "i245"
-                                              "i243"
-                                              "i241"
-                                              "i238"
-                                              "i236"
-                                              "i234"
-                                              "i232"
-                                              "i230"
-                                              "i228"
-                                              "i226"
-                                              "i224"
-                                              "i222"
-                                              "i220"
-                                              "i218"
-                                              "i216"
-                                              "i214"
-                                              "i212"
-                                              "i210"
-                                              "i208"
-                                              "i206"
-                                              "i204"
-                                              "i202"))
-                                           #(ribcage
-                                             (define-structure
-                                               define-expansion-accessors
-                                               define-expansion-constructors)
-                                             ((top) (top) (top))
-                                             ("i40" "i39" "i38")))
-                                          (hygiene guile))
-                                       #{keys 3905}#))
-                               #f)
-                           (if (#{free-id=? 399}#
-                                 '#(syntax-object
-                                    pad
-                                    ((top)
-                                     #(ribcage
-                                       #(pat exp)
-                                       #((top) (top))
-                                       #("i3919" "i3920"))
-                                     #(ribcage () () ())
-                                     #(ribcage
-                                       #(x keys clauses r mod)
-                                       #((top) (top) (top) (top) (top))
-                                       #("i3909"
-                                         "i3910"
-                                         "i3911"
-                                         "i3912"
-                                         "i3913"))
-                                     #(ribcage
-                                       (gen-syntax-case
-                                         gen-clause
-                                         build-dispatch-call
-                                         convert-pattern)
-                                       ((top) (top) (top) (top))
-                                       ("i3722" "i3720" "i3718" "i3716"))
-                                     #(ribcage
-                                       (lambda-var-list
-                                         gen-var
-                                         strip
-                                         chi-lambda-case
-                                         lambda*-formals
-                                         chi-simple-lambda
-                                         lambda-formals
-                                         ellipsis?
-                                         chi-void
-                                         eval-local-transformer
-                                         chi-local-syntax
-                                         chi-body
-                                         chi-macro
-                                         chi-call
-                                         chi-expr
-                                         chi
-                                         syntax-type
-                                         chi-when-list
-                                         chi-install-global
-                                         chi-top-sequence
-                                         chi-sequence
-                                         source-wrap
-                                         wrap
-                                         bound-id-member?
-                                         distinct-bound-ids?
-                                         valid-bound-ids?
-                                         bound-id=?
-                                         free-id=?
-                                         id-var-name
-                                         same-marks?
-                                         join-marks
-                                         join-wraps
-                                         smart-append
-                                         make-binding-wrap
-                                         extend-ribcage!
-                                         make-empty-ribcage
-                                         new-mark
-                                         anti-mark
-                                         the-anti-mark
-                                         top-marked?
-                                         top-wrap
-                                         empty-wrap
-                                         set-ribcage-labels!
-                                         set-ribcage-marks!
-                                         set-ribcage-symnames!
-                                         ribcage-labels
-                                         ribcage-marks
-                                         ribcage-symnames
-                                         ribcage?
-                                         make-ribcage
-                                         gen-labels
-                                         gen-label
-                                         make-rename
-                                         rename-marks
-                                         rename-new
-                                         rename-old
-                                         subst-rename?
-                                         wrap-subst
-                                         wrap-marks
-                                         make-wrap
-                                         id-sym-name&marks
-                                         id-sym-name
-                                         id?
-                                         nonsymbol-id?
-                                         global-extend
-                                         lookup
-                                         macros-only-env
-                                         extend-var-env
-                                         extend-env
-                                         null-env
-                                         binding-value
-                                         binding-type
-                                         make-binding
-                                         arg-check
-                                         source-annotation
-                                         no-source
-                                         set-syntax-object-module!
-                                         set-syntax-object-wrap!
-                                         set-syntax-object-expression!
-                                         syntax-object-module
-                                         syntax-object-wrap
-                                         syntax-object-expression
-                                         syntax-object?
-                                         make-syntax-object
-                                         build-lexical-var
-                                         build-letrec
-                                         build-named-let
-                                         build-let
-                                         build-sequence
-                                         build-data
-                                         build-primref
-                                         build-primcall
-                                         build-lambda-case
-                                         build-case-lambda
-                                         build-simple-lambda
-                                         build-global-definition
-                                         build-global-assignment
-                                         build-global-reference
-                                         analyze-variable
-                                         build-lexical-assignment
-                                         build-lexical-reference
-                                         build-dynlet
-                                         build-conditional
-                                         build-call
-                                         build-void
-                                         maybe-name-value!
-                                         decorate-source
-                                         get-global-definition-hook
-                                         put-global-definition-hook
-                                         gensym-hook
-                                         local-eval-hook
-                                         top-level-eval-hook
-                                         fx<
-                                         fx=
-                                         fx-
-                                         fx+
-                                         set-lambda-meta!
-                                         lambda-meta
-                                         lambda?
-                                         make-dynlet
-                                         make-letrec
-                                         make-let
-                                         make-lambda-case
-                                         make-lambda
-                                         make-seq
-                                         make-primcall
-                                         make-call
-                                         make-conditional
-                                         make-toplevel-define
-                                         make-toplevel-set
-                                         make-toplevel-ref
-                                         make-module-set
-                                         make-module-ref
-                                         make-lexical-set
-                                         make-lexical-ref
-                                         make-primitive-ref
-                                         make-const
-                                         make-void)
-                                       ((top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top))
-                                       ("i452"
-                                        "i450"
-                                        "i448"
-                                        "i446"
-                                        "i444"
-                                        "i442"
-                                        "i440"
-                                        "i438"
-                                        "i436"
-                                        "i434"
-                                        "i432"
-                                        "i430"
-                                        "i428"
-                                        "i426"
-                                        "i424"
-                                        "i422"
-                                        "i420"
-                                        "i418"
-                                        "i416"
-                                        "i414"
-                                        "i412"
-                                        "i410"
-                                        "i408"
-                                        "i406"
-                                        "i404"
-                                        "i402"
-                                        "i400"
-                                        "i398"
-                                        "i396"
-                                        "i394"
-                                        "i392"
-                                        "i390"
-                                        "i388"
-                                        "i386"
-                                        "i384"
-                                        "i383"
-                                        "i382"
-                                        "i380"
-                                        "i379"
-                                        "i378"
-                                        "i377"
-                                        "i376"
-                                        "i374"
-                                        "i372"
-                                        "i370"
-                                        "i368"
-                                        "i366"
-                                        "i364"
-                                        "i362"
-                                        "i360"
-                                        "i357"
-                                        "i355"
-                                        "i354"
-                                        "i353"
-                                        "i352"
-                                        "i351"
-                                        "i350"
-                                        "i349"
-                                        "i348"
-                                        "i347"
-                                        "i345"
-                                        "i344"
-                                        "i342"
-                                        "i340"
-                                        "i338"
-                                        "i336"
-                                        "i334"
-                                        "i332"
-                                        "i330"
-                                        "i329"
-                                        "i328"
-                                        "i327"
-                                        "i326"
-                                        "i325"
-                                        "i323"
-                                        "i322"
-                                        "i320"
-                                        "i318"
-                                        "i316"
-                                        "i314"
-                                        "i312"
-                                        "i310"
-                                        "i308"
-                                        "i306"
-                                        "i304"
-                                        "i302"
-                                        "i300"
-                                        "i298"
-                                        "i296"
-                                        "i294"
-                                        "i292"
-                                        "i290"
-                                        "i288"
-                                        "i286"
-                                        "i284"
-                                        "i282"
-                                        "i280"
-                                        "i278"
-                                        "i276"
-                                        "i274"
-                                        "i272"
-                                        "i270"
-                                        "i268"
-                                        "i266"
-                                        "i264"
-                                        "i262"
-                                        "i260"
-                                        "i258"
-                                        "i256"
-                                        "i255"
-                                        "i253"
-                                        "i251"
-                                        "i250"
-                                        "i249"
-                                        "i248"
-                                        "i247"
-                                        "i245"
-                                        "i243"
-                                        "i241"
-                                        "i238"
-                                        "i236"
-                                        "i234"
-                                        "i232"
-                                        "i230"
-                                        "i228"
-                                        "i226"
-                                        "i224"
-                                        "i222"
-                                        "i220"
-                                        "i218"
-                                        "i216"
-                                        "i214"
-                                        "i212"
-                                        "i210"
-                                        "i208"
-                                        "i206"
-                                        "i204"
-                                        "i202"))
-                                     #(ribcage
-                                       (define-structure
-                                         define-expansion-accessors
-                                         define-expansion-constructors)
-                                       ((top) (top) (top))
-                                       ("i40" "i39" "i38")))
-                                    (hygiene guile))
-                                 '#(syntax-object
-                                    _
-                                    ((top)
-                                     #(ribcage
-                                       #(pat exp)
-                                       #((top) (top))
-                                       #("i3919" "i3920"))
-                                     #(ribcage () () ())
-                                     #(ribcage
-                                       #(x keys clauses r mod)
-                                       #((top) (top) (top) (top) (top))
-                                       #("i3909"
-                                         "i3910"
-                                         "i3911"
-                                         "i3912"
-                                         "i3913"))
-                                     #(ribcage
-                                       (gen-syntax-case
-                                         gen-clause
-                                         build-dispatch-call
-                                         convert-pattern)
-                                       ((top) (top) (top) (top))
-                                       ("i3722" "i3720" "i3718" "i3716"))
-                                     #(ribcage
-                                       (lambda-var-list
-                                         gen-var
-                                         strip
-                                         chi-lambda-case
-                                         lambda*-formals
-                                         chi-simple-lambda
-                                         lambda-formals
-                                         ellipsis?
-                                         chi-void
-                                         eval-local-transformer
-                                         chi-local-syntax
-                                         chi-body
-                                         chi-macro
-                                         chi-call
-                                         chi-expr
-                                         chi
-                                         syntax-type
-                                         chi-when-list
-                                         chi-install-global
-                                         chi-top-sequence
-                                         chi-sequence
-                                         source-wrap
-                                         wrap
-                                         bound-id-member?
-                                         distinct-bound-ids?
-                                         valid-bound-ids?
-                                         bound-id=?
-                                         free-id=?
-                                         id-var-name
-                                         same-marks?
-                                         join-marks
-                                         join-wraps
-                                         smart-append
-                                         make-binding-wrap
-                                         extend-ribcage!
-                                         make-empty-ribcage
-                                         new-mark
-                                         anti-mark
-                                         the-anti-mark
-                                         top-marked?
-                                         top-wrap
-                                         empty-wrap
-                                         set-ribcage-labels!
-                                         set-ribcage-marks!
-                                         set-ribcage-symnames!
-                                         ribcage-labels
-                                         ribcage-marks
-                                         ribcage-symnames
-                                         ribcage?
-                                         make-ribcage
-                                         gen-labels
-                                         gen-label
-                                         make-rename
-                                         rename-marks
-                                         rename-new
-                                         rename-old
-                                         subst-rename?
-                                         wrap-subst
-                                         wrap-marks
-                                         make-wrap
-                                         id-sym-name&marks
-                                         id-sym-name
-                                         id?
-                                         nonsymbol-id?
-                                         global-extend
-                                         lookup
-                                         macros-only-env
-                                         extend-var-env
-                                         extend-env
-                                         null-env
-                                         binding-value
-                                         binding-type
-                                         make-binding
-                                         arg-check
-                                         source-annotation
-                                         no-source
-                                         set-syntax-object-module!
-                                         set-syntax-object-wrap!
-                                         set-syntax-object-expression!
-                                         syntax-object-module
-                                         syntax-object-wrap
-                                         syntax-object-expression
-                                         syntax-object?
-                                         make-syntax-object
-                                         build-lexical-var
-                                         build-letrec
-                                         build-named-let
-                                         build-let
-                                         build-sequence
-                                         build-data
-                                         build-primref
-                                         build-primcall
-                                         build-lambda-case
-                                         build-case-lambda
-                                         build-simple-lambda
-                                         build-global-definition
-                                         build-global-assignment
-                                         build-global-reference
-                                         analyze-variable
-                                         build-lexical-assignment
-                                         build-lexical-reference
-                                         build-dynlet
-                                         build-conditional
-                                         build-call
-                                         build-void
-                                         maybe-name-value!
-                                         decorate-source
-                                         get-global-definition-hook
-                                         put-global-definition-hook
-                                         gensym-hook
-                                         local-eval-hook
-                                         top-level-eval-hook
-                                         fx<
-                                         fx=
-                                         fx-
-                                         fx+
-                                         set-lambda-meta!
-                                         lambda-meta
-                                         lambda?
-                                         make-dynlet
-                                         make-letrec
-                                         make-let
-                                         make-lambda-case
-                                         make-lambda
-                                         make-seq
-                                         make-primcall
-                                         make-call
-                                         make-conditional
-                                         make-toplevel-define
-                                         make-toplevel-set
-                                         make-toplevel-ref
-                                         make-module-set
-                                         make-module-ref
-                                         make-lexical-set
-                                         make-lexical-ref
-                                         make-primitive-ref
-                                         make-const
-                                         make-void)
-                                       ((top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top)
-                                        (top))
-                                       ("i452"
-                                        "i450"
-                                        "i448"
-                                        "i446"
-                                        "i444"
-                                        "i442"
-                                        "i440"
-                                        "i438"
-                                        "i436"
-                                        "i434"
-                                        "i432"
-                                        "i430"
-                                        "i428"
-                                        "i426"
-                                        "i424"
-                                        "i422"
-                                        "i420"
-                                        "i418"
-                                        "i416"
-                                        "i414"
-                                        "i412"
-                                        "i410"
-                                        "i408"
-                                        "i406"
-                                        "i404"
-                                        "i402"
-                                        "i400"
-                                        "i398"
-                                        "i396"
-                                        "i394"
-                                        "i392"
-                                        "i390"
-                                        "i388"
-                                        "i386"
-                                        "i384"
-                                        "i383"
-                                        "i382"
-                                        "i380"
-                                        "i379"
-                                        "i378"
-                                        "i377"
-                                        "i376"
-                                        "i374"
-                                        "i372"
-                                        "i370"
-                                        "i368"
-                                        "i366"
-                                        "i364"
-                                        "i362"
-                                        "i360"
-                                        "i357"
-                                        "i355"
-                                        "i354"
-                                        "i353"
-                                        "i352"
-                                        "i351"
-                                        "i350"
-                                        "i349"
-                                        "i348"
-                                        "i347"
-                                        "i345"
-                                        "i344"
-                                        "i342"
-                                        "i340"
-                                        "i338"
-                                        "i336"
-                                        "i334"
-                                        "i332"
-                                        "i330"
-                                        "i329"
-                                        "i328"
-                                        "i327"
-                                        "i326"
-                                        "i325"
-                                        "i323"
-                                        "i322"
-                                        "i320"
-                                        "i318"
-                                        "i316"
-                                        "i314"
-                                        "i312"
-                                        "i310"
-                                        "i308"
-                                        "i306"
-                                        "i304"
-                                        "i302"
-                                        "i300"
-                                        "i298"
-                                        "i296"
-                                        "i294"
-                                        "i292"
-                                        "i290"
-                                        "i288"
-                                        "i286"
-                                        "i284"
-                                        "i282"
-                                        "i280"
-                                        "i278"
-                                        "i276"
-                                        "i274"
-                                        "i272"
-                                        "i270"
-                                        "i268"
-                                        "i266"
-                                        "i264"
-                                        "i262"
-                                        "i260"
-                                        "i258"
-                                        "i256"
-                                        "i255"
-                                        "i253"
-                                        "i251"
-                                        "i250"
-                                        "i249"
-                                        "i248"
-                                        "i247"
-                                        "i245"
-                                        "i243"
-                                        "i241"
-                                        "i238"
-                                        "i236"
-                                        "i234"
-                                        "i232"
-                                        "i230"
-                                        "i228"
-                                        "i226"
-                                        "i224"
-                                        "i222"
-                                        "i220"
-                                        "i218"
-                                        "i216"
-                                        "i214"
-                                        "i212"
-                                        "i210"
-                                        "i208"
-                                        "i206"
-                                        "i204"
-                                        "i202"))
-                                     #(ribcage
-                                       (define-structure
-                                         define-expansion-accessors
-                                         define-expansion-constructors)
-                                       ((top) (top) (top))
-                                       ("i40" "i39" "i38")))
-                                    (hygiene guile)))
-                             (#{chi 423}#
-                               #{exp 3922}#
-                               #{r 3907}#
-                               '(())
-                               #{mod 3908}#)
-                             (let ((#{labels 3930}# (list (#{gen-label 356}#)))
-                                   (#{var 3931}#
-                                     (#{gen-var 451}# #{pat 3921}#)))
-                               (#{build-call 267}#
-                                 #f
-                                 (#{build-simple-lambda 285}#
+                                                 (lambda (#{name 1901}#)
+                                                   (values
+                                                     'define-form
+                                                     (#{wrap 427}#
+                                                       #{name 1901}#
+                                                       #{w 1799}#
+                                                       #{mod 1802}#)
+                                                     '(#(syntax-object
+                                                         if
+                                                         ((top)
+                                                          #(ribcage
+                                                            #(name)
+                                                            #((top))
+                                                            #("i1900"))
+                                                          #(ribcage () () ())
+                                                          #(ribcage () () ())
+                                                          #(ribcage
+                                                            #(ftype
+                                                              fval
+                                                              fe
+                                                              fw
+                                                              fs
+                                                              fmod)
+                                                            #((top)
+                                                              (top)
+                                                              (top)
+                                                              (top)
+                                                              (top)
+                                                              (top))
+                                                            #("i1840"
+                                                              "i1841"
+                                                              "i1842"
+                                                              "i1843"
+                                                              "i1844"
+                                                              "i1845"))
+                                                          #(ribcage () () ())
+                                                          #(ribcage
+                                                            #(first)
+                                                            #((top))
+                                                            #("i1832"))
+                                                          #(ribcage () () ())
+                                                          #(ribcage () () ())
+                                                          #(ribcage () () ())
+                                                          #(ribcage
+                                                            #(e
+                                                              r
+                                                              w
+                                                              s
+                                                              rib
+                                                              mod
+                                                              for-car?)
+                                                            #((top)
+                                                              (top)
+                                                              (top)
+                                                              (top)
+                                                              (top)
+                                                              (top)
+                                                              (top))
+                                                            #("i1804"
+                                                              "i1805"
+                                                              "i1806"
+                                                              "i1807"
+                                                              "i1808"
+                                                              "i1809"
+                                                              "i1810"))
+                                                          #(ribcage
+                                                            (lambda-var-list
+                                                              gen-var
+                                                              strip
+                                                              chi-lambda-case
+                                                              lambda*-formals
+                                                              chi-simple-lambda
+                                                              lambda-formals
+                                                              ellipsis?
+                                                              chi-void
+                                                              
eval-local-transformer
+                                                              chi-local-syntax
+                                                              chi-body
+                                                              chi-macro
+                                                              chi-call
+                                                              chi-expr
+                                                              chi
+                                                              syntax-type
+                                                              chi-when-list
+                                                              
chi-install-global
+                                                              chi-top-sequence
+                                                              chi-sequence
+                                                              source-wrap
+                                                              wrap
+                                                              bound-id-member?
+                                                              
distinct-bound-ids?
+                                                              valid-bound-ids?
+                                                              bound-id=?
+                                                              free-id=?
+                                                              id-var-name
+                                                              same-marks?
+                                                              join-marks
+                                                              join-wraps
+                                                              smart-append
+                                                              make-binding-wrap
+                                                              extend-ribcage!
+                                                              
make-empty-ribcage
+                                                              new-mark
+                                                              anti-mark
+                                                              the-anti-mark
+                                                              top-marked?
+                                                              top-wrap
+                                                              empty-wrap
+                                                              
set-ribcage-labels!
+                                                              
set-ribcage-marks!
+                                                              
set-ribcage-symnames!
+                                                              ribcage-labels
+                                                              ribcage-marks
+                                                              ribcage-symnames
+                                                              ribcage?
+                                                              make-ribcage
+                                                              gen-labels
+                                                              gen-label
+                                                              make-rename
+                                                              rename-marks
+                                                              rename-new
+                                                              rename-old
+                                                              subst-rename?
+                                                              wrap-subst
+                                                              wrap-marks
+                                                              make-wrap
+                                                              id-sym-name&marks
+                                                              id-sym-name
+                                                              id?
+                                                              nonsymbol-id?
+                                                              global-extend
+                                                              lookup
+                                                              macros-only-env
+                                                              extend-var-env
+                                                              extend-env
+                                                              null-env
+                                                              binding-value
+                                                              binding-type
+                                                              make-binding
+                                                              arg-check
+                                                              source-annotation
+                                                              no-source
+                                                              
set-syntax-object-module!
+                                                              
set-syntax-object-wrap!
+                                                              
set-syntax-object-expression!
+                                                              
syntax-object-module
+                                                              
syntax-object-wrap
+                                                              
syntax-object-expression
+                                                              syntax-object?
+                                                              
make-syntax-object
+                                                              build-lexical-var
+                                                              build-letrec
+                                                              build-named-let
+                                                              build-let
+                                                              build-sequence
+                                                              build-data
+                                                              build-primref
+                                                              build-primcall
+                                                              build-lambda-case
+                                                              build-case-lambda
+                                                              
build-simple-lambda
+                                                              
build-global-definition
+                                                              
build-global-assignment
+                                                              
build-global-reference
+                                                              analyze-variable
+                                                              
build-lexical-assignment
+                                                              
build-lexical-reference
+                                                              build-dynlet
+                                                              build-conditional
+                                                              build-call
+                                                              build-void
+                                                              maybe-name-value!
+                                                              decorate-source
+                                                              
get-global-definition-hook
+                                                              
put-global-definition-hook
+                                                              gensym-hook
+                                                              local-eval-hook
+                                                              
top-level-eval-hook
+                                                              fx<
+                                                              fx=
+                                                              fx-
+                                                              fx+
+                                                              set-lambda-meta!
+                                                              lambda-meta
+                                                              lambda?
+                                                              make-dynlet
+                                                              make-letrec
+                                                              make-let
+                                                              make-lambda-case
+                                                              make-lambda
+                                                              make-seq
+                                                              make-primcall
+                                                              make-call
+                                                              make-conditional
+                                                              
make-toplevel-define
+                                                              make-toplevel-set
+                                                              make-toplevel-ref
+                                                              make-module-set
+                                                              make-module-ref
+                                                              make-lexical-set
+                                                              make-lexical-ref
+                                                              
make-primitive-ref
+                                                              make-const
+                                                              make-void)
+                                                            ((top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top))
+                                                            ("i470"
+                                                             "i468"
+                                                             "i466"
+                                                             "i464"
+                                                             "i462"
+                                                             "i460"
+                                                             "i458"
+                                                             "i456"
+                                                             "i454"
+                                                             "i452"
+                                                             "i450"
+                                                             "i448"
+                                                             "i446"
+                                                             "i444"
+                                                             "i442"
+                                                             "i440"
+                                                             "i438"
+                                                             "i436"
+                                                             "i434"
+                                                             "i432"
+                                                             "i430"
+                                                             "i428"
+                                                             "i426"
+                                                             "i424"
+                                                             "i422"
+                                                             "i420"
+                                                             "i418"
+                                                             "i416"
+                                                             "i414"
+                                                             "i412"
+                                                             "i410"
+                                                             "i408"
+                                                             "i406"
+                                                             "i404"
+                                                             "i402"
+                                                             "i401"
+                                                             "i399"
+                                                             "i396"
+                                                             "i395"
+                                                             "i394"
+                                                             "i392"
+                                                             "i391"
+                                                             "i389"
+                                                             "i387"
+                                                             "i385"
+                                                             "i383"
+                                                             "i381"
+                                                             "i379"
+                                                             "i377"
+                                                             "i375"
+                                                             "i372"
+                                                             "i370"
+                                                             "i369"
+                                                             "i367"
+                                                             "i365"
+                                                             "i363"
+                                                             "i361"
+                                                             "i360"
+                                                             "i359"
+                                                             "i358"
+                                                             "i356"
+                                                             "i355"
+                                                             "i352"
+                                                             "i350"
+                                                             "i348"
+                                                             "i346"
+                                                             "i344"
+                                                             "i342"
+                                                             "i340"
+                                                             "i339"
+                                                             "i338"
+                                                             "i336"
+                                                             "i334"
+                                                             "i333"
+                                                             "i330"
+                                                             "i329"
+                                                             "i327"
+                                                             "i325"
+                                                             "i323"
+                                                             "i321"
+                                                             "i319"
+                                                             "i317"
+                                                             "i315"
+                                                             "i313"
+                                                             "i311"
+                                                             "i308"
+                                                             "i306"
+                                                             "i304"
+                                                             "i302"
+                                                             "i300"
+                                                             "i298"
+                                                             "i296"
+                                                             "i294"
+                                                             "i292"
+                                                             "i290"
+                                                             "i288"
+                                                             "i286"
+                                                             "i284"
+                                                             "i282"
+                                                             "i280"
+                                                             "i278"
+                                                             "i276"
+                                                             "i274"
+                                                             "i272"
+                                                             "i270"
+                                                             "i268"
+                                                             "i266"
+                                                             "i264"
+                                                             "i262"
+                                                             "i261"
+                                                             "i258"
+                                                             "i256"
+                                                             "i255"
+                                                             "i254"
+                                                             "i253"
+                                                             "i252"
+                                                             "i250"
+                                                             "i248"
+                                                             "i246"
+                                                             "i243"
+                                                             "i241"
+                                                             "i239"
+                                                             "i237"
+                                                             "i235"
+                                                             "i233"
+                                                             "i231"
+                                                             "i229"
+                                                             "i227"
+                                                             "i225"
+                                                             "i223"
+                                                             "i221"
+                                                             "i219"
+                                                             "i217"
+                                                             "i215"
+                                                             "i213"
+                                                             "i211"
+                                                             "i209"
+                                                             "i207"))
+                                                          #(ribcage
+                                                            (define-structure
+                                                              
define-expansion-accessors
+                                                              
define-expansion-constructors)
+                                                            ((top) (top) (top))
+                                                            ("i45"
+                                                             "i44"
+                                                             "i43")))
+                                                         (hygiene guile))
+                                                       #(syntax-object
+                                                         #f
+                                                         ((top)
+                                                          #(ribcage
+                                                            #(name)
+                                                            #((top))
+                                                            #("i1900"))
+                                                          #(ribcage () () ())
+                                                          #(ribcage () () ())
+                                                          #(ribcage
+                                                            #(ftype
+                                                              fval
+                                                              fe
+                                                              fw
+                                                              fs
+                                                              fmod)
+                                                            #((top)
+                                                              (top)
+                                                              (top)
+                                                              (top)
+                                                              (top)
+                                                              (top))
+                                                            #("i1840"
+                                                              "i1841"
+                                                              "i1842"
+                                                              "i1843"
+                                                              "i1844"
+                                                              "i1845"))
+                                                          #(ribcage () () ())
+                                                          #(ribcage
+                                                            #(first)
+                                                            #((top))
+                                                            #("i1832"))
+                                                          #(ribcage () () ())
+                                                          #(ribcage () () ())
+                                                          #(ribcage () () ())
+                                                          #(ribcage
+                                                            #(e
+                                                              r
+                                                              w
+                                                              s
+                                                              rib
+                                                              mod
+                                                              for-car?)
+                                                            #((top)
+                                                              (top)
+                                                              (top)
+                                                              (top)
+                                                              (top)
+                                                              (top)
+                                                              (top))
+                                                            #("i1804"
+                                                              "i1805"
+                                                              "i1806"
+                                                              "i1807"
+                                                              "i1808"
+                                                              "i1809"
+                                                              "i1810"))
+                                                          #(ribcage
+                                                            (lambda-var-list
+                                                              gen-var
+                                                              strip
+                                                              chi-lambda-case
+                                                              lambda*-formals
+                                                              chi-simple-lambda
+                                                              lambda-formals
+                                                              ellipsis?
+                                                              chi-void
+                                                              
eval-local-transformer
+                                                              chi-local-syntax
+                                                              chi-body
+                                                              chi-macro
+                                                              chi-call
+                                                              chi-expr
+                                                              chi
+                                                              syntax-type
+                                                              chi-when-list
+                                                              
chi-install-global
+                                                              chi-top-sequence
+                                                              chi-sequence
+                                                              source-wrap
+                                                              wrap
+                                                              bound-id-member?
+                                                              
distinct-bound-ids?
+                                                              valid-bound-ids?
+                                                              bound-id=?
+                                                              free-id=?
+                                                              id-var-name
+                                                              same-marks?
+                                                              join-marks
+                                                              join-wraps
+                                                              smart-append
+                                                              make-binding-wrap
+                                                              extend-ribcage!
+                                                              
make-empty-ribcage
+                                                              new-mark
+                                                              anti-mark
+                                                              the-anti-mark
+                                                              top-marked?
+                                                              top-wrap
+                                                              empty-wrap
+                                                              
set-ribcage-labels!
+                                                              
set-ribcage-marks!
+                                                              
set-ribcage-symnames!
+                                                              ribcage-labels
+                                                              ribcage-marks
+                                                              ribcage-symnames
+                                                              ribcage?
+                                                              make-ribcage
+                                                              gen-labels
+                                                              gen-label
+                                                              make-rename
+                                                              rename-marks
+                                                              rename-new
+                                                              rename-old
+                                                              subst-rename?
+                                                              wrap-subst
+                                                              wrap-marks
+                                                              make-wrap
+                                                              id-sym-name&marks
+                                                              id-sym-name
+                                                              id?
+                                                              nonsymbol-id?
+                                                              global-extend
+                                                              lookup
+                                                              macros-only-env
+                                                              extend-var-env
+                                                              extend-env
+                                                              null-env
+                                                              binding-value
+                                                              binding-type
+                                                              make-binding
+                                                              arg-check
+                                                              source-annotation
+                                                              no-source
+                                                              
set-syntax-object-module!
+                                                              
set-syntax-object-wrap!
+                                                              
set-syntax-object-expression!
+                                                              
syntax-object-module
+                                                              
syntax-object-wrap
+                                                              
syntax-object-expression
+                                                              syntax-object?
+                                                              
make-syntax-object
+                                                              build-lexical-var
+                                                              build-letrec
+                                                              build-named-let
+                                                              build-let
+                                                              build-sequence
+                                                              build-data
+                                                              build-primref
+                                                              build-primcall
+                                                              build-lambda-case
+                                                              build-case-lambda
+                                                              
build-simple-lambda
+                                                              
build-global-definition
+                                                              
build-global-assignment
+                                                              
build-global-reference
+                                                              analyze-variable
+                                                              
build-lexical-assignment
+                                                              
build-lexical-reference
+                                                              build-dynlet
+                                                              build-conditional
+                                                              build-call
+                                                              build-void
+                                                              maybe-name-value!
+                                                              decorate-source
+                                                              
get-global-definition-hook
+                                                              
put-global-definition-hook
+                                                              gensym-hook
+                                                              local-eval-hook
+                                                              
top-level-eval-hook
+                                                              fx<
+                                                              fx=
+                                                              fx-
+                                                              fx+
+                                                              set-lambda-meta!
+                                                              lambda-meta
+                                                              lambda?
+                                                              make-dynlet
+                                                              make-letrec
+                                                              make-let
+                                                              make-lambda-case
+                                                              make-lambda
+                                                              make-seq
+                                                              make-primcall
+                                                              make-call
+                                                              make-conditional
+                                                              
make-toplevel-define
+                                                              make-toplevel-set
+                                                              make-toplevel-ref
+                                                              make-module-set
+                                                              make-module-ref
+                                                              make-lexical-set
+                                                              make-lexical-ref
+                                                              
make-primitive-ref
+                                                              make-const
+                                                              make-void)
+                                                            ((top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top))
+                                                            ("i470"
+                                                             "i468"
+                                                             "i466"
+                                                             "i464"
+                                                             "i462"
+                                                             "i460"
+                                                             "i458"
+                                                             "i456"
+                                                             "i454"
+                                                             "i452"
+                                                             "i450"
+                                                             "i448"
+                                                             "i446"
+                                                             "i444"
+                                                             "i442"
+                                                             "i440"
+                                                             "i438"
+                                                             "i436"
+                                                             "i434"
+                                                             "i432"
+                                                             "i430"
+                                                             "i428"
+                                                             "i426"
+                                                             "i424"
+                                                             "i422"
+                                                             "i420"
+                                                             "i418"
+                                                             "i416"
+                                                             "i414"
+                                                             "i412"
+                                                             "i410"
+                                                             "i408"
+                                                             "i406"
+                                                             "i404"
+                                                             "i402"
+                                                             "i401"
+                                                             "i399"
+                                                             "i396"
+                                                             "i395"
+                                                             "i394"
+                                                             "i392"
+                                                             "i391"
+                                                             "i389"
+                                                             "i387"
+                                                             "i385"
+                                                             "i383"
+                                                             "i381"
+                                                             "i379"
+                                                             "i377"
+                                                             "i375"
+                                                             "i372"
+                                                             "i370"
+                                                             "i369"
+                                                             "i367"
+                                                             "i365"
+                                                             "i363"
+                                                             "i361"
+                                                             "i360"
+                                                             "i359"
+                                                             "i358"
+                                                             "i356"
+                                                             "i355"
+                                                             "i352"
+                                                             "i350"
+                                                             "i348"
+                                                             "i346"
+                                                             "i344"
+                                                             "i342"
+                                                             "i340"
+                                                             "i339"
+                                                             "i338"
+                                                             "i336"
+                                                             "i334"
+                                                             "i333"
+                                                             "i330"
+                                                             "i329"
+                                                             "i327"
+                                                             "i325"
+                                                             "i323"
+                                                             "i321"
+                                                             "i319"
+                                                             "i317"
+                                                             "i315"
+                                                             "i313"
+                                                             "i311"
+                                                             "i308"
+                                                             "i306"
+                                                             "i304"
+                                                             "i302"
+                                                             "i300"
+                                                             "i298"
+                                                             "i296"
+                                                             "i294"
+                                                             "i292"
+                                                             "i290"
+                                                             "i288"
+                                                             "i286"
+                                                             "i284"
+                                                             "i282"
+                                                             "i280"
+                                                             "i278"
+                                                             "i276"
+                                                             "i274"
+                                                             "i272"
+                                                             "i270"
+                                                             "i268"
+                                                             "i266"
+                                                             "i264"
+                                                             "i262"
+                                                             "i261"
+                                                             "i258"
+                                                             "i256"
+                                                             "i255"
+                                                             "i254"
+                                                             "i253"
+                                                             "i252"
+                                                             "i250"
+                                                             "i248"
+                                                             "i246"
+                                                             "i243"
+                                                             "i241"
+                                                             "i239"
+                                                             "i237"
+                                                             "i235"
+                                                             "i233"
+                                                             "i231"
+                                                             "i229"
+                                                             "i227"
+                                                             "i225"
+                                                             "i223"
+                                                             "i221"
+                                                             "i219"
+                                                             "i217"
+                                                             "i215"
+                                                             "i213"
+                                                             "i211"
+                                                             "i209"
+                                                             "i207"))
+                                                          #(ribcage
+                                                            (define-structure
+                                                              
define-expansion-accessors
+                                                              
define-expansion-constructors)
+                                                            ((top) (top) (top))
+                                                            ("i45"
+                                                             "i44"
+                                                             "i43")))
+                                                         (hygiene guile))
+                                                       #(syntax-object
+                                                         #f
+                                                         ((top)
+                                                          #(ribcage
+                                                            #(name)
+                                                            #((top))
+                                                            #("i1900"))
+                                                          #(ribcage () () ())
+                                                          #(ribcage () () ())
+                                                          #(ribcage
+                                                            #(ftype
+                                                              fval
+                                                              fe
+                                                              fw
+                                                              fs
+                                                              fmod)
+                                                            #((top)
+                                                              (top)
+                                                              (top)
+                                                              (top)
+                                                              (top)
+                                                              (top))
+                                                            #("i1840"
+                                                              "i1841"
+                                                              "i1842"
+                                                              "i1843"
+                                                              "i1844"
+                                                              "i1845"))
+                                                          #(ribcage () () ())
+                                                          #(ribcage
+                                                            #(first)
+                                                            #((top))
+                                                            #("i1832"))
+                                                          #(ribcage () () ())
+                                                          #(ribcage () () ())
+                                                          #(ribcage () () ())
+                                                          #(ribcage
+                                                            #(e
+                                                              r
+                                                              w
+                                                              s
+                                                              rib
+                                                              mod
+                                                              for-car?)
+                                                            #((top)
+                                                              (top)
+                                                              (top)
+                                                              (top)
+                                                              (top)
+                                                              (top)
+                                                              (top))
+                                                            #("i1804"
+                                                              "i1805"
+                                                              "i1806"
+                                                              "i1807"
+                                                              "i1808"
+                                                              "i1809"
+                                                              "i1810"))
+                                                          #(ribcage
+                                                            (lambda-var-list
+                                                              gen-var
+                                                              strip
+                                                              chi-lambda-case
+                                                              lambda*-formals
+                                                              chi-simple-lambda
+                                                              lambda-formals
+                                                              ellipsis?
+                                                              chi-void
+                                                              
eval-local-transformer
+                                                              chi-local-syntax
+                                                              chi-body
+                                                              chi-macro
+                                                              chi-call
+                                                              chi-expr
+                                                              chi
+                                                              syntax-type
+                                                              chi-when-list
+                                                              
chi-install-global
+                                                              chi-top-sequence
+                                                              chi-sequence
+                                                              source-wrap
+                                                              wrap
+                                                              bound-id-member?
+                                                              
distinct-bound-ids?
+                                                              valid-bound-ids?
+                                                              bound-id=?
+                                                              free-id=?
+                                                              id-var-name
+                                                              same-marks?
+                                                              join-marks
+                                                              join-wraps
+                                                              smart-append
+                                                              make-binding-wrap
+                                                              extend-ribcage!
+                                                              
make-empty-ribcage
+                                                              new-mark
+                                                              anti-mark
+                                                              the-anti-mark
+                                                              top-marked?
+                                                              top-wrap
+                                                              empty-wrap
+                                                              
set-ribcage-labels!
+                                                              
set-ribcage-marks!
+                                                              
set-ribcage-symnames!
+                                                              ribcage-labels
+                                                              ribcage-marks
+                                                              ribcage-symnames
+                                                              ribcage?
+                                                              make-ribcage
+                                                              gen-labels
+                                                              gen-label
+                                                              make-rename
+                                                              rename-marks
+                                                              rename-new
+                                                              rename-old
+                                                              subst-rename?
+                                                              wrap-subst
+                                                              wrap-marks
+                                                              make-wrap
+                                                              id-sym-name&marks
+                                                              id-sym-name
+                                                              id?
+                                                              nonsymbol-id?
+                                                              global-extend
+                                                              lookup
+                                                              macros-only-env
+                                                              extend-var-env
+                                                              extend-env
+                                                              null-env
+                                                              binding-value
+                                                              binding-type
+                                                              make-binding
+                                                              arg-check
+                                                              source-annotation
+                                                              no-source
+                                                              
set-syntax-object-module!
+                                                              
set-syntax-object-wrap!
+                                                              
set-syntax-object-expression!
+                                                              
syntax-object-module
+                                                              
syntax-object-wrap
+                                                              
syntax-object-expression
+                                                              syntax-object?
+                                                              
make-syntax-object
+                                                              build-lexical-var
+                                                              build-letrec
+                                                              build-named-let
+                                                              build-let
+                                                              build-sequence
+                                                              build-data
+                                                              build-primref
+                                                              build-primcall
+                                                              build-lambda-case
+                                                              build-case-lambda
+                                                              
build-simple-lambda
+                                                              
build-global-definition
+                                                              
build-global-assignment
+                                                              
build-global-reference
+                                                              analyze-variable
+                                                              
build-lexical-assignment
+                                                              
build-lexical-reference
+                                                              build-dynlet
+                                                              build-conditional
+                                                              build-call
+                                                              build-void
+                                                              maybe-name-value!
+                                                              decorate-source
+                                                              
get-global-definition-hook
+                                                              
put-global-definition-hook
+                                                              gensym-hook
+                                                              local-eval-hook
+                                                              
top-level-eval-hook
+                                                              fx<
+                                                              fx=
+                                                              fx-
+                                                              fx+
+                                                              set-lambda-meta!
+                                                              lambda-meta
+                                                              lambda?
+                                                              make-dynlet
+                                                              make-letrec
+                                                              make-let
+                                                              make-lambda-case
+                                                              make-lambda
+                                                              make-seq
+                                                              make-primcall
+                                                              make-call
+                                                              make-conditional
+                                                              
make-toplevel-define
+                                                              make-toplevel-set
+                                                              make-toplevel-ref
+                                                              make-module-set
+                                                              make-module-ref
+                                                              make-lexical-set
+                                                              make-lexical-ref
+                                                              
make-primitive-ref
+                                                              make-const
+                                                              make-void)
+                                                            ((top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top)
+                                                             (top))
+                                                            ("i470"
+                                                             "i468"
+                                                             "i466"
+                                                             "i464"
+                                                             "i462"
+                                                             "i460"
+                                                             "i458"
+                                                             "i456"
+                                                             "i454"
+                                                             "i452"
+                                                             "i450"
+                                                             "i448"
+                                                             "i446"
+                                                             "i444"
+                                                             "i442"
+                                                             "i440"
+                                                             "i438"
+                                                             "i436"
+                                                             "i434"
+                                                             "i432"
+                                                             "i430"
+                                                             "i428"
+                                                             "i426"
+                                                             "i424"
+                                                             "i422"
+                                                             "i420"
+                                                             "i418"
+                                                             "i416"
+                                                             "i414"
+                                                             "i412"
+                                                             "i410"
+                                                             "i408"
+                                                             "i406"
+                                                             "i404"
+                                                             "i402"
+                                                             "i401"
+                                                             "i399"
+                                                             "i396"
+                                                             "i395"
+                                                             "i394"
+                                                             "i392"
+                                                             "i391"
+                                                             "i389"
+                                                             "i387"
+                                                             "i385"
+                                                             "i383"
+                                                             "i381"
+                                                             "i379"
+                                                             "i377"
+                                                             "i375"
+                                                             "i372"
+                                                             "i370"
+                                                             "i369"
+                                                             "i367"
+                                                             "i365"
+                                                             "i363"
+                                                             "i361"
+                                                             "i360"
+                                                             "i359"
+                                                             "i358"
+                                                             "i356"
+                                                             "i355"
+                                                             "i352"
+                                                             "i350"
+                                                             "i348"
+                                                             "i346"
+                                                             "i344"
+                                                             "i342"
+                                                             "i340"
+                                                             "i339"
+                                                             "i338"
+                                                             "i336"
+                                                             "i334"
+                                                             "i333"
+                                                             "i330"
+                                                             "i329"
+                                                             "i327"
+                                                             "i325"
+                                                             "i323"
+                                                             "i321"
+                                                             "i319"
+                                                             "i317"
+                                                             "i315"
+                                                             "i313"
+                                                             "i311"
+                                                             "i308"
+                                                             "i306"
+                                                             "i304"
+                                                             "i302"
+                                                             "i300"
+                                                             "i298"
+                                                             "i296"
+                                                             "i294"
+                                                             "i292"
+                                                             "i290"
+                                                             "i288"
+                                                             "i286"
+                                                             "i284"
+                                                             "i282"
+                                                             "i280"
+                                                             "i278"
+                                                             "i276"
+                                                             "i274"
+                                                             "i272"
+                                                             "i270"
+                                                             "i268"
+                                                             "i266"
+                                                             "i264"
+                                                             "i262"
+                                                             "i261"
+                                                             "i258"
+                                                             "i256"
+                                                             "i255"
+                                                             "i254"
+                                                             "i253"
+                                                             "i252"
+                                                             "i250"
+                                                             "i248"
+                                                             "i246"
+                                                             "i243"
+                                                             "i241"
+                                                             "i239"
+                                                             "i237"
+                                                             "i235"
+                                                             "i233"
+                                                             "i231"
+                                                             "i229"
+                                                             "i227"
+                                                             "i225"
+                                                             "i223"
+                                                             "i221"
+                                                             "i219"
+                                                             "i217"
+                                                             "i215"
+                                                             "i213"
+                                                             "i211"
+                                                             "i209"
+                                                             "i207"))
+                                                          #(ribcage
+                                                            (define-structure
+                                                              
define-expansion-accessors
+                                                              
define-expansion-constructors)
+                                                            ((top) (top) (top))
+                                                            ("i45"
+                                                             "i44"
+                                                             "i43")))
+                                                         (hygiene guile)))
+                                                     '(())
+                                                     #{s 1800}#
+                                                     #{mod 1802}#))
+                                                 #{tmp 1897}#)
+                                               (syntax-violation
+                                                 #f
+                                                 "source expression failed to 
match any pattern"
+                                                 #{e 1797}#)))))))
+                                   (if (memv #{ftype 1834}# '(define-syntax))
+                                     (let ((#{tmp 1905}#
+                                             ($sc-dispatch
+                                               #{e 1797}#
+                                               '(_ any any))))
+                                       (if (if #{tmp 1905}#
+                                             (@apply
+                                               (lambda (#{name 1908}#
+                                                        #{val 1909}#)
+                                                 (#{id? 353}# #{name 1908}#))
+                                               #{tmp 1905}#)
+                                             #f)
+                                         (@apply
+                                           (lambda (#{name 1912}# #{val 1913}#)
+                                             (values
+                                               'define-syntax-form
+                                               #{name 1912}#
+                                               #{val 1913}#
+                                               #{w 1799}#
+                                               #{s 1800}#
+                                               #{mod 1802}#))
+                                           #{tmp 1905}#)
+                                         (syntax-violation
+                                           #f
+                                           "source expression failed to match 
any pattern"
+                                           #{e 1797}#)))
+                                     (values
+                                       'call
+                                       #f
+                                       #{e 1797}#
+                                       #{w 1799}#
+                                       #{s 1800}#
+                                       #{mod 1802}#))))))))))))))
+           (if (#{syntax-object? 316}# #{e 1797}#)
+             (#{syntax-type 439}#
+               (#{syntax-object-expression 318}# #{e 1797}#)
+               #{r 1798}#
+               (#{join-wraps 409}#
+                 #{w 1799}#
+                 (#{syntax-object-wrap 320}# #{e 1797}#))
+               (let ((#{t 1919}#
+                       (#{source-annotation 331}# #{e 1797}#)))
+                 (if #{t 1919}# #{t 1919}# #{s 1800}#))
+               #{rib 1801}#
+               (let ((#{t 1923}#
+                       (#{syntax-object-module 322}# #{e 1797}#)))
+                 (if #{t 1923}# #{t 1923}# #{mod 1802}#))
+               #{for-car? 1803}#)
+             (if (self-evaluating? #{e 1797}#)
+               (values
+                 'constant
+                 #f
+                 #{e 1797}#
+                 #{w 1799}#
+                 #{s 1800}#
+                 #{mod 1802}#)
+               (values
+                 'other
+                 #f
+                 #{e 1797}#
+                 #{w 1799}#
+                 #{s 1800}#
+                 #{mod 1802}#)))))))
+   (#{chi 441}#
+     (lambda (#{e 1928}# #{r 1929}# #{w 1930}# #{mod 1931}#)
+       (call-with-values
+         (lambda ()
+           (#{syntax-type 439}#
+             #{e 1928}#
+             #{r 1929}#
+             #{w 1930}#
+             (#{source-annotation 331}# #{e 1928}#)
+             #f
+             #{mod 1931}#
+             #f))
+         (lambda (#{type 1936}#
+                  #{value 1937}#
+                  #{e 1938}#
+                  #{w 1939}#
+                  #{s 1940}#
+                  #{mod 1941}#)
+           (#{chi-expr 443}#
+             #{type 1936}#
+             #{value 1937}#
+             #{e 1938}#
+             #{r 1929}#
+             #{w 1939}#
+             #{s 1940}#
+             #{mod 1941}#)))))
+   (#{chi-expr 443}#
+     (lambda (#{type 1948}#
+              #{value 1949}#
+              #{e 1950}#
+              #{r 1951}#
+              #{w 1952}#
+              #{s 1953}#
+              #{mod 1954}#)
+       (if (memv #{type 1948}# '(lexical))
+         (#{build-lexical-reference 279}#
+           'value
+           #{s 1953}#
+           #{e 1950}#
+           #{value 1949}#)
+         (if (memv #{type 1948}# '(core core-form))
+           (#{value 1949}#
+             #{e 1950}#
+             #{r 1951}#
+             #{w 1952}#
+             #{s 1953}#
+             #{mod 1954}#)
+           (if (memv #{type 1948}# '(module-ref))
+             (call-with-values
+               (lambda ()
+                 (#{value 1949}# #{e 1950}# #{r 1951}# #{w 1952}#))
+               (lambda (#{e 1965}#
+                        #{r 1966}#
+                        #{w 1967}#
+                        #{s 1968}#
+                        #{mod 1969}#)
+                 (#{chi 441}#
+                   #{e 1965}#
+                   #{r 1966}#
+                   #{w 1967}#
+                   #{mod 1969}#)))
+             (if (memv #{type 1948}# '(lexical-call))
+               (#{chi-call 445}#
+                 (let ((#{id 1977}# (car #{e 1950}#)))
+                   (#{build-lexical-reference 279}#
+                     'fun
+                     (#{source-annotation 331}# #{id 1977}#)
+                     (if (#{syntax-object? 316}# #{id 1977}#)
+                       (syntax->datum #{id 1977}#)
+                       #{id 1977}#)
+                     #{value 1949}#))
+                 #{e 1950}#
+                 #{r 1951}#
+                 #{w 1952}#
+                 #{s 1953}#
+                 #{mod 1954}#)
+               (if (memv #{type 1948}# '(global-call))
+                 (#{chi-call 445}#
+                   (#{build-global-reference 285}#
+                     (#{source-annotation 331}# (car #{e 1950}#))
+                     (if (#{syntax-object? 316}# #{value 1949}#)
+                       (#{syntax-object-expression 318}# #{value 1949}#)
+                       #{value 1949}#)
+                     (if (#{syntax-object? 316}# #{value 1949}#)
+                       (#{syntax-object-module 322}# #{value 1949}#)
+                       #{mod 1954}#))
+                   #{e 1950}#
+                   #{r 1951}#
+                   #{w 1952}#
+                   #{s 1953}#
+                   #{mod 1954}#)
+                 (if (memv #{type 1948}# '(constant))
+                   (#{build-data 301}#
+                     #{s 1953}#
+                     (#{strip 467}#
+                       (#{source-wrap 429}#
+                         #{e 1950}#
+                         #{w 1952}#
+                         #{s 1953}#
+                         #{mod 1954}#)
+                       '(())))
+                   (if (memv #{type 1948}# '(global))
+                     (#{build-global-reference 285}#
+                       #{s 1953}#
+                       #{value 1949}#
+                       #{mod 1954}#)
+                     (if (memv #{type 1948}# '(call))
+                       (#{chi-call 445}#
+                         (#{chi 441}#
+                           (car #{e 1950}#)
+                           #{r 1951}#
+                           #{w 1952}#
+                           #{mod 1954}#)
+                         #{e 1950}#
+                         #{r 1951}#
+                         #{w 1952}#
+                         #{s 1953}#
+                         #{mod 1954}#)
+                       (if (memv #{type 1948}# '(begin-form))
+                         (let ((#{tmp 1985}#
+                                 ($sc-dispatch
+                                   #{e 1950}#
+                                   '(_ any . each-any))))
+                           (if #{tmp 1985}#
+                             (@apply
+                               (lambda (#{e1 1988}# #{e2 1989}#)
+                                 (#{chi-sequence 431}#
+                                   (cons #{e1 1988}# #{e2 1989}#)
+                                   #{r 1951}#
+                                   #{w 1952}#
+                                   #{s 1953}#
+                                   #{mod 1954}#))
+                               #{tmp 1985}#)
+                             (syntax-violation
+                               #f
+                               "source expression failed to match any pattern"
+                               #{e 1950}#)))
+                         (if (memv #{type 1948}# '(local-syntax-form))
+                           (#{chi-local-syntax 451}#
+                             #{value 1949}#
+                             #{e 1950}#
+                             #{r 1951}#
+                             #{w 1952}#
+                             #{s 1953}#
+                             #{mod 1954}#
+                             #{chi-sequence 431}#)
+                           (if (memv #{type 1948}# '(eval-when-form))
+                             (let ((#{tmp 1994}#
+                                     ($sc-dispatch
+                                       #{e 1950}#
+                                       '(_ each-any any . each-any))))
+                               (if #{tmp 1994}#
+                                 (@apply
+                                   (lambda (#{x 1998}# #{e1 1999}# #{e2 2000}#)
+                                     (let ((#{when-list 2002}#
+                                             (#{chi-when-list 437}#
+                                               #{e 1950}#
+                                               #{x 1998}#
+                                               #{w 1952}#)))
+                                       (if (memq 'eval #{when-list 2002}#)
+                                         (#{chi-sequence 431}#
+                                           (cons #{e1 1999}# #{e2 2000}#)
+                                           #{r 1951}#
+                                           #{w 1952}#
+                                           #{s 1953}#
+                                           #{mod 1954}#)
+                                         (#{chi-void 455}#))))
+                                   #{tmp 1994}#)
+                                 (syntax-violation
                                    #f
-                                   (list (syntax->datum #{pat 3921}#))
+                                   "source expression failed to match any 
pattern"
+                                   #{e 1950}#)))
+                             (if (memv #{type 1948}#
+                                       '(define-form define-syntax-form))
+                               (syntax-violation
+                                 #f
+                                 "definition in expression context"
+                                 #{e 1950}#
+                                 (#{wrap 427}#
+                                   #{value 1949}#
+                                   #{w 1952}#
+                                   #{mod 1954}#))
+                               (if (memv #{type 1948}# '(syntax))
+                                 (syntax-violation
                                    #f
-                                   (list #{var 3931}#)
-                                   '()
-                                   (#{chi 423}#
-                                     #{exp 3922}#
-                                     (#{extend-env 331}#
-                                       #{labels 3930}#
-                                       (list (cons 'syntax
-                                                   (cons #{var 3931}# 0)))
-                                       #{r 3907}#)
-                                     (#{make-binding-wrap 387}#
-                                       (list #{pat 3921}#)
-                                       #{labels 3930}#
-                                       '(()))
-                                     #{mod 3908}#))
-                                 (list #{x 3904}#))))
-                           (#{gen-clause 3721}#
-                             #{x 3904}#
-                             #{keys 3905}#
-                             (cdr #{clauses 3906}#)
-                             #{r 3907}#
-                             #{pat 3921}#
-                             #t
-                             #{exp 3922}#
-                             #{mod 3908}#)))
-                       #{tmp 3918}#)
-                     (let ((#{tmp 3937}#
-                             ($sc-dispatch #{tmp 3917}# '(any any any))))
-                       (if #{tmp 3937}#
-                         (@apply
-                           (lambda (#{pat 3941}# #{fender 3942}# #{exp 3943}#)
-                             (#{gen-clause 3721}#
-                               #{x 3904}#
-                               #{keys 3905}#
-                               (cdr #{clauses 3906}#)
-                               #{r 3907}#
-                               #{pat 3941}#
-                               #{fender 3942}#
-                               #{exp 3943}#
-                               #{mod 3908}#))
-                           #{tmp 3937}#)
-                         (let ((#{_ 3945}# #{tmp 3917}#))
-                           (syntax-violation
-                             'syntax-case
-                             "invalid clause"
-                             (car #{clauses 3906}#))))))))))))
-        (lambda (#{e 3946}#
-                 #{r 3947}#
-                 #{w 3948}#
-                 #{s 3949}#
-                 #{mod 3950}#)
-          (let ((#{e 3957}#
-                  (#{source-wrap 411}#
-                    #{e 3946}#
-                    #{w 3948}#
-                    #{s 3949}#
-                    #{mod 3950}#)))
-            (let ((#{tmp 3958}# #{e 3957}#))
-              (let ((#{tmp 3959}#
+                                   "reference to pattern variable outside 
syntax form"
+                                   (#{source-wrap 429}#
+                                     #{e 1950}#
+                                     #{w 1952}#
+                                     #{s 1953}#
+                                     #{mod 1954}#))
+                                 (if (memv #{type 1948}# '(displaced-lexical))
+                                   (syntax-violation
+                                     #f
+                                     "reference to identifier outside its 
scope"
+                                     (#{source-wrap 429}#
+                                       #{e 1950}#
+                                       #{w 1952}#
+                                       #{s 1953}#
+                                       #{mod 1954}#))
+                                   (syntax-violation
+                                     #f
+                                     "unexpected syntax"
+                                     (#{source-wrap 429}#
+                                       #{e 1950}#
+                                       #{w 1952}#
+                                       #{s 1953}#
+                                       #{mod 1954}#))))))))))))))))))
+   (#{chi-call 445}#
+     (lambda (#{x 2009}#
+              #{e 2010}#
+              #{r 2011}#
+              #{w 2012}#
+              #{s 2013}#
+              #{mod 2014}#)
+       (let ((#{tmp 2022}#
+               ($sc-dispatch #{e 2010}# '(any . each-any))))
+         (if #{tmp 2022}#
+           (@apply
+             (lambda (#{e0 2025}# #{e1 2026}#)
+               (#{build-call 273}#
+                 #{s 2013}#
+                 #{x 2009}#
+                 (map (lambda (#{e 2027}#)
+                        (#{chi 441}#
+                          #{e 2027}#
+                          #{r 2011}#
+                          #{w 2012}#
+                          #{mod 2014}#))
+                      #{e1 2026}#)))
+             #{tmp 2022}#)
+           (syntax-violation
+             #f
+             "source expression failed to match any pattern"
+             #{e 2010}#)))))
+   (#{chi-macro 447}#
+     (lambda (#{p 2030}#
+              #{e 2031}#
+              #{r 2032}#
+              #{w 2033}#
+              #{s 2034}#
+              #{rib 2035}#
+              #{mod 2036}#)
+       (letrec*
+         ((#{rebuild-macro-output 2045}#
+            (lambda (#{x 2046}# #{m 2047}#)
+              (if (pair? #{x 2046}#)
+                (#{decorate-source 267}#
+                  (cons (#{rebuild-macro-output 2045}#
+                          (car #{x 2046}#)
+                          #{m 2047}#)
+                        (#{rebuild-macro-output 2045}#
+                          (cdr #{x 2046}#)
+                          #{m 2047}#))
+                  #{s 2034}#)
+                (if (#{syntax-object? 316}# #{x 2046}#)
+                  (let ((#{w 2055}#
+                          (#{syntax-object-wrap 320}# #{x 2046}#)))
+                    (let ((#{ms 2058}# (car #{w 2055}#))
+                          (#{s 2059}# (cdr #{w 2055}#)))
+                      (if (if (pair? #{ms 2058}#)
+                            (eq? (car #{ms 2058}#) #f)
+                            #f)
+                        (#{make-syntax-object 314}#
+                          (#{syntax-object-expression 318}# #{x 2046}#)
+                          (cons (cdr #{ms 2058}#)
+                                (if #{rib 2035}#
+                                  (cons #{rib 2035}# (cdr #{s 2059}#))
+                                  (cdr #{s 2059}#)))
+                          (#{syntax-object-module 322}# #{x 2046}#))
+                        (#{make-syntax-object 314}#
+                          (#{decorate-source 267}#
+                            (#{syntax-object-expression 318}# #{x 2046}#)
+                            #{s 2059}#)
+                          (cons (cons #{m 2047}# #{ms 2058}#)
+                                (if #{rib 2035}#
+                                  (cons #{rib 2035}# (cons 'shift #{s 2059}#))
+                                  (cons 'shift #{s 2059}#)))
+                          (#{syntax-object-module 322}# #{x 2046}#)))))
+                  (if (vector? #{x 2046}#)
+                    (let ((#{n 2071}# (vector-length #{x 2046}#)))
+                      (let ((#{v 2073}#
+                              (#{decorate-source 267}#
+                                (make-vector #{n 2071}#)
+                                #{x 2046}#)))
+                        (letrec*
+                          ((#{loop 2076}#
+                             (lambda (#{i 2077}#)
+                               (if (= #{i 2077}# #{n 2071}#)
+                                 #{v 2073}#
+                                 (begin
+                                   (vector-set!
+                                     #{v 2073}#
+                                     #{i 2077}#
+                                     (#{rebuild-macro-output 2045}#
+                                       (vector-ref #{x 2046}# #{i 2077}#)
+                                       #{m 2047}#))
+                                   (#{loop 2076}# (#{1+}# #{i 2077}#)))))))
+                          (#{loop 2076}# 0))))
+                    (if (symbol? #{x 2046}#)
+                      (syntax-violation
+                        #f
+                        "encountered raw symbol in macro output"
+                        (#{source-wrap 429}#
+                          #{e 2031}#
+                          #{w 2033}#
+                          (cdr #{w 2033}#)
+                          #{mod 2036}#)
+                        #{x 2046}#)
+                      (#{decorate-source 267}# #{x 2046}# #{s 2034}#))))))))
+         (#{rebuild-macro-output 2045}#
+           (#{p 2030}#
+             (#{source-wrap 429}#
+               #{e 2031}#
+               (#{anti-mark 397}# #{w 2033}#)
+               #{s 2034}#
+               #{mod 2036}#))
+           (gensym "m")))))
+   (#{chi-body 449}#
+     (lambda (#{body 2087}#
+              #{outer-form 2088}#
+              #{r 2089}#
+              #{w 2090}#
+              #{mod 2091}#)
+       (let ((#{r 2099}#
+               (cons '("placeholder" placeholder) #{r 2089}#)))
+         (let ((#{ribcage 2101}#
+                 (#{make-ribcage 376}# '() '() '())))
+           (let ((#{w 2104}#
+                   (cons (car #{w 2090}#)
+                         (cons #{ribcage 2101}# (cdr #{w 2090}#)))))
+             (letrec*
+               ((#{parse 2116}#
+                  (lambda (#{body 2117}#
+                           #{ids 2118}#
+                           #{labels 2119}#
+                           #{var-ids 2120}#
+                           #{vars 2121}#
+                           #{vals 2122}#
+                           #{bindings 2123}#)
+                    (if (null? #{body 2117}#)
+                      (syntax-violation
+                        #f
+                        "no expressions in body"
+                        #{outer-form 2088}#)
+                      (let ((#{e 2128}# (cdr (car #{body 2117}#)))
+                            (#{er 2129}# (car (car #{body 2117}#))))
+                        (call-with-values
+                          (lambda ()
+                            (#{syntax-type 439}#
+                              #{e 2128}#
+                              #{er 2129}#
+                              '(())
+                              (#{source-annotation 331}# #{er 2129}#)
+                              #{ribcage 2101}#
+                              #{mod 2091}#
+                              #f))
+                          (lambda (#{type 2131}#
+                                   #{value 2132}#
+                                   #{e 2133}#
+                                   #{w 2134}#
+                                   #{s 2135}#
+                                   #{mod 2136}#)
+                            (if (memv #{type 2131}# '(define-form))
+                              (let ((#{id 2146}#
+                                      (#{wrap 427}#
+                                        #{value 2132}#
+                                        #{w 2134}#
+                                        #{mod 2136}#))
+                                    (#{label 2147}# (#{gen-label 371}#)))
+                                (let ((#{var 2149}#
+                                        (#{gen-var 469}# #{id 2146}#)))
+                                  (begin
+                                    (#{extend-ribcage! 403}#
+                                      #{ribcage 2101}#
+                                      #{id 2146}#
+                                      #{label 2147}#)
+                                    (#{parse 2116}#
+                                      (cdr #{body 2117}#)
+                                      (cons #{id 2146}# #{ids 2118}#)
+                                      (cons #{label 2147}# #{labels 2119}#)
+                                      (cons #{id 2146}# #{var-ids 2120}#)
+                                      (cons #{var 2149}# #{vars 2121}#)
+                                      (cons (cons #{er 2129}#
+                                                  (#{wrap 427}#
+                                                    #{e 2133}#
+                                                    #{w 2134}#
+                                                    #{mod 2136}#))
+                                            #{vals 2122}#)
+                                      (cons (cons 'lexical #{var 2149}#)
+                                            #{bindings 2123}#)))))
+                              (if (memv #{type 2131}# '(define-syntax-form))
+                                (let ((#{id 2154}#
+                                        (#{wrap 427}#
+                                          #{value 2132}#
+                                          #{w 2134}#
+                                          #{mod 2136}#))
+                                      (#{label 2155}# (#{gen-label 371}#)))
+                                  (begin
+                                    (#{extend-ribcage! 403}#
+                                      #{ribcage 2101}#
+                                      #{id 2154}#
+                                      #{label 2155}#)
+                                    (#{parse 2116}#
+                                      (cdr #{body 2117}#)
+                                      (cons #{id 2154}# #{ids 2118}#)
+                                      (cons #{label 2155}# #{labels 2119}#)
+                                      #{var-ids 2120}#
+                                      #{vars 2121}#
+                                      #{vals 2122}#
+                                      (cons (cons 'macro
+                                                  (cons #{er 2129}#
+                                                        (#{wrap 427}#
+                                                          #{e 2133}#
+                                                          #{w 2134}#
+                                                          #{mod 2136}#)))
+                                            #{bindings 2123}#))))
+                                (if (memv #{type 2131}# '(begin-form))
+                                  (let ((#{tmp 2159}#
+                                          ($sc-dispatch
+                                            #{e 2133}#
+                                            '(_ . each-any))))
+                                    (if #{tmp 2159}#
+                                      (@apply
+                                        (lambda (#{e1 2161}#)
+                                          (#{parse 2116}#
+                                            (letrec*
+                                              ((#{f 2164}#
+                                                 (lambda (#{forms 2165}#)
+                                                   (if (null? #{forms 2165}#)
+                                                     (cdr #{body 2117}#)
+                                                     (cons (cons #{er 2129}#
+                                                                 (#{wrap 427}#
+                                                                   (car 
#{forms 2165}#)
+                                                                   #{w 2134}#
+                                                                   #{mod 
2136}#))
+                                                           (#{f 2164}#
+                                                             (cdr #{forms 
2165}#)))))))
+                                              (#{f 2164}# #{e1 2161}#))
+                                            #{ids 2118}#
+                                            #{labels 2119}#
+                                            #{var-ids 2120}#
+                                            #{vars 2121}#
+                                            #{vals 2122}#
+                                            #{bindings 2123}#))
+                                        #{tmp 2159}#)
+                                      (syntax-violation
+                                        #f
+                                        "source expression failed to match any 
pattern"
+                                        #{e 2133}#)))
+                                  (if (memv #{type 2131}# '(local-syntax-form))
+                                    (#{chi-local-syntax 451}#
+                                      #{value 2132}#
+                                      #{e 2133}#
+                                      #{er 2129}#
+                                      #{w 2134}#
+                                      #{s 2135}#
+                                      #{mod 2136}#
+                                      (lambda (#{forms 2168}#
+                                               #{er 2169}#
+                                               #{w 2170}#
+                                               #{s 2171}#
+                                               #{mod 2172}#)
+                                        (#{parse 2116}#
+                                          (letrec*
+                                            ((#{f 2180}#
+                                               (lambda (#{forms 2181}#)
+                                                 (if (null? #{forms 2181}#)
+                                                   (cdr #{body 2117}#)
+                                                   (cons (cons #{er 2169}#
+                                                               (#{wrap 427}#
+                                                                 (car #{forms 
2181}#)
+                                                                 #{w 2170}#
+                                                                 #{mod 2172}#))
+                                                         (#{f 2180}#
+                                                           (cdr #{forms 
2181}#)))))))
+                                            (#{f 2180}# #{forms 2168}#))
+                                          #{ids 2118}#
+                                          #{labels 2119}#
+                                          #{var-ids 2120}#
+                                          #{vars 2121}#
+                                          #{vals 2122}#
+                                          #{bindings 2123}#)))
+                                    (if (null? #{ids 2118}#)
+                                      (#{build-sequence 303}#
+                                        #f
+                                        (map (lambda (#{x 2184}#)
+                                               (#{chi 441}#
+                                                 (cdr #{x 2184}#)
+                                                 (car #{x 2184}#)
+                                                 '(())
+                                                 #{mod 2136}#))
+                                             (cons (cons #{er 2129}#
+                                                         (#{source-wrap 429}#
+                                                           #{e 2133}#
+                                                           #{w 2134}#
+                                                           #{s 2135}#
+                                                           #{mod 2136}#))
+                                                   (cdr #{body 2117}#))))
+                                      (begin
+                                        (if (not (#{valid-bound-ids? 421}#
+                                                   #{ids 2118}#))
+                                          (syntax-violation
+                                            #f
+                                            "invalid or duplicate identifier 
in definition"
+                                            #{outer-form 2088}#))
+                                        (letrec*
+                                          ((#{loop 2191}#
+                                             (lambda (#{bs 2192}#
+                                                      #{er-cache 2193}#
+                                                      #{r-cache 2194}#)
+                                               (if (not (null? #{bs 2192}#))
+                                                 (let ((#{b 2197}#
+                                                         (car #{bs 2192}#)))
+                                                   (if (eq? (car #{b 2197}#)
+                                                            'macro)
+                                                     (let ((#{er 2200}#
+                                                             (car (cdr #{b 
2197}#))))
+                                                       (let ((#{r-cache 2202}#
+                                                               (if (eq? #{er 
2200}#
+                                                                        
#{er-cache 2193}#)
+                                                                 #{r-cache 
2194}#
+                                                                 
(#{macros-only-env 345}#
+                                                                   #{er 
2200}#))))
+                                                         (begin
+                                                           (set-cdr!
+                                                             #{b 2197}#
+                                                             
(#{eval-local-transformer 453}#
+                                                               (#{chi 441}#
+                                                                 (cdr (cdr #{b 
2197}#))
+                                                                 #{r-cache 
2202}#
+                                                                 '(())
+                                                                 #{mod 2136}#)
+                                                               #{mod 2136}#))
+                                                           (#{loop 2191}#
+                                                             (cdr #{bs 2192}#)
+                                                             #{er 2200}#
+                                                             #{r-cache 
2202}#))))
+                                                     (#{loop 2191}#
+                                                       (cdr #{bs 2192}#)
+                                                       #{er-cache 2193}#
+                                                       #{r-cache 2194}#)))))))
+                                          (#{loop 2191}#
+                                            #{bindings 2123}#
+                                            #f
+                                            #f))
+                                        (set-cdr!
+                                          #{r 2099}#
+                                          (#{extend-env 341}#
+                                            #{labels 2119}#
+                                            #{bindings 2123}#
+                                            (cdr #{r 2099}#)))
+                                        (#{build-letrec 309}#
+                                          #f
+                                          #t
+                                          (reverse
+                                            (map syntax->datum
+                                                 #{var-ids 2120}#))
+                                          (reverse #{vars 2121}#)
+                                          (map (lambda (#{x 2205}#)
+                                                 (#{chi 441}#
+                                                   (cdr #{x 2205}#)
+                                                   (car #{x 2205}#)
+                                                   '(())
+                                                   #{mod 2136}#))
+                                               (reverse #{vals 2122}#))
+                                          (#{build-sequence 303}#
+                                            #f
+                                            (map (lambda (#{x 2209}#)
+                                                   (#{chi 441}#
+                                                     (cdr #{x 2209}#)
+                                                     (car #{x 2209}#)
+                                                     '(())
+                                                     #{mod 2136}#))
+                                                 (cons (cons #{er 2129}#
+                                                             (#{source-wrap 
429}#
+                                                               #{e 2133}#
+                                                               #{w 2134}#
+                                                               #{s 2135}#
+                                                               #{mod 2136}#))
+                                                       (cdr #{body 
2117}#))))))))))))))))))
+               (#{parse 2116}#
+                 (map (lambda (#{x 2124}#)
+                        (cons #{r 2099}#
+                              (#{wrap 427}#
+                                #{x 2124}#
+                                #{w 2104}#
+                                #{mod 2091}#)))
+                      #{body 2087}#)
+                 '()
+                 '()
+                 '()
+                 '()
+                 '()
+                 '())))))))
+   (#{chi-local-syntax 451}#
+     (lambda (#{rec? 2212}#
+              #{e 2213}#
+              #{r 2214}#
+              #{w 2215}#
+              #{s 2216}#
+              #{mod 2217}#
+              #{k 2218}#)
+       (let ((#{tmp 2227}#
+               ($sc-dispatch
+                 #{e 2213}#
+                 '(_ #(each (any any)) any . each-any))))
+         (if #{tmp 2227}#
+           (@apply
+             (lambda (#{id 2232}#
+                      #{val 2233}#
+                      #{e1 2234}#
+                      #{e2 2235}#)
+               (if (not (#{valid-bound-ids? 421}# #{id 2232}#))
+                 (syntax-violation
+                   #f
+                   "duplicate bound keyword"
+                   #{e 2213}#)
+                 (let ((#{labels 2240}#
+                         (#{gen-labels 373}# #{id 2232}#)))
+                   (let ((#{new-w 2242}#
+                           (#{make-binding-wrap 405}#
+                             #{id 2232}#
+                             #{labels 2240}#
+                             #{w 2215}#)))
+                     (#{k 2218}#
+                       (cons #{e1 2234}# #{e2 2235}#)
+                       (#{extend-env 341}#
+                         #{labels 2240}#
+                         (let ((#{trans-r 2247}#
+                                 (#{macros-only-env 345}# #{r 2214}#)))
+                           (begin
+                             (if #{rec? 2212}# (if #f #f))
+                             (map (lambda (#{x 2248}#)
+                                    (cons 'macro
+                                          (#{eval-local-transformer 453}#
+                                            (#{chi 441}#
+                                              #{x 2248}#
+                                              #{trans-r 2247}#
+                                              (if #{rec? 2212}#
+                                                #{new-w 2242}#
+                                                #{w 2215}#)
+                                              #{mod 2217}#)
+                                            #{mod 2217}#)))
+                                  #{val 2233}#)))
+                         #{r 2214}#)
+                       #{new-w 2242}#
+                       #{s 2216}#
+                       #{mod 2217}#)))))
+             #{tmp 2227}#)
+           (syntax-violation
+             #f
+             "bad local syntax definition"
+             (#{source-wrap 429}#
+               #{e 2213}#
+               #{w 2215}#
+               #{s 2216}#
+               #{mod 2217}#))))))
+   (#{eval-local-transformer 453}#
+     (lambda (#{expanded 2254}# #{mod 2255}#)
+       (let ((#{p 2259}#
+               (#{local-eval-hook 259}#
+                 #{expanded 2254}#
+                 #{mod 2255}#)))
+         (if (procedure? #{p 2259}#)
+           #{p 2259}#
+           (syntax-violation
+             #f
+             "nonprocedure transformer"
+             #{p 2259}#)))))
+   (#{chi-void 455}#
+     (lambda () (#{build-void 271}# #f)))
+   (#{ellipsis? 457}#
+     (lambda (#{x 2261}#)
+       (if (#{nonsymbol-id? 351}# #{x 2261}#)
+         (#{free-id=? 417}#
+           #{x 2261}#
+           '#(syntax-object
+              ...
+              ((top)
+               #(ribcage () () ())
+               #(ribcage () () ())
+               #(ribcage #(x) #((top)) #("i2262"))
+               #(ribcage
+                 (lambda-var-list
+                   gen-var
+                   strip
+                   chi-lambda-case
+                   lambda*-formals
+                   chi-simple-lambda
+                   lambda-formals
+                   ellipsis?
+                   chi-void
+                   eval-local-transformer
+                   chi-local-syntax
+                   chi-body
+                   chi-macro
+                   chi-call
+                   chi-expr
+                   chi
+                   syntax-type
+                   chi-when-list
+                   chi-install-global
+                   chi-top-sequence
+                   chi-sequence
+                   source-wrap
+                   wrap
+                   bound-id-member?
+                   distinct-bound-ids?
+                   valid-bound-ids?
+                   bound-id=?
+                   free-id=?
+                   id-var-name
+                   same-marks?
+                   join-marks
+                   join-wraps
+                   smart-append
+                   make-binding-wrap
+                   extend-ribcage!
+                   make-empty-ribcage
+                   new-mark
+                   anti-mark
+                   the-anti-mark
+                   top-marked?
+                   top-wrap
+                   empty-wrap
+                   set-ribcage-labels!
+                   set-ribcage-marks!
+                   set-ribcage-symnames!
+                   ribcage-labels
+                   ribcage-marks
+                   ribcage-symnames
+                   ribcage?
+                   make-ribcage
+                   gen-labels
+                   gen-label
+                   make-rename
+                   rename-marks
+                   rename-new
+                   rename-old
+                   subst-rename?
+                   wrap-subst
+                   wrap-marks
+                   make-wrap
+                   id-sym-name&marks
+                   id-sym-name
+                   id?
+                   nonsymbol-id?
+                   global-extend
+                   lookup
+                   macros-only-env
+                   extend-var-env
+                   extend-env
+                   null-env
+                   binding-value
+                   binding-type
+                   make-binding
+                   arg-check
+                   source-annotation
+                   no-source
+                   set-syntax-object-module!
+                   set-syntax-object-wrap!
+                   set-syntax-object-expression!
+                   syntax-object-module
+                   syntax-object-wrap
+                   syntax-object-expression
+                   syntax-object?
+                   make-syntax-object
+                   build-lexical-var
+                   build-letrec
+                   build-named-let
+                   build-let
+                   build-sequence
+                   build-data
+                   build-primref
+                   build-primcall
+                   build-lambda-case
+                   build-case-lambda
+                   build-simple-lambda
+                   build-global-definition
+                   build-global-assignment
+                   build-global-reference
+                   analyze-variable
+                   build-lexical-assignment
+                   build-lexical-reference
+                   build-dynlet
+                   build-conditional
+                   build-call
+                   build-void
+                   maybe-name-value!
+                   decorate-source
+                   get-global-definition-hook
+                   put-global-definition-hook
+                   gensym-hook
+                   local-eval-hook
+                   top-level-eval-hook
+                   fx<
+                   fx=
+                   fx-
+                   fx+
+                   set-lambda-meta!
+                   lambda-meta
+                   lambda?
+                   make-dynlet
+                   make-letrec
+                   make-let
+                   make-lambda-case
+                   make-lambda
+                   make-seq
+                   make-primcall
+                   make-call
+                   make-conditional
+                   make-toplevel-define
+                   make-toplevel-set
+                   make-toplevel-ref
+                   make-module-set
+                   make-module-ref
+                   make-lexical-set
+                   make-lexical-ref
+                   make-primitive-ref
+                   make-const
+                   make-void)
+                 ((top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top)
+                  (top))
+                 ("i470"
+                  "i468"
+                  "i466"
+                  "i464"
+                  "i462"
+                  "i460"
+                  "i458"
+                  "i456"
+                  "i454"
+                  "i452"
+                  "i450"
+                  "i448"
+                  "i446"
+                  "i444"
+                  "i442"
+                  "i440"
+                  "i438"
+                  "i436"
+                  "i434"
+                  "i432"
+                  "i430"
+                  "i428"
+                  "i426"
+                  "i424"
+                  "i422"
+                  "i420"
+                  "i418"
+                  "i416"
+                  "i414"
+                  "i412"
+                  "i410"
+                  "i408"
+                  "i406"
+                  "i404"
+                  "i402"
+                  "i401"
+                  "i399"
+                  "i396"
+                  "i395"
+                  "i394"
+                  "i392"
+                  "i391"
+                  "i389"
+                  "i387"
+                  "i385"
+                  "i383"
+                  "i381"
+                  "i379"
+                  "i377"
+                  "i375"
+                  "i372"
+                  "i370"
+                  "i369"
+                  "i367"
+                  "i365"
+                  "i363"
+                  "i361"
+                  "i360"
+                  "i359"
+                  "i358"
+                  "i356"
+                  "i355"
+                  "i352"
+                  "i350"
+                  "i348"
+                  "i346"
+                  "i344"
+                  "i342"
+                  "i340"
+                  "i339"
+                  "i338"
+                  "i336"
+                  "i334"
+                  "i333"
+                  "i330"
+                  "i329"
+                  "i327"
+                  "i325"
+                  "i323"
+                  "i321"
+                  "i319"
+                  "i317"
+                  "i315"
+                  "i313"
+                  "i311"
+                  "i308"
+                  "i306"
+                  "i304"
+                  "i302"
+                  "i300"
+                  "i298"
+                  "i296"
+                  "i294"
+                  "i292"
+                  "i290"
+                  "i288"
+                  "i286"
+                  "i284"
+                  "i282"
+                  "i280"
+                  "i278"
+                  "i276"
+                  "i274"
+                  "i272"
+                  "i270"
+                  "i268"
+                  "i266"
+                  "i264"
+                  "i262"
+                  "i261"
+                  "i258"
+                  "i256"
+                  "i255"
+                  "i254"
+                  "i253"
+                  "i252"
+                  "i250"
+                  "i248"
+                  "i246"
+                  "i243"
+                  "i241"
+                  "i239"
+                  "i237"
+                  "i235"
+                  "i233"
+                  "i231"
+                  "i229"
+                  "i227"
+                  "i225"
+                  "i223"
+                  "i221"
+                  "i219"
+                  "i217"
+                  "i215"
+                  "i213"
+                  "i211"
+                  "i209"
+                  "i207"))
+               #(ribcage
+                 (define-structure
+                   define-expansion-accessors
+                   define-expansion-constructors)
+                 ((top) (top) (top))
+                 ("i45" "i44" "i43")))
+              (hygiene guile)))
+         #f)))
+   (#{lambda-formals 459}#
+     (lambda (#{orig-args 2265}#)
+       (letrec*
+         ((#{req 2268}#
+            (lambda (#{args 2271}# #{rreq 2272}#)
+              (let ((#{tmp 2276}# ($sc-dispatch #{args 2271}# '())))
+                (if #{tmp 2276}#
+                  (@apply
+                    (lambda ()
+                      (#{check 2270}# (reverse #{rreq 2272}#) #f))
+                    #{tmp 2276}#)
+                  (let ((#{tmp 2277}#
+                          ($sc-dispatch #{args 2271}# '(any . any))))
+                    (if (if #{tmp 2277}#
+                          (@apply
+                            (lambda (#{a 2280}# #{b 2281}#)
+                              (#{id? 353}# #{a 2280}#))
+                            #{tmp 2277}#)
+                          #f)
+                      (@apply
+                        (lambda (#{a 2284}# #{b 2285}#)
+                          (#{req 2268}#
+                            #{b 2285}#
+                            (cons #{a 2284}# #{rreq 2272}#)))
+                        #{tmp 2277}#)
+                      (let ((#{tmp 2286}# (list #{args 2271}#)))
+                        (if (if #{tmp 2286}#
+                              (@apply
+                                (lambda (#{r 2288}#) (#{id? 353}# #{r 2288}#))
+                                #{tmp 2286}#)
+                              #f)
+                          (@apply
+                            (lambda (#{r 2290}#)
+                              (#{check 2270}#
+                                (reverse #{rreq 2272}#)
+                                #{r 2290}#))
+                            #{tmp 2286}#)
+                          (syntax-violation
+                            'lambda
+                            "invalid argument list"
+                            #{orig-args 2265}#
+                            #{args 2271}#)))))))))
+          (#{check 2270}#
+            (lambda (#{req 2293}# #{rest 2294}#)
+              (if (#{distinct-bound-ids? 423}#
+                    (if #{rest 2294}#
+                      (cons #{rest 2294}# #{req 2293}#)
+                      #{req 2293}#))
+                (values #{req 2293}# #f #{rest 2294}# #f)
+                (syntax-violation
+                  'lambda
+                  "duplicate identifier in argument list"
+                  #{orig-args 2265}#)))))
+         (#{req 2268}# #{orig-args 2265}# '()))))
+   (#{lambda*-formals 463}#
+     (lambda (#{orig-args 2327}#)
+       (letrec*
+         ((#{req 2330}#
+            (lambda (#{args 2339}# #{rreq 2340}#)
+              (let ((#{tmp 2344}# ($sc-dispatch #{args 2339}# '())))
+                (if #{tmp 2344}#
+                  (@apply
+                    (lambda ()
+                      (#{check 2338}#
+                        (reverse #{rreq 2340}#)
+                        '()
+                        #f
+                        '()))
+                    #{tmp 2344}#)
+                  (let ((#{tmp 2345}#
+                          ($sc-dispatch #{args 2339}# '(any . any))))
+                    (if (if #{tmp 2345}#
+                          (@apply
+                            (lambda (#{a 2348}# #{b 2349}#)
+                              (#{id? 353}# #{a 2348}#))
+                            #{tmp 2345}#)
+                          #f)
+                      (@apply
+                        (lambda (#{a 2352}# #{b 2353}#)
+                          (#{req 2330}#
+                            #{b 2353}#
+                            (cons #{a 2352}# #{rreq 2340}#)))
+                        #{tmp 2345}#)
+                      (let ((#{tmp 2354}#
+                              ($sc-dispatch #{args 2339}# '(any . any))))
+                        (if (if #{tmp 2354}#
+                              (@apply
+                                (lambda (#{a 2357}# #{b 2358}#)
+                                  (eq? (syntax->datum #{a 2357}#) #:optional))
+                                #{tmp 2354}#)
+                              #f)
+                          (@apply
+                            (lambda (#{a 2361}# #{b 2362}#)
+                              (#{opt 2332}#
+                                #{b 2362}#
+                                (reverse #{rreq 2340}#)
+                                '()))
+                            #{tmp 2354}#)
+                          (let ((#{tmp 2363}#
+                                  ($sc-dispatch #{args 2339}# '(any . any))))
+                            (if (if #{tmp 2363}#
+                                  (@apply
+                                    (lambda (#{a 2366}# #{b 2367}#)
+                                      (eq? (syntax->datum #{a 2366}#) #:key))
+                                    #{tmp 2363}#)
+                                  #f)
+                              (@apply
+                                (lambda (#{a 2370}# #{b 2371}#)
+                                  (#{key 2334}#
+                                    #{b 2371}#
+                                    (reverse #{rreq 2340}#)
+                                    '()
+                                    '()))
+                                #{tmp 2363}#)
+                              (let ((#{tmp 2372}#
+                                      ($sc-dispatch #{args 2339}# '(any any))))
+                                (if (if #{tmp 2372}#
+                                      (@apply
+                                        (lambda (#{a 2375}# #{b 2376}#)
+                                          (eq? (syntax->datum #{a 2375}#)
+                                               #:rest))
+                                        #{tmp 2372}#)
+                                      #f)
+                                  (@apply
+                                    (lambda (#{a 2379}# #{b 2380}#)
+                                      (#{rest 2336}#
+                                        #{b 2380}#
+                                        (reverse #{rreq 2340}#)
+                                        '()
+                                        '()))
+                                    #{tmp 2372}#)
+                                  (let ((#{tmp 2381}# (list #{args 2339}#)))
+                                    (if (if #{tmp 2381}#
+                                          (@apply
+                                            (lambda (#{r 2383}#)
+                                              (#{id? 353}# #{r 2383}#))
+                                            #{tmp 2381}#)
+                                          #f)
+                                      (@apply
+                                        (lambda (#{r 2385}#)
+                                          (#{rest 2336}#
+                                            #{r 2385}#
+                                            (reverse #{rreq 2340}#)
+                                            '()
+                                            '()))
+                                        #{tmp 2381}#)
+                                      (syntax-violation
+                                        'lambda*
+                                        "invalid argument list"
+                                        #{orig-args 2327}#
+                                        #{args 2339}#)))))))))))))))
+          (#{opt 2332}#
+            (lambda (#{args 2388}# #{req 2389}# #{ropt 2390}#)
+              (let ((#{tmp 2395}# ($sc-dispatch #{args 2388}# '())))
+                (if #{tmp 2395}#
+                  (@apply
+                    (lambda ()
+                      (#{check 2338}#
+                        #{req 2389}#
+                        (reverse #{ropt 2390}#)
+                        #f
+                        '()))
+                    #{tmp 2395}#)
+                  (let ((#{tmp 2396}#
+                          ($sc-dispatch #{args 2388}# '(any . any))))
+                    (if (if #{tmp 2396}#
+                          (@apply
+                            (lambda (#{a 2399}# #{b 2400}#)
+                              (#{id? 353}# #{a 2399}#))
+                            #{tmp 2396}#)
+                          #f)
+                      (@apply
+                        (lambda (#{a 2403}# #{b 2404}#)
+                          (#{opt 2332}#
+                            #{b 2404}#
+                            #{req 2389}#
+                            (cons (cons #{a 2403}#
+                                        '(#(syntax-object
+                                            #f
+                                            ((top)
+                                             #(ribcage
+                                               #(a b)
+                                               #((top) (top))
+                                               #("i2401" "i2402"))
+                                             #(ribcage () () ())
+                                             #(ribcage
+                                               #(args req ropt)
+                                               #((top) (top) (top))
+                                               #("i2391" "i2392" "i2393"))
+                                             #(ribcage
+                                               (check rest key opt req)
+                                               ((top) (top) (top) (top) (top))
+                                               ("i2337"
+                                                "i2335"
+                                                "i2333"
+                                                "i2331"
+                                                "i2329"))
+                                             #(ribcage
+                                               #(orig-args)
+                                               #((top))
+                                               #("i2328"))
+                                             #(ribcage
+                                               (lambda-var-list
+                                                 gen-var
+                                                 strip
+                                                 chi-lambda-case
+                                                 lambda*-formals
+                                                 chi-simple-lambda
+                                                 lambda-formals
+                                                 ellipsis?
+                                                 chi-void
+                                                 eval-local-transformer
+                                                 chi-local-syntax
+                                                 chi-body
+                                                 chi-macro
+                                                 chi-call
+                                                 chi-expr
+                                                 chi
+                                                 syntax-type
+                                                 chi-when-list
+                                                 chi-install-global
+                                                 chi-top-sequence
+                                                 chi-sequence
+                                                 source-wrap
+                                                 wrap
+                                                 bound-id-member?
+                                                 distinct-bound-ids?
+                                                 valid-bound-ids?
+                                                 bound-id=?
+                                                 free-id=?
+                                                 id-var-name
+                                                 same-marks?
+                                                 join-marks
+                                                 join-wraps
+                                                 smart-append
+                                                 make-binding-wrap
+                                                 extend-ribcage!
+                                                 make-empty-ribcage
+                                                 new-mark
+                                                 anti-mark
+                                                 the-anti-mark
+                                                 top-marked?
+                                                 top-wrap
+                                                 empty-wrap
+                                                 set-ribcage-labels!
+                                                 set-ribcage-marks!
+                                                 set-ribcage-symnames!
+                                                 ribcage-labels
+                                                 ribcage-marks
+                                                 ribcage-symnames
+                                                 ribcage?
+                                                 make-ribcage
+                                                 gen-labels
+                                                 gen-label
+                                                 make-rename
+                                                 rename-marks
+                                                 rename-new
+                                                 rename-old
+                                                 subst-rename?
+                                                 wrap-subst
+                                                 wrap-marks
+                                                 make-wrap
+                                                 id-sym-name&marks
+                                                 id-sym-name
+                                                 id?
+                                                 nonsymbol-id?
+                                                 global-extend
+                                                 lookup
+                                                 macros-only-env
+                                                 extend-var-env
+                                                 extend-env
+                                                 null-env
+                                                 binding-value
+                                                 binding-type
+                                                 make-binding
+                                                 arg-check
+                                                 source-annotation
+                                                 no-source
+                                                 set-syntax-object-module!
+                                                 set-syntax-object-wrap!
+                                                 set-syntax-object-expression!
+                                                 syntax-object-module
+                                                 syntax-object-wrap
+                                                 syntax-object-expression
+                                                 syntax-object?
+                                                 make-syntax-object
+                                                 build-lexical-var
+                                                 build-letrec
+                                                 build-named-let
+                                                 build-let
+                                                 build-sequence
+                                                 build-data
+                                                 build-primref
+                                                 build-primcall
+                                                 build-lambda-case
+                                                 build-case-lambda
+                                                 build-simple-lambda
+                                                 build-global-definition
+                                                 build-global-assignment
+                                                 build-global-reference
+                                                 analyze-variable
+                                                 build-lexical-assignment
+                                                 build-lexical-reference
+                                                 build-dynlet
+                                                 build-conditional
+                                                 build-call
+                                                 build-void
+                                                 maybe-name-value!
+                                                 decorate-source
+                                                 get-global-definition-hook
+                                                 put-global-definition-hook
+                                                 gensym-hook
+                                                 local-eval-hook
+                                                 top-level-eval-hook
+                                                 fx<
+                                                 fx=
+                                                 fx-
+                                                 fx+
+                                                 set-lambda-meta!
+                                                 lambda-meta
+                                                 lambda?
+                                                 make-dynlet
+                                                 make-letrec
+                                                 make-let
+                                                 make-lambda-case
+                                                 make-lambda
+                                                 make-seq
+                                                 make-primcall
+                                                 make-call
+                                                 make-conditional
+                                                 make-toplevel-define
+                                                 make-toplevel-set
+                                                 make-toplevel-ref
+                                                 make-module-set
+                                                 make-module-ref
+                                                 make-lexical-set
+                                                 make-lexical-ref
+                                                 make-primitive-ref
+                                                 make-const
+                                                 make-void)
+                                               ((top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top))
+                                               ("i470"
+                                                "i468"
+                                                "i466"
+                                                "i464"
+                                                "i462"
+                                                "i460"
+                                                "i458"
+                                                "i456"
+                                                "i454"
+                                                "i452"
+                                                "i450"
+                                                "i448"
+                                                "i446"
+                                                "i444"
+                                                "i442"
+                                                "i440"
+                                                "i438"
+                                                "i436"
+                                                "i434"
+                                                "i432"
+                                                "i430"
+                                                "i428"
+                                                "i426"
+                                                "i424"
+                                                "i422"
+                                                "i420"
+                                                "i418"
+                                                "i416"
+                                                "i414"
+                                                "i412"
+                                                "i410"
+                                                "i408"
+                                                "i406"
+                                                "i404"
+                                                "i402"
+                                                "i401"
+                                                "i399"
+                                                "i396"
+                                                "i395"
+                                                "i394"
+                                                "i392"
+                                                "i391"
+                                                "i389"
+                                                "i387"
+                                                "i385"
+                                                "i383"
+                                                "i381"
+                                                "i379"
+                                                "i377"
+                                                "i375"
+                                                "i372"
+                                                "i370"
+                                                "i369"
+                                                "i367"
+                                                "i365"
+                                                "i363"
+                                                "i361"
+                                                "i360"
+                                                "i359"
+                                                "i358"
+                                                "i356"
+                                                "i355"
+                                                "i352"
+                                                "i350"
+                                                "i348"
+                                                "i346"
+                                                "i344"
+                                                "i342"
+                                                "i340"
+                                                "i339"
+                                                "i338"
+                                                "i336"
+                                                "i334"
+                                                "i333"
+                                                "i330"
+                                                "i329"
+                                                "i327"
+                                                "i325"
+                                                "i323"
+                                                "i321"
+                                                "i319"
+                                                "i317"
+                                                "i315"
+                                                "i313"
+                                                "i311"
+                                                "i308"
+                                                "i306"
+                                                "i304"
+                                                "i302"
+                                                "i300"
+                                                "i298"
+                                                "i296"
+                                                "i294"
+                                                "i292"
+                                                "i290"
+                                                "i288"
+                                                "i286"
+                                                "i284"
+                                                "i282"
+                                                "i280"
+                                                "i278"
+                                                "i276"
+                                                "i274"
+                                                "i272"
+                                                "i270"
+                                                "i268"
+                                                "i266"
+                                                "i264"
+                                                "i262"
+                                                "i261"
+                                                "i258"
+                                                "i256"
+                                                "i255"
+                                                "i254"
+                                                "i253"
+                                                "i252"
+                                                "i250"
+                                                "i248"
+                                                "i246"
+                                                "i243"
+                                                "i241"
+                                                "i239"
+                                                "i237"
+                                                "i235"
+                                                "i233"
+                                                "i231"
+                                                "i229"
+                                                "i227"
+                                                "i225"
+                                                "i223"
+                                                "i221"
+                                                "i219"
+                                                "i217"
+                                                "i215"
+                                                "i213"
+                                                "i211"
+                                                "i209"
+                                                "i207"))
+                                             #(ribcage
+                                               (define-structure
+                                                 define-expansion-accessors
+                                                 define-expansion-constructors)
+                                               ((top) (top) (top))
+                                               ("i45" "i44" "i43")))
+                                            (hygiene guile))))
+                                  #{ropt 2390}#)))
+                        #{tmp 2396}#)
+                      (let ((#{tmp 2405}#
+                              ($sc-dispatch #{args 2388}# '((any any) . any))))
+                        (if (if #{tmp 2405}#
+                              (@apply
+                                (lambda (#{a 2409}# #{init 2410}# #{b 2411}#)
+                                  (#{id? 353}# #{a 2409}#))
+                                #{tmp 2405}#)
+                              #f)
+                          (@apply
+                            (lambda (#{a 2415}# #{init 2416}# #{b 2417}#)
+                              (#{opt 2332}#
+                                #{b 2417}#
+                                #{req 2389}#
+                                (cons (list #{a 2415}# #{init 2416}#)
+                                      #{ropt 2390}#)))
+                            #{tmp 2405}#)
+                          (let ((#{tmp 2418}#
+                                  ($sc-dispatch #{args 2388}# '(any . any))))
+                            (if (if #{tmp 2418}#
+                                  (@apply
+                                    (lambda (#{a 2421}# #{b 2422}#)
+                                      (eq? (syntax->datum #{a 2421}#) #:key))
+                                    #{tmp 2418}#)
+                                  #f)
+                              (@apply
+                                (lambda (#{a 2425}# #{b 2426}#)
+                                  (#{key 2334}#
+                                    #{b 2426}#
+                                    #{req 2389}#
+                                    (reverse #{ropt 2390}#)
+                                    '()))
+                                #{tmp 2418}#)
+                              (let ((#{tmp 2427}#
+                                      ($sc-dispatch #{args 2388}# '(any any))))
+                                (if (if #{tmp 2427}#
+                                      (@apply
+                                        (lambda (#{a 2430}# #{b 2431}#)
+                                          (eq? (syntax->datum #{a 2430}#)
+                                               #:rest))
+                                        #{tmp 2427}#)
+                                      #f)
+                                  (@apply
+                                    (lambda (#{a 2434}# #{b 2435}#)
+                                      (#{rest 2336}#
+                                        #{b 2435}#
+                                        #{req 2389}#
+                                        (reverse #{ropt 2390}#)
+                                        '()))
+                                    #{tmp 2427}#)
+                                  (let ((#{tmp 2436}# (list #{args 2388}#)))
+                                    (if (if #{tmp 2436}#
+                                          (@apply
+                                            (lambda (#{r 2438}#)
+                                              (#{id? 353}# #{r 2438}#))
+                                            #{tmp 2436}#)
+                                          #f)
+                                      (@apply
+                                        (lambda (#{r 2440}#)
+                                          (#{rest 2336}#
+                                            #{r 2440}#
+                                            #{req 2389}#
+                                            (reverse #{ropt 2390}#)
+                                            '()))
+                                        #{tmp 2436}#)
+                                      (syntax-violation
+                                        'lambda*
+                                        "invalid optional argument list"
+                                        #{orig-args 2327}#
+                                        #{args 2388}#)))))))))))))))
+          (#{key 2334}#
+            (lambda (#{args 2443}#
+                     #{req 2444}#
+                     #{opt 2445}#
+                     #{rkey 2446}#)
+              (let ((#{tmp 2452}# ($sc-dispatch #{args 2443}# '())))
+                (if #{tmp 2452}#
+                  (@apply
+                    (lambda ()
+                      (#{check 2338}#
+                        #{req 2444}#
+                        #{opt 2445}#
+                        #f
+                        (cons #f (reverse #{rkey 2446}#))))
+                    #{tmp 2452}#)
+                  (let ((#{tmp 2453}#
+                          ($sc-dispatch #{args 2443}# '(any . any))))
+                    (if (if #{tmp 2453}#
+                          (@apply
+                            (lambda (#{a 2456}# #{b 2457}#)
+                              (#{id? 353}# #{a 2456}#))
+                            #{tmp 2453}#)
+                          #f)
+                      (@apply
+                        (lambda (#{a 2460}# #{b 2461}#)
+                          (let ((#{tmp 2463}#
+                                  (symbol->keyword
+                                    (syntax->datum #{a 2460}#))))
+                            (#{key 2334}#
+                              #{b 2461}#
+                              #{req 2444}#
+                              #{opt 2445}#
+                              (cons (cons #{tmp 2463}#
+                                          (cons #{a 2460}#
+                                                '(#(syntax-object
+                                                    #f
+                                                    ((top)
+                                                     #(ribcage () () ())
+                                                     #(ribcage
+                                                       #(k)
+                                                       #((top))
+                                                       #("i2464"))
+                                                     #(ribcage
+                                                       #(a b)
+                                                       #((top) (top))
+                                                       #("i2458" "i2459"))
+                                                     #(ribcage () () ())
+                                                     #(ribcage
+                                                       #(args req opt rkey)
+                                                       #((top)
+                                                         (top)
+                                                         (top)
+                                                         (top))
+                                                       #("i2447"
+                                                         "i2448"
+                                                         "i2449"
+                                                         "i2450"))
+                                                     #(ribcage
+                                                       (check rest key opt req)
+                                                       ((top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top))
+                                                       ("i2337"
+                                                        "i2335"
+                                                        "i2333"
+                                                        "i2331"
+                                                        "i2329"))
+                                                     #(ribcage
+                                                       #(orig-args)
+                                                       #((top))
+                                                       #("i2328"))
+                                                     #(ribcage
+                                                       (lambda-var-list
+                                                         gen-var
+                                                         strip
+                                                         chi-lambda-case
+                                                         lambda*-formals
+                                                         chi-simple-lambda
+                                                         lambda-formals
+                                                         ellipsis?
+                                                         chi-void
+                                                         eval-local-transformer
+                                                         chi-local-syntax
+                                                         chi-body
+                                                         chi-macro
+                                                         chi-call
+                                                         chi-expr
+                                                         chi
+                                                         syntax-type
+                                                         chi-when-list
+                                                         chi-install-global
+                                                         chi-top-sequence
+                                                         chi-sequence
+                                                         source-wrap
+                                                         wrap
+                                                         bound-id-member?
+                                                         distinct-bound-ids?
+                                                         valid-bound-ids?
+                                                         bound-id=?
+                                                         free-id=?
+                                                         id-var-name
+                                                         same-marks?
+                                                         join-marks
+                                                         join-wraps
+                                                         smart-append
+                                                         make-binding-wrap
+                                                         extend-ribcage!
+                                                         make-empty-ribcage
+                                                         new-mark
+                                                         anti-mark
+                                                         the-anti-mark
+                                                         top-marked?
+                                                         top-wrap
+                                                         empty-wrap
+                                                         set-ribcage-labels!
+                                                         set-ribcage-marks!
+                                                         set-ribcage-symnames!
+                                                         ribcage-labels
+                                                         ribcage-marks
+                                                         ribcage-symnames
+                                                         ribcage?
+                                                         make-ribcage
+                                                         gen-labels
+                                                         gen-label
+                                                         make-rename
+                                                         rename-marks
+                                                         rename-new
+                                                         rename-old
+                                                         subst-rename?
+                                                         wrap-subst
+                                                         wrap-marks
+                                                         make-wrap
+                                                         id-sym-name&marks
+                                                         id-sym-name
+                                                         id?
+                                                         nonsymbol-id?
+                                                         global-extend
+                                                         lookup
+                                                         macros-only-env
+                                                         extend-var-env
+                                                         extend-env
+                                                         null-env
+                                                         binding-value
+                                                         binding-type
+                                                         make-binding
+                                                         arg-check
+                                                         source-annotation
+                                                         no-source
+                                                         
set-syntax-object-module!
+                                                         
set-syntax-object-wrap!
+                                                         
set-syntax-object-expression!
+                                                         syntax-object-module
+                                                         syntax-object-wrap
+                                                         
syntax-object-expression
+                                                         syntax-object?
+                                                         make-syntax-object
+                                                         build-lexical-var
+                                                         build-letrec
+                                                         build-named-let
+                                                         build-let
+                                                         build-sequence
+                                                         build-data
+                                                         build-primref
+                                                         build-primcall
+                                                         build-lambda-case
+                                                         build-case-lambda
+                                                         build-simple-lambda
+                                                         
build-global-definition
+                                                         
build-global-assignment
+                                                         build-global-reference
+                                                         analyze-variable
+                                                         
build-lexical-assignment
+                                                         
build-lexical-reference
+                                                         build-dynlet
+                                                         build-conditional
+                                                         build-call
+                                                         build-void
+                                                         maybe-name-value!
+                                                         decorate-source
+                                                         
get-global-definition-hook
+                                                         
put-global-definition-hook
+                                                         gensym-hook
+                                                         local-eval-hook
+                                                         top-level-eval-hook
+                                                         fx<
+                                                         fx=
+                                                         fx-
+                                                         fx+
+                                                         set-lambda-meta!
+                                                         lambda-meta
+                                                         lambda?
+                                                         make-dynlet
+                                                         make-letrec
+                                                         make-let
+                                                         make-lambda-case
+                                                         make-lambda
+                                                         make-seq
+                                                         make-primcall
+                                                         make-call
+                                                         make-conditional
+                                                         make-toplevel-define
+                                                         make-toplevel-set
+                                                         make-toplevel-ref
+                                                         make-module-set
+                                                         make-module-ref
+                                                         make-lexical-set
+                                                         make-lexical-ref
+                                                         make-primitive-ref
+                                                         make-const
+                                                         make-void)
+                                                       ((top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top))
+                                                       ("i470"
+                                                        "i468"
+                                                        "i466"
+                                                        "i464"
+                                                        "i462"
+                                                        "i460"
+                                                        "i458"
+                                                        "i456"
+                                                        "i454"
+                                                        "i452"
+                                                        "i450"
+                                                        "i448"
+                                                        "i446"
+                                                        "i444"
+                                                        "i442"
+                                                        "i440"
+                                                        "i438"
+                                                        "i436"
+                                                        "i434"
+                                                        "i432"
+                                                        "i430"
+                                                        "i428"
+                                                        "i426"
+                                                        "i424"
+                                                        "i422"
+                                                        "i420"
+                                                        "i418"
+                                                        "i416"
+                                                        "i414"
+                                                        "i412"
+                                                        "i410"
+                                                        "i408"
+                                                        "i406"
+                                                        "i404"
+                                                        "i402"
+                                                        "i401"
+                                                        "i399"
+                                                        "i396"
+                                                        "i395"
+                                                        "i394"
+                                                        "i392"
+                                                        "i391"
+                                                        "i389"
+                                                        "i387"
+                                                        "i385"
+                                                        "i383"
+                                                        "i381"
+                                                        "i379"
+                                                        "i377"
+                                                        "i375"
+                                                        "i372"
+                                                        "i370"
+                                                        "i369"
+                                                        "i367"
+                                                        "i365"
+                                                        "i363"
+                                                        "i361"
+                                                        "i360"
+                                                        "i359"
+                                                        "i358"
+                                                        "i356"
+                                                        "i355"
+                                                        "i352"
+                                                        "i350"
+                                                        "i348"
+                                                        "i346"
+                                                        "i344"
+                                                        "i342"
+                                                        "i340"
+                                                        "i339"
+                                                        "i338"
+                                                        "i336"
+                                                        "i334"
+                                                        "i333"
+                                                        "i330"
+                                                        "i329"
+                                                        "i327"
+                                                        "i325"
+                                                        "i323"
+                                                        "i321"
+                                                        "i319"
+                                                        "i317"
+                                                        "i315"
+                                                        "i313"
+                                                        "i311"
+                                                        "i308"
+                                                        "i306"
+                                                        "i304"
+                                                        "i302"
+                                                        "i300"
+                                                        "i298"
+                                                        "i296"
+                                                        "i294"
+                                                        "i292"
+                                                        "i290"
+                                                        "i288"
+                                                        "i286"
+                                                        "i284"
+                                                        "i282"
+                                                        "i280"
+                                                        "i278"
+                                                        "i276"
+                                                        "i274"
+                                                        "i272"
+                                                        "i270"
+                                                        "i268"
+                                                        "i266"
+                                                        "i264"
+                                                        "i262"
+                                                        "i261"
+                                                        "i258"
+                                                        "i256"
+                                                        "i255"
+                                                        "i254"
+                                                        "i253"
+                                                        "i252"
+                                                        "i250"
+                                                        "i248"
+                                                        "i246"
+                                                        "i243"
+                                                        "i241"
+                                                        "i239"
+                                                        "i237"
+                                                        "i235"
+                                                        "i233"
+                                                        "i231"
+                                                        "i229"
+                                                        "i227"
+                                                        "i225"
+                                                        "i223"
+                                                        "i221"
+                                                        "i219"
+                                                        "i217"
+                                                        "i215"
+                                                        "i213"
+                                                        "i211"
+                                                        "i209"
+                                                        "i207"))
+                                                     #(ribcage
+                                                       (define-structure
+                                                         
define-expansion-accessors
+                                                         
define-expansion-constructors)
+                                                       ((top) (top) (top))
+                                                       ("i45" "i44" "i43")))
+                                                    (hygiene guile)))))
+                                    #{rkey 2446}#))))
+                        #{tmp 2453}#)
+                      (let ((#{tmp 2466}#
+                              ($sc-dispatch #{args 2443}# '((any any) . any))))
+                        (if (if #{tmp 2466}#
+                              (@apply
+                                (lambda (#{a 2470}# #{init 2471}# #{b 2472}#)
+                                  (#{id? 353}# #{a 2470}#))
+                                #{tmp 2466}#)
+                              #f)
+                          (@apply
+                            (lambda (#{a 2476}# #{init 2477}# #{b 2478}#)
+                              (let ((#{tmp 2480}#
+                                      (symbol->keyword
+                                        (syntax->datum #{a 2476}#))))
+                                (#{key 2334}#
+                                  #{b 2478}#
+                                  #{req 2444}#
+                                  #{opt 2445}#
+                                  (cons (list #{tmp 2480}#
+                                              #{a 2476}#
+                                              #{init 2477}#)
+                                        #{rkey 2446}#))))
+                            #{tmp 2466}#)
+                          (let ((#{tmp 2483}#
+                                  ($sc-dispatch
+                                    #{args 2443}#
+                                    '((any any any) . any))))
+                            (if (if #{tmp 2483}#
+                                  (@apply
+                                    (lambda (#{a 2488}#
+                                             #{init 2489}#
+                                             #{k 2490}#
+                                             #{b 2491}#)
+                                      (if (#{id? 353}# #{a 2488}#)
+                                        (keyword? (syntax->datum #{k 2490}#))
+                                        #f))
+                                    #{tmp 2483}#)
+                                  #f)
+                              (@apply
+                                (lambda (#{a 2498}#
+                                         #{init 2499}#
+                                         #{k 2500}#
+                                         #{b 2501}#)
+                                  (#{key 2334}#
+                                    #{b 2501}#
+                                    #{req 2444}#
+                                    #{opt 2445}#
+                                    (cons (list #{k 2500}#
+                                                #{a 2498}#
+                                                #{init 2499}#)
+                                          #{rkey 2446}#)))
+                                #{tmp 2483}#)
+                              (let ((#{tmp 2502}#
+                                      ($sc-dispatch #{args 2443}# '(any))))
+                                (if (if #{tmp 2502}#
+                                      (@apply
+                                        (lambda (#{aok 2504}#)
+                                          (eq? (syntax->datum #{aok 2504}#)
+                                               #:allow-other-keys))
+                                        #{tmp 2502}#)
+                                      #f)
+                                  (@apply
+                                    (lambda (#{aok 2506}#)
+                                      (#{check 2338}#
+                                        #{req 2444}#
+                                        #{opt 2445}#
+                                        #f
+                                        (cons #t (reverse #{rkey 2446}#))))
+                                    #{tmp 2502}#)
+                                  (let ((#{tmp 2507}#
+                                          ($sc-dispatch
+                                            #{args 2443}#
+                                            '(any any any))))
+                                    (if (if #{tmp 2507}#
+                                          (@apply
+                                            (lambda (#{aok 2511}#
+                                                     #{a 2512}#
+                                                     #{b 2513}#)
+                                              (if (eq? (syntax->datum
+                                                         #{aok 2511}#)
+                                                       #:allow-other-keys)
+                                                (eq? (syntax->datum #{a 2512}#)
+                                                     #:rest)
+                                                #f))
+                                            #{tmp 2507}#)
+                                          #f)
+                                      (@apply
+                                        (lambda (#{aok 2519}#
+                                                 #{a 2520}#
+                                                 #{b 2521}#)
+                                          (#{rest 2336}#
+                                            #{b 2521}#
+                                            #{req 2444}#
+                                            #{opt 2445}#
+                                            (cons #t (reverse #{rkey 2446}#))))
+                                        #{tmp 2507}#)
+                                      (let ((#{tmp 2522}#
+                                              ($sc-dispatch
+                                                #{args 2443}#
+                                                '(any . any))))
+                                        (if (if #{tmp 2522}#
+                                              (@apply
+                                                (lambda (#{aok 2525}#
+                                                         #{r 2526}#)
+                                                  (if (eq? (syntax->datum
+                                                             #{aok 2525}#)
+                                                           #:allow-other-keys)
+                                                    (#{id? 353}# #{r 2526}#)
+                                                    #f))
+                                                #{tmp 2522}#)
+                                              #f)
+                                          (@apply
+                                            (lambda (#{aok 2531}# #{r 2532}#)
+                                              (#{rest 2336}#
+                                                #{r 2532}#
+                                                #{req 2444}#
+                                                #{opt 2445}#
+                                                (cons #t
+                                                      (reverse
+                                                        #{rkey 2446}#))))
+                                            #{tmp 2522}#)
+                                          (let ((#{tmp 2533}#
+                                                  ($sc-dispatch
+                                                    #{args 2443}#
+                                                    '(any any))))
+                                            (if (if #{tmp 2533}#
+                                                  (@apply
+                                                    (lambda (#{a 2536}#
+                                                             #{b 2537}#)
+                                                      (eq? (syntax->datum
+                                                             #{a 2536}#)
+                                                           #:rest))
+                                                    #{tmp 2533}#)
+                                                  #f)
+                                              (@apply
+                                                (lambda (#{a 2540}# #{b 2541}#)
+                                                  (#{rest 2336}#
+                                                    #{b 2541}#
+                                                    #{req 2444}#
+                                                    #{opt 2445}#
+                                                    (cons #f
+                                                          (reverse
+                                                            #{rkey 2446}#))))
+                                                #{tmp 2533}#)
+                                              (let ((#{tmp 2542}#
+                                                      (list #{args 2443}#)))
+                                                (if (if #{tmp 2542}#
+                                                      (@apply
+                                                        (lambda (#{r 2544}#)
+                                                          (#{id? 353}#
+                                                            #{r 2544}#))
+                                                        #{tmp 2542}#)
+                                                      #f)
+                                                  (@apply
+                                                    (lambda (#{r 2546}#)
+                                                      (#{rest 2336}#
+                                                        #{r 2546}#
+                                                        #{req 2444}#
+                                                        #{opt 2445}#
+                                                        (cons #f
+                                                              (reverse
+                                                                #{rkey 
2446}#))))
+                                                    #{tmp 2542}#)
+                                                  (syntax-violation
+                                                    'lambda*
+                                                    "invalid keyword argument 
list"
+                                                    #{orig-args 2327}#
+                                                    #{args 
2443}#)))))))))))))))))))))
+          (#{rest 2336}#
+            (lambda (#{args 2549}#
+                     #{req 2550}#
+                     #{opt 2551}#
+                     #{kw 2552}#)
+              (let ((#{tmp 2558}# (list #{args 2549}#)))
+                (if (if #{tmp 2558}#
+                      (@apply
+                        (lambda (#{r 2560}#) (#{id? 353}# #{r 2560}#))
+                        #{tmp 2558}#)
+                      #f)
+                  (@apply
+                    (lambda (#{r 2562}#)
+                      (#{check 2338}#
+                        #{req 2550}#
+                        #{opt 2551}#
+                        #{r 2562}#
+                        #{kw 2552}#))
+                    #{tmp 2558}#)
+                  (syntax-violation
+                    'lambda*
+                    "invalid rest argument"
+                    #{orig-args 2327}#
+                    #{args 2549}#)))))
+          (#{check 2338}#
+            (lambda (#{req 2565}#
+                     #{opt 2566}#
+                     #{rest 2567}#
+                     #{kw 2568}#)
+              (if (#{distinct-bound-ids? 423}#
+                    (append
+                      #{req 2565}#
+                      (map car #{opt 2566}#)
+                      (if #{rest 2567}# (list #{rest 2567}#) '())
+                      (if (pair? #{kw 2568}#)
+                        (map cadr (cdr #{kw 2568}#))
+                        '())))
+                (values
+                  #{req 2565}#
+                  #{opt 2566}#
+                  #{rest 2567}#
+                  #{kw 2568}#)
+                (syntax-violation
+                  'lambda*
+                  "duplicate identifier in argument list"
+                  #{orig-args 2327}#)))))
+         (#{req 2330}# #{orig-args 2327}# '()))))
+   (#{chi-lambda-case 465}#
+     (lambda (#{e 2576}#
+              #{r 2577}#
+              #{w 2578}#
+              #{s 2579}#
+              #{mod 2580}#
+              #{get-formals 2581}#
+              #{clauses 2582}#)
+       (letrec*
+         ((#{expand-opt 2593}#
+            (lambda (#{req 2616}#
+                     #{opt 2617}#
+                     #{rest 2618}#
+                     #{kw 2619}#
+                     #{body 2620}#
+                     #{vars 2621}#
+                     #{r* 2622}#
+                     #{w* 2623}#
+                     #{out 2624}#
+                     #{inits 2625}#)
+              (if (pair? #{opt 2617}#)
+                (let ((#{tmp 2638}# (car #{opt 2617}#)))
+                  (let ((#{tmp 2639}#
+                          ($sc-dispatch #{tmp 2638}# '(any any))))
+                    (if #{tmp 2639}#
+                      (@apply
+                        (lambda (#{id 2642}# #{i 2643}#)
+                          (let ((#{v 2646}# (#{gen-var 469}# #{id 2642}#)))
+                            (let ((#{l 2648}#
+                                    (#{gen-labels 373}# (list #{v 2646}#))))
+                              (let ((#{r** 2650}#
+                                      (#{extend-var-env 343}#
+                                        #{l 2648}#
+                                        (list #{v 2646}#)
+                                        #{r* 2622}#)))
+                                (let ((#{w** 2652}#
+                                        (#{make-binding-wrap 405}#
+                                          (list #{id 2642}#)
+                                          #{l 2648}#
+                                          #{w* 2623}#)))
+                                  (#{expand-opt 2593}#
+                                    #{req 2616}#
+                                    (cdr #{opt 2617}#)
+                                    #{rest 2618}#
+                                    #{kw 2619}#
+                                    #{body 2620}#
+                                    (cons #{v 2646}# #{vars 2621}#)
+                                    #{r** 2650}#
+                                    #{w** 2652}#
+                                    (cons (syntax->datum #{id 2642}#)
+                                          #{out 2624}#)
+                                    (cons (#{chi 441}#
+                                            #{i 2643}#
+                                            #{r* 2622}#
+                                            #{w* 2623}#
+                                            #{mod 2580}#)
+                                          #{inits 2625}#)))))))
+                        #{tmp 2639}#)
+                      (syntax-violation
+                        #f
+                        "source expression failed to match any pattern"
+                        #{tmp 2638}#))))
+                (if #{rest 2618}#
+                  (let ((#{v 2657}# (#{gen-var 469}# #{rest 2618}#)))
+                    (let ((#{l 2659}#
+                            (#{gen-labels 373}# (list #{v 2657}#))))
+                      (let ((#{r* 2661}#
+                              (#{extend-var-env 343}#
+                                #{l 2659}#
+                                (list #{v 2657}#)
+                                #{r* 2622}#)))
+                        (let ((#{w* 2663}#
+                                (#{make-binding-wrap 405}#
+                                  (list #{rest 2618}#)
+                                  #{l 2659}#
+                                  #{w* 2623}#)))
+                          (#{expand-kw 2595}#
+                            #{req 2616}#
+                            (if (pair? #{out 2624}#)
+                              (reverse #{out 2624}#)
+                              #f)
+                            (syntax->datum #{rest 2618}#)
+                            (if (pair? #{kw 2619}#)
+                              (cdr #{kw 2619}#)
+                              #{kw 2619}#)
+                            #{body 2620}#
+                            (cons #{v 2657}# #{vars 2621}#)
+                            #{r* 2661}#
+                            #{w* 2663}#
+                            (if (pair? #{kw 2619}#) (car #{kw 2619}#) #f)
+                            '()
+                            #{inits 2625}#)))))
+                  (#{expand-kw 2595}#
+                    #{req 2616}#
+                    (if (pair? #{out 2624}#)
+                      (reverse #{out 2624}#)
+                      #f)
+                    #f
+                    (if (pair? #{kw 2619}#)
+                      (cdr #{kw 2619}#)
+                      #{kw 2619}#)
+                    #{body 2620}#
+                    #{vars 2621}#
+                    #{r* 2622}#
+                    #{w* 2623}#
+                    (if (pair? #{kw 2619}#) (car #{kw 2619}#) #f)
+                    '()
+                    #{inits 2625}#)))))
+          (#{expand-kw 2595}#
+            (lambda (#{req 2665}#
+                     #{opt 2666}#
+                     #{rest 2667}#
+                     #{kw 2668}#
+                     #{body 2669}#
+                     #{vars 2670}#
+                     #{r* 2671}#
+                     #{w* 2672}#
+                     #{aok 2673}#
+                     #{out 2674}#
+                     #{inits 2675}#)
+              (if (pair? #{kw 2668}#)
+                (let ((#{tmp 2689}# (car #{kw 2668}#)))
+                  (let ((#{tmp 2690}#
+                          ($sc-dispatch #{tmp 2689}# '(any any any))))
+                    (if #{tmp 2690}#
+                      (@apply
+                        (lambda (#{k 2694}# #{id 2695}# #{i 2696}#)
+                          (let ((#{v 2699}# (#{gen-var 469}# #{id 2695}#)))
+                            (let ((#{l 2701}#
+                                    (#{gen-labels 373}# (list #{v 2699}#))))
+                              (let ((#{r** 2703}#
+                                      (#{extend-var-env 343}#
+                                        #{l 2701}#
+                                        (list #{v 2699}#)
+                                        #{r* 2671}#)))
+                                (let ((#{w** 2705}#
+                                        (#{make-binding-wrap 405}#
+                                          (list #{id 2695}#)
+                                          #{l 2701}#
+                                          #{w* 2672}#)))
+                                  (#{expand-kw 2595}#
+                                    #{req 2665}#
+                                    #{opt 2666}#
+                                    #{rest 2667}#
+                                    (cdr #{kw 2668}#)
+                                    #{body 2669}#
+                                    (cons #{v 2699}# #{vars 2670}#)
+                                    #{r** 2703}#
+                                    #{w** 2705}#
+                                    #{aok 2673}#
+                                    (cons (list (syntax->datum #{k 2694}#)
+                                                (syntax->datum #{id 2695}#)
+                                                #{v 2699}#)
+                                          #{out 2674}#)
+                                    (cons (#{chi 441}#
+                                            #{i 2696}#
+                                            #{r* 2671}#
+                                            #{w* 2672}#
+                                            #{mod 2580}#)
+                                          #{inits 2675}#)))))))
+                        #{tmp 2690}#)
+                      (syntax-violation
+                        #f
+                        "source expression failed to match any pattern"
+                        #{tmp 2689}#))))
+                (#{expand-body 2597}#
+                  #{req 2665}#
+                  #{opt 2666}#
+                  #{rest 2667}#
+                  (if (if #{aok 2673}#
+                        #{aok 2673}#
+                        (pair? #{out 2674}#))
+                    (cons #{aok 2673}# (reverse #{out 2674}#))
+                    #f)
+                  #{body 2669}#
+                  (reverse #{vars 2670}#)
+                  #{r* 2671}#
+                  #{w* 2672}#
+                  (reverse #{inits 2675}#)
+                  '()))))
+          (#{expand-body 2597}#
+            (lambda (#{req 2711}#
+                     #{opt 2712}#
+                     #{rest 2713}#
+                     #{kw 2714}#
+                     #{body 2715}#
+                     #{vars 2716}#
+                     #{r* 2717}#
+                     #{w* 2718}#
+                     #{inits 2719}#
+                     #{meta 2720}#)
+              (let ((#{tmp 2732}#
+                      ($sc-dispatch
+                        #{body 2715}#
+                        '(any any . each-any))))
+                (if (if #{tmp 2732}#
+                      (@apply
+                        (lambda (#{docstring 2736}# #{e1 2737}# #{e2 2738}#)
+                          (string? (syntax->datum #{docstring 2736}#)))
+                        #{tmp 2732}#)
+                      #f)
+                  (@apply
+                    (lambda (#{docstring 2742}# #{e1 2743}# #{e2 2744}#)
+                      (#{expand-body 2597}#
+                        #{req 2711}#
+                        #{opt 2712}#
+                        #{rest 2713}#
+                        #{kw 2714}#
+                        (cons #{e1 2743}# #{e2 2744}#)
+                        #{vars 2716}#
+                        #{r* 2717}#
+                        #{w* 2718}#
+                        #{inits 2719}#
+                        (append
+                          #{meta 2720}#
+                          (list (cons 'documentation
+                                      (syntax->datum #{docstring 2742}#))))))
+                    #{tmp 2732}#)
+                  (let ((#{tmp 2747}#
+                          ($sc-dispatch
+                            #{body 2715}#
+                            '(#(vector #(each (any . any))) any . each-any))))
+                    (if #{tmp 2747}#
+                      (@apply
+                        (lambda (#{k 2752}# #{v 2753}# #{e1 2754}# #{e2 2755}#)
+                          (#{expand-body 2597}#
+                            #{req 2711}#
+                            #{opt 2712}#
+                            #{rest 2713}#
+                            #{kw 2714}#
+                            (cons #{e1 2754}# #{e2 2755}#)
+                            #{vars 2716}#
+                            #{r* 2717}#
+                            #{w* 2718}#
+                            #{inits 2719}#
+                            (append
+                              #{meta 2720}#
+                              (syntax->datum
+                                (map cons #{k 2752}# #{v 2753}#)))))
+                        #{tmp 2747}#)
+                      (let ((#{tmp 2759}#
+                              ($sc-dispatch #{body 2715}# '(any . each-any))))
+                        (if #{tmp 2759}#
+                          (@apply
+                            (lambda (#{e1 2762}# #{e2 2763}#)
+                              (values
+                                #{meta 2720}#
+                                #{req 2711}#
+                                #{opt 2712}#
+                                #{rest 2713}#
+                                #{kw 2714}#
+                                #{inits 2719}#
+                                #{vars 2716}#
+                                (#{chi-body 449}#
+                                  (cons #{e1 2762}# #{e2 2763}#)
+                                  (#{source-wrap 429}#
+                                    #{e 2576}#
+                                    #{w 2578}#
+                                    #{s 2579}#
+                                    #{mod 2580}#)
+                                  #{r* 2717}#
+                                  #{w* 2718}#
+                                  #{mod 2580}#)))
+                            #{tmp 2759}#)
+                          (syntax-violation
+                            #f
+                            "source expression failed to match any pattern"
+                            #{body 2715}#))))))))))
+         (let ((#{tmp 2766}#
+                 ($sc-dispatch #{clauses 2582}# '())))
+           (if #{tmp 2766}#
+             (@apply (lambda () (values '() #f)) #{tmp 2766}#)
+             (let ((#{tmp 2767}#
+                     ($sc-dispatch
+                       #{clauses 2582}#
+                       '((any any . each-any)
+                         .
+                         #(each (any any . each-any))))))
+               (if #{tmp 2767}#
+                 (@apply
+                   (lambda (#{args 2774}#
+                            #{e1 2775}#
+                            #{e2 2776}#
+                            #{args* 2777}#
+                            #{e1* 2778}#
+                            #{e2* 2779}#)
+                     (call-with-values
+                       (lambda () (#{get-formals 2581}# #{args 2774}#))
+                       (lambda (#{req 2780}#
+                                #{opt 2781}#
+                                #{rest 2782}#
+                                #{kw 2783}#)
+                         (call-with-values
+                           (lambda ()
+                             (let ((#{body 5051}#
+                                     (cons #{e1 2775}# #{e2 2776}#)))
+                               (let ((#{vars 5052}#
+                                       (map #{gen-var 469}# #{req 2780}#))
+                                     (#{labels 5053}#
+                                       (#{gen-labels 373}# #{req 2780}#)))
+                                 (let ((#{r* 5054}#
+                                         (#{extend-var-env 343}#
+                                           #{labels 5053}#
+                                           #{vars 5052}#
+                                           #{r 2577}#))
+                                       (#{w* 5055}#
+                                         (#{make-binding-wrap 405}#
+                                           #{req 2780}#
+                                           #{labels 5053}#
+                                           #{w 2578}#)))
+                                   (#{expand-opt 2593}#
+                                     (map syntax->datum #{req 2780}#)
+                                     #{opt 2781}#
+                                     #{rest 2782}#
+                                     #{kw 2783}#
+                                     #{body 5051}#
+                                     (reverse #{vars 5052}#)
+                                     #{r* 5054}#
+                                     #{w* 5055}#
+                                     '()
+                                     '())))))
+                           (lambda (#{meta 2789}#
+                                    #{req 2790}#
+                                    #{opt 2791}#
+                                    #{rest 2792}#
+                                    #{kw 2793}#
+                                    #{inits 2794}#
+                                    #{vars 2795}#
+                                    #{body 2796}#)
+                             (call-with-values
+                               (lambda ()
+                                 (#{chi-lambda-case 465}#
+                                   #{e 2576}#
+                                   #{r 2577}#
+                                   #{w 2578}#
+                                   #{s 2579}#
+                                   #{mod 2580}#
+                                   #{get-formals 2581}#
+                                   (map (lambda (#{tmp 2807}#
+                                                 #{tmp 2806}#
+                                                 #{tmp 2805}#)
+                                          (cons #{tmp 2805}#
+                                                (cons #{tmp 2806}#
+                                                      #{tmp 2807}#)))
+                                        #{e2* 2779}#
+                                        #{e1* 2778}#
+                                        #{args* 2777}#)))
+                               (lambda (#{meta* 2809}# #{else* 2810}#)
+                                 (values
+                                   (append #{meta 2789}# #{meta* 2809}#)
+                                   (#{build-lambda-case 295}#
+                                     #{s 2579}#
+                                     #{req 2790}#
+                                     #{opt 2791}#
+                                     #{rest 2792}#
+                                     #{kw 2793}#
+                                     #{inits 2794}#
+                                     #{vars 2795}#
+                                     #{body 2796}#
+                                     #{else* 2810}#)))))))))
+                   #{tmp 2767}#)
+                 (syntax-violation
+                   #f
+                   "source expression failed to match any pattern"
+                   #{clauses 2582}#))))))))
+   (#{strip 467}#
+     (lambda (#{x 2813}# #{w 2814}#)
+       (if (memq 'top (car #{w 2814}#))
+         #{x 2813}#
+         (letrec*
+           ((#{f 2821}#
+              (lambda (#{x 2822}#)
+                (if (#{syntax-object? 316}# #{x 2822}#)
+                  (#{strip 467}#
+                    (#{syntax-object-expression 318}# #{x 2822}#)
+                    (#{syntax-object-wrap 320}# #{x 2822}#))
+                  (if (pair? #{x 2822}#)
+                    (let ((#{a 2829}# (#{f 2821}# (car #{x 2822}#)))
+                          (#{d 2830}# (#{f 2821}# (cdr #{x 2822}#))))
+                      (if (if (eq? #{a 2829}# (car #{x 2822}#))
+                            (eq? #{d 2830}# (cdr #{x 2822}#))
+                            #f)
+                        #{x 2822}#
+                        (cons #{a 2829}# #{d 2830}#)))
+                    (if (vector? #{x 2822}#)
+                      (let ((#{old 2836}# (vector->list #{x 2822}#)))
+                        (let ((#{new 2838}# (map #{f 2821}# #{old 2836}#)))
+                          (letrec*
+                            ((#{lp 2842}#
+                               (lambda (#{l1 2843}# #{l2 2844}#)
+                                 (if (null? #{l1 2843}#)
+                                   #{x 2822}#
+                                   (if (eq? (car #{l1 2843}#)
+                                            (car #{l2 2844}#))
+                                     (#{lp 2842}#
+                                       (cdr #{l1 2843}#)
+                                       (cdr #{l2 2844}#))
+                                     (list->vector #{new 2838}#))))))
+                            (#{lp 2842}# #{old 2836}# #{new 2838}#))))
+                      #{x 2822}#))))))
+           (#{f 2821}# #{x 2813}#)))))
+   (#{gen-var 469}#
+     (lambda (#{id 2846}#)
+       (let ((#{id 2849}#
+               (if (#{syntax-object? 316}# #{id 2846}#)
+                 (#{syntax-object-expression 318}# #{id 2846}#)
+                 #{id 2846}#)))
+         (gensym
+           (string-append (symbol->string #{id 2849}#) " ")))))
+   (#{lambda-var-list 471}#
+     (lambda (#{vars 2851}#)
+       (letrec*
+         ((#{lvl 2857}#
+            (lambda (#{vars 2858}# #{ls 2859}# #{w 2860}#)
+              (if (pair? #{vars 2858}#)
+                (#{lvl 2857}#
+                  (cdr #{vars 2858}#)
+                  (cons (#{wrap 427}# (car #{vars 2858}#) #{w 2860}# #f)
+                        #{ls 2859}#)
+                  #{w 2860}#)
+                (if (#{id? 353}# #{vars 2858}#)
+                  (cons (#{wrap 427}# #{vars 2858}# #{w 2860}# #f)
+                        #{ls 2859}#)
+                  (if (null? #{vars 2858}#)
+                    #{ls 2859}#
+                    (if (#{syntax-object? 316}# #{vars 2858}#)
+                      (#{lvl 2857}#
+                        (#{syntax-object-expression 318}# #{vars 2858}#)
+                        #{ls 2859}#
+                        (#{join-wraps 409}#
+                          #{w 2860}#
+                          (#{syntax-object-wrap 320}# #{vars 2858}#)))
+                      (cons #{vars 2858}# #{ls 2859}#))))))))
+         (#{lvl 2857}# #{vars 2851}# '() '(()))))))
+  (begin
+    (lambda (#{src 789}# #{name 790}#)
+      (make-struct/no-tail
+        (vector-ref %expanded-vtables 2)
+        #{src 789}#
+        #{name 790}#))
+    (module-define!
+      (current-module)
+      'letrec-syntax
+      (make-syntax-transformer
+        'letrec-syntax
+        'local-syntax
+        #t))
+    (module-define!
+      (current-module)
+      'let-syntax
+      (make-syntax-transformer
+        'let-syntax
+        'local-syntax
+        #f))
+    (#{global-extend 349}#
+      'core
+      'fluid-let-syntax
+      (lambda (#{e 2871}#
+               #{r 2872}#
+               #{w 2873}#
+               #{s 2874}#
+               #{mod 2875}#)
+        (let ((#{tmp 2882}#
+                ($sc-dispatch
+                  #{e 2871}#
+                  '(_ #(each (any any)) any . each-any))))
+          (if (if #{tmp 2882}#
+                (@apply
+                  (lambda (#{var 2887}#
+                           #{val 2888}#
+                           #{e1 2889}#
+                           #{e2 2890}#)
+                    (#{valid-bound-ids? 421}# #{var 2887}#))
+                  #{tmp 2882}#)
+                #f)
+            (@apply
+              (lambda (#{var 2896}#
+                       #{val 2897}#
+                       #{e1 2898}#
+                       #{e2 2899}#)
+                (let ((#{names 2901}#
+                        (map (lambda (#{x 2902}#)
+                               (#{id-var-name 415}# #{x 2902}# #{w 2873}#))
+                             #{var 2896}#)))
+                  (begin
+                    (for-each
+                      (lambda (#{id 2905}# #{n 2906}#)
+                        (let ((#{atom-key 2911}#
+                                (car (let ((#{t 5313}#
+                                             (assq #{n 2906}# #{r 2872}#)))
+                                       (if #{t 5313}#
+                                         (cdr #{t 5313}#)
+                                         (if (symbol? #{n 2906}#)
+                                           (let ((#{t 5314}#
+                                                   
(#{get-global-definition-hook 265}#
+                                                     #{n 2906}#
+                                                     #{mod 2875}#)))
+                                             (if #{t 5314}#
+                                               #{t 5314}#
+                                               '(global)))
+                                           '(displaced-lexical)))))))
+                          (if (memv #{atom-key 2911}# '(displaced-lexical))
+                            (syntax-violation
+                              'fluid-let-syntax
+                              "identifier out of context"
+                              #{e 2871}#
+                              (let ((#{x 5324}#
+                                      (begin
+                                        (if (if (pair? #{id 2905}#)
+                                              #{s 2874}#
+                                              #f)
+                                          (set-source-properties!
+                                            #{id 2905}#
+                                            #{s 2874}#))
+                                        #{id 2905}#)))
+                                (if (if (null? (car #{w 2873}#))
+                                      (null? (cdr #{w 2873}#))
+                                      #f)
+                                  #{x 5324}#
+                                  (if (if (vector? #{x 5324}#)
+                                        (if (= (vector-length #{x 5324}#) 4)
+                                          (eq? (vector-ref #{x 5324}# 0)
+                                               'syntax-object)
+                                          #f)
+                                        #f)
+                                    (let ((#{expression 5336}#
+                                            (vector-ref #{x 5324}# 1))
+                                          (#{wrap 5337}#
+                                            (let ((#{w2 5345}#
+                                                    (vector-ref #{x 5324}# 2)))
+                                              (let ((#{m1 5346}#
+                                                      (car #{w 2873}#))
+                                                    (#{s1 5347}#
+                                                      (cdr #{w 2873}#)))
+                                                (if (null? #{m1 5346}#)
+                                                  (if (null? #{s1 5347}#)
+                                                    #{w2 5345}#
+                                                    (cons (car #{w2 5345}#)
+                                                          (let ((#{m2 5354}#
+                                                                  (cdr #{w2 
5345}#)))
+                                                            (if (null? #{m2 
5354}#)
+                                                              #{s1 5347}#
+                                                              (append
+                                                                #{s1 5347}#
+                                                                #{m2 
5354}#)))))
+                                                  (cons (let ((#{m2 5358}#
+                                                                (car #{w2 
5345}#)))
+                                                          (if (null? #{m2 
5358}#)
+                                                            #{m1 5346}#
+                                                            (append
+                                                              #{m1 5346}#
+                                                              #{m2 5358}#)))
+                                                        (let ((#{m2 5362}#
+                                                                (cdr #{w2 
5345}#)))
+                                                          (if (null? #{m2 
5362}#)
+                                                            #{s1 5347}#
+                                                            (append
+                                                              #{s1 5347}#
+                                                              #{m2 
5362}#))))))))
+                                          (#{module 5338}#
+                                            (vector-ref #{x 5324}# 3)))
+                                      (vector
+                                        'syntax-object
+                                        #{expression 5336}#
+                                        #{wrap 5337}#
+                                        #{module 5338}#))
+                                    (if (null? #{x 5324}#)
+                                      #{x 5324}#
+                                      (vector
+                                        'syntax-object
+                                        #{x 5324}#
+                                        #{w 2873}#
+                                        #{mod 2875}#)))))))))
+                      #{var 2896}#
+                      #{names 2901}#)
+                    (#{chi-body 449}#
+                      (cons #{e1 2898}# #{e2 2899}#)
+                      (let ((#{x 5380}#
+                              (begin
+                                (if (if (pair? #{e 2871}#) #{s 2874}# #f)
+                                  (set-source-properties!
+                                    #{e 2871}#
+                                    #{s 2874}#))
+                                #{e 2871}#)))
+                        (if (if (null? (car #{w 2873}#))
+                              (null? (cdr #{w 2873}#))
+                              #f)
+                          #{x 5380}#
+                          (if (if (vector? #{x 5380}#)
+                                (if (= (vector-length #{x 5380}#) 4)
+                                  (eq? (vector-ref #{x 5380}# 0)
+                                       'syntax-object)
+                                  #f)
+                                #f)
+                            (let ((#{expression 5392}#
+                                    (vector-ref #{x 5380}# 1))
+                                  (#{wrap 5393}#
+                                    (let ((#{w2 5401}#
+                                            (vector-ref #{x 5380}# 2)))
+                                      (let ((#{m1 5402}# (car #{w 2873}#))
+                                            (#{s1 5403}# (cdr #{w 2873}#)))
+                                        (if (null? #{m1 5402}#)
+                                          (if (null? #{s1 5403}#)
+                                            #{w2 5401}#
+                                            (cons (car #{w2 5401}#)
+                                                  (let ((#{m2 5410}#
+                                                          (cdr #{w2 5401}#)))
+                                                    (if (null? #{m2 5410}#)
+                                                      #{s1 5403}#
+                                                      (append
+                                                        #{s1 5403}#
+                                                        #{m2 5410}#)))))
+                                          (cons (let ((#{m2 5414}#
+                                                        (car #{w2 5401}#)))
+                                                  (if (null? #{m2 5414}#)
+                                                    #{m1 5402}#
+                                                    (append
+                                                      #{m1 5402}#
+                                                      #{m2 5414}#)))
+                                                (let ((#{m2 5418}#
+                                                        (cdr #{w2 5401}#)))
+                                                  (if (null? #{m2 5418}#)
+                                                    #{s1 5403}#
+                                                    (append
+                                                      #{s1 5403}#
+                                                      #{m2 5418}#))))))))
+                                  (#{module 5394}# (vector-ref #{x 5380}# 3)))
+                              (vector
+                                'syntax-object
+                                #{expression 5392}#
+                                #{wrap 5393}#
+                                #{module 5394}#))
+                            (if (null? #{x 5380}#)
+                              #{x 5380}#
+                              (vector
+                                'syntax-object
+                                #{x 5380}#
+                                #{w 2873}#
+                                #{mod 2875}#)))))
+                      (#{extend-env 341}#
+                        #{names 2901}#
+                        (let ((#{trans-r 2917}#
+                                (#{macros-only-env 345}# #{r 2872}#)))
+                          (map (lambda (#{x 2918}#)
+                                 (cons 'macro
+                                       (#{eval-local-transformer 453}#
+                                         (#{chi 441}#
+                                           #{x 2918}#
+                                           #{trans-r 2917}#
+                                           #{w 2873}#
+                                           #{mod 2875}#)
+                                         #{mod 2875}#)))
+                               #{val 2897}#))
+                        #{r 2872}#)
+                      #{w 2873}#
+                      #{mod 2875}#))))
+              #{tmp 2882}#)
+            (syntax-violation
+              'fluid-let-syntax
+              "bad syntax"
+              (let ((#{x 5641}#
+                      (begin
+                        (if (if (pair? #{e 2871}#) #{s 2874}# #f)
+                          (set-source-properties! #{e 2871}# #{s 2874}#))
+                        #{e 2871}#)))
+                (if (if (null? (car #{w 2873}#))
+                      (null? (cdr #{w 2873}#))
+                      #f)
+                  #{x 5641}#
+                  (if (if (vector? #{x 5641}#)
+                        (if (= (vector-length #{x 5641}#) 4)
+                          (eq? (vector-ref #{x 5641}# 0) 'syntax-object)
+                          #f)
+                        #f)
+                    (let ((#{expression 5653}# (vector-ref #{x 5641}# 1))
+                          (#{wrap 5654}#
+                            (let ((#{w2 5662}# (vector-ref #{x 5641}# 2)))
+                              (let ((#{m1 5663}# (car #{w 2873}#))
+                                    (#{s1 5664}# (cdr #{w 2873}#)))
+                                (if (null? #{m1 5663}#)
+                                  (if (null? #{s1 5664}#)
+                                    #{w2 5662}#
+                                    (cons (car #{w2 5662}#)
+                                          (let ((#{m2 5671}#
+                                                  (cdr #{w2 5662}#)))
+                                            (if (null? #{m2 5671}#)
+                                              #{s1 5664}#
+                                              (append
+                                                #{s1 5664}#
+                                                #{m2 5671}#)))))
+                                  (cons (let ((#{m2 5675}# (car #{w2 5662}#)))
+                                          (if (null? #{m2 5675}#)
+                                            #{m1 5663}#
+                                            (append #{m1 5663}# #{m2 5675}#)))
+                                        (let ((#{m2 5679}# (cdr #{w2 5662}#)))
+                                          (if (null? #{m2 5679}#)
+                                            #{s1 5664}#
+                                            (append
+                                              #{s1 5664}#
+                                              #{m2 5679}#))))))))
+                          (#{module 5655}# (vector-ref #{x 5641}# 3)))
+                      (vector
+                        'syntax-object
+                        #{expression 5653}#
+                        #{wrap 5654}#
+                        #{module 5655}#))
+                    (if (null? #{x 5641}#)
+                      #{x 5641}#
+                      (vector
+                        'syntax-object
+                        #{x 5641}#
+                        #{w 2873}#
+                        #{mod 2875}#))))))))))
+    (module-define!
+      (current-module)
+      'quote
+      (make-syntax-transformer
+        'quote
+        'core
+        (lambda (#{e 2924}#
+                 #{r 2925}#
+                 #{w 2926}#
+                 #{s 2927}#
+                 #{mod 2928}#)
+          (let ((#{tmp 2935}# ($sc-dispatch #{e 2924}# '(_ any))))
+            (if #{tmp 2935}#
+              (@apply
+                (lambda (#{e 2937}#)
+                  (let ((#{exp 5696}#
+                          (#{strip 467}# #{e 2937}# #{w 2926}#)))
+                    (make-struct/no-tail
+                      (vector-ref %expanded-vtables 1)
+                      #{s 2927}#
+                      #{exp 5696}#)))
+                #{tmp 2935}#)
+              (syntax-violation
+                'quote
+                "bad syntax"
+                (let ((#{x 5710}#
+                        (begin
+                          (if (if (pair? #{e 2924}#) #{s 2927}# #f)
+                            (set-source-properties! #{e 2924}# #{s 2927}#))
+                          #{e 2924}#)))
+                  (if (if (null? (car #{w 2926}#))
+                        (null? (cdr #{w 2926}#))
+                        #f)
+                    #{x 5710}#
+                    (if (if (vector? #{x 5710}#)
+                          (if (= (vector-length #{x 5710}#) 4)
+                            (eq? (vector-ref #{x 5710}# 0) 'syntax-object)
+                            #f)
+                          #f)
+                      (let ((#{expression 5722}# (vector-ref #{x 5710}# 1))
+                            (#{wrap 5723}#
+                              (let ((#{w2 5731}# (vector-ref #{x 5710}# 2)))
+                                (let ((#{m1 5732}# (car #{w 2926}#))
+                                      (#{s1 5733}# (cdr #{w 2926}#)))
+                                  (if (null? #{m1 5732}#)
+                                    (if (null? #{s1 5733}#)
+                                      #{w2 5731}#
+                                      (cons (car #{w2 5731}#)
+                                            (let ((#{m2 5740}#
+                                                    (cdr #{w2 5731}#)))
+                                              (if (null? #{m2 5740}#)
+                                                #{s1 5733}#
+                                                (append
+                                                  #{s1 5733}#
+                                                  #{m2 5740}#)))))
+                                    (cons (let ((#{m2 5744}#
+                                                  (car #{w2 5731}#)))
+                                            (if (null? #{m2 5744}#)
+                                              #{m1 5732}#
+                                              (append
+                                                #{m1 5732}#
+                                                #{m2 5744}#)))
+                                          (let ((#{m2 5748}#
+                                                  (cdr #{w2 5731}#)))
+                                            (if (null? #{m2 5748}#)
+                                              #{s1 5733}#
+                                              (append
+                                                #{s1 5733}#
+                                                #{m2 5748}#))))))))
+                            (#{module 5724}# (vector-ref #{x 5710}# 3)))
+                        (vector
+                          'syntax-object
+                          #{expression 5722}#
+                          #{wrap 5723}#
+                          #{module 5724}#))
+                      (if (null? #{x 5710}#)
+                        #{x 5710}#
+                        (vector
+                          'syntax-object
+                          #{x 5710}#
+                          #{w 2926}#
+                          #{mod 2928}#)))))))))))
+    (#{global-extend 349}#
+      'core
+      'syntax
+      (letrec*
+        ((#{gen-syntax 2941}#
+           (lambda (#{src 2956}#
+                    #{e 2957}#
+                    #{r 2958}#
+                    #{maps 2959}#
+                    #{ellipsis? 2960}#
+                    #{mod 2961}#)
+             (if (if (symbol? #{e 2957}#)
+                   #t
+                   (if (if (vector? #{e 2957}#)
+                         (if (= (vector-length #{e 2957}#) 4)
+                           (eq? (vector-ref #{e 2957}# 0) 'syntax-object)
+                           #f)
+                         #f)
+                     (symbol? (vector-ref #{e 2957}# 1))
+                     #f))
+               (let ((#{label 2969}#
+                       (#{id-var-name 415}# #{e 2957}# '(()))))
+                 (let ((#{b 2972}#
+                         (let ((#{t 5811}# (assq #{label 2969}# #{r 2958}#)))
+                           (if #{t 5811}#
+                             (cdr #{t 5811}#)
+                             (if (symbol? #{label 2969}#)
+                               (let ((#{t 5812}#
+                                       (#{get-global-definition-hook 265}#
+                                         #{label 2969}#
+                                         #{mod 2961}#)))
+                                 (if #{t 5812}# #{t 5812}# '(global)))
+                               '(displaced-lexical))))))
+                   (if (eq? (car #{b 2972}#) 'syntax)
+                     (call-with-values
+                       (lambda ()
+                         (let ((#{var.lev 2975}# (cdr #{b 2972}#)))
+                           (#{gen-ref 2943}#
+                             #{src 2956}#
+                             (car #{var.lev 2975}#)
+                             (cdr #{var.lev 2975}#)
+                             #{maps 2959}#)))
+                       (lambda (#{var 2977}# #{maps 2978}#)
+                         (values (list 'ref #{var 2977}#) #{maps 2978}#)))
+                     (if (#{ellipsis? 2960}# #{e 2957}#)
+                       (syntax-violation
+                         'syntax
+                         "misplaced ellipsis"
+                         #{src 2956}#)
+                       (values (list 'quote #{e 2957}#) #{maps 2959}#)))))
+               (let ((#{tmp 2984}#
+                       ($sc-dispatch #{e 2957}# '(any any))))
+                 (if (if #{tmp 2984}#
+                       (@apply
+                         (lambda (#{dots 2987}# #{e 2988}#)
+                           (#{ellipsis? 2960}# #{dots 2987}#))
+                         #{tmp 2984}#)
+                       #f)
+                   (@apply
+                     (lambda (#{dots 2991}# #{e 2992}#)
+                       (#{gen-syntax 2941}#
+                         #{src 2956}#
+                         #{e 2992}#
+                         #{r 2958}#
+                         #{maps 2959}#
+                         (lambda (#{x 2993}#) #f)
+                         #{mod 2961}#))
+                     #{tmp 2984}#)
+                   (let ((#{tmp 2995}#
+                           ($sc-dispatch #{e 2957}# '(any any . any))))
+                     (if (if #{tmp 2995}#
+                           (@apply
+                             (lambda (#{x 2999}# #{dots 3000}# #{y 3001}#)
+                               (#{ellipsis? 2960}# #{dots 3000}#))
+                             #{tmp 2995}#)
+                           #f)
+                       (@apply
+                         (lambda (#{x 3005}# #{dots 3006}# #{y 3007}#)
+                           (letrec*
+                             ((#{f 3011}#
+                                (lambda (#{y 3012}# #{k 3013}#)
+                                  (let ((#{tmp 3021}#
+                                          ($sc-dispatch
+                                            #{y 3012}#
+                                            '(any . any))))
+                                    (if (if #{tmp 3021}#
+                                          (@apply
+                                            (lambda (#{dots 3024}# #{y 3025}#)
+                                              (#{ellipsis? 2960}#
+                                                #{dots 3024}#))
+                                            #{tmp 3021}#)
+                                          #f)
+                                      (@apply
+                                        (lambda (#{dots 3028}# #{y 3029}#)
+                                          (#{f 3011}#
+                                            #{y 3029}#
+                                            (lambda (#{maps 3030}#)
+                                              (call-with-values
+                                                (lambda ()
+                                                  (#{k 3013}#
+                                                    (cons '() #{maps 3030}#)))
+                                                (lambda (#{x 3032}#
+                                                         #{maps 3033}#)
+                                                  (if (null? (car #{maps 
3033}#))
+                                                    (syntax-violation
+                                                      'syntax
+                                                      "extra ellipsis"
+                                                      #{src 2956}#)
+                                                    (values
+                                                      (#{gen-mappend 2945}#
+                                                        #{x 3032}#
+                                                        (car #{maps 3033}#))
+                                                      (cdr #{maps 
3033}#))))))))
+                                        #{tmp 3021}#)
+                                      (call-with-values
+                                        (lambda ()
+                                          (#{gen-syntax 2941}#
+                                            #{src 2956}#
+                                            #{y 3012}#
+                                            #{r 2958}#
+                                            #{maps 2959}#
+                                            #{ellipsis? 2960}#
+                                            #{mod 2961}#))
+                                        (lambda (#{y 3038}# #{maps 3039}#)
+                                          (call-with-values
+                                            (lambda ()
+                                              (#{k 3013}# #{maps 3039}#))
+                                            (lambda (#{x 3042}# #{maps 3043}#)
+                                              (values
+                                                (#{gen-append 2951}#
+                                                  #{x 3042}#
+                                                  #{y 3038}#)
+                                                #{maps 3043}#))))))))))
+                             (#{f 3011}#
+                               #{y 3007}#
+                               (lambda (#{maps 3014}#)
+                                 (call-with-values
+                                   (lambda ()
+                                     (#{gen-syntax 2941}#
+                                       #{src 2956}#
+                                       #{x 3005}#
+                                       #{r 2958}#
+                                       (cons '() #{maps 3014}#)
+                                       #{ellipsis? 2960}#
+                                       #{mod 2961}#))
+                                   (lambda (#{x 3016}# #{maps 3017}#)
+                                     (if (null? (car #{maps 3017}#))
+                                       (syntax-violation
+                                         'syntax
+                                         "extra ellipsis"
+                                         #{src 2956}#)
+                                       (values
+                                         (#{gen-map 2947}#
+                                           #{x 3016}#
+                                           (car #{maps 3017}#))
+                                         (cdr #{maps 3017}#)))))))))
+                         #{tmp 2995}#)
+                       (let ((#{tmp 3046}#
+                               ($sc-dispatch #{e 2957}# '(any . any))))
+                         (if #{tmp 3046}#
+                           (@apply
+                             (lambda (#{x 3049}# #{y 3050}#)
+                               (call-with-values
+                                 (lambda ()
+                                   (#{gen-syntax 2941}#
+                                     #{src 2956}#
+                                     #{x 3049}#
+                                     #{r 2958}#
+                                     #{maps 2959}#
+                                     #{ellipsis? 2960}#
+                                     #{mod 2961}#))
+                                 (lambda (#{x 3051}# #{maps 3052}#)
+                                   (call-with-values
+                                     (lambda ()
+                                       (#{gen-syntax 2941}#
+                                         #{src 2956}#
+                                         #{y 3050}#
+                                         #{r 2958}#
+                                         #{maps 3052}#
+                                         #{ellipsis? 2960}#
+                                         #{mod 2961}#))
+                                     (lambda (#{y 3055}# #{maps 3056}#)
+                                       (values
+                                         (#{gen-cons 2949}#
+                                           #{x 3051}#
+                                           #{y 3055}#)
+                                         #{maps 3056}#))))))
+                             #{tmp 3046}#)
+                           (let ((#{tmp 3059}#
+                                   ($sc-dispatch
+                                     #{e 2957}#
+                                     '#(vector (any . each-any)))))
+                             (if #{tmp 3059}#
+                               (@apply
+                                 (lambda (#{e1 3062}# #{e2 3063}#)
+                                   (call-with-values
+                                     (lambda ()
+                                       (#{gen-syntax 2941}#
+                                         #{src 2956}#
+                                         (cons #{e1 3062}# #{e2 3063}#)
+                                         #{r 2958}#
+                                         #{maps 2959}#
+                                         #{ellipsis? 2960}#
+                                         #{mod 2961}#))
+                                     (lambda (#{e 3065}# #{maps 3066}#)
+                                       (values
+                                         (#{gen-vector 2953}# #{e 3065}#)
+                                         #{maps 3066}#))))
+                                 #{tmp 3059}#)
+                               (values
+                                 (list 'quote #{e 2957}#)
+                                 #{maps 2959}#))))))))))))
+         (#{gen-ref 2943}#
+           (lambda (#{src 3072}#
+                    #{var 3073}#
+                    #{level 3074}#
+                    #{maps 3075}#)
+             (if (= #{level 3074}# 0)
+               (values #{var 3073}# #{maps 3075}#)
+               (if (null? #{maps 3075}#)
+                 (syntax-violation
+                   'syntax
+                   "missing ellipsis"
+                   #{src 3072}#)
+                 (call-with-values
+                   (lambda ()
+                     (#{gen-ref 2943}#
+                       #{src 3072}#
+                       #{var 3073}#
+                       (#{1-}# #{level 3074}#)
+                       (cdr #{maps 3075}#)))
+                   (lambda (#{outer-var 3082}# #{outer-maps 3083}#)
+                     (let ((#{b 3087}#
+                             (assq #{outer-var 3082}# (car #{maps 3075}#))))
+                       (if #{b 3087}#
+                         (values (cdr #{b 3087}#) #{maps 3075}#)
+                         (let ((#{inner-var 3089}#
+                                 (gensym
+                                   (string-append (symbol->string 'tmp) " "))))
+                           (values
+                             #{inner-var 3089}#
+                             (cons (cons (cons #{outer-var 3082}#
+                                               #{inner-var 3089}#)
+                                         (car #{maps 3075}#))
+                                   #{outer-maps 3083}#)))))))))))
+         (#{gen-mappend 2945}#
+           (lambda (#{e 3090}# #{map-env 3091}#)
+             (list 'apply
+                   '(primitive append)
+                   (#{gen-map 2947}# #{e 3090}# #{map-env 3091}#))))
+         (#{gen-map 2947}#
+           (lambda (#{e 3095}# #{map-env 3096}#)
+             (let ((#{formals 3101}# (map cdr #{map-env 3096}#))
+                   (#{actuals 3102}#
+                     (map (lambda (#{x 3103}#)
+                            (list 'ref (car #{x 3103}#)))
+                          #{map-env 3096}#)))
+               (if (eq? (car #{e 3095}#) 'ref)
+                 (car #{actuals 3102}#)
+                 (if (and-map
+                       (lambda (#{x 3110}#)
+                         (if (eq? (car #{x 3110}#) 'ref)
+                           (memq (car (cdr #{x 3110}#)) #{formals 3101}#)
+                           #f))
+                       (cdr #{e 3095}#))
+                   (cons 'map
+                         (cons (list 'primitive (car #{e 3095}#))
+                               (map (let ((#{r 3116}#
+                                            (map cons
+                                                 #{formals 3101}#
+                                                 #{actuals 3102}#)))
+                                      (lambda (#{x 3117}#)
+                                        (cdr (assq (car (cdr #{x 3117}#))
+                                                   #{r 3116}#))))
+                                    (cdr #{e 3095}#))))
+                   (cons 'map
+                         (cons (list 'lambda #{formals 3101}# #{e 3095}#)
+                               #{actuals 3102}#)))))))
+         (#{gen-cons 2949}#
+           (lambda (#{x 3121}# #{y 3122}#)
+             (let ((#{atom-key 3127}# (car #{y 3122}#)))
+               (if (memv #{atom-key 3127}# '(quote))
+                 (if (eq? (car #{x 3121}#) 'quote)
+                   (list 'quote
+                         (cons (car (cdr #{x 3121}#))
+                               (car (cdr #{y 3122}#))))
+                   (if (eq? (car (cdr #{y 3122}#)) '())
+                     (list 'list #{x 3121}#)
+                     (list 'cons #{x 3121}# #{y 3122}#)))
+                 (if (memv #{atom-key 3127}# '(list))
+                   (cons 'list (cons #{x 3121}# (cdr #{y 3122}#)))
+                   (list 'cons #{x 3121}# #{y 3122}#))))))
+         (#{gen-append 2951}#
+           (lambda (#{x 3136}# #{y 3137}#)
+             (if (equal? #{y 3137}# ''())
+               #{x 3136}#
+               (list 'append #{x 3136}# #{y 3137}#))))
+         (#{gen-vector 2953}#
+           (lambda (#{x 3141}#)
+             (if (eq? (car #{x 3141}#) 'list)
+               (cons 'vector (cdr #{x 3141}#))
+               (if (eq? (car #{x 3141}#) 'quote)
+                 (list 'quote
+                       (list->vector (car (cdr #{x 3141}#))))
+                 (list 'list->vector #{x 3141}#)))))
+         (#{regen 2955}#
+           (lambda (#{x 3151}#)
+             (let ((#{atom-key 3155}# (car #{x 3151}#)))
+               (if (memv #{atom-key 3155}# '(ref))
+                 (let ((#{name 5827}# (car (cdr #{x 3151}#)))
+                       (#{var 5828}# (car (cdr #{x 3151}#))))
+                   (make-struct/no-tail
+                     (vector-ref %expanded-vtables 3)
+                     #f
+                     #{name 5827}#
+                     #{var 5828}#))
+                 (if (memv #{atom-key 3155}# '(primitive))
+                   (let ((#{name 5836}# (car (cdr #{x 3151}#))))
+                     (make-struct/no-tail
+                       (vector-ref %expanded-vtables 2)
+                       #f
+                       #{name 5836}#))
+                   (if (memv #{atom-key 3155}# '(quote))
+                     (let ((#{exp 5844}# (car (cdr #{x 3151}#))))
+                       (make-struct/no-tail
+                         (vector-ref %expanded-vtables 1)
+                         #f
+                         #{exp 5844}#))
+                     (if (memv #{atom-key 3155}# '(lambda))
+                       (if (list? (car (cdr #{x 3151}#)))
+                         (let ((#{req 5852}# (car (cdr #{x 3151}#)))
+                               (#{vars 5854}# (car (cdr #{x 3151}#)))
+                               (#{exp 5856}#
+                                 (#{regen 2955}#
+                                   (car (cdr (cdr #{x 3151}#))))))
+                           (let ((#{body 5861}#
+                                   (make-struct/no-tail
+                                     (vector-ref %expanded-vtables 15)
+                                     #f
+                                     #{req 5852}#
+                                     #f
+                                     #f
+                                     #f
+                                     '()
+                                     #{vars 5854}#
+                                     #{exp 5856}#
+                                     #f)))
+                             (make-struct/no-tail
+                               (vector-ref %expanded-vtables 14)
+                               #f
+                               '()
+                               #{body 5861}#)))
+                         (error "how did we get here" #{x 3151}#))
+                       (let ((#{name 5876}# (car #{x 3151}#))
+                             (#{args 5877}#
+                               (map #{regen 2955}# (cdr #{x 3151}#))))
+                         (make-struct/no-tail
+                           (vector-ref %expanded-vtables 12)
+                           #f
+                           #{name 5876}#
+                           #{args 5877}#))))))))))
+        (lambda (#{e 3166}#
+                 #{r 3167}#
+                 #{w 3168}#
+                 #{s 3169}#
+                 #{mod 3170}#)
+          (let ((#{e 3177}#
+                  (let ((#{x 5891}#
+                          (begin
+                            (if (if (pair? #{e 3166}#) #{s 3169}# #f)
+                              (set-source-properties! #{e 3166}# #{s 3169}#))
+                            #{e 3166}#)))
+                    (if (if (null? (car #{w 3168}#))
+                          (null? (cdr #{w 3168}#))
+                          #f)
+                      #{x 5891}#
+                      (if (if (vector? #{x 5891}#)
+                            (if (= (vector-length #{x 5891}#) 4)
+                              (eq? (vector-ref #{x 5891}# 0) 'syntax-object)
+                              #f)
+                            #f)
+                        (let ((#{expression 5903}# (vector-ref #{x 5891}# 1))
+                              (#{wrap 5904}#
+                                (let ((#{w2 5912}# (vector-ref #{x 5891}# 2)))
+                                  (let ((#{m1 5913}# (car #{w 3168}#))
+                                        (#{s1 5914}# (cdr #{w 3168}#)))
+                                    (if (null? #{m1 5913}#)
+                                      (if (null? #{s1 5914}#)
+                                        #{w2 5912}#
+                                        (cons (car #{w2 5912}#)
+                                              (let ((#{m2 5921}#
+                                                      (cdr #{w2 5912}#)))
+                                                (if (null? #{m2 5921}#)
+                                                  #{s1 5914}#
+                                                  (append
+                                                    #{s1 5914}#
+                                                    #{m2 5921}#)))))
+                                      (cons (let ((#{m2 5925}#
+                                                    (car #{w2 5912}#)))
+                                              (if (null? #{m2 5925}#)
+                                                #{m1 5913}#
+                                                (append
+                                                  #{m1 5913}#
+                                                  #{m2 5925}#)))
+                                            (let ((#{m2 5929}#
+                                                    (cdr #{w2 5912}#)))
+                                              (if (null? #{m2 5929}#)
+                                                #{s1 5914}#
+                                                (append
+                                                  #{s1 5914}#
+                                                  #{m2 5929}#))))))))
+                              (#{module 5905}# (vector-ref #{x 5891}# 3)))
+                          (vector
+                            'syntax-object
+                            #{expression 5903}#
+                            #{wrap 5904}#
+                            #{module 5905}#))
+                        (if (null? #{x 5891}#)
+                          #{x 5891}#
+                          (vector
+                            'syntax-object
+                            #{x 5891}#
+                            #{w 3168}#
+                            #{mod 3170}#)))))))
+            (let ((#{tmp 3179}# ($sc-dispatch #{e 3177}# '(_ any))))
+              (if #{tmp 3179}#
+                (@apply
+                  (lambda (#{x 3181}#)
+                    (call-with-values
+                      (lambda ()
+                        (#{gen-syntax 2941}#
+                          #{e 3177}#
+                          #{x 3181}#
+                          #{r 3167}#
+                          '()
+                          #{ellipsis? 457}#
+                          #{mod 3170}#))
+                      (lambda (#{e 3182}# #{maps 3183}#)
+                        (#{regen 2955}# #{e 3182}#))))
+                  #{tmp 3179}#)
+                (syntax-violation
+                  'syntax
+                  "bad `syntax' form"
+                  #{e 3177}#)))))))
+    (#{global-extend 349}#
+      'core
+      'lambda
+      (lambda (#{e 3188}#
+               #{r 3189}#
+               #{w 3190}#
+               #{s 3191}#
+               #{mod 3192}#)
+        (let ((#{tmp 3199}#
+                ($sc-dispatch #{e 3188}# '(_ any any . each-any))))
+          (if #{tmp 3199}#
+            (@apply
+              (lambda (#{args 3203}# #{e1 3204}# #{e2 3205}#)
+                (call-with-values
+                  (lambda ()
+                    (#{lambda-formals 459}# #{args 3203}#))
+                  (lambda (#{req 3206}#
+                           #{opt 3207}#
+                           #{rest 3208}#
+                           #{kw 3209}#)
+                    (letrec*
+                      ((#{lp 3217}#
+                         (lambda (#{body 3218}# #{meta 3219}#)
+                           (let ((#{tmp 3222}#
+                                   ($sc-dispatch
+                                     #{body 3218}#
+                                     '(any any . each-any))))
+                             (if (if #{tmp 3222}#
+                                   (@apply
+                                     (lambda (#{docstring 3226}#
+                                              #{e1 3227}#
+                                              #{e2 3228}#)
+                                       (string?
+                                         (syntax->datum #{docstring 3226}#)))
+                                     #{tmp 3222}#)
+                                   #f)
+                               (@apply
+                                 (lambda (#{docstring 3232}#
+                                          #{e1 3233}#
+                                          #{e2 3234}#)
+                                   (#{lp 3217}#
+                                     (cons #{e1 3233}# #{e2 3234}#)
+                                     (append
+                                       #{meta 3219}#
+                                       (list (cons 'documentation
+                                                   (syntax->datum
+                                                     #{docstring 3232}#))))))
+                                 #{tmp 3222}#)
+                               (let ((#{tmp 3237}#
+                                       ($sc-dispatch
+                                         #{body 3218}#
+                                         '(#(vector #(each (any . any)))
+                                           any
+                                           .
+                                           each-any))))
+                                 (if #{tmp 3237}#
+                                   (@apply
+                                     (lambda (#{k 3242}#
+                                              #{v 3243}#
+                                              #{e1 3244}#
+                                              #{e2 3245}#)
+                                       (#{lp 3217}#
+                                         (cons #{e1 3244}# #{e2 3245}#)
+                                         (append
+                                           #{meta 3219}#
+                                           (syntax->datum
+                                             (map cons
+                                                  #{k 3242}#
+                                                  #{v 3243}#)))))
+                                     #{tmp 3237}#)
+                                   ((lambda (#{e 2300}#
+                                             #{r 2301}#
+                                             #{w 2302}#
+                                             #{s 2303}#
+                                             #{mod 2304}#
+                                             #{req 2305}#
+                                             #{rest 2306}#
+                                             #{meta 2307}#
+                                             #{body 2308}#)
+                                      (let ((#{ids 2320}#
+                                              (if #{rest 2306}#
+                                                (append
+                                                  #{req 2305}#
+                                                  (list #{rest 2306}#))
+                                                #{req 2305}#)))
+                                        (let ((#{vars 2322}#
+                                                (map #{gen-var 469}#
+                                                     #{ids 2320}#)))
+                                          (let ((#{labels 2324}#
+                                                  (#{gen-labels 373}#
+                                                    #{ids 2320}#)))
+                                            (#{build-simple-lambda 291}#
+                                              #{s 2303}#
+                                              (map syntax->datum #{req 2305}#)
+                                              (if #{rest 2306}#
+                                                (syntax->datum #{rest 2306}#)
+                                                #f)
+                                              #{vars 2322}#
+                                              #{meta 2307}#
+                                              (#{chi-body 449}#
+                                                #{body 2308}#
+                                                (#{source-wrap 429}#
+                                                  #{e 2300}#
+                                                  #{w 2302}#
+                                                  #{s 2303}#
+                                                  #{mod 2304}#)
+                                                (#{extend-var-env 343}#
+                                                  #{labels 2324}#
+                                                  #{vars 2322}#
+                                                  #{r 2301}#)
+                                                (#{make-binding-wrap 405}#
+                                                  #{ids 2320}#
+                                                  #{labels 2324}#
+                                                  #{w 2302}#)
+                                                #{mod 2304}#))))))
+                                    #{e 3188}#
+                                    #{r 3189}#
+                                    #{w 3190}#
+                                    #{s 3191}#
+                                    #{mod 3192}#
+                                    #{req 3206}#
+                                    #{rest 3208}#
+                                    #{meta 3219}#
+                                    #{body 3218}#))))))))
+                      (#{lp 3217}# (cons #{e1 3204}# #{e2 3205}#) '())))))
+              #{tmp 3199}#)
+            (syntax-violation
+              'lambda
+              "bad lambda"
+              #{e 3188}#)))))
+    (module-define!
+      (current-module)
+      'lambda*
+      (make-syntax-transformer
+        'lambda*
+        'core
+        (lambda (#{e 3253}#
+                 #{r 3254}#
+                 #{w 3255}#
+                 #{s 3256}#
+                 #{mod 3257}#)
+          (let ((#{tmp 3264}#
+                  ($sc-dispatch #{e 3253}# '(_ any any . each-any))))
+            (if #{tmp 3264}#
+              (@apply
+                (lambda (#{args 3268}# #{e1 3269}# #{e2 3270}#)
+                  (call-with-values
+                    (lambda ()
+                      (#{chi-lambda-case 465}#
+                        #{e 3253}#
+                        #{r 3254}#
+                        #{w 3255}#
+                        #{s 3256}#
+                        #{mod 3257}#
+                        #{lambda*-formals 463}#
+                        (list (cons #{args 3268}#
+                                    (cons #{e1 3269}# #{e2 3270}#)))))
+                    (lambda (#{meta 3272}# #{lcase 3273}#)
+                      (make-struct/no-tail
+                        (vector-ref %expanded-vtables 14)
+                        #{s 3256}#
+                        #{meta 3272}#
+                        #{lcase 3273}#))))
+                #{tmp 3264}#)
+              (syntax-violation
+                'lambda
+                "bad lambda*"
+                #{e 3253}#))))))
+    (module-define!
+      (current-module)
+      'case-lambda
+      (make-syntax-transformer
+        'case-lambda
+        'core
+        (lambda (#{e 3278}#
+                 #{r 3279}#
+                 #{w 3280}#
+                 #{s 3281}#
+                 #{mod 3282}#)
+          (let ((#{tmp 3289}#
+                  ($sc-dispatch
+                    #{e 3278}#
+                    '(_ (any any . each-any)
+                        .
+                        #(each (any any . each-any))))))
+            (if #{tmp 3289}#
+              (@apply
+                (lambda (#{args 3296}#
+                         #{e1 3297}#
+                         #{e2 3298}#
+                         #{args* 3299}#
+                         #{e1* 3300}#
+                         #{e2* 3301}#)
+                  (call-with-values
+                    (lambda ()
+                      (#{chi-lambda-case 465}#
+                        #{e 3278}#
+                        #{r 3279}#
+                        #{w 3280}#
+                        #{s 3281}#
+                        #{mod 3282}#
+                        #{lambda-formals 459}#
+                        (cons (cons #{args 3296}#
+                                    (cons #{e1 3297}# #{e2 3298}#))
+                              (map (lambda (#{tmp 3305}#
+                                            #{tmp 3304}#
+                                            #{tmp 3303}#)
+                                     (cons #{tmp 3303}#
+                                           (cons #{tmp 3304}# #{tmp 3305}#)))
+                                   #{e2* 3301}#
+                                   #{e1* 3300}#
+                                   #{args* 3299}#))))
+                    (lambda (#{meta 3307}# #{lcase 3308}#)
+                      (make-struct/no-tail
+                        (vector-ref %expanded-vtables 14)
+                        #{s 3281}#
+                        #{meta 3307}#
+                        #{lcase 3308}#))))
+                #{tmp 3289}#)
+              (syntax-violation
+                'case-lambda
+                "bad case-lambda"
+                #{e 3278}#))))))
+    (module-define!
+      (current-module)
+      'case-lambda*
+      (make-syntax-transformer
+        'case-lambda*
+        'core
+        (lambda (#{e 3313}#
+                 #{r 3314}#
+                 #{w 3315}#
+                 #{s 3316}#
+                 #{mod 3317}#)
+          (let ((#{tmp 3324}#
+                  ($sc-dispatch
+                    #{e 3313}#
+                    '(_ (any any . each-any)
+                        .
+                        #(each (any any . each-any))))))
+            (if #{tmp 3324}#
+              (@apply
+                (lambda (#{args 3331}#
+                         #{e1 3332}#
+                         #{e2 3333}#
+                         #{args* 3334}#
+                         #{e1* 3335}#
+                         #{e2* 3336}#)
+                  (call-with-values
+                    (lambda ()
+                      (#{chi-lambda-case 465}#
+                        #{e 3313}#
+                        #{r 3314}#
+                        #{w 3315}#
+                        #{s 3316}#
+                        #{mod 3317}#
+                        #{lambda*-formals 463}#
+                        (cons (cons #{args 3331}#
+                                    (cons #{e1 3332}# #{e2 3333}#))
+                              (map (lambda (#{tmp 3340}#
+                                            #{tmp 3339}#
+                                            #{tmp 3338}#)
+                                     (cons #{tmp 3338}#
+                                           (cons #{tmp 3339}# #{tmp 3340}#)))
+                                   #{e2* 3336}#
+                                   #{e1* 3335}#
+                                   #{args* 3334}#))))
+                    (lambda (#{meta 3342}# #{lcase 3343}#)
+                      (make-struct/no-tail
+                        (vector-ref %expanded-vtables 14)
+                        #{s 3316}#
+                        #{meta 3342}#
+                        #{lcase 3343}#))))
+                #{tmp 3324}#)
+              (syntax-violation
+                'case-lambda
+                "bad case-lambda*"
+                #{e 3313}#))))))
+    (#{global-extend 349}#
+      'core
+      'let
+      (letrec*
+        ((#{chi-let 3349}#
+           (lambda (#{e 3350}#
+                    #{r 3351}#
+                    #{w 3352}#
+                    #{s 3353}#
+                    #{mod 3354}#
+                    #{constructor 3355}#
+                    #{ids 3356}#
+                    #{vals 3357}#
+                    #{exps 3358}#)
+             (if (not (#{valid-bound-ids? 421}# #{ids 3356}#))
+               (syntax-violation
+                 'let
+                 "duplicate bound variable"
+                 #{e 3350}#)
+               (let ((#{labels 3370}#
+                       (#{gen-labels 373}# #{ids 3356}#))
+                     (#{new-vars 3371}#
+                       (map #{gen-var 469}# #{ids 3356}#)))
+                 (let ((#{nw 3374}#
+                         (#{make-binding-wrap 405}#
+                           #{ids 3356}#
+                           #{labels 3370}#
+                           #{w 3352}#))
+                       (#{nr 3375}#
+                         (#{extend-var-env 343}#
+                           #{labels 3370}#
+                           #{new-vars 3371}#
+                           #{r 3351}#)))
+                   (#{constructor 3355}#
+                     #{s 3353}#
+                     (map syntax->datum #{ids 3356}#)
+                     #{new-vars 3371}#
+                     (map (lambda (#{x 3376}#)
+                            (#{chi 441}#
+                              #{x 3376}#
+                              #{r 3351}#
+                              #{w 3352}#
+                              #{mod 3354}#))
+                          #{vals 3357}#)
+                     (#{chi-body 449}#
+                       #{exps 3358}#
+                       (let ((#{x 6517}#
+                               (begin
+                                 (if (if (pair? #{e 3350}#) #{s 3353}# #f)
+                                   (set-source-properties!
+                                     #{e 3350}#
+                                     #{s 3353}#))
+                                 #{e 3350}#)))
+                         (if (if (null? (car #{nw 3374}#))
+                               (null? (cdr #{nw 3374}#))
+                               #f)
+                           #{x 6517}#
+                           (if (if (vector? #{x 6517}#)
+                                 (if (= (vector-length #{x 6517}#) 4)
+                                   (eq? (vector-ref #{x 6517}# 0)
+                                        'syntax-object)
+                                   #f)
+                                 #f)
+                             (let ((#{expression 6529}#
+                                     (vector-ref #{x 6517}# 1))
+                                   (#{wrap 6530}#
+                                     (let ((#{w2 6538}#
+                                             (vector-ref #{x 6517}# 2)))
+                                       (let ((#{m1 6539}# (car #{nw 3374}#))
+                                             (#{s1 6540}# (cdr #{nw 3374}#)))
+                                         (if (null? #{m1 6539}#)
+                                           (if (null? #{s1 6540}#)
+                                             #{w2 6538}#
+                                             (cons (car #{w2 6538}#)
+                                                   (let ((#{m2 6547}#
+                                                           (cdr #{w2 6538}#)))
+                                                     (if (null? #{m2 6547}#)
+                                                       #{s1 6540}#
+                                                       (append
+                                                         #{s1 6540}#
+                                                         #{m2 6547}#)))))
+                                           (cons (let ((#{m2 6551}#
+                                                         (car #{w2 6538}#)))
+                                                   (if (null? #{m2 6551}#)
+                                                     #{m1 6539}#
+                                                     (append
+                                                       #{m1 6539}#
+                                                       #{m2 6551}#)))
+                                                 (let ((#{m2 6555}#
+                                                         (cdr #{w2 6538}#)))
+                                                   (if (null? #{m2 6555}#)
+                                                     #{s1 6540}#
+                                                     (append
+                                                       #{s1 6540}#
+                                                       #{m2 6555}#))))))))
+                                   (#{module 6531}# (vector-ref #{x 6517}# 3)))
+                               (vector
+                                 'syntax-object
+                                 #{expression 6529}#
+                                 #{wrap 6530}#
+                                 #{module 6531}#))
+                             (if (null? #{x 6517}#)
+                               #{x 6517}#
+                               (vector
+                                 'syntax-object
+                                 #{x 6517}#
+                                 #{nw 3374}#
+                                 #{mod 3354}#)))))
+                       #{nr 3375}#
+                       #{nw 3374}#
+                       #{mod 3354}#))))))))
+        (lambda (#{e 3378}#
+                 #{r 3379}#
+                 #{w 3380}#
+                 #{s 3381}#
+                 #{mod 3382}#)
+          (let ((#{tmp 3389}#
+                  ($sc-dispatch
+                    #{e 3378}#
+                    '(_ #(each (any any)) any . each-any))))
+            (if (if #{tmp 3389}#
+                  (@apply
+                    (lambda (#{id 3394}#
+                             #{val 3395}#
+                             #{e1 3396}#
+                             #{e2 3397}#)
+                      (and-map #{id? 353}# #{id 3394}#))
+                    #{tmp 3389}#)
+                  #f)
+              (@apply
+                (lambda (#{id 3403}#
+                         #{val 3404}#
+                         #{e1 3405}#
+                         #{e2 3406}#)
+                  (#{chi-let 3349}#
+                    #{e 3378}#
+                    #{r 3379}#
+                    #{w 3380}#
+                    #{s 3381}#
+                    #{mod 3382}#
+                    (lambda (#{src 1122}#
+                             #{ids 1123}#
+                             #{vars 1124}#
+                             #{val-exps 1125}#
+                             #{body-exp 1126}#)
+                      (begin
+                        (for-each
+                          #{maybe-name-value! 269}#
+                          #{ids 1123}#
+                          #{val-exps 1125}#)
+                        (if (null? #{vars 1124}#)
+                          #{body-exp 1126}#
+                          (#{make-let 240}#
+                            #{src 1122}#
+                            #{ids 1123}#
+                            #{vars 1124}#
+                            #{val-exps 1125}#
+                            #{body-exp 1126}#))))
+                    #{id 3403}#
+                    #{val 3404}#
+                    (cons #{e1 3405}# #{e2 3406}#)))
+                #{tmp 3389}#)
+              (let ((#{tmp 3410}#
                       ($sc-dispatch
-                        #{tmp 3958}#
-                        '(_ any each-any . each-any))))
-                (if #{tmp 3959}#
+                        #{e 3378}#
+                        '(_ any #(each (any any)) any . each-any))))
+                (if (if #{tmp 3410}#
+                      (@apply
+                        (lambda (#{f 3416}#
+                                 #{id 3417}#
+                                 #{val 3418}#
+                                 #{e1 3419}#
+                                 #{e2 3420}#)
+                          (if (if (symbol? #{f 3416}#)
+                                #t
+                                (if (if (vector? #{f 3416}#)
+                                      (if (= (vector-length #{f 3416}#) 4)
+                                        (eq? (vector-ref #{f 3416}# 0)
+                                             'syntax-object)
+                                        #f)
+                                      #f)
+                                  (symbol? (vector-ref #{f 3416}# 1))
+                                  #f))
+                            (and-map #{id? 353}# #{id 3417}#)
+                            #f))
+                        #{tmp 3410}#)
+                      #f)
+                  (@apply
+                    (lambda (#{f 3429}#
+                             #{id 3430}#
+                             #{val 3431}#
+                             #{e1 3432}#
+                             #{e2 3433}#)
+                      (#{chi-let 3349}#
+                        #{e 3378}#
+                        #{r 3379}#
+                        #{w 3380}#
+                        #{s 3381}#
+                        #{mod 3382}#
+                        (lambda (#{src 1132}#
+                                 #{ids 1133}#
+                                 #{vars 1134}#
+                                 #{val-exps 1135}#
+                                 #{body-exp 1136}#)
+                          (let ((#{f 1146}# (car #{vars 1134}#))
+                                (#{f-name 1147}# (car #{ids 1133}#))
+                                (#{vars 1148}# (cdr #{vars 1134}#))
+                                (#{ids 1149}# (cdr #{ids 1133}#)))
+                            (let ((#{proc 1151}#
+                                    (#{build-simple-lambda 291}#
+                                      #{src 1132}#
+                                      #{ids 1149}#
+                                      #f
+                                      #{vars 1148}#
+                                      '()
+                                      #{body-exp 1136}#)))
+                              (begin
+                                (#{maybe-name-value! 269}#
+                                  #{f-name 1147}#
+                                  #{proc 1151}#)
+                                (for-each
+                                  #{maybe-name-value! 269}#
+                                  #{ids 1149}#
+                                  #{val-exps 1135}#)
+                                (#{make-letrec 242}#
+                                  #{src 1132}#
+                                  #f
+                                  (list #{f-name 1147}#)
+                                  (list #{f 1146}#)
+                                  (list #{proc 1151}#)
+                                  (#{build-call 273}#
+                                    #{src 1132}#
+                                    (#{build-lexical-reference 279}#
+                                      'fun
+                                      #{src 1132}#
+                                      #{f-name 1147}#
+                                      #{f 1146}#)
+                                    #{val-exps 1135}#))))))
+                        (cons #{f 3429}# #{id 3430}#)
+                        #{val 3431}#
+                        (cons #{e1 3432}# #{e2 3433}#)))
+                    #{tmp 3410}#)
+                  (syntax-violation
+                    'let
+                    "bad let"
+                    (let ((#{x 6585}#
+                            (begin
+                              (if (if (pair? #{e 3378}#) #{s 3381}# #f)
+                                (set-source-properties! #{e 3378}# #{s 3381}#))
+                              #{e 3378}#)))
+                      (if (if (null? (car #{w 3380}#))
+                            (null? (cdr #{w 3380}#))
+                            #f)
+                        #{x 6585}#
+                        (if (if (vector? #{x 6585}#)
+                              (if (= (vector-length #{x 6585}#) 4)
+                                (eq? (vector-ref #{x 6585}# 0) 'syntax-object)
+                                #f)
+                              #f)
+                          (let ((#{expression 6597}# (vector-ref #{x 6585}# 1))
+                                (#{wrap 6598}#
+                                  (let ((#{w2 6606}#
+                                          (vector-ref #{x 6585}# 2)))
+                                    (let ((#{m1 6607}# (car #{w 3380}#))
+                                          (#{s1 6608}# (cdr #{w 3380}#)))
+                                      (if (null? #{m1 6607}#)
+                                        (if (null? #{s1 6608}#)
+                                          #{w2 6606}#
+                                          (cons (car #{w2 6606}#)
+                                                (let ((#{m2 6615}#
+                                                        (cdr #{w2 6606}#)))
+                                                  (if (null? #{m2 6615}#)
+                                                    #{s1 6608}#
+                                                    (append
+                                                      #{s1 6608}#
+                                                      #{m2 6615}#)))))
+                                        (cons (let ((#{m2 6619}#
+                                                      (car #{w2 6606}#)))
+                                                (if (null? #{m2 6619}#)
+                                                  #{m1 6607}#
+                                                  (append
+                                                    #{m1 6607}#
+                                                    #{m2 6619}#)))
+                                              (let ((#{m2 6623}#
+                                                      (cdr #{w2 6606}#)))
+                                                (if (null? #{m2 6623}#)
+                                                  #{s1 6608}#
+                                                  (append
+                                                    #{s1 6608}#
+                                                    #{m2 6623}#))))))))
+                                (#{module 6599}# (vector-ref #{x 6585}# 3)))
+                            (vector
+                              'syntax-object
+                              #{expression 6597}#
+                              #{wrap 6598}#
+                              #{module 6599}#))
+                          (if (null? #{x 6585}#)
+                            #{x 6585}#
+                            (vector
+                              'syntax-object
+                              #{x 6585}#
+                              #{w 3380}#
+                              #{mod 3382}#)))))))))))))
+    (#{global-extend 349}#
+      'core
+      'letrec
+      (lambda (#{e 3439}#
+               #{r 3440}#
+               #{w 3441}#
+               #{s 3442}#
+               #{mod 3443}#)
+        (let ((#{tmp 3450}#
+                ($sc-dispatch
+                  #{e 3439}#
+                  '(_ #(each (any any)) any . each-any))))
+          (if (if #{tmp 3450}#
+                (@apply
+                  (lambda (#{id 3455}#
+                           #{val 3456}#
+                           #{e1 3457}#
+                           #{e2 3458}#)
+                    (and-map #{id? 353}# #{id 3455}#))
+                  #{tmp 3450}#)
+                #f)
+            (@apply
+              (lambda (#{id 3464}#
+                       #{val 3465}#
+                       #{e1 3466}#
+                       #{e2 3467}#)
+                (if (not (#{valid-bound-ids? 421}# #{id 3464}#))
+                  (syntax-violation
+                    'letrec
+                    "duplicate bound variable"
+                    #{e 3439}#)
+                  (let ((#{labels 3473}#
+                          (#{gen-labels 373}# #{id 3464}#))
+                        (#{new-vars 3474}#
+                          (map #{gen-var 469}# #{id 3464}#)))
+                    (let ((#{w 3477}#
+                            (#{make-binding-wrap 405}#
+                              #{id 3464}#
+                              #{labels 3473}#
+                              #{w 3441}#))
+                          (#{r 3478}#
+                            (#{extend-var-env 343}#
+                              #{labels 3473}#
+                              #{new-vars 3474}#
+                              #{r 3440}#)))
+                      (#{build-letrec 309}#
+                        #{s 3442}#
+                        #f
+                        (map syntax->datum #{id 3464}#)
+                        #{new-vars 3474}#
+                        (map (lambda (#{x 3479}#)
+                               (#{chi 441}#
+                                 #{x 3479}#
+                                 #{r 3478}#
+                                 #{w 3477}#
+                                 #{mod 3443}#))
+                             #{val 3465}#)
+                        (#{chi-body 449}#
+                          (cons #{e1 3466}# #{e2 3467}#)
+                          (let ((#{x 7107}#
+                                  (begin
+                                    (if (if (pair? #{e 3439}#) #{s 3442}# #f)
+                                      (set-source-properties!
+                                        #{e 3439}#
+                                        #{s 3442}#))
+                                    #{e 3439}#)))
+                            (if (if (null? (car #{w 3477}#))
+                                  (null? (cdr #{w 3477}#))
+                                  #f)
+                              #{x 7107}#
+                              (if (if (vector? #{x 7107}#)
+                                    (if (= (vector-length #{x 7107}#) 4)
+                                      (eq? (vector-ref #{x 7107}# 0)
+                                           'syntax-object)
+                                      #f)
+                                    #f)
+                                (let ((#{expression 7119}#
+                                        (vector-ref #{x 7107}# 1))
+                                      (#{wrap 7120}#
+                                        (let ((#{w2 7128}#
+                                                (vector-ref #{x 7107}# 2)))
+                                          (let ((#{m1 7129}# (car #{w 3477}#))
+                                                (#{s1 7130}# (cdr #{w 3477}#)))
+                                            (if (null? #{m1 7129}#)
+                                              (if (null? #{s1 7130}#)
+                                                #{w2 7128}#
+                                                (cons (car #{w2 7128}#)
+                                                      (let ((#{m2 7137}#
+                                                              (cdr #{w2 
7128}#)))
+                                                        (if (null? #{m2 7137}#)
+                                                          #{s1 7130}#
+                                                          (append
+                                                            #{s1 7130}#
+                                                            #{m2 7137}#)))))
+                                              (cons (let ((#{m2 7141}#
+                                                            (car #{w2 7128}#)))
+                                                      (if (null? #{m2 7141}#)
+                                                        #{m1 7129}#
+                                                        (append
+                                                          #{m1 7129}#
+                                                          #{m2 7141}#)))
+                                                    (let ((#{m2 7145}#
+                                                            (cdr #{w2 7128}#)))
+                                                      (if (null? #{m2 7145}#)
+                                                        #{s1 7130}#
+                                                        (append
+                                                          #{s1 7130}#
+                                                          #{m2 7145}#))))))))
+                                      (#{module 7121}#
+                                        (vector-ref #{x 7107}# 3)))
+                                  (vector
+                                    'syntax-object
+                                    #{expression 7119}#
+                                    #{wrap 7120}#
+                                    #{module 7121}#))
+                                (if (null? #{x 7107}#)
+                                  #{x 7107}#
+                                  (vector
+                                    'syntax-object
+                                    #{x 7107}#
+                                    #{w 3477}#
+                                    #{mod 3443}#)))))
+                          #{r 3478}#
+                          #{w 3477}#
+                          #{mod 3443}#))))))
+              #{tmp 3450}#)
+            (syntax-violation
+              'letrec
+              "bad letrec"
+              (let ((#{x 7162}#
+                      (begin
+                        (if (if (pair? #{e 3439}#) #{s 3442}# #f)
+                          (set-source-properties! #{e 3439}# #{s 3442}#))
+                        #{e 3439}#)))
+                (if (if (null? (car #{w 3441}#))
+                      (null? (cdr #{w 3441}#))
+                      #f)
+                  #{x 7162}#
+                  (if (if (vector? #{x 7162}#)
+                        (if (= (vector-length #{x 7162}#) 4)
+                          (eq? (vector-ref #{x 7162}# 0) 'syntax-object)
+                          #f)
+                        #f)
+                    (let ((#{expression 7174}# (vector-ref #{x 7162}# 1))
+                          (#{wrap 7175}#
+                            (let ((#{w2 7183}# (vector-ref #{x 7162}# 2)))
+                              (let ((#{m1 7184}# (car #{w 3441}#))
+                                    (#{s1 7185}# (cdr #{w 3441}#)))
+                                (if (null? #{m1 7184}#)
+                                  (if (null? #{s1 7185}#)
+                                    #{w2 7183}#
+                                    (cons (car #{w2 7183}#)
+                                          (let ((#{m2 7192}#
+                                                  (cdr #{w2 7183}#)))
+                                            (if (null? #{m2 7192}#)
+                                              #{s1 7185}#
+                                              (append
+                                                #{s1 7185}#
+                                                #{m2 7192}#)))))
+                                  (cons (let ((#{m2 7196}# (car #{w2 7183}#)))
+                                          (if (null? #{m2 7196}#)
+                                            #{m1 7184}#
+                                            (append #{m1 7184}# #{m2 7196}#)))
+                                        (let ((#{m2 7200}# (cdr #{w2 7183}#)))
+                                          (if (null? #{m2 7200}#)
+                                            #{s1 7185}#
+                                            (append
+                                              #{s1 7185}#
+                                              #{m2 7200}#))))))))
+                          (#{module 7176}# (vector-ref #{x 7162}# 3)))
+                      (vector
+                        'syntax-object
+                        #{expression 7174}#
+                        #{wrap 7175}#
+                        #{module 7176}#))
+                    (if (null? #{x 7162}#)
+                      #{x 7162}#
+                      (vector
+                        'syntax-object
+                        #{x 7162}#
+                        #{w 3441}#
+                        #{mod 3443}#))))))))))
+    (#{global-extend 349}#
+      'core
+      'letrec*
+      (lambda (#{e 3485}#
+               #{r 3486}#
+               #{w 3487}#
+               #{s 3488}#
+               #{mod 3489}#)
+        (let ((#{tmp 3496}#
+                ($sc-dispatch
+                  #{e 3485}#
+                  '(_ #(each (any any)) any . each-any))))
+          (if (if #{tmp 3496}#
+                (@apply
+                  (lambda (#{id 3501}#
+                           #{val 3502}#
+                           #{e1 3503}#
+                           #{e2 3504}#)
+                    (and-map #{id? 353}# #{id 3501}#))
+                  #{tmp 3496}#)
+                #f)
+            (@apply
+              (lambda (#{id 3510}#
+                       #{val 3511}#
+                       #{e1 3512}#
+                       #{e2 3513}#)
+                (if (not (#{valid-bound-ids? 421}# #{id 3510}#))
+                  (syntax-violation
+                    'letrec*
+                    "duplicate bound variable"
+                    #{e 3485}#)
+                  (let ((#{labels 3519}#
+                          (#{gen-labels 373}# #{id 3510}#))
+                        (#{new-vars 3520}#
+                          (map #{gen-var 469}# #{id 3510}#)))
+                    (let ((#{w 3523}#
+                            (#{make-binding-wrap 405}#
+                              #{id 3510}#
+                              #{labels 3519}#
+                              #{w 3487}#))
+                          (#{r 3524}#
+                            (#{extend-var-env 343}#
+                              #{labels 3519}#
+                              #{new-vars 3520}#
+                              #{r 3486}#)))
+                      (#{build-letrec 309}#
+                        #{s 3488}#
+                        #t
+                        (map syntax->datum #{id 3510}#)
+                        #{new-vars 3520}#
+                        (map (lambda (#{x 3525}#)
+                               (#{chi 441}#
+                                 #{x 3525}#
+                                 #{r 3524}#
+                                 #{w 3523}#
+                                 #{mod 3489}#))
+                             #{val 3511}#)
+                        (#{chi-body 449}#
+                          (cons #{e1 3512}# #{e2 3513}#)
+                          (let ((#{x 7684}#
+                                  (begin
+                                    (if (if (pair? #{e 3485}#) #{s 3488}# #f)
+                                      (set-source-properties!
+                                        #{e 3485}#
+                                        #{s 3488}#))
+                                    #{e 3485}#)))
+                            (if (if (null? (car #{w 3523}#))
+                                  (null? (cdr #{w 3523}#))
+                                  #f)
+                              #{x 7684}#
+                              (if (if (vector? #{x 7684}#)
+                                    (if (= (vector-length #{x 7684}#) 4)
+                                      (eq? (vector-ref #{x 7684}# 0)
+                                           'syntax-object)
+                                      #f)
+                                    #f)
+                                (let ((#{expression 7696}#
+                                        (vector-ref #{x 7684}# 1))
+                                      (#{wrap 7697}#
+                                        (let ((#{w2 7705}#
+                                                (vector-ref #{x 7684}# 2)))
+                                          (let ((#{m1 7706}# (car #{w 3523}#))
+                                                (#{s1 7707}# (cdr #{w 3523}#)))
+                                            (if (null? #{m1 7706}#)
+                                              (if (null? #{s1 7707}#)
+                                                #{w2 7705}#
+                                                (cons (car #{w2 7705}#)
+                                                      (let ((#{m2 7714}#
+                                                              (cdr #{w2 
7705}#)))
+                                                        (if (null? #{m2 7714}#)
+                                                          #{s1 7707}#
+                                                          (append
+                                                            #{s1 7707}#
+                                                            #{m2 7714}#)))))
+                                              (cons (let ((#{m2 7718}#
+                                                            (car #{w2 7705}#)))
+                                                      (if (null? #{m2 7718}#)
+                                                        #{m1 7706}#
+                                                        (append
+                                                          #{m1 7706}#
+                                                          #{m2 7718}#)))
+                                                    (let ((#{m2 7722}#
+                                                            (cdr #{w2 7705}#)))
+                                                      (if (null? #{m2 7722}#)
+                                                        #{s1 7707}#
+                                                        (append
+                                                          #{s1 7707}#
+                                                          #{m2 7722}#))))))))
+                                      (#{module 7698}#
+                                        (vector-ref #{x 7684}# 3)))
+                                  (vector
+                                    'syntax-object
+                                    #{expression 7696}#
+                                    #{wrap 7697}#
+                                    #{module 7698}#))
+                                (if (null? #{x 7684}#)
+                                  #{x 7684}#
+                                  (vector
+                                    'syntax-object
+                                    #{x 7684}#
+                                    #{w 3523}#
+                                    #{mod 3489}#)))))
+                          #{r 3524}#
+                          #{w 3523}#
+                          #{mod 3489}#))))))
+              #{tmp 3496}#)
+            (syntax-violation
+              'letrec*
+              "bad letrec*"
+              (let ((#{x 7739}#
+                      (begin
+                        (if (if (pair? #{e 3485}#) #{s 3488}# #f)
+                          (set-source-properties! #{e 3485}# #{s 3488}#))
+                        #{e 3485}#)))
+                (if (if (null? (car #{w 3487}#))
+                      (null? (cdr #{w 3487}#))
+                      #f)
+                  #{x 7739}#
+                  (if (if (vector? #{x 7739}#)
+                        (if (= (vector-length #{x 7739}#) 4)
+                          (eq? (vector-ref #{x 7739}# 0) 'syntax-object)
+                          #f)
+                        #f)
+                    (let ((#{expression 7751}# (vector-ref #{x 7739}# 1))
+                          (#{wrap 7752}#
+                            (let ((#{w2 7760}# (vector-ref #{x 7739}# 2)))
+                              (let ((#{m1 7761}# (car #{w 3487}#))
+                                    (#{s1 7762}# (cdr #{w 3487}#)))
+                                (if (null? #{m1 7761}#)
+                                  (if (null? #{s1 7762}#)
+                                    #{w2 7760}#
+                                    (cons (car #{w2 7760}#)
+                                          (let ((#{m2 7769}#
+                                                  (cdr #{w2 7760}#)))
+                                            (if (null? #{m2 7769}#)
+                                              #{s1 7762}#
+                                              (append
+                                                #{s1 7762}#
+                                                #{m2 7769}#)))))
+                                  (cons (let ((#{m2 7773}# (car #{w2 7760}#)))
+                                          (if (null? #{m2 7773}#)
+                                            #{m1 7761}#
+                                            (append #{m1 7761}# #{m2 7773}#)))
+                                        (let ((#{m2 7777}# (cdr #{w2 7760}#)))
+                                          (if (null? #{m2 7777}#)
+                                            #{s1 7762}#
+                                            (append
+                                              #{s1 7762}#
+                                              #{m2 7777}#))))))))
+                          (#{module 7753}# (vector-ref #{x 7739}# 3)))
+                      (vector
+                        'syntax-object
+                        #{expression 7751}#
+                        #{wrap 7752}#
+                        #{module 7753}#))
+                    (if (null? #{x 7739}#)
+                      #{x 7739}#
+                      (vector
+                        'syntax-object
+                        #{x 7739}#
+                        #{w 3487}#
+                        #{mod 3489}#))))))))))
+    (#{global-extend 349}#
+      'core
+      'set!
+      (lambda (#{e 3531}#
+               #{r 3532}#
+               #{w 3533}#
+               #{s 3534}#
+               #{mod 3535}#)
+        (let ((#{tmp 3542}#
+                ($sc-dispatch #{e 3531}# '(_ any any))))
+          (if (if #{tmp 3542}#
+                (@apply
+                  (lambda (#{id 3545}# #{val 3546}#)
+                    (if (symbol? #{id 3545}#)
+                      #t
+                      (if (if (vector? #{id 3545}#)
+                            (if (= (vector-length #{id 3545}#) 4)
+                              (eq? (vector-ref #{id 3545}# 0) 'syntax-object)
+                              #f)
+                            #f)
+                        (symbol? (vector-ref #{id 3545}# 1))
+                        #f)))
+                  #{tmp 3542}#)
+                #f)
+            (@apply
+              (lambda (#{id 3549}# #{val 3550}#)
+                (let ((#{n 3553}#
+                        (#{id-var-name 415}# #{id 3549}# #{w 3533}#))
+                      (#{id-mod 3554}#
+                        (if (if (vector? #{id 3549}#)
+                              (if (= (vector-length #{id 3549}#) 4)
+                                (eq? (vector-ref #{id 3549}# 0) 'syntax-object)
+                                #f)
+                              #f)
+                          (vector-ref #{id 3549}# 3)
+                          #{mod 3535}#)))
+                  (let ((#{b 3556}#
+                          (let ((#{t 7891}# (assq #{n 3553}# #{r 3532}#)))
+                            (if #{t 7891}#
+                              (cdr #{t 7891}#)
+                              (if (symbol? #{n 3553}#)
+                                (let ((#{t 7892}#
+                                        (#{get-global-definition-hook 265}#
+                                          #{n 3553}#
+                                          #{id-mod 3554}#)))
+                                  (if #{t 7892}# #{t 7892}# '(global)))
+                                '(displaced-lexical))))))
+                    (let ((#{atom-key 3559}# (car #{b 3556}#)))
+                      (if (memv #{atom-key 3559}# '(lexical))
+                        ((lambda (#{source 1005}#
+                                  #{name 1006}#
+                                  #{var 1007}#
+                                  #{exp 1008}#)
+                           (begin
+                             (#{maybe-name-value! 269}#
+                               #{name 1006}#
+                               #{exp 1008}#)
+                             (#{make-lexical-set 216}#
+                               #{source 1005}#
+                               #{name 1006}#
+                               #{var 1007}#
+                               #{exp 1008}#)))
+                         #{s 3534}#
+                         (syntax->datum #{id 3549}#)
+                         (cdr #{b 3556}#)
+                         (#{chi 441}#
+                           #{val 3550}#
+                           #{r 3532}#
+                           #{w 3533}#
+                           #{mod 3535}#))
+                        (if (memv #{atom-key 3559}# '(global))
+                          (#{build-global-assignment 287}#
+                            #{s 3534}#
+                            #{n 3553}#
+                            (#{chi 441}#
+                              #{val 3550}#
+                              #{r 3532}#
+                              #{w 3533}#
+                              #{mod 3535}#)
+                            #{id-mod 3554}#)
+                          (if (memv #{atom-key 3559}# '(macro))
+                            (let ((#{p 3566}# (cdr #{b 3556}#)))
+                              (if (procedure-property
+                                    #{p 3566}#
+                                    'variable-transformer)
+                                (#{chi 441}#
+                                  (#{chi-macro 447}#
+                                    #{p 3566}#
+                                    #{e 3531}#
+                                    #{r 3532}#
+                                    #{w 3533}#
+                                    #{s 3534}#
+                                    #f
+                                    #{mod 3535}#)
+                                  #{r 3532}#
+                                  '(())
+                                  #{mod 3535}#)
+                                (syntax-violation
+                                  'set!
+                                  "not a variable transformer"
+                                  (if (if (null? (car #{w 3533}#))
+                                        (null? (cdr #{w 3533}#))
+                                        #f)
+                                    #{e 3531}#
+                                    (if (if (vector? #{e 3531}#)
+                                          (if (= (vector-length #{e 3531}#) 4)
+                                            (eq? (vector-ref #{e 3531}# 0)
+                                                 'syntax-object)
+                                            #f)
+                                          #f)
+                                      (let ((#{expression 8165}#
+                                              (vector-ref #{e 3531}# 1))
+                                            (#{wrap 8166}#
+                                              (let ((#{w2 8174}#
+                                                      (vector-ref
+                                                        #{e 3531}#
+                                                        2)))
+                                                (let ((#{m1 8175}#
+                                                        (car #{w 3533}#))
+                                                      (#{s1 8176}#
+                                                        (cdr #{w 3533}#)))
+                                                  (if (null? #{m1 8175}#)
+                                                    (if (null? #{s1 8176}#)
+                                                      #{w2 8174}#
+                                                      (cons (car #{w2 8174}#)
+                                                            (let ((#{m2 8183}#
+                                                                    (cdr #{w2 
8174}#)))
+                                                              (if (null? #{m2 
8183}#)
+                                                                #{s1 8176}#
+                                                                (append
+                                                                  #{s1 8176}#
+                                                                  #{m2 
8183}#)))))
+                                                    (cons (let ((#{m2 8187}#
+                                                                  (car #{w2 
8174}#)))
+                                                            (if (null? #{m2 
8187}#)
+                                                              #{m1 8175}#
+                                                              (append
+                                                                #{m1 8175}#
+                                                                #{m2 8187}#)))
+                                                          (let ((#{m2 8191}#
+                                                                  (cdr #{w2 
8174}#)))
+                                                            (if (null? #{m2 
8191}#)
+                                                              #{s1 8176}#
+                                                              (append
+                                                                #{s1 8176}#
+                                                                #{m2 
8191}#))))))))
+                                            (#{module 8167}#
+                                              (vector-ref #{e 3531}# 3)))
+                                        (vector
+                                          'syntax-object
+                                          #{expression 8165}#
+                                          #{wrap 8166}#
+                                          #{module 8167}#))
+                                      (if (null? #{e 3531}#)
+                                        #{e 3531}#
+                                        (vector
+                                          'syntax-object
+                                          #{e 3531}#
+                                          #{w 3533}#
+                                          #{mod 3535}#))))
+                                  (if (if (null? (car #{w 3533}#))
+                                        (null? (cdr #{w 3533}#))
+                                        #f)
+                                    #{id 3549}#
+                                    (if (if (vector? #{id 3549}#)
+                                          (if (= (vector-length #{id 3549}#) 4)
+                                            (eq? (vector-ref #{id 3549}# 0)
+                                                 'syntax-object)
+                                            #f)
+                                          #f)
+                                      (let ((#{expression 8210}#
+                                              (vector-ref #{id 3549}# 1))
+                                            (#{wrap 8211}#
+                                              (let ((#{w2 8219}#
+                                                      (vector-ref
+                                                        #{id 3549}#
+                                                        2)))
+                                                (let ((#{m1 8220}#
+                                                        (car #{w 3533}#))
+                                                      (#{s1 8221}#
+                                                        (cdr #{w 3533}#)))
+                                                  (if (null? #{m1 8220}#)
+                                                    (if (null? #{s1 8221}#)
+                                                      #{w2 8219}#
+                                                      (cons (car #{w2 8219}#)
+                                                            (let ((#{m2 8228}#
+                                                                    (cdr #{w2 
8219}#)))
+                                                              (if (null? #{m2 
8228}#)
+                                                                #{s1 8221}#
+                                                                (append
+                                                                  #{s1 8221}#
+                                                                  #{m2 
8228}#)))))
+                                                    (cons (let ((#{m2 8232}#
+                                                                  (car #{w2 
8219}#)))
+                                                            (if (null? #{m2 
8232}#)
+                                                              #{m1 8220}#
+                                                              (append
+                                                                #{m1 8220}#
+                                                                #{m2 8232}#)))
+                                                          (let ((#{m2 8236}#
+                                                                  (cdr #{w2 
8219}#)))
+                                                            (if (null? #{m2 
8236}#)
+                                                              #{s1 8221}#
+                                                              (append
+                                                                #{s1 8221}#
+                                                                #{m2 
8236}#))))))))
+                                            (#{module 8212}#
+                                              (vector-ref #{id 3549}# 3)))
+                                        (vector
+                                          'syntax-object
+                                          #{expression 8210}#
+                                          #{wrap 8211}#
+                                          #{module 8212}#))
+                                      (if (null? #{id 3549}#)
+                                        #{id 3549}#
+                                        (vector
+                                          'syntax-object
+                                          #{id 3549}#
+                                          #{w 3533}#
+                                          #{id-mod 3554}#)))))))
+                            (if (memv #{atom-key 3559}# '(displaced-lexical))
+                              (syntax-violation
+                                'set!
+                                "identifier out of context"
+                                (if (if (null? (car #{w 3533}#))
+                                      (null? (cdr #{w 3533}#))
+                                      #f)
+                                  #{id 3549}#
+                                  (if (if (vector? #{id 3549}#)
+                                        (if (= (vector-length #{id 3549}#) 4)
+                                          (eq? (vector-ref #{id 3549}# 0)
+                                               'syntax-object)
+                                          #f)
+                                        #f)
+                                    (let ((#{expression 8255}#
+                                            (vector-ref #{id 3549}# 1))
+                                          (#{wrap 8256}#
+                                            (let ((#{w2 8264}#
+                                                    (vector-ref
+                                                      #{id 3549}#
+                                                      2)))
+                                              (let ((#{m1 8265}#
+                                                      (car #{w 3533}#))
+                                                    (#{s1 8266}#
+                                                      (cdr #{w 3533}#)))
+                                                (if (null? #{m1 8265}#)
+                                                  (if (null? #{s1 8266}#)
+                                                    #{w2 8264}#
+                                                    (cons (car #{w2 8264}#)
+                                                          (let ((#{m2 8273}#
+                                                                  (cdr #{w2 
8264}#)))
+                                                            (if (null? #{m2 
8273}#)
+                                                              #{s1 8266}#
+                                                              (append
+                                                                #{s1 8266}#
+                                                                #{m2 
8273}#)))))
+                                                  (cons (let ((#{m2 8277}#
+                                                                (car #{w2 
8264}#)))
+                                                          (if (null? #{m2 
8277}#)
+                                                            #{m1 8265}#
+                                                            (append
+                                                              #{m1 8265}#
+                                                              #{m2 8277}#)))
+                                                        (let ((#{m2 8281}#
+                                                                (cdr #{w2 
8264}#)))
+                                                          (if (null? #{m2 
8281}#)
+                                                            #{s1 8266}#
+                                                            (append
+                                                              #{s1 8266}#
+                                                              #{m2 
8281}#))))))))
+                                          (#{module 8257}#
+                                            (vector-ref #{id 3549}# 3)))
+                                      (vector
+                                        'syntax-object
+                                        #{expression 8255}#
+                                        #{wrap 8256}#
+                                        #{module 8257}#))
+                                    (if (null? #{id 3549}#)
+                                      #{id 3549}#
+                                      (vector
+                                        'syntax-object
+                                        #{id 3549}#
+                                        #{w 3533}#
+                                        #{mod 3535}#)))))
+                              (syntax-violation
+                                'set!
+                                "bad set!"
+                                (let ((#{x 8298}#
+                                        (begin
+                                          (if (if (pair? #{e 3531}#)
+                                                #{s 3534}#
+                                                #f)
+                                            (set-source-properties!
+                                              #{e 3531}#
+                                              #{s 3534}#))
+                                          #{e 3531}#)))
+                                  (if (if (null? (car #{w 3533}#))
+                                        (null? (cdr #{w 3533}#))
+                                        #f)
+                                    #{x 8298}#
+                                    (if (if (vector? #{x 8298}#)
+                                          (if (= (vector-length #{x 8298}#) 4)
+                                            (eq? (vector-ref #{x 8298}# 0)
+                                                 'syntax-object)
+                                            #f)
+                                          #f)
+                                      (let ((#{expression 8310}#
+                                              (vector-ref #{x 8298}# 1))
+                                            (#{wrap 8311}#
+                                              (let ((#{w2 8319}#
+                                                      (vector-ref
+                                                        #{x 8298}#
+                                                        2)))
+                                                (let ((#{m1 8320}#
+                                                        (car #{w 3533}#))
+                                                      (#{s1 8321}#
+                                                        (cdr #{w 3533}#)))
+                                                  (if (null? #{m1 8320}#)
+                                                    (if (null? #{s1 8321}#)
+                                                      #{w2 8319}#
+                                                      (cons (car #{w2 8319}#)
+                                                            (let ((#{m2 8328}#
+                                                                    (cdr #{w2 
8319}#)))
+                                                              (if (null? #{m2 
8328}#)
+                                                                #{s1 8321}#
+                                                                (append
+                                                                  #{s1 8321}#
+                                                                  #{m2 
8328}#)))))
+                                                    (cons (let ((#{m2 8332}#
+                                                                  (car #{w2 
8319}#)))
+                                                            (if (null? #{m2 
8332}#)
+                                                              #{m1 8320}#
+                                                              (append
+                                                                #{m1 8320}#
+                                                                #{m2 8332}#)))
+                                                          (let ((#{m2 8336}#
+                                                                  (cdr #{w2 
8319}#)))
+                                                            (if (null? #{m2 
8336}#)
+                                                              #{s1 8321}#
+                                                              (append
+                                                                #{s1 8321}#
+                                                                #{m2 
8336}#))))))))
+                                            (#{module 8312}#
+                                              (vector-ref #{x 8298}# 3)))
+                                        (vector
+                                          'syntax-object
+                                          #{expression 8310}#
+                                          #{wrap 8311}#
+                                          #{module 8312}#))
+                                      (if (null? #{x 8298}#)
+                                        #{x 8298}#
+                                        (vector
+                                          'syntax-object
+                                          #{x 8298}#
+                                          #{w 3533}#
+                                          #{mod 3535}#))))))))))))))
+              #{tmp 3542}#)
+            (let ((#{tmp 3571}#
+                    ($sc-dispatch
+                      #{e 3531}#
+                      '(_ (any . each-any) any))))
+              (if #{tmp 3571}#
+                (@apply
+                  (lambda (#{head 3575}# #{tail 3576}# #{val 3577}#)
+                    (call-with-values
+                      (lambda ()
+                        (#{syntax-type 439}#
+                          #{head 3575}#
+                          #{r 3532}#
+                          '(())
+                          #f
+                          #f
+                          #{mod 3535}#
+                          #t))
+                      (lambda (#{type 3580}#
+                               #{value 3581}#
+                               #{ee 3582}#
+                               #{ww 3583}#
+                               #{ss 3584}#
+                               #{modmod 3585}#)
+                        (if (memv #{type 3580}# '(module-ref))
+                          (let ((#{val 3594}#
+                                  (#{chi 441}#
+                                    #{val 3577}#
+                                    #{r 3532}#
+                                    #{w 3533}#
+                                    #{mod 3535}#)))
+                            (call-with-values
+                              (lambda ()
+                                (#{value 3581}#
+                                  (cons #{head 3575}# #{tail 3576}#)
+                                  #{r 3532}#
+                                  #{w 3533}#))
+                              (lambda (#{e 3596}#
+                                       #{r 3597}#
+                                       #{w 3598}#
+                                       #{s* 3599}#
+                                       #{mod 3600}#)
+                                (let ((#{tmp 3607}# (list #{e 3596}#)))
+                                  (if (if #{tmp 3607}#
+                                        (@apply
+                                          (lambda (#{e 3609}#)
+                                            (if (symbol? #{e 3609}#)
+                                              #t
+                                              (if (if (vector? #{e 3609}#)
+                                                    (if (= (vector-length
+                                                             #{e 3609}#)
+                                                           4)
+                                                      (eq? (vector-ref
+                                                             #{e 3609}#
+                                                             0)
+                                                           'syntax-object)
+                                                      #f)
+                                                    #f)
+                                                (symbol?
+                                                  (vector-ref #{e 3609}# 1))
+                                                #f)))
+                                          #{tmp 3607}#)
+                                        #f)
+                                    (@apply
+                                      (lambda (#{e 3611}#)
+                                        (let ((#{var 8407}#
+                                                (syntax->datum #{e 3611}#)))
+                                          (begin
+                                            (if (if (struct? #{val 3594}#)
+                                                  (eq? (struct-vtable
+                                                         #{val 3594}#)
+                                                       (vector-ref
+                                                         %expanded-vtables
+                                                         14))
+                                                  #f)
+                                              (let ((#{meta 8418}#
+                                                      (struct-ref
+                                                        #{val 3594}#
+                                                        1)))
+                                                (if (not (assq 'name
+                                                               #{meta 8418}#))
+                                                  (let ((#{v 8428}#
+                                                          (cons (cons 'name
+                                                                      #{var 
8407}#)
+                                                                #{meta 
8418}#)))
+                                                    (struct-set!
+                                                      #{val 3594}#
+                                                      1
+                                                      #{v 8428}#)))))
+                                            (#{analyze-variable 283}#
+                                              #{mod 3600}#
+                                              #{var 8407}#
+                                              (lambda (#{mod 8410}#
+                                                       #{var 8411}#
+                                                       #{public? 8412}#)
+                                                (make-struct/no-tail
+                                                  (vector-ref
+                                                    %expanded-vtables
+                                                    6)
+                                                  #{s 3534}#
+                                                  #{mod 8410}#
+                                                  #{var 8411}#
+                                                  #{public? 8412}#
+                                                  #{val 3594}#))
+                                              (lambda (#{var 8413}#)
+                                                (make-struct/no-tail
+                                                  (vector-ref
+                                                    %expanded-vtables
+                                                    8)
+                                                  #{s 3534}#
+                                                  #{var 8413}#
+                                                  #{val 3594}#))))))
+                                      #{tmp 3607}#)
+                                    (syntax-violation
+                                      #f
+                                      "source expression failed to match any 
pattern"
+                                      #{e 3596}#))))))
+                          (#{build-call 273}#
+                            #{s 3534}#
+                            (#{chi 441}#
+                              (list '#(syntax-object
+                                       setter
+                                       ((top)
+                                        #(ribcage () () ())
+                                        #(ribcage () () ())
+                                        #(ribcage
+                                          #(type value ee ww ss modmod)
+                                          #((top)
+                                            (top)
+                                            (top)
+                                            (top)
+                                            (top)
+                                            (top))
+                                          #("i3586"
+                                            "i3587"
+                                            "i3588"
+                                            "i3589"
+                                            "i3590"
+                                            "i3591"))
+                                        #(ribcage
+                                          #(head tail val)
+                                          #((top) (top) (top))
+                                          #("i3572" "i3573" "i3574"))
+                                        #(ribcage () () ())
+                                        #(ribcage
+                                          #(e r w s mod)
+                                          #((top) (top) (top) (top) (top))
+                                          #("i3536"
+                                            "i3537"
+                                            "i3538"
+                                            "i3539"
+                                            "i3540"))
+                                        #(ribcage
+                                          (lambda-var-list
+                                            gen-var
+                                            strip
+                                            chi-lambda-case
+                                            lambda*-formals
+                                            chi-simple-lambda
+                                            lambda-formals
+                                            ellipsis?
+                                            chi-void
+                                            eval-local-transformer
+                                            chi-local-syntax
+                                            chi-body
+                                            chi-macro
+                                            chi-call
+                                            chi-expr
+                                            chi
+                                            syntax-type
+                                            chi-when-list
+                                            chi-install-global
+                                            chi-top-sequence
+                                            chi-sequence
+                                            source-wrap
+                                            wrap
+                                            bound-id-member?
+                                            distinct-bound-ids?
+                                            valid-bound-ids?
+                                            bound-id=?
+                                            free-id=?
+                                            id-var-name
+                                            same-marks?
+                                            join-marks
+                                            join-wraps
+                                            smart-append
+                                            make-binding-wrap
+                                            extend-ribcage!
+                                            make-empty-ribcage
+                                            new-mark
+                                            anti-mark
+                                            the-anti-mark
+                                            top-marked?
+                                            top-wrap
+                                            empty-wrap
+                                            set-ribcage-labels!
+                                            set-ribcage-marks!
+                                            set-ribcage-symnames!
+                                            ribcage-labels
+                                            ribcage-marks
+                                            ribcage-symnames
+                                            ribcage?
+                                            make-ribcage
+                                            gen-labels
+                                            gen-label
+                                            make-rename
+                                            rename-marks
+                                            rename-new
+                                            rename-old
+                                            subst-rename?
+                                            wrap-subst
+                                            wrap-marks
+                                            make-wrap
+                                            id-sym-name&marks
+                                            id-sym-name
+                                            id?
+                                            nonsymbol-id?
+                                            global-extend
+                                            lookup
+                                            macros-only-env
+                                            extend-var-env
+                                            extend-env
+                                            null-env
+                                            binding-value
+                                            binding-type
+                                            make-binding
+                                            arg-check
+                                            source-annotation
+                                            no-source
+                                            set-syntax-object-module!
+                                            set-syntax-object-wrap!
+                                            set-syntax-object-expression!
+                                            syntax-object-module
+                                            syntax-object-wrap
+                                            syntax-object-expression
+                                            syntax-object?
+                                            make-syntax-object
+                                            build-lexical-var
+                                            build-letrec
+                                            build-named-let
+                                            build-let
+                                            build-sequence
+                                            build-data
+                                            build-primref
+                                            build-primcall
+                                            build-lambda-case
+                                            build-case-lambda
+                                            build-simple-lambda
+                                            build-global-definition
+                                            build-global-assignment
+                                            build-global-reference
+                                            analyze-variable
+                                            build-lexical-assignment
+                                            build-lexical-reference
+                                            build-dynlet
+                                            build-conditional
+                                            build-call
+                                            build-void
+                                            maybe-name-value!
+                                            decorate-source
+                                            get-global-definition-hook
+                                            put-global-definition-hook
+                                            gensym-hook
+                                            local-eval-hook
+                                            top-level-eval-hook
+                                            fx<
+                                            fx=
+                                            fx-
+                                            fx+
+                                            set-lambda-meta!
+                                            lambda-meta
+                                            lambda?
+                                            make-dynlet
+                                            make-letrec
+                                            make-let
+                                            make-lambda-case
+                                            make-lambda
+                                            make-seq
+                                            make-primcall
+                                            make-call
+                                            make-conditional
+                                            make-toplevel-define
+                                            make-toplevel-set
+                                            make-toplevel-ref
+                                            make-module-set
+                                            make-module-ref
+                                            make-lexical-set
+                                            make-lexical-ref
+                                            make-primitive-ref
+                                            make-const
+                                            make-void)
+                                          ((top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top))
+                                          ("i470"
+                                           "i468"
+                                           "i466"
+                                           "i464"
+                                           "i462"
+                                           "i460"
+                                           "i458"
+                                           "i456"
+                                           "i454"
+                                           "i452"
+                                           "i450"
+                                           "i448"
+                                           "i446"
+                                           "i444"
+                                           "i442"
+                                           "i440"
+                                           "i438"
+                                           "i436"
+                                           "i434"
+                                           "i432"
+                                           "i430"
+                                           "i428"
+                                           "i426"
+                                           "i424"
+                                           "i422"
+                                           "i420"
+                                           "i418"
+                                           "i416"
+                                           "i414"
+                                           "i412"
+                                           "i410"
+                                           "i408"
+                                           "i406"
+                                           "i404"
+                                           "i402"
+                                           "i401"
+                                           "i399"
+                                           "i396"
+                                           "i395"
+                                           "i394"
+                                           "i392"
+                                           "i391"
+                                           "i389"
+                                           "i387"
+                                           "i385"
+                                           "i383"
+                                           "i381"
+                                           "i379"
+                                           "i377"
+                                           "i375"
+                                           "i372"
+                                           "i370"
+                                           "i369"
+                                           "i367"
+                                           "i365"
+                                           "i363"
+                                           "i361"
+                                           "i360"
+                                           "i359"
+                                           "i358"
+                                           "i356"
+                                           "i355"
+                                           "i352"
+                                           "i350"
+                                           "i348"
+                                           "i346"
+                                           "i344"
+                                           "i342"
+                                           "i340"
+                                           "i339"
+                                           "i338"
+                                           "i336"
+                                           "i334"
+                                           "i333"
+                                           "i330"
+                                           "i329"
+                                           "i327"
+                                           "i325"
+                                           "i323"
+                                           "i321"
+                                           "i319"
+                                           "i317"
+                                           "i315"
+                                           "i313"
+                                           "i311"
+                                           "i308"
+                                           "i306"
+                                           "i304"
+                                           "i302"
+                                           "i300"
+                                           "i298"
+                                           "i296"
+                                           "i294"
+                                           "i292"
+                                           "i290"
+                                           "i288"
+                                           "i286"
+                                           "i284"
+                                           "i282"
+                                           "i280"
+                                           "i278"
+                                           "i276"
+                                           "i274"
+                                           "i272"
+                                           "i270"
+                                           "i268"
+                                           "i266"
+                                           "i264"
+                                           "i262"
+                                           "i261"
+                                           "i258"
+                                           "i256"
+                                           "i255"
+                                           "i254"
+                                           "i253"
+                                           "i252"
+                                           "i250"
+                                           "i248"
+                                           "i246"
+                                           "i243"
+                                           "i241"
+                                           "i239"
+                                           "i237"
+                                           "i235"
+                                           "i233"
+                                           "i231"
+                                           "i229"
+                                           "i227"
+                                           "i225"
+                                           "i223"
+                                           "i221"
+                                           "i219"
+                                           "i217"
+                                           "i215"
+                                           "i213"
+                                           "i211"
+                                           "i209"
+                                           "i207"))
+                                        #(ribcage
+                                          (define-structure
+                                            define-expansion-accessors
+                                            define-expansion-constructors)
+                                          ((top) (top) (top))
+                                          ("i45" "i44" "i43")))
+                                       (hygiene guile))
+                                    #{head 3575}#)
+                              #{r 3532}#
+                              #{w 3533}#
+                              #{mod 3535}#)
+                            (map (lambda (#{e 3613}#)
+                                   (#{chi 441}#
+                                     #{e 3613}#
+                                     #{r 3532}#
+                                     #{w 3533}#
+                                     #{mod 3535}#))
+                                 (append
+                                   #{tail 3576}#
+                                   (list #{val 3577}#))))))))
+                  #{tmp 3571}#)
+                (syntax-violation
+                  'set!
+                  "bad set!"
+                  (let ((#{x 8603}#
+                          (begin
+                            (if (if (pair? #{e 3531}#) #{s 3534}# #f)
+                              (set-source-properties! #{e 3531}# #{s 3534}#))
+                            #{e 3531}#)))
+                    (if (if (null? (car #{w 3533}#))
+                          (null? (cdr #{w 3533}#))
+                          #f)
+                      #{x 8603}#
+                      (if (if (vector? #{x 8603}#)
+                            (if (= (vector-length #{x 8603}#) 4)
+                              (eq? (vector-ref #{x 8603}# 0) 'syntax-object)
+                              #f)
+                            #f)
+                        (let ((#{expression 8615}# (vector-ref #{x 8603}# 1))
+                              (#{wrap 8616}#
+                                (let ((#{w2 8624}# (vector-ref #{x 8603}# 2)))
+                                  (let ((#{m1 8625}# (car #{w 3533}#))
+                                        (#{s1 8626}# (cdr #{w 3533}#)))
+                                    (if (null? #{m1 8625}#)
+                                      (if (null? #{s1 8626}#)
+                                        #{w2 8624}#
+                                        (cons (car #{w2 8624}#)
+                                              (let ((#{m2 8633}#
+                                                      (cdr #{w2 8624}#)))
+                                                (if (null? #{m2 8633}#)
+                                                  #{s1 8626}#
+                                                  (append
+                                                    #{s1 8626}#
+                                                    #{m2 8633}#)))))
+                                      (cons (let ((#{m2 8637}#
+                                                    (car #{w2 8624}#)))
+                                              (if (null? #{m2 8637}#)
+                                                #{m1 8625}#
+                                                (append
+                                                  #{m1 8625}#
+                                                  #{m2 8637}#)))
+                                            (let ((#{m2 8641}#
+                                                    (cdr #{w2 8624}#)))
+                                              (if (null? #{m2 8641}#)
+                                                #{s1 8626}#
+                                                (append
+                                                  #{s1 8626}#
+                                                  #{m2 8641}#))))))))
+                              (#{module 8617}# (vector-ref #{x 8603}# 3)))
+                          (vector
+                            'syntax-object
+                            #{expression 8615}#
+                            #{wrap 8616}#
+                            #{module 8617}#))
+                        (if (null? #{x 8603}#)
+                          #{x 8603}#
+                          (vector
+                            'syntax-object
+                            #{x 8603}#
+                            #{w 3533}#
+                            #{mod 3535}#))))))))))))
+    (module-define!
+      (current-module)
+      '@
+      (make-syntax-transformer
+        '@
+        'module-ref
+        (lambda (#{e 3618}# #{r 3619}# #{w 3620}#)
+          (let ((#{tmp 3625}#
+                  ($sc-dispatch #{e 3618}# '(_ each-any any))))
+            (if (if #{tmp 3625}#
                   (@apply
-                    (lambda (#{val 3963}# #{key 3964}# #{m 3965}#)
-                      (if (and-map
-                            (lambda (#{x 3966}#)
-                              (if (#{id? 343}# #{x 3966}#)
-                                (not (#{ellipsis? 439}# #{x 3966}#))
-                                #f))
-                            #{key 3964}#)
-                        (let ((#{x 3972}# (#{gen-var 451}# 'tmp)))
-                          (#{build-call 267}#
-                            #{s 3949}#
-                            (#{build-simple-lambda 285}#
-                              #f
-                              (list 'tmp)
-                              #f
-                              (list #{x 3972}#)
-                              '()
-                              (#{gen-syntax-case 3723}#
-                                (#{build-lexical-reference 273}#
-                                  'value
-                                  #f
-                                  'tmp
-                                  #{x 3972}#)
-                                #{key 3964}#
-                                #{m 3965}#
-                                #{r 3947}#
-                                #{mod 3950}#))
-                            (list (#{chi 423}#
-                                    #{val 3963}#
-                                    #{r 3947}#
-                                    '(())
-                                    #{mod 3950}#))))
-                        (syntax-violation
-                          'syntax-case
-                          "invalid literals list"
-                          #{e 3957}#)))
-                    #{tmp 3959}#)
-                  (syntax-violation
+                    (lambda (#{mod 3628}# #{id 3629}#)
+                      (if (and-map #{id? 353}# #{mod 3628}#)
+                        (if (symbol? #{id 3629}#)
+                          #t
+                          (if (if (vector? #{id 3629}#)
+                                (if (= (vector-length #{id 3629}#) 4)
+                                  (eq? (vector-ref #{id 3629}# 0)
+                                       'syntax-object)
+                                  #f)
+                                #f)
+                            (symbol? (vector-ref #{id 3629}# 1))
+                            #f))
+                        #f))
+                    #{tmp 3625}#)
+                  #f)
+              (@apply
+                (lambda (#{mod 3635}# #{id 3636}#)
+                  (values
+                    (syntax->datum #{id 3636}#)
+                    #{r 3619}#
+                    #{w 3620}#
                     #f
-                    "source expression failed to match any pattern"
-                    #{tmp 3958}#))))))))
-    (set! macroexpand
-      (lambda*
-        (#{x 3978}#
-          #:optional
-          (#{m 3980}# 'e)
-          (#{esew 3982}# '(eval)))
-        (#{chi-top-sequence 415}#
-          (list #{x 3978}#)
-          '()
-          '((top))
-          #f
-          #{m 3980}#
-          #{esew 3982}#
-          (cons 'hygiene (module-name (current-module))))))
-    (set! identifier?
-      (lambda (#{x 3986}#)
-        (#{nonsymbol-id? 341}# #{x 3986}#)))
-    (set! datum->syntax
-      (lambda (#{id 3988}# #{datum 3989}#)
-        (#{make-syntax-object 307}#
-          #{datum 3989}#
-          (#{syntax-object-wrap 313}# #{id 3988}#)
-          (#{syntax-object-module 315}# #{id 3988}#))))
-    (set! syntax->datum
-      (lambda (#{x 3992}#)
-        (#{strip 449}# #{x 3992}# '(()))))
-    (set! syntax-source
-      (lambda (#{x 3995}#)
-        (#{source-annotation 324}# #{x 3995}#)))
-    (set! generate-temporaries
-      (lambda (#{ls 3997}#)
-        (begin
-          (let ((#{x 4001}# #{ls 3997}#))
-            (if (not (list? #{x 4001}#))
-              (syntax-violation
-                'generate-temporaries
-                "invalid argument"
-                #{x 4001}#)))
-          (let ((#{mod 4003}#
-                  (cons 'hygiene (module-name (current-module)))))
-            (map (lambda (#{x 4004}#)
-                   (#{wrap 409}# (gensym) '((top)) #{mod 4003}#))
-                 #{ls 3997}#)))))
-    (set! free-identifier=?
-      (lambda (#{x 4008}# #{y 4009}#)
-        (begin
-          (let ((#{x 4014}# #{x 4008}#))
-            (if (not (#{nonsymbol-id? 341}# #{x 4014}#))
-              (syntax-violation
-                'free-identifier=?
-                "invalid argument"
-                #{x 4014}#)))
-          (let ((#{x 4017}# #{y 4009}#))
-            (if (not (#{nonsymbol-id? 341}# #{x 4017}#))
-              (syntax-violation
-                'free-identifier=?
-                "invalid argument"
-                #{x 4017}#)))
-          (#{free-id=? 399}# #{x 4008}# #{y 4009}#))))
-    (set! bound-identifier=?
-      (lambda (#{x 4018}# #{y 4019}#)
-        (begin
-          (let ((#{x 4024}# #{x 4018}#))
-            (if (not (#{nonsymbol-id? 341}# #{x 4024}#))
-              (syntax-violation
-                'bound-identifier=?
-                "invalid argument"
-                #{x 4024}#)))
-          (let ((#{x 4027}# #{y 4019}#))
-            (if (not (#{nonsymbol-id? 341}# #{x 4027}#))
-              (syntax-violation
-                'bound-identifier=?
-                "invalid argument"
-                #{x 4027}#)))
-          (#{bound-id=? 401}# #{x 4018}# #{y 4019}#))))
-    (set! syntax-violation
-      (lambda*
-        (#{who 4028}#
-          #{message 4029}#
-          #{form 4030}#
-          #:optional
-          (#{subform 4034}# #f))
-        (begin
-          (let ((#{x 4038}# #{who 4028}#))
-            (if (not (let ((#{x 4039}# #{x 4038}#))
-                       (let ((#{t 4043}# (not #{x 4039}#)))
-                         (if #{t 4043}#
-                           #{t 4043}#
-                           (let ((#{t 4046}# (string? #{x 4039}#)))
-                             (if #{t 4046}#
-                               #{t 4046}#
-                               (symbol? #{x 4039}#)))))))
+                    (syntax->datum
+                      (cons '#(syntax-object
+                               public
+                               ((top)
+                                #(ribcage
+                                  #(mod id)
+                                  #((top) (top))
+                                  #("i3633" "i3634"))
+                                #(ribcage () () ())
+                                #(ribcage
+                                  #(e r w)
+                                  #((top) (top) (top))
+                                  #("i3621" "i3622" "i3623"))
+                                #(ribcage
+                                  (lambda-var-list
+                                    gen-var
+                                    strip
+                                    chi-lambda-case
+                                    lambda*-formals
+                                    chi-simple-lambda
+                                    lambda-formals
+                                    ellipsis?
+                                    chi-void
+                                    eval-local-transformer
+                                    chi-local-syntax
+                                    chi-body
+                                    chi-macro
+                                    chi-call
+                                    chi-expr
+                                    chi
+                                    syntax-type
+                                    chi-when-list
+                                    chi-install-global
+                                    chi-top-sequence
+                                    chi-sequence
+                                    source-wrap
+                                    wrap
+                                    bound-id-member?
+                                    distinct-bound-ids?
+                                    valid-bound-ids?
+                                    bound-id=?
+                                    free-id=?
+                                    id-var-name
+                                    same-marks?
+                                    join-marks
+                                    join-wraps
+                                    smart-append
+                                    make-binding-wrap
+                                    extend-ribcage!
+                                    make-empty-ribcage
+                                    new-mark
+                                    anti-mark
+                                    the-anti-mark
+                                    top-marked?
+                                    top-wrap
+                                    empty-wrap
+                                    set-ribcage-labels!
+                                    set-ribcage-marks!
+                                    set-ribcage-symnames!
+                                    ribcage-labels
+                                    ribcage-marks
+                                    ribcage-symnames
+                                    ribcage?
+                                    make-ribcage
+                                    gen-labels
+                                    gen-label
+                                    make-rename
+                                    rename-marks
+                                    rename-new
+                                    rename-old
+                                    subst-rename?
+                                    wrap-subst
+                                    wrap-marks
+                                    make-wrap
+                                    id-sym-name&marks
+                                    id-sym-name
+                                    id?
+                                    nonsymbol-id?
+                                    global-extend
+                                    lookup
+                                    macros-only-env
+                                    extend-var-env
+                                    extend-env
+                                    null-env
+                                    binding-value
+                                    binding-type
+                                    make-binding
+                                    arg-check
+                                    source-annotation
+                                    no-source
+                                    set-syntax-object-module!
+                                    set-syntax-object-wrap!
+                                    set-syntax-object-expression!
+                                    syntax-object-module
+                                    syntax-object-wrap
+                                    syntax-object-expression
+                                    syntax-object?
+                                    make-syntax-object
+                                    build-lexical-var
+                                    build-letrec
+                                    build-named-let
+                                    build-let
+                                    build-sequence
+                                    build-data
+                                    build-primref
+                                    build-primcall
+                                    build-lambda-case
+                                    build-case-lambda
+                                    build-simple-lambda
+                                    build-global-definition
+                                    build-global-assignment
+                                    build-global-reference
+                                    analyze-variable
+                                    build-lexical-assignment
+                                    build-lexical-reference
+                                    build-dynlet
+                                    build-conditional
+                                    build-call
+                                    build-void
+                                    maybe-name-value!
+                                    decorate-source
+                                    get-global-definition-hook
+                                    put-global-definition-hook
+                                    gensym-hook
+                                    local-eval-hook
+                                    top-level-eval-hook
+                                    fx<
+                                    fx=
+                                    fx-
+                                    fx+
+                                    set-lambda-meta!
+                                    lambda-meta
+                                    lambda?
+                                    make-dynlet
+                                    make-letrec
+                                    make-let
+                                    make-lambda-case
+                                    make-lambda
+                                    make-seq
+                                    make-primcall
+                                    make-call
+                                    make-conditional
+                                    make-toplevel-define
+                                    make-toplevel-set
+                                    make-toplevel-ref
+                                    make-module-set
+                                    make-module-ref
+                                    make-lexical-set
+                                    make-lexical-ref
+                                    make-primitive-ref
+                                    make-const
+                                    make-void)
+                                  ((top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top)
+                                   (top))
+                                  ("i470"
+                                   "i468"
+                                   "i466"
+                                   "i464"
+                                   "i462"
+                                   "i460"
+                                   "i458"
+                                   "i456"
+                                   "i454"
+                                   "i452"
+                                   "i450"
+                                   "i448"
+                                   "i446"
+                                   "i444"
+                                   "i442"
+                                   "i440"
+                                   "i438"
+                                   "i436"
+                                   "i434"
+                                   "i432"
+                                   "i430"
+                                   "i428"
+                                   "i426"
+                                   "i424"
+                                   "i422"
+                                   "i420"
+                                   "i418"
+                                   "i416"
+                                   "i414"
+                                   "i412"
+                                   "i410"
+                                   "i408"
+                                   "i406"
+                                   "i404"
+                                   "i402"
+                                   "i401"
+                                   "i399"
+                                   "i396"
+                                   "i395"
+                                   "i394"
+                                   "i392"
+                                   "i391"
+                                   "i389"
+                                   "i387"
+                                   "i385"
+                                   "i383"
+                                   "i381"
+                                   "i379"
+                                   "i377"
+                                   "i375"
+                                   "i372"
+                                   "i370"
+                                   "i369"
+                                   "i367"
+                                   "i365"
+                                   "i363"
+                                   "i361"
+                                   "i360"
+                                   "i359"
+                                   "i358"
+                                   "i356"
+                                   "i355"
+                                   "i352"
+                                   "i350"
+                                   "i348"
+                                   "i346"
+                                   "i344"
+                                   "i342"
+                                   "i340"
+                                   "i339"
+                                   "i338"
+                                   "i336"
+                                   "i334"
+                                   "i333"
+                                   "i330"
+                                   "i329"
+                                   "i327"
+                                   "i325"
+                                   "i323"
+                                   "i321"
+                                   "i319"
+                                   "i317"
+                                   "i315"
+                                   "i313"
+                                   "i311"
+                                   "i308"
+                                   "i306"
+                                   "i304"
+                                   "i302"
+                                   "i300"
+                                   "i298"
+                                   "i296"
+                                   "i294"
+                                   "i292"
+                                   "i290"
+                                   "i288"
+                                   "i286"
+                                   "i284"
+                                   "i282"
+                                   "i280"
+                                   "i278"
+                                   "i276"
+                                   "i274"
+                                   "i272"
+                                   "i270"
+                                   "i268"
+                                   "i266"
+                                   "i264"
+                                   "i262"
+                                   "i261"
+                                   "i258"
+                                   "i256"
+                                   "i255"
+                                   "i254"
+                                   "i253"
+                                   "i252"
+                                   "i250"
+                                   "i248"
+                                   "i246"
+                                   "i243"
+                                   "i241"
+                                   "i239"
+                                   "i237"
+                                   "i235"
+                                   "i233"
+                                   "i231"
+                                   "i229"
+                                   "i227"
+                                   "i225"
+                                   "i223"
+                                   "i221"
+                                   "i219"
+                                   "i217"
+                                   "i215"
+                                   "i213"
+                                   "i211"
+                                   "i209"
+                                   "i207"))
+                                #(ribcage
+                                  (define-structure
+                                    define-expansion-accessors
+                                    define-expansion-constructors)
+                                  ((top) (top) (top))
+                                  ("i45" "i44" "i43")))
+                               (hygiene guile))
+                            #{mod 3635}#))))
+                #{tmp 3625}#)
               (syntax-violation
-                'syntax-violation
-                "invalid argument"
-                #{x 4038}#)))
-          (let ((#{x 4050}# #{message 4029}#))
-            (if (not (string? #{x 4050}#))
+                #f
+                "source expression failed to match any pattern"
+                #{e 3618}#))))))
+    (#{global-extend 349}#
+      'module-ref
+      '@@
+      (lambda (#{e 3638}# #{r 3639}# #{w 3640}#)
+        (letrec*
+          ((#{remodulate 3645}#
+             (lambda (#{x 3646}# #{mod 3647}#)
+               (if (pair? #{x 3646}#)
+                 (cons (#{remodulate 3645}#
+                         (car #{x 3646}#)
+                         #{mod 3647}#)
+                       (#{remodulate 3645}#
+                         (cdr #{x 3646}#)
+                         #{mod 3647}#))
+                 (if (if (vector? #{x 3646}#)
+                       (if (= (vector-length #{x 3646}#) 4)
+                         (eq? (vector-ref #{x 3646}# 0) 'syntax-object)
+                         #f)
+                       #f)
+                   (let ((#{expression 8715}#
+                           (#{remodulate 3645}#
+                             (vector-ref #{x 3646}# 1)
+                             #{mod 3647}#))
+                         (#{wrap 8716}# (vector-ref #{x 3646}# 2)))
+                     (vector
+                       'syntax-object
+                       #{expression 8715}#
+                       #{wrap 8716}#
+                       #{mod 3647}#))
+                   (if (vector? #{x 3646}#)
+                     (let ((#{n 3658}# (vector-length #{x 3646}#)))
+                       (let ((#{v 3660}# (make-vector #{n 3658}#)))
+                         (letrec*
+                           ((#{loop 3663}#
+                              (lambda (#{i 3664}#)
+                                (if (= #{i 3664}# #{n 3658}#)
+                                  #{v 3660}#
+                                  (begin
+                                    (vector-set!
+                                      #{v 3660}#
+                                      #{i 3664}#
+                                      (#{remodulate 3645}#
+                                        (vector-ref #{x 3646}# #{i 3664}#)
+                                        #{mod 3647}#))
+                                    (#{loop 3663}# (#{1+}# #{i 3664}#)))))))
+                           (#{loop 3663}# 0))))
+                     #{x 3646}#))))))
+          (let ((#{tmp 3671}#
+                  ($sc-dispatch #{e 3638}# '(_ each-any any))))
+            (if (if #{tmp 3671}#
+                  (@apply
+                    (lambda (#{mod 3674}# #{exp 3675}#)
+                      (and-map #{id? 353}# #{mod 3674}#))
+                    #{tmp 3671}#)
+                  #f)
+              (@apply
+                (lambda (#{mod 3679}# #{exp 3680}#)
+                  (let ((#{mod 3682}#
+                          (syntax->datum
+                            (cons '#(syntax-object
+                                     private
+                                     ((top)
+                                      #(ribcage
+                                        #(mod exp)
+                                        #((top) (top))
+                                        #("i3677" "i3678"))
+                                      #(ribcage (remodulate) ((top)) ("i3644"))
+                                      #(ribcage
+                                        #(e r w)
+                                        #((top) (top) (top))
+                                        #("i3641" "i3642" "i3643"))
+                                      #(ribcage
+                                        (lambda-var-list
+                                          gen-var
+                                          strip
+                                          chi-lambda-case
+                                          lambda*-formals
+                                          chi-simple-lambda
+                                          lambda-formals
+                                          ellipsis?
+                                          chi-void
+                                          eval-local-transformer
+                                          chi-local-syntax
+                                          chi-body
+                                          chi-macro
+                                          chi-call
+                                          chi-expr
+                                          chi
+                                          syntax-type
+                                          chi-when-list
+                                          chi-install-global
+                                          chi-top-sequence
+                                          chi-sequence
+                                          source-wrap
+                                          wrap
+                                          bound-id-member?
+                                          distinct-bound-ids?
+                                          valid-bound-ids?
+                                          bound-id=?
+                                          free-id=?
+                                          id-var-name
+                                          same-marks?
+                                          join-marks
+                                          join-wraps
+                                          smart-append
+                                          make-binding-wrap
+                                          extend-ribcage!
+                                          make-empty-ribcage
+                                          new-mark
+                                          anti-mark
+                                          the-anti-mark
+                                          top-marked?
+                                          top-wrap
+                                          empty-wrap
+                                          set-ribcage-labels!
+                                          set-ribcage-marks!
+                                          set-ribcage-symnames!
+                                          ribcage-labels
+                                          ribcage-marks
+                                          ribcage-symnames
+                                          ribcage?
+                                          make-ribcage
+                                          gen-labels
+                                          gen-label
+                                          make-rename
+                                          rename-marks
+                                          rename-new
+                                          rename-old
+                                          subst-rename?
+                                          wrap-subst
+                                          wrap-marks
+                                          make-wrap
+                                          id-sym-name&marks
+                                          id-sym-name
+                                          id?
+                                          nonsymbol-id?
+                                          global-extend
+                                          lookup
+                                          macros-only-env
+                                          extend-var-env
+                                          extend-env
+                                          null-env
+                                          binding-value
+                                          binding-type
+                                          make-binding
+                                          arg-check
+                                          source-annotation
+                                          no-source
+                                          set-syntax-object-module!
+                                          set-syntax-object-wrap!
+                                          set-syntax-object-expression!
+                                          syntax-object-module
+                                          syntax-object-wrap
+                                          syntax-object-expression
+                                          syntax-object?
+                                          make-syntax-object
+                                          build-lexical-var
+                                          build-letrec
+                                          build-named-let
+                                          build-let
+                                          build-sequence
+                                          build-data
+                                          build-primref
+                                          build-primcall
+                                          build-lambda-case
+                                          build-case-lambda
+                                          build-simple-lambda
+                                          build-global-definition
+                                          build-global-assignment
+                                          build-global-reference
+                                          analyze-variable
+                                          build-lexical-assignment
+                                          build-lexical-reference
+                                          build-dynlet
+                                          build-conditional
+                                          build-call
+                                          build-void
+                                          maybe-name-value!
+                                          decorate-source
+                                          get-global-definition-hook
+                                          put-global-definition-hook
+                                          gensym-hook
+                                          local-eval-hook
+                                          top-level-eval-hook
+                                          fx<
+                                          fx=
+                                          fx-
+                                          fx+
+                                          set-lambda-meta!
+                                          lambda-meta
+                                          lambda?
+                                          make-dynlet
+                                          make-letrec
+                                          make-let
+                                          make-lambda-case
+                                          make-lambda
+                                          make-seq
+                                          make-primcall
+                                          make-call
+                                          make-conditional
+                                          make-toplevel-define
+                                          make-toplevel-set
+                                          make-toplevel-ref
+                                          make-module-set
+                                          make-module-ref
+                                          make-lexical-set
+                                          make-lexical-ref
+                                          make-primitive-ref
+                                          make-const
+                                          make-void)
+                                        ((top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top))
+                                        ("i470"
+                                         "i468"
+                                         "i466"
+                                         "i464"
+                                         "i462"
+                                         "i460"
+                                         "i458"
+                                         "i456"
+                                         "i454"
+                                         "i452"
+                                         "i450"
+                                         "i448"
+                                         "i446"
+                                         "i444"
+                                         "i442"
+                                         "i440"
+                                         "i438"
+                                         "i436"
+                                         "i434"
+                                         "i432"
+                                         "i430"
+                                         "i428"
+                                         "i426"
+                                         "i424"
+                                         "i422"
+                                         "i420"
+                                         "i418"
+                                         "i416"
+                                         "i414"
+                                         "i412"
+                                         "i410"
+                                         "i408"
+                                         "i406"
+                                         "i404"
+                                         "i402"
+                                         "i401"
+                                         "i399"
+                                         "i396"
+                                         "i395"
+                                         "i394"
+                                         "i392"
+                                         "i391"
+                                         "i389"
+                                         "i387"
+                                         "i385"
+                                         "i383"
+                                         "i381"
+                                         "i379"
+                                         "i377"
+                                         "i375"
+                                         "i372"
+                                         "i370"
+                                         "i369"
+                                         "i367"
+                                         "i365"
+                                         "i363"
+                                         "i361"
+                                         "i360"
+                                         "i359"
+                                         "i358"
+                                         "i356"
+                                         "i355"
+                                         "i352"
+                                         "i350"
+                                         "i348"
+                                         "i346"
+                                         "i344"
+                                         "i342"
+                                         "i340"
+                                         "i339"
+                                         "i338"
+                                         "i336"
+                                         "i334"
+                                         "i333"
+                                         "i330"
+                                         "i329"
+                                         "i327"
+                                         "i325"
+                                         "i323"
+                                         "i321"
+                                         "i319"
+                                         "i317"
+                                         "i315"
+                                         "i313"
+                                         "i311"
+                                         "i308"
+                                         "i306"
+                                         "i304"
+                                         "i302"
+                                         "i300"
+                                         "i298"
+                                         "i296"
+                                         "i294"
+                                         "i292"
+                                         "i290"
+                                         "i288"
+                                         "i286"
+                                         "i284"
+                                         "i282"
+                                         "i280"
+                                         "i278"
+                                         "i276"
+                                         "i274"
+                                         "i272"
+                                         "i270"
+                                         "i268"
+                                         "i266"
+                                         "i264"
+                                         "i262"
+                                         "i261"
+                                         "i258"
+                                         "i256"
+                                         "i255"
+                                         "i254"
+                                         "i253"
+                                         "i252"
+                                         "i250"
+                                         "i248"
+                                         "i246"
+                                         "i243"
+                                         "i241"
+                                         "i239"
+                                         "i237"
+                                         "i235"
+                                         "i233"
+                                         "i231"
+                                         "i229"
+                                         "i227"
+                                         "i225"
+                                         "i223"
+                                         "i221"
+                                         "i219"
+                                         "i217"
+                                         "i215"
+                                         "i213"
+                                         "i211"
+                                         "i209"
+                                         "i207"))
+                                      #(ribcage
+                                        (define-structure
+                                          define-expansion-accessors
+                                          define-expansion-constructors)
+                                        ((top) (top) (top))
+                                        ("i45" "i44" "i43")))
+                                     (hygiene guile))
+                                  #{mod 3679}#))))
+                    (values
+                      (#{remodulate 3645}# #{exp 3680}# #{mod 3682}#)
+                      #{r 3639}#
+                      #{w 3640}#
+                      (#{source-annotation 331}# #{exp 3680}#)
+                      #{mod 3682}#)))
+                #{tmp 3671}#)
               (syntax-violation
-                'syntax-violation
-                "invalid argument"
-                #{x 4050}#)))
-          (throw 'syntax-error
-                 #{who 4028}#
-                 #{message 4029}#
-                 (#{source-annotation 324}#
-                   (let ((#{t 4053}# #{form 4030}#))
-                     (if #{t 4053}# #{t 4053}# #{subform 4034}#)))
-                 (#{strip 449}# #{form 4030}# '(()))
-                 (if #{subform 4034}#
-                   (#{strip 449}# #{subform 4034}# '(()))
-                   #f)))))
-    (letrec*
-      ((#{match-each 4060}#
-         (lambda (#{e 4073}# #{p 4074}# #{w 4075}# #{mod 4076}#)
-           (if (pair? #{e 4073}#)
-             (let ((#{first 4084}#
-                     (#{match 4072}#
-                       (car #{e 4073}#)
-                       #{p 4074}#
-                       #{w 4075}#
-                       '()
-                       #{mod 4076}#)))
-               (if #{first 4084}#
-                 (let ((#{rest 4088}#
-                         (#{match-each 4060}#
-                           (cdr #{e 4073}#)
-                           #{p 4074}#
-                           #{w 4075}#
-                           #{mod 4076}#)))
-                   (if #{rest 4088}#
-                     (cons #{first 4084}# #{rest 4088}#)
-                     #f))
-                 #f))
-             (if (null? #{e 4073}#)
-               '()
-               (if (#{syntax-object? 309}# #{e 4073}#)
-                 (#{match-each 4060}#
-                   (#{syntax-object-expression 311}# #{e 4073}#)
-                   #{p 4074}#
-                   (#{join-wraps 391}#
-                     #{w 4075}#
-                     (#{syntax-object-wrap 313}# #{e 4073}#))
-                   (#{syntax-object-module 315}# #{e 4073}#))
-                 #f)))))
-       (#{match-each+ 4062}#
-         (lambda (#{e 4096}#
-                  #{x-pat 4097}#
-                  #{y-pat 4098}#
-                  #{z-pat 4099}#
-                  #{w 4100}#
-                  #{r 4101}#
-                  #{mod 4102}#)
-           (letrec*
-             ((#{f 4113}#
-                (lambda (#{e 4114}# #{w 4115}#)
-                  (if (pair? #{e 4114}#)
-                    (call-with-values
-                      (lambda ()
-                        (#{f 4113}# (cdr #{e 4114}#) #{w 4115}#))
-                      (lambda (#{xr* 4118}# #{y-pat 4119}# #{r 4120}#)
-                        (if #{r 4120}#
-                          (if (null? #{y-pat 4119}#)
-                            (let ((#{xr 4125}#
-                                    (#{match 4072}#
-                                      (car #{e 4114}#)
-                                      #{x-pat 4097}#
-                                      #{w 4115}#
-                                      '()
-                                      #{mod 4102}#)))
-                              (if #{xr 4125}#
-                                (values
-                                  (cons #{xr 4125}# #{xr* 4118}#)
-                                  #{y-pat 4119}#
-                                  #{r 4120}#)
-                                (values #f #f #f)))
-                            (values
-                              '()
-                              (cdr #{y-pat 4119}#)
-                              (#{match 4072}#
-                                (car #{e 4114}#)
-                                (car #{y-pat 4119}#)
-                                #{w 4115}#
-                                #{r 4120}#
-                                #{mod 4102}#)))
-                          (values #f #f #f))))
-                    (if (#{syntax-object? 309}# #{e 4114}#)
-                      (#{f 4113}#
-                        (#{syntax-object-expression 311}# #{e 4114}#)
-                        (#{join-wraps 391}# #{w 4115}# #{e 4114}#))
-                      (values
-                        '()
-                        #{y-pat 4098}#
-                        (#{match 4072}#
-                          #{e 4114}#
-                          #{z-pat 4099}#
-                          #{w 4115}#
-                          #{r 4101}#
-                          #{mod 4102}#)))))))
-             (#{f 4113}# #{e 4096}# #{w 4100}#))))
-       (#{match-each-any 4064}#
-         (lambda (#{e 4129}# #{w 4130}# #{mod 4131}#)
-           (if (pair? #{e 4129}#)
-             (let ((#{l 4138}#
-                     (#{match-each-any 4064}#
-                       (cdr #{e 4129}#)
-                       #{w 4130}#
-                       #{mod 4131}#)))
-               (if #{l 4138}#
-                 (cons (#{wrap 409}#
-                         (car #{e 4129}#)
-                         #{w 4130}#
-                         #{mod 4131}#)
-                       #{l 4138}#)
-                 #f))
-             (if (null? #{e 4129}#)
-               '()
-               (if (#{syntax-object? 309}# #{e 4129}#)
-                 (#{match-each-any 4064}#
-                   (#{syntax-object-expression 311}# #{e 4129}#)
-                   (#{join-wraps 391}#
-                     #{w 4130}#
-                     (#{syntax-object-wrap 313}# #{e 4129}#))
-                   #{mod 4131}#)
-                 #f)))))
-       (#{match-empty 4066}#
-         (lambda (#{p 4146}# #{r 4147}#)
-           (if (null? #{p 4146}#)
-             #{r 4147}#
-             (if (eq? #{p 4146}# '_)
-               #{r 4147}#
-               (if (eq? #{p 4146}# 'any)
-                 (cons '() #{r 4147}#)
-                 (if (pair? #{p 4146}#)
-                   (#{match-empty 4066}#
-                     (car #{p 4146}#)
-                     (#{match-empty 4066}#
-                       (cdr #{p 4146}#)
-                       #{r 4147}#))
-                   (if (eq? #{p 4146}# 'each-any)
-                     (cons '() #{r 4147}#)
-                     (let ((#{atom-key 4163}# (vector-ref #{p 4146}# 0)))
-                       (if (memv #{atom-key 4163}# '(each))
-                         (#{match-empty 4066}#
-                           (vector-ref #{p 4146}# 1)
-                           #{r 4147}#)
-                         (if (memv #{atom-key 4163}# '(each+))
-                           (#{match-empty 4066}#
-                             (vector-ref #{p 4146}# 1)
-                             (#{match-empty 4066}#
-                               (reverse (vector-ref #{p 4146}# 2))
-                               (#{match-empty 4066}#
-                                 (vector-ref #{p 4146}# 3)
-                                 #{r 4147}#)))
-                           (if (memv #{atom-key 4163}# '(free-id atom))
-                             #{r 4147}#
-                             (if (memv #{atom-key 4163}# '(vector))
-                               (#{match-empty 4066}#
-                                 (vector-ref #{p 4146}# 1)
-                                 #{r 4147}#)))))))))))))
-       (#{combine 4068}#
-         (lambda (#{r* 4168}# #{r 4169}#)
-           (if (null? (car #{r* 4168}#))
-             #{r 4169}#
-             (cons (map car #{r* 4168}#)
-                   (#{combine 4068}#
-                     (map cdr #{r* 4168}#)
-                     #{r 4169}#)))))
-       (#{match* 4070}#
-         (lambda (#{e 4172}#
-                  #{p 4173}#
-                  #{w 4174}#
-                  #{r 4175}#
-                  #{mod 4176}#)
-           (if (null? #{p 4173}#)
-             (if (null? #{e 4172}#) #{r 4175}# #f)
-             (if (pair? #{p 4173}#)
-               (if (pair? #{e 4172}#)
-                 (#{match 4072}#
-                   (car #{e 4172}#)
-                   (car #{p 4173}#)
-                   #{w 4174}#
-                   (#{match 4072}#
-                     (cdr #{e 4172}#)
-                     (cdr #{p 4173}#)
-                     #{w 4174}#
-                     #{r 4175}#
-                     #{mod 4176}#)
-                   #{mod 4176}#)
-                 #f)
-               (if (eq? #{p 4173}# 'each-any)
-                 (let ((#{l 4193}#
-                         (#{match-each-any 4064}#
-                           #{e 4172}#
-                           #{w 4174}#
-                           #{mod 4176}#)))
-                   (if #{l 4193}# (cons #{l 4193}# #{r 4175}#) #f))
-                 (let ((#{atom-key 4199}# (vector-ref #{p 4173}# 0)))
-                   (if (memv #{atom-key 4199}# '(each))
-                     (if (null? #{e 4172}#)
-                       (#{match-empty 4066}#
-                         (vector-ref #{p 4173}# 1)
-                         #{r 4175}#)
-                       (let ((#{l 4202}#
-                               (#{match-each 4060}#
-                                 #{e 4172}#
-                                 (vector-ref #{p 4173}# 1)
-                                 #{w 4174}#
-                                 #{mod 4176}#)))
-                         (if #{l 4202}#
-                           (letrec*
-                             ((#{collect 4207}#
-                                (lambda (#{l 4208}#)
-                                  (if (null? (car #{l 4208}#))
-                                    #{r 4175}#
-                                    (cons (map car #{l 4208}#)
-                                          (#{collect 4207}#
-                                            (map cdr #{l 4208}#)))))))
-                             (#{collect 4207}# #{l 4202}#))
-                           #f)))
-                     (if (memv #{atom-key 4199}# '(each+))
-                       (call-with-values
-                         (lambda ()
-                           (#{match-each+ 4062}#
-                             #{e 4172}#
-                             (vector-ref #{p 4173}# 1)
-                             (vector-ref #{p 4173}# 2)
-                             (vector-ref #{p 4173}# 3)
-                             #{w 4174}#
-                             #{r 4175}#
-                             #{mod 4176}#))
-                         (lambda (#{xr* 4210}# #{y-pat 4211}# #{r 4212}#)
-                           (if #{r 4212}#
-                             (if (null? #{y-pat 4211}#)
-                               (if (null? #{xr* 4210}#)
-                                 (#{match-empty 4066}#
-                                   (vector-ref #{p 4173}# 1)
-                                   #{r 4212}#)
-                                 (#{combine 4068}# #{xr* 4210}# #{r 4212}#))
+                #f
+                "source expression failed to match any pattern"
+                #{e 3638}#))))))
+    (#{global-extend 349}#
+      'core
+      'if
+      (lambda (#{e 3684}#
+               #{r 3685}#
+               #{w 3686}#
+               #{s 3687}#
+               #{mod 3688}#)
+        (let ((#{tmp 3695}#
+                ($sc-dispatch #{e 3684}# '(_ any any))))
+          (if #{tmp 3695}#
+            (@apply
+              (lambda (#{test 3698}# #{then 3699}#)
+                (#{build-conditional 275}#
+                  #{s 3687}#
+                  (#{chi 441}#
+                    #{test 3698}#
+                    #{r 3685}#
+                    #{w 3686}#
+                    #{mod 3688}#)
+                  (#{chi 441}#
+                    #{then 3699}#
+                    #{r 3685}#
+                    #{w 3686}#
+                    #{mod 3688}#)
+                  (make-struct/no-tail
+                    (vector-ref %expanded-vtables 0)
+                    #f)))
+              #{tmp 3695}#)
+            (let ((#{tmp 3701}#
+                    ($sc-dispatch #{e 3684}# '(_ any any any))))
+              (if #{tmp 3701}#
+                (@apply
+                  (lambda (#{test 3705}# #{then 3706}# #{else 3707}#)
+                    (#{build-conditional 275}#
+                      #{s 3687}#
+                      (#{chi 441}#
+                        #{test 3705}#
+                        #{r 3685}#
+                        #{w 3686}#
+                        #{mod 3688}#)
+                      (#{chi 441}#
+                        #{then 3706}#
+                        #{r 3685}#
+                        #{w 3686}#
+                        #{mod 3688}#)
+                      (#{chi 441}#
+                        #{else 3707}#
+                        #{r 3685}#
+                        #{w 3686}#
+                        #{mod 3688}#)))
+                  #{tmp 3701}#)
+                (syntax-violation
+                  #f
+                  "source expression failed to match any pattern"
+                  #{e 3684}#)))))))
+    (#{global-extend 349}#
+      'core
+      'with-fluids
+      (lambda (#{e 3708}#
+               #{r 3709}#
+               #{w 3710}#
+               #{s 3711}#
+               #{mod 3712}#)
+        (let ((#{tmp 3719}#
+                ($sc-dispatch
+                  #{e 3708}#
+                  '(_ #(each (any any)) any . each-any))))
+          (if #{tmp 3719}#
+            (@apply
+              (lambda (#{fluid 3724}#
+                       #{val 3725}#
+                       #{b 3726}#
+                       #{b* 3727}#)
+                ((lambda (#{source 989}#
+                          #{fluids 990}#
+                          #{vals 991}#
+                          #{body 992}#)
+                   (#{make-dynlet 244}#
+                     #{source 989}#
+                     #{fluids 990}#
+                     #{vals 991}#
+                     #{body 992}#))
+                 #{s 3711}#
+                 (map (lambda (#{x 3728}#)
+                        (#{chi 441}#
+                          #{x 3728}#
+                          #{r 3709}#
+                          #{w 3710}#
+                          #{mod 3712}#))
+                      #{fluid 3724}#)
+                 (map (lambda (#{x 3731}#)
+                        (#{chi 441}#
+                          #{x 3731}#
+                          #{r 3709}#
+                          #{w 3710}#
+                          #{mod 3712}#))
+                      #{val 3725}#)
+                 (#{chi-body 449}#
+                   (cons #{b 3726}# #{b* 3727}#)
+                   (let ((#{x 9559}#
+                           (begin
+                             (if (if (pair? #{e 3708}#) #{s 3711}# #f)
+                               (set-source-properties! #{e 3708}# #{s 3711}#))
+                             #{e 3708}#)))
+                     (if (if (null? (car #{w 3710}#))
+                           (null? (cdr #{w 3710}#))
+                           #f)
+                       #{x 9559}#
+                       (if (if (vector? #{x 9559}#)
+                             (if (= (vector-length #{x 9559}#) 4)
+                               (eq? (vector-ref #{x 9559}# 0) 'syntax-object)
+                               #f)
+                             #f)
+                         (let ((#{expression 9571}# (vector-ref #{x 9559}# 1))
+                               (#{wrap 9572}#
+                                 (let ((#{w2 9580}# (vector-ref #{x 9559}# 2)))
+                                   (let ((#{m1 9581}# (car #{w 3710}#))
+                                         (#{s1 9582}# (cdr #{w 3710}#)))
+                                     (if (null? #{m1 9581}#)
+                                       (if (null? #{s1 9582}#)
+                                         #{w2 9580}#
+                                         (cons (car #{w2 9580}#)
+                                               (let ((#{m2 9589}#
+                                                       (cdr #{w2 9580}#)))
+                                                 (if (null? #{m2 9589}#)
+                                                   #{s1 9582}#
+                                                   (append
+                                                     #{s1 9582}#
+                                                     #{m2 9589}#)))))
+                                       (cons (let ((#{m2 9593}#
+                                                     (car #{w2 9580}#)))
+                                               (if (null? #{m2 9593}#)
+                                                 #{m1 9581}#
+                                                 (append
+                                                   #{m1 9581}#
+                                                   #{m2 9593}#)))
+                                             (let ((#{m2 9597}#
+                                                     (cdr #{w2 9580}#)))
+                                               (if (null? #{m2 9597}#)
+                                                 #{s1 9582}#
+                                                 (append
+                                                   #{s1 9582}#
+                                                   #{m2 9597}#))))))))
+                               (#{module 9573}# (vector-ref #{x 9559}# 3)))
+                           (vector
+                             'syntax-object
+                             #{expression 9571}#
+                             #{wrap 9572}#
+                             #{module 9573}#))
+                         (if (null? #{x 9559}#)
+                           #{x 9559}#
+                           (vector
+                             'syntax-object
+                             #{x 9559}#
+                             #{w 3710}#
+                             #{mod 3712}#)))))
+                   #{r 3709}#
+                   #{w 3710}#
+                   #{mod 3712}#)))
+              #{tmp 3719}#)
+            (syntax-violation
+              #f
+              "source expression failed to match any pattern"
+              #{e 3708}#)))))
+    (module-define!
+      (current-module)
+      'begin
+      (make-syntax-transformer 'begin 'begin '()))
+    (module-define!
+      (current-module)
+      'define
+      (make-syntax-transformer 'define 'define '()))
+    (module-define!
+      (current-module)
+      'define-syntax
+      (make-syntax-transformer
+        'define-syntax
+        'define-syntax
+        '()))
+    (module-define!
+      (current-module)
+      'eval-when
+      (make-syntax-transformer
+        'eval-when
+        'eval-when
+        '()))
+    (#{global-extend 349}#
+      'core
+      'syntax-case
+      (letrec*
+        ((#{convert-pattern 3736}#
+           (lambda (#{pattern 3743}# #{keys 3744}#)
+             (letrec*
+               ((#{cvt* 3748}#
+                  (lambda (#{p* 3753}# #{n 3754}# #{ids 3755}#)
+                    (if (not (pair? #{p* 3753}#))
+                      (#{cvt 3752}#
+                        #{p* 3753}#
+                        #{n 3754}#
+                        #{ids 3755}#)
+                      (call-with-values
+                        (lambda ()
+                          (#{cvt* 3748}#
+                            (cdr #{p* 3753}#)
+                            #{n 3754}#
+                            #{ids 3755}#))
+                        (lambda (#{y 3759}# #{ids 3760}#)
+                          (call-with-values
+                            (lambda ()
+                              (#{cvt 3752}#
+                                (car #{p* 3753}#)
+                                #{n 3754}#
+                                #{ids 3760}#))
+                            (lambda (#{x 3763}# #{ids 3764}#)
+                              (values
+                                (cons #{x 3763}# #{y 3759}#)
+                                #{ids 3764}#))))))))
+                (#{v-reverse 3750}#
+                  (lambda (#{x 3767}#)
+                    (letrec*
+                      ((#{loop 3772}#
+                         (lambda (#{r 3773}# #{x 3774}#)
+                           (if (not (pair? #{x 3774}#))
+                             (values #{r 3773}# #{x 3774}#)
+                             (#{loop 3772}#
+                               (cons (car #{x 3774}#) #{r 3773}#)
+                               (cdr #{x 3774}#))))))
+                      (#{loop 3772}# '() #{x 3767}#))))
+                (#{cvt 3752}#
+                  (lambda (#{p 3775}# #{n 3776}# #{ids 3777}#)
+                    (if (if (symbol? #{p 3775}#)
+                          #t
+                          (if (if (vector? #{p 3775}#)
+                                (if (= (vector-length #{p 3775}#) 4)
+                                  (eq? (vector-ref #{p 3775}# 0)
+                                       'syntax-object)
+                                  #f)
+                                #f)
+                            (symbol? (vector-ref #{p 3775}# 1))
+                            #f))
+                      (if (#{bound-id-member? 425}#
+                            #{p 3775}#
+                            #{keys 3744}#)
+                        (values
+                          (vector 'free-id #{p 3775}#)
+                          #{ids 3777}#)
+                        (if (#{free-id=? 417}#
+                              #{p 3775}#
+                              '#(syntax-object
+                                 _
+                                 ((top)
+                                  #(ribcage () () ())
+                                  #(ribcage
+                                    #(p n ids)
+                                    #((top) (top) (top))
+                                    #("i3778" "i3779" "i3780"))
+                                  #(ribcage
+                                    (cvt v-reverse cvt*)
+                                    ((top) (top) (top))
+                                    ("i3751" "i3749" "i3747"))
+                                  #(ribcage
+                                    #(pattern keys)
+                                    #((top) (top))
+                                    #("i3745" "i3746"))
+                                  #(ribcage
+                                    (gen-syntax-case
+                                      gen-clause
+                                      build-dispatch-call
+                                      convert-pattern)
+                                    ((top) (top) (top) (top))
+                                    ("i3741" "i3739" "i3737" "i3735"))
+                                  #(ribcage
+                                    (lambda-var-list
+                                      gen-var
+                                      strip
+                                      chi-lambda-case
+                                      lambda*-formals
+                                      chi-simple-lambda
+                                      lambda-formals
+                                      ellipsis?
+                                      chi-void
+                                      eval-local-transformer
+                                      chi-local-syntax
+                                      chi-body
+                                      chi-macro
+                                      chi-call
+                                      chi-expr
+                                      chi
+                                      syntax-type
+                                      chi-when-list
+                                      chi-install-global
+                                      chi-top-sequence
+                                      chi-sequence
+                                      source-wrap
+                                      wrap
+                                      bound-id-member?
+                                      distinct-bound-ids?
+                                      valid-bound-ids?
+                                      bound-id=?
+                                      free-id=?
+                                      id-var-name
+                                      same-marks?
+                                      join-marks
+                                      join-wraps
+                                      smart-append
+                                      make-binding-wrap
+                                      extend-ribcage!
+                                      make-empty-ribcage
+                                      new-mark
+                                      anti-mark
+                                      the-anti-mark
+                                      top-marked?
+                                      top-wrap
+                                      empty-wrap
+                                      set-ribcage-labels!
+                                      set-ribcage-marks!
+                                      set-ribcage-symnames!
+                                      ribcage-labels
+                                      ribcage-marks
+                                      ribcage-symnames
+                                      ribcage?
+                                      make-ribcage
+                                      gen-labels
+                                      gen-label
+                                      make-rename
+                                      rename-marks
+                                      rename-new
+                                      rename-old
+                                      subst-rename?
+                                      wrap-subst
+                                      wrap-marks
+                                      make-wrap
+                                      id-sym-name&marks
+                                      id-sym-name
+                                      id?
+                                      nonsymbol-id?
+                                      global-extend
+                                      lookup
+                                      macros-only-env
+                                      extend-var-env
+                                      extend-env
+                                      null-env
+                                      binding-value
+                                      binding-type
+                                      make-binding
+                                      arg-check
+                                      source-annotation
+                                      no-source
+                                      set-syntax-object-module!
+                                      set-syntax-object-wrap!
+                                      set-syntax-object-expression!
+                                      syntax-object-module
+                                      syntax-object-wrap
+                                      syntax-object-expression
+                                      syntax-object?
+                                      make-syntax-object
+                                      build-lexical-var
+                                      build-letrec
+                                      build-named-let
+                                      build-let
+                                      build-sequence
+                                      build-data
+                                      build-primref
+                                      build-primcall
+                                      build-lambda-case
+                                      build-case-lambda
+                                      build-simple-lambda
+                                      build-global-definition
+                                      build-global-assignment
+                                      build-global-reference
+                                      analyze-variable
+                                      build-lexical-assignment
+                                      build-lexical-reference
+                                      build-dynlet
+                                      build-conditional
+                                      build-call
+                                      build-void
+                                      maybe-name-value!
+                                      decorate-source
+                                      get-global-definition-hook
+                                      put-global-definition-hook
+                                      gensym-hook
+                                      local-eval-hook
+                                      top-level-eval-hook
+                                      fx<
+                                      fx=
+                                      fx-
+                                      fx+
+                                      set-lambda-meta!
+                                      lambda-meta
+                                      lambda?
+                                      make-dynlet
+                                      make-letrec
+                                      make-let
+                                      make-lambda-case
+                                      make-lambda
+                                      make-seq
+                                      make-primcall
+                                      make-call
+                                      make-conditional
+                                      make-toplevel-define
+                                      make-toplevel-set
+                                      make-toplevel-ref
+                                      make-module-set
+                                      make-module-ref
+                                      make-lexical-set
+                                      make-lexical-ref
+                                      make-primitive-ref
+                                      make-const
+                                      make-void)
+                                    ((top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top)
+                                     (top))
+                                    ("i470"
+                                     "i468"
+                                     "i466"
+                                     "i464"
+                                     "i462"
+                                     "i460"
+                                     "i458"
+                                     "i456"
+                                     "i454"
+                                     "i452"
+                                     "i450"
+                                     "i448"
+                                     "i446"
+                                     "i444"
+                                     "i442"
+                                     "i440"
+                                     "i438"
+                                     "i436"
+                                     "i434"
+                                     "i432"
+                                     "i430"
+                                     "i428"
+                                     "i426"
+                                     "i424"
+                                     "i422"
+                                     "i420"
+                                     "i418"
+                                     "i416"
+                                     "i414"
+                                     "i412"
+                                     "i410"
+                                     "i408"
+                                     "i406"
+                                     "i404"
+                                     "i402"
+                                     "i401"
+                                     "i399"
+                                     "i396"
+                                     "i395"
+                                     "i394"
+                                     "i392"
+                                     "i391"
+                                     "i389"
+                                     "i387"
+                                     "i385"
+                                     "i383"
+                                     "i381"
+                                     "i379"
+                                     "i377"
+                                     "i375"
+                                     "i372"
+                                     "i370"
+                                     "i369"
+                                     "i367"
+                                     "i365"
+                                     "i363"
+                                     "i361"
+                                     "i360"
+                                     "i359"
+                                     "i358"
+                                     "i356"
+                                     "i355"
+                                     "i352"
+                                     "i350"
+                                     "i348"
+                                     "i346"
+                                     "i344"
+                                     "i342"
+                                     "i340"
+                                     "i339"
+                                     "i338"
+                                     "i336"
+                                     "i334"
+                                     "i333"
+                                     "i330"
+                                     "i329"
+                                     "i327"
+                                     "i325"
+                                     "i323"
+                                     "i321"
+                                     "i319"
+                                     "i317"
+                                     "i315"
+                                     "i313"
+                                     "i311"
+                                     "i308"
+                                     "i306"
+                                     "i304"
+                                     "i302"
+                                     "i300"
+                                     "i298"
+                                     "i296"
+                                     "i294"
+                                     "i292"
+                                     "i290"
+                                     "i288"
+                                     "i286"
+                                     "i284"
+                                     "i282"
+                                     "i280"
+                                     "i278"
+                                     "i276"
+                                     "i274"
+                                     "i272"
+                                     "i270"
+                                     "i268"
+                                     "i266"
+                                     "i264"
+                                     "i262"
+                                     "i261"
+                                     "i258"
+                                     "i256"
+                                     "i255"
+                                     "i254"
+                                     "i253"
+                                     "i252"
+                                     "i250"
+                                     "i248"
+                                     "i246"
+                                     "i243"
+                                     "i241"
+                                     "i239"
+                                     "i237"
+                                     "i235"
+                                     "i233"
+                                     "i231"
+                                     "i229"
+                                     "i227"
+                                     "i225"
+                                     "i223"
+                                     "i221"
+                                     "i219"
+                                     "i217"
+                                     "i215"
+                                     "i213"
+                                     "i211"
+                                     "i209"
+                                     "i207"))
+                                  #(ribcage
+                                    (define-structure
+                                      define-expansion-accessors
+                                      define-expansion-constructors)
+                                    ((top) (top) (top))
+                                    ("i45" "i44" "i43")))
+                                 (hygiene guile)))
+                          (values '_ #{ids 3777}#)
+                          (values
+                            'any
+                            (cons (cons #{p 3775}# #{n 3776}#) #{ids 3777}#))))
+                      (let ((#{tmp 3787}#
+                              ($sc-dispatch #{p 3775}# '(any any))))
+                        (if (if #{tmp 3787}#
+                              (@apply
+                                (lambda (#{x 3790}# #{dots 3791}#)
+                                  (if (if (if (vector? #{dots 3791}#)
+                                            (if (= (vector-length
+                                                     #{dots 3791}#)
+                                                   4)
+                                              (eq? (vector-ref #{dots 3791}# 0)
+                                                   'syntax-object)
+                                              #f)
+                                            #f)
+                                        (symbol? (vector-ref #{dots 3791}# 1))
+                                        #f)
+                                    (#{free-id=? 417}#
+                                      #{dots 3791}#
+                                      '#(syntax-object
+                                         ...
+                                         ((top)
+                                          #(ribcage () () ())
+                                          #(ribcage () () ())
+                                          #(ribcage #(x) #((top)) #("i2262"))
+                                          #(ribcage
+                                            (lambda-var-list
+                                              gen-var
+                                              strip
+                                              chi-lambda-case
+                                              lambda*-formals
+                                              chi-simple-lambda
+                                              lambda-formals
+                                              ellipsis?
+                                              chi-void
+                                              eval-local-transformer
+                                              chi-local-syntax
+                                              chi-body
+                                              chi-macro
+                                              chi-call
+                                              chi-expr
+                                              chi
+                                              syntax-type
+                                              chi-when-list
+                                              chi-install-global
+                                              chi-top-sequence
+                                              chi-sequence
+                                              source-wrap
+                                              wrap
+                                              bound-id-member?
+                                              distinct-bound-ids?
+                                              valid-bound-ids?
+                                              bound-id=?
+                                              free-id=?
+                                              id-var-name
+                                              same-marks?
+                                              join-marks
+                                              join-wraps
+                                              smart-append
+                                              make-binding-wrap
+                                              extend-ribcage!
+                                              make-empty-ribcage
+                                              new-mark
+                                              anti-mark
+                                              the-anti-mark
+                                              top-marked?
+                                              top-wrap
+                                              empty-wrap
+                                              set-ribcage-labels!
+                                              set-ribcage-marks!
+                                              set-ribcage-symnames!
+                                              ribcage-labels
+                                              ribcage-marks
+                                              ribcage-symnames
+                                              ribcage?
+                                              make-ribcage
+                                              gen-labels
+                                              gen-label
+                                              make-rename
+                                              rename-marks
+                                              rename-new
+                                              rename-old
+                                              subst-rename?
+                                              wrap-subst
+                                              wrap-marks
+                                              make-wrap
+                                              id-sym-name&marks
+                                              id-sym-name
+                                              id?
+                                              nonsymbol-id?
+                                              global-extend
+                                              lookup
+                                              macros-only-env
+                                              extend-var-env
+                                              extend-env
+                                              null-env
+                                              binding-value
+                                              binding-type
+                                              make-binding
+                                              arg-check
+                                              source-annotation
+                                              no-source
+                                              set-syntax-object-module!
+                                              set-syntax-object-wrap!
+                                              set-syntax-object-expression!
+                                              syntax-object-module
+                                              syntax-object-wrap
+                                              syntax-object-expression
+                                              syntax-object?
+                                              make-syntax-object
+                                              build-lexical-var
+                                              build-letrec
+                                              build-named-let
+                                              build-let
+                                              build-sequence
+                                              build-data
+                                              build-primref
+                                              build-primcall
+                                              build-lambda-case
+                                              build-case-lambda
+                                              build-simple-lambda
+                                              build-global-definition
+                                              build-global-assignment
+                                              build-global-reference
+                                              analyze-variable
+                                              build-lexical-assignment
+                                              build-lexical-reference
+                                              build-dynlet
+                                              build-conditional
+                                              build-call
+                                              build-void
+                                              maybe-name-value!
+                                              decorate-source
+                                              get-global-definition-hook
+                                              put-global-definition-hook
+                                              gensym-hook
+                                              local-eval-hook
+                                              top-level-eval-hook
+                                              fx<
+                                              fx=
+                                              fx-
+                                              fx+
+                                              set-lambda-meta!
+                                              lambda-meta
+                                              lambda?
+                                              make-dynlet
+                                              make-letrec
+                                              make-let
+                                              make-lambda-case
+                                              make-lambda
+                                              make-seq
+                                              make-primcall
+                                              make-call
+                                              make-conditional
+                                              make-toplevel-define
+                                              make-toplevel-set
+                                              make-toplevel-ref
+                                              make-module-set
+                                              make-module-ref
+                                              make-lexical-set
+                                              make-lexical-ref
+                                              make-primitive-ref
+                                              make-const
+                                              make-void)
+                                            ((top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top))
+                                            ("i470"
+                                             "i468"
+                                             "i466"
+                                             "i464"
+                                             "i462"
+                                             "i460"
+                                             "i458"
+                                             "i456"
+                                             "i454"
+                                             "i452"
+                                             "i450"
+                                             "i448"
+                                             "i446"
+                                             "i444"
+                                             "i442"
+                                             "i440"
+                                             "i438"
+                                             "i436"
+                                             "i434"
+                                             "i432"
+                                             "i430"
+                                             "i428"
+                                             "i426"
+                                             "i424"
+                                             "i422"
+                                             "i420"
+                                             "i418"
+                                             "i416"
+                                             "i414"
+                                             "i412"
+                                             "i410"
+                                             "i408"
+                                             "i406"
+                                             "i404"
+                                             "i402"
+                                             "i401"
+                                             "i399"
+                                             "i396"
+                                             "i395"
+                                             "i394"
+                                             "i392"
+                                             "i391"
+                                             "i389"
+                                             "i387"
+                                             "i385"
+                                             "i383"
+                                             "i381"
+                                             "i379"
+                                             "i377"
+                                             "i375"
+                                             "i372"
+                                             "i370"
+                                             "i369"
+                                             "i367"
+                                             "i365"
+                                             "i363"
+                                             "i361"
+                                             "i360"
+                                             "i359"
+                                             "i358"
+                                             "i356"
+                                             "i355"
+                                             "i352"
+                                             "i350"
+                                             "i348"
+                                             "i346"
+                                             "i344"
+                                             "i342"
+                                             "i340"
+                                             "i339"
+                                             "i338"
+                                             "i336"
+                                             "i334"
+                                             "i333"
+                                             "i330"
+                                             "i329"
+                                             "i327"
+                                             "i325"
+                                             "i323"
+                                             "i321"
+                                             "i319"
+                                             "i317"
+                                             "i315"
+                                             "i313"
+                                             "i311"
+                                             "i308"
+                                             "i306"
+                                             "i304"
+                                             "i302"
+                                             "i300"
+                                             "i298"
+                                             "i296"
+                                             "i294"
+                                             "i292"
+                                             "i290"
+                                             "i288"
+                                             "i286"
+                                             "i284"
+                                             "i282"
+                                             "i280"
+                                             "i278"
+                                             "i276"
+                                             "i274"
+                                             "i272"
+                                             "i270"
+                                             "i268"
+                                             "i266"
+                                             "i264"
+                                             "i262"
+                                             "i261"
+                                             "i258"
+                                             "i256"
+                                             "i255"
+                                             "i254"
+                                             "i253"
+                                             "i252"
+                                             "i250"
+                                             "i248"
+                                             "i246"
+                                             "i243"
+                                             "i241"
+                                             "i239"
+                                             "i237"
+                                             "i235"
+                                             "i233"
+                                             "i231"
+                                             "i229"
+                                             "i227"
+                                             "i225"
+                                             "i223"
+                                             "i221"
+                                             "i219"
+                                             "i217"
+                                             "i215"
+                                             "i213"
+                                             "i211"
+                                             "i209"
+                                             "i207"))
+                                          #(ribcage
+                                            (define-structure
+                                              define-expansion-accessors
+                                              define-expansion-constructors)
+                                            ((top) (top) (top))
+                                            ("i45" "i44" "i43")))
+                                         (hygiene guile)))
+                                    #f))
+                                #{tmp 3787}#)
+                              #f)
+                          (@apply
+                            (lambda (#{x 3794}# #{dots 3795}#)
+                              (call-with-values
+                                (lambda ()
+                                  (#{cvt 3752}#
+                                    #{x 3794}#
+                                    (#{1+}# #{n 3776}#)
+                                    #{ids 3777}#))
+                                (lambda (#{p 3797}# #{ids 3798}#)
+                                  (values
+                                    (if (eq? #{p 3797}# 'any)
+                                      'each-any
+                                      (vector 'each #{p 3797}#))
+                                    #{ids 3798}#))))
+                            #{tmp 3787}#)
+                          (let ((#{tmp 3801}#
+                                  ($sc-dispatch #{p 3775}# '(any any . any))))
+                            (if (if #{tmp 3801}#
+                                  (@apply
+                                    (lambda (#{x 3805}#
+                                             #{dots 3806}#
+                                             #{ys 3807}#)
+                                      (if (if (if (vector? #{dots 3806}#)
+                                                (if (= (vector-length
+                                                         #{dots 3806}#)
+                                                       4)
+                                                  (eq? (vector-ref
+                                                         #{dots 3806}#
+                                                         0)
+                                                       'syntax-object)
+                                                  #f)
+                                                #f)
+                                            (symbol?
+                                              (vector-ref #{dots 3806}# 1))
+                                            #f)
+                                        (#{free-id=? 417}#
+                                          #{dots 3806}#
+                                          '#(syntax-object
+                                             ...
+                                             ((top)
+                                              #(ribcage () () ())
+                                              #(ribcage () () ())
+                                              #(ribcage
+                                                #(x)
+                                                #((top))
+                                                #("i2262"))
+                                              #(ribcage
+                                                (lambda-var-list
+                                                  gen-var
+                                                  strip
+                                                  chi-lambda-case
+                                                  lambda*-formals
+                                                  chi-simple-lambda
+                                                  lambda-formals
+                                                  ellipsis?
+                                                  chi-void
+                                                  eval-local-transformer
+                                                  chi-local-syntax
+                                                  chi-body
+                                                  chi-macro
+                                                  chi-call
+                                                  chi-expr
+                                                  chi
+                                                  syntax-type
+                                                  chi-when-list
+                                                  chi-install-global
+                                                  chi-top-sequence
+                                                  chi-sequence
+                                                  source-wrap
+                                                  wrap
+                                                  bound-id-member?
+                                                  distinct-bound-ids?
+                                                  valid-bound-ids?
+                                                  bound-id=?
+                                                  free-id=?
+                                                  id-var-name
+                                                  same-marks?
+                                                  join-marks
+                                                  join-wraps
+                                                  smart-append
+                                                  make-binding-wrap
+                                                  extend-ribcage!
+                                                  make-empty-ribcage
+                                                  new-mark
+                                                  anti-mark
+                                                  the-anti-mark
+                                                  top-marked?
+                                                  top-wrap
+                                                  empty-wrap
+                                                  set-ribcage-labels!
+                                                  set-ribcage-marks!
+                                                  set-ribcage-symnames!
+                                                  ribcage-labels
+                                                  ribcage-marks
+                                                  ribcage-symnames
+                                                  ribcage?
+                                                  make-ribcage
+                                                  gen-labels
+                                                  gen-label
+                                                  make-rename
+                                                  rename-marks
+                                                  rename-new
+                                                  rename-old
+                                                  subst-rename?
+                                                  wrap-subst
+                                                  wrap-marks
+                                                  make-wrap
+                                                  id-sym-name&marks
+                                                  id-sym-name
+                                                  id?
+                                                  nonsymbol-id?
+                                                  global-extend
+                                                  lookup
+                                                  macros-only-env
+                                                  extend-var-env
+                                                  extend-env
+                                                  null-env
+                                                  binding-value
+                                                  binding-type
+                                                  make-binding
+                                                  arg-check
+                                                  source-annotation
+                                                  no-source
+                                                  set-syntax-object-module!
+                                                  set-syntax-object-wrap!
+                                                  set-syntax-object-expression!
+                                                  syntax-object-module
+                                                  syntax-object-wrap
+                                                  syntax-object-expression
+                                                  syntax-object?
+                                                  make-syntax-object
+                                                  build-lexical-var
+                                                  build-letrec
+                                                  build-named-let
+                                                  build-let
+                                                  build-sequence
+                                                  build-data
+                                                  build-primref
+                                                  build-primcall
+                                                  build-lambda-case
+                                                  build-case-lambda
+                                                  build-simple-lambda
+                                                  build-global-definition
+                                                  build-global-assignment
+                                                  build-global-reference
+                                                  analyze-variable
+                                                  build-lexical-assignment
+                                                  build-lexical-reference
+                                                  build-dynlet
+                                                  build-conditional
+                                                  build-call
+                                                  build-void
+                                                  maybe-name-value!
+                                                  decorate-source
+                                                  get-global-definition-hook
+                                                  put-global-definition-hook
+                                                  gensym-hook
+                                                  local-eval-hook
+                                                  top-level-eval-hook
+                                                  fx<
+                                                  fx=
+                                                  fx-
+                                                  fx+
+                                                  set-lambda-meta!
+                                                  lambda-meta
+                                                  lambda?
+                                                  make-dynlet
+                                                  make-letrec
+                                                  make-let
+                                                  make-lambda-case
+                                                  make-lambda
+                                                  make-seq
+                                                  make-primcall
+                                                  make-call
+                                                  make-conditional
+                                                  make-toplevel-define
+                                                  make-toplevel-set
+                                                  make-toplevel-ref
+                                                  make-module-set
+                                                  make-module-ref
+                                                  make-lexical-set
+                                                  make-lexical-ref
+                                                  make-primitive-ref
+                                                  make-const
+                                                  make-void)
+                                                ((top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top)
+                                                 (top))
+                                                ("i470"
+                                                 "i468"
+                                                 "i466"
+                                                 "i464"
+                                                 "i462"
+                                                 "i460"
+                                                 "i458"
+                                                 "i456"
+                                                 "i454"
+                                                 "i452"
+                                                 "i450"
+                                                 "i448"
+                                                 "i446"
+                                                 "i444"
+                                                 "i442"
+                                                 "i440"
+                                                 "i438"
+                                                 "i436"
+                                                 "i434"
+                                                 "i432"
+                                                 "i430"
+                                                 "i428"
+                                                 "i426"
+                                                 "i424"
+                                                 "i422"
+                                                 "i420"
+                                                 "i418"
+                                                 "i416"
+                                                 "i414"
+                                                 "i412"
+                                                 "i410"
+                                                 "i408"
+                                                 "i406"
+                                                 "i404"
+                                                 "i402"
+                                                 "i401"
+                                                 "i399"
+                                                 "i396"
+                                                 "i395"
+                                                 "i394"
+                                                 "i392"
+                                                 "i391"
+                                                 "i389"
+                                                 "i387"
+                                                 "i385"
+                                                 "i383"
+                                                 "i381"
+                                                 "i379"
+                                                 "i377"
+                                                 "i375"
+                                                 "i372"
+                                                 "i370"
+                                                 "i369"
+                                                 "i367"
+                                                 "i365"
+                                                 "i363"
+                                                 "i361"
+                                                 "i360"
+                                                 "i359"
+                                                 "i358"
+                                                 "i356"
+                                                 "i355"
+                                                 "i352"
+                                                 "i350"
+                                                 "i348"
+                                                 "i346"
+                                                 "i344"
+                                                 "i342"
+                                                 "i340"
+                                                 "i339"
+                                                 "i338"
+                                                 "i336"
+                                                 "i334"
+                                                 "i333"
+                                                 "i330"
+                                                 "i329"
+                                                 "i327"
+                                                 "i325"
+                                                 "i323"
+                                                 "i321"
+                                                 "i319"
+                                                 "i317"
+                                                 "i315"
+                                                 "i313"
+                                                 "i311"
+                                                 "i308"
+                                                 "i306"
+                                                 "i304"
+                                                 "i302"
+                                                 "i300"
+                                                 "i298"
+                                                 "i296"
+                                                 "i294"
+                                                 "i292"
+                                                 "i290"
+                                                 "i288"
+                                                 "i286"
+                                                 "i284"
+                                                 "i282"
+                                                 "i280"
+                                                 "i278"
+                                                 "i276"
+                                                 "i274"
+                                                 "i272"
+                                                 "i270"
+                                                 "i268"
+                                                 "i266"
+                                                 "i264"
+                                                 "i262"
+                                                 "i261"
+                                                 "i258"
+                                                 "i256"
+                                                 "i255"
+                                                 "i254"
+                                                 "i253"
+                                                 "i252"
+                                                 "i250"
+                                                 "i248"
+                                                 "i246"
+                                                 "i243"
+                                                 "i241"
+                                                 "i239"
+                                                 "i237"
+                                                 "i235"
+                                                 "i233"
+                                                 "i231"
+                                                 "i229"
+                                                 "i227"
+                                                 "i225"
+                                                 "i223"
+                                                 "i221"
+                                                 "i219"
+                                                 "i217"
+                                                 "i215"
+                                                 "i213"
+                                                 "i211"
+                                                 "i209"
+                                                 "i207"))
+                                              #(ribcage
+                                                (define-structure
+                                                  define-expansion-accessors
+                                                  
define-expansion-constructors)
+                                                ((top) (top) (top))
+                                                ("i45" "i44" "i43")))
+                                             (hygiene guile)))
+                                        #f))
+                                    #{tmp 3801}#)
+                                  #f)
+                              (@apply
+                                (lambda (#{x 3811}# #{dots 3812}# #{ys 3813}#)
+                                  (call-with-values
+                                    (lambda ()
+                                      (#{cvt* 3748}#
+                                        #{ys 3813}#
+                                        #{n 3776}#
+                                        #{ids 3777}#))
+                                    (lambda (#{ys 3814}# #{ids 3815}#)
+                                      (call-with-values
+                                        (lambda ()
+                                          (#{cvt 3752}#
+                                            #{x 3811}#
+                                            (#{1+}# #{n 3776}#)
+                                            #{ids 3815}#))
+                                        (lambda (#{x 3818}# #{ids 3819}#)
+                                          (call-with-values
+                                            (lambda ()
+                                              (#{v-reverse 3750}# #{ys 3814}#))
+                                            (lambda (#{ys 3822}# #{e 3823}#)
+                                              (values
+                                                (vector
+                                                  'each+
+                                                  #{x 3818}#
+                                                  #{ys 3822}#
+                                                  #{e 3823}#)
+                                                #{ids 3819}#))))))))
+                                #{tmp 3801}#)
+                              (let ((#{tmp 3827}#
+                                      ($sc-dispatch #{p 3775}# '(any . any))))
+                                (if #{tmp 3827}#
+                                  (@apply
+                                    (lambda (#{x 3830}# #{y 3831}#)
+                                      (call-with-values
+                                        (lambda ()
+                                          (#{cvt 3752}#
+                                            #{y 3831}#
+                                            #{n 3776}#
+                                            #{ids 3777}#))
+                                        (lambda (#{y 3832}# #{ids 3833}#)
+                                          (call-with-values
+                                            (lambda ()
+                                              (#{cvt 3752}#
+                                                #{x 3830}#
+                                                #{n 3776}#
+                                                #{ids 3833}#))
+                                            (lambda (#{x 3836}# #{ids 3837}#)
+                                              (values
+                                                (cons #{x 3836}# #{y 3832}#)
+                                                #{ids 3837}#))))))
+                                    #{tmp 3827}#)
+                                  (let ((#{tmp 3840}#
+                                          ($sc-dispatch #{p 3775}# '())))
+                                    (if #{tmp 3840}#
+                                      (@apply
+                                        (lambda () (values '() #{ids 3777}#))
+                                        #{tmp 3840}#)
+                                      (let ((#{tmp 3841}#
+                                              ($sc-dispatch
+                                                #{p 3775}#
+                                                '#(vector each-any))))
+                                        (if #{tmp 3841}#
+                                          (@apply
+                                            (lambda (#{x 3843}#)
+                                              (call-with-values
+                                                (lambda ()
+                                                  (#{cvt 3752}#
+                                                    #{x 3843}#
+                                                    #{n 3776}#
+                                                    #{ids 3777}#))
+                                                (lambda (#{p 3845}#
+                                                         #{ids 3846}#)
+                                                  (values
+                                                    (vector 'vector #{p 3845}#)
+                                                    #{ids 3846}#))))
+                                            #{tmp 3841}#)
+                                          (values
+                                            (vector
+                                              'atom
+                                              (#{strip 467}# #{p 3775}# '(())))
+                                            #{ids 3777}#)))))))))))))))
+               (#{cvt 3752}# #{pattern 3743}# 0 '()))))
+         (#{build-dispatch-call 3738}#
+           (lambda (#{pvars 3852}#
+                    #{exp 3853}#
+                    #{y 3854}#
+                    #{r 3855}#
+                    #{mod 3856}#)
+             (let ((#{ids 3864}# (map car #{pvars 3852}#)))
+               (begin
+                 (map cdr #{pvars 3852}#)
+                 (let ((#{labels 3868}#
+                         (#{gen-labels 373}# #{ids 3864}#))
+                       (#{new-vars 3869}#
+                         (map #{gen-var 469}# #{ids 3864}#)))
+                   (#{build-primcall 297}#
+                     #f
+                     'apply
+                     (list (#{build-simple-lambda 291}#
+                             #f
+                             (map syntax->datum #{ids 3864}#)
+                             #f
+                             #{new-vars 3869}#
+                             '()
+                             (#{chi 441}#
+                               #{exp 3853}#
+                               (#{extend-env 341}#
+                                 #{labels 3868}#
+                                 (map (lambda (#{var 3872}# #{level 3873}#)
+                                        (cons 'syntax
+                                              (cons #{var 3872}#
+                                                    #{level 3873}#)))
+                                      #{new-vars 3869}#
+                                      (map cdr #{pvars 3852}#))
+                                 #{r 3855}#)
+                               (#{make-binding-wrap 405}#
+                                 #{ids 3864}#
+                                 #{labels 3868}#
+                                 '(()))
+                               #{mod 3856}#))
+                           #{y 3854}#)))))))
+         (#{gen-clause 3740}#
+           (lambda (#{x 3879}#
+                    #{keys 3880}#
+                    #{clauses 3881}#
+                    #{r 3882}#
+                    #{pat 3883}#
+                    #{fender 3884}#
+                    #{exp 3885}#
+                    #{mod 3886}#)
+             (call-with-values
+               (lambda ()
+                 (#{convert-pattern 3736}#
+                   #{pat 3883}#
+                   #{keys 3880}#))
+               (lambda (#{p 3895}# #{pvars 3896}#)
+                 (if (not (#{distinct-bound-ids? 423}#
+                            (map car #{pvars 3896}#)))
+                   (syntax-violation
+                     'syntax-case
+                     "duplicate pattern variable"
+                     #{pat 3883}#)
+                   (if (not (and-map
+                              (lambda (#{x 3903}#)
+                                (not (let ((#{x 10293}# (car #{x 3903}#)))
+                                       (if (if (if (vector? #{x 10293}#)
+                                                 (if (= (vector-length
+                                                          #{x 10293}#)
+                                                        4)
+                                                   (eq? (vector-ref
+                                                          #{x 10293}#
+                                                          0)
+                                                        'syntax-object)
+                                                   #f)
+                                                 #f)
+                                             (symbol?
+                                               (vector-ref #{x 10293}# 1))
+                                             #f)
+                                         (#{free-id=? 417}#
+                                           #{x 10293}#
+                                           '#(syntax-object
+                                              ...
+                                              ((top)
+                                               #(ribcage () () ())
+                                               #(ribcage () () ())
+                                               #(ribcage
+                                                 #(x)
+                                                 #((top))
+                                                 #("i2262"))
+                                               #(ribcage
+                                                 (lambda-var-list
+                                                   gen-var
+                                                   strip
+                                                   chi-lambda-case
+                                                   lambda*-formals
+                                                   chi-simple-lambda
+                                                   lambda-formals
+                                                   ellipsis?
+                                                   chi-void
+                                                   eval-local-transformer
+                                                   chi-local-syntax
+                                                   chi-body
+                                                   chi-macro
+                                                   chi-call
+                                                   chi-expr
+                                                   chi
+                                                   syntax-type
+                                                   chi-when-list
+                                                   chi-install-global
+                                                   chi-top-sequence
+                                                   chi-sequence
+                                                   source-wrap
+                                                   wrap
+                                                   bound-id-member?
+                                                   distinct-bound-ids?
+                                                   valid-bound-ids?
+                                                   bound-id=?
+                                                   free-id=?
+                                                   id-var-name
+                                                   same-marks?
+                                                   join-marks
+                                                   join-wraps
+                                                   smart-append
+                                                   make-binding-wrap
+                                                   extend-ribcage!
+                                                   make-empty-ribcage
+                                                   new-mark
+                                                   anti-mark
+                                                   the-anti-mark
+                                                   top-marked?
+                                                   top-wrap
+                                                   empty-wrap
+                                                   set-ribcage-labels!
+                                                   set-ribcage-marks!
+                                                   set-ribcage-symnames!
+                                                   ribcage-labels
+                                                   ribcage-marks
+                                                   ribcage-symnames
+                                                   ribcage?
+                                                   make-ribcage
+                                                   gen-labels
+                                                   gen-label
+                                                   make-rename
+                                                   rename-marks
+                                                   rename-new
+                                                   rename-old
+                                                   subst-rename?
+                                                   wrap-subst
+                                                   wrap-marks
+                                                   make-wrap
+                                                   id-sym-name&marks
+                                                   id-sym-name
+                                                   id?
+                                                   nonsymbol-id?
+                                                   global-extend
+                                                   lookup
+                                                   macros-only-env
+                                                   extend-var-env
+                                                   extend-env
+                                                   null-env
+                                                   binding-value
+                                                   binding-type
+                                                   make-binding
+                                                   arg-check
+                                                   source-annotation
+                                                   no-source
+                                                   set-syntax-object-module!
+                                                   set-syntax-object-wrap!
+                                                   
set-syntax-object-expression!
+                                                   syntax-object-module
+                                                   syntax-object-wrap
+                                                   syntax-object-expression
+                                                   syntax-object?
+                                                   make-syntax-object
+                                                   build-lexical-var
+                                                   build-letrec
+                                                   build-named-let
+                                                   build-let
+                                                   build-sequence
+                                                   build-data
+                                                   build-primref
+                                                   build-primcall
+                                                   build-lambda-case
+                                                   build-case-lambda
+                                                   build-simple-lambda
+                                                   build-global-definition
+                                                   build-global-assignment
+                                                   build-global-reference
+                                                   analyze-variable
+                                                   build-lexical-assignment
+                                                   build-lexical-reference
+                                                   build-dynlet
+                                                   build-conditional
+                                                   build-call
+                                                   build-void
+                                                   maybe-name-value!
+                                                   decorate-source
+                                                   get-global-definition-hook
+                                                   put-global-definition-hook
+                                                   gensym-hook
+                                                   local-eval-hook
+                                                   top-level-eval-hook
+                                                   fx<
+                                                   fx=
+                                                   fx-
+                                                   fx+
+                                                   set-lambda-meta!
+                                                   lambda-meta
+                                                   lambda?
+                                                   make-dynlet
+                                                   make-letrec
+                                                   make-let
+                                                   make-lambda-case
+                                                   make-lambda
+                                                   make-seq
+                                                   make-primcall
+                                                   make-call
+                                                   make-conditional
+                                                   make-toplevel-define
+                                                   make-toplevel-set
+                                                   make-toplevel-ref
+                                                   make-module-set
+                                                   make-module-ref
+                                                   make-lexical-set
+                                                   make-lexical-ref
+                                                   make-primitive-ref
+                                                   make-const
+                                                   make-void)
+                                                 ((top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top))
+                                                 ("i470"
+                                                  "i468"
+                                                  "i466"
+                                                  "i464"
+                                                  "i462"
+                                                  "i460"
+                                                  "i458"
+                                                  "i456"
+                                                  "i454"
+                                                  "i452"
+                                                  "i450"
+                                                  "i448"
+                                                  "i446"
+                                                  "i444"
+                                                  "i442"
+                                                  "i440"
+                                                  "i438"
+                                                  "i436"
+                                                  "i434"
+                                                  "i432"
+                                                  "i430"
+                                                  "i428"
+                                                  "i426"
+                                                  "i424"
+                                                  "i422"
+                                                  "i420"
+                                                  "i418"
+                                                  "i416"
+                                                  "i414"
+                                                  "i412"
+                                                  "i410"
+                                                  "i408"
+                                                  "i406"
+                                                  "i404"
+                                                  "i402"
+                                                  "i401"
+                                                  "i399"
+                                                  "i396"
+                                                  "i395"
+                                                  "i394"
+                                                  "i392"
+                                                  "i391"
+                                                  "i389"
+                                                  "i387"
+                                                  "i385"
+                                                  "i383"
+                                                  "i381"
+                                                  "i379"
+                                                  "i377"
+                                                  "i375"
+                                                  "i372"
+                                                  "i370"
+                                                  "i369"
+                                                  "i367"
+                                                  "i365"
+                                                  "i363"
+                                                  "i361"
+                                                  "i360"
+                                                  "i359"
+                                                  "i358"
+                                                  "i356"
+                                                  "i355"
+                                                  "i352"
+                                                  "i350"
+                                                  "i348"
+                                                  "i346"
+                                                  "i344"
+                                                  "i342"
+                                                  "i340"
+                                                  "i339"
+                                                  "i338"
+                                                  "i336"
+                                                  "i334"
+                                                  "i333"
+                                                  "i330"
+                                                  "i329"
+                                                  "i327"
+                                                  "i325"
+                                                  "i323"
+                                                  "i321"
+                                                  "i319"
+                                                  "i317"
+                                                  "i315"
+                                                  "i313"
+                                                  "i311"
+                                                  "i308"
+                                                  "i306"
+                                                  "i304"
+                                                  "i302"
+                                                  "i300"
+                                                  "i298"
+                                                  "i296"
+                                                  "i294"
+                                                  "i292"
+                                                  "i290"
+                                                  "i288"
+                                                  "i286"
+                                                  "i284"
+                                                  "i282"
+                                                  "i280"
+                                                  "i278"
+                                                  "i276"
+                                                  "i274"
+                                                  "i272"
+                                                  "i270"
+                                                  "i268"
+                                                  "i266"
+                                                  "i264"
+                                                  "i262"
+                                                  "i261"
+                                                  "i258"
+                                                  "i256"
+                                                  "i255"
+                                                  "i254"
+                                                  "i253"
+                                                  "i252"
+                                                  "i250"
+                                                  "i248"
+                                                  "i246"
+                                                  "i243"
+                                                  "i241"
+                                                  "i239"
+                                                  "i237"
+                                                  "i235"
+                                                  "i233"
+                                                  "i231"
+                                                  "i229"
+                                                  "i227"
+                                                  "i225"
+                                                  "i223"
+                                                  "i221"
+                                                  "i219"
+                                                  "i217"
+                                                  "i215"
+                                                  "i213"
+                                                  "i211"
+                                                  "i209"
+                                                  "i207"))
+                                               #(ribcage
+                                                 (define-structure
+                                                   define-expansion-accessors
+                                                   
define-expansion-constructors)
+                                                 ((top) (top) (top))
+                                                 ("i45" "i44" "i43")))
+                                              (hygiene guile)))
+                                         #f))))
+                              #{pvars 3896}#))
+                     (syntax-violation
+                       'syntax-case
+                       "misplaced ellipsis"
+                       #{pat 3883}#)
+                     (let ((#{y 3907}#
+                             (gensym
+                               (string-append (symbol->string 'tmp) " "))))
+                       (let ((#{fun-exp 10315}#
+                               (let ((#{req 10320}# (list 'tmp))
+                                     (#{vars 10322}# (list #{y 3907}#))
+                                     (#{exp 10324}#
+                                       (let ((#{y 3911}#
+                                               (make-struct/no-tail
+                                                 (vector-ref
+                                                   %expanded-vtables
+                                                   3)
+                                                 #f
+                                                 'tmp
+                                                 #{y 3907}#)))
+                                         (let ((#{test-exp 10339}#
+                                                 (let ((#{tmp 3915}#
+                                                         ($sc-dispatch
+                                                           #{fender 3884}#
+                                                           '#(atom #t))))
+                                                   (if #{tmp 3915}#
+                                                     (@apply
+                                                       (lambda () #{y 3911}#)
+                                                       #{tmp 3915}#)
+                                                     (let ((#{then-exp 10346}#
+                                                             
(#{build-dispatch-call 3738}#
+                                                               #{pvars 3896}#
+                                                               #{fender 3884}#
+                                                               #{y 3911}#
+                                                               #{r 3882}#
+                                                               #{mod 3886}#))
+                                                           (#{else-exp 10347}#
+                                                             
(make-struct/no-tail
+                                                               (vector-ref
+                                                                 
%expanded-vtables
+                                                                 1)
+                                                               #f
+                                                               #f)))
+                                                       (make-struct/no-tail
+                                                         (vector-ref
+                                                           %expanded-vtables
+                                                           10)
+                                                         #f
+                                                         #{y 3911}#
+                                                         #{then-exp 10346}#
+                                                         #{else-exp 
10347}#)))))
+                                               (#{then-exp 10340}#
+                                                 (#{build-dispatch-call 3738}#
+                                                   #{pvars 3896}#
+                                                   #{exp 3885}#
+                                                   #{y 3911}#
+                                                   #{r 3882}#
+                                                   #{mod 3886}#))
+                                               (#{else-exp 10341}#
+                                                 (#{gen-syntax-case 3742}#
+                                                   #{x 3879}#
+                                                   #{keys 3880}#
+                                                   #{clauses 3881}#
+                                                   #{r 3882}#
+                                                   #{mod 3886}#)))
+                                           (make-struct/no-tail
+                                             (vector-ref %expanded-vtables 10)
+                                             #f
+                                             #{test-exp 10339}#
+                                             #{then-exp 10340}#
+                                             #{else-exp 10341}#)))))
+                                 (let ((#{body 10372}#
+                                         (make-struct/no-tail
+                                           (vector-ref %expanded-vtables 15)
+                                           #f
+                                           #{req 10320}#
+                                           #f
+                                           #f
+                                           #f
+                                           '()
+                                           #{vars 10322}#
+                                           #{exp 10324}#
+                                           #f)))
+                                   (make-struct/no-tail
+                                     (vector-ref %expanded-vtables 14)
+                                     #f
+                                     '()
+                                     #{body 10372}#))))
+                             (#{arg-exps 10316}#
+                               (list (if (eq? #{p 3895}# 'any)
+                                       (let ((#{args 10388}#
+                                               (list #{x 3879}#)))
+                                         (make-struct/no-tail
+                                           (vector-ref %expanded-vtables 12)
+                                           #f
+                                           'list
+                                           #{args 10388}#))
+                                       (let ((#{args 10398}#
+                                               (list #{x 3879}#
+                                                     (make-struct/no-tail
+                                                       (vector-ref
+                                                         %expanded-vtables
+                                                         1)
+                                                       #f
+                                                       #{p 3895}#))))
+                                         (make-struct/no-tail
+                                           (vector-ref %expanded-vtables 12)
+                                           #f
+                                           '$sc-dispatch
+                                           #{args 10398}#))))))
+                         (make-struct/no-tail
+                           (vector-ref %expanded-vtables 11)
+                           #f
+                           #{fun-exp 10315}#
+                           #{arg-exps 10316}#)))))))))
+         (#{gen-syntax-case 3742}#
+           (lambda (#{x 3923}#
+                    #{keys 3924}#
+                    #{clauses 3925}#
+                    #{r 3926}#
+                    #{mod 3927}#)
+             (if (null? #{clauses 3925}#)
+               (let ((#{args 10421}#
+                       (list (make-struct/no-tail
+                               (vector-ref %expanded-vtables 1)
+                               #f
+                               #f)
+                             (make-struct/no-tail
+                               (vector-ref %expanded-vtables 1)
+                               #f
+                               "source expression failed to match any pattern")
+                             #{x 3923}#)))
+                 (make-struct/no-tail
+                   (vector-ref %expanded-vtables 12)
+                   #f
+                   'syntax-violation
+                   #{args 10421}#))
+               (let ((#{tmp 3936}# (car #{clauses 3925}#)))
+                 (let ((#{tmp 3937}#
+                         ($sc-dispatch #{tmp 3936}# '(any any))))
+                   (if #{tmp 3937}#
+                     (@apply
+                       (lambda (#{pat 3940}# #{exp 3941}#)
+                         (if (if (if (symbol? #{pat 3940}#)
+                                   #t
+                                   (if (if (vector? #{pat 3940}#)
+                                         (if (= (vector-length #{pat 3940}#) 4)
+                                           (eq? (vector-ref #{pat 3940}# 0)
+                                                'syntax-object)
+                                           #f)
+                                         #f)
+                                     (symbol? (vector-ref #{pat 3940}# 1))
+                                     #f))
+                               (and-map
+                                 (lambda (#{x 3944}#)
+                                   (not (#{free-id=? 417}#
+                                          #{pat 3940}#
+                                          #{x 3944}#)))
+                                 (cons '#(syntax-object
+                                          ...
+                                          ((top)
+                                           #(ribcage
+                                             #(pat exp)
+                                             #((top) (top))
+                                             #("i3938" "i3939"))
+                                           #(ribcage () () ())
+                                           #(ribcage
+                                             #(x keys clauses r mod)
+                                             #((top) (top) (top) (top) (top))
+                                             #("i3928"
+                                               "i3929"
+                                               "i3930"
+                                               "i3931"
+                                               "i3932"))
+                                           #(ribcage
+                                             (gen-syntax-case
+                                               gen-clause
+                                               build-dispatch-call
+                                               convert-pattern)
+                                             ((top) (top) (top) (top))
+                                             ("i3741" "i3739" "i3737" "i3735"))
+                                           #(ribcage
+                                             (lambda-var-list
+                                               gen-var
+                                               strip
+                                               chi-lambda-case
+                                               lambda*-formals
+                                               chi-simple-lambda
+                                               lambda-formals
+                                               ellipsis?
+                                               chi-void
+                                               eval-local-transformer
+                                               chi-local-syntax
+                                               chi-body
+                                               chi-macro
+                                               chi-call
+                                               chi-expr
+                                               chi
+                                               syntax-type
+                                               chi-when-list
+                                               chi-install-global
+                                               chi-top-sequence
+                                               chi-sequence
+                                               source-wrap
+                                               wrap
+                                               bound-id-member?
+                                               distinct-bound-ids?
+                                               valid-bound-ids?
+                                               bound-id=?
+                                               free-id=?
+                                               id-var-name
+                                               same-marks?
+                                               join-marks
+                                               join-wraps
+                                               smart-append
+                                               make-binding-wrap
+                                               extend-ribcage!
+                                               make-empty-ribcage
+                                               new-mark
+                                               anti-mark
+                                               the-anti-mark
+                                               top-marked?
+                                               top-wrap
+                                               empty-wrap
+                                               set-ribcage-labels!
+                                               set-ribcage-marks!
+                                               set-ribcage-symnames!
+                                               ribcage-labels
+                                               ribcage-marks
+                                               ribcage-symnames
+                                               ribcage?
+                                               make-ribcage
+                                               gen-labels
+                                               gen-label
+                                               make-rename
+                                               rename-marks
+                                               rename-new
+                                               rename-old
+                                               subst-rename?
+                                               wrap-subst
+                                               wrap-marks
+                                               make-wrap
+                                               id-sym-name&marks
+                                               id-sym-name
+                                               id?
+                                               nonsymbol-id?
+                                               global-extend
+                                               lookup
+                                               macros-only-env
+                                               extend-var-env
+                                               extend-env
+                                               null-env
+                                               binding-value
+                                               binding-type
+                                               make-binding
+                                               arg-check
+                                               source-annotation
+                                               no-source
+                                               set-syntax-object-module!
+                                               set-syntax-object-wrap!
+                                               set-syntax-object-expression!
+                                               syntax-object-module
+                                               syntax-object-wrap
+                                               syntax-object-expression
+                                               syntax-object?
+                                               make-syntax-object
+                                               build-lexical-var
+                                               build-letrec
+                                               build-named-let
+                                               build-let
+                                               build-sequence
+                                               build-data
+                                               build-primref
+                                               build-primcall
+                                               build-lambda-case
+                                               build-case-lambda
+                                               build-simple-lambda
+                                               build-global-definition
+                                               build-global-assignment
+                                               build-global-reference
+                                               analyze-variable
+                                               build-lexical-assignment
+                                               build-lexical-reference
+                                               build-dynlet
+                                               build-conditional
+                                               build-call
+                                               build-void
+                                               maybe-name-value!
+                                               decorate-source
+                                               get-global-definition-hook
+                                               put-global-definition-hook
+                                               gensym-hook
+                                               local-eval-hook
+                                               top-level-eval-hook
+                                               fx<
+                                               fx=
+                                               fx-
+                                               fx+
+                                               set-lambda-meta!
+                                               lambda-meta
+                                               lambda?
+                                               make-dynlet
+                                               make-letrec
+                                               make-let
+                                               make-lambda-case
+                                               make-lambda
+                                               make-seq
+                                               make-primcall
+                                               make-call
+                                               make-conditional
+                                               make-toplevel-define
+                                               make-toplevel-set
+                                               make-toplevel-ref
+                                               make-module-set
+                                               make-module-ref
+                                               make-lexical-set
+                                               make-lexical-ref
+                                               make-primitive-ref
+                                               make-const
+                                               make-void)
+                                             ((top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top))
+                                             ("i470"
+                                              "i468"
+                                              "i466"
+                                              "i464"
+                                              "i462"
+                                              "i460"
+                                              "i458"
+                                              "i456"
+                                              "i454"
+                                              "i452"
+                                              "i450"
+                                              "i448"
+                                              "i446"
+                                              "i444"
+                                              "i442"
+                                              "i440"
+                                              "i438"
+                                              "i436"
+                                              "i434"
+                                              "i432"
+                                              "i430"
+                                              "i428"
+                                              "i426"
+                                              "i424"
+                                              "i422"
+                                              "i420"
+                                              "i418"
+                                              "i416"
+                                              "i414"
+                                              "i412"
+                                              "i410"
+                                              "i408"
+                                              "i406"
+                                              "i404"
+                                              "i402"
+                                              "i401"
+                                              "i399"
+                                              "i396"
+                                              "i395"
+                                              "i394"
+                                              "i392"
+                                              "i391"
+                                              "i389"
+                                              "i387"
+                                              "i385"
+                                              "i383"
+                                              "i381"
+                                              "i379"
+                                              "i377"
+                                              "i375"
+                                              "i372"
+                                              "i370"
+                                              "i369"
+                                              "i367"
+                                              "i365"
+                                              "i363"
+                                              "i361"
+                                              "i360"
+                                              "i359"
+                                              "i358"
+                                              "i356"
+                                              "i355"
+                                              "i352"
+                                              "i350"
+                                              "i348"
+                                              "i346"
+                                              "i344"
+                                              "i342"
+                                              "i340"
+                                              "i339"
+                                              "i338"
+                                              "i336"
+                                              "i334"
+                                              "i333"
+                                              "i330"
+                                              "i329"
+                                              "i327"
+                                              "i325"
+                                              "i323"
+                                              "i321"
+                                              "i319"
+                                              "i317"
+                                              "i315"
+                                              "i313"
+                                              "i311"
+                                              "i308"
+                                              "i306"
+                                              "i304"
+                                              "i302"
+                                              "i300"
+                                              "i298"
+                                              "i296"
+                                              "i294"
+                                              "i292"
+                                              "i290"
+                                              "i288"
+                                              "i286"
+                                              "i284"
+                                              "i282"
+                                              "i280"
+                                              "i278"
+                                              "i276"
+                                              "i274"
+                                              "i272"
+                                              "i270"
+                                              "i268"
+                                              "i266"
+                                              "i264"
+                                              "i262"
+                                              "i261"
+                                              "i258"
+                                              "i256"
+                                              "i255"
+                                              "i254"
+                                              "i253"
+                                              "i252"
+                                              "i250"
+                                              "i248"
+                                              "i246"
+                                              "i243"
+                                              "i241"
+                                              "i239"
+                                              "i237"
+                                              "i235"
+                                              "i233"
+                                              "i231"
+                                              "i229"
+                                              "i227"
+                                              "i225"
+                                              "i223"
+                                              "i221"
+                                              "i219"
+                                              "i217"
+                                              "i215"
+                                              "i213"
+                                              "i211"
+                                              "i209"
+                                              "i207"))
+                                           #(ribcage
+                                             (define-structure
+                                               define-expansion-accessors
+                                               define-expansion-constructors)
+                                             ((top) (top) (top))
+                                             ("i45" "i44" "i43")))
+                                          (hygiene guile))
+                                       #{keys 3924}#))
                                #f)
-                             #f)))
-                       (if (memv #{atom-key 4199}# '(free-id))
-                         (if (#{id? 343}# #{e 4172}#)
-                           (if (#{free-id=? 399}#
-                                 (#{wrap 409}#
-                                   #{e 4172}#
-                                   #{w 4174}#
-                                   #{mod 4176}#)
-                                 (vector-ref #{p 4173}# 1))
-                             #{r 4175}#
-                             #f)
-                           #f)
-                         (if (memv #{atom-key 4199}# '(atom))
-                           (if (equal?
-                                 (vector-ref #{p 4173}# 1)
-                                 (#{strip 449}# #{e 4172}# #{w 4174}#))
-                             #{r 4175}#
-                             #f)
-                           (if (memv #{atom-key 4199}# '(vector))
-                             (if (vector? #{e 4172}#)
-                               (#{match 4072}#
-                                 (vector->list #{e 4172}#)
-                                 (vector-ref #{p 4173}# 1)
-                                 #{w 4174}#
-                                 #{r 4175}#
-                                 #{mod 4176}#)
-                               #f))))))))))))
-       (#{match 4072}#
-         (lambda (#{e 4229}#
-                  #{p 4230}#
-                  #{w 4231}#
-                  #{r 4232}#
-                  #{mod 4233}#)
-           (if (not #{r 4232}#)
-             #f
-             (if (eq? #{p 4230}# '_)
-               #{r 4232}#
-               (if (eq? #{p 4230}# 'any)
-                 (cons (#{wrap 409}# #{e 4229}# #{w 4231}# #{mod 4233}#)
-                       #{r 4232}#)
-                 (if (#{syntax-object? 309}# #{e 4229}#)
-                   (#{match* 4070}#
-                     (#{syntax-object-expression 311}# #{e 4229}#)
-                     #{p 4230}#
-                     (#{join-wraps 391}#
-                       #{w 4231}#
-                       (#{syntax-object-wrap 313}# #{e 4229}#))
-                     #{r 4232}#
-                     (#{syntax-object-module 315}# #{e 4229}#))
-                   (#{match* 4070}#
-                     #{e 4229}#
-                     #{p 4230}#
-                     #{w 4231}#
-                     #{r 4232}#
-                     #{mod 4233}#))))))))
-      (set! $sc-dispatch
-        (lambda (#{e 4248}# #{p 4249}#)
-          (if (eq? #{p 4249}# 'any)
-            (list #{e 4248}#)
-            (if (eq? #{p 4249}# '_)
-              '()
-              (if (#{syntax-object? 309}# #{e 4248}#)
-                (#{match* 4070}#
-                  (#{syntax-object-expression 311}# #{e 4248}#)
-                  #{p 4249}#
-                  (#{syntax-object-wrap 313}# #{e 4248}#)
-                  '()
-                  (#{syntax-object-module 315}# #{e 4248}#))
-                (#{match* 4070}#
-                  #{e 4248}#
-                  #{p 4249}#
-                  '(())
-                  '()
-                  #f)))))))))
-
-(define with-syntax
-  (make-syntax-transformer
-    'with-syntax
-    'macro
-    (lambda (#{x 4260}#)
-      (let ((#{tmp 4262}# #{x 4260}#))
-        (let ((#{tmp 4263}#
-                ($sc-dispatch
-                  #{tmp 4262}#
-                  '(_ () any . each-any))))
-          (if #{tmp 4263}#
-            (@apply
-              (lambda (#{e1 4266}# #{e2 4267}#)
-                (cons '#(syntax-object
-                         let
-                         ((top)
-                          #(ribcage
-                            #(e1 e2)
-                            #((top) (top))
-                            #("i4264" "i4265"))
-                          #(ribcage () () ())
-                          #(ribcage #(x) #((top)) #("i4261")))
-                         (hygiene guile))
-                      (cons '() (cons #{e1 4266}# #{e2 4267}#))))
-              #{tmp 4263}#)
-            (let ((#{tmp 4269}#
-                    ($sc-dispatch
-                      #{tmp 4262}#
-                      '(_ ((any any)) any . each-any))))
-              (if #{tmp 4269}#
-                (@apply
-                  (lambda (#{out 4274}#
-                           #{in 4275}#
-                           #{e1 4276}#
-                           #{e2 4277}#)
-                    (list '#(syntax-object
-                             syntax-case
-                             ((top)
-                              #(ribcage
-                                #(out in e1 e2)
-                                #((top) (top) (top) (top))
-                                #("i4270" "i4271" "i4272" "i4273"))
-                              #(ribcage () () ())
-                              #(ribcage #(x) #((top)) #("i4261")))
-                             (hygiene guile))
-                          #{in 4275}#
-                          '()
-                          (list #{out 4274}#
-                                (cons '#(syntax-object
-                                         let
-                                         ((top)
-                                          #(ribcage
-                                            #(out in e1 e2)
-                                            #((top) (top) (top) (top))
-                                            #("i4270" "i4271" "i4272" "i4273"))
-                                          #(ribcage () () ())
-                                          #(ribcage #(x) #((top)) #("i4261")))
-                                         (hygiene guile))
-                                      (cons '()
-                                            (cons #{e1 4276}# #{e2 4277}#))))))
-                  #{tmp 4269}#)
-                (let ((#{tmp 4279}#
-                        ($sc-dispatch
-                          #{tmp 4262}#
-                          '(_ #(each (any any)) any . each-any))))
-                  (if #{tmp 4279}#
-                    (@apply
-                      (lambda (#{out 4284}#
-                               #{in 4285}#
-                               #{e1 4286}#
-                               #{e2 4287}#)
-                        (list '#(syntax-object
-                                 syntax-case
-                                 ((top)
-                                  #(ribcage
-                                    #(out in e1 e2)
-                                    #((top) (top) (top) (top))
-                                    #("i4280" "i4281" "i4282" "i4283"))
-                                  #(ribcage () () ())
-                                  #(ribcage #(x) #((top)) #("i4261")))
-                                 (hygiene guile))
-                              (cons '#(syntax-object
-                                       list
+                           (if (#{free-id=? 417}#
+                                 '#(syntax-object
+                                    pad
+                                    ((top)
+                                     #(ribcage
+                                       #(pat exp)
+                                       #((top) (top))
+                                       #("i3938" "i3939"))
+                                     #(ribcage () () ())
+                                     #(ribcage
+                                       #(x keys clauses r mod)
+                                       #((top) (top) (top) (top) (top))
+                                       #("i3928"
+                                         "i3929"
+                                         "i3930"
+                                         "i3931"
+                                         "i3932"))
+                                     #(ribcage
+                                       (gen-syntax-case
+                                         gen-clause
+                                         build-dispatch-call
+                                         convert-pattern)
+                                       ((top) (top) (top) (top))
+                                       ("i3741" "i3739" "i3737" "i3735"))
+                                     #(ribcage
+                                       (lambda-var-list
+                                         gen-var
+                                         strip
+                                         chi-lambda-case
+                                         lambda*-formals
+                                         chi-simple-lambda
+                                         lambda-formals
+                                         ellipsis?
+                                         chi-void
+                                         eval-local-transformer
+                                         chi-local-syntax
+                                         chi-body
+                                         chi-macro
+                                         chi-call
+                                         chi-expr
+                                         chi
+                                         syntax-type
+                                         chi-when-list
+                                         chi-install-global
+                                         chi-top-sequence
+                                         chi-sequence
+                                         source-wrap
+                                         wrap
+                                         bound-id-member?
+                                         distinct-bound-ids?
+                                         valid-bound-ids?
+                                         bound-id=?
+                                         free-id=?
+                                         id-var-name
+                                         same-marks?
+                                         join-marks
+                                         join-wraps
+                                         smart-append
+                                         make-binding-wrap
+                                         extend-ribcage!
+                                         make-empty-ribcage
+                                         new-mark
+                                         anti-mark
+                                         the-anti-mark
+                                         top-marked?
+                                         top-wrap
+                                         empty-wrap
+                                         set-ribcage-labels!
+                                         set-ribcage-marks!
+                                         set-ribcage-symnames!
+                                         ribcage-labels
+                                         ribcage-marks
+                                         ribcage-symnames
+                                         ribcage?
+                                         make-ribcage
+                                         gen-labels
+                                         gen-label
+                                         make-rename
+                                         rename-marks
+                                         rename-new
+                                         rename-old
+                                         subst-rename?
+                                         wrap-subst
+                                         wrap-marks
+                                         make-wrap
+                                         id-sym-name&marks
+                                         id-sym-name
+                                         id?
+                                         nonsymbol-id?
+                                         global-extend
+                                         lookup
+                                         macros-only-env
+                                         extend-var-env
+                                         extend-env
+                                         null-env
+                                         binding-value
+                                         binding-type
+                                         make-binding
+                                         arg-check
+                                         source-annotation
+                                         no-source
+                                         set-syntax-object-module!
+                                         set-syntax-object-wrap!
+                                         set-syntax-object-expression!
+                                         syntax-object-module
+                                         syntax-object-wrap
+                                         syntax-object-expression
+                                         syntax-object?
+                                         make-syntax-object
+                                         build-lexical-var
+                                         build-letrec
+                                         build-named-let
+                                         build-let
+                                         build-sequence
+                                         build-data
+                                         build-primref
+                                         build-primcall
+                                         build-lambda-case
+                                         build-case-lambda
+                                         build-simple-lambda
+                                         build-global-definition
+                                         build-global-assignment
+                                         build-global-reference
+                                         analyze-variable
+                                         build-lexical-assignment
+                                         build-lexical-reference
+                                         build-dynlet
+                                         build-conditional
+                                         build-call
+                                         build-void
+                                         maybe-name-value!
+                                         decorate-source
+                                         get-global-definition-hook
+                                         put-global-definition-hook
+                                         gensym-hook
+                                         local-eval-hook
+                                         top-level-eval-hook
+                                         fx<
+                                         fx=
+                                         fx-
+                                         fx+
+                                         set-lambda-meta!
+                                         lambda-meta
+                                         lambda?
+                                         make-dynlet
+                                         make-letrec
+                                         make-let
+                                         make-lambda-case
+                                         make-lambda
+                                         make-seq
+                                         make-primcall
+                                         make-call
+                                         make-conditional
+                                         make-toplevel-define
+                                         make-toplevel-set
+                                         make-toplevel-ref
+                                         make-module-set
+                                         make-module-ref
+                                         make-lexical-set
+                                         make-lexical-ref
+                                         make-primitive-ref
+                                         make-const
+                                         make-void)
                                        ((top)
-                                        #(ribcage
-                                          #(out in e1 e2)
-                                          #((top) (top) (top) (top))
-                                          #("i4280" "i4281" "i4282" "i4283"))
-                                        #(ribcage () () ())
-                                        #(ribcage #(x) #((top)) #("i4261")))
-                                       (hygiene guile))
-                                    #{in 4285}#)
-                              '()
-                              (list #{out 4284}#
-                                    (cons '#(syntax-object
-                                             let
-                                             ((top)
-                                              #(ribcage
-                                                #(out in e1 e2)
-                                                #((top) (top) (top) (top))
-                                                #("i4280"
-                                                  "i4281"
-                                                  "i4282"
-                                                  "i4283"))
-                                              #(ribcage () () ())
-                                              #(ribcage
-                                                #(x)
-                                                #((top))
-                                                #("i4261")))
-                                             (hygiene guile))
-                                          (cons '()
-                                                (cons #{e1 4286}#
-                                                      #{e2 4287}#))))))
-                      #{tmp 4279}#)
-                    (syntax-violation
-                      #f
-                      "source expression failed to match any pattern"
-                      #{tmp 4262}#)))))))))))
-
-(define syntax-rules
-  (make-syntax-transformer
-    'syntax-rules
-    'macro
-    (lambda (#{x 4291}#)
-      (let ((#{tmp 4293}# #{x 4291}#))
-        (let ((#{tmp 4294}#
-                ($sc-dispatch
-                  #{tmp 4293}#
-                  '(_ each-any . #(each ((any . any) any))))))
-          (if #{tmp 4294}#
-            (@apply
-              (lambda (#{k 4299}#
-                       #{keyword 4300}#
-                       #{pattern 4301}#
-                       #{template 4302}#)
-                (list '#(syntax-object
-                         lambda
-                         ((top)
-                          #(ribcage
-                            #(k keyword pattern template)
-                            #((top) (top) (top) (top))
-                            #("i4295" "i4296" "i4297" "i4298"))
-                          #(ribcage () () ())
-                          #(ribcage #(x) #((top)) #("i4292")))
-                         (hygiene guile))
-                      '(#(syntax-object
-                          x
-                          ((top)
-                           #(ribcage
-                             #(k keyword pattern template)
-                             #((top) (top) (top) (top))
-                             #("i4295" "i4296" "i4297" "i4298"))
-                           #(ribcage () () ())
-                           #(ribcage #(x) #((top)) #("i4292")))
-                          (hygiene guile)))
-                      (vector
-                        '(#(syntax-object
-                            macro-type
-                            ((top)
-                             #(ribcage
-                               #(k keyword pattern template)
-                               #((top) (top) (top) (top))
-                               #("i4295" "i4296" "i4297" "i4298"))
-                             #(ribcage () () ())
-                             #(ribcage #(x) #((top)) #("i4292")))
-                            (hygiene guile))
-                          .
-                          #(syntax-object
-                            syntax-rules
-                            ((top)
-                             #(ribcage
-                               #(k keyword pattern template)
-                               #((top) (top) (top) (top))
-                               #("i4295" "i4296" "i4297" "i4298"))
-                             #(ribcage () () ())
-                             #(ribcage #(x) #((top)) #("i4292")))
-                            (hygiene guile)))
-                        (cons '#(syntax-object
-                                 patterns
-                                 ((top)
-                                  #(ribcage
-                                    #(k keyword pattern template)
-                                    #((top) (top) (top) (top))
-                                    #("i4295" "i4296" "i4297" "i4298"))
-                                  #(ribcage () () ())
-                                  #(ribcage #(x) #((top)) #("i4292")))
-                                 (hygiene guile))
-                              #{pattern 4301}#))
-                      (cons '#(syntax-object
-                               syntax-case
-                               ((top)
-                                #(ribcage
-                                  #(k keyword pattern template)
-                                  #((top) (top) (top) (top))
-                                  #("i4295" "i4296" "i4297" "i4298"))
-                                #(ribcage () () ())
-                                #(ribcage #(x) #((top)) #("i4292")))
-                               (hygiene guile))
-                            (cons '#(syntax-object
-                                     x
-                                     ((top)
-                                      #(ribcage
-                                        #(k keyword pattern template)
-                                        #((top) (top) (top) (top))
-                                        #("i4295" "i4296" "i4297" "i4298"))
-                                      #(ribcage () () ())
-                                      #(ribcage #(x) #((top)) #("i4292")))
-                                     (hygiene guile))
-                                  (cons #{k 4299}#
-                                        (map (lambda (#{tmp 4306}#
-                                                      #{tmp 4305}#)
-                                               (list (cons '#(syntax-object
-                                                              dummy
-                                                              ((top)
-                                                               #(ribcage
-                                                                 #(k
-                                                                   keyword
-                                                                   pattern
-                                                                   template)
-                                                                 #((top)
-                                                                   (top)
-                                                                   (top)
-                                                                   (top))
-                                                                 #("i4295"
-                                                                   "i4296"
-                                                                   "i4297"
-                                                                   "i4298"))
-                                                               #(ribcage
-                                                                 ()
-                                                                 ()
-                                                                 ())
-                                                               #(ribcage
-                                                                 #(x)
-                                                                 #((top))
-                                                                 #("i4292")))
-                                                              (hygiene guile))
-                                                           #{tmp 4305}#)
-                                                     (list '#(syntax-object
-                                                              syntax
-                                                              ((top)
-                                                               #(ribcage
-                                                                 #(k
-                                                                   keyword
-                                                                   pattern
-                                                                   template)
-                                                                 #((top)
-                                                                   (top)
-                                                                   (top)
-                                                                   (top))
-                                                                 #("i4295"
-                                                                   "i4296"
-                                                                   "i4297"
-                                                                   "i4298"))
-                                                               #(ribcage
-                                                                 ()
-                                                                 ()
-                                                                 ())
-                                                               #(ribcage
-                                                                 #(x)
-                                                                 #((top))
-                                                                 #("i4292")))
-                                                              (hygiene guile))
-                                                           #{tmp 4306}#)))
-                                             #{template 4302}#
-                                             #{pattern 4301}#))))))
-              #{tmp 4294}#)
-            (let ((#{tmp 4307}#
-                    ($sc-dispatch
-                      #{tmp 4293}#
-                      '(_ each-any any . #(each ((any . any) any))))))
-              (if (if #{tmp 4307}#
-                    (@apply
-                      (lambda (#{k 4313}#
-                               #{docstring 4314}#
-                               #{keyword 4315}#
-                               #{pattern 4316}#
-                               #{template 4317}#)
-                        (string? (syntax->datum #{docstring 4314}#)))
-                      #{tmp 4307}#)
-                    #f)
-                (@apply
-                  (lambda (#{k 4323}#
-                           #{docstring 4324}#
-                           #{keyword 4325}#
-                           #{pattern 4326}#
-                           #{template 4327}#)
-                    (list '#(syntax-object
-                             lambda
-                             ((top)
-                              #(ribcage
-                                #(k docstring keyword pattern template)
-                                #((top) (top) (top) (top) (top))
-                                #("i4318" "i4319" "i4320" "i4321" "i4322"))
-                              #(ribcage () () ())
-                              #(ribcage #(x) #((top)) #("i4292")))
-                             (hygiene guile))
-                          '(#(syntax-object
-                              x
-                              ((top)
-                               #(ribcage
-                                 #(k docstring keyword pattern template)
-                                 #((top) (top) (top) (top) (top))
-                                 #("i4318" "i4319" "i4320" "i4321" "i4322"))
-                               #(ribcage () () ())
-                               #(ribcage #(x) #((top)) #("i4292")))
-                              (hygiene guile)))
-                          #{docstring 4324}#
-                          (vector
-                            '(#(syntax-object
-                                macro-type
-                                ((top)
-                                 #(ribcage
-                                   #(k docstring keyword pattern template)
-                                   #((top) (top) (top) (top) (top))
-                                   #("i4318" "i4319" "i4320" "i4321" "i4322"))
-                                 #(ribcage () () ())
-                                 #(ribcage #(x) #((top)) #("i4292")))
-                                (hygiene guile))
-                              .
-                              #(syntax-object
-                                syntax-rules
-                                ((top)
-                                 #(ribcage
-                                   #(k docstring keyword pattern template)
-                                   #((top) (top) (top) (top) (top))
-                                   #("i4318" "i4319" "i4320" "i4321" "i4322"))
-                                 #(ribcage () () ())
-                                 #(ribcage #(x) #((top)) #("i4292")))
-                                (hygiene guile)))
-                            (cons '#(syntax-object
-                                     patterns
-                                     ((top)
-                                      #(ribcage
-                                        #(k docstring keyword pattern template)
-                                        #((top) (top) (top) (top) (top))
-                                        #("i4318"
-                                          "i4319"
-                                          "i4320"
-                                          "i4321"
-                                          "i4322"))
-                                      #(ribcage () () ())
-                                      #(ribcage #(x) #((top)) #("i4292")))
-                                     (hygiene guile))
-                                  #{pattern 4326}#))
-                          (cons '#(syntax-object
-                                   syntax-case
-                                   ((top)
-                                    #(ribcage
-                                      #(k docstring keyword pattern template)
-                                      #((top) (top) (top) (top) (top))
-                                      #("i4318"
-                                        "i4319"
-                                        "i4320"
-                                        "i4321"
-                                        "i4322"))
-                                    #(ribcage () () ())
-                                    #(ribcage #(x) #((top)) #("i4292")))
-                                   (hygiene guile))
-                                (cons '#(syntax-object
-                                         x
-                                         ((top)
-                                          #(ribcage
-                                            #(k
-                                              docstring
-                                              keyword
-                                              pattern
-                                              template)
-                                            #((top) (top) (top) (top) (top))
-                                            #("i4318"
-                                              "i4319"
-                                              "i4320"
-                                              "i4321"
-                                              "i4322"))
-                                          #(ribcage () () ())
-                                          #(ribcage #(x) #((top)) #("i4292")))
-                                         (hygiene guile))
-                                      (cons #{k 4323}#
-                                            (map (lambda (#{tmp 4331}#
-                                                          #{tmp 4330}#)
-                                                   (list (cons '#(syntax-object
-                                                                  dummy
-                                                                  ((top)
-                                                                   #(ribcage
-                                                                     #(k
-                                                                       
docstring
-                                                                       keyword
-                                                                       pattern
-                                                                       
template)
-                                                                     #((top)
-                                                                       (top)
-                                                                       (top)
-                                                                       (top)
-                                                                       (top))
-                                                                     #("i4318"
-                                                                       "i4319"
-                                                                       "i4320"
-                                                                       "i4321"
-                                                                       
"i4322"))
-                                                                   #(ribcage
-                                                                     ()
-                                                                     ()
-                                                                     ())
-                                                                   #(ribcage
-                                                                     #(x)
-                                                                     #((top))
-                                                                     
#("i4292")))
-                                                                  (hygiene
-                                                                    guile))
-                                                               #{tmp 4330}#)
-                                                         (list '#(syntax-object
-                                                                  syntax
-                                                                  ((top)
-                                                                   #(ribcage
-                                                                     #(k
-                                                                       
docstring
-                                                                       keyword
-                                                                       pattern
-                                                                       
template)
-                                                                     #((top)
-                                                                       (top)
-                                                                       (top)
-                                                                       (top)
-                                                                       (top))
-                                                                     #("i4318"
-                                                                       "i4319"
-                                                                       "i4320"
-                                                                       "i4321"
-                                                                       
"i4322"))
-                                                                   #(ribcage
-                                                                     ()
-                                                                     ()
-                                                                     ())
-                                                                   #(ribcage
-                                                                     #(x)
-                                                                     #((top))
-                                                                     
#("i4292")))
-                                                                  (hygiene
-                                                                    guile))
-                                                               #{tmp 4331}#)))
-                                                 #{template 4327}#
-                                                 #{pattern 4326}#))))))
-                  #{tmp 4307}#)
-                (syntax-violation
-                  #f
-                  "source expression failed to match any pattern"
-                  #{tmp 4293}#)))))))))
-
-(define let*
-  (make-syntax-transformer
-    'let*
-    'macro
-    (lambda (#{x 4332}#)
-      (let ((#{tmp 4334}# #{x 4332}#))
-        (let ((#{tmp 4335}#
-                ($sc-dispatch
-                  #{tmp 4334}#
-                  '(any #(each (any any)) any . each-any))))
-          (if (if #{tmp 4335}#
-                (@apply
-                  (lambda (#{let* 4341}#
-                           #{x 4342}#
-                           #{v 4343}#
-                           #{e1 4344}#
-                           #{e2 4345}#)
-                    (and-map identifier? #{x 4342}#))
-                  #{tmp 4335}#)
-                #f)
-            (@apply
-              (lambda (#{let* 4352}#
-                       #{x 4353}#
-                       #{v 4354}#
-                       #{e1 4355}#
-                       #{e2 4356}#)
-                (letrec*
-                  ((#{f 4359}#
-                     (lambda (#{bindings 4360}#)
-                       (if (null? #{bindings 4360}#)
-                         (cons '#(syntax-object
-                                  let
-                                  ((top)
-                                   #(ribcage () () ())
-                                   #(ribcage
-                                     #(f bindings)
-                                     #((top) (top))
-                                     #("i4357" "i4358"))
-                                   #(ribcage
-                                     #(let* x v e1 e2)
-                                     #((top) (top) (top) (top) (top))
-                                     #("i4347"
-                                       "i4348"
-                                       "i4349"
-                                       "i4350"
-                                       "i4351"))
-                                   #(ribcage () () ())
-                                   #(ribcage #(x) #((top)) #("i4333")))
-                                  (hygiene guile))
-                               (cons '() (cons #{e1 4355}# #{e2 4356}#)))
-                         (let ((#{tmp 4365}#
-                                 (list (#{f 4359}# (cdr #{bindings 4360}#))
-                                       (car #{bindings 4360}#))))
-                           (let ((#{tmp 4366}#
-                                   ($sc-dispatch #{tmp 4365}# '(any any))))
-                             (if #{tmp 4366}#
-                               (@apply
-                                 (lambda (#{body 4369}# #{binding 4370}#)
-                                   (list '#(syntax-object
-                                            let
-                                            ((top)
-                                             #(ribcage () () ())
-                                             #(ribcage
-                                               #(body binding)
-                                               #((top) (top))
-                                               #("i4367" "i4368"))
-                                             #(ribcage () () ())
-                                             #(ribcage
-                                               #(f bindings)
-                                               #((top) (top))
-                                               #("i4357" "i4358"))
-                                             #(ribcage
-                                               #(let* x v e1 e2)
-                                               #((top) (top) (top) (top) (top))
-                                               #("i4347"
-                                                 "i4348"
-                                                 "i4349"
-                                                 "i4350"
-                                                 "i4351"))
-                                             #(ribcage () () ())
-                                             #(ribcage
-                                               #(x)
-                                               #((top))
-                                               #("i4333")))
-                                            (hygiene guile))
-                                         (list #{binding 4370}#)
-                                         #{body 4369}#))
-                                 #{tmp 4366}#)
-                               (syntax-violation
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top))
+                                       ("i470"
+                                        "i468"
+                                        "i466"
+                                        "i464"
+                                        "i462"
+                                        "i460"
+                                        "i458"
+                                        "i456"
+                                        "i454"
+                                        "i452"
+                                        "i450"
+                                        "i448"
+                                        "i446"
+                                        "i444"
+                                        "i442"
+                                        "i440"
+                                        "i438"
+                                        "i436"
+                                        "i434"
+                                        "i432"
+                                        "i430"
+                                        "i428"
+                                        "i426"
+                                        "i424"
+                                        "i422"
+                                        "i420"
+                                        "i418"
+                                        "i416"
+                                        "i414"
+                                        "i412"
+                                        "i410"
+                                        "i408"
+                                        "i406"
+                                        "i404"
+                                        "i402"
+                                        "i401"
+                                        "i399"
+                                        "i396"
+                                        "i395"
+                                        "i394"
+                                        "i392"
+                                        "i391"
+                                        "i389"
+                                        "i387"
+                                        "i385"
+                                        "i383"
+                                        "i381"
+                                        "i379"
+                                        "i377"
+                                        "i375"
+                                        "i372"
+                                        "i370"
+                                        "i369"
+                                        "i367"
+                                        "i365"
+                                        "i363"
+                                        "i361"
+                                        "i360"
+                                        "i359"
+                                        "i358"
+                                        "i356"
+                                        "i355"
+                                        "i352"
+                                        "i350"
+                                        "i348"
+                                        "i346"
+                                        "i344"
+                                        "i342"
+                                        "i340"
+                                        "i339"
+                                        "i338"
+                                        "i336"
+                                        "i334"
+                                        "i333"
+                                        "i330"
+                                        "i329"
+                                        "i327"
+                                        "i325"
+                                        "i323"
+                                        "i321"
+                                        "i319"
+                                        "i317"
+                                        "i315"
+                                        "i313"
+                                        "i311"
+                                        "i308"
+                                        "i306"
+                                        "i304"
+                                        "i302"
+                                        "i300"
+                                        "i298"
+                                        "i296"
+                                        "i294"
+                                        "i292"
+                                        "i290"
+                                        "i288"
+                                        "i286"
+                                        "i284"
+                                        "i282"
+                                        "i280"
+                                        "i278"
+                                        "i276"
+                                        "i274"
+                                        "i272"
+                                        "i270"
+                                        "i268"
+                                        "i266"
+                                        "i264"
+                                        "i262"
+                                        "i261"
+                                        "i258"
+                                        "i256"
+                                        "i255"
+                                        "i254"
+                                        "i253"
+                                        "i252"
+                                        "i250"
+                                        "i248"
+                                        "i246"
+                                        "i243"
+                                        "i241"
+                                        "i239"
+                                        "i237"
+                                        "i235"
+                                        "i233"
+                                        "i231"
+                                        "i229"
+                                        "i227"
+                                        "i225"
+                                        "i223"
+                                        "i221"
+                                        "i219"
+                                        "i217"
+                                        "i215"
+                                        "i213"
+                                        "i211"
+                                        "i209"
+                                        "i207"))
+                                     #(ribcage
+                                       (define-structure
+                                         define-expansion-accessors
+                                         define-expansion-constructors)
+                                       ((top) (top) (top))
+                                       ("i45" "i44" "i43")))
+                                    (hygiene guile))
+                                 '#(syntax-object
+                                    _
+                                    ((top)
+                                     #(ribcage
+                                       #(pat exp)
+                                       #((top) (top))
+                                       #("i3938" "i3939"))
+                                     #(ribcage () () ())
+                                     #(ribcage
+                                       #(x keys clauses r mod)
+                                       #((top) (top) (top) (top) (top))
+                                       #("i3928"
+                                         "i3929"
+                                         "i3930"
+                                         "i3931"
+                                         "i3932"))
+                                     #(ribcage
+                                       (gen-syntax-case
+                                         gen-clause
+                                         build-dispatch-call
+                                         convert-pattern)
+                                       ((top) (top) (top) (top))
+                                       ("i3741" "i3739" "i3737" "i3735"))
+                                     #(ribcage
+                                       (lambda-var-list
+                                         gen-var
+                                         strip
+                                         chi-lambda-case
+                                         lambda*-formals
+                                         chi-simple-lambda
+                                         lambda-formals
+                                         ellipsis?
+                                         chi-void
+                                         eval-local-transformer
+                                         chi-local-syntax
+                                         chi-body
+                                         chi-macro
+                                         chi-call
+                                         chi-expr
+                                         chi
+                                         syntax-type
+                                         chi-when-list
+                                         chi-install-global
+                                         chi-top-sequence
+                                         chi-sequence
+                                         source-wrap
+                                         wrap
+                                         bound-id-member?
+                                         distinct-bound-ids?
+                                         valid-bound-ids?
+                                         bound-id=?
+                                         free-id=?
+                                         id-var-name
+                                         same-marks?
+                                         join-marks
+                                         join-wraps
+                                         smart-append
+                                         make-binding-wrap
+                                         extend-ribcage!
+                                         make-empty-ribcage
+                                         new-mark
+                                         anti-mark
+                                         the-anti-mark
+                                         top-marked?
+                                         top-wrap
+                                         empty-wrap
+                                         set-ribcage-labels!
+                                         set-ribcage-marks!
+                                         set-ribcage-symnames!
+                                         ribcage-labels
+                                         ribcage-marks
+                                         ribcage-symnames
+                                         ribcage?
+                                         make-ribcage
+                                         gen-labels
+                                         gen-label
+                                         make-rename
+                                         rename-marks
+                                         rename-new
+                                         rename-old
+                                         subst-rename?
+                                         wrap-subst
+                                         wrap-marks
+                                         make-wrap
+                                         id-sym-name&marks
+                                         id-sym-name
+                                         id?
+                                         nonsymbol-id?
+                                         global-extend
+                                         lookup
+                                         macros-only-env
+                                         extend-var-env
+                                         extend-env
+                                         null-env
+                                         binding-value
+                                         binding-type
+                                         make-binding
+                                         arg-check
+                                         source-annotation
+                                         no-source
+                                         set-syntax-object-module!
+                                         set-syntax-object-wrap!
+                                         set-syntax-object-expression!
+                                         syntax-object-module
+                                         syntax-object-wrap
+                                         syntax-object-expression
+                                         syntax-object?
+                                         make-syntax-object
+                                         build-lexical-var
+                                         build-letrec
+                                         build-named-let
+                                         build-let
+                                         build-sequence
+                                         build-data
+                                         build-primref
+                                         build-primcall
+                                         build-lambda-case
+                                         build-case-lambda
+                                         build-simple-lambda
+                                         build-global-definition
+                                         build-global-assignment
+                                         build-global-reference
+                                         analyze-variable
+                                         build-lexical-assignment
+                                         build-lexical-reference
+                                         build-dynlet
+                                         build-conditional
+                                         build-call
+                                         build-void
+                                         maybe-name-value!
+                                         decorate-source
+                                         get-global-definition-hook
+                                         put-global-definition-hook
+                                         gensym-hook
+                                         local-eval-hook
+                                         top-level-eval-hook
+                                         fx<
+                                         fx=
+                                         fx-
+                                         fx+
+                                         set-lambda-meta!
+                                         lambda-meta
+                                         lambda?
+                                         make-dynlet
+                                         make-letrec
+                                         make-let
+                                         make-lambda-case
+                                         make-lambda
+                                         make-seq
+                                         make-primcall
+                                         make-call
+                                         make-conditional
+                                         make-toplevel-define
+                                         make-toplevel-set
+                                         make-toplevel-ref
+                                         make-module-set
+                                         make-module-ref
+                                         make-lexical-set
+                                         make-lexical-ref
+                                         make-primitive-ref
+                                         make-const
+                                         make-void)
+                                       ((top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top))
+                                       ("i470"
+                                        "i468"
+                                        "i466"
+                                        "i464"
+                                        "i462"
+                                        "i460"
+                                        "i458"
+                                        "i456"
+                                        "i454"
+                                        "i452"
+                                        "i450"
+                                        "i448"
+                                        "i446"
+                                        "i444"
+                                        "i442"
+                                        "i440"
+                                        "i438"
+                                        "i436"
+                                        "i434"
+                                        "i432"
+                                        "i430"
+                                        "i428"
+                                        "i426"
+                                        "i424"
+                                        "i422"
+                                        "i420"
+                                        "i418"
+                                        "i416"
+                                        "i414"
+                                        "i412"
+                                        "i410"
+                                        "i408"
+                                        "i406"
+                                        "i404"
+                                        "i402"
+                                        "i401"
+                                        "i399"
+                                        "i396"
+                                        "i395"
+                                        "i394"
+                                        "i392"
+                                        "i391"
+                                        "i389"
+                                        "i387"
+                                        "i385"
+                                        "i383"
+                                        "i381"
+                                        "i379"
+                                        "i377"
+                                        "i375"
+                                        "i372"
+                                        "i370"
+                                        "i369"
+                                        "i367"
+                                        "i365"
+                                        "i363"
+                                        "i361"
+                                        "i360"
+                                        "i359"
+                                        "i358"
+                                        "i356"
+                                        "i355"
+                                        "i352"
+                                        "i350"
+                                        "i348"
+                                        "i346"
+                                        "i344"
+                                        "i342"
+                                        "i340"
+                                        "i339"
+                                        "i338"
+                                        "i336"
+                                        "i334"
+                                        "i333"
+                                        "i330"
+                                        "i329"
+                                        "i327"
+                                        "i325"
+                                        "i323"
+                                        "i321"
+                                        "i319"
+                                        "i317"
+                                        "i315"
+                                        "i313"
+                                        "i311"
+                                        "i308"
+                                        "i306"
+                                        "i304"
+                                        "i302"
+                                        "i300"
+                                        "i298"
+                                        "i296"
+                                        "i294"
+                                        "i292"
+                                        "i290"
+                                        "i288"
+                                        "i286"
+                                        "i284"
+                                        "i282"
+                                        "i280"
+                                        "i278"
+                                        "i276"
+                                        "i274"
+                                        "i272"
+                                        "i270"
+                                        "i268"
+                                        "i266"
+                                        "i264"
+                                        "i262"
+                                        "i261"
+                                        "i258"
+                                        "i256"
+                                        "i255"
+                                        "i254"
+                                        "i253"
+                                        "i252"
+                                        "i250"
+                                        "i248"
+                                        "i246"
+                                        "i243"
+                                        "i241"
+                                        "i239"
+                                        "i237"
+                                        "i235"
+                                        "i233"
+                                        "i231"
+                                        "i229"
+                                        "i227"
+                                        "i225"
+                                        "i223"
+                                        "i221"
+                                        "i219"
+                                        "i217"
+                                        "i215"
+                                        "i213"
+                                        "i211"
+                                        "i209"
+                                        "i207"))
+                                     #(ribcage
+                                       (define-structure
+                                         define-expansion-accessors
+                                         define-expansion-constructors)
+                                       ((top) (top) (top))
+                                       ("i45" "i44" "i43")))
+                                    (hygiene guile)))
+                             (#{chi 441}#
+                               #{exp 3941}#
+                               #{r 3926}#
+                               '(())
+                               #{mod 3927}#)
+                             (let ((#{labels 3949}#
+                                     (list (symbol->string (gensym "i"))))
+                                   (#{var 3950}#
+                                     (let ((#{id 10508}#
+                                             (if (if (vector? #{pat 3940}#)
+                                                   (if (= (vector-length
+                                                            #{pat 3940}#)
+                                                          4)
+                                                     (eq? (vector-ref
+                                                            #{pat 3940}#
+                                                            0)
+                                                          'syntax-object)
+                                                     #f)
+                                                   #f)
+                                               (vector-ref #{pat 3940}# 1)
+                                               #{pat 3940}#)))
+                                       (gensym
+                                         (string-append
+                                           (symbol->string #{id 10508}#)
+                                           " ")))))
+                               (#{build-call 273}#
                                  #f
-                                 "source expression failed to match any 
pattern"
-                                 #{tmp 4365}#))))))))
-                  (#{f 4359}# (map list #{x 4353}# #{v 4354}#))))
-              #{tmp 4335}#)
-            (syntax-violation
-              #f
-              "source expression failed to match any pattern"
-              #{tmp 4334}#)))))))
-
-(define do
-  (make-syntax-transformer
-    'do
-    'macro
-    (lambda (#{orig-x 4371}#)
-      (let ((#{tmp 4373}# #{orig-x 4371}#))
-        (let ((#{tmp 4374}#
-                ($sc-dispatch
-                  #{tmp 4373}#
-                  '(_ #(each (any any . any))
-                      (any . each-any)
-                      .
-                      each-any))))
-          (if #{tmp 4374}#
-            (@apply
-              (lambda (#{var 4381}#
-                       #{init 4382}#
-                       #{step 4383}#
-                       #{e0 4384}#
-                       #{e1 4385}#
-                       #{c 4386}#)
-                (let ((#{tmp 4388}#
-                        (map (lambda (#{v 4409}# #{s 4410}#)
-                               (let ((#{tmp 4413}# #{s 4410}#))
-                                 (let ((#{tmp 4414}#
-                                         ($sc-dispatch #{tmp 4413}# '())))
-                                   (if #{tmp 4414}#
-                                     (@apply
-                                       (lambda () #{v 4409}#)
-                                       #{tmp 4414}#)
-                                     (let ((#{tmp 4415}#
-                                             ($sc-dispatch
-                                               #{tmp 4413}#
-                                               '(any))))
-                                       (if #{tmp 4415}#
-                                         (@apply
-                                           (lambda (#{e 4417}#) #{e 4417}#)
-                                           #{tmp 4415}#)
-                                         (let ((#{_ 4419}# #{tmp 4413}#))
-                                           (syntax-violation
-                                             'do
-                                             "bad step expression"
-                                             #{orig-x 4371}#
-                                             #{s 4410}#))))))))
-                             #{var 4381}#
-                             #{step 4383}#)))
-                  (let ((#{tmp 4389}#
-                          ($sc-dispatch #{tmp 4388}# 'each-any)))
-                    (if #{tmp 4389}#
-                      (@apply
-                        (lambda (#{step 4391}#)
-                          (let ((#{tmp 4392}# #{e1 4385}#))
-                            (let ((#{tmp 4393}#
-                                    ($sc-dispatch #{tmp 4392}# '())))
-                              (if #{tmp 4393}#
-                                (@apply
-                                  (lambda ()
-                                    (list '#(syntax-object
-                                             let
-                                             ((top)
-                                              #(ribcage () () ())
-                                              #(ribcage
-                                                #(step)
-                                                #((top))
-                                                #("i4390"))
-                                              #(ribcage
-                                                #(var init step e0 e1 c)
-                                                #((top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top))
-                                                #("i4375"
-                                                  "i4376"
-                                                  "i4377"
-                                                  "i4378"
-                                                  "i4379"
-                                                  "i4380"))
-                                              #(ribcage () () ())
-                                              #(ribcage
-                                                #(orig-x)
-                                                #((top))
-                                                #("i4372")))
-                                             (hygiene guile))
-                                          '#(syntax-object
-                                             doloop
-                                             ((top)
-                                              #(ribcage () () ())
-                                              #(ribcage
-                                                #(step)
-                                                #((top))
-                                                #("i4390"))
-                                              #(ribcage
-                                                #(var init step e0 e1 c)
-                                                #((top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top)
-                                                  (top))
-                                                #("i4375"
-                                                  "i4376"
-                                                  "i4377"
-                                                  "i4378"
-                                                  "i4379"
-                                                  "i4380"))
-                                              #(ribcage () () ())
-                                              #(ribcage
-                                                #(orig-x)
-                                                #((top))
-                                                #("i4372")))
-                                             (hygiene guile))
-                                          (map list #{var 4381}# #{init 4382}#)
-                                          (list '#(syntax-object
-                                                   if
-                                                   ((top)
-                                                    #(ribcage () () ())
-                                                    #(ribcage
-                                                      #(step)
-                                                      #((top))
-                                                      #("i4390"))
-                                                    #(ribcage
-                                                      #(var init step e0 e1 c)
-                                                      #((top)
-                                                        (top)
-                                                        (top)
-                                                        (top)
-                                                        (top)
-                                                        (top))
-                                                      #("i4375"
-                                                        "i4376"
-                                                        "i4377"
-                                                        "i4378"
-                                                        "i4379"
-                                                        "i4380"))
-                                                    #(ribcage () () ())
-                                                    #(ribcage
-                                                      #(orig-x)
-                                                      #((top))
-                                                      #("i4372")))
-                                                   (hygiene guile))
-                                                (list '#(syntax-object
-                                                         not
-                                                         ((top)
-                                                          #(ribcage () () ())
-                                                          #(ribcage
-                                                            #(step)
-                                                            #((top))
-                                                            #("i4390"))
-                                                          #(ribcage
-                                                            #(var
-                                                              init
-                                                              step
-                                                              e0
-                                                              e1
-                                                              c)
-                                                            #((top)
-                                                              (top)
-                                                              (top)
-                                                              (top)
-                                                              (top)
-                                                              (top))
-                                                            #("i4375"
-                                                              "i4376"
-                                                              "i4377"
-                                                              "i4378"
-                                                              "i4379"
-                                                              "i4380"))
-                                                          #(ribcage () () ())
-                                                          #(ribcage
-                                                            #(orig-x)
-                                                            #((top))
-                                                            #("i4372")))
-                                                         (hygiene guile))
-                                                      #{e0 4384}#)
-                                                (cons '#(syntax-object
-                                                         begin
-                                                         ((top)
-                                                          #(ribcage () () ())
-                                                          #(ribcage
-                                                            #(step)
-                                                            #((top))
-                                                            #("i4390"))
-                                                          #(ribcage
-                                                            #(var
-                                                              init
-                                                              step
-                                                              e0
-                                                              e1
-                                                              c)
-                                                            #((top)
-                                                              (top)
-                                                              (top)
-                                                              (top)
-                                                              (top)
-                                                              (top))
-                                                            #("i4375"
-                                                              "i4376"
-                                                              "i4377"
-                                                              "i4378"
-                                                              "i4379"
-                                                              "i4380"))
-                                                          #(ribcage () () ())
-                                                          #(ribcage
-                                                            #(orig-x)
-                                                            #((top))
-                                                            #("i4372")))
-                                                         (hygiene guile))
-                                                      (append
-                                                        #{c 4386}#
-                                                        (list (cons 
'#(syntax-object
-                                                                       doloop
-                                                                       ((top)
-                                                                        
#(ribcage
-                                                                          ()
-                                                                          ()
-                                                                          ())
-                                                                        
#(ribcage
-                                                                          
#(step)
-                                                                          
#((top))
-                                                                          
#("i4390"))
-                                                                        
#(ribcage
-                                                                          #(var
-                                                                            
init
-                                                                            
step
-                                                                            e0
-                                                                            e1
-                                                                            c)
-                                                                          
#((top)
-                                                                            
(top)
-                                                                            
(top)
-                                                                            
(top)
-                                                                            
(top)
-                                                                            
(top))
-                                                                          
#("i4375"
-                                                                            
"i4376"
-                                                                            
"i4377"
-                                                                            
"i4378"
-                                                                            
"i4379"
-                                                                            
"i4380"))
-                                                                        
#(ribcage
-                                                                          ()
-                                                                          ()
-                                                                          ())
-                                                                        
#(ribcage
-                                                                          
#(orig-x)
-                                                                          
#((top))
-                                                                          
#("i4372")))
-                                                                       (hygiene
-                                                                         
guile))
-                                                                    #{step 
4391}#)))))))
-                                  #{tmp 4393}#)
-                                (let ((#{tmp 4398}#
-                                        ($sc-dispatch
-                                          #{tmp 4392}#
-                                          '(any . each-any))))
-                                  (if #{tmp 4398}#
-                                    (@apply
-                                      (lambda (#{e1 4401}# #{e2 4402}#)
-                                        (list '#(syntax-object
-                                                 let
-                                                 ((top)
-                                                  #(ribcage
-                                                    #(e1 e2)
-                                                    #((top) (top))
-                                                    #("i4399" "i4400"))
-                                                  #(ribcage () () ())
-                                                  #(ribcage
-                                                    #(step)
-                                                    #((top))
-                                                    #("i4390"))
-                                                  #(ribcage
-                                                    #(var init step e0 e1 c)
-                                                    #((top)
-                                                      (top)
-                                                      (top)
-                                                      (top)
-                                                      (top)
-                                                      (top))
-                                                    #("i4375"
-                                                      "i4376"
-                                                      "i4377"
-                                                      "i4378"
-                                                      "i4379"
-                                                      "i4380"))
-                                                  #(ribcage () () ())
-                                                  #(ribcage
-                                                    #(orig-x)
-                                                    #((top))
-                                                    #("i4372")))
-                                                 (hygiene guile))
-                                              '#(syntax-object
-                                                 doloop
-                                                 ((top)
-                                                  #(ribcage
-                                                    #(e1 e2)
-                                                    #((top) (top))
-                                                    #("i4399" "i4400"))
-                                                  #(ribcage () () ())
-                                                  #(ribcage
-                                                    #(step)
-                                                    #((top))
-                                                    #("i4390"))
-                                                  #(ribcage
-                                                    #(var init step e0 e1 c)
-                                                    #((top)
-                                                      (top)
-                                                      (top)
-                                                      (top)
-                                                      (top)
-                                                      (top))
-                                                    #("i4375"
-                                                      "i4376"
-                                                      "i4377"
-                                                      "i4378"
-                                                      "i4379"
-                                                      "i4380"))
-                                                  #(ribcage () () ())
-                                                  #(ribcage
-                                                    #(orig-x)
-                                                    #((top))
-                                                    #("i4372")))
-                                                 (hygiene guile))
-                                              (map list
-                                                   #{var 4381}#
-                                                   #{init 4382}#)
-                                              (list '#(syntax-object
-                                                       if
-                                                       ((top)
-                                                        #(ribcage
-                                                          #(e1 e2)
-                                                          #((top) (top))
-                                                          #("i4399" "i4400"))
-                                                        #(ribcage () () ())
-                                                        #(ribcage
-                                                          #(step)
-                                                          #((top))
-                                                          #("i4390"))
-                                                        #(ribcage
-                                                          #(var
-                                                            init
-                                                            step
-                                                            e0
-                                                            e1
-                                                            c)
-                                                          #((top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top))
-                                                          #("i4375"
-                                                            "i4376"
-                                                            "i4377"
-                                                            "i4378"
-                                                            "i4379"
-                                                            "i4380"))
-                                                        #(ribcage () () ())
-                                                        #(ribcage
-                                                          #(orig-x)
-                                                          #((top))
-                                                          #("i4372")))
-                                                       (hygiene guile))
-                                                    #{e0 4384}#
-                                                    (cons '#(syntax-object
-                                                             begin
-                                                             ((top)
-                                                              #(ribcage
-                                                                #(e1 e2)
-                                                                #((top) (top))
-                                                                #("i4399"
-                                                                  "i4400"))
-                                                              #(ribcage
-                                                                ()
-                                                                ()
-                                                                ())
-                                                              #(ribcage
-                                                                #(step)
-                                                                #((top))
-                                                                #("i4390"))
-                                                              #(ribcage
-                                                                #(var
-                                                                  init
-                                                                  step
-                                                                  e0
-                                                                  e1
-                                                                  c)
-                                                                #((top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top))
-                                                                #("i4375"
-                                                                  "i4376"
-                                                                  "i4377"
-                                                                  "i4378"
-                                                                  "i4379"
-                                                                  "i4380"))
-                                                              #(ribcage
-                                                                ()
-                                                                ()
-                                                                ())
-                                                              #(ribcage
-                                                                #(orig-x)
-                                                                #((top))
-                                                                #("i4372")))
-                                                             (hygiene guile))
-                                                          (cons #{e1 4401}#
-                                                                #{e2 4402}#))
-                                                    (cons '#(syntax-object
-                                                             begin
-                                                             ((top)
-                                                              #(ribcage
-                                                                #(e1 e2)
-                                                                #((top) (top))
-                                                                #("i4399"
-                                                                  "i4400"))
-                                                              #(ribcage
-                                                                ()
-                                                                ()
-                                                                ())
-                                                              #(ribcage
-                                                                #(step)
-                                                                #((top))
-                                                                #("i4390"))
-                                                              #(ribcage
-                                                                #(var
-                                                                  init
-                                                                  step
-                                                                  e0
-                                                                  e1
-                                                                  c)
-                                                                #((top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top)
-                                                                  (top))
-                                                                #("i4375"
-                                                                  "i4376"
-                                                                  "i4377"
-                                                                  "i4378"
-                                                                  "i4379"
-                                                                  "i4380"))
-                                                              #(ribcage
-                                                                ()
-                                                                ()
-                                                                ())
-                                                              #(ribcage
-                                                                #(orig-x)
-                                                                #((top))
-                                                                #("i4372")))
-                                                             (hygiene guile))
-                                                          (append
-                                                            #{c 4386}#
-                                                            (list (cons 
'#(syntax-object
-                                                                           
doloop
-                                                                           
((top)
-                                                                            
#(ribcage
-                                                                              
#(e1
-                                                                               
 e2)
-                                                                              
#((top)
-                                                                               
 (top))
-                                                                              
#("i4399"
-                                                                               
 "i4400"))
-                                                                            
#(ribcage
-                                                                              
()
-                                                                              
()
-                                                                              
())
-                                                                            
#(ribcage
-                                                                              
#(step)
-                                                                              
#((top))
-                                                                              
#("i4390"))
-                                                                            
#(ribcage
-                                                                              
#(var
-                                                                               
 init
-                                                                               
 step
-                                                                               
 e0
-                                                                               
 e1
-                                                                               
 c)
-                                                                              
#((top)
-                                                                               
 (top)
-                                                                               
 (top)
-                                                                               
 (top)
-                                                                               
 (top)
-                                                                               
 (top))
-                                                                              
#("i4375"
-                                                                               
 "i4376"
-                                                                               
 "i4377"
-                                                                               
 "i4378"
-                                                                               
 "i4379"
-                                                                               
 "i4380"))
-                                                                            
#(ribcage
-                                                                              
()
-                                                                              
()
-                                                                              
())
-                                                                            
#(ribcage
-                                                                              
#(orig-x)
-                                                                              
#((top))
-                                                                              
#("i4372")))
-                                                                           
(hygiene
-                                                                             
guile))
-                                                                        #{step 
4391}#)))))))
-                                      #{tmp 4398}#)
-                                    (syntax-violation
+                                 (#{build-simple-lambda 291}#
+                                   #f
+                                   (list (syntax->datum #{pat 3940}#))
+                                   #f
+                                   (list #{var 3950}#)
+                                   '()
+                                   (#{chi 441}#
+                                     #{exp 3941}#
+                                     (#{extend-env 341}#
+                                       #{labels 3949}#
+                                       (list (cons 'syntax
+                                                   (cons #{var 3950}# 0)))
+                                       #{r 3926}#)
+                                     (#{make-binding-wrap 405}#
+                                       (list #{pat 3940}#)
+                                       #{labels 3949}#
+                                       '(()))
+                                     #{mod 3927}#))
+                                 (list #{x 3923}#))))
+                           (#{gen-clause 3740}#
+                             #{x 3923}#
+                             #{keys 3924}#
+                             (cdr #{clauses 3925}#)
+                             #{r 3926}#
+                             #{pat 3940}#
+                             #t
+                             #{exp 3941}#
+                             #{mod 3927}#)))
+                       #{tmp 3937}#)
+                     (let ((#{tmp 3956}#
+                             ($sc-dispatch #{tmp 3936}# '(any any any))))
+                       (if #{tmp 3956}#
+                         (@apply
+                           (lambda (#{pat 3960}# #{fender 3961}# #{exp 3962}#)
+                             (#{gen-clause 3740}#
+                               #{x 3923}#
+                               #{keys 3924}#
+                               (cdr #{clauses 3925}#)
+                               #{r 3926}#
+                               #{pat 3960}#
+                               #{fender 3961}#
+                               #{exp 3962}#
+                               #{mod 3927}#))
+                           #{tmp 3956}#)
+                         (syntax-violation
+                           'syntax-case
+                           "invalid clause"
+                           (car #{clauses 3925}#)))))))))))
+        (lambda (#{e 3965}#
+                 #{r 3966}#
+                 #{w 3967}#
+                 #{s 3968}#
+                 #{mod 3969}#)
+          (let ((#{e 3976}#
+                  (let ((#{x 10789}#
+                          (begin
+                            (if (if (pair? #{e 3965}#) #{s 3968}# #f)
+                              (set-source-properties! #{e 3965}# #{s 3968}#))
+                            #{e 3965}#)))
+                    (if (if (null? (car #{w 3967}#))
+                          (null? (cdr #{w 3967}#))
+                          #f)
+                      #{x 10789}#
+                      (if (if (vector? #{x 10789}#)
+                            (if (= (vector-length #{x 10789}#) 4)
+                              (eq? (vector-ref #{x 10789}# 0) 'syntax-object)
+                              #f)
+                            #f)
+                        (let ((#{expression 10801}# (vector-ref #{x 10789}# 1))
+                              (#{wrap 10802}#
+                                (let ((#{w2 10810}#
+                                        (vector-ref #{x 10789}# 2)))
+                                  (let ((#{m1 10811}# (car #{w 3967}#))
+                                        (#{s1 10812}# (cdr #{w 3967}#)))
+                                    (if (null? #{m1 10811}#)
+                                      (if (null? #{s1 10812}#)
+                                        #{w2 10810}#
+                                        (cons (car #{w2 10810}#)
+                                              (let ((#{m2 10819}#
+                                                      (cdr #{w2 10810}#)))
+                                                (if (null? #{m2 10819}#)
+                                                  #{s1 10812}#
+                                                  (append
+                                                    #{s1 10812}#
+                                                    #{m2 10819}#)))))
+                                      (cons (let ((#{m2 10823}#
+                                                    (car #{w2 10810}#)))
+                                              (if (null? #{m2 10823}#)
+                                                #{m1 10811}#
+                                                (append
+                                                  #{m1 10811}#
+                                                  #{m2 10823}#)))
+                                            (let ((#{m2 10827}#
+                                                    (cdr #{w2 10810}#)))
+                                              (if (null? #{m2 10827}#)
+                                                #{s1 10812}#
+                                                (append
+                                                  #{s1 10812}#
+                                                  #{m2 10827}#))))))))
+                              (#{module 10803}# (vector-ref #{x 10789}# 3)))
+                          (vector
+                            'syntax-object
+                            #{expression 10801}#
+                            #{wrap 10802}#
+                            #{module 10803}#))
+                        (if (null? #{x 10789}#)
+                          #{x 10789}#
+                          (vector
+                            'syntax-object
+                            #{x 10789}#
+                            #{w 3967}#
+                            #{mod 3969}#)))))))
+            (let ((#{tmp 3978}#
+                    ($sc-dispatch
+                      #{e 3976}#
+                      '(_ any each-any . each-any))))
+              (if #{tmp 3978}#
+                (@apply
+                  (lambda (#{val 3982}# #{key 3983}# #{m 3984}#)
+                    (if (and-map
+                          (lambda (#{x 3985}#)
+                            (if (if (symbol? #{x 3985}#)
+                                  #t
+                                  (if (if (vector? #{x 3985}#)
+                                        (if (= (vector-length #{x 3985}#) 4)
+                                          (eq? (vector-ref #{x 3985}# 0)
+                                               'syntax-object)
+                                          #f)
+                                        #f)
+                                    (symbol? (vector-ref #{x 3985}# 1))
+                                    #f))
+                              (not (if (if (if (vector? #{x 3985}#)
+                                             (if (= (vector-length #{x 3985}#)
+                                                    4)
+                                               (eq? (vector-ref #{x 3985}# 0)
+                                                    'syntax-object)
+                                               #f)
+                                             #f)
+                                         (symbol? (vector-ref #{x 3985}# 1))
+                                         #f)
+                                     (#{free-id=? 417}#
+                                       #{x 3985}#
+                                       '#(syntax-object
+                                          ...
+                                          ((top)
+                                           #(ribcage () () ())
+                                           #(ribcage () () ())
+                                           #(ribcage #(x) #((top)) #("i2262"))
+                                           #(ribcage
+                                             (lambda-var-list
+                                               gen-var
+                                               strip
+                                               chi-lambda-case
+                                               lambda*-formals
+                                               chi-simple-lambda
+                                               lambda-formals
+                                               ellipsis?
+                                               chi-void
+                                               eval-local-transformer
+                                               chi-local-syntax
+                                               chi-body
+                                               chi-macro
+                                               chi-call
+                                               chi-expr
+                                               chi
+                                               syntax-type
+                                               chi-when-list
+                                               chi-install-global
+                                               chi-top-sequence
+                                               chi-sequence
+                                               source-wrap
+                                               wrap
+                                               bound-id-member?
+                                               distinct-bound-ids?
+                                               valid-bound-ids?
+                                               bound-id=?
+                                               free-id=?
+                                               id-var-name
+                                               same-marks?
+                                               join-marks
+                                               join-wraps
+                                               smart-append
+                                               make-binding-wrap
+                                               extend-ribcage!
+                                               make-empty-ribcage
+                                               new-mark
+                                               anti-mark
+                                               the-anti-mark
+                                               top-marked?
+                                               top-wrap
+                                               empty-wrap
+                                               set-ribcage-labels!
+                                               set-ribcage-marks!
+                                               set-ribcage-symnames!
+                                               ribcage-labels
+                                               ribcage-marks
+                                               ribcage-symnames
+                                               ribcage?
+                                               make-ribcage
+                                               gen-labels
+                                               gen-label
+                                               make-rename
+                                               rename-marks
+                                               rename-new
+                                               rename-old
+                                               subst-rename?
+                                               wrap-subst
+                                               wrap-marks
+                                               make-wrap
+                                               id-sym-name&marks
+                                               id-sym-name
+                                               id?
+                                               nonsymbol-id?
+                                               global-extend
+                                               lookup
+                                               macros-only-env
+                                               extend-var-env
+                                               extend-env
+                                               null-env
+                                               binding-value
+                                               binding-type
+                                               make-binding
+                                               arg-check
+                                               source-annotation
+                                               no-source
+                                               set-syntax-object-module!
+                                               set-syntax-object-wrap!
+                                               set-syntax-object-expression!
+                                               syntax-object-module
+                                               syntax-object-wrap
+                                               syntax-object-expression
+                                               syntax-object?
+                                               make-syntax-object
+                                               build-lexical-var
+                                               build-letrec
+                                               build-named-let
+                                               build-let
+                                               build-sequence
+                                               build-data
+                                               build-primref
+                                               build-primcall
+                                               build-lambda-case
+                                               build-case-lambda
+                                               build-simple-lambda
+                                               build-global-definition
+                                               build-global-assignment
+                                               build-global-reference
+                                               analyze-variable
+                                               build-lexical-assignment
+                                               build-lexical-reference
+                                               build-dynlet
+                                               build-conditional
+                                               build-call
+                                               build-void
+                                               maybe-name-value!
+                                               decorate-source
+                                               get-global-definition-hook
+                                               put-global-definition-hook
+                                               gensym-hook
+                                               local-eval-hook
+                                               top-level-eval-hook
+                                               fx<
+                                               fx=
+                                               fx-
+                                               fx+
+                                               set-lambda-meta!
+                                               lambda-meta
+                                               lambda?
+                                               make-dynlet
+                                               make-letrec
+                                               make-let
+                                               make-lambda-case
+                                               make-lambda
+                                               make-seq
+                                               make-primcall
+                                               make-call
+                                               make-conditional
+                                               make-toplevel-define
+                                               make-toplevel-set
+                                               make-toplevel-ref
+                                               make-module-set
+                                               make-module-ref
+                                               make-lexical-set
+                                               make-lexical-ref
+                                               make-primitive-ref
+                                               make-const
+                                               make-void)
+                                             ((top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top))
+                                             ("i470"
+                                              "i468"
+                                              "i466"
+                                              "i464"
+                                              "i462"
+                                              "i460"
+                                              "i458"
+                                              "i456"
+                                              "i454"
+                                              "i452"
+                                              "i450"
+                                              "i448"
+                                              "i446"
+                                              "i444"
+                                              "i442"
+                                              "i440"
+                                              "i438"
+                                              "i436"
+                                              "i434"
+                                              "i432"
+                                              "i430"
+                                              "i428"
+                                              "i426"
+                                              "i424"
+                                              "i422"
+                                              "i420"
+                                              "i418"
+                                              "i416"
+                                              "i414"
+                                              "i412"
+                                              "i410"
+                                              "i408"
+                                              "i406"
+                                              "i404"
+                                              "i402"
+                                              "i401"
+                                              "i399"
+                                              "i396"
+                                              "i395"
+                                              "i394"
+                                              "i392"
+                                              "i391"
+                                              "i389"
+                                              "i387"
+                                              "i385"
+                                              "i383"
+                                              "i381"
+                                              "i379"
+                                              "i377"
+                                              "i375"
+                                              "i372"
+                                              "i370"
+                                              "i369"
+                                              "i367"
+                                              "i365"
+                                              "i363"
+                                              "i361"
+                                              "i360"
+                                              "i359"
+                                              "i358"
+                                              "i356"
+                                              "i355"
+                                              "i352"
+                                              "i350"
+                                              "i348"
+                                              "i346"
+                                              "i344"
+                                              "i342"
+                                              "i340"
+                                              "i339"
+                                              "i338"
+                                              "i336"
+                                              "i334"
+                                              "i333"
+                                              "i330"
+                                              "i329"
+                                              "i327"
+                                              "i325"
+                                              "i323"
+                                              "i321"
+                                              "i319"
+                                              "i317"
+                                              "i315"
+                                              "i313"
+                                              "i311"
+                                              "i308"
+                                              "i306"
+                                              "i304"
+                                              "i302"
+                                              "i300"
+                                              "i298"
+                                              "i296"
+                                              "i294"
+                                              "i292"
+                                              "i290"
+                                              "i288"
+                                              "i286"
+                                              "i284"
+                                              "i282"
+                                              "i280"
+                                              "i278"
+                                              "i276"
+                                              "i274"
+                                              "i272"
+                                              "i270"
+                                              "i268"
+                                              "i266"
+                                              "i264"
+                                              "i262"
+                                              "i261"
+                                              "i258"
+                                              "i256"
+                                              "i255"
+                                              "i254"
+                                              "i253"
+                                              "i252"
+                                              "i250"
+                                              "i248"
+                                              "i246"
+                                              "i243"
+                                              "i241"
+                                              "i239"
+                                              "i237"
+                                              "i235"
+                                              "i233"
+                                              "i231"
+                                              "i229"
+                                              "i227"
+                                              "i225"
+                                              "i223"
+                                              "i221"
+                                              "i219"
+                                              "i217"
+                                              "i215"
+                                              "i213"
+                                              "i211"
+                                              "i209"
+                                              "i207"))
+                                           #(ribcage
+                                             (define-structure
+                                               define-expansion-accessors
+                                               define-expansion-constructors)
+                                             ((top) (top) (top))
+                                             ("i45" "i44" "i43")))
+                                          (hygiene guile)))
+                                     #f))
+                              #f))
+                          #{key 3983}#)
+                      (let ((#{x 3991}#
+                              (gensym
+                                (string-append (symbol->string 'tmp) " "))))
+                        (#{build-call 273}#
+                          #{s 3968}#
+                          (let ((#{req 10960}# (list 'tmp))
+                                (#{vars 10962}# (list #{x 3991}#))
+                                (#{exp 10964}#
+                                  (#{gen-syntax-case 3742}#
+                                    (make-struct/no-tail
+                                      (vector-ref %expanded-vtables 3)
                                       #f
-                                      "source expression failed to match any 
pattern"
-                                      #{tmp 4392}#)))))))
-                        #{tmp 4389}#)
+                                      'tmp
+                                      #{x 3991}#)
+                                    #{key 3983}#
+                                    #{m 3984}#
+                                    #{r 3966}#
+                                    #{mod 3969}#)))
+                            (let ((#{body 10981}#
+                                    (make-struct/no-tail
+                                      (vector-ref %expanded-vtables 15)
+                                      #f
+                                      #{req 10960}#
+                                      #f
+                                      #f
+                                      #f
+                                      '()
+                                      #{vars 10962}#
+                                      #{exp 10964}#
+                                      #f)))
+                              (make-struct/no-tail
+                                (vector-ref %expanded-vtables 14)
+                                #f
+                                '()
+                                #{body 10981}#)))
+                          (list (#{chi 441}#
+                                  #{val 3982}#
+                                  #{r 3966}#
+                                  '(())
+                                  #{mod 3969}#))))
                       (syntax-violation
-                        #f
-                        "source expression failed to match any pattern"
-                        #{tmp 4388}#)))))
-              #{tmp 4374}#)
+                        'syntax-case
+                        "invalid literals list"
+                        #{e 3976}#)))
+                  #{tmp 3978}#)
+                (syntax-violation
+                  #f
+                  "source expression failed to match any pattern"
+                  #{e 3976}#)))))))
+    (set! macroexpand
+      (lambda*
+        (#{x 3997}#
+          #:optional
+          (#{m 3999}# 'e)
+          (#{esew 4001}# '(eval)))
+        (#{chi-top-sequence 433}#
+          (list #{x 3997}#)
+          '()
+          '((top))
+          #f
+          #{m 3999}#
+          #{esew 4001}#
+          (cons 'hygiene (module-name (current-module))))))
+    (set! identifier?
+      (lambda (#{x 4005}#)
+        (if (if (vector? #{x 4005}#)
+              (if (= (vector-length #{x 4005}#) 4)
+                (eq? (vector-ref #{x 4005}# 0) 'syntax-object)
+                #f)
+              #f)
+          (symbol? (vector-ref #{x 4005}# 1))
+          #f)))
+    (set! datum->syntax
+      (lambda (#{id 4007}# #{datum 4008}#)
+        (let ((#{wrap 11055}# (vector-ref #{id 4007}# 2))
+              (#{module 11056}# (vector-ref #{id 4007}# 3)))
+          (vector
+            'syntax-object
+            #{datum 4008}#
+            #{wrap 11055}#
+            #{module 11056}#))))
+    (set! syntax->datum
+      (lambda (#{x 4011}#)
+        (#{strip 467}# #{x 4011}# '(()))))
+    (set! syntax-source
+      (lambda (#{x 4014}#)
+        (#{source-annotation 331}# #{x 4014}#)))
+    (set! generate-temporaries
+      (lambda (#{ls 4016}#)
+        (begin
+          (if (not (list? #{ls 4016}#))
             (syntax-violation
-              #f
-              "source expression failed to match any pattern"
-              #{tmp 4373}#)))))))
-
-(define quasiquote
-  (make-syntax-transformer
-    'quasiquote
-    'macro
+              'generate-temporaries
+              "invalid argument"
+              #{ls 4016}#))
+          (let ((#{mod 4022}#
+                  (cons 'hygiene (module-name (current-module)))))
+            (map (lambda (#{x 4023}#)
+                   (let ((#{x 11191}# (gensym)))
+                     (if (if (vector? #{x 11191}#)
+                           (if (= (vector-length #{x 11191}#) 4)
+                             (eq? (vector-ref #{x 11191}# 0) 'syntax-object)
+                             #f)
+                           #f)
+                       (let ((#{expression 11200}# (vector-ref #{x 11191}# 1))
+                             (#{wrap 11201}#
+                               (let ((#{w2 11209}# (vector-ref #{x 11191}# 2)))
+                                 (cons (let ((#{m2 11219}# (car #{w2 11209}#)))
+                                         (if (null? #{m2 11219}#)
+                                           '(top)
+                                           (append '(top) #{m2 11219}#)))
+                                       (let ((#{m2 11223}# (cdr #{w2 11209}#)))
+                                         (if (null? #{m2 11223}#)
+                                           '()
+                                           (append '() #{m2 11223}#))))))
+                             (#{module 11202}# (vector-ref #{x 11191}# 3)))
+                         (vector
+                           'syntax-object
+                           #{expression 11200}#
+                           #{wrap 11201}#
+                           #{module 11202}#))
+                       (if (null? #{x 11191}#)
+                         #{x 11191}#
+                         (vector
+                           'syntax-object
+                           #{x 11191}#
+                           '((top))
+                           #{mod 4022}#)))))
+                 #{ls 4016}#)))))
+    (set! free-identifier=?
+      (lambda (#{x 4027}# #{y 4028}#)
+        (begin
+          (if (not (if (if (vector? #{x 4027}#)
+                         (if (= (vector-length #{x 4027}#) 4)
+                           (eq? (vector-ref #{x 4027}# 0) 'syntax-object)
+                           #f)
+                         #f)
+                     (symbol? (vector-ref #{x 4027}# 1))
+                     #f))
+            (syntax-violation
+              'free-identifier=?
+              "invalid argument"
+              #{x 4027}#))
+          (if (not (if (if (vector? #{y 4028}#)
+                         (if (= (vector-length #{y 4028}#) 4)
+                           (eq? (vector-ref #{y 4028}# 0) 'syntax-object)
+                           #f)
+                         #f)
+                     (symbol? (vector-ref #{y 4028}# 1))
+                     #f))
+            (syntax-violation
+              'free-identifier=?
+              "invalid argument"
+              #{y 4028}#))
+          (#{free-id=? 417}# #{x 4027}# #{y 4028}#))))
+    (set! bound-identifier=?
+      (lambda (#{x 4037}# #{y 4038}#)
+        (begin
+          (if (not (if (if (vector? #{x 4037}#)
+                         (if (= (vector-length #{x 4037}#) 4)
+                           (eq? (vector-ref #{x 4037}# 0) 'syntax-object)
+                           #f)
+                         #f)
+                     (symbol? (vector-ref #{x 4037}# 1))
+                     #f))
+            (syntax-violation
+              'bound-identifier=?
+              "invalid argument"
+              #{x 4037}#))
+          (if (not (if (if (vector? #{y 4038}#)
+                         (if (= (vector-length #{y 4038}#) 4)
+                           (eq? (vector-ref #{y 4038}# 0) 'syntax-object)
+                           #f)
+                         #f)
+                     (symbol? (vector-ref #{y 4038}# 1))
+                     #f))
+            (syntax-violation
+              'bound-identifier=?
+              "invalid argument"
+              #{y 4038}#))
+          (#{bound-id=? 419}# #{x 4037}# #{y 4038}#))))
+    (set! syntax-violation
+      (lambda*
+        (#{who 4047}#
+          #{message 4048}#
+          #{form 4049}#
+          #:optional
+          (#{subform 4053}# #f))
+        (begin
+          (if (not (if (not #{who 4047}#)
+                     (not #{who 4047}#)
+                     (let ((#{t 4065}# (string? #{who 4047}#)))
+                       (if #{t 4065}# #{t 4065}# (symbol? #{who 4047}#)))))
+            (syntax-violation
+              'syntax-violation
+              "invalid argument"
+              #{who 4047}#))
+          (if (not (string? #{message 4048}#))
+            (syntax-violation
+              'syntax-violation
+              "invalid argument"
+              #{message 4048}#))
+          (throw 'syntax-error
+                 #{who 4047}#
+                 #{message 4048}#
+                 (#{source-annotation 331}#
+                   (if #{form 4049}# #{form 4049}# #{subform 4053}#))
+                 (#{strip 467}# #{form 4049}# '(()))
+                 (if #{subform 4053}#
+                   (#{strip 467}# #{subform 4053}# '(()))
+                   #f)))))
     (letrec*
-      ((#{quasi 4423}#
-         (lambda (#{p 4436}# #{lev 4437}#)
-           (let ((#{tmp 4440}# #{p 4436}#))
-             (let ((#{tmp 4441}#
-                     ($sc-dispatch
-                       #{tmp 4440}#
-                       '(#(free-id
-                           #(syntax-object
-                             unquote
-                             ((top)
-                              #(ribcage () () ())
-                              #(ribcage
-                                #(p lev)
-                                #((top) (top))
-                                #("i4438" "i4439"))
-                              #(ribcage
-                                (emit quasivector
-                                      quasilist*
-                                      quasiappend
-                                      quasicons
-                                      vquasi
-                                      quasi)
-                                ((top) (top) (top) (top) (top) (top) (top))
-                                ("i4434"
-                                 "i4432"
-                                 "i4430"
-                                 "i4428"
-                                 "i4426"
-                                 "i4424"
-                                 "i4422")))
-                             (hygiene guile)))
-                         any))))
-               (if #{tmp 4441}#
-                 (@apply
-                   (lambda (#{p 4443}#)
-                     (if (= #{lev 4437}# 0)
-                       (list '#(syntax-object
-                                "value"
-                                ((top)
-                                 #(ribcage #(p) #((top)) #("i4442"))
-                                 #(ribcage () () ())
-                                 #(ribcage
-                                   #(p lev)
-                                   #((top) (top))
-                                   #("i4438" "i4439"))
-                                 #(ribcage
-                                   (emit quasivector
-                                         quasilist*
-                                         quasiappend
-                                         quasicons
-                                         vquasi
-                                         quasi)
-                                   ((top) (top) (top) (top) (top) (top) (top))
-                                   ("i4434"
-                                    "i4432"
-                                    "i4430"
-                                    "i4428"
-                                    "i4426"
-                                    "i4424"
-                                    "i4422")))
-                                (hygiene guile))
-                             #{p 4443}#)
-                       (#{quasicons 4427}#
-                         '(#(syntax-object
-                             "quote"
-                             ((top)
-                              #(ribcage #(p) #((top)) #("i4442"))
-                              #(ribcage () () ())
-                              #(ribcage
-                                #(p lev)
-                                #((top) (top))
-                                #("i4438" "i4439"))
-                              #(ribcage
-                                (emit quasivector
-                                      quasilist*
-                                      quasiappend
-                                      quasicons
-                                      vquasi
-                                      quasi)
-                                ((top) (top) (top) (top) (top) (top) (top))
-                                ("i4434"
-                                 "i4432"
-                                 "i4430"
-                                 "i4428"
-                                 "i4426"
-                                 "i4424"
-                                 "i4422")))
-                             (hygiene guile))
-                           #(syntax-object
-                             unquote
-                             ((top)
-                              #(ribcage #(p) #((top)) #("i4442"))
-                              #(ribcage () () ())
-                              #(ribcage
-                                #(p lev)
-                                #((top) (top))
-                                #("i4438" "i4439"))
-                              #(ribcage
-                                (emit quasivector
-                                      quasilist*
-                                      quasiappend
-                                      quasicons
-                                      vquasi
-                                      quasi)
-                                ((top) (top) (top) (top) (top) (top) (top))
-                                ("i4434"
-                                 "i4432"
-                                 "i4430"
-                                 "i4428"
-                                 "i4426"
-                                 "i4424"
-                                 "i4422")))
-                             (hygiene guile)))
-                         (#{quasi 4423}#
-                           (list #{p 4443}#)
-                           (#{1-}# #{lev 4437}#)))))
-                   #{tmp 4441}#)
-                 (let ((#{tmp 4444}#
-                         ($sc-dispatch
-                           #{tmp 4440}#
-                           '(#(free-id
-                               #(syntax-object
-                                 quasiquote
-                                 ((top)
-                                  #(ribcage () () ())
-                                  #(ribcage
-                                    #(p lev)
-                                    #((top) (top))
-                                    #("i4438" "i4439"))
-                                  #(ribcage
-                                    (emit quasivector
-                                          quasilist*
-                                          quasiappend
-                                          quasicons
-                                          vquasi
-                                          quasi)
-                                    ((top) (top) (top) (top) (top) (top) (top))
-                                    ("i4434"
-                                     "i4432"
-                                     "i4430"
-                                     "i4428"
-                                     "i4426"
-                                     "i4424"
-                                     "i4422")))
-                                 (hygiene guile)))
-                             any))))
-                   (if #{tmp 4444}#
-                     (@apply
-                       (lambda (#{p 4446}#)
-                         (#{quasicons 4427}#
-                           '(#(syntax-object
-                               "quote"
+      ((#{match-each 4079}#
+         (lambda (#{e 4092}# #{p 4093}# #{w 4094}# #{mod 4095}#)
+           (if (pair? #{e 4092}#)
+             (let ((#{first 4103}#
+                     (#{match 4091}#
+                       (car #{e 4092}#)
+                       #{p 4093}#
+                       #{w 4094}#
+                       '()
+                       #{mod 4095}#)))
+               (if #{first 4103}#
+                 (let ((#{rest 4107}#
+                         (#{match-each 4079}#
+                           (cdr #{e 4092}#)
+                           #{p 4093}#
+                           #{w 4094}#
+                           #{mod 4095}#)))
+                   (if #{rest 4107}#
+                     (cons #{first 4103}# #{rest 4107}#)
+                     #f))
+                 #f))
+             (if (null? #{e 4092}#)
+               '()
+               (if (if (vector? #{e 4092}#)
+                     (if (= (vector-length #{e 4092}#) 4)
+                       (eq? (vector-ref #{e 4092}# 0) 'syntax-object)
+                       #f)
+                     #f)
+                 (#{match-each 4079}#
+                   (vector-ref #{e 4092}# 1)
+                   #{p 4093}#
+                   (let ((#{w2 11457}# (vector-ref #{e 4092}# 2)))
+                     (let ((#{m1 11458}# (car #{w 4094}#))
+                           (#{s1 11459}# (cdr #{w 4094}#)))
+                       (if (null? #{m1 11458}#)
+                         (if (null? #{s1 11459}#)
+                           #{w2 11457}#
+                           (cons (car #{w2 11457}#)
+                                 (let ((#{m2 11466}# (cdr #{w2 11457}#)))
+                                   (if (null? #{m2 11466}#)
+                                     #{s1 11459}#
+                                     (append #{s1 11459}# #{m2 11466}#)))))
+                         (cons (let ((#{m2 11470}# (car #{w2 11457}#)))
+                                 (if (null? #{m2 11470}#)
+                                   #{m1 11458}#
+                                   (append #{m1 11458}# #{m2 11470}#)))
+                               (let ((#{m2 11474}# (cdr #{w2 11457}#)))
+                                 (if (null? #{m2 11474}#)
+                                   #{s1 11459}#
+                                   (append #{s1 11459}# #{m2 11474}#)))))))
+                   (vector-ref #{e 4092}# 3))
+                 #f)))))
+       (#{match-each+ 4081}#
+         (lambda (#{e 4115}#
+                  #{x-pat 4116}#
+                  #{y-pat 4117}#
+                  #{z-pat 4118}#
+                  #{w 4119}#
+                  #{r 4120}#
+                  #{mod 4121}#)
+           (letrec*
+             ((#{f 4132}#
+                (lambda (#{e 4133}# #{w 4134}#)
+                  (if (pair? #{e 4133}#)
+                    (call-with-values
+                      (lambda ()
+                        (#{f 4132}# (cdr #{e 4133}#) #{w 4134}#))
+                      (lambda (#{xr* 4137}# #{y-pat 4138}# #{r 4139}#)
+                        (if #{r 4139}#
+                          (if (null? #{y-pat 4138}#)
+                            (let ((#{xr 4144}#
+                                    (#{match 4091}#
+                                      (car #{e 4133}#)
+                                      #{x-pat 4116}#
+                                      #{w 4134}#
+                                      '()
+                                      #{mod 4121}#)))
+                              (if #{xr 4144}#
+                                (values
+                                  (cons #{xr 4144}# #{xr* 4137}#)
+                                  #{y-pat 4138}#
+                                  #{r 4139}#)
+                                (values #f #f #f)))
+                            (values
+                              '()
+                              (cdr #{y-pat 4138}#)
+                              (#{match 4091}#
+                                (car #{e 4133}#)
+                                (car #{y-pat 4138}#)
+                                #{w 4134}#
+                                #{r 4139}#
+                                #{mod 4121}#)))
+                          (values #f #f #f))))
+                    (if (if (vector? #{e 4133}#)
+                          (if (= (vector-length #{e 4133}#) 4)
+                            (eq? (vector-ref #{e 4133}# 0) 'syntax-object)
+                            #f)
+                          #f)
+                      (#{f 4132}#
+                        (vector-ref #{e 4133}# 1)
+                        (let ((#{m1 11490}# (car #{w 4134}#))
+                              (#{s1 11491}# (cdr #{w 4134}#)))
+                          (if (null? #{m1 11490}#)
+                            (if (null? #{s1 11491}#)
+                              #{e 4133}#
+                              (cons (car #{e 4133}#)
+                                    (let ((#{m2 11495}# (cdr #{e 4133}#)))
+                                      (if (null? #{m2 11495}#)
+                                        #{s1 11491}#
+                                        (append #{s1 11491}# #{m2 11495}#)))))
+                            (cons (let ((#{m2 11499}# (car #{e 4133}#)))
+                                    (if (null? #{m2 11499}#)
+                                      #{m1 11490}#
+                                      (append #{m1 11490}# #{m2 11499}#)))
+                                  (let ((#{m2 11503}# (cdr #{e 4133}#)))
+                                    (if (null? #{m2 11503}#)
+                                      #{s1 11491}#
+                                      (append #{s1 11491}# #{m2 11503}#)))))))
+                      (values
+                        '()
+                        #{y-pat 4117}#
+                        (#{match 4091}#
+                          #{e 4133}#
+                          #{z-pat 4118}#
+                          #{w 4134}#
+                          #{r 4120}#
+                          #{mod 4121}#)))))))
+             (#{f 4132}# #{e 4115}# #{w 4119}#))))
+       (#{match-each-any 4083}#
+         (lambda (#{e 4148}# #{w 4149}# #{mod 4150}#)
+           (if (pair? #{e 4148}#)
+             (let ((#{l 4157}#
+                     (#{match-each-any 4083}#
+                       (cdr #{e 4148}#)
+                       #{w 4149}#
+                       #{mod 4150}#)))
+               (if #{l 4157}#
+                 (cons (let ((#{x 11507}# (car #{e 4148}#)))
+                         (if (if (null? (car #{w 4149}#))
+                               (null? (cdr #{w 4149}#))
+                               #f)
+                           #{x 11507}#
+                           (if (if (vector? #{x 11507}#)
+                                 (if (= (vector-length #{x 11507}#) 4)
+                                   (eq? (vector-ref #{x 11507}# 0)
+                                        'syntax-object)
+                                   #f)
+                                 #f)
+                             (let ((#{expression 11515}#
+                                     (vector-ref #{x 11507}# 1))
+                                   (#{wrap 11516}#
+                                     (let ((#{w2 11524}#
+                                             (vector-ref #{x 11507}# 2)))
+                                       (let ((#{m1 11525}# (car #{w 4149}#))
+                                             (#{s1 11526}# (cdr #{w 4149}#)))
+                                         (if (null? #{m1 11525}#)
+                                           (if (null? #{s1 11526}#)
+                                             #{w2 11524}#
+                                             (cons (car #{w2 11524}#)
+                                                   (let ((#{m2 11533}#
+                                                           (cdr #{w2 11524}#)))
+                                                     (if (null? #{m2 11533}#)
+                                                       #{s1 11526}#
+                                                       (append
+                                                         #{s1 11526}#
+                                                         #{m2 11533}#)))))
+                                           (cons (let ((#{m2 11537}#
+                                                         (car #{w2 11524}#)))
+                                                   (if (null? #{m2 11537}#)
+                                                     #{m1 11525}#
+                                                     (append
+                                                       #{m1 11525}#
+                                                       #{m2 11537}#)))
+                                                 (let ((#{m2 11541}#
+                                                         (cdr #{w2 11524}#)))
+                                                   (if (null? #{m2 11541}#)
+                                                     #{s1 11526}#
+                                                     (append
+                                                       #{s1 11526}#
+                                                       #{m2 11541}#))))))))
+                                   (#{module 11517}#
+                                     (vector-ref #{x 11507}# 3)))
+                               (vector
+                                 'syntax-object
+                                 #{expression 11515}#
+                                 #{wrap 11516}#
+                                 #{module 11517}#))
+                             (if (null? #{x 11507}#)
+                               #{x 11507}#
+                               (vector
+                                 'syntax-object
+                                 #{x 11507}#
+                                 #{w 4149}#
+                                 #{mod 4150}#)))))
+                       #{l 4157}#)
+                 #f))
+             (if (null? #{e 4148}#)
+               '()
+               (if (if (vector? #{e 4148}#)
+                     (if (= (vector-length #{e 4148}#) 4)
+                       (eq? (vector-ref #{e 4148}# 0) 'syntax-object)
+                       #f)
+                     #f)
+                 (#{match-each-any 4083}#
+                   (vector-ref #{e 4148}# 1)
+                   (let ((#{w2 11559}# (vector-ref #{e 4148}# 2)))
+                     (let ((#{m1 11560}# (car #{w 4149}#))
+                           (#{s1 11561}# (cdr #{w 4149}#)))
+                       (if (null? #{m1 11560}#)
+                         (if (null? #{s1 11561}#)
+                           #{w2 11559}#
+                           (cons (car #{w2 11559}#)
+                                 (let ((#{m2 11568}# (cdr #{w2 11559}#)))
+                                   (if (null? #{m2 11568}#)
+                                     #{s1 11561}#
+                                     (append #{s1 11561}# #{m2 11568}#)))))
+                         (cons (let ((#{m2 11572}# (car #{w2 11559}#)))
+                                 (if (null? #{m2 11572}#)
+                                   #{m1 11560}#
+                                   (append #{m1 11560}# #{m2 11572}#)))
+                               (let ((#{m2 11576}# (cdr #{w2 11559}#)))
+                                 (if (null? #{m2 11576}#)
+                                   #{s1 11561}#
+                                   (append #{s1 11561}# #{m2 11576}#)))))))
+                   #{mod 4150}#)
+                 #f)))))
+       (#{match-empty 4085}#
+         (lambda (#{p 4165}# #{r 4166}#)
+           (if (null? #{p 4165}#)
+             #{r 4166}#
+             (if (eq? #{p 4165}# '_)
+               #{r 4166}#
+               (if (eq? #{p 4165}# 'any)
+                 (cons '() #{r 4166}#)
+                 (if (pair? #{p 4165}#)
+                   (#{match-empty 4085}#
+                     (car #{p 4165}#)
+                     (#{match-empty 4085}#
+                       (cdr #{p 4165}#)
+                       #{r 4166}#))
+                   (if (eq? #{p 4165}# 'each-any)
+                     (cons '() #{r 4166}#)
+                     (let ((#{atom-key 4182}# (vector-ref #{p 4165}# 0)))
+                       (if (memv #{atom-key 4182}# '(each))
+                         (#{match-empty 4085}#
+                           (vector-ref #{p 4165}# 1)
+                           #{r 4166}#)
+                         (if (memv #{atom-key 4182}# '(each+))
+                           (#{match-empty 4085}#
+                             (vector-ref #{p 4165}# 1)
+                             (#{match-empty 4085}#
+                               (reverse (vector-ref #{p 4165}# 2))
+                               (#{match-empty 4085}#
+                                 (vector-ref #{p 4165}# 3)
+                                 #{r 4166}#)))
+                           (if (memv #{atom-key 4182}# '(free-id atom))
+                             #{r 4166}#
+                             (if (memv #{atom-key 4182}# '(vector))
+                               (#{match-empty 4085}#
+                                 (vector-ref #{p 4165}# 1)
+                                 #{r 4166}#)))))))))))))
+       (#{combine 4087}#
+         (lambda (#{r* 4187}# #{r 4188}#)
+           (if (null? (car #{r* 4187}#))
+             #{r 4188}#
+             (cons (map car #{r* 4187}#)
+                   (#{combine 4087}#
+                     (map cdr #{r* 4187}#)
+                     #{r 4188}#)))))
+       (#{match* 4089}#
+         (lambda (#{e 4191}#
+                  #{p 4192}#
+                  #{w 4193}#
+                  #{r 4194}#
+                  #{mod 4195}#)
+           (if (null? #{p 4192}#)
+             (if (null? #{e 4191}#) #{r 4194}# #f)
+             (if (pair? #{p 4192}#)
+               (if (pair? #{e 4191}#)
+                 (#{match 4091}#
+                   (car #{e 4191}#)
+                   (car #{p 4192}#)
+                   #{w 4193}#
+                   (#{match 4091}#
+                     (cdr #{e 4191}#)
+                     (cdr #{p 4192}#)
+                     #{w 4193}#
+                     #{r 4194}#
+                     #{mod 4195}#)
+                   #{mod 4195}#)
+                 #f)
+               (if (eq? #{p 4192}# 'each-any)
+                 (let ((#{l 4212}#
+                         (#{match-each-any 4083}#
+                           #{e 4191}#
+                           #{w 4193}#
+                           #{mod 4195}#)))
+                   (if #{l 4212}# (cons #{l 4212}# #{r 4194}#) #f))
+                 (let ((#{atom-key 4218}# (vector-ref #{p 4192}# 0)))
+                   (if (memv #{atom-key 4218}# '(each))
+                     (if (null? #{e 4191}#)
+                       (#{match-empty 4085}#
+                         (vector-ref #{p 4192}# 1)
+                         #{r 4194}#)
+                       (let ((#{l 4221}#
+                               (#{match-each 4079}#
+                                 #{e 4191}#
+                                 (vector-ref #{p 4192}# 1)
+                                 #{w 4193}#
+                                 #{mod 4195}#)))
+                         (if #{l 4221}#
+                           (letrec*
+                             ((#{collect 4226}#
+                                (lambda (#{l 4227}#)
+                                  (if (null? (car #{l 4227}#))
+                                    #{r 4194}#
+                                    (cons (map car #{l 4227}#)
+                                          (#{collect 4226}#
+                                            (map cdr #{l 4227}#)))))))
+                             (#{collect 4226}# #{l 4221}#))
+                           #f)))
+                     (if (memv #{atom-key 4218}# '(each+))
+                       (call-with-values
+                         (lambda ()
+                           (#{match-each+ 4081}#
+                             #{e 4191}#
+                             (vector-ref #{p 4192}# 1)
+                             (vector-ref #{p 4192}# 2)
+                             (vector-ref #{p 4192}# 3)
+                             #{w 4193}#
+                             #{r 4194}#
+                             #{mod 4195}#))
+                         (lambda (#{xr* 4229}# #{y-pat 4230}# #{r 4231}#)
+                           (if #{r 4231}#
+                             (if (null? #{y-pat 4230}#)
+                               (if (null? #{xr* 4229}#)
+                                 (#{match-empty 4085}#
+                                   (vector-ref #{p 4192}# 1)
+                                   #{r 4231}#)
+                                 (#{combine 4087}# #{xr* 4229}# #{r 4231}#))
+                               #f)
+                             #f)))
+                       (if (memv #{atom-key 4218}# '(free-id))
+                         (if (if (symbol? #{e 4191}#)
+                               #t
+                               (if (if (vector? #{e 4191}#)
+                                     (if (= (vector-length #{e 4191}#) 4)
+                                       (eq? (vector-ref #{e 4191}# 0)
+                                            'syntax-object)
+                                       #f)
+                                     #f)
+                                 (symbol? (vector-ref #{e 4191}# 1))
+                                 #f))
+                           (if (#{free-id=? 417}#
+                                 (if (if (null? (car #{w 4193}#))
+                                       (null? (cdr #{w 4193}#))
+                                       #f)
+                                   #{e 4191}#
+                                   (if (if (vector? #{e 4191}#)
+                                         (if (= (vector-length #{e 4191}#) 4)
+                                           (eq? (vector-ref #{e 4191}# 0)
+                                                'syntax-object)
+                                           #f)
+                                         #f)
+                                     (let ((#{expression 11659}#
+                                             (vector-ref #{e 4191}# 1))
+                                           (#{wrap 11660}#
+                                             (let ((#{w2 11668}#
+                                                     (vector-ref
+                                                       #{e 4191}#
+                                                       2)))
+                                               (let ((#{m1 11669}#
+                                                       (car #{w 4193}#))
+                                                     (#{s1 11670}#
+                                                       (cdr #{w 4193}#)))
+                                                 (if (null? #{m1 11669}#)
+                                                   (if (null? #{s1 11670}#)
+                                                     #{w2 11668}#
+                                                     (cons (car #{w2 11668}#)
+                                                           (let ((#{m2 11677}#
+                                                                   (cdr #{w2 
11668}#)))
+                                                             (if (null? #{m2 
11677}#)
+                                                               #{s1 11670}#
+                                                               (append
+                                                                 #{s1 11670}#
+                                                                 #{m2 
11677}#)))))
+                                                   (cons (let ((#{m2 11681}#
+                                                                 (car #{w2 
11668}#)))
+                                                           (if (null? #{m2 
11681}#)
+                                                             #{m1 11669}#
+                                                             (append
+                                                               #{m1 11669}#
+                                                               #{m2 11681}#)))
+                                                         (let ((#{m2 11685}#
+                                                                 (cdr #{w2 
11668}#)))
+                                                           (if (null? #{m2 
11685}#)
+                                                             #{s1 11670}#
+                                                             (append
+                                                               #{s1 11670}#
+                                                               #{m2 
11685}#))))))))
+                                           (#{module 11661}#
+                                             (vector-ref #{e 4191}# 3)))
+                                       (vector
+                                         'syntax-object
+                                         #{expression 11659}#
+                                         #{wrap 11660}#
+                                         #{module 11661}#))
+                                     (if (null? #{e 4191}#)
+                                       #{e 4191}#
+                                       (vector
+                                         'syntax-object
+                                         #{e 4191}#
+                                         #{w 4193}#
+                                         #{mod 4195}#))))
+                                 (vector-ref #{p 4192}# 1))
+                             #{r 4194}#
+                             #f)
+                           #f)
+                         (if (memv #{atom-key 4218}# '(atom))
+                           (if (equal?
+                                 (vector-ref #{p 4192}# 1)
+                                 (#{strip 467}# #{e 4191}# #{w 4193}#))
+                             #{r 4194}#
+                             #f)
+                           (if (memv #{atom-key 4218}# '(vector))
+                             (if (vector? #{e 4191}#)
+                               (#{match 4091}#
+                                 (vector->list #{e 4191}#)
+                                 (vector-ref #{p 4192}# 1)
+                                 #{w 4193}#
+                                 #{r 4194}#
+                                 #{mod 4195}#)
+                               #f))))))))))))
+       (#{match 4091}#
+         (lambda (#{e 4248}#
+                  #{p 4249}#
+                  #{w 4250}#
+                  #{r 4251}#
+                  #{mod 4252}#)
+           (if (not #{r 4251}#)
+             #f
+             (if (eq? #{p 4249}# '_)
+               #{r 4251}#
+               (if (eq? #{p 4249}# 'any)
+                 (cons (if (if (null? (car #{w 4250}#))
+                             (null? (cdr #{w 4250}#))
+                             #f)
+                         #{e 4248}#
+                         (if (if (vector? #{e 4248}#)
+                               (if (= (vector-length #{e 4248}#) 4)
+                                 (eq? (vector-ref #{e 4248}# 0) 'syntax-object)
+                                 #f)
+                               #f)
+                           (let ((#{expression 11705}#
+                                   (vector-ref #{e 4248}# 1))
+                                 (#{wrap 11706}#
+                                   (let ((#{w2 11714}#
+                                           (vector-ref #{e 4248}# 2)))
+                                     (let ((#{m1 11715}# (car #{w 4250}#))
+                                           (#{s1 11716}# (cdr #{w 4250}#)))
+                                       (if (null? #{m1 11715}#)
+                                         (if (null? #{s1 11716}#)
+                                           #{w2 11714}#
+                                           (cons (car #{w2 11714}#)
+                                                 (let ((#{m2 11723}#
+                                                         (cdr #{w2 11714}#)))
+                                                   (if (null? #{m2 11723}#)
+                                                     #{s1 11716}#
+                                                     (append
+                                                       #{s1 11716}#
+                                                       #{m2 11723}#)))))
+                                         (cons (let ((#{m2 11727}#
+                                                       (car #{w2 11714}#)))
+                                                 (if (null? #{m2 11727}#)
+                                                   #{m1 11715}#
+                                                   (append
+                                                     #{m1 11715}#
+                                                     #{m2 11727}#)))
+                                               (let ((#{m2 11731}#
+                                                       (cdr #{w2 11714}#)))
+                                                 (if (null? #{m2 11731}#)
+                                                   #{s1 11716}#
+                                                   (append
+                                                     #{s1 11716}#
+                                                     #{m2 11731}#))))))))
+                                 (#{module 11707}# (vector-ref #{e 4248}# 3)))
+                             (vector
+                               'syntax-object
+                               #{expression 11705}#
+                               #{wrap 11706}#
+                               #{module 11707}#))
+                           (if (null? #{e 4248}#)
+                             #{e 4248}#
+                             (vector
+                               'syntax-object
+                               #{e 4248}#
+                               #{w 4250}#
+                               #{mod 4252}#))))
+                       #{r 4251}#)
+                 (if (if (vector? #{e 4248}#)
+                       (if (= (vector-length #{e 4248}#) 4)
+                         (eq? (vector-ref #{e 4248}# 0) 'syntax-object)
+                         #f)
+                       #f)
+                   (#{match* 4089}#
+                     (vector-ref #{e 4248}# 1)
+                     #{p 4249}#
+                     (let ((#{w2 11749}# (vector-ref #{e 4248}# 2)))
+                       (let ((#{m1 11750}# (car #{w 4250}#))
+                             (#{s1 11751}# (cdr #{w 4250}#)))
+                         (if (null? #{m1 11750}#)
+                           (if (null? #{s1 11751}#)
+                             #{w2 11749}#
+                             (cons (car #{w2 11749}#)
+                                   (let ((#{m2 11758}# (cdr #{w2 11749}#)))
+                                     (if (null? #{m2 11758}#)
+                                       #{s1 11751}#
+                                       (append #{s1 11751}# #{m2 11758}#)))))
+                           (cons (let ((#{m2 11762}# (car #{w2 11749}#)))
+                                   (if (null? #{m2 11762}#)
+                                     #{m1 11750}#
+                                     (append #{m1 11750}# #{m2 11762}#)))
+                                 (let ((#{m2 11766}# (cdr #{w2 11749}#)))
+                                   (if (null? #{m2 11766}#)
+                                     #{s1 11751}#
+                                     (append #{s1 11751}# #{m2 11766}#)))))))
+                     #{r 4251}#
+                     (vector-ref #{e 4248}# 3))
+                   (#{match* 4089}#
+                     #{e 4248}#
+                     #{p 4249}#
+                     #{w 4250}#
+                     #{r 4251}#
+                     #{mod 4252}#))))))))
+      (set! $sc-dispatch
+        (lambda (#{e 4267}# #{p 4268}#)
+          (if (eq? #{p 4268}# 'any)
+            (list #{e 4267}#)
+            (if (eq? #{p 4268}# '_)
+              '()
+              (if (if (vector? #{e 4267}#)
+                    (if (= (vector-length #{e 4267}#) 4)
+                      (eq? (vector-ref #{e 4267}# 0) 'syntax-object)
+                      #f)
+                    #f)
+                (#{match* 4089}#
+                  (vector-ref #{e 4267}# 1)
+                  #{p 4268}#
+                  (vector-ref #{e 4267}# 2)
+                  '()
+                  (vector-ref #{e 4267}# 3))
+                (#{match* 4089}#
+                  #{e 4267}#
+                  #{p 4268}#
+                  '(())
+                  '()
+                  #f)))))))))
+
+(define with-syntax
+  (make-syntax-transformer
+    'with-syntax
+    'macro
+    (lambda (#{x 11785}#)
+      (let ((#{tmp 11788}#
+              ($sc-dispatch #{x 11785}# '(_ () any . each-any))))
+        (if #{tmp 11788}#
+          (@apply
+            (lambda (#{e1 11791}# #{e2 11792}#)
+              (cons '#(syntax-object
+                       let
+                       ((top)
+                        #(ribcage
+                          #(e1 e2)
+                          #((top) (top))
+                          #("i11789" "i11790"))
+                        #(ribcage () () ())
+                        #(ribcage #(x) #((top)) #("i11786")))
+                       (hygiene guile))
+                    (cons '() (cons #{e1 11791}# #{e2 11792}#))))
+            #{tmp 11788}#)
+          (let ((#{tmp 11794}#
+                  ($sc-dispatch
+                    #{x 11785}#
+                    '(_ ((any any)) any . each-any))))
+            (if #{tmp 11794}#
+              (@apply
+                (lambda (#{out 11799}#
+                         #{in 11800}#
+                         #{e1 11801}#
+                         #{e2 11802}#)
+                  (list '#(syntax-object
+                           syntax-case
+                           ((top)
+                            #(ribcage
+                              #(out in e1 e2)
+                              #((top) (top) (top) (top))
+                              #("i11795" "i11796" "i11797" "i11798"))
+                            #(ribcage () () ())
+                            #(ribcage #(x) #((top)) #("i11786")))
+                           (hygiene guile))
+                        #{in 11800}#
+                        '()
+                        (list #{out 11799}#
+                              (cons '#(syntax-object
+                                       let
+                                       ((top)
+                                        #(ribcage
+                                          #(out in e1 e2)
+                                          #((top) (top) (top) (top))
+                                          #("i11795"
+                                            "i11796"
+                                            "i11797"
+                                            "i11798"))
+                                        #(ribcage () () ())
+                                        #(ribcage #(x) #((top)) #("i11786")))
+                                       (hygiene guile))
+                                    (cons '()
+                                          (cons #{e1 11801}# #{e2 11802}#))))))
+                #{tmp 11794}#)
+              (let ((#{tmp 11804}#
+                      ($sc-dispatch
+                        #{x 11785}#
+                        '(_ #(each (any any)) any . each-any))))
+                (if #{tmp 11804}#
+                  (@apply
+                    (lambda (#{out 11809}#
+                             #{in 11810}#
+                             #{e1 11811}#
+                             #{e2 11812}#)
+                      (list '#(syntax-object
+                               syntax-case
                                ((top)
-                                #(ribcage #(p) #((top)) #("i4445"))
-                                #(ribcage () () ())
-                                #(ribcage
-                                  #(p lev)
-                                  #((top) (top))
-                                  #("i4438" "i4439"))
                                 #(ribcage
-                                  (emit quasivector
-                                        quasilist*
-                                        quasiappend
-                                        quasicons
-                                        vquasi
-                                        quasi)
-                                  ((top) (top) (top) (top) (top) (top) (top))
-                                  ("i4434"
-                                   "i4432"
-                                   "i4430"
-                                   "i4428"
-                                   "i4426"
-                                   "i4424"
-                                   "i4422")))
-                               (hygiene guile))
-                             #(syntax-object
-                               quasiquote
-                               ((top)
-                                #(ribcage #(p) #((top)) #("i4445"))
+                                  #(out in e1 e2)
+                                  #((top) (top) (top) (top))
+                                  #("i11805" "i11806" "i11807" "i11808"))
                                 #(ribcage () () ())
-                                #(ribcage
-                                  #(p lev)
-                                  #((top) (top))
-                                  #("i4438" "i4439"))
-                                #(ribcage
-                                  (emit quasivector
-                                        quasilist*
-                                        quasiappend
-                                        quasicons
-                                        vquasi
-                                        quasi)
-                                  ((top) (top) (top) (top) (top) (top) (top))
-                                  ("i4434"
-                                   "i4432"
-                                   "i4430"
-                                   "i4428"
-                                   "i4426"
-                                   "i4424"
-                                   "i4422")))
-                               (hygiene guile)))
-                           (#{quasi 4423}#
-                             (list #{p 4446}#)
-                             (#{1+}# #{lev 4437}#))))
-                       #{tmp 4444}#)
-                     (let ((#{tmp 4447}#
-                             ($sc-dispatch #{tmp 4440}# '(any . any))))
-                       (if #{tmp 4447}#
-                         (@apply
-                           (lambda (#{p 4450}# #{q 4451}#)
-                             (let ((#{tmp 4452}# #{p 4450}#))
-                               (let ((#{tmp 4453}#
-                                       ($sc-dispatch
-                                         #{tmp 4452}#
-                                         '(#(free-id
-                                             #(syntax-object
-                                               unquote
-                                               ((top)
-                                                #(ribcage
-                                                  #(p q)
-                                                  #((top) (top))
-                                                  #("i4448" "i4449"))
-                                                #(ribcage () () ())
-                                                #(ribcage
-                                                  #(p lev)
-                                                  #((top) (top))
-                                                  #("i4438" "i4439"))
-                                                #(ribcage
-                                                  (emit quasivector
-                                                        quasilist*
-                                                        quasiappend
-                                                        quasicons
-                                                        vquasi
-                                                        quasi)
-                                                  ((top)
-                                                   (top)
-                                                   (top)
-                                                   (top)
-                                                   (top)
-                                                   (top)
-                                                   (top))
-                                                  ("i4434"
-                                                   "i4432"
-                                                   "i4430"
-                                                   "i4428"
-                                                   "i4426"
-                                                   "i4424"
-                                                   "i4422")))
-                                               (hygiene guile)))
-                                           .
-                                           each-any))))
-                                 (if #{tmp 4453}#
-                                   (@apply
-                                     (lambda (#{p 4455}#)
-                                       (if (= #{lev 4437}# 0)
-                                         (#{quasilist* 4431}#
-                                           (map (lambda (#{tmp 4456}#)
-                                                  (list '#(syntax-object
-                                                           "value"
-                                                           ((top)
-                                                            #(ribcage
-                                                              #(p)
-                                                              #((top))
-                                                              #("i4454"))
-                                                            #(ribcage
-                                                              #(p q)
-                                                              #((top) (top))
-                                                              #("i4448"
-                                                                "i4449"))
-                                                            #(ribcage () () ())
-                                                            #(ribcage
-                                                              #(p lev)
-                                                              #((top) (top))
-                                                              #("i4438"
-                                                                "i4439"))
-                                                            #(ribcage
-                                                              (emit quasivector
-                                                                    quasilist*
-                                                                    quasiappend
-                                                                    quasicons
-                                                                    vquasi
-                                                                    quasi)
-                                                              ((top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top)
-                                                               (top))
-                                                              ("i4434"
-                                                               "i4432"
-                                                               "i4430"
-                                                               "i4428"
-                                                               "i4426"
-                                                               "i4424"
-                                                               "i4422")))
-                                                           (hygiene guile))
-                                                        #{tmp 4456}#))
-                                                #{p 4455}#)
-                                           (#{quasi 4423}#
-                                             #{q 4451}#
-                                             #{lev 4437}#))
-                                         (#{quasicons 4427}#
-                                           (#{quasicons 4427}#
-                                             '(#(syntax-object
-                                                 "quote"
-                                                 ((top)
-                                                  #(ribcage
-                                                    #(p)
-                                                    #((top))
-                                                    #("i4454"))
-                                                  #(ribcage
-                                                    #(p q)
-                                                    #((top) (top))
-                                                    #("i4448" "i4449"))
-                                                  #(ribcage () () ())
-                                                  #(ribcage
-                                                    #(p lev)
-                                                    #((top) (top))
-                                                    #("i4438" "i4439"))
-                                                  #(ribcage
-                                                    (emit quasivector
-                                                          quasilist*
-                                                          quasiappend
-                                                          quasicons
-                                                          vquasi
-                                                          quasi)
-                                                    ((top)
-                                                     (top)
-                                                     (top)
-                                                     (top)
-                                                     (top)
-                                                     (top)
-                                                     (top))
-                                                    ("i4434"
-                                                     "i4432"
-                                                     "i4430"
-                                                     "i4428"
-                                                     "i4426"
-                                                     "i4424"
-                                                     "i4422")))
-                                                 (hygiene guile))
-                                               #(syntax-object
-                                                 unquote
-                                                 ((top)
-                                                  #(ribcage
-                                                    #(p)
-                                                    #((top))
-                                                    #("i4454"))
-                                                  #(ribcage
-                                                    #(p q)
-                                                    #((top) (top))
-                                                    #("i4448" "i4449"))
-                                                  #(ribcage () () ())
-                                                  #(ribcage
-                                                    #(p lev)
-                                                    #((top) (top))
-                                                    #("i4438" "i4439"))
-                                                  #(ribcage
-                                                    (emit quasivector
-                                                          quasilist*
-                                                          quasiappend
-                                                          quasicons
-                                                          vquasi
-                                                          quasi)
-                                                    ((top)
-                                                     (top)
-                                                     (top)
-                                                     (top)
-                                                     (top)
-                                                     (top)
-                                                     (top))
-                                                    ("i4434"
-                                                     "i4432"
-                                                     "i4430"
-                                                     "i4428"
-                                                     "i4426"
-                                                     "i4424"
-                                                     "i4422")))
-                                                 (hygiene guile)))
-                                             (#{quasi 4423}#
-                                               #{p 4455}#
-                                               (#{1-}# #{lev 4437}#)))
-                                           (#{quasi 4423}#
-                                             #{q 4451}#
-                                             #{lev 4437}#))))
-                                     #{tmp 4453}#)
-                                   (let ((#{tmp 4458}#
-                                           ($sc-dispatch
-                                             #{tmp 4452}#
-                                             '(#(free-id
-                                                 #(syntax-object
-                                                   unquote-splicing
-                                                   ((top)
-                                                    #(ribcage
-                                                      #(p q)
-                                                      #((top) (top))
-                                                      #("i4448" "i4449"))
-                                                    #(ribcage () () ())
-                                                    #(ribcage
-                                                      #(p lev)
-                                                      #((top) (top))
-                                                      #("i4438" "i4439"))
-                                                    #(ribcage
-                                                      (emit quasivector
-                                                            quasilist*
-                                                            quasiappend
-                                                            quasicons
-                                                            vquasi
-                                                            quasi)
-                                                      ((top)
-                                                       (top)
-                                                       (top)
-                                                       (top)
-                                                       (top)
-                                                       (top)
-                                                       (top))
-                                                      ("i4434"
-                                                       "i4432"
-                                                       "i4430"
-                                                       "i4428"
-                                                       "i4426"
-                                                       "i4424"
-                                                       "i4422")))
-                                                   (hygiene guile)))
-                                               .
-                                               each-any))))
-                                     (if #{tmp 4458}#
-                                       (@apply
-                                         (lambda (#{p 4460}#)
-                                           (if (= #{lev 4437}# 0)
-                                             (#{quasiappend 4429}#
-                                               (map (lambda (#{tmp 4461}#)
-                                                      (list '#(syntax-object
-                                                               "value"
-                                                               ((top)
-                                                                #(ribcage
-                                                                  #(p)
-                                                                  #((top))
-                                                                  #("i4459"))
-                                                                #(ribcage
-                                                                  #(p q)
-                                                                  #((top)
-                                                                    (top))
-                                                                  #("i4448"
-                                                                    "i4449"))
-                                                                #(ribcage
-                                                                  ()
-                                                                  ()
-                                                                  ())
-                                                                #(ribcage
-                                                                  #(p lev)
-                                                                  #((top)
-                                                                    (top))
-                                                                  #("i4438"
-                                                                    "i4439"))
-                                                                #(ribcage
-                                                                  (emit 
quasivector
-                                                                        
quasilist*
-                                                                        
quasiappend
-                                                                        
quasicons
-                                                                        vquasi
-                                                                        quasi)
-                                                                  ((top)
-                                                                   (top)
-                                                                   (top)
-                                                                   (top)
-                                                                   (top)
-                                                                   (top)
-                                                                   (top))
-                                                                  ("i4434"
-                                                                   "i4432"
-                                                                   "i4430"
-                                                                   "i4428"
-                                                                   "i4426"
-                                                                   "i4424"
-                                                                   "i4422")))
-                                                               (hygiene guile))
-                                                            #{tmp 4461}#))
-                                                    #{p 4460}#)
-                                               (#{quasi 4423}#
-                                                 #{q 4451}#
-                                                 #{lev 4437}#))
-                                             (#{quasicons 4427}#
-                                               (#{quasicons 4427}#
-                                                 '(#(syntax-object
-                                                     "quote"
-                                                     ((top)
-                                                      #(ribcage
-                                                        #(p)
-                                                        #((top))
-                                                        #("i4459"))
-                                                      #(ribcage
-                                                        #(p q)
-                                                        #((top) (top))
-                                                        #("i4448" "i4449"))
-                                                      #(ribcage () () ())
-                                                      #(ribcage
-                                                        #(p lev)
-                                                        #((top) (top))
-                                                        #("i4438" "i4439"))
-                                                      #(ribcage
-                                                        (emit quasivector
-                                                              quasilist*
-                                                              quasiappend
-                                                              quasicons
-                                                              vquasi
-                                                              quasi)
-                                                        ((top)
-                                                         (top)
-                                                         (top)
-                                                         (top)
-                                                         (top)
-                                                         (top)
-                                                         (top))
-                                                        ("i4434"
-                                                         "i4432"
-                                                         "i4430"
-                                                         "i4428"
-                                                         "i4426"
-                                                         "i4424"
-                                                         "i4422")))
-                                                     (hygiene guile))
-                                                   #(syntax-object
-                                                     unquote-splicing
-                                                     ((top)
-                                                      #(ribcage
-                                                        #(p)
-                                                        #((top))
-                                                        #("i4459"))
-                                                      #(ribcage
-                                                        #(p q)
-                                                        #((top) (top))
-                                                        #("i4448" "i4449"))
-                                                      #(ribcage () () ())
-                                                      #(ribcage
-                                                        #(p lev)
-                                                        #((top) (top))
-                                                        #("i4438" "i4439"))
-                                                      #(ribcage
-                                                        (emit quasivector
-                                                              quasilist*
-                                                              quasiappend
-                                                              quasicons
-                                                              vquasi
-                                                              quasi)
-                                                        ((top)
-                                                         (top)
-                                                         (top)
-                                                         (top)
-                                                         (top)
-                                                         (top)
-                                                         (top))
-                                                        ("i4434"
-                                                         "i4432"
-                                                         "i4430"
-                                                         "i4428"
-                                                         "i4426"
-                                                         "i4424"
-                                                         "i4422")))
-                                                     (hygiene guile)))
-                                                 (#{quasi 4423}#
-                                                   #{p 4460}#
-                                                   (#{1-}# #{lev 4437}#)))
-                                               (#{quasi 4423}#
-                                                 #{q 4451}#
-                                                 #{lev 4437}#))))
-                                         #{tmp 4458}#)
-                                       (let ((#{_ 4464}# #{tmp 4452}#))
-                                         (#{quasicons 4427}#
-                                           (#{quasi 4423}#
-                                             #{p 4450}#
-                                             #{lev 4437}#)
-                                           (#{quasi 4423}#
-                                             #{q 4451}#
-                                             #{lev 4437}#)))))))))
-                           #{tmp 4447}#)
-                         (let ((#{tmp 4465}#
-                                 ($sc-dispatch
-                                   #{tmp 4440}#
-                                   '#(vector each-any))))
-                           (if #{tmp 4465}#
-                             (@apply
-                               (lambda (#{x 4467}#)
-                                 (#{quasivector 4433}#
-                                   (#{vquasi 4425}# #{x 4467}# #{lev 4437}#)))
-                               #{tmp 4465}#)
-                             (let ((#{p 4470}# #{tmp 4440}#))
-                               (list '#(syntax-object
-                                        "quote"
-                                        ((top)
-                                         #(ribcage #(p) #((top)) #("i4469"))
-                                         #(ribcage () () ())
-                                         #(ribcage
-                                           #(p lev)
-                                           #((top) (top))
-                                           #("i4438" "i4439"))
-                                         #(ribcage
-                                           (emit quasivector
-                                                 quasilist*
-                                                 quasiappend
-                                                 quasicons
-                                                 vquasi
-                                                 quasi)
-                                           ((top)
-                                            (top)
-                                            (top)
-                                            (top)
-                                            (top)
-                                            (top)
-                                            (top))
-                                           ("i4434"
-                                            "i4432"
-                                            "i4430"
-                                            "i4428"
-                                            "i4426"
-                                            "i4424"
-                                            "i4422")))
-                                        (hygiene guile))
-                                     #{p 4470}#)))))))))))))
-       (#{vquasi 4425}#
-         (lambda (#{p 4471}# #{lev 4472}#)
-           (let ((#{tmp 4475}# #{p 4471}#))
-             (let ((#{tmp 4476}#
-                     ($sc-dispatch #{tmp 4475}# '(any . any))))
-               (if #{tmp 4476}#
-                 (@apply
-                   (lambda (#{p 4479}# #{q 4480}#)
-                     (let ((#{tmp 4481}# #{p 4479}#))
-                       (let ((#{tmp 4482}#
-                               ($sc-dispatch
-                                 #{tmp 4481}#
-                                 '(#(free-id
-                                     #(syntax-object
-                                       unquote
+                                #(ribcage #(x) #((top)) #("i11786")))
+                               (hygiene guile))
+                            (cons '#(syntax-object
+                                     list
+                                     ((top)
+                                      #(ribcage
+                                        #(out in e1 e2)
+                                        #((top) (top) (top) (top))
+                                        #("i11805" "i11806" "i11807" "i11808"))
+                                      #(ribcage () () ())
+                                      #(ribcage #(x) #((top)) #("i11786")))
+                                     (hygiene guile))
+                                  #{in 11810}#)
+                            '()
+                            (list #{out 11809}#
+                                  (cons '#(syntax-object
+                                           let
+                                           ((top)
+                                            #(ribcage
+                                              #(out in e1 e2)
+                                              #((top) (top) (top) (top))
+                                              #("i11805"
+                                                "i11806"
+                                                "i11807"
+                                                "i11808"))
+                                            #(ribcage () () ())
+                                            #(ribcage
+                                              #(x)
+                                              #((top))
+                                              #("i11786")))
+                                           (hygiene guile))
+                                        (cons '()
+                                              (cons #{e1 11811}#
+                                                    #{e2 11812}#))))))
+                    #{tmp 11804}#)
+                  (syntax-violation
+                    #f
+                    "source expression failed to match any pattern"
+                    #{x 11785}#))))))))))
+
+(define syntax-rules
+  (make-syntax-transformer
+    'syntax-rules
+    'macro
+    (lambda (#{x 11816}#)
+      (let ((#{tmp 11819}#
+              ($sc-dispatch
+                #{x 11816}#
+                '(_ each-any . #(each ((any . any) any))))))
+        (if #{tmp 11819}#
+          (@apply
+            (lambda (#{k 11824}#
+                     #{keyword 11825}#
+                     #{pattern 11826}#
+                     #{template 11827}#)
+              (list '#(syntax-object
+                       lambda
+                       ((top)
+                        #(ribcage
+                          #(k keyword pattern template)
+                          #((top) (top) (top) (top))
+                          #("i11820" "i11821" "i11822" "i11823"))
+                        #(ribcage () () ())
+                        #(ribcage #(x) #((top)) #("i11817")))
+                       (hygiene guile))
+                    '(#(syntax-object
+                        x
+                        ((top)
+                         #(ribcage
+                           #(k keyword pattern template)
+                           #((top) (top) (top) (top))
+                           #("i11820" "i11821" "i11822" "i11823"))
+                         #(ribcage () () ())
+                         #(ribcage #(x) #((top)) #("i11817")))
+                        (hygiene guile)))
+                    (vector
+                      '(#(syntax-object
+                          macro-type
+                          ((top)
+                           #(ribcage
+                             #(k keyword pattern template)
+                             #((top) (top) (top) (top))
+                             #("i11820" "i11821" "i11822" "i11823"))
+                           #(ribcage () () ())
+                           #(ribcage #(x) #((top)) #("i11817")))
+                          (hygiene guile))
+                        .
+                        #(syntax-object
+                          syntax-rules
+                          ((top)
+                           #(ribcage
+                             #(k keyword pattern template)
+                             #((top) (top) (top) (top))
+                             #("i11820" "i11821" "i11822" "i11823"))
+                           #(ribcage () () ())
+                           #(ribcage #(x) #((top)) #("i11817")))
+                          (hygiene guile)))
+                      (cons '#(syntax-object
+                               patterns
+                               ((top)
+                                #(ribcage
+                                  #(k keyword pattern template)
+                                  #((top) (top) (top) (top))
+                                  #("i11820" "i11821" "i11822" "i11823"))
+                                #(ribcage () () ())
+                                #(ribcage #(x) #((top)) #("i11817")))
+                               (hygiene guile))
+                            #{pattern 11826}#))
+                    (cons '#(syntax-object
+                             syntax-case
+                             ((top)
+                              #(ribcage
+                                #(k keyword pattern template)
+                                #((top) (top) (top) (top))
+                                #("i11820" "i11821" "i11822" "i11823"))
+                              #(ribcage () () ())
+                              #(ribcage #(x) #((top)) #("i11817")))
+                             (hygiene guile))
+                          (cons '#(syntax-object
+                                   x
+                                   ((top)
+                                    #(ribcage
+                                      #(k keyword pattern template)
+                                      #((top) (top) (top) (top))
+                                      #("i11820" "i11821" "i11822" "i11823"))
+                                    #(ribcage () () ())
+                                    #(ribcage #(x) #((top)) #("i11817")))
+                                   (hygiene guile))
+                                (cons #{k 11824}#
+                                      (map (lambda (#{tmp 11831}#
+                                                    #{tmp 11830}#)
+                                             (list (cons '#(syntax-object
+                                                            dummy
+                                                            ((top)
+                                                             #(ribcage
+                                                               #(k
+                                                                 keyword
+                                                                 pattern
+                                                                 template)
+                                                               #((top)
+                                                                 (top)
+                                                                 (top)
+                                                                 (top))
+                                                               #("i11820"
+                                                                 "i11821"
+                                                                 "i11822"
+                                                                 "i11823"))
+                                                             #(ribcage
+                                                               ()
+                                                               ()
+                                                               ())
+                                                             #(ribcage
+                                                               #(x)
+                                                               #((top))
+                                                               #("i11817")))
+                                                            (hygiene guile))
+                                                         #{tmp 11830}#)
+                                                   (list '#(syntax-object
+                                                            syntax
+                                                            ((top)
+                                                             #(ribcage
+                                                               #(k
+                                                                 keyword
+                                                                 pattern
+                                                                 template)
+                                                               #((top)
+                                                                 (top)
+                                                                 (top)
+                                                                 (top))
+                                                               #("i11820"
+                                                                 "i11821"
+                                                                 "i11822"
+                                                                 "i11823"))
+                                                             #(ribcage
+                                                               ()
+                                                               ()
+                                                               ())
+                                                             #(ribcage
+                                                               #(x)
+                                                               #((top))
+                                                               #("i11817")))
+                                                            (hygiene guile))
+                                                         #{tmp 11831}#)))
+                                           #{template 11827}#
+                                           #{pattern 11826}#))))))
+            #{tmp 11819}#)
+          (let ((#{tmp 11832}#
+                  ($sc-dispatch
+                    #{x 11816}#
+                    '(_ each-any any . #(each ((any . any) any))))))
+            (if (if #{tmp 11832}#
+                  (@apply
+                    (lambda (#{k 11838}#
+                             #{docstring 11839}#
+                             #{keyword 11840}#
+                             #{pattern 11841}#
+                             #{template 11842}#)
+                      (string? (syntax->datum #{docstring 11839}#)))
+                    #{tmp 11832}#)
+                  #f)
+              (@apply
+                (lambda (#{k 11848}#
+                         #{docstring 11849}#
+                         #{keyword 11850}#
+                         #{pattern 11851}#
+                         #{template 11852}#)
+                  (list '#(syntax-object
+                           lambda
+                           ((top)
+                            #(ribcage
+                              #(k docstring keyword pattern template)
+                              #((top) (top) (top) (top) (top))
+                              #("i11843" "i11844" "i11845" "i11846" "i11847"))
+                            #(ribcage () () ())
+                            #(ribcage #(x) #((top)) #("i11817")))
+                           (hygiene guile))
+                        '(#(syntax-object
+                            x
+                            ((top)
+                             #(ribcage
+                               #(k docstring keyword pattern template)
+                               #((top) (top) (top) (top) (top))
+                               #("i11843" "i11844" "i11845" "i11846" "i11847"))
+                             #(ribcage () () ())
+                             #(ribcage #(x) #((top)) #("i11817")))
+                            (hygiene guile)))
+                        #{docstring 11849}#
+                        (vector
+                          '(#(syntax-object
+                              macro-type
+                              ((top)
+                               #(ribcage
+                                 #(k docstring keyword pattern template)
+                                 #((top) (top) (top) (top) (top))
+                                 #("i11843"
+                                   "i11844"
+                                   "i11845"
+                                   "i11846"
+                                   "i11847"))
+                               #(ribcage () () ())
+                               #(ribcage #(x) #((top)) #("i11817")))
+                              (hygiene guile))
+                            .
+                            #(syntax-object
+                              syntax-rules
+                              ((top)
+                               #(ribcage
+                                 #(k docstring keyword pattern template)
+                                 #((top) (top) (top) (top) (top))
+                                 #("i11843"
+                                   "i11844"
+                                   "i11845"
+                                   "i11846"
+                                   "i11847"))
+                               #(ribcage () () ())
+                               #(ribcage #(x) #((top)) #("i11817")))
+                              (hygiene guile)))
+                          (cons '#(syntax-object
+                                   patterns
+                                   ((top)
+                                    #(ribcage
+                                      #(k docstring keyword pattern template)
+                                      #((top) (top) (top) (top) (top))
+                                      #("i11843"
+                                        "i11844"
+                                        "i11845"
+                                        "i11846"
+                                        "i11847"))
+                                    #(ribcage () () ())
+                                    #(ribcage #(x) #((top)) #("i11817")))
+                                   (hygiene guile))
+                                #{pattern 11851}#))
+                        (cons '#(syntax-object
+                                 syntax-case
+                                 ((top)
+                                  #(ribcage
+                                    #(k docstring keyword pattern template)
+                                    #((top) (top) (top) (top) (top))
+                                    #("i11843"
+                                      "i11844"
+                                      "i11845"
+                                      "i11846"
+                                      "i11847"))
+                                  #(ribcage () () ())
+                                  #(ribcage #(x) #((top)) #("i11817")))
+                                 (hygiene guile))
+                              (cons '#(syntax-object
+                                       x
                                        ((top)
                                         #(ribcage
-                                          #(p q)
-                                          #((top) (top))
-                                          #("i4477" "i4478"))
+                                          #(k
+                                            docstring
+                                            keyword
+                                            pattern
+                                            template)
+                                          #((top) (top) (top) (top) (top))
+                                          #("i11843"
+                                            "i11844"
+                                            "i11845"
+                                            "i11846"
+                                            "i11847"))
                                         #(ribcage () () ())
-                                        #(ribcage
-                                          #(p lev)
-                                          #((top) (top))
-                                          #("i4473" "i4474"))
-                                        #(ribcage
-                                          (emit quasivector
-                                                quasilist*
-                                                quasiappend
-                                                quasicons
-                                                vquasi
-                                                quasi)
+                                        #(ribcage #(x) #((top)) #("i11817")))
+                                       (hygiene guile))
+                                    (cons #{k 11848}#
+                                          (map (lambda (#{tmp 11856}#
+                                                        #{tmp 11855}#)
+                                                 (list (cons '#(syntax-object
+                                                                dummy
+                                                                ((top)
+                                                                 #(ribcage
+                                                                   #(k
+                                                                     docstring
+                                                                     keyword
+                                                                     pattern
+                                                                     template)
+                                                                   #((top)
+                                                                     (top)
+                                                                     (top)
+                                                                     (top)
+                                                                     (top))
+                                                                   #("i11843"
+                                                                     "i11844"
+                                                                     "i11845"
+                                                                     "i11846"
+                                                                     "i11847"))
+                                                                 #(ribcage
+                                                                   ()
+                                                                   ()
+                                                                   ())
+                                                                 #(ribcage
+                                                                   #(x)
+                                                                   #((top))
+                                                                   
#("i11817")))
+                                                                (hygiene
+                                                                  guile))
+                                                             #{tmp 11855}#)
+                                                       (list '#(syntax-object
+                                                                syntax
+                                                                ((top)
+                                                                 #(ribcage
+                                                                   #(k
+                                                                     docstring
+                                                                     keyword
+                                                                     pattern
+                                                                     template)
+                                                                   #((top)
+                                                                     (top)
+                                                                     (top)
+                                                                     (top)
+                                                                     (top))
+                                                                   #("i11843"
+                                                                     "i11844"
+                                                                     "i11845"
+                                                                     "i11846"
+                                                                     "i11847"))
+                                                                 #(ribcage
+                                                                   ()
+                                                                   ()
+                                                                   ())
+                                                                 #(ribcage
+                                                                   #(x)
+                                                                   #((top))
+                                                                   
#("i11817")))
+                                                                (hygiene
+                                                                  guile))
+                                                             #{tmp 11856}#)))
+                                               #{template 11852}#
+                                               #{pattern 11851}#))))))
+                #{tmp 11832}#)
+              (syntax-violation
+                #f
+                "source expression failed to match any pattern"
+                #{x 11816}#))))))))
+
+(define define-syntax-rule
+  (make-syntax-transformer
+    'define-syntax-rule
+    'macro
+    (lambda (#{x 11857}#)
+      (let ((#{tmp 11860}#
+              ($sc-dispatch #{x 11857}# '(_ (any . any) any))))
+        (if #{tmp 11860}#
+          (@apply
+            (lambda (#{name 11864}#
+                     #{pattern 11865}#
+                     #{template 11866}#)
+              (list '#(syntax-object
+                       define-syntax
+                       ((top)
+                        #(ribcage
+                          #(name pattern template)
+                          #((top) (top) (top))
+                          #("i11861" "i11862" "i11863"))
+                        #(ribcage () () ())
+                        #(ribcage #(x) #((top)) #("i11858")))
+                       (hygiene guile))
+                    #{name 11864}#
+                    (list '#(syntax-object
+                             syntax-rules
+                             ((top)
+                              #(ribcage
+                                #(name pattern template)
+                                #((top) (top) (top))
+                                #("i11861" "i11862" "i11863"))
+                              #(ribcage () () ())
+                              #(ribcage #(x) #((top)) #("i11858")))
+                             (hygiene guile))
+                          '()
+                          (list (cons '#(syntax-object
+                                         _
+                                         ((top)
+                                          #(ribcage
+                                            #(name pattern template)
+                                            #((top) (top) (top))
+                                            #("i11861" "i11862" "i11863"))
+                                          #(ribcage () () ())
+                                          #(ribcage #(x) #((top)) #("i11858")))
+                                         (hygiene guile))
+                                      #{pattern 11865}#)
+                                #{template 11866}#))))
+            #{tmp 11860}#)
+          (let ((#{tmp 11867}#
+                  ($sc-dispatch
+                    #{x 11857}#
+                    '(_ (any . any) any any))))
+            (if (if #{tmp 11867}#
+                  (@apply
+                    (lambda (#{name 11872}#
+                             #{pattern 11873}#
+                             #{docstring 11874}#
+                             #{template 11875}#)
+                      (string? (syntax->datum #{docstring 11874}#)))
+                    #{tmp 11867}#)
+                  #f)
+              (@apply
+                (lambda (#{name 11880}#
+                         #{pattern 11881}#
+                         #{docstring 11882}#
+                         #{template 11883}#)
+                  (list '#(syntax-object
+                           define-syntax
+                           ((top)
+                            #(ribcage
+                              #(name pattern docstring template)
+                              #((top) (top) (top) (top))
+                              #("i11876" "i11877" "i11878" "i11879"))
+                            #(ribcage () () ())
+                            #(ribcage #(x) #((top)) #("i11858")))
+                           (hygiene guile))
+                        #{name 11880}#
+                        (list '#(syntax-object
+                                 syntax-rules
+                                 ((top)
+                                  #(ribcage
+                                    #(name pattern docstring template)
+                                    #((top) (top) (top) (top))
+                                    #("i11876" "i11877" "i11878" "i11879"))
+                                  #(ribcage () () ())
+                                  #(ribcage #(x) #((top)) #("i11858")))
+                                 (hygiene guile))
+                              '()
+                              #{docstring 11882}#
+                              (list (cons '#(syntax-object
+                                             _
+                                             ((top)
+                                              #(ribcage
+                                                #(name
+                                                  pattern
+                                                  docstring
+                                                  template)
+                                                #((top) (top) (top) (top))
+                                                #("i11876"
+                                                  "i11877"
+                                                  "i11878"
+                                                  "i11879"))
+                                              #(ribcage () () ())
+                                              #(ribcage
+                                                #(x)
+                                                #((top))
+                                                #("i11858")))
+                                             (hygiene guile))
+                                          #{pattern 11881}#)
+                                    #{template 11883}#))))
+                #{tmp 11867}#)
+              (syntax-violation
+                #f
+                "source expression failed to match any pattern"
+                #{x 11857}#))))))))
+
+(define let*
+  (make-syntax-transformer
+    'let*
+    'macro
+    (lambda (#{x 11884}#)
+      (let ((#{tmp 11887}#
+              ($sc-dispatch
+                #{x 11884}#
+                '(any #(each (any any)) any . each-any))))
+        (if (if #{tmp 11887}#
+              (@apply
+                (lambda (#{let* 11893}#
+                         #{x 11894}#
+                         #{v 11895}#
+                         #{e1 11896}#
+                         #{e2 11897}#)
+                  (and-map identifier? #{x 11894}#))
+                #{tmp 11887}#)
+              #f)
+          (@apply
+            (lambda (#{let* 11904}#
+                     #{x 11905}#
+                     #{v 11906}#
+                     #{e1 11907}#
+                     #{e2 11908}#)
+              (letrec*
+                ((#{f 11911}#
+                   (lambda (#{bindings 11912}#)
+                     (if (null? #{bindings 11912}#)
+                       (cons '#(syntax-object
+                                let
+                                ((top)
+                                 #(ribcage () () ())
+                                 #(ribcage
+                                   #(f bindings)
+                                   #((top) (top))
+                                   #("i11909" "i11910"))
+                                 #(ribcage
+                                   #(let* x v e1 e2)
+                                   #((top) (top) (top) (top) (top))
+                                   #("i11899"
+                                     "i11900"
+                                     "i11901"
+                                     "i11902"
+                                     "i11903"))
+                                 #(ribcage () () ())
+                                 #(ribcage #(x) #((top)) #("i11885")))
+                                (hygiene guile))
+                             (cons '() (cons #{e1 11907}# #{e2 11908}#)))
+                       (let ((#{tmp 11917}#
+                               (list (#{f 11911}# (cdr #{bindings 11912}#))
+                                     (car #{bindings 11912}#))))
+                         (let ((#{tmp 11918}#
+                                 ($sc-dispatch #{tmp 11917}# '(any any))))
+                           (if #{tmp 11918}#
+                             (@apply
+                               (lambda (#{body 11921}# #{binding 11922}#)
+                                 (list '#(syntax-object
+                                          let
                                           ((top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top)
-                                           (top))
-                                          ("i4434"
-                                           "i4432"
-                                           "i4430"
-                                           "i4428"
-                                           "i4426"
-                                           "i4424"
-                                           "i4422")))
-                                       (hygiene guile)))
-                                   .
-                                   each-any))))
-                         (if #{tmp 4482}#
-                           (@apply
-                             (lambda (#{p 4484}#)
-                               (if (= #{lev 4472}# 0)
-                                 (#{quasilist* 4431}#
-                                   (map (lambda (#{tmp 4485}#)
-                                          (list '#(syntax-object
-                                                   "value"
-                                                   ((top)
-                                                    #(ribcage
-                                                      #(p)
-                                                      #((top))
-                                                      #("i4483"))
-                                                    #(ribcage
-                                                      #(p q)
-                                                      #((top) (top))
-                                                      #("i4477" "i4478"))
-                                                    #(ribcage () () ())
-                                                    #(ribcage
-                                                      #(p lev)
-                                                      #((top) (top))
-                                                      #("i4473" "i4474"))
-                                                    #(ribcage
-                                                      (emit quasivector
-                                                            quasilist*
-                                                            quasiappend
-                                                            quasicons
-                                                            vquasi
-                                                            quasi)
-                                                      ((top)
-                                                       (top)
-                                                       (top)
-                                                       (top)
-                                                       (top)
-                                                       (top)
-                                                       (top))
-                                                      ("i4434"
-                                                       "i4432"
-                                                       "i4430"
-                                                       "i4428"
-                                                       "i4426"
-                                                       "i4424"
-                                                       "i4422")))
-                                                   (hygiene guile))
-                                                #{tmp 4485}#))
-                                        #{p 4484}#)
-                                   (#{vquasi 4425}# #{q 4480}# #{lev 4472}#))
-                                 (#{quasicons 4427}#
-                                   (#{quasicons 4427}#
-                                     '(#(syntax-object
-                                         "quote"
+                                           #(ribcage () () ())
+                                           #(ribcage
+                                             #(body binding)
+                                             #((top) (top))
+                                             #("i11919" "i11920"))
+                                           #(ribcage () () ())
+                                           #(ribcage
+                                             #(f bindings)
+                                             #((top) (top))
+                                             #("i11909" "i11910"))
+                                           #(ribcage
+                                             #(let* x v e1 e2)
+                                             #((top) (top) (top) (top) (top))
+                                             #("i11899"
+                                               "i11900"
+                                               "i11901"
+                                               "i11902"
+                                               "i11903"))
+                                           #(ribcage () () ())
+                                           #(ribcage
+                                             #(x)
+                                             #((top))
+                                             #("i11885")))
+                                          (hygiene guile))
+                                       (list #{binding 11922}#)
+                                       #{body 11921}#))
+                               #{tmp 11918}#)
+                             (syntax-violation
+                               #f
+                               "source expression failed to match any pattern"
+                               #{tmp 11917}#))))))))
+                (#{f 11911}# (map list #{x 11905}# #{v 11906}#))))
+            #{tmp 11887}#)
+          (syntax-violation
+            #f
+            "source expression failed to match any pattern"
+            #{x 11884}#))))))
+
+(define do
+  (make-syntax-transformer
+    'do
+    'macro
+    (lambda (#{orig-x 12105}#)
+      (let ((#{tmp 12108}#
+              ($sc-dispatch
+                #{orig-x 12105}#
+                '(_ #(each (any any . any))
+                    (any . each-any)
+                    .
+                    each-any))))
+        (if #{tmp 12108}#
+          (@apply
+            (lambda (#{var 12115}#
+                     #{init 12116}#
+                     #{step 12117}#
+                     #{e0 12118}#
+                     #{e1 12119}#
+                     #{c 12120}#)
+              (let ((#{tmp 12122}#
+                      (map (lambda (#{v 12143}# #{s 12144}#)
+                             (let ((#{tmp 12148}#
+                                     ($sc-dispatch #{s 12144}# '())))
+                               (if #{tmp 12148}#
+                                 (@apply (lambda () #{v 12143}#) #{tmp 12148}#)
+                                 (let ((#{tmp 12149}#
+                                         ($sc-dispatch #{s 12144}# '(any))))
+                                   (if #{tmp 12149}#
+                                     (@apply
+                                       (lambda (#{e 12151}#) #{e 12151}#)
+                                       #{tmp 12149}#)
+                                     (syntax-violation
+                                       'do
+                                       "bad step expression"
+                                       #{orig-x 12105}#
+                                       #{s 12144}#))))))
+                           #{var 12115}#
+                           #{step 12117}#)))
+                (let ((#{tmp 12123}#
+                        ($sc-dispatch #{tmp 12122}# 'each-any)))
+                  (if #{tmp 12123}#
+                    (@apply
+                      (lambda (#{step 12125}#)
+                        (let ((#{tmp 12127}# ($sc-dispatch #{e1 12119}# '())))
+                          (if #{tmp 12127}#
+                            (@apply
+                              (lambda ()
+                                (list '#(syntax-object
+                                         let
                                          ((top)
-                                          #(ribcage #(p) #((top)) #("i4483"))
-                                          #(ribcage
-                                            #(p q)
-                                            #((top) (top))
-                                            #("i4477" "i4478"))
                                           #(ribcage () () ())
                                           #(ribcage
-                                            #(p lev)
-                                            #((top) (top))
-                                            #("i4473" "i4474"))
+                                            #(step)
+                                            #((top))
+                                            #("i12124"))
                                           #(ribcage
-                                            (emit quasivector
-                                                  quasilist*
-                                                  quasiappend
-                                                  quasicons
-                                                  vquasi
-                                                  quasi)
-                                            ((top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top))
-                                            ("i4434"
-                                             "i4432"
-                                             "i4430"
-                                             "i4428"
-                                             "i4426"
-                                             "i4424"
-                                             "i4422")))
+                                            #(var init step e0 e1 c)
+                                            #((top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top))
+                                            #("i12109"
+                                              "i12110"
+                                              "i12111"
+                                              "i12112"
+                                              "i12113"
+                                              "i12114"))
+                                          #(ribcage () () ())
+                                          #(ribcage
+                                            #(orig-x)
+                                            #((top))
+                                            #("i12106")))
                                          (hygiene guile))
-                                       #(syntax-object
-                                         unquote
+                                      '#(syntax-object
+                                         doloop
                                          ((top)
-                                          #(ribcage #(p) #((top)) #("i4483"))
-                                          #(ribcage
-                                            #(p q)
-                                            #((top) (top))
-                                            #("i4477" "i4478"))
                                           #(ribcage () () ())
                                           #(ribcage
-                                            #(p lev)
-                                            #((top) (top))
-                                            #("i4473" "i4474"))
+                                            #(step)
+                                            #((top))
+                                            #("i12124"))
                                           #(ribcage
-                                            (emit quasivector
-                                                  quasilist*
-                                                  quasiappend
-                                                  quasicons
-                                                  vquasi
-                                                  quasi)
-                                            ((top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top)
-                                             (top))
-                                            ("i4434"
-                                             "i4432"
-                                             "i4430"
-                                             "i4428"
-                                             "i4426"
-                                             "i4424"
-                                             "i4422")))
-                                         (hygiene guile)))
-                                     (#{quasi 4423}#
-                                       #{p 4484}#
-                                       (#{1-}# #{lev 4472}#)))
-                                   (#{vquasi 4425}# #{q 4480}# #{lev 4472}#))))
-                             #{tmp 4482}#)
-                           (let ((#{tmp 4487}#
+                                            #(var init step e0 e1 c)
+                                            #((top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top))
+                                            #("i12109"
+                                              "i12110"
+                                              "i12111"
+                                              "i12112"
+                                              "i12113"
+                                              "i12114"))
+                                          #(ribcage () () ())
+                                          #(ribcage
+                                            #(orig-x)
+                                            #((top))
+                                            #("i12106")))
+                                         (hygiene guile))
+                                      (map list #{var 12115}# #{init 12116}#)
+                                      (list '#(syntax-object
+                                               if
+                                               ((top)
+                                                #(ribcage () () ())
+                                                #(ribcage
+                                                  #(step)
+                                                  #((top))
+                                                  #("i12124"))
+                                                #(ribcage
+                                                  #(var init step e0 e1 c)
+                                                  #((top)
+                                                    (top)
+                                                    (top)
+                                                    (top)
+                                                    (top)
+                                                    (top))
+                                                  #("i12109"
+                                                    "i12110"
+                                                    "i12111"
+                                                    "i12112"
+                                                    "i12113"
+                                                    "i12114"))
+                                                #(ribcage () () ())
+                                                #(ribcage
+                                                  #(orig-x)
+                                                  #((top))
+                                                  #("i12106")))
+                                               (hygiene guile))
+                                            (list '#(syntax-object
+                                                     not
+                                                     ((top)
+                                                      #(ribcage () () ())
+                                                      #(ribcage
+                                                        #(step)
+                                                        #((top))
+                                                        #("i12124"))
+                                                      #(ribcage
+                                                        #(var
+                                                          init
+                                                          step
+                                                          e0
+                                                          e1
+                                                          c)
+                                                        #((top)
+                                                          (top)
+                                                          (top)
+                                                          (top)
+                                                          (top)
+                                                          (top))
+                                                        #("i12109"
+                                                          "i12110"
+                                                          "i12111"
+                                                          "i12112"
+                                                          "i12113"
+                                                          "i12114"))
+                                                      #(ribcage () () ())
+                                                      #(ribcage
+                                                        #(orig-x)
+                                                        #((top))
+                                                        #("i12106")))
+                                                     (hygiene guile))
+                                                  #{e0 12118}#)
+                                            (cons '#(syntax-object
+                                                     begin
+                                                     ((top)
+                                                      #(ribcage () () ())
+                                                      #(ribcage
+                                                        #(step)
+                                                        #((top))
+                                                        #("i12124"))
+                                                      #(ribcage
+                                                        #(var
+                                                          init
+                                                          step
+                                                          e0
+                                                          e1
+                                                          c)
+                                                        #((top)
+                                                          (top)
+                                                          (top)
+                                                          (top)
+                                                          (top)
+                                                          (top))
+                                                        #("i12109"
+                                                          "i12110"
+                                                          "i12111"
+                                                          "i12112"
+                                                          "i12113"
+                                                          "i12114"))
+                                                      #(ribcage () () ())
+                                                      #(ribcage
+                                                        #(orig-x)
+                                                        #((top))
+                                                        #("i12106")))
+                                                     (hygiene guile))
+                                                  (append
+                                                    #{c 12120}#
+                                                    (list (cons 
'#(syntax-object
+                                                                   doloop
+                                                                   ((top)
+                                                                    #(ribcage
+                                                                      ()
+                                                                      ()
+                                                                      ())
+                                                                    #(ribcage
+                                                                      #(step)
+                                                                      #((top))
+                                                                      
#("i12124"))
+                                                                    #(ribcage
+                                                                      #(var
+                                                                        init
+                                                                        step
+                                                                        e0
+                                                                        e1
+                                                                        c)
+                                                                      #((top)
+                                                                        (top)
+                                                                        (top)
+                                                                        (top)
+                                                                        (top)
+                                                                        (top))
+                                                                      
#("i12109"
+                                                                        
"i12110"
+                                                                        
"i12111"
+                                                                        
"i12112"
+                                                                        
"i12113"
+                                                                        
"i12114"))
+                                                                    #(ribcage
+                                                                      ()
+                                                                      ()
+                                                                      ())
+                                                                    #(ribcage
+                                                                      #(orig-x)
+                                                                      #((top))
+                                                                      
#("i12106")))
+                                                                   (hygiene
+                                                                     guile))
+                                                                #{step 
12125}#)))))))
+                              #{tmp 12127}#)
+                            (let ((#{tmp 12132}#
+                                    ($sc-dispatch
+                                      #{e1 12119}#
+                                      '(any . each-any))))
+                              (if #{tmp 12132}#
+                                (@apply
+                                  (lambda (#{e1 12135}# #{e2 12136}#)
+                                    (list '#(syntax-object
+                                             let
+                                             ((top)
+                                              #(ribcage
+                                                #(e1 e2)
+                                                #((top) (top))
+                                                #("i12133" "i12134"))
+                                              #(ribcage () () ())
+                                              #(ribcage
+                                                #(step)
+                                                #((top))
+                                                #("i12124"))
+                                              #(ribcage
+                                                #(var init step e0 e1 c)
+                                                #((top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top))
+                                                #("i12109"
+                                                  "i12110"
+                                                  "i12111"
+                                                  "i12112"
+                                                  "i12113"
+                                                  "i12114"))
+                                              #(ribcage () () ())
+                                              #(ribcage
+                                                #(orig-x)
+                                                #((top))
+                                                #("i12106")))
+                                             (hygiene guile))
+                                          '#(syntax-object
+                                             doloop
+                                             ((top)
+                                              #(ribcage
+                                                #(e1 e2)
+                                                #((top) (top))
+                                                #("i12133" "i12134"))
+                                              #(ribcage () () ())
+                                              #(ribcage
+                                                #(step)
+                                                #((top))
+                                                #("i12124"))
+                                              #(ribcage
+                                                #(var init step e0 e1 c)
+                                                #((top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top))
+                                                #("i12109"
+                                                  "i12110"
+                                                  "i12111"
+                                                  "i12112"
+                                                  "i12113"
+                                                  "i12114"))
+                                              #(ribcage () () ())
+                                              #(ribcage
+                                                #(orig-x)
+                                                #((top))
+                                                #("i12106")))
+                                             (hygiene guile))
+                                          (map list
+                                               #{var 12115}#
+                                               #{init 12116}#)
+                                          (list '#(syntax-object
+                                                   if
+                                                   ((top)
+                                                    #(ribcage
+                                                      #(e1 e2)
+                                                      #((top) (top))
+                                                      #("i12133" "i12134"))
+                                                    #(ribcage () () ())
+                                                    #(ribcage
+                                                      #(step)
+                                                      #((top))
+                                                      #("i12124"))
+                                                    #(ribcage
+                                                      #(var init step e0 e1 c)
+                                                      #((top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top))
+                                                      #("i12109"
+                                                        "i12110"
+                                                        "i12111"
+                                                        "i12112"
+                                                        "i12113"
+                                                        "i12114"))
+                                                    #(ribcage () () ())
+                                                    #(ribcage
+                                                      #(orig-x)
+                                                      #((top))
+                                                      #("i12106")))
+                                                   (hygiene guile))
+                                                #{e0 12118}#
+                                                (cons '#(syntax-object
+                                                         begin
+                                                         ((top)
+                                                          #(ribcage
+                                                            #(e1 e2)
+                                                            #((top) (top))
+                                                            #("i12133"
+                                                              "i12134"))
+                                                          #(ribcage () () ())
+                                                          #(ribcage
+                                                            #(step)
+                                                            #((top))
+                                                            #("i12124"))
+                                                          #(ribcage
+                                                            #(var
+                                                              init
+                                                              step
+                                                              e0
+                                                              e1
+                                                              c)
+                                                            #((top)
+                                                              (top)
+                                                              (top)
+                                                              (top)
+                                                              (top)
+                                                              (top))
+                                                            #("i12109"
+                                                              "i12110"
+                                                              "i12111"
+                                                              "i12112"
+                                                              "i12113"
+                                                              "i12114"))
+                                                          #(ribcage () () ())
+                                                          #(ribcage
+                                                            #(orig-x)
+                                                            #((top))
+                                                            #("i12106")))
+                                                         (hygiene guile))
+                                                      (cons #{e1 12135}#
+                                                            #{e2 12136}#))
+                                                (cons '#(syntax-object
+                                                         begin
+                                                         ((top)
+                                                          #(ribcage
+                                                            #(e1 e2)
+                                                            #((top) (top))
+                                                            #("i12133"
+                                                              "i12134"))
+                                                          #(ribcage () () ())
+                                                          #(ribcage
+                                                            #(step)
+                                                            #((top))
+                                                            #("i12124"))
+                                                          #(ribcage
+                                                            #(var
+                                                              init
+                                                              step
+                                                              e0
+                                                              e1
+                                                              c)
+                                                            #((top)
+                                                              (top)
+                                                              (top)
+                                                              (top)
+                                                              (top)
+                                                              (top))
+                                                            #("i12109"
+                                                              "i12110"
+                                                              "i12111"
+                                                              "i12112"
+                                                              "i12113"
+                                                              "i12114"))
+                                                          #(ribcage () () ())
+                                                          #(ribcage
+                                                            #(orig-x)
+                                                            #((top))
+                                                            #("i12106")))
+                                                         (hygiene guile))
+                                                      (append
+                                                        #{c 12120}#
+                                                        (list (cons 
'#(syntax-object
+                                                                       doloop
+                                                                       ((top)
+                                                                        
#(ribcage
+                                                                          #(e1
+                                                                            e2)
+                                                                          
#((top)
+                                                                            
(top))
+                                                                          
#("i12133"
+                                                                            
"i12134"))
+                                                                        
#(ribcage
+                                                                          ()
+                                                                          ()
+                                                                          ())
+                                                                        
#(ribcage
+                                                                          
#(step)
+                                                                          
#((top))
+                                                                          
#("i12124"))
+                                                                        
#(ribcage
+                                                                          #(var
+                                                                            
init
+                                                                            
step
+                                                                            e0
+                                                                            e1
+                                                                            c)
+                                                                          
#((top)
+                                                                            
(top)
+                                                                            
(top)
+                                                                            
(top)
+                                                                            
(top)
+                                                                            
(top))
+                                                                          
#("i12109"
+                                                                            
"i12110"
+                                                                            
"i12111"
+                                                                            
"i12112"
+                                                                            
"i12113"
+                                                                            
"i12114"))
+                                                                        
#(ribcage
+                                                                          ()
+                                                                          ()
+                                                                          ())
+                                                                        
#(ribcage
+                                                                          
#(orig-x)
+                                                                          
#((top))
+                                                                          
#("i12106")))
+                                                                       (hygiene
+                                                                         
guile))
+                                                                    #{step 
12125}#)))))))
+                                  #{tmp 12132}#)
+                                (syntax-violation
+                                  #f
+                                  "source expression failed to match any 
pattern"
+                                  #{e1 12119}#))))))
+                      #{tmp 12123}#)
+                    (syntax-violation
+                      #f
+                      "source expression failed to match any pattern"
+                      #{tmp 12122}#)))))
+            #{tmp 12108}#)
+          (syntax-violation
+            #f
+            "source expression failed to match any pattern"
+            #{orig-x 12105}#))))))
+
+(define quasiquote
+  (make-syntax-transformer
+    'quasiquote
+    'macro
+    (letrec*
+      ((#{quasi 12157}#
+         (lambda (#{p 12170}# #{lev 12171}#)
+           (let ((#{tmp 12175}#
+                   ($sc-dispatch
+                     #{p 12170}#
+                     '(#(free-id
+                         #(syntax-object
+                           unquote
+                           ((top)
+                            #(ribcage () () ())
+                            #(ribcage
+                              #(p lev)
+                              #((top) (top))
+                              #("i12172" "i12173"))
+                            #(ribcage
+                              (emit quasivector
+                                    quasilist*
+                                    quasiappend
+                                    quasicons
+                                    vquasi
+                                    quasi)
+                              ((top) (top) (top) (top) (top) (top) (top))
+                              ("i12168"
+                               "i12166"
+                               "i12164"
+                               "i12162"
+                               "i12160"
+                               "i12158"
+                               "i12156")))
+                           (hygiene guile)))
+                       any))))
+             (if #{tmp 12175}#
+               (@apply
+                 (lambda (#{p 12177}#)
+                   (if (= #{lev 12171}# 0)
+                     (list '#(syntax-object
+                              "value"
+                              ((top)
+                               #(ribcage #(p) #((top)) #("i12176"))
+                               #(ribcage () () ())
+                               #(ribcage
+                                 #(p lev)
+                                 #((top) (top))
+                                 #("i12172" "i12173"))
+                               #(ribcage
+                                 (emit quasivector
+                                       quasilist*
+                                       quasiappend
+                                       quasicons
+                                       vquasi
+                                       quasi)
+                                 ((top) (top) (top) (top) (top) (top) (top))
+                                 ("i12168"
+                                  "i12166"
+                                  "i12164"
+                                  "i12162"
+                                  "i12160"
+                                  "i12158"
+                                  "i12156")))
+                              (hygiene guile))
+                           #{p 12177}#)
+                     (#{quasicons 12161}#
+                       '(#(syntax-object
+                           "quote"
+                           ((top)
+                            #(ribcage #(p) #((top)) #("i12176"))
+                            #(ribcage () () ())
+                            #(ribcage
+                              #(p lev)
+                              #((top) (top))
+                              #("i12172" "i12173"))
+                            #(ribcage
+                              (emit quasivector
+                                    quasilist*
+                                    quasiappend
+                                    quasicons
+                                    vquasi
+                                    quasi)
+                              ((top) (top) (top) (top) (top) (top) (top))
+                              ("i12168"
+                               "i12166"
+                               "i12164"
+                               "i12162"
+                               "i12160"
+                               "i12158"
+                               "i12156")))
+                           (hygiene guile))
+                         #(syntax-object
+                           unquote
+                           ((top)
+                            #(ribcage #(p) #((top)) #("i12176"))
+                            #(ribcage () () ())
+                            #(ribcage
+                              #(p lev)
+                              #((top) (top))
+                              #("i12172" "i12173"))
+                            #(ribcage
+                              (emit quasivector
+                                    quasilist*
+                                    quasiappend
+                                    quasicons
+                                    vquasi
+                                    quasi)
+                              ((top) (top) (top) (top) (top) (top) (top))
+                              ("i12168"
+                               "i12166"
+                               "i12164"
+                               "i12162"
+                               "i12160"
+                               "i12158"
+                               "i12156")))
+                           (hygiene guile)))
+                       (#{quasi 12157}#
+                         (list #{p 12177}#)
+                         (#{1-}# #{lev 12171}#)))))
+                 #{tmp 12175}#)
+               (let ((#{tmp 12178}#
+                       ($sc-dispatch
+                         #{p 12170}#
+                         '(#(free-id
+                             #(syntax-object
+                               quasiquote
+                               ((top)
+                                #(ribcage () () ())
+                                #(ribcage
+                                  #(p lev)
+                                  #((top) (top))
+                                  #("i12172" "i12173"))
+                                #(ribcage
+                                  (emit quasivector
+                                        quasilist*
+                                        quasiappend
+                                        quasicons
+                                        vquasi
+                                        quasi)
+                                  ((top) (top) (top) (top) (top) (top) (top))
+                                  ("i12168"
+                                   "i12166"
+                                   "i12164"
+                                   "i12162"
+                                   "i12160"
+                                   "i12158"
+                                   "i12156")))
+                               (hygiene guile)))
+                           any))))
+                 (if #{tmp 12178}#
+                   (@apply
+                     (lambda (#{p 12180}#)
+                       (#{quasicons 12161}#
+                         '(#(syntax-object
+                             "quote"
+                             ((top)
+                              #(ribcage #(p) #((top)) #("i12179"))
+                              #(ribcage () () ())
+                              #(ribcage
+                                #(p lev)
+                                #((top) (top))
+                                #("i12172" "i12173"))
+                              #(ribcage
+                                (emit quasivector
+                                      quasilist*
+                                      quasiappend
+                                      quasicons
+                                      vquasi
+                                      quasi)
+                                ((top) (top) (top) (top) (top) (top) (top))
+                                ("i12168"
+                                 "i12166"
+                                 "i12164"
+                                 "i12162"
+                                 "i12160"
+                                 "i12158"
+                                 "i12156")))
+                             (hygiene guile))
+                           #(syntax-object
+                             quasiquote
+                             ((top)
+                              #(ribcage #(p) #((top)) #("i12179"))
+                              #(ribcage () () ())
+                              #(ribcage
+                                #(p lev)
+                                #((top) (top))
+                                #("i12172" "i12173"))
+                              #(ribcage
+                                (emit quasivector
+                                      quasilist*
+                                      quasiappend
+                                      quasicons
+                                      vquasi
+                                      quasi)
+                                ((top) (top) (top) (top) (top) (top) (top))
+                                ("i12168"
+                                 "i12166"
+                                 "i12164"
+                                 "i12162"
+                                 "i12160"
+                                 "i12158"
+                                 "i12156")))
+                             (hygiene guile)))
+                         (#{quasi 12157}#
+                           (list #{p 12180}#)
+                           (#{1+}# #{lev 12171}#))))
+                     #{tmp 12178}#)
+                   (let ((#{tmp 12181}#
+                           ($sc-dispatch #{p 12170}# '(any . any))))
+                     (if #{tmp 12181}#
+                       (@apply
+                         (lambda (#{p 12184}# #{q 12185}#)
+                           (let ((#{tmp 12187}#
                                    ($sc-dispatch
-                                     #{tmp 4481}#
+                                     #{p 12184}#
                                      '(#(free-id
                                          #(syntax-object
-                                           unquote-splicing
+                                           unquote
                                            ((top)
                                             #(ribcage
                                               #(p q)
                                               #((top) (top))
-                                              #("i4477" "i4478"))
+                                              #("i12182" "i12183"))
                                             #(ribcage () () ())
                                             #(ribcage
                                               #(p lev)
                                               #((top) (top))
-                                              #("i4473" "i4474"))
+                                              #("i12172" "i12173"))
                                             #(ribcage
                                               (emit quasivector
                                                     quasilist*
@@ -14108,38 +16867,38 @@
                                                (top)
                                                (top)
                                                (top))
-                                              ("i4434"
-                                               "i4432"
-                                               "i4430"
-                                               "i4428"
-                                               "i4426"
-                                               "i4424"
-                                               "i4422")))
+                                              ("i12168"
+                                               "i12166"
+                                               "i12164"
+                                               "i12162"
+                                               "i12160"
+                                               "i12158"
+                                               "i12156")))
                                            (hygiene guile)))
                                        .
                                        each-any))))
-                             (if #{tmp 4487}#
+                             (if #{tmp 12187}#
                                (@apply
-                                 (lambda (#{p 4489}#)
-                                   (if (= #{lev 4472}# 0)
-                                     (#{quasiappend 4429}#
-                                       (map (lambda (#{tmp 4490}#)
+                                 (lambda (#{p 12189}#)
+                                   (if (= #{lev 12171}# 0)
+                                     (#{quasilist* 12165}#
+                                       (map (lambda (#{tmp 12190}#)
                                               (list '#(syntax-object
                                                        "value"
                                                        ((top)
                                                         #(ribcage
                                                           #(p)
                                                           #((top))
-                                                          #("i4488"))
+                                                          #("i12188"))
                                                         #(ribcage
                                                           #(p q)
                                                           #((top) (top))
-                                                          #("i4477" "i4478"))
+                                                          #("i12182" "i12183"))
                                                         #(ribcage () () ())
                                                         #(ribcage
                                                           #(p lev)
                                                           #((top) (top))
-                                                          #("i4473" "i4474"))
+                                                          #("i12172" "i12173"))
                                                         #(ribcage
                                                           (emit quasivector
                                                                 quasilist*
@@ -14154,37 +16913,37 @@
                                                            (top)
                                                            (top)
                                                            (top))
-                                                          ("i4434"
-                                                           "i4432"
-                                                           "i4430"
-                                                           "i4428"
-                                                           "i4426"
-                                                           "i4424"
-                                                           "i4422")))
+                                                          ("i12168"
+                                                           "i12166"
+                                                           "i12164"
+                                                           "i12162"
+                                                           "i12160"
+                                                           "i12158"
+                                                           "i12156")))
                                                        (hygiene guile))
-                                                    #{tmp 4490}#))
-                                            #{p 4489}#)
-                                       (#{vquasi 4425}#
-                                         #{q 4480}#
-                                         #{lev 4472}#))
-                                     (#{quasicons 4427}#
-                                       (#{quasicons 4427}#
+                                                    #{tmp 12190}#))
+                                            #{p 12189}#)
+                                       (#{quasi 12157}#
+                                         #{q 12185}#
+                                         #{lev 12171}#))
+                                     (#{quasicons 12161}#
+                                       (#{quasicons 12161}#
                                          '(#(syntax-object
                                              "quote"
                                              ((top)
                                               #(ribcage
                                                 #(p)
                                                 #((top))
-                                                #("i4488"))
+                                                #("i12188"))
                                               #(ribcage
                                                 #(p q)
                                                 #((top) (top))
-                                                #("i4477" "i4478"))
+                                                #("i12182" "i12183"))
                                               #(ribcage () () ())
                                               #(ribcage
                                                 #(p lev)
                                                 #((top) (top))
-                                                #("i4473" "i4474"))
+                                                #("i12172" "i12173"))
                                               #(ribcage
                                                 (emit quasivector
                                                       quasilist*
@@ -14199,30 +16958,30 @@
                                                  (top)
                                                  (top)
                                                  (top))
-                                                ("i4434"
-                                                 "i4432"
-                                                 "i4430"
-                                                 "i4428"
-                                                 "i4426"
-                                                 "i4424"
-                                                 "i4422")))
+                                                ("i12168"
+                                                 "i12166"
+                                                 "i12164"
+                                                 "i12162"
+                                                 "i12160"
+                                                 "i12158"
+                                                 "i12156")))
                                              (hygiene guile))
                                            #(syntax-object
-                                             unquote-splicing
+                                             unquote
                                              ((top)
                                               #(ribcage
                                                 #(p)
                                                 #((top))
-                                                #("i4488"))
+                                                #("i12188"))
                                               #(ribcage
                                                 #(p q)
                                                 #((top) (top))
-                                                #("i4477" "i4478"))
+                                                #("i12182" "i12183"))
                                               #(ribcage () () ())
                                               #(ribcage
                                                 #(p lev)
                                                 #((top) (top))
-                                                #("i4473" "i4474"))
+                                                #("i12172" "i12173"))
                                               #(ribcage
                                                 (emit quasivector
                                                       quasilist*
@@ -14237,343 +16996,666 @@
                                                  (top)
                                                  (top)
                                                  (top))
-                                                ("i4434"
-                                                 "i4432"
-                                                 "i4430"
-                                                 "i4428"
-                                                 "i4426"
-                                                 "i4424"
-                                                 "i4422")))
+                                                ("i12168"
+                                                 "i12166"
+                                                 "i12164"
+                                                 "i12162"
+                                                 "i12160"
+                                                 "i12158"
+                                                 "i12156")))
                                              (hygiene guile)))
-                                         (#{quasi 4423}#
-                                           #{p 4489}#
-                                           (#{1-}# #{lev 4472}#)))
-                                       (#{vquasi 4425}#
-                                         #{q 4480}#
-                                         #{lev 4472}#))))
-                                 #{tmp 4487}#)
-                               (let ((#{_ 4493}# #{tmp 4481}#))
-                                 (#{quasicons 4427}#
-                                   (#{quasi 4423}# #{p 4479}# #{lev 4472}#)
-                                   (#{vquasi 4425}#
-                                     #{q 4480}#
-                                     #{lev 4472}#)))))))))
-                   #{tmp 4476}#)
-                 (let ((#{tmp 4494}# ($sc-dispatch #{tmp 4475}# '())))
-                   (if #{tmp 4494}#
-                     (@apply
-                       (lambda ()
-                         '(#(syntax-object
-                             "quote"
-                             ((top)
-                              #(ribcage () () ())
-                              #(ribcage
-                                #(p lev)
-                                #((top) (top))
-                                #("i4473" "i4474"))
-                              #(ribcage
-                                (emit quasivector
-                                      quasilist*
-                                      quasiappend
-                                      quasicons
-                                      vquasi
-                                      quasi)
-                                ((top) (top) (top) (top) (top) (top) (top))
-                                ("i4434"
-                                 "i4432"
-                                 "i4430"
-                                 "i4428"
-                                 "i4426"
-                                 "i4424"
-                                 "i4422")))
-                             (hygiene guile))
-                           ()))
-                       #{tmp 4494}#)
-                     (syntax-violation
-                       #f
-                       "source expression failed to match any pattern"
-                       #{tmp 4475}#))))))))
-       (#{quasicons 4427}#
-         (lambda (#{x 4495}# #{y 4496}#)
-           (let ((#{tmp 4500}# (list #{x 4495}# #{y 4496}#)))
-             (let ((#{tmp 4501}#
-                     ($sc-dispatch #{tmp 4500}# '(any any))))
-               (if #{tmp 4501}#
-                 (@apply
-                   (lambda (#{x 4504}# #{y 4505}#)
-                     (let ((#{tmp 4506}# #{y 4505}#))
-                       (let ((#{tmp 4507}#
+                                         (#{quasi 12157}#
+                                           #{p 12189}#
+                                           (#{1-}# #{lev 12171}#)))
+                                       (#{quasi 12157}#
+                                         #{q 12185}#
+                                         #{lev 12171}#))))
+                                 #{tmp 12187}#)
+                               (let ((#{tmp 12192}#
+                                       ($sc-dispatch
+                                         #{p 12184}#
+                                         '(#(free-id
+                                             #(syntax-object
+                                               unquote-splicing
+                                               ((top)
+                                                #(ribcage
+                                                  #(p q)
+                                                  #((top) (top))
+                                                  #("i12182" "i12183"))
+                                                #(ribcage () () ())
+                                                #(ribcage
+                                                  #(p lev)
+                                                  #((top) (top))
+                                                  #("i12172" "i12173"))
+                                                #(ribcage
+                                                  (emit quasivector
+                                                        quasilist*
+                                                        quasiappend
+                                                        quasicons
+                                                        vquasi
+                                                        quasi)
+                                                  ((top)
+                                                   (top)
+                                                   (top)
+                                                   (top)
+                                                   (top)
+                                                   (top)
+                                                   (top))
+                                                  ("i12168"
+                                                   "i12166"
+                                                   "i12164"
+                                                   "i12162"
+                                                   "i12160"
+                                                   "i12158"
+                                                   "i12156")))
+                                               (hygiene guile)))
+                                           .
+                                           each-any))))
+                                 (if #{tmp 12192}#
+                                   (@apply
+                                     (lambda (#{p 12194}#)
+                                       (if (= #{lev 12171}# 0)
+                                         (#{quasiappend 12163}#
+                                           (map (lambda (#{tmp 12195}#)
+                                                  (list '#(syntax-object
+                                                           "value"
+                                                           ((top)
+                                                            #(ribcage
+                                                              #(p)
+                                                              #((top))
+                                                              #("i12193"))
+                                                            #(ribcage
+                                                              #(p q)
+                                                              #((top) (top))
+                                                              #("i12182"
+                                                                "i12183"))
+                                                            #(ribcage () () ())
+                                                            #(ribcage
+                                                              #(p lev)
+                                                              #((top) (top))
+                                                              #("i12172"
+                                                                "i12173"))
+                                                            #(ribcage
+                                                              (emit quasivector
+                                                                    quasilist*
+                                                                    quasiappend
+                                                                    quasicons
+                                                                    vquasi
+                                                                    quasi)
+                                                              ((top)
+                                                               (top)
+                                                               (top)
+                                                               (top)
+                                                               (top)
+                                                               (top)
+                                                               (top))
+                                                              ("i12168"
+                                                               "i12166"
+                                                               "i12164"
+                                                               "i12162"
+                                                               "i12160"
+                                                               "i12158"
+                                                               "i12156")))
+                                                           (hygiene guile))
+                                                        #{tmp 12195}#))
+                                                #{p 12194}#)
+                                           (#{quasi 12157}#
+                                             #{q 12185}#
+                                             #{lev 12171}#))
+                                         (#{quasicons 12161}#
+                                           (#{quasicons 12161}#
+                                             '(#(syntax-object
+                                                 "quote"
+                                                 ((top)
+                                                  #(ribcage
+                                                    #(p)
+                                                    #((top))
+                                                    #("i12193"))
+                                                  #(ribcage
+                                                    #(p q)
+                                                    #((top) (top))
+                                                    #("i12182" "i12183"))
+                                                  #(ribcage () () ())
+                                                  #(ribcage
+                                                    #(p lev)
+                                                    #((top) (top))
+                                                    #("i12172" "i12173"))
+                                                  #(ribcage
+                                                    (emit quasivector
+                                                          quasilist*
+                                                          quasiappend
+                                                          quasicons
+                                                          vquasi
+                                                          quasi)
+                                                    ((top)
+                                                     (top)
+                                                     (top)
+                                                     (top)
+                                                     (top)
+                                                     (top)
+                                                     (top))
+                                                    ("i12168"
+                                                     "i12166"
+                                                     "i12164"
+                                                     "i12162"
+                                                     "i12160"
+                                                     "i12158"
+                                                     "i12156")))
+                                                 (hygiene guile))
+                                               #(syntax-object
+                                                 unquote-splicing
+                                                 ((top)
+                                                  #(ribcage
+                                                    #(p)
+                                                    #((top))
+                                                    #("i12193"))
+                                                  #(ribcage
+                                                    #(p q)
+                                                    #((top) (top))
+                                                    #("i12182" "i12183"))
+                                                  #(ribcage () () ())
+                                                  #(ribcage
+                                                    #(p lev)
+                                                    #((top) (top))
+                                                    #("i12172" "i12173"))
+                                                  #(ribcage
+                                                    (emit quasivector
+                                                          quasilist*
+                                                          quasiappend
+                                                          quasicons
+                                                          vquasi
+                                                          quasi)
+                                                    ((top)
+                                                     (top)
+                                                     (top)
+                                                     (top)
+                                                     (top)
+                                                     (top)
+                                                     (top))
+                                                    ("i12168"
+                                                     "i12166"
+                                                     "i12164"
+                                                     "i12162"
+                                                     "i12160"
+                                                     "i12158"
+                                                     "i12156")))
+                                                 (hygiene guile)))
+                                             (#{quasi 12157}#
+                                               #{p 12194}#
+                                               (#{1-}# #{lev 12171}#)))
+                                           (#{quasi 12157}#
+                                             #{q 12185}#
+                                             #{lev 12171}#))))
+                                     #{tmp 12192}#)
+                                   (#{quasicons 12161}#
+                                     (#{quasi 12157}#
+                                       #{p 12184}#
+                                       #{lev 12171}#)
+                                     (#{quasi 12157}#
+                                       #{q 12185}#
+                                       #{lev 12171}#)))))))
+                         #{tmp 12181}#)
+                       (let ((#{tmp 12199}#
+                               ($sc-dispatch #{p 12170}# '#(vector each-any))))
+                         (if #{tmp 12199}#
+                           (@apply
+                             (lambda (#{x 12201}#)
+                               (#{quasivector 12167}#
+                                 (#{vquasi 12159}# #{x 12201}# #{lev 12171}#)))
+                             #{tmp 12199}#)
+                           (list '#(syntax-object
+                                    "quote"
+                                    ((top)
+                                     #(ribcage #(p) #((top)) #("i12203"))
+                                     #(ribcage () () ())
+                                     #(ribcage
+                                       #(p lev)
+                                       #((top) (top))
+                                       #("i12172" "i12173"))
+                                     #(ribcage
+                                       (emit quasivector
+                                             quasilist*
+                                             quasiappend
+                                             quasicons
+                                             vquasi
+                                             quasi)
+                                       ((top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top))
+                                       ("i12168"
+                                        "i12166"
+                                        "i12164"
+                                        "i12162"
+                                        "i12160"
+                                        "i12158"
+                                        "i12156")))
+                                    (hygiene guile))
+                                 #{p 12170}#)))))))))))
+       (#{vquasi 12159}#
+         (lambda (#{p 12205}# #{lev 12206}#)
+           (let ((#{tmp 12210}#
+                   ($sc-dispatch #{p 12205}# '(any . any))))
+             (if #{tmp 12210}#
+               (@apply
+                 (lambda (#{p 12213}# #{q 12214}#)
+                   (let ((#{tmp 12216}#
+                           ($sc-dispatch
+                             #{p 12213}#
+                             '(#(free-id
+                                 #(syntax-object
+                                   unquote
+                                   ((top)
+                                    #(ribcage
+                                      #(p q)
+                                      #((top) (top))
+                                      #("i12211" "i12212"))
+                                    #(ribcage () () ())
+                                    #(ribcage
+                                      #(p lev)
+                                      #((top) (top))
+                                      #("i12207" "i12208"))
+                                    #(ribcage
+                                      (emit quasivector
+                                            quasilist*
+                                            quasiappend
+                                            quasicons
+                                            vquasi
+                                            quasi)
+                                      ((top)
+                                       (top)
+                                       (top)
+                                       (top)
+                                       (top)
+                                       (top)
+                                       (top))
+                                      ("i12168"
+                                       "i12166"
+                                       "i12164"
+                                       "i12162"
+                                       "i12160"
+                                       "i12158"
+                                       "i12156")))
+                                   (hygiene guile)))
+                               .
+                               each-any))))
+                     (if #{tmp 12216}#
+                       (@apply
+                         (lambda (#{p 12218}#)
+                           (if (= #{lev 12206}# 0)
+                             (#{quasilist* 12165}#
+                               (map (lambda (#{tmp 12219}#)
+                                      (list '#(syntax-object
+                                               "value"
+                                               ((top)
+                                                #(ribcage
+                                                  #(p)
+                                                  #((top))
+                                                  #("i12217"))
+                                                #(ribcage
+                                                  #(p q)
+                                                  #((top) (top))
+                                                  #("i12211" "i12212"))
+                                                #(ribcage () () ())
+                                                #(ribcage
+                                                  #(p lev)
+                                                  #((top) (top))
+                                                  #("i12207" "i12208"))
+                                                #(ribcage
+                                                  (emit quasivector
+                                                        quasilist*
+                                                        quasiappend
+                                                        quasicons
+                                                        vquasi
+                                                        quasi)
+                                                  ((top)
+                                                   (top)
+                                                   (top)
+                                                   (top)
+                                                   (top)
+                                                   (top)
+                                                   (top))
+                                                  ("i12168"
+                                                   "i12166"
+                                                   "i12164"
+                                                   "i12162"
+                                                   "i12160"
+                                                   "i12158"
+                                                   "i12156")))
+                                               (hygiene guile))
+                                            #{tmp 12219}#))
+                                    #{p 12218}#)
+                               (#{vquasi 12159}# #{q 12214}# #{lev 12206}#))
+                             (#{quasicons 12161}#
+                               (#{quasicons 12161}#
+                                 '(#(syntax-object
+                                     "quote"
+                                     ((top)
+                                      #(ribcage #(p) #((top)) #("i12217"))
+                                      #(ribcage
+                                        #(p q)
+                                        #((top) (top))
+                                        #("i12211" "i12212"))
+                                      #(ribcage () () ())
+                                      #(ribcage
+                                        #(p lev)
+                                        #((top) (top))
+                                        #("i12207" "i12208"))
+                                      #(ribcage
+                                        (emit quasivector
+                                              quasilist*
+                                              quasiappend
+                                              quasicons
+                                              vquasi
+                                              quasi)
+                                        ((top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top))
+                                        ("i12168"
+                                         "i12166"
+                                         "i12164"
+                                         "i12162"
+                                         "i12160"
+                                         "i12158"
+                                         "i12156")))
+                                     (hygiene guile))
+                                   #(syntax-object
+                                     unquote
+                                     ((top)
+                                      #(ribcage #(p) #((top)) #("i12217"))
+                                      #(ribcage
+                                        #(p q)
+                                        #((top) (top))
+                                        #("i12211" "i12212"))
+                                      #(ribcage () () ())
+                                      #(ribcage
+                                        #(p lev)
+                                        #((top) (top))
+                                        #("i12207" "i12208"))
+                                      #(ribcage
+                                        (emit quasivector
+                                              quasilist*
+                                              quasiappend
+                                              quasicons
+                                              vquasi
+                                              quasi)
+                                        ((top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top)
+                                         (top))
+                                        ("i12168"
+                                         "i12166"
+                                         "i12164"
+                                         "i12162"
+                                         "i12160"
+                                         "i12158"
+                                         "i12156")))
+                                     (hygiene guile)))
+                                 (#{quasi 12157}#
+                                   #{p 12218}#
+                                   (#{1-}# #{lev 12206}#)))
+                               (#{vquasi 12159}# #{q 12214}# #{lev 12206}#))))
+                         #{tmp 12216}#)
+                       (let ((#{tmp 12221}#
                                ($sc-dispatch
-                                 #{tmp 4506}#
-                                 '(#(atom "quote") any))))
-                         (if #{tmp 4507}#
+                                 #{p 12213}#
+                                 '(#(free-id
+                                     #(syntax-object
+                                       unquote-splicing
+                                       ((top)
+                                        #(ribcage
+                                          #(p q)
+                                          #((top) (top))
+                                          #("i12211" "i12212"))
+                                        #(ribcage () () ())
+                                        #(ribcage
+                                          #(p lev)
+                                          #((top) (top))
+                                          #("i12207" "i12208"))
+                                        #(ribcage
+                                          (emit quasivector
+                                                quasilist*
+                                                quasiappend
+                                                quasicons
+                                                vquasi
+                                                quasi)
+                                          ((top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top)
+                                           (top))
+                                          ("i12168"
+                                           "i12166"
+                                           "i12164"
+                                           "i12162"
+                                           "i12160"
+                                           "i12158"
+                                           "i12156")))
+                                       (hygiene guile)))
+                                   .
+                                   each-any))))
+                         (if #{tmp 12221}#
                            (@apply
-                             (lambda (#{dy 4509}#)
-                               (let ((#{tmp 4510}# #{x 4504}#))
-                                 (let ((#{tmp 4511}#
-                                         ($sc-dispatch
-                                           #{tmp 4510}#
-                                           '(#(atom "quote") any))))
-                                   (if #{tmp 4511}#
-                                     (@apply
-                                       (lambda (#{dx 4513}#)
-                                         (list '#(syntax-object
-                                                  "quote"
-                                                  ((top)
-                                                   #(ribcage
-                                                     #(dx)
-                                                     #((top))
-                                                     #("i4512"))
-                                                   #(ribcage
-                                                     #(dy)
-                                                     #((top))
-                                                     #("i4508"))
-                                                   #(ribcage () () ())
-                                                   #(ribcage
-                                                     #(x y)
-                                                     #((top) (top))
-                                                     #("i4502" "i4503"))
-                                                   #(ribcage () () ())
-                                                   #(ribcage () () ())
-                                                   #(ribcage
-                                                     #(x y)
-                                                     #((top) (top))
-                                                     #("i4497" "i4498"))
-                                                   #(ribcage
-                                                     (emit quasivector
-                                                           quasilist*
-                                                           quasiappend
-                                                           quasicons
-                                                           vquasi
-                                                           quasi)
-                                                     ((top)
-                                                      (top)
-                                                      (top)
-                                                      (top)
-                                                      (top)
-                                                      (top)
-                                                      (top))
-                                                     ("i4434"
-                                                      "i4432"
-                                                      "i4430"
-                                                      "i4428"
-                                                      "i4426"
-                                                      "i4424"
-                                                      "i4422")))
-                                                  (hygiene guile))
-                                               (cons #{dx 4513}# #{dy 4509}#)))
-                                       #{tmp 4511}#)
-                                     (let ((#{_ 4515}# #{tmp 4510}#))
-                                       (if (null? #{dy 4509}#)
-                                         (list '#(syntax-object
-                                                  "list"
-                                                  ((top)
-                                                   #(ribcage
-                                                     #(_)
-                                                     #((top))
-                                                     #("i4514"))
-                                                   #(ribcage
-                                                     #(dy)
-                                                     #((top))
-                                                     #("i4508"))
-                                                   #(ribcage () () ())
-                                                   #(ribcage
-                                                     #(x y)
-                                                     #((top) (top))
-                                                     #("i4502" "i4503"))
-                                                   #(ribcage () () ())
-                                                   #(ribcage () () ())
-                                                   #(ribcage
-                                                     #(x y)
-                                                     #((top) (top))
-                                                     #("i4497" "i4498"))
-                                                   #(ribcage
-                                                     (emit quasivector
-                                                           quasilist*
-                                                           quasiappend
-                                                           quasicons
-                                                           vquasi
-                                                           quasi)
-                                                     ((top)
-                                                      (top)
-                                                      (top)
-                                                      (top)
-                                                      (top)
-                                                      (top)
-                                                      (top))
-                                                     ("i4434"
-                                                      "i4432"
-                                                      "i4430"
-                                                      "i4428"
-                                                      "i4426"
-                                                      "i4424"
-                                                      "i4422")))
-                                                  (hygiene guile))
-                                               #{x 4504}#)
-                                         (list '#(syntax-object
-                                                  "list*"
-                                                  ((top)
-                                                   #(ribcage
-                                                     #(_)
-                                                     #((top))
-                                                     #("i4514"))
-                                                   #(ribcage
-                                                     #(dy)
-                                                     #((top))
-                                                     #("i4508"))
-                                                   #(ribcage () () ())
-                                                   #(ribcage
-                                                     #(x y)
-                                                     #((top) (top))
-                                                     #("i4502" "i4503"))
-                                                   #(ribcage () () ())
-                                                   #(ribcage () () ())
-                                                   #(ribcage
-                                                     #(x y)
-                                                     #((top) (top))
-                                                     #("i4497" "i4498"))
-                                                   #(ribcage
-                                                     (emit quasivector
-                                                           quasilist*
-                                                           quasiappend
-                                                           quasicons
-                                                           vquasi
-                                                           quasi)
-                                                     ((top)
-                                                      (top)
-                                                      (top)
-                                                      (top)
-                                                      (top)
-                                                      (top)
-                                                      (top))
-                                                     ("i4434"
-                                                      "i4432"
-                                                      "i4430"
-                                                      "i4428"
-                                                      "i4426"
-                                                      "i4424"
-                                                      "i4422")))
-                                                  (hygiene guile))
-                                               #{x 4504}#
-                                               #{y 4505}#)))))))
-                             #{tmp 4507}#)
-                           (let ((#{tmp 4516}#
-                                   ($sc-dispatch
-                                     #{tmp 4506}#
-                                     '(#(atom "list") . any))))
-                             (if #{tmp 4516}#
-                               (@apply
-                                 (lambda (#{stuff 4518}#)
-                                   (cons '#(syntax-object
-                                            "list"
-                                            ((top)
-                                             #(ribcage
-                                               #(stuff)
-                                               #((top))
-                                               #("i4517"))
-                                             #(ribcage () () ())
-                                             #(ribcage
-                                               #(x y)
-                                               #((top) (top))
-                                               #("i4502" "i4503"))
-                                             #(ribcage () () ())
-                                             #(ribcage () () ())
-                                             #(ribcage
-                                               #(x y)
-                                               #((top) (top))
-                                               #("i4497" "i4498"))
-                                             #(ribcage
-                                               (emit quasivector
-                                                     quasilist*
-                                                     quasiappend
-                                                     quasicons
-                                                     vquasi
-                                                     quasi)
-                                               ((top)
-                                                (top)
-                                                (top)
-                                                (top)
-                                                (top)
-                                                (top)
-                                                (top))
-                                               ("i4434"
-                                                "i4432"
-                                                "i4430"
-                                                "i4428"
-                                                "i4426"
-                                                "i4424"
-                                                "i4422")))
-                                            (hygiene guile))
-                                         (cons #{x 4504}# #{stuff 4518}#)))
-                                 #{tmp 4516}#)
-                               (let ((#{tmp 4519}#
-                                       ($sc-dispatch
-                                         #{tmp 4506}#
-                                         '(#(atom "list*") . any))))
-                                 (if #{tmp 4519}#
-                                   (@apply
-                                     (lambda (#{stuff 4521}#)
-                                       (cons '#(syntax-object
-                                                "list*"
-                                                ((top)
-                                                 #(ribcage
-                                                   #(stuff)
-                                                   #((top))
-                                                   #("i4520"))
-                                                 #(ribcage () () ())
-                                                 #(ribcage
-                                                   #(x y)
-                                                   #((top) (top))
-                                                   #("i4502" "i4503"))
-                                                 #(ribcage () () ())
-                                                 #(ribcage () () ())
-                                                 #(ribcage
-                                                   #(x y)
-                                                   #((top) (top))
-                                                   #("i4497" "i4498"))
-                                                 #(ribcage
-                                                   (emit quasivector
-                                                         quasilist*
-                                                         quasiappend
-                                                         quasicons
-                                                         vquasi
-                                                         quasi)
+                             (lambda (#{p 12223}#)
+                               (if (= #{lev 12206}# 0)
+                                 (#{quasiappend 12163}#
+                                   (map (lambda (#{tmp 12224}#)
+                                          (list '#(syntax-object
+                                                   "value"
                                                    ((top)
-                                                    (top)
-                                                    (top)
-                                                    (top)
-                                                    (top)
-                                                    (top)
-                                                    (top))
-                                                   ("i4434"
-                                                    "i4432"
-                                                    "i4430"
-                                                    "i4428"
-                                                    "i4426"
-                                                    "i4424"
-                                                    "i4422")))
-                                                (hygiene guile))
-                                             (cons #{x 4504}# #{stuff 4521}#)))
-                                     #{tmp 4519}#)
-                                   (let ((#{_ 4523}# #{tmp 4506}#))
+                                                    #(ribcage
+                                                      #(p)
+                                                      #((top))
+                                                      #("i12222"))
+                                                    #(ribcage
+                                                      #(p q)
+                                                      #((top) (top))
+                                                      #("i12211" "i12212"))
+                                                    #(ribcage () () ())
+                                                    #(ribcage
+                                                      #(p lev)
+                                                      #((top) (top))
+                                                      #("i12207" "i12208"))
+                                                    #(ribcage
+                                                      (emit quasivector
+                                                            quasilist*
+                                                            quasiappend
+                                                            quasicons
+                                                            vquasi
+                                                            quasi)
+                                                      ((top)
+                                                       (top)
+                                                       (top)
+                                                       (top)
+                                                       (top)
+                                                       (top)
+                                                       (top))
+                                                      ("i12168"
+                                                       "i12166"
+                                                       "i12164"
+                                                       "i12162"
+                                                       "i12160"
+                                                       "i12158"
+                                                       "i12156")))
+                                                   (hygiene guile))
+                                                #{tmp 12224}#))
+                                        #{p 12223}#)
+                                   (#{vquasi 12159}#
+                                     #{q 12214}#
+                                     #{lev 12206}#))
+                                 (#{quasicons 12161}#
+                                   (#{quasicons 12161}#
+                                     '(#(syntax-object
+                                         "quote"
+                                         ((top)
+                                          #(ribcage #(p) #((top)) #("i12222"))
+                                          #(ribcage
+                                            #(p q)
+                                            #((top) (top))
+                                            #("i12211" "i12212"))
+                                          #(ribcage () () ())
+                                          #(ribcage
+                                            #(p lev)
+                                            #((top) (top))
+                                            #("i12207" "i12208"))
+                                          #(ribcage
+                                            (emit quasivector
+                                                  quasilist*
+                                                  quasiappend
+                                                  quasicons
+                                                  vquasi
+                                                  quasi)
+                                            ((top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top))
+                                            ("i12168"
+                                             "i12166"
+                                             "i12164"
+                                             "i12162"
+                                             "i12160"
+                                             "i12158"
+                                             "i12156")))
+                                         (hygiene guile))
+                                       #(syntax-object
+                                         unquote-splicing
+                                         ((top)
+                                          #(ribcage #(p) #((top)) #("i12222"))
+                                          #(ribcage
+                                            #(p q)
+                                            #((top) (top))
+                                            #("i12211" "i12212"))
+                                          #(ribcage () () ())
+                                          #(ribcage
+                                            #(p lev)
+                                            #((top) (top))
+                                            #("i12207" "i12208"))
+                                          #(ribcage
+                                            (emit quasivector
+                                                  quasilist*
+                                                  quasiappend
+                                                  quasicons
+                                                  vquasi
+                                                  quasi)
+                                            ((top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top)
+                                             (top))
+                                            ("i12168"
+                                             "i12166"
+                                             "i12164"
+                                             "i12162"
+                                             "i12160"
+                                             "i12158"
+                                             "i12156")))
+                                         (hygiene guile)))
+                                     (#{quasi 12157}#
+                                       #{p 12223}#
+                                       (#{1-}# #{lev 12206}#)))
+                                   (#{vquasi 12159}#
+                                     #{q 12214}#
+                                     #{lev 12206}#))))
+                             #{tmp 12221}#)
+                           (#{quasicons 12161}#
+                             (#{quasi 12157}# #{p 12213}# #{lev 12206}#)
+                             (#{vquasi 12159}# #{q 12214}# #{lev 12206}#)))))))
+                 #{tmp 12210}#)
+               (let ((#{tmp 12228}# ($sc-dispatch #{p 12205}# '())))
+                 (if #{tmp 12228}#
+                   (@apply
+                     (lambda ()
+                       '(#(syntax-object
+                           "quote"
+                           ((top)
+                            #(ribcage () () ())
+                            #(ribcage
+                              #(p lev)
+                              #((top) (top))
+                              #("i12207" "i12208"))
+                            #(ribcage
+                              (emit quasivector
+                                    quasilist*
+                                    quasiappend
+                                    quasicons
+                                    vquasi
+                                    quasi)
+                              ((top) (top) (top) (top) (top) (top) (top))
+                              ("i12168"
+                               "i12166"
+                               "i12164"
+                               "i12162"
+                               "i12160"
+                               "i12158"
+                               "i12156")))
+                           (hygiene guile))
+                         ()))
+                     #{tmp 12228}#)
+                   (syntax-violation
+                     #f
+                     "source expression failed to match any pattern"
+                     #{p 12205}#)))))))
+       (#{quasicons 12161}#
+         (lambda (#{x 12229}# #{y 12230}#)
+           (let ((#{tmp 12234}# (list #{x 12229}# #{y 12230}#)))
+             (let ((#{tmp 12235}#
+                     ($sc-dispatch #{tmp 12234}# '(any any))))
+               (if #{tmp 12235}#
+                 (@apply
+                   (lambda (#{x 12238}# #{y 12239}#)
+                     (let ((#{tmp 12241}#
+                             ($sc-dispatch
+                               #{y 12239}#
+                               '(#(atom "quote") any))))
+                       (if #{tmp 12241}#
+                         (@apply
+                           (lambda (#{dy 12243}#)
+                             (let ((#{tmp 12245}#
+                                     ($sc-dispatch
+                                       #{x 12238}#
+                                       '(#(atom "quote") any))))
+                               (if #{tmp 12245}#
+                                 (@apply
+                                   (lambda (#{dx 12247}#)
                                      (list '#(syntax-object
-                                              "list*"
+                                              "quote"
                                               ((top)
                                                #(ribcage
-                                                 #(_)
+                                                 #(dx)
                                                  #((top))
-                                                 #("i4522"))
+                                                 #("i12246"))
+                                               #(ribcage
+                                                 #(dy)
+                                                 #((top))
+                                                 #("i12242"))
                                                #(ribcage () () ())
                                                #(ribcage
                                                  #(x y)
                                                  #((top) (top))
-                                                 #("i4502" "i4503"))
+                                                 #("i12236" "i12237"))
                                                #(ribcage () () ())
                                                #(ribcage () () ())
                                                #(ribcage
                                                  #(x y)
                                                  #((top) (top))
-                                                 #("i4497" "i4498"))
+                                                 #("i12231" "i12232"))
                                                #(ribcage
                                                  (emit quasivector
                                                        quasilist*
@@ -14588,469 +17670,84 @@
                                                   (top)
                                                   (top)
                                                   (top))
-                                                 ("i4434"
-                                                  "i4432"
-                                                  "i4430"
-                                                  "i4428"
-                                                  "i4426"
-                                                  "i4424"
-                                                  "i4422")))
+                                                 ("i12168"
+                                                  "i12166"
+                                                  "i12164"
+                                                  "i12162"
+                                                  "i12160"
+                                                  "i12158"
+                                                  "i12156")))
                                               (hygiene guile))
-                                           #{x 4504}#
-                                           #{y 4505}#))))))))))
-                   #{tmp 4501}#)
-                 (syntax-violation
-                   #f
-                   "source expression failed to match any pattern"
-                   #{tmp 4500}#))))))
-       (#{quasiappend 4429}#
-         (lambda (#{x 4524}# #{y 4525}#)
-           (let ((#{tmp 4528}# #{y 4525}#))
-             (let ((#{tmp 4529}#
-                     ($sc-dispatch #{tmp 4528}# '(#(atom "quote") ()))))
-               (if #{tmp 4529}#
-                 (@apply
-                   (lambda ()
-                     (if (null? #{x 4524}#)
-                       '(#(syntax-object
-                           "quote"
-                           ((top)
-                            #(ribcage () () ())
-                            #(ribcage
-                              #(x y)
-                              #((top) (top))
-                              #("i4526" "i4527"))
-                            #(ribcage
-                              (emit quasivector
-                                    quasilist*
-                                    quasiappend
-                                    quasicons
-                                    vquasi
-                                    quasi)
-                              ((top) (top) (top) (top) (top) (top) (top))
-                              ("i4434"
-                               "i4432"
-                               "i4430"
-                               "i4428"
-                               "i4426"
-                               "i4424"
-                               "i4422")))
-                           (hygiene guile))
-                         ())
-                       (if (null? (cdr #{x 4524}#))
-                         (car #{x 4524}#)
-                         (let ((#{tmp 4536}# #{x 4524}#))
-                           (let ((#{tmp 4537}#
-                                   ($sc-dispatch #{tmp 4536}# 'each-any)))
-                             (if #{tmp 4537}#
-                               (@apply
-                                 (lambda (#{p 4539}#)
-                                   (cons '#(syntax-object
-                                            "append"
+                                           (cons #{dx 12247}# #{dy 12243}#)))
+                                   #{tmp 12245}#)
+                                 (if (null? #{dy 12243}#)
+                                   (list '#(syntax-object
+                                            "list"
                                             ((top)
-                                             #(ribcage () () ())
                                              #(ribcage
-                                               #(p)
+                                               #(_)
+                                               #((top))
+                                               #("i12248"))
+                                             #(ribcage
+                                               #(dy)
                                                #((top))
-                                               #("i4538"))
+                                               #("i12242"))
                                              #(ribcage () () ())
                                              #(ribcage
                                                #(x y)
                                                #((top) (top))
-                                               #("i4526" "i4527"))
-                                             #(ribcage
-                                               (emit quasivector
-                                                     quasilist*
-                                                     quasiappend
-                                                     quasicons
-                                                     vquasi
-                                                     quasi)
-                                               ((top)
-                                                (top)
-                                                (top)
-                                                (top)
-                                                (top)
-                                                (top)
-                                                (top))
-                                               ("i4434"
-                                                "i4432"
-                                                "i4430"
-                                                "i4428"
-                                                "i4426"
-                                                "i4424"
-                                                "i4422")))
-                                            (hygiene guile))
-                                         #{p 4539}#))
-                                 #{tmp 4537}#)
-                               (syntax-violation
-                                 #f
-                                 "source expression failed to match any 
pattern"
-                                 #{tmp 4536}#)))))))
-                   #{tmp 4529}#)
-                 (let ((#{_ 4542}# #{tmp 4528}#))
-                   (if (null? #{x 4524}#)
-                     #{y 4525}#
-                     (let ((#{tmp 4547}# (list #{x 4524}# #{y 4525}#)))
-                       (let ((#{tmp 4548}#
-                               ($sc-dispatch #{tmp 4547}# '(each-any any))))
-                         (if #{tmp 4548}#
-                           (@apply
-                             (lambda (#{p 4551}# #{y 4552}#)
-                               (cons '#(syntax-object
-                                        "append"
-                                        ((top)
-                                         #(ribcage () () ())
-                                         #(ribcage
-                                           #(p y)
-                                           #((top) (top))
-                                           #("i4549" "i4550"))
-                                         #(ribcage #(_) #((top)) #("i4541"))
-                                         #(ribcage () () ())
-                                         #(ribcage
-                                           #(x y)
-                                           #((top) (top))
-                                           #("i4526" "i4527"))
-                                         #(ribcage
-                                           (emit quasivector
-                                                 quasilist*
-                                                 quasiappend
-                                                 quasicons
-                                                 vquasi
-                                                 quasi)
-                                           ((top)
-                                            (top)
-                                            (top)
-                                            (top)
-                                            (top)
-                                            (top)
-                                            (top))
-                                           ("i4434"
-                                            "i4432"
-                                            "i4430"
-                                            "i4428"
-                                            "i4426"
-                                            "i4424"
-                                            "i4422")))
-                                        (hygiene guile))
-                                     (append #{p 4551}# (list #{y 4552}#))))
-                             #{tmp 4548}#)
-                           (syntax-violation
-                             #f
-                             "source expression failed to match any pattern"
-                             #{tmp 4547}#)))))))))))
-       (#{quasilist* 4431}#
-         (lambda (#{x 4554}# #{y 4555}#)
-           (letrec*
-             ((#{f 4560}#
-                (lambda (#{x 4561}#)
-                  (if (null? #{x 4561}#)
-                    #{y 4555}#
-                    (#{quasicons 4427}#
-                      (car #{x 4561}#)
-                      (#{f 4560}# (cdr #{x 4561}#)))))))
-             (#{f 4560}# #{x 4554}#))))
-       (#{quasivector 4433}#
-         (lambda (#{x 4562}#)
-           (let ((#{tmp 4564}# #{x 4562}#))
-             (let ((#{tmp 4565}#
-                     ($sc-dispatch
-                       #{tmp 4564}#
-                       '(#(atom "quote") each-any))))
-               (if #{tmp 4565}#
-                 (@apply
-                   (lambda (#{x 4567}#)
-                     (list '#(syntax-object
-                              "quote"
-                              ((top)
-                               #(ribcage #(x) #((top)) #("i4566"))
-                               #(ribcage () () ())
-                               #(ribcage #(x) #((top)) #("i4563"))
-                               #(ribcage
-                                 (emit quasivector
-                                       quasilist*
-                                       quasiappend
-                                       quasicons
-                                       vquasi
-                                       quasi)
-                                 ((top) (top) (top) (top) (top) (top) (top))
-                                 ("i4434"
-                                  "i4432"
-                                  "i4430"
-                                  "i4428"
-                                  "i4426"
-                                  "i4424"
-                                  "i4422")))
-                              (hygiene guile))
-                           (list->vector #{x 4567}#)))
-                   #{tmp 4565}#)
-                 (let ((#{_ 4570}# #{tmp 4564}#))
-                   (letrec*
-                     ((#{f 4574}#
-                        (lambda (#{y 4575}# #{k 4576}#)
-                          (let ((#{tmp 4587}# #{y 4575}#))
-                            (let ((#{tmp 4588}#
-                                    ($sc-dispatch
-                                      #{tmp 4587}#
-                                      '(#(atom "quote") each-any))))
-                              (if #{tmp 4588}#
-                                (@apply
-                                  (lambda (#{y 4590}#)
-                                    (#{k 4576}#
-                                      (map (lambda (#{tmp 4591}#)
-                                             (list '#(syntax-object
-                                                      "quote"
-                                                      ((top)
-                                                       #(ribcage
-                                                         #(y)
-                                                         #((top))
-                                                         #("i4589"))
-                                                       #(ribcage () () ())
-                                                       #(ribcage
-                                                         #(f y k)
-                                                         #((top) (top) (top))
-                                                         #("i4571"
-                                                           "i4572"
-                                                           "i4573"))
-                                                       #(ribcage
-                                                         #(_)
-                                                         #((top))
-                                                         #("i4569"))
-                                                       #(ribcage () () ())
-                                                       #(ribcage
-                                                         #(x)
-                                                         #((top))
-                                                         #("i4563"))
-                                                       #(ribcage
-                                                         (emit quasivector
-                                                               quasilist*
-                                                               quasiappend
-                                                               quasicons
-                                                               vquasi
-                                                               quasi)
-                                                         ((top)
-                                                          (top)
-                                                          (top)
-                                                          (top)
-                                                          (top)
-                                                          (top)
-                                                          (top))
-                                                         ("i4434"
-                                                          "i4432"
-                                                          "i4430"
-                                                          "i4428"
-                                                          "i4426"
-                                                          "i4424"
-                                                          "i4422")))
-                                                      (hygiene guile))
-                                                   #{tmp 4591}#))
-                                           #{y 4590}#)))
-                                  #{tmp 4588}#)
-                                (let ((#{tmp 4592}#
-                                        ($sc-dispatch
-                                          #{tmp 4587}#
-                                          '(#(atom "list") . each-any))))
-                                  (if #{tmp 4592}#
-                                    (@apply
-                                      (lambda (#{y 4594}#)
-                                        (#{k 4576}# #{y 4594}#))
-                                      #{tmp 4592}#)
-                                    (let ((#{tmp 4596}#
-                                            ($sc-dispatch
-                                              #{tmp 4587}#
-                                              '(#(atom "list*")
-                                                .
-                                                #(each+ any (any) ())))))
-                                      (if #{tmp 4596}#
-                                        (@apply
-                                          (lambda (#{y 4599}# #{z 4600}#)
-                                            (#{f 4574}#
-                                              #{z 4600}#
-                                              (lambda (#{ls 4601}#)
-                                                (#{k 4576}#
-                                                  (append
-                                                    #{y 4599}#
-                                                    #{ls 4601}#)))))
-                                          #{tmp 4596}#)
-                                        (let ((#{else 4605}# #{tmp 4587}#))
-                                          (let ((#{tmp 4609}# #{x 4562}#))
-                                            (let ((#{ g4606 4611}#
-                                                    #{tmp 4609}#))
-                                              (list '#(syntax-object
-                                                       "list->vector"
-                                                       ((top)
-                                                        #(ribcage () () ())
-                                                        #(ribcage
-                                                          #(#{ g4606}#)
-                                                          #((m4607 top))
-                                                          #("i4610"))
-                                                        #(ribcage
-                                                          #(else)
-                                                          #((top))
-                                                          #("i4604"))
-                                                        #(ribcage () () ())
-                                                        #(ribcage
-                                                          #(f y k)
-                                                          #((top) (top) (top))
-                                                          #("i4571"
-                                                            "i4572"
-                                                            "i4573"))
-                                                        #(ribcage
-                                                          #(_)
-                                                          #((top))
-                                                          #("i4569"))
-                                                        #(ribcage () () ())
-                                                        #(ribcage
-                                                          #(x)
-                                                          #((top))
-                                                          #("i4563"))
-                                                        #(ribcage
-                                                          (emit quasivector
-                                                                quasilist*
-                                                                quasiappend
-                                                                quasicons
-                                                                vquasi
-                                                                quasi)
-                                                          ((top)
-                                                           (top)
-                                                           (top)
-                                                           (top)
-                                                           (top)
-                                                           (top)
-                                                           (top))
-                                                          ("i4434"
-                                                           "i4432"
-                                                           "i4430"
-                                                           "i4428"
-                                                           "i4426"
-                                                           "i4424"
-                                                           "i4422")))
-                                                       (hygiene guile))
-                                                    #{ g4606 
4611}#))))))))))))))
-                     (#{f 4574}#
-                       #{x 4562}#
-                       (lambda (#{ls 4577}#)
-                         (let ((#{tmp 4582}# #{ls 4577}#))
-                           (let ((#{tmp 4583}#
-                                   ($sc-dispatch #{tmp 4582}# 'each-any)))
-                             (if #{tmp 4583}#
-                               (@apply
-                                 (lambda (#{ g4579 4585}#)
-                                   (cons '#(syntax-object
-                                            "vector"
-                                            ((top)
-                                             #(ribcage () () ())
-                                             #(ribcage
-                                               #(#{ g4579}#)
-                                               #((m4580 top))
-                                               #("i4584"))
-                                             #(ribcage () () ())
-                                             #(ribcage () () ())
+                                               #("i12236" "i12237"))
                                              #(ribcage () () ())
-                                             #(ribcage
-                                               #(ls)
-                                               #((top))
-                                               #("i4578"))
-                                             #(ribcage
-                                               #(_)
-                                               #((top))
-                                               #("i4569"))
                                              #(ribcage () () ())
                                              #(ribcage
-                                               #(x)
-                                               #((top))
-                                               #("i4563"))
-                                             #(ribcage
-                                               (emit quasivector
-                                                     quasilist*
-                                                     quasiappend
-                                                     quasicons
-                                                     vquasi
-                                                     quasi)
-                                               ((top)
-                                                (top)
-                                                (top)
-                                                (top)
-                                                (top)
-                                                (top)
-                                                (top))
-                                               ("i4434"
-                                                "i4432"
-                                                "i4430"
-                                                "i4428"
-                                                "i4426"
-                                                "i4424"
-                                                "i4422")))
-                                            (hygiene guile))
-                                         #{ g4579 4585}#))
-                                 #{tmp 4583}#)
-                               (syntax-violation
-                                 #f
-                                 "source expression failed to match any 
pattern"
-                                 #{tmp 4582}#)))))))))))))
-       (#{emit 4435}#
-         (lambda (#{x 4612}#)
-           (let ((#{tmp 4614}# #{x 4612}#))
-             (let ((#{tmp 4615}#
-                     ($sc-dispatch
-                       #{tmp 4614}#
-                       '(#(atom "quote") any))))
-               (if #{tmp 4615}#
-                 (@apply
-                   (lambda (#{x 4617}#)
-                     (list '#(syntax-object
-                              quote
-                              ((top)
-                               #(ribcage #(x) #((top)) #("i4616"))
-                               #(ribcage () () ())
-                               #(ribcage #(x) #((top)) #("i4613"))
-                               #(ribcage
-                                 (emit quasivector
-                                       quasilist*
-                                       quasiappend
-                                       quasicons
-                                       vquasi
-                                       quasi)
-                                 ((top) (top) (top) (top) (top) (top) (top))
-                                 ("i4434"
-                                  "i4432"
-                                  "i4430"
-                                  "i4428"
-                                  "i4426"
-                                  "i4424"
-                                  "i4422")))
-                              (hygiene guile))
-                           #{x 4617}#))
-                   #{tmp 4615}#)
-                 (let ((#{tmp 4618}#
-                         ($sc-dispatch
-                           #{tmp 4614}#
-                           '(#(atom "list") . each-any))))
-                   (if #{tmp 4618}#
-                     (@apply
-                       (lambda (#{x 4620}#)
-                         (let ((#{tmp 4624}# (map #{emit 4435}# #{x 4620}#)))
-                           (let ((#{tmp 4625}#
-                                   ($sc-dispatch #{tmp 4624}# 'each-any)))
-                             (if #{tmp 4625}#
-                               (@apply
-                                 (lambda (#{ g4621 4627}#)
-                                   (cons '#(syntax-object
-                                            list
+                                               #(x y)
+                                               #((top) (top))
+                                               #("i12231" "i12232"))
+                                             #(ribcage
+                                               (emit quasivector
+                                                     quasilist*
+                                                     quasiappend
+                                                     quasicons
+                                                     vquasi
+                                                     quasi)
+                                               ((top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top)
+                                                (top))
+                                               ("i12168"
+                                                "i12166"
+                                                "i12164"
+                                                "i12162"
+                                                "i12160"
+                                                "i12158"
+                                                "i12156")))
+                                            (hygiene guile))
+                                         #{x 12238}#)
+                                   (list '#(syntax-object
+                                            "list*"
                                             ((top)
-                                             #(ribcage () () ())
                                              #(ribcage
-                                               #(#{ g4621}#)
-                                               #((m4622 top))
-                                               #("i4626"))
+                                               #(_)
+                                               #((top))
+                                               #("i12248"))
                                              #(ribcage
-                                               #(x)
+                                               #(dy)
                                                #((top))
-                                               #("i4619"))
+                                               #("i12242"))
                                              #(ribcage () () ())
                                              #(ribcage
-                                               #(x)
-                                               #((top))
-                                               #("i4613"))
+                                               #(x y)
+                                               #((top) (top))
+                                               #("i12236" "i12237"))
+                                             #(ribcage () () ())
+                                             #(ribcage () () ())
+                                             #(ribcage
+                                               #(x y)
+                                               #((top) (top))
+                                               #("i12231" "i12232"))
                                              #(ribcage
                                                (emit quasivector
                                                      quasilist*
@@ -15065,253 +17762,777 @@
                                                 (top)
                                                 (top)
                                                 (top))
-                                               ("i4434"
-                                                "i4432"
-                                                "i4430"
-                                                "i4428"
-                                                "i4426"
-                                                "i4424"
-                                                "i4422")))
+                                               ("i12168"
+                                                "i12166"
+                                                "i12164"
+                                                "i12162"
+                                                "i12160"
+                                                "i12158"
+                                                "i12156")))
                                             (hygiene guile))
-                                         #{ g4621 4627}#))
-                                 #{tmp 4625}#)
-                               (syntax-violation
-                                 #f
-                                 "source expression failed to match any 
pattern"
-                                 #{tmp 4624}#)))))
-                       #{tmp 4618}#)
-                     (let ((#{tmp 4630}#
-                             ($sc-dispatch
-                               #{tmp 4614}#
-                               '(#(atom "list*") . #(each+ any (any) ())))))
-                       (if #{tmp 4630}#
-                         (@apply
-                           (lambda (#{x 4633}# #{y 4634}#)
-                             (letrec*
-                               ((#{f 4637}#
-                                  (lambda (#{x* 4638}#)
-                                    (if (null? #{x* 4638}#)
-                                      (#{emit 4435}# #{y 4634}#)
-                                      (let ((#{tmp 4644}#
-                                              (list (#{emit 4435}#
-                                                      (car #{x* 4638}#))
-                                                    (#{f 4637}#
-                                                      (cdr #{x* 4638}#)))))
-                                        (let ((#{tmp 4645}#
-                                                ($sc-dispatch
-                                                  #{tmp 4644}#
-                                                  '(any any))))
-                                          (if #{tmp 4645}#
-                                            (@apply
-                                              (lambda (#{ g4641 4648}#
-                                                       #{ g4640 4649}#)
-                                                (list '#(syntax-object
-                                                         cons
-                                                         ((top)
-                                                          #(ribcage () () ())
-                                                          #(ribcage
-                                                            #(#{ g4641}#
-                                                              #{ g4640}#)
-                                                            #((m4642 top)
-                                                              (m4642 top))
-                                                            #("i4646" "i4647"))
-                                                          #(ribcage () () ())
-                                                          #(ribcage
-                                                            #(f x*)
-                                                            #((top) (top))
-                                                            #("i4635" "i4636"))
-                                                          #(ribcage
-                                                            #(x y)
-                                                            #((top) (top))
-                                                            #("i4631" "i4632"))
-                                                          #(ribcage () () ())
-                                                          #(ribcage
-                                                            #(x)
-                                                            #((top))
-                                                            #("i4613"))
-                                                          #(ribcage
-                                                            (emit quasivector
-                                                                  quasilist*
-                                                                  quasiappend
-                                                                  quasicons
-                                                                  vquasi
-                                                                  quasi)
-                                                            ((top)
-                                                             (top)
-                                                             (top)
-                                                             (top)
-                                                             (top)
-                                                             (top)
-                                                             (top))
-                                                            ("i4434"
-                                                             "i4432"
-                                                             "i4430"
-                                                             "i4428"
-                                                             "i4426"
-                                                             "i4424"
-                                                             "i4422")))
-                                                         (hygiene guile))
-                                                      #{ g4641 4648}#
-                                                      #{ g4640 4649}#))
-                                              #{tmp 4645}#)
-                                            (syntax-violation
-                                              #f
-                                              "source expression failed to 
match any pattern"
-                                              #{tmp 4644}#))))))))
-                               (#{f 4637}# #{x 4633}#)))
-                           #{tmp 4630}#)
-                         (let ((#{tmp 4650}#
+                                         #{x 12238}#
+                                         #{y 12239}#)))))
+                           #{tmp 12241}#)
+                         (let ((#{tmp 12250}#
                                  ($sc-dispatch
-                                   #{tmp 4614}#
-                                   '(#(atom "append") . each-any))))
-                           (if #{tmp 4650}#
+                                   #{y 12239}#
+                                   '(#(atom "list") . any))))
+                           (if #{tmp 12250}#
                              (@apply
-                               (lambda (#{x 4652}#)
-                                 (let ((#{tmp 4656}#
-                                         (map #{emit 4435}# #{x 4652}#)))
-                                   (let ((#{tmp 4657}#
-                                           ($sc-dispatch
-                                             #{tmp 4656}#
-                                             'each-any)))
-                                     (if #{tmp 4657}#
-                                       (@apply
-                                         (lambda (#{ g4653 4659}#)
-                                           (cons '#(syntax-object
-                                                    append
-                                                    ((top)
-                                                     #(ribcage () () ())
-                                                     #(ribcage
-                                                       #(#{ g4653}#)
-                                                       #((m4654 top))
-                                                       #("i4658"))
-                                                     #(ribcage
-                                                       #(x)
-                                                       #((top))
-                                                       #("i4651"))
-                                                     #(ribcage () () ())
-                                                     #(ribcage
-                                                       #(x)
-                                                       #((top))
-                                                       #("i4613"))
-                                                     #(ribcage
-                                                       (emit quasivector
-                                                             quasilist*
-                                                             quasiappend
-                                                             quasicons
-                                                             vquasi
-                                                             quasi)
+                               (lambda (#{stuff 12252}#)
+                                 (cons '#(syntax-object
+                                          "list"
+                                          ((top)
+                                           #(ribcage
+                                             #(stuff)
+                                             #((top))
+                                             #("i12251"))
+                                           #(ribcage () () ())
+                                           #(ribcage
+                                             #(x y)
+                                             #((top) (top))
+                                             #("i12236" "i12237"))
+                                           #(ribcage () () ())
+                                           #(ribcage () () ())
+                                           #(ribcage
+                                             #(x y)
+                                             #((top) (top))
+                                             #("i12231" "i12232"))
+                                           #(ribcage
+                                             (emit quasivector
+                                                   quasilist*
+                                                   quasiappend
+                                                   quasicons
+                                                   vquasi
+                                                   quasi)
+                                             ((top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top))
+                                             ("i12168"
+                                              "i12166"
+                                              "i12164"
+                                              "i12162"
+                                              "i12160"
+                                              "i12158"
+                                              "i12156")))
+                                          (hygiene guile))
+                                       (cons #{x 12238}# #{stuff 12252}#)))
+                               #{tmp 12250}#)
+                             (let ((#{tmp 12253}#
+                                     ($sc-dispatch
+                                       #{y 12239}#
+                                       '(#(atom "list*") . any))))
+                               (if #{tmp 12253}#
+                                 (@apply
+                                   (lambda (#{stuff 12255}#)
+                                     (cons '#(syntax-object
+                                              "list*"
+                                              ((top)
+                                               #(ribcage
+                                                 #(stuff)
+                                                 #((top))
+                                                 #("i12254"))
+                                               #(ribcage () () ())
+                                               #(ribcage
+                                                 #(x y)
+                                                 #((top) (top))
+                                                 #("i12236" "i12237"))
+                                               #(ribcage () () ())
+                                               #(ribcage () () ())
+                                               #(ribcage
+                                                 #(x y)
+                                                 #((top) (top))
+                                                 #("i12231" "i12232"))
+                                               #(ribcage
+                                                 (emit quasivector
+                                                       quasilist*
+                                                       quasiappend
+                                                       quasicons
+                                                       vquasi
+                                                       quasi)
+                                                 ((top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top)
+                                                  (top))
+                                                 ("i12168"
+                                                  "i12166"
+                                                  "i12164"
+                                                  "i12162"
+                                                  "i12160"
+                                                  "i12158"
+                                                  "i12156")))
+                                              (hygiene guile))
+                                           (cons #{x 12238}# #{stuff 12255}#)))
+                                   #{tmp 12253}#)
+                                 (list '#(syntax-object
+                                          "list*"
+                                          ((top)
+                                           #(ribcage #(_) #((top)) #("i12256"))
+                                           #(ribcage () () ())
+                                           #(ribcage
+                                             #(x y)
+                                             #((top) (top))
+                                             #("i12236" "i12237"))
+                                           #(ribcage () () ())
+                                           #(ribcage () () ())
+                                           #(ribcage
+                                             #(x y)
+                                             #((top) (top))
+                                             #("i12231" "i12232"))
+                                           #(ribcage
+                                             (emit quasivector
+                                                   quasilist*
+                                                   quasiappend
+                                                   quasicons
+                                                   vquasi
+                                                   quasi)
+                                             ((top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top))
+                                             ("i12168"
+                                              "i12166"
+                                              "i12164"
+                                              "i12162"
+                                              "i12160"
+                                              "i12158"
+                                              "i12156")))
+                                          (hygiene guile))
+                                       #{x 12238}#
+                                       #{y 12239}#))))))))
+                   #{tmp 12235}#)
+                 (syntax-violation
+                   #f
+                   "source expression failed to match any pattern"
+                   #{tmp 12234}#))))))
+       (#{quasiappend 12163}#
+         (lambda (#{x 12258}# #{y 12259}#)
+           (let ((#{tmp 12263}#
+                   ($sc-dispatch #{y 12259}# '(#(atom "quote") ()))))
+             (if #{tmp 12263}#
+               (@apply
+                 (lambda ()
+                   (if (null? #{x 12258}#)
+                     '(#(syntax-object
+                         "quote"
+                         ((top)
+                          #(ribcage () () ())
+                          #(ribcage
+                            #(x y)
+                            #((top) (top))
+                            #("i12260" "i12261"))
+                          #(ribcage
+                            (emit quasivector
+                                  quasilist*
+                                  quasiappend
+                                  quasicons
+                                  vquasi
+                                  quasi)
+                            ((top) (top) (top) (top) (top) (top) (top))
+                            ("i12168"
+                             "i12166"
+                             "i12164"
+                             "i12162"
+                             "i12160"
+                             "i12158"
+                             "i12156")))
+                         (hygiene guile))
+                       ())
+                     (if (null? (cdr #{x 12258}#))
+                       (car #{x 12258}#)
+                       (let ((#{tmp 12271}#
+                               ($sc-dispatch #{x 12258}# 'each-any)))
+                         (if #{tmp 12271}#
+                           (@apply
+                             (lambda (#{p 12273}#)
+                               (cons '#(syntax-object
+                                        "append"
+                                        ((top)
+                                         #(ribcage () () ())
+                                         #(ribcage #(p) #((top)) #("i12272"))
+                                         #(ribcage () () ())
+                                         #(ribcage
+                                           #(x y)
+                                           #((top) (top))
+                                           #("i12260" "i12261"))
+                                         #(ribcage
+                                           (emit quasivector
+                                                 quasilist*
+                                                 quasiappend
+                                                 quasicons
+                                                 vquasi
+                                                 quasi)
+                                           ((top)
+                                            (top)
+                                            (top)
+                                            (top)
+                                            (top)
+                                            (top)
+                                            (top))
+                                           ("i12168"
+                                            "i12166"
+                                            "i12164"
+                                            "i12162"
+                                            "i12160"
+                                            "i12158"
+                                            "i12156")))
+                                        (hygiene guile))
+                                     #{p 12273}#))
+                             #{tmp 12271}#)
+                           (syntax-violation
+                             #f
+                             "source expression failed to match any pattern"
+                             #{x 12258}#))))))
+                 #{tmp 12263}#)
+               (if (null? #{x 12258}#)
+                 #{y 12259}#
+                 (let ((#{tmp 12281}# (list #{x 12258}# #{y 12259}#)))
+                   (let ((#{tmp 12282}#
+                           ($sc-dispatch #{tmp 12281}# '(each-any any))))
+                     (if #{tmp 12282}#
+                       (@apply
+                         (lambda (#{p 12285}# #{y 12286}#)
+                           (cons '#(syntax-object
+                                    "append"
+                                    ((top)
+                                     #(ribcage () () ())
+                                     #(ribcage
+                                       #(p y)
+                                       #((top) (top))
+                                       #("i12283" "i12284"))
+                                     #(ribcage #(_) #((top)) #("i12275"))
+                                     #(ribcage () () ())
+                                     #(ribcage
+                                       #(x y)
+                                       #((top) (top))
+                                       #("i12260" "i12261"))
+                                     #(ribcage
+                                       (emit quasivector
+                                             quasilist*
+                                             quasiappend
+                                             quasicons
+                                             vquasi
+                                             quasi)
+                                       ((top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top)
+                                        (top))
+                                       ("i12168"
+                                        "i12166"
+                                        "i12164"
+                                        "i12162"
+                                        "i12160"
+                                        "i12158"
+                                        "i12156")))
+                                    (hygiene guile))
+                                 (append #{p 12285}# (list #{y 12286}#))))
+                         #{tmp 12282}#)
+                       (syntax-violation
+                         #f
+                         "source expression failed to match any pattern"
+                         #{tmp 12281}#)))))))))
+       (#{quasilist* 12165}#
+         (lambda (#{x 12288}# #{y 12289}#)
+           (letrec*
+             ((#{f 12294}#
+                (lambda (#{x 12295}#)
+                  (if (null? #{x 12295}#)
+                    #{y 12289}#
+                    (#{quasicons 12161}#
+                      (car #{x 12295}#)
+                      (#{f 12294}# (cdr #{x 12295}#)))))))
+             (#{f 12294}# #{x 12288}#))))
+       (#{quasivector 12167}#
+         (lambda (#{x 12296}#)
+           (let ((#{tmp 12299}#
+                   ($sc-dispatch
+                     #{x 12296}#
+                     '(#(atom "quote") each-any))))
+             (if #{tmp 12299}#
+               (@apply
+                 (lambda (#{x 12301}#)
+                   (list '#(syntax-object
+                            "quote"
+                            ((top)
+                             #(ribcage #(x) #((top)) #("i12300"))
+                             #(ribcage () () ())
+                             #(ribcage #(x) #((top)) #("i12297"))
+                             #(ribcage
+                               (emit quasivector
+                                     quasilist*
+                                     quasiappend
+                                     quasicons
+                                     vquasi
+                                     quasi)
+                               ((top) (top) (top) (top) (top) (top) (top))
+                               ("i12168"
+                                "i12166"
+                                "i12164"
+                                "i12162"
+                                "i12160"
+                                "i12158"
+                                "i12156")))
+                            (hygiene guile))
+                         (list->vector #{x 12301}#)))
+                 #{tmp 12299}#)
+               (letrec*
+                 ((#{f 12308}#
+                    (lambda (#{y 12309}# #{k 12310}#)
+                      (let ((#{tmp 12322}#
+                              ($sc-dispatch
+                                #{y 12309}#
+                                '(#(atom "quote") each-any))))
+                        (if #{tmp 12322}#
+                          (@apply
+                            (lambda (#{y 12324}#)
+                              (#{k 12310}#
+                                (map (lambda (#{tmp 12325}#)
+                                       (list '#(syntax-object
+                                                "quote"
+                                                ((top)
+                                                 #(ribcage
+                                                   #(y)
+                                                   #((top))
+                                                   #("i12323"))
+                                                 #(ribcage () () ())
+                                                 #(ribcage
+                                                   #(f y k)
+                                                   #((top) (top) (top))
+                                                   #("i12305"
+                                                     "i12306"
+                                                     "i12307"))
+                                                 #(ribcage
+                                                   #(_)
+                                                   #((top))
+                                                   #("i12303"))
+                                                 #(ribcage () () ())
+                                                 #(ribcage
+                                                   #(x)
+                                                   #((top))
+                                                   #("i12297"))
+                                                 #(ribcage
+                                                   (emit quasivector
+                                                         quasilist*
+                                                         quasiappend
+                                                         quasicons
+                                                         vquasi
+                                                         quasi)
+                                                   ((top)
+                                                    (top)
+                                                    (top)
+                                                    (top)
+                                                    (top)
+                                                    (top)
+                                                    (top))
+                                                   ("i12168"
+                                                    "i12166"
+                                                    "i12164"
+                                                    "i12162"
+                                                    "i12160"
+                                                    "i12158"
+                                                    "i12156")))
+                                                (hygiene guile))
+                                             #{tmp 12325}#))
+                                     #{y 12324}#)))
+                            #{tmp 12322}#)
+                          (let ((#{tmp 12326}#
+                                  ($sc-dispatch
+                                    #{y 12309}#
+                                    '(#(atom "list") . each-any))))
+                            (if #{tmp 12326}#
+                              (@apply
+                                (lambda (#{y 12328}#)
+                                  (#{k 12310}# #{y 12328}#))
+                                #{tmp 12326}#)
+                              (let ((#{tmp 12330}#
+                                      ($sc-dispatch
+                                        #{y 12309}#
+                                        '(#(atom "list*")
+                                          .
+                                          #(each+ any (any) ())))))
+                                (if #{tmp 12330}#
+                                  (@apply
+                                    (lambda (#{y 12333}# #{z 12334}#)
+                                      (#{f 12308}#
+                                        #{z 12334}#
+                                        (lambda (#{ls 12335}#)
+                                          (#{k 12310}#
+                                            (append
+                                              #{y 12333}#
+                                              #{ls 12335}#)))))
+                                    #{tmp 12330}#)
+                                  (list '#(syntax-object
+                                           "list->vector"
+                                           ((top)
+                                            #(ribcage () () ())
+                                            #(ribcage
+                                              #(#{ g12340}#)
+                                              #((m12341 top))
+                                              #("i12344"))
+                                            #(ribcage
+                                              #(else)
+                                              #((top))
+                                              #("i12338"))
+                                            #(ribcage () () ())
+                                            #(ribcage
+                                              #(f y k)
+                                              #((top) (top) (top))
+                                              #("i12305" "i12306" "i12307"))
+                                            #(ribcage
+                                              #(_)
+                                              #((top))
+                                              #("i12303"))
+                                            #(ribcage () () ())
+                                            #(ribcage
+                                              #(x)
+                                              #((top))
+                                              #("i12297"))
+                                            #(ribcage
+                                              (emit quasivector
+                                                    quasilist*
+                                                    quasiappend
+                                                    quasicons
+                                                    vquasi
+                                                    quasi)
+                                              ((top)
+                                               (top)
+                                               (top)
+                                               (top)
+                                               (top)
+                                               (top)
+                                               (top))
+                                              ("i12168"
+                                               "i12166"
+                                               "i12164"
+                                               "i12162"
+                                               "i12160"
+                                               "i12158"
+                                               "i12156")))
+                                           (hygiene guile))
+                                        #{x 12296}#))))))))))
+                 (#{f 12308}#
+                   #{x 12296}#
+                   (lambda (#{ls 12311}#)
+                     (let ((#{tmp 12317}#
+                             ($sc-dispatch #{ls 12311}# 'each-any)))
+                       (if #{tmp 12317}#
+                         (@apply
+                           (lambda (#{ g12313 12319}#)
+                             (cons '#(syntax-object
+                                      "vector"
+                                      ((top)
+                                       #(ribcage () () ())
+                                       #(ribcage
+                                         #(#{ g12313}#)
+                                         #((m12314 top))
+                                         #("i12318"))
+                                       #(ribcage () () ())
+                                       #(ribcage () () ())
+                                       #(ribcage () () ())
+                                       #(ribcage #(ls) #((top)) #("i12312"))
+                                       #(ribcage #(_) #((top)) #("i12303"))
+                                       #(ribcage () () ())
+                                       #(ribcage #(x) #((top)) #("i12297"))
+                                       #(ribcage
+                                         (emit quasivector
+                                               quasilist*
+                                               quasiappend
+                                               quasicons
+                                               vquasi
+                                               quasi)
+                                         ((top)
+                                          (top)
+                                          (top)
+                                          (top)
+                                          (top)
+                                          (top)
+                                          (top))
+                                         ("i12168"
+                                          "i12166"
+                                          "i12164"
+                                          "i12162"
+                                          "i12160"
+                                          "i12158"
+                                          "i12156")))
+                                      (hygiene guile))
+                                   #{ g12313 12319}#))
+                           #{tmp 12317}#)
+                         (syntax-violation
+                           #f
+                           "source expression failed to match any pattern"
+                           #{ls 12311}#))))))))))
+       (#{emit 12169}#
+         (lambda (#{x 12346}#)
+           (let ((#{tmp 12349}#
+                   ($sc-dispatch #{x 12346}# '(#(atom "quote") any))))
+             (if #{tmp 12349}#
+               (@apply
+                 (lambda (#{x 12351}#)
+                   (list '#(syntax-object
+                            quote
+                            ((top)
+                             #(ribcage #(x) #((top)) #("i12350"))
+                             #(ribcage () () ())
+                             #(ribcage #(x) #((top)) #("i12347"))
+                             #(ribcage
+                               (emit quasivector
+                                     quasilist*
+                                     quasiappend
+                                     quasicons
+                                     vquasi
+                                     quasi)
+                               ((top) (top) (top) (top) (top) (top) (top))
+                               ("i12168"
+                                "i12166"
+                                "i12164"
+                                "i12162"
+                                "i12160"
+                                "i12158"
+                                "i12156")))
+                            (hygiene guile))
+                         #{x 12351}#))
+                 #{tmp 12349}#)
+               (let ((#{tmp 12352}#
+                       ($sc-dispatch
+                         #{x 12346}#
+                         '(#(atom "list") . each-any))))
+                 (if #{tmp 12352}#
+                   (@apply
+                     (lambda (#{x 12354}#)
+                       (let ((#{tmp 12358}# (map #{emit 12169}# #{x 12354}#)))
+                         (let ((#{tmp 12359}#
+                                 ($sc-dispatch #{tmp 12358}# 'each-any)))
+                           (if #{tmp 12359}#
+                             (@apply
+                               (lambda (#{ g12355 12361}#)
+                                 (cons '#(syntax-object
+                                          list
+                                          ((top)
+                                           #(ribcage () () ())
+                                           #(ribcage
+                                             #(#{ g12355}#)
+                                             #((m12356 top))
+                                             #("i12360"))
+                                           #(ribcage #(x) #((top)) #("i12353"))
+                                           #(ribcage () () ())
+                                           #(ribcage #(x) #((top)) #("i12347"))
+                                           #(ribcage
+                                             (emit quasivector
+                                                   quasilist*
+                                                   quasiappend
+                                                   quasicons
+                                                   vquasi
+                                                   quasi)
+                                             ((top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top)
+                                              (top))
+                                             ("i12168"
+                                              "i12166"
+                                              "i12164"
+                                              "i12162"
+                                              "i12160"
+                                              "i12158"
+                                              "i12156")))
+                                          (hygiene guile))
+                                       #{ g12355 12361}#))
+                               #{tmp 12359}#)
+                             (syntax-violation
+                               #f
+                               "source expression failed to match any pattern"
+                               #{tmp 12358}#)))))
+                     #{tmp 12352}#)
+                   (let ((#{tmp 12364}#
+                           ($sc-dispatch
+                             #{x 12346}#
+                             '(#(atom "list*") . #(each+ any (any) ())))))
+                     (if #{tmp 12364}#
+                       (@apply
+                         (lambda (#{x 12367}# #{y 12368}#)
+                           (letrec*
+                             ((#{f 12371}#
+                                (lambda (#{x* 12372}#)
+                                  (if (null? #{x* 12372}#)
+                                    (#{emit 12169}# #{y 12368}#)
+                                    (let ((#{tmp 12378}#
+                                            (list (#{emit 12169}#
+                                                    (car #{x* 12372}#))
+                                                  (#{f 12371}#
+                                                    (cdr #{x* 12372}#)))))
+                                      (let ((#{tmp 12379}#
+                                              ($sc-dispatch
+                                                #{tmp 12378}#
+                                                '(any any))))
+                                        (if #{tmp 12379}#
+                                          (@apply
+                                            (lambda (#{ g12375 12382}#
+                                                     #{ g12374 12383}#)
+                                              (list '#(syntax-object
+                                                       cons
                                                        ((top)
-                                                        (top)
-                                                        (top)
-                                                        (top)
-                                                        (top)
-                                                        (top)
-                                                        (top))
-                                                       ("i4434"
-                                                        "i4432"
-                                                        "i4430"
-                                                        "i4428"
-                                                        "i4426"
-                                                        "i4424"
-                                                        "i4422")))
-                                                    (hygiene guile))
-                                                 #{ g4653 4659}#))
-                                         #{tmp 4657}#)
-                                       (syntax-violation
-                                         #f
-                                         "source expression failed to match 
any pattern"
-                                         #{tmp 4656}#)))))
-                               #{tmp 4650}#)
-                             (let ((#{tmp 4662}#
-                                     ($sc-dispatch
-                                       #{tmp 4614}#
-                                       '(#(atom "vector") . each-any))))
-                               (if #{tmp 4662}#
-                                 (@apply
-                                   (lambda (#{x 4664}#)
-                                     (let ((#{tmp 4668}#
-                                             (map #{emit 4435}# #{x 4664}#)))
-                                       (let ((#{tmp 4669}#
-                                               ($sc-dispatch
-                                                 #{tmp 4668}#
-                                                 'each-any)))
-                                         (if #{tmp 4669}#
-                                           (@apply
-                                             (lambda (#{ g4665 4671}#)
-                                               (cons '#(syntax-object
-                                                        vector
-                                                        ((top)
-                                                         #(ribcage () () ())
-                                                         #(ribcage
-                                                           #(#{ g4665}#)
-                                                           #((m4666 top))
-                                                           #("i4670"))
-                                                         #(ribcage
-                                                           #(x)
-                                                           #((top))
-                                                           #("i4663"))
-                                                         #(ribcage () () ())
-                                                         #(ribcage
-                                                           #(x)
-                                                           #((top))
-                                                           #("i4613"))
-                                                         #(ribcage
-                                                           (emit quasivector
-                                                                 quasilist*
-                                                                 quasiappend
-                                                                 quasicons
-                                                                 vquasi
-                                                                 quasi)
-                                                           ((top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top)
-                                                            (top))
-                                                           ("i4434"
-                                                            "i4432"
-                                                            "i4430"
-                                                            "i4428"
-                                                            "i4426"
-                                                            "i4424"
-                                                            "i4422")))
-                                                        (hygiene guile))
-                                                     #{ g4665 4671}#))
-                                             #{tmp 4669}#)
-                                           (syntax-violation
-                                             #f
-                                             "source expression failed to 
match any pattern"
-                                             #{tmp 4668}#)))))
-                                   #{tmp 4662}#)
-                                 (let ((#{tmp 4674}#
+                                                        #(ribcage () () ())
+                                                        #(ribcage
+                                                          #(#{ g12375}#
+                                                            #{ g12374}#)
+                                                          #((m12376 top)
+                                                            (m12376 top))
+                                                          #("i12380" "i12381"))
+                                                        #(ribcage () () ())
+                                                        #(ribcage
+                                                          #(f x*)
+                                                          #((top) (top))
+                                                          #("i12369" "i12370"))
+                                                        #(ribcage
+                                                          #(x y)
+                                                          #((top) (top))
+                                                          #("i12365" "i12366"))
+                                                        #(ribcage () () ())
+                                                        #(ribcage
+                                                          #(x)
+                                                          #((top))
+                                                          #("i12347"))
+                                                        #(ribcage
+                                                          (emit quasivector
+                                                                quasilist*
+                                                                quasiappend
+                                                                quasicons
+                                                                vquasi
+                                                                quasi)
+                                                          ((top)
+                                                           (top)
+                                                           (top)
+                                                           (top)
+                                                           (top)
+                                                           (top)
+                                                           (top))
+                                                          ("i12168"
+                                                           "i12166"
+                                                           "i12164"
+                                                           "i12162"
+                                                           "i12160"
+                                                           "i12158"
+                                                           "i12156")))
+                                                       (hygiene guile))
+                                                    #{ g12375 12382}#
+                                                    #{ g12374 12383}#))
+                                            #{tmp 12379}#)
+                                          (syntax-violation
+                                            #f
+                                            "source expression failed to match 
any pattern"
+                                            #{tmp 12378}#))))))))
+                             (#{f 12371}# #{x 12367}#)))
+                         #{tmp 12364}#)
+                       (let ((#{tmp 12384}#
+                               ($sc-dispatch
+                                 #{x 12346}#
+                                 '(#(atom "append") . each-any))))
+                         (if #{tmp 12384}#
+                           (@apply
+                             (lambda (#{x 12386}#)
+                               (let ((#{tmp 12390}#
+                                       (map #{emit 12169}# #{x 12386}#)))
+                                 (let ((#{tmp 12391}#
                                          ($sc-dispatch
-                                           #{tmp 4614}#
-                                           '(#(atom "list->vector") any))))
-                                   (if #{tmp 4674}#
+                                           #{tmp 12390}#
+                                           'each-any)))
+                                   (if #{tmp 12391}#
                                      (@apply
-                                       (lambda (#{x 4676}#)
-                                         (let ((#{tmp 4680}#
-                                                 (#{emit 4435}# #{x 4676}#)))
-                                           (let ((#{ g4677 4682}#
-                                                   #{tmp 4680}#))
-                                             (list '#(syntax-object
-                                                      list->vector
+                                       (lambda (#{ g12387 12393}#)
+                                         (cons '#(syntax-object
+                                                  append
+                                                  ((top)
+                                                   #(ribcage () () ())
+                                                   #(ribcage
+                                                     #(#{ g12387}#)
+                                                     #((m12388 top))
+                                                     #("i12392"))
+                                                   #(ribcage
+                                                     #(x)
+                                                     #((top))
+                                                     #("i12385"))
+                                                   #(ribcage () () ())
+                                                   #(ribcage
+                                                     #(x)
+                                                     #((top))
+                                                     #("i12347"))
+                                                   #(ribcage
+                                                     (emit quasivector
+                                                           quasilist*
+                                                           quasiappend
+                                                           quasicons
+                                                           vquasi
+                                                           quasi)
+                                                     ((top)
+                                                      (top)
+                                                      (top)
+                                                      (top)
+                                                      (top)
+                                                      (top)
+                                                      (top))
+                                                     ("i12168"
+                                                      "i12166"
+                                                      "i12164"
+                                                      "i12162"
+                                                      "i12160"
+                                                      "i12158"
+                                                      "i12156")))
+                                                  (hygiene guile))
+                                               #{ g12387 12393}#))
+                                       #{tmp 12391}#)
+                                     (syntax-violation
+                                       #f
+                                       "source expression failed to match any 
pattern"
+                                       #{tmp 12390}#)))))
+                             #{tmp 12384}#)
+                           (let ((#{tmp 12396}#
+                                   ($sc-dispatch
+                                     #{x 12346}#
+                                     '(#(atom "vector") . each-any))))
+                             (if #{tmp 12396}#
+                               (@apply
+                                 (lambda (#{x 12398}#)
+                                   (let ((#{tmp 12402}#
+                                           (map #{emit 12169}# #{x 12398}#)))
+                                     (let ((#{tmp 12403}#
+                                             ($sc-dispatch
+                                               #{tmp 12402}#
+                                               'each-any)))
+                                       (if #{tmp 12403}#
+                                         (@apply
+                                           (lambda (#{ g12399 12405}#)
+                                             (cons '#(syntax-object
+                                                      vector
                                                       ((top)
                                                        #(ribcage () () ())
                                                        #(ribcage
-                                                         #(#{ g4677}#)
-                                                         #((m4678 top))
-                                                         #("i4681"))
+                                                         #(#{ g12399}#)
+                                                         #((m12400 top))
+                                                         #("i12404"))
                                                        #(ribcage
                                                          #(x)
                                                          #((top))
-                                                         #("i4675"))
+                                                         #("i12397"))
                                                        #(ribcage () () ())
                                                        #(ribcage
                                                          #(x)
                                                          #((top))
-                                                         #("i4613"))
+                                                         #("i12347"))
                                                        #(ribcage
                                                          (emit quasivector
                                                                quasilist*
@@ -15326,690 +18547,619 @@
                                                           (top)
                                                           (top)
                                                           (top))
-                                                         ("i4434"
-                                                          "i4432"
-                                                          "i4430"
-                                                          "i4428"
-                                                          "i4426"
-                                                          "i4424"
-                                                          "i4422")))
+                                                         ("i12168"
+                                                          "i12166"
+                                                          "i12164"
+                                                          "i12162"
+                                                          "i12160"
+                                                          "i12158"
+                                                          "i12156")))
                                                       (hygiene guile))
-                                                   #{ g4677 4682}#))))
-                                       #{tmp 4674}#)
-                                     (let ((#{tmp 4683}#
-                                             ($sc-dispatch
-                                               #{tmp 4614}#
-                                               '(#(atom "value") any))))
-                                       (if #{tmp 4683}#
-                                         (@apply
-                                           (lambda (#{x 4685}#) #{x 4685}#)
-                                           #{tmp 4683}#)
+                                                   #{ g12399 12405}#))
+                                           #{tmp 12403}#)
                                          (syntax-violation
                                            #f
                                            "source expression failed to match 
any pattern"
-                                           #{tmp 4614}#)))))))))))))))))))
-      (lambda (#{x 4686}#)
-        (let ((#{tmp 4688}# #{x 4686}#))
-          (let ((#{tmp 4689}#
-                  ($sc-dispatch #{tmp 4688}# '(_ any))))
-            (if #{tmp 4689}#
-              (@apply
-                (lambda (#{e 4691}#)
-                  (#{emit 4435}# (#{quasi 4423}# #{e 4691}# 0)))
-                #{tmp 4689}#)
-              (syntax-violation
-                #f
-                "source expression failed to match any pattern"
-                #{tmp 4688}#))))))))
+                                           #{tmp 12402}#)))))
+                                 #{tmp 12396}#)
+                               (let ((#{tmp 12408}#
+                                       ($sc-dispatch
+                                         #{x 12346}#
+                                         '(#(atom "list->vector") any))))
+                                 (if #{tmp 12408}#
+                                   (@apply
+                                     (lambda (#{x 12410}#)
+                                       (let ((#{tmp 12414}#
+                                               (#{emit 12169}# #{x 12410}#)))
+                                         (list '#(syntax-object
+                                                  list->vector
+                                                  ((top)
+                                                   #(ribcage () () ())
+                                                   #(ribcage
+                                                     #(#{ g12411}#)
+                                                     #((m12412 top))
+                                                     #("i12415"))
+                                                   #(ribcage
+                                                     #(x)
+                                                     #((top))
+                                                     #("i12409"))
+                                                   #(ribcage () () ())
+                                                   #(ribcage
+                                                     #(x)
+                                                     #((top))
+                                                     #("i12347"))
+                                                   #(ribcage
+                                                     (emit quasivector
+                                                           quasilist*
+                                                           quasiappend
+                                                           quasicons
+                                                           vquasi
+                                                           quasi)
+                                                     ((top)
+                                                      (top)
+                                                      (top)
+                                                      (top)
+                                                      (top)
+                                                      (top)
+                                                      (top))
+                                                     ("i12168"
+                                                      "i12166"
+                                                      "i12164"
+                                                      "i12162"
+                                                      "i12160"
+                                                      "i12158"
+                                                      "i12156")))
+                                                  (hygiene guile))
+                                               #{tmp 12414}#)))
+                                     #{tmp 12408}#)
+                                   (let ((#{tmp 12417}#
+                                           ($sc-dispatch
+                                             #{x 12346}#
+                                             '(#(atom "value") any))))
+                                     (if #{tmp 12417}#
+                                       (@apply
+                                         (lambda (#{x 12419}#) #{x 12419}#)
+                                         #{tmp 12417}#)
+                                       (syntax-violation
+                                         #f
+                                         "source expression failed to match 
any pattern"
+                                         #{x 12346}#))))))))))))))))))
+      (lambda (#{x 12420}#)
+        (let ((#{tmp 12423}#
+                ($sc-dispatch #{x 12420}# '(_ any))))
+          (if #{tmp 12423}#
+            (@apply
+              (lambda (#{e 12425}#)
+                (#{emit 12169}# (#{quasi 12157}# #{e 12425}# 0)))
+              #{tmp 12423}#)
+            (syntax-violation
+              #f
+              "source expression failed to match any pattern"
+              #{x 12420}#)))))))
 
 (define include
   (make-syntax-transformer
     'include
     'macro
-    (lambda (#{x 4692}#)
-      (letrec*
-        ((#{read-file 4695}#
-           (lambda (#{fn 4696}# #{k 4697}#)
-             (let ((#{p 4701}# (open-input-file #{fn 4696}#)))
-               (letrec*
-                 ((#{f 4705}#
-                    (lambda (#{x 4706}# #{result 4707}#)
-                      (if (eof-object? #{x 4706}#)
-                        (begin
-                          (close-input-port #{p 4701}#)
-                          (reverse #{result 4707}#))
-                        (#{f 4705}#
-                          (read #{p 4701}#)
-                          (cons (datum->syntax #{k 4697}# #{x 4706}#)
-                                #{result 4707}#))))))
-                 (#{f 4705}# (read #{p 4701}#) '()))))))
-        (let ((#{tmp 4708}# #{x 4692}#))
-          (let ((#{tmp 4709}#
-                  ($sc-dispatch #{tmp 4708}# '(any any))))
-            (if #{tmp 4709}#
-              (@apply
-                (lambda (#{k 4712}# #{filename 4713}#)
-                  (let ((#{fn 4715}# (syntax->datum #{filename 4713}#)))
-                    (let ((#{tmp 4717}#
-                            (#{read-file 4695}#
-                              #{fn 4715}#
-                              #{filename 4713}#)))
-                      (let ((#{tmp 4718}#
-                              ($sc-dispatch #{tmp 4717}# 'each-any)))
-                        (if #{tmp 4718}#
-                          (@apply
-                            (lambda (#{exp 4720}#)
-                              (cons '#(syntax-object
-                                       begin
-                                       ((top)
-                                        #(ribcage () () ())
-                                        #(ribcage #(exp) #((top)) #("i4719"))
-                                        #(ribcage () () ())
-                                        #(ribcage () () ())
-                                        #(ribcage #(fn) #((top)) #("i4714"))
-                                        #(ribcage
-                                          #(k filename)
-                                          #((top) (top))
-                                          #("i4710" "i4711"))
-                                        #(ribcage
-                                          (read-file)
-                                          ((top))
-                                          ("i4694"))
-                                        #(ribcage #(x) #((top)) #("i4693")))
-                                       (hygiene guile))
-                                    #{exp 4720}#))
-                            #{tmp 4718}#)
-                          (syntax-violation
-                            #f
-                            "source expression failed to match any pattern"
-                            #{tmp 4717}#))))))
-                #{tmp 4709}#)
-              (syntax-violation
-                #f
-                "source expression failed to match any pattern"
-                #{tmp 4708}#))))))))
+    (lambda (#{x 12691}#)
+      (let ((#{tmp 12708}#
+              ($sc-dispatch #{x 12691}# '(any any))))
+        (if #{tmp 12708}#
+          (@apply
+            (lambda (#{k 12711}# #{filename 12712}#)
+              (let ((#{fn 12714}# (syntax->datum #{filename 12712}#)))
+                (let ((#{tmp 12716}#
+                        ((lambda (#{fn 12695}# #{k 12696}#)
+                           (let ((#{p 12700}# (open-input-file #{fn 12695}#)))
+                             (letrec*
+                               ((#{f 12704}#
+                                  (lambda (#{x 12705}# #{result 12706}#)
+                                    (if (eof-object? #{x 12705}#)
+                                      (begin
+                                        (close-input-port #{p 12700}#)
+                                        (reverse #{result 12706}#))
+                                      (#{f 12704}#
+                                        (read #{p 12700}#)
+                                        (cons (datum->syntax
+                                                #{k 12696}#
+                                                #{x 12705}#)
+                                              #{result 12706}#))))))
+                               (#{f 12704}# (read #{p 12700}#) '()))))
+                         #{fn 12714}#
+                         #{filename 12712}#)))
+                  (let ((#{tmp 12717}#
+                          ($sc-dispatch #{tmp 12716}# 'each-any)))
+                    (if #{tmp 12717}#
+                      (@apply
+                        (lambda (#{exp 12719}#)
+                          (cons '#(syntax-object
+                                   begin
+                                   ((top)
+                                    #(ribcage () () ())
+                                    #(ribcage #(exp) #((top)) #("i12718"))
+                                    #(ribcage () () ())
+                                    #(ribcage () () ())
+                                    #(ribcage #(fn) #((top)) #("i12713"))
+                                    #(ribcage
+                                      #(k filename)
+                                      #((top) (top))
+                                      #("i12709" "i12710"))
+                                    #(ribcage (read-file) ((top)) ("i12693"))
+                                    #(ribcage #(x) #((top)) #("i12692")))
+                                   (hygiene guile))
+                                #{exp 12719}#))
+                        #{tmp 12717}#)
+                      (syntax-violation
+                        #f
+                        "source expression failed to match any pattern"
+                        #{tmp 12716}#))))))
+            #{tmp 12708}#)
+          (syntax-violation
+            #f
+            "source expression failed to match any pattern"
+            #{x 12691}#))))))
 
 (define include-from-path
   (make-syntax-transformer
     'include-from-path
     'macro
-    (lambda (#{x 4722}#)
-      (let ((#{tmp 4724}# #{x 4722}#))
-        (let ((#{tmp 4725}#
-                ($sc-dispatch #{tmp 4724}# '(any any))))
-          (if #{tmp 4725}#
-            (@apply
-              (lambda (#{k 4728}# #{filename 4729}#)
-                (let ((#{fn 4731}# (syntax->datum #{filename 4729}#)))
-                  (let ((#{tmp 4733}#
-                          (datum->syntax
-                            #{filename 4729}#
-                            (let ((#{t 4738}# (%search-load-path #{fn 4731}#)))
-                              (if #{t 4738}#
-                                #{t 4738}#
-                                (syntax-violation
-                                  'include-from-path
-                                  "file not found in path"
-                                  #{x 4722}#
-                                  #{filename 4729}#))))))
-                    (let ((#{fn 4735}# #{tmp 4733}#))
-                      (list '#(syntax-object
-                               include
-                               ((top)
-                                #(ribcage () () ())
-                                #(ribcage #(fn) #((top)) #("i4734"))
-                                #(ribcage () () ())
-                                #(ribcage () () ())
-                                #(ribcage #(fn) #((top)) #("i4730"))
-                                #(ribcage
-                                  #(k filename)
-                                  #((top) (top))
-                                  #("i4726" "i4727"))
-                                #(ribcage () () ())
-                                #(ribcage #(x) #((top)) #("i4723")))
-                               (hygiene guile))
-                            #{fn 4735}#)))))
-              #{tmp 4725}#)
-            (syntax-violation
-              #f
-              "source expression failed to match any pattern"
-              #{tmp 4724}#)))))))
+    (lambda (#{x 12816}#)
+      (let ((#{tmp 12819}#
+              ($sc-dispatch #{x 12816}# '(any any))))
+        (if #{tmp 12819}#
+          (@apply
+            (lambda (#{k 12822}# #{filename 12823}#)
+              (let ((#{fn 12825}# (syntax->datum #{filename 12823}#)))
+                (let ((#{tmp 12827}#
+                        (datum->syntax
+                          #{filename 12823}#
+                          (let ((#{t 12832}# (%search-load-path #{fn 12825}#)))
+                            (if #{t 12832}#
+                              #{t 12832}#
+                              (syntax-violation
+                                'include-from-path
+                                "file not found in path"
+                                #{x 12816}#
+                                #{filename 12823}#))))))
+                  (list '#(syntax-object
+                           include
+                           ((top)
+                            #(ribcage () () ())
+                            #(ribcage #(fn) #((top)) #("i12828"))
+                            #(ribcage () () ())
+                            #(ribcage () () ())
+                            #(ribcage #(fn) #((top)) #("i12824"))
+                            #(ribcage
+                              #(k filename)
+                              #((top) (top))
+                              #("i12820" "i12821"))
+                            #(ribcage () () ())
+                            #(ribcage #(x) #((top)) #("i12817")))
+                           (hygiene guile))
+                        #{tmp 12827}#))))
+            #{tmp 12819}#)
+          (syntax-violation
+            #f
+            "source expression failed to match any pattern"
+            #{x 12816}#))))))
 
 (define unquote
   (make-syntax-transformer
     'unquote
     'macro
-    (lambda (#{x 4740}#)
+    (lambda (#{x 12834}#)
       (syntax-violation
         'unquote
         "expression not valid outside of quasiquote"
-        #{x 4740}#))))
+        #{x 12834}#))))
 
 (define unquote-splicing
   (make-syntax-transformer
     'unquote-splicing
     'macro
-    (lambda (#{x 4742}#)
+    (lambda (#{x 12836}#)
       (syntax-violation
         'unquote-splicing
         "expression not valid outside of quasiquote"
-        #{x 4742}#))))
+        #{x 12836}#))))
 
 (define case
   (make-syntax-transformer
     'case
     'macro
-    (lambda (#{x 4744}#)
-      (let ((#{tmp 4746}# #{x 4744}#))
-        (let ((#{tmp 4747}#
-                ($sc-dispatch
-                  #{tmp 4746}#
-                  '(_ any any . each-any))))
-          (if #{tmp 4747}#
-            (@apply
-              (lambda (#{e 4751}# #{m1 4752}# #{m2 4753}#)
-                (let ((#{tmp 4755}#
-                        (letrec*
-                          ((#{f 4761}#
-                             (lambda (#{clause 4762}# #{clauses 4763}#)
-                               (if (null? #{clauses 4763}#)
-                                 (let ((#{tmp 4765}# #{clause 4762}#))
-                                   (let ((#{tmp 4766}#
+    (lambda (#{x 12838}#)
+      (let ((#{tmp 12841}#
+              ($sc-dispatch
+                #{x 12838}#
+                '(_ any any . each-any))))
+        (if #{tmp 12841}#
+          (@apply
+            (lambda (#{e 12845}# #{m1 12846}# #{m2 12847}#)
+              (let ((#{tmp 12849}#
+                      (letrec*
+                        ((#{f 12855}#
+                           (lambda (#{clause 12856}# #{clauses 12857}#)
+                             (if (null? #{clauses 12857}#)
+                               (let ((#{tmp 12860}#
+                                       ($sc-dispatch
+                                         #{clause 12856}#
+                                         '(#(free-id
+                                             #(syntax-object
+                                               else
+                                               ((top)
+                                                #(ribcage () () ())
+                                                #(ribcage
+                                                  #(f clause clauses)
+                                                  #((top) (top) (top))
+                                                  #("i12852"
+                                                    "i12853"
+                                                    "i12854"))
+                                                #(ribcage
+                                                  #(e m1 m2)
+                                                  #((top) (top) (top))
+                                                  #("i12842"
+                                                    "i12843"
+                                                    "i12844"))
+                                                #(ribcage () () ())
+                                                #(ribcage
+                                                  #(x)
+                                                  #((top))
+                                                  #("i12839")))
+                                               (hygiene guile)))
+                                           any
+                                           .
+                                           each-any))))
+                                 (if #{tmp 12860}#
+                                   (@apply
+                                     (lambda (#{e1 12863}# #{e2 12864}#)
+                                       (cons '#(syntax-object
+                                                begin
+                                                ((top)
+                                                 #(ribcage
+                                                   #(e1 e2)
+                                                   #((top) (top))
+                                                   #("i12861" "i12862"))
+                                                 #(ribcage () () ())
+                                                 #(ribcage
+                                                   #(f clause clauses)
+                                                   #((top) (top) (top))
+                                                   #("i12852"
+                                                     "i12853"
+                                                     "i12854"))
+                                                 #(ribcage
+                                                   #(e m1 m2)
+                                                   #((top) (top) (top))
+                                                   #("i12842"
+                                                     "i12843"
+                                                     "i12844"))
+                                                 #(ribcage () () ())
+                                                 #(ribcage
+                                                   #(x)
+                                                   #((top))
+                                                   #("i12839")))
+                                                (hygiene guile))
+                                             (cons #{e1 12863}# #{e2 12864}#)))
+                                     #{tmp 12860}#)
+                                   (let ((#{tmp 12866}#
                                            ($sc-dispatch
-                                             #{tmp 4765}#
-                                             '(#(free-id
-                                                 #(syntax-object
-                                                   else
-                                                   ((top)
-                                                    #(ribcage () () ())
-                                                    #(ribcage
-                                                      #(f clause clauses)
-                                                      #((top) (top) (top))
-                                                      #("i4758"
-                                                        "i4759"
-                                                        "i4760"))
-                                                    #(ribcage
-                                                      #(e m1 m2)
-                                                      #((top) (top) (top))
-                                                      #("i4748"
-                                                        "i4749"
-                                                        "i4750"))
-                                                    #(ribcage () () ())
-                                                    #(ribcage
-                                                      #(x)
-                                                      #((top))
-                                                      #("i4745")))
-                                                   (hygiene guile)))
-                                               any
-                                               .
-                                               each-any))))
-                                     (if #{tmp 4766}#
+                                             #{clause 12856}#
+                                             '(each-any any . each-any))))
+                                     (if #{tmp 12866}#
                                        (@apply
-                                         (lambda (#{e1 4769}# #{e2 4770}#)
-                                           (cons '#(syntax-object
-                                                    begin
+                                         (lambda (#{k 12870}#
+                                                  #{e1 12871}#
+                                                  #{e2 12872}#)
+                                           (list '#(syntax-object
+                                                    if
                                                     ((top)
                                                      #(ribcage
-                                                       #(e1 e2)
-                                                       #((top) (top))
-                                                       #("i4767" "i4768"))
+                                                       #(k e1 e2)
+                                                       #((top) (top) (top))
+                                                       #("i12867"
+                                                         "i12868"
+                                                         "i12869"))
                                                      #(ribcage () () ())
                                                      #(ribcage
                                                        #(f clause clauses)
                                                        #((top) (top) (top))
-                                                       #("i4758"
-                                                         "i4759"
-                                                         "i4760"))
+                                                       #("i12852"
+                                                         "i12853"
+                                                         "i12854"))
                                                      #(ribcage
                                                        #(e m1 m2)
                                                        #((top) (top) (top))
-                                                       #("i4748"
-                                                         "i4749"
-                                                         "i4750"))
+                                                       #("i12842"
+                                                         "i12843"
+                                                         "i12844"))
                                                      #(ribcage () () ())
                                                      #(ribcage
                                                        #(x)
                                                        #((top))
-                                                       #("i4745")))
+                                                       #("i12839")))
                                                     (hygiene guile))
-                                                 (cons #{e1 4769}#
-                                                       #{e2 4770}#)))
-                                         #{tmp 4766}#)
-                                       (let ((#{tmp 4772}#
-                                               ($sc-dispatch
-                                                 #{tmp 4765}#
-                                                 '(each-any any . each-any))))
-                                         (if #{tmp 4772}#
-                                           (@apply
-                                             (lambda (#{k 4776}#
-                                                      #{e1 4777}#
-                                                      #{e2 4778}#)
+                                                 (list '#(syntax-object
+                                                          memv
+                                                          ((top)
+                                                           #(ribcage
+                                                             #(k e1 e2)
+                                                             #((top)
+                                                               (top)
+                                                               (top))
+                                                             #("i12867"
+                                                               "i12868"
+                                                               "i12869"))
+                                                           #(ribcage () () ())
+                                                           #(ribcage
+                                                             #(f
+                                                               clause
+                                                               clauses)
+                                                             #((top)
+                                                               (top)
+                                                               (top))
+                                                             #("i12852"
+                                                               "i12853"
+                                                               "i12854"))
+                                                           #(ribcage
+                                                             #(e m1 m2)
+                                                             #((top)
+                                                               (top)
+                                                               (top))
+                                                             #("i12842"
+                                                               "i12843"
+                                                               "i12844"))
+                                                           #(ribcage () () ())
+                                                           #(ribcage
+                                                             #(x)
+                                                             #((top))
+                                                             #("i12839")))
+                                                          (hygiene guile))
+                                                       '#(syntax-object
+                                                          t
+                                                          ((top)
+                                                           #(ribcage
+                                                             #(k e1 e2)
+                                                             #((top)
+                                                               (top)
+                                                               (top))
+                                                             #("i12867"
+                                                               "i12868"
+                                                               "i12869"))
+                                                           #(ribcage () () ())
+                                                           #(ribcage
+                                                             #(f
+                                                               clause
+                                                               clauses)
+                                                             #((top)
+                                                               (top)
+                                                               (top))
+                                                             #("i12852"
+                                                               "i12853"
+                                                               "i12854"))
+                                                           #(ribcage
+                                                             #(e m1 m2)
+                                                             #((top)
+                                                               (top)
+                                                               (top))
+                                                             #("i12842"
+                                                               "i12843"
+                                                               "i12844"))
+                                                           #(ribcage () () ())
+                                                           #(ribcage
+                                                             #(x)
+                                                             #((top))
+                                                             #("i12839")))
+                                                          (hygiene guile))
+                                                       (list '#(syntax-object
+                                                                quote
+                                                                ((top)
+                                                                 #(ribcage
+                                                                   #(k e1 e2)
+                                                                   #((top)
+                                                                     (top)
+                                                                     (top))
+                                                                   #("i12867"
+                                                                     "i12868"
+                                                                     "i12869"))
+                                                                 #(ribcage
+                                                                   ()
+                                                                   ()
+                                                                   ())
+                                                                 #(ribcage
+                                                                   #(f
+                                                                     clause
+                                                                     clauses)
+                                                                   #((top)
+                                                                     (top)
+                                                                     (top))
+                                                                   #("i12852"
+                                                                     "i12853"
+                                                                     "i12854"))
+                                                                 #(ribcage
+                                                                   #(e m1 m2)
+                                                                   #((top)
+                                                                     (top)
+                                                                     (top))
+                                                                   #("i12842"
+                                                                     "i12843"
+                                                                     "i12844"))
+                                                                 #(ribcage
+                                                                   ()
+                                                                   ()
+                                                                   ())
+                                                                 #(ribcage
+                                                                   #(x)
+                                                                   #((top))
+                                                                   
#("i12839")))
+                                                                (hygiene
+                                                                  guile))
+                                                             #{k 12870}#))
+                                                 (cons '#(syntax-object
+                                                          begin
+                                                          ((top)
+                                                           #(ribcage
+                                                             #(k e1 e2)
+                                                             #((top)
+                                                               (top)
+                                                               (top))
+                                                             #("i12867"
+                                                               "i12868"
+                                                               "i12869"))
+                                                           #(ribcage () () ())
+                                                           #(ribcage
+                                                             #(f
+                                                               clause
+                                                               clauses)
+                                                             #((top)
+                                                               (top)
+                                                               (top))
+                                                             #("i12852"
+                                                               "i12853"
+                                                               "i12854"))
+                                                           #(ribcage
+                                                             #(e m1 m2)
+                                                             #((top)
+                                                               (top)
+                                                               (top))
+                                                             #("i12842"
+                                                               "i12843"
+                                                               "i12844"))
+                                                           #(ribcage () () ())
+                                                           #(ribcage
+                                                             #(x)
+                                                             #((top))
+                                                             #("i12839")))
+                                                          (hygiene guile))
+                                                       (cons #{e1 12871}#
+                                                             #{e2 12872}#))))
+                                         #{tmp 12866}#)
+                                       (syntax-violation
+                                         'case
+                                         "bad clause"
+                                         #{x 12838}#
+                                         #{clause 12856}#)))))
+                               (let ((#{tmp 12878}#
+                                       (#{f 12855}#
+                                         (car #{clauses 12857}#)
+                                         (cdr #{clauses 12857}#))))
+                                 (let ((#{tmp 12882}#
+                                         ($sc-dispatch
+                                           #{clause 12856}#
+                                           '(each-any any . each-any))))
+                                   (if #{tmp 12882}#
+                                     (@apply
+                                       (lambda (#{k 12886}#
+                                                #{e1 12887}#
+                                                #{e2 12888}#)
+                                         (list '#(syntax-object
+                                                  if
+                                                  ((top)
+                                                   #(ribcage
+                                                     #(k e1 e2)
+                                                     #((top) (top) (top))
+                                                     #("i12883"
+                                                       "i12884"
+                                                       "i12885"))
+                                                   #(ribcage () () ())
+                                                   #(ribcage
+                                                     #(rest)
+                                                     #((top))
+                                                     #("i12879"))
+                                                   #(ribcage () () ())
+                                                   #(ribcage
+                                                     #(f clause clauses)
+                                                     #((top) (top) (top))
+                                                     #("i12852"
+                                                       "i12853"
+                                                       "i12854"))
+                                                   #(ribcage
+                                                     #(e m1 m2)
+                                                     #((top) (top) (top))
+                                                     #("i12842"
+                                                       "i12843"
+                                                       "i12844"))
+                                                   #(ribcage () () ())
+                                                   #(ribcage
+                                                     #(x)
+                                                     #((top))
+                                                     #("i12839")))
+                                                  (hygiene guile))
                                                (list '#(syntax-object
-                                                        if
+                                                        memv
                                                         ((top)
                                                          #(ribcage
                                                            #(k e1 e2)
                                                            #((top) (top) (top))
-                                                           #("i4773"
-                                                             "i4774"
-                                                             "i4775"))
+                                                           #("i12883"
+                                                             "i12884"
+                                                             "i12885"))
+                                                         #(ribcage () () ())
+                                                         #(ribcage
+                                                           #(rest)
+                                                           #((top))
+                                                           #("i12879"))
                                                          #(ribcage () () ())
                                                          #(ribcage
                                                            #(f clause clauses)
                                                            #((top) (top) (top))
-                                                           #("i4758"
-                                                             "i4759"
-                                                             "i4760"))
+                                                           #("i12852"
+                                                             "i12853"
+                                                             "i12854"))
                                                          #(ribcage
                                                            #(e m1 m2)
                                                            #((top) (top) (top))
-                                                           #("i4748"
-                                                             "i4749"
-                                                             "i4750"))
+                                                           #("i12842"
+                                                             "i12843"
+                                                             "i12844"))
                                                          #(ribcage () () ())
                                                          #(ribcage
                                                            #(x)
                                                            #((top))
-                                                           #("i4745")))
+                                                           #("i12839")))
                                                         (hygiene guile))
-                                                     (list '#(syntax-object
-                                                              memv
-                                                              ((top)
-                                                               #(ribcage
-                                                                 #(k e1 e2)
-                                                                 #((top)
-                                                                   (top)
-                                                                   (top))
-                                                                 #("i4773"
-                                                                   "i4774"
-                                                                   "i4775"))
-                                                               #(ribcage
-                                                                 ()
-                                                                 ()
-                                                                 ())
-                                                               #(ribcage
-                                                                 #(f
-                                                                   clause
-                                                                   clauses)
-                                                                 #((top)
-                                                                   (top)
-                                                                   (top))
-                                                                 #("i4758"
-                                                                   "i4759"
-                                                                   "i4760"))
-                                                               #(ribcage
-                                                                 #(e m1 m2)
-                                                                 #((top)
-                                                                   (top)
-                                                                   (top))
-                                                                 #("i4748"
-                                                                   "i4749"
-                                                                   "i4750"))
-                                                               #(ribcage
-                                                                 ()
-                                                                 ()
-                                                                 ())
-                                                               #(ribcage
-                                                                 #(x)
-                                                                 #((top))
-                                                                 #("i4745")))
-                                                              (hygiene guile))
-                                                           '#(syntax-object
-                                                              t
-                                                              ((top)
-                                                               #(ribcage
-                                                                 #(k e1 e2)
-                                                                 #((top)
-                                                                   (top)
-                                                                   (top))
-                                                                 #("i4773"
-                                                                   "i4774"
-                                                                   "i4775"))
-                                                               #(ribcage
-                                                                 ()
-                                                                 ()
-                                                                 ())
-                                                               #(ribcage
-                                                                 #(f
-                                                                   clause
-                                                                   clauses)
-                                                                 #((top)
-                                                                   (top)
-                                                                   (top))
-                                                                 #("i4758"
-                                                                   "i4759"
-                                                                   "i4760"))
-                                                               #(ribcage
-                                                                 #(e m1 m2)
-                                                                 #((top)
-                                                                   (top)
-                                                                   (top))
-                                                                 #("i4748"
-                                                                   "i4749"
-                                                                   "i4750"))
-                                                               #(ribcage
-                                                                 ()
-                                                                 ()
-                                                                 ())
-                                                               #(ribcage
-                                                                 #(x)
-                                                                 #((top))
-                                                                 #("i4745")))
-                                                              (hygiene guile))
-                                                           (list 
'#(syntax-object
-                                                                    quote
-                                                                    ((top)
-                                                                     #(ribcage
-                                                                       #(k
-                                                                         e1
-                                                                         e2)
-                                                                       #((top)
-                                                                         (top)
-                                                                         (top))
-                                                                       
#("i4773"
-                                                                         
"i4774"
-                                                                         
"i4775"))
-                                                                     #(ribcage
-                                                                       ()
-                                                                       ()
-                                                                       ())
-                                                                     #(ribcage
-                                                                       #(f
-                                                                         clause
-                                                                         
clauses)
-                                                                       #((top)
-                                                                         (top)
-                                                                         (top))
-                                                                       
#("i4758"
-                                                                         
"i4759"
-                                                                         
"i4760"))
-                                                                     #(ribcage
-                                                                       #(e
-                                                                         m1
-                                                                         m2)
-                                                                       #((top)
-                                                                         (top)
-                                                                         (top))
-                                                                       
#("i4748"
-                                                                         
"i4749"
-                                                                         
"i4750"))
-                                                                     #(ribcage
-                                                                       ()
-                                                                       ()
-                                                                       ())
-                                                                     #(ribcage
-                                                                       #(x)
-                                                                       #((top))
-                                                                       
#("i4745")))
-                                                                    (hygiene
-                                                                      guile))
-                                                                 #{k 4776}#))
-                                                     (cons '#(syntax-object
-                                                              begin
-                                                              ((top)
-                                                               #(ribcage
-                                                                 #(k e1 e2)
-                                                                 #((top)
-                                                                   (top)
-                                                                   (top))
-                                                                 #("i4773"
-                                                                   "i4774"
-                                                                   "i4775"))
-                                                               #(ribcage
-                                                                 ()
-                                                                 ()
-                                                                 ())
-                                                               #(ribcage
-                                                                 #(f
-                                                                   clause
-                                                                   clauses)
-                                                                 #((top)
-                                                                   (top)
-                                                                   (top))
-                                                                 #("i4758"
-                                                                   "i4759"
-                                                                   "i4760"))
-                                                               #(ribcage
-                                                                 #(e m1 m2)
-                                                                 #((top)
-                                                                   (top)
-                                                                   (top))
-                                                                 #("i4748"
-                                                                   "i4749"
-                                                                   "i4750"))
-                                                               #(ribcage
-                                                                 ()
-                                                                 ()
-                                                                 ())
-                                                               #(ribcage
-                                                                 #(x)
-                                                                 #((top))
-                                                                 #("i4745")))
-                                                              (hygiene guile))
-                                                           (cons #{e1 4777}#
-                                                                 #{e2 
4778}#))))
-                                             #{tmp 4772}#)
-                                           (let ((#{_ 4782}# #{tmp 4765}#))
-                                             (syntax-violation
-                                               'case
-                                               "bad clause"
-                                               #{x 4744}#
-                                               #{clause 4762}#)))))))
-                                 (let ((#{tmp 4784}#
-                                         (#{f 4761}#
-                                           (car #{clauses 4763}#)
-                                           (cdr #{clauses 4763}#))))
-                                   (let ((#{rest 4786}# #{tmp 4784}#))
-                                     (let ((#{tmp 4787}# #{clause 4762}#))
-                                       (let ((#{tmp 4788}#
-                                               ($sc-dispatch
-                                                 #{tmp 4787}#
-                                                 '(each-any any . each-any))))
-                                         (if #{tmp 4788}#
-                                           (@apply
-                                             (lambda (#{k 4792}#
-                                                      #{e1 4793}#
-                                                      #{e2 4794}#)
-                                               (list '#(syntax-object
-                                                        if
+                                                     '#(syntax-object
+                                                        t
                                                         ((top)
                                                          #(ribcage
                                                            #(k e1 e2)
                                                            #((top) (top) (top))
-                                                           #("i4789"
-                                                             "i4790"
-                                                             "i4791"))
+                                                           #("i12883"
+                                                             "i12884"
+                                                             "i12885"))
                                                          #(ribcage () () ())
                                                          #(ribcage
                                                            #(rest)
                                                            #((top))
-                                                           #("i4785"))
+                                                           #("i12879"))
                                                          #(ribcage () () ())
                                                          #(ribcage
                                                            #(f clause clauses)
                                                            #((top) (top) (top))
-                                                           #("i4758"
-                                                             "i4759"
-                                                             "i4760"))
+                                                           #("i12852"
+                                                             "i12853"
+                                                             "i12854"))
                                                          #(ribcage
                                                            #(e m1 m2)
                                                            #((top) (top) (top))
-                                                           #("i4748"
-                                                             "i4749"
-                                                             "i4750"))
+                                                           #("i12842"
+                                                             "i12843"
+                                                             "i12844"))
                                                          #(ribcage () () ())
                                                          #(ribcage
                                                            #(x)
                                                            #((top))
-                                                           #("i4745")))
+                                                           #("i12839")))
                                                         (hygiene guile))
                                                      (list '#(syntax-object
-                                                              memv
-                                                              ((top)
-                                                               #(ribcage
-                                                                 #(k e1 e2)
-                                                                 #((top)
-                                                                   (top)
-                                                                   (top))
-                                                                 #("i4789"
-                                                                   "i4790"
-                                                                   "i4791"))
-                                                               #(ribcage
-                                                                 ()
-                                                                 ()
-                                                                 ())
-                                                               #(ribcage
-                                                                 #(rest)
-                                                                 #((top))
-                                                                 #("i4785"))
-                                                               #(ribcage
-                                                                 ()
-                                                                 ()
-                                                                 ())
-                                                               #(ribcage
-                                                                 #(f
-                                                                   clause
-                                                                   clauses)
-                                                                 #((top)
-                                                                   (top)
-                                                                   (top))
-                                                                 #("i4758"
-                                                                   "i4759"
-                                                                   "i4760"))
-                                                               #(ribcage
-                                                                 #(e m1 m2)
-                                                                 #((top)
-                                                                   (top)
-                                                                   (top))
-                                                                 #("i4748"
-                                                                   "i4749"
-                                                                   "i4750"))
-                                                               #(ribcage
-                                                                 ()
-                                                                 ()
-                                                                 ())
-                                                               #(ribcage
-                                                                 #(x)
-                                                                 #((top))
-                                                                 #("i4745")))
-                                                              (hygiene guile))
-                                                           '#(syntax-object
-                                                              t
-                                                              ((top)
-                                                               #(ribcage
-                                                                 #(k e1 e2)
-                                                                 #((top)
-                                                                   (top)
-                                                                   (top))
-                                                                 #("i4789"
-                                                                   "i4790"
-                                                                   "i4791"))
-                                                               #(ribcage
-                                                                 ()
-                                                                 ()
-                                                                 ())
-                                                               #(ribcage
-                                                                 #(rest)
-                                                                 #((top))
-                                                                 #("i4785"))
-                                                               #(ribcage
-                                                                 ()
-                                                                 ()
-                                                                 ())
-                                                               #(ribcage
-                                                                 #(f
-                                                                   clause
-                                                                   clauses)
-                                                                 #((top)
-                                                                   (top)
-                                                                   (top))
-                                                                 #("i4758"
-                                                                   "i4759"
-                                                                   "i4760"))
-                                                               #(ribcage
-                                                                 #(e m1 m2)
-                                                                 #((top)
-                                                                   (top)
-                                                                   (top))
-                                                                 #("i4748"
-                                                                   "i4749"
-                                                                   "i4750"))
-                                                               #(ribcage
-                                                                 ()
-                                                                 ()
-                                                                 ())
-                                                               #(ribcage
-                                                                 #(x)
-                                                                 #((top))
-                                                                 #("i4745")))
-                                                              (hygiene guile))
-                                                           (list 
'#(syntax-object
-                                                                    quote
-                                                                    ((top)
-                                                                     #(ribcage
-                                                                       #(k
-                                                                         e1
-                                                                         e2)
-                                                                       #((top)
-                                                                         (top)
-                                                                         (top))
-                                                                       
#("i4789"
-                                                                         
"i4790"
-                                                                         
"i4791"))
-                                                                     #(ribcage
-                                                                       ()
-                                                                       ()
-                                                                       ())
-                                                                     #(ribcage
-                                                                       #(rest)
-                                                                       #((top))
-                                                                       
#("i4785"))
-                                                                     #(ribcage
-                                                                       ()
-                                                                       ()
-                                                                       ())
-                                                                     #(ribcage
-                                                                       #(f
-                                                                         clause
-                                                                         
clauses)
-                                                                       #((top)
-                                                                         (top)
-                                                                         (top))
-                                                                       
#("i4758"
-                                                                         
"i4759"
-                                                                         
"i4760"))
-                                                                     #(ribcage
-                                                                       #(e
-                                                                         m1
-                                                                         m2)
-                                                                       #((top)
-                                                                         (top)
-                                                                         (top))
-                                                                       
#("i4748"
-                                                                         
"i4749"
-                                                                         
"i4750"))
-                                                                     #(ribcage
-                                                                       ()
-                                                                       ()
-                                                                       ())
-                                                                     #(ribcage
-                                                                       #(x)
-                                                                       #((top))
-                                                                       
#("i4745")))
-                                                                    (hygiene
-                                                                      guile))
-                                                                 #{k 4792}#))
-                                                     (cons '#(syntax-object
-                                                              begin
+                                                              quote
                                                               ((top)
                                                                #(ribcage
                                                                  #(k e1 e2)
                                                                  #((top)
                                                                    (top)
                                                                    (top))
-                                                                 #("i4789"
-                                                                   "i4790"
-                                                                   "i4791"))
+                                                                 #("i12883"
+                                                                   "i12884"
+                                                                   "i12885"))
                                                                #(ribcage
                                                                  ()
                                                                  ()
@@ -16017,7 +19167,7 @@
                                                                #(ribcage
                                                                  #(rest)
                                                                  #((top))
-                                                                 #("i4785"))
+                                                                 #("i12879"))
                                                                #(ribcage
                                                                  ()
                                                                  ()
@@ -16029,17 +19179,17 @@
                                                                  #((top)
                                                                    (top)
                                                                    (top))
-                                                                 #("i4758"
-                                                                   "i4759"
-                                                                   "i4760"))
+                                                                 #("i12852"
+                                                                   "i12853"
+                                                                   "i12854"))
                                                                #(ribcage
                                                                  #(e m1 m2)
                                                                  #((top)
                                                                    (top)
                                                                    (top))
-                                                                 #("i4748"
-                                                                   "i4749"
-                                                                   "i4750"))
+                                                                 #("i12842"
+                                                                   "i12843"
+                                                                   "i12844"))
                                                                #(ribcage
                                                                  ()
                                                                  ()
@@ -16047,690 +19197,697 @@
                                                                #(ribcage
                                                                  #(x)
                                                                  #((top))
-                                                                 #("i4745")))
+                                                                 #("i12839")))
                                                               (hygiene guile))
-                                                           (cons #{e1 4793}#
-                                                                 #{e2 4794}#))
-                                                     #{rest 4786}#))
-                                             #{tmp 4788}#)
-                                           (let ((#{_ 4798}# #{tmp 4787}#))
-                                             (syntax-violation
-                                               'case
-                                               "bad clause"
-                                               #{x 4744}#
-                                               #{clause 4762}#)))))))))))
-                          (#{f 4761}# #{m1 4752}# #{m2 4753}#))))
-                  (let ((#{body 4757}# #{tmp 4755}#))
-                    (list '#(syntax-object
-                             let
-                             ((top)
-                              #(ribcage () () ())
-                              #(ribcage #(body) #((top)) #("i4756"))
-                              #(ribcage
-                                #(e m1 m2)
-                                #((top) (top) (top))
-                                #("i4748" "i4749" "i4750"))
-                              #(ribcage () () ())
-                              #(ribcage #(x) #((top)) #("i4745")))
-                             (hygiene guile))
-                          (list (list '#(syntax-object
-                                         t
-                                         ((top)
-                                          #(ribcage () () ())
-                                          #(ribcage
-                                            #(body)
-                                            #((top))
-                                            #("i4756"))
-                                          #(ribcage
-                                            #(e m1 m2)
-                                            #((top) (top) (top))
-                                            #("i4748" "i4749" "i4750"))
-                                          #(ribcage () () ())
-                                          #(ribcage #(x) #((top)) #("i4745")))
-                                         (hygiene guile))
-                                      #{e 4751}#))
-                          #{body 4757}#))))
-              #{tmp 4747}#)
-            (syntax-violation
-              #f
-              "source expression failed to match any pattern"
-              #{tmp 4746}#)))))))
+                                                           #{k 12886}#))
+                                               (cons '#(syntax-object
+                                                        begin
+                                                        ((top)
+                                                         #(ribcage
+                                                           #(k e1 e2)
+                                                           #((top) (top) (top))
+                                                           #("i12883"
+                                                             "i12884"
+                                                             "i12885"))
+                                                         #(ribcage () () ())
+                                                         #(ribcage
+                                                           #(rest)
+                                                           #((top))
+                                                           #("i12879"))
+                                                         #(ribcage () () ())
+                                                         #(ribcage
+                                                           #(f clause clauses)
+                                                           #((top) (top) (top))
+                                                           #("i12852"
+                                                             "i12853"
+                                                             "i12854"))
+                                                         #(ribcage
+                                                           #(e m1 m2)
+                                                           #((top) (top) (top))
+                                                           #("i12842"
+                                                             "i12843"
+                                                             "i12844"))
+                                                         #(ribcage () () ())
+                                                         #(ribcage
+                                                           #(x)
+                                                           #((top))
+                                                           #("i12839")))
+                                                        (hygiene guile))
+                                                     (cons #{e1 12887}#
+                                                           #{e2 12888}#))
+                                               #{tmp 12878}#))
+                                       #{tmp 12882}#)
+                                     (syntax-violation
+                                       'case
+                                       "bad clause"
+                                       #{x 12838}#
+                                       #{clause 12856}#))))))))
+                        (#{f 12855}# #{m1 12846}# #{m2 12847}#))))
+                (list '#(syntax-object
+                         let
+                         ((top)
+                          #(ribcage () () ())
+                          #(ribcage #(body) #((top)) #("i12850"))
+                          #(ribcage
+                            #(e m1 m2)
+                            #((top) (top) (top))
+                            #("i12842" "i12843" "i12844"))
+                          #(ribcage () () ())
+                          #(ribcage #(x) #((top)) #("i12839")))
+                         (hygiene guile))
+                      (list (list '#(syntax-object
+                                     t
+                                     ((top)
+                                      #(ribcage () () ())
+                                      #(ribcage #(body) #((top)) #("i12850"))
+                                      #(ribcage
+                                        #(e m1 m2)
+                                        #((top) (top) (top))
+                                        #("i12842" "i12843" "i12844"))
+                                      #(ribcage () () ())
+                                      #(ribcage #(x) #((top)) #("i12839")))
+                                     (hygiene guile))
+                                  #{e 12845}#))
+                      #{tmp 12849}#)))
+            #{tmp 12841}#)
+          (syntax-violation
+            #f
+            "source expression failed to match any pattern"
+            #{x 12838}#))))))
 
 (define make-variable-transformer
-  (lambda (#{proc 4799}#)
-    (if (procedure? #{proc 4799}#)
+  (lambda (#{proc 12894}#)
+    (if (procedure? #{proc 12894}#)
       (letrec*
-        ((#{trans 4802}#
-           (lambda (#{x 4803}#) (#{proc 4799}# #{x 4803}#))))
+        ((#{trans 12897}#
+           (lambda (#{x 12898}#)
+             (#{proc 12894}# #{x 12898}#))))
         (begin
           (set-procedure-property!
-            #{trans 4802}#
+            #{trans 12897}#
             'variable-transformer
             #t)
-          #{trans 4802}#))
+          #{trans 12897}#))
       (error "variable transformer not a procedure"
-             #{proc 4799}#))))
+             #{proc 12894}#))))
 
 (define identifier-syntax
   (make-syntax-transformer
     'identifier-syntax
     'macro
-    (lambda (#{x 4805}#)
-      (let ((#{tmp 4807}# #{x 4805}#))
-        (let ((#{tmp 4808}#
-                ($sc-dispatch #{tmp 4807}# '(_ any))))
-          (if #{tmp 4808}#
-            (@apply
-              (lambda (#{e 4810}#)
-                (list '#(syntax-object
-                         lambda
-                         ((top)
-                          #(ribcage #(e) #((top)) #("i4809"))
-                          #(ribcage () () ())
-                          #(ribcage #(x) #((top)) #("i4806")))
-                         (hygiene guile))
-                      '(#(syntax-object
-                          x
-                          ((top)
-                           #(ribcage #(e) #((top)) #("i4809"))
-                           #(ribcage () () ())
-                           #(ribcage #(x) #((top)) #("i4806")))
-                          (hygiene guile)))
-                      '#((#(syntax-object
-                            macro-type
-                            ((top)
-                             #(ribcage #(e) #((top)) #("i4809"))
-                             #(ribcage () () ())
-                             #(ribcage #(x) #((top)) #("i4806")))
-                            (hygiene guile))
-                          .
-                          #(syntax-object
-                            identifier-syntax
-                            ((top)
-                             #(ribcage #(e) #((top)) #("i4809"))
-                             #(ribcage () () ())
-                             #(ribcage #(x) #((top)) #("i4806")))
-                            (hygiene guile))))
-                      (list '#(syntax-object
-                               syntax-case
-                               ((top)
-                                #(ribcage #(e) #((top)) #("i4809"))
-                                #(ribcage () () ())
-                                #(ribcage #(x) #((top)) #("i4806")))
-                               (hygiene guile))
-                            '#(syntax-object
-                               x
-                               ((top)
-                                #(ribcage #(e) #((top)) #("i4809"))
-                                #(ribcage () () ())
-                                #(ribcage #(x) #((top)) #("i4806")))
-                               (hygiene guile))
-                            '()
-                            (list '#(syntax-object
-                                     id
-                                     ((top)
-                                      #(ribcage #(e) #((top)) #("i4809"))
-                                      #(ribcage () () ())
-                                      #(ribcage #(x) #((top)) #("i4806")))
-                                     (hygiene guile))
-                                  '(#(syntax-object
-                                      identifier?
-                                      ((top)
-                                       #(ribcage #(e) #((top)) #("i4809"))
-                                       #(ribcage () () ())
-                                       #(ribcage #(x) #((top)) #("i4806")))
-                                      (hygiene guile))
-                                    (#(syntax-object
-                                       syntax
-                                       ((top)
-                                        #(ribcage #(e) #((top)) #("i4809"))
-                                        #(ribcage () () ())
-                                        #(ribcage #(x) #((top)) #("i4806")))
-                                       (hygiene guile))
-                                     #(syntax-object
-                                       id
-                                       ((top)
-                                        #(ribcage #(e) #((top)) #("i4809"))
-                                        #(ribcage () () ())
-                                        #(ribcage #(x) #((top)) #("i4806")))
-                                       (hygiene guile))))
-                                  (list '#(syntax-object
-                                           syntax
-                                           ((top)
-                                            #(ribcage #(e) #((top)) #("i4809"))
-                                            #(ribcage () () ())
-                                            #(ribcage
-                                              #(x)
-                                              #((top))
-                                              #("i4806")))
-                                           (hygiene guile))
-                                        #{e 4810}#))
-                            (list '(#(syntax-object
-                                      _
-                                      ((top)
-                                       #(ribcage #(e) #((top)) #("i4809"))
-                                       #(ribcage () () ())
-                                       #(ribcage #(x) #((top)) #("i4806")))
-                                      (hygiene guile))
-                                    #(syntax-object
-                                      x
-                                      ((top)
-                                       #(ribcage #(e) #((top)) #("i4809"))
-                                       #(ribcage () () ())
-                                       #(ribcage #(x) #((top)) #("i4806")))
-                                      (hygiene guile))
-                                    #(syntax-object
-                                      ...
-                                      ((top)
-                                       #(ribcage #(e) #((top)) #("i4809"))
-                                       #(ribcage () () ())
-                                       #(ribcage #(x) #((top)) #("i4806")))
-                                      (hygiene guile)))
-                                  (list '#(syntax-object
-                                           syntax
-                                           ((top)
-                                            #(ribcage #(e) #((top)) #("i4809"))
-                                            #(ribcage () () ())
-                                            #(ribcage
-                                              #(x)
-                                              #((top))
-                                              #("i4806")))
-                                           (hygiene guile))
-                                        (cons #{e 4810}#
-                                              '(#(syntax-object
-                                                  x
-                                                  ((top)
-                                                   #(ribcage
-                                                     #(e)
-                                                     #((top))
-                                                     #("i4809"))
-                                                   #(ribcage () () ())
-                                                   #(ribcage
-                                                     #(x)
-                                                     #((top))
-                                                     #("i4806")))
-                                                  (hygiene guile))
-                                                #(syntax-object
-                                                  ...
-                                                  ((top)
-                                                   #(ribcage
-                                                     #(e)
-                                                     #((top))
-                                                     #("i4809"))
-                                                   #(ribcage () () ())
-                                                   #(ribcage
-                                                     #(x)
-                                                     #((top))
-                                                     #("i4806")))
-                                                  (hygiene guile)))))))))
-              #{tmp 4808}#)
-            (let ((#{tmp 4811}#
-                    ($sc-dispatch
-                      #{tmp 4807}#
-                      '(_ (any any)
-                          ((#(free-id
-                              #(syntax-object
-                                set!
-                                ((top)
-                                 #(ribcage () () ())
-                                 #(ribcage #(x) #((top)) #("i4806")))
-                                (hygiene guile)))
-                            any
-                            any)
-                           any)))))
-              (if (if #{tmp 4811}#
-                    (@apply
-                      (lambda (#{id 4817}#
-                               #{exp1 4818}#
-                               #{var 4819}#
-                               #{val 4820}#
-                               #{exp2 4821}#)
-                        (if (identifier? #{id 4817}#)
-                          (identifier? #{var 4819}#)
-                          #f))
-                      #{tmp 4811}#)
-                    #f)
-                (@apply
-                  (lambda (#{id 4829}#
-                           #{exp1 4830}#
-                           #{var 4831}#
-                           #{val 4832}#
-                           #{exp2 4833}#)
-                    (list '#(syntax-object
-                             make-variable-transformer
-                             ((top)
-                              #(ribcage
-                                #(id exp1 var val exp2)
-                                #((top) (top) (top) (top) (top))
-                                #("i4824" "i4825" "i4826" "i4827" "i4828"))
-                              #(ribcage () () ())
-                              #(ribcage #(x) #((top)) #("i4806")))
-                             (hygiene guile))
-                          (list '#(syntax-object
-                                   lambda
-                                   ((top)
-                                    #(ribcage
-                                      #(id exp1 var val exp2)
-                                      #((top) (top) (top) (top) (top))
-                                      #("i4824"
-                                        "i4825"
-                                        "i4826"
-                                        "i4827"
-                                        "i4828"))
-                                    #(ribcage () () ())
-                                    #(ribcage #(x) #((top)) #("i4806")))
-                                   (hygiene guile))
-                                '(#(syntax-object
-                                    x
-                                    ((top)
-                                     #(ribcage
-                                       #(id exp1 var val exp2)
-                                       #((top) (top) (top) (top) (top))
-                                       #("i4824"
-                                         "i4825"
-                                         "i4826"
-                                         "i4827"
-                                         "i4828"))
-                                     #(ribcage () () ())
-                                     #(ribcage #(x) #((top)) #("i4806")))
-                                    (hygiene guile)))
-                                '#((#(syntax-object
-                                      macro-type
-                                      ((top)
-                                       #(ribcage
-                                         #(id exp1 var val exp2)
-                                         #((top) (top) (top) (top) (top))
-                                         #("i4824"
-                                           "i4825"
-                                           "i4826"
-                                           "i4827"
-                                           "i4828"))
-                                       #(ribcage () () ())
-                                       #(ribcage #(x) #((top)) #("i4806")))
-                                      (hygiene guile))
-                                    .
-                                    #(syntax-object
-                                      variable-transformer
-                                      ((top)
-                                       #(ribcage
-                                         #(id exp1 var val exp2)
-                                         #((top) (top) (top) (top) (top))
-                                         #("i4824"
-                                           "i4825"
-                                           "i4826"
-                                           "i4827"
-                                           "i4828"))
-                                       #(ribcage () () ())
-                                       #(ribcage #(x) #((top)) #("i4806")))
-                                      (hygiene guile))))
-                                (list '#(syntax-object
-                                         syntax-case
-                                         ((top)
-                                          #(ribcage
-                                            #(id exp1 var val exp2)
-                                            #((top) (top) (top) (top) (top))
-                                            #("i4824"
-                                              "i4825"
-                                              "i4826"
-                                              "i4827"
-                                              "i4828"))
-                                          #(ribcage () () ())
-                                          #(ribcage #(x) #((top)) #("i4806")))
-                                         (hygiene guile))
-                                      '#(syntax-object
-                                         x
-                                         ((top)
-                                          #(ribcage
-                                            #(id exp1 var val exp2)
-                                            #((top) (top) (top) (top) (top))
-                                            #("i4824"
-                                              "i4825"
-                                              "i4826"
-                                              "i4827"
-                                              "i4828"))
-                                          #(ribcage () () ())
-                                          #(ribcage #(x) #((top)) #("i4806")))
-                                         (hygiene guile))
-                                      '(#(syntax-object
-                                          set!
-                                          ((top)
-                                           #(ribcage
-                                             #(id exp1 var val exp2)
-                                             #((top) (top) (top) (top) (top))
-                                             #("i4824"
-                                               "i4825"
-                                               "i4826"
-                                               "i4827"
-                                               "i4828"))
-                                           #(ribcage () () ())
-                                           #(ribcage #(x) #((top)) #("i4806")))
-                                          (hygiene guile)))
-                                      (list (list '#(syntax-object
-                                                     set!
-                                                     ((top)
-                                                      #(ribcage
-                                                        #(id exp1 var val exp2)
-                                                        #((top)
-                                                          (top)
-                                                          (top)
-                                                          (top)
-                                                          (top))
-                                                        #("i4824"
-                                                          "i4825"
-                                                          "i4826"
-                                                          "i4827"
-                                                          "i4828"))
-                                                      #(ribcage () () ())
-                                                      #(ribcage
-                                                        #(x)
-                                                        #((top))
-                                                        #("i4806")))
-                                                     (hygiene guile))
-                                                  #{var 4831}#
-                                                  #{val 4832}#)
-                                            (list '#(syntax-object
-                                                     syntax
-                                                     ((top)
-                                                      #(ribcage
-                                                        #(id exp1 var val exp2)
-                                                        #((top)
-                                                          (top)
-                                                          (top)
-                                                          (top)
-                                                          (top))
-                                                        #("i4824"
-                                                          "i4825"
-                                                          "i4826"
-                                                          "i4827"
-                                                          "i4828"))
-                                                      #(ribcage () () ())
-                                                      #(ribcage
-                                                        #(x)
-                                                        #((top))
-                                                        #("i4806")))
-                                                     (hygiene guile))
-                                                  #{exp2 4833}#))
-                                      (list (cons #{id 4829}#
-                                                  '(#(syntax-object
-                                                      x
-                                                      ((top)
-                                                       #(ribcage
-                                                         #(id
-                                                           exp1
-                                                           var
-                                                           val
-                                                           exp2)
-                                                         #((top)
-                                                           (top)
-                                                           (top)
-                                                           (top)
-                                                           (top))
-                                                         #("i4824"
-                                                           "i4825"
-                                                           "i4826"
-                                                           "i4827"
-                                                           "i4828"))
-                                                       #(ribcage () () ())
-                                                       #(ribcage
-                                                         #(x)
-                                                         #((top))
-                                                         #("i4806")))
-                                                      (hygiene guile))
-                                                    #(syntax-object
-                                                      ...
-                                                      ((top)
-                                                       #(ribcage
-                                                         #(id
-                                                           exp1
-                                                           var
-                                                           val
-                                                           exp2)
-                                                         #((top)
-                                                           (top)
-                                                           (top)
-                                                           (top)
-                                                           (top))
-                                                         #("i4824"
-                                                           "i4825"
-                                                           "i4826"
-                                                           "i4827"
-                                                           "i4828"))
-                                                       #(ribcage () () ())
-                                                       #(ribcage
-                                                         #(x)
-                                                         #((top))
-                                                         #("i4806")))
-                                                      (hygiene guile))))
-                                            (list '#(syntax-object
-                                                     syntax
-                                                     ((top)
-                                                      #(ribcage
-                                                        #(id exp1 var val exp2)
-                                                        #((top)
-                                                          (top)
-                                                          (top)
-                                                          (top)
-                                                          (top))
-                                                        #("i4824"
-                                                          "i4825"
-                                                          "i4826"
-                                                          "i4827"
-                                                          "i4828"))
-                                                      #(ribcage () () ())
-                                                      #(ribcage
-                                                        #(x)
-                                                        #((top))
-                                                        #("i4806")))
-                                                     (hygiene guile))
-                                                  (cons #{exp1 4830}#
-                                                        '(#(syntax-object
-                                                            x
-                                                            ((top)
-                                                             #(ribcage
-                                                               #(id
-                                                                 exp1
-                                                                 var
-                                                                 val
-                                                                 exp2)
-                                                               #((top)
-                                                                 (top)
-                                                                 (top)
-                                                                 (top)
-                                                                 (top))
-                                                               #("i4824"
-                                                                 "i4825"
-                                                                 "i4826"
-                                                                 "i4827"
-                                                                 "i4828"))
-                                                             #(ribcage
-                                                               ()
-                                                               ()
-                                                               ())
-                                                             #(ribcage
-                                                               #(x)
-                                                               #((top))
-                                                               #("i4806")))
-                                                            (hygiene guile))
-                                                          #(syntax-object
-                                                            ...
-                                                            ((top)
-                                                             #(ribcage
-                                                               #(id
-                                                                 exp1
-                                                                 var
-                                                                 val
-                                                                 exp2)
-                                                               #((top)
-                                                                 (top)
-                                                                 (top)
-                                                                 (top)
-                                                                 (top))
-                                                               #("i4824"
-                                                                 "i4825"
-                                                                 "i4826"
-                                                                 "i4827"
-                                                                 "i4828"))
-                                                             #(ribcage
-                                                               ()
-                                                               ()
-                                                               ())
-                                                             #(ribcage
-                                                               #(x)
-                                                               #((top))
-                                                               #("i4806")))
-                                                            (hygiene
-                                                              guile))))))
-                                      (list #{id 4829}#
-                                            (list '#(syntax-object
-                                                     identifier?
-                                                     ((top)
-                                                      #(ribcage
-                                                        #(id exp1 var val exp2)
-                                                        #((top)
-                                                          (top)
-                                                          (top)
-                                                          (top)
-                                                          (top))
-                                                        #("i4824"
-                                                          "i4825"
-                                                          "i4826"
-                                                          "i4827"
-                                                          "i4828"))
-                                                      #(ribcage () () ())
-                                                      #(ribcage
-                                                        #(x)
-                                                        #((top))
-                                                        #("i4806")))
-                                                     (hygiene guile))
-                                                  (list '#(syntax-object
-                                                           syntax
-                                                           ((top)
-                                                            #(ribcage
-                                                              #(id
-                                                                exp1
-                                                                var
-                                                                val
-                                                                exp2)
-                                                              #((top)
-                                                                (top)
-                                                                (top)
-                                                                (top)
-                                                                (top))
-                                                              #("i4824"
-                                                                "i4825"
-                                                                "i4826"
-                                                                "i4827"
-                                                                "i4828"))
-                                                            #(ribcage () () ())
-                                                            #(ribcage
-                                                              #(x)
-                                                              #((top))
-                                                              #("i4806")))
-                                                           (hygiene guile))
-                                                        #{id 4829}#))
-                                            (list '#(syntax-object
-                                                     syntax
-                                                     ((top)
-                                                      #(ribcage
-                                                        #(id exp1 var val exp2)
-                                                        #((top)
-                                                          (top)
-                                                          (top)
-                                                          (top)
-                                                          (top))
-                                                        #("i4824"
-                                                          "i4825"
-                                                          "i4826"
-                                                          "i4827"
-                                                          "i4828"))
-                                                      #(ribcage () () ())
-                                                      #(ribcage
-                                                        #(x)
-                                                        #((top))
-                                                        #("i4806")))
-                                                     (hygiene guile))
-                                                  #{exp1 4830}#))))))
-                  #{tmp 4811}#)
-                (syntax-violation
-                  #f
-                  "source expression failed to match any pattern"
-                  #{tmp 4807}#)))))))))
-
-(define define*
-  (make-syntax-transformer
-    'define*
-    'macro
-    (lambda (#{x 4834}#)
-      (let ((#{tmp 4836}# #{x 4834}#))
-        (let ((#{tmp 4837}#
-                ($sc-dispatch
-                  #{tmp 4836}#
-                  '(_ (any . any) any . each-any))))
-          (if #{tmp 4837}#
-            (@apply
-              (lambda (#{id 4842}#
-                       #{args 4843}#
-                       #{b0 4844}#
-                       #{b1 4845}#)
-                (list '#(syntax-object
-                         define
-                         ((top)
-                          #(ribcage
-                            #(id args b0 b1)
-                            #((top) (top) (top) (top))
-                            #("i4838" "i4839" "i4840" "i4841"))
-                          #(ribcage () () ())
-                          #(ribcage #(x) #((top)) #("i4835")))
-                         (hygiene guile))
-                      #{id 4842}#
-                      (cons '#(syntax-object
-                               lambda*
-                               ((top)
-                                #(ribcage
-                                  #(id args b0 b1)
-                                  #((top) (top) (top) (top))
-                                  #("i4838" "i4839" "i4840" "i4841"))
-                                #(ribcage () () ())
-                                #(ribcage #(x) #((top)) #("i4835")))
-                               (hygiene guile))
-                            (cons #{args 4843}#
-                                  (cons #{b0 4844}# #{b1 4845}#)))))
-              #{tmp 4837}#)
-            (let ((#{tmp 4847}#
-                    ($sc-dispatch #{tmp 4836}# '(_ any any))))
-              (if (if #{tmp 4847}#
-                    (@apply
-                      (lambda (#{id 4850}# #{val 4851}#)
-                        (identifier?
+    (lambda (#{x 12904}#)
+      (let ((#{tmp 12907}#
+              ($sc-dispatch #{x 12904}# '(_ any))))
+        (if #{tmp 12907}#
+          (@apply
+            (lambda (#{e 12909}#)
+              (list '#(syntax-object
+                       lambda
+                       ((top)
+                        #(ribcage #(e) #((top)) #("i12908"))
+                        #(ribcage () () ())
+                        #(ribcage #(x) #((top)) #("i12905")))
+                       (hygiene guile))
+                    '(#(syntax-object
+                        x
+                        ((top)
+                         #(ribcage #(e) #((top)) #("i12908"))
+                         #(ribcage () () ())
+                         #(ribcage #(x) #((top)) #("i12905")))
+                        (hygiene guile)))
+                    '#((#(syntax-object
+                          macro-type
+                          ((top)
+                           #(ribcage #(e) #((top)) #("i12908"))
+                           #(ribcage () () ())
+                           #(ribcage #(x) #((top)) #("i12905")))
+                          (hygiene guile))
+                        .
+                        #(syntax-object
+                          identifier-syntax
+                          ((top)
+                           #(ribcage #(e) #((top)) #("i12908"))
+                           #(ribcage () () ())
+                           #(ribcage #(x) #((top)) #("i12905")))
+                          (hygiene guile))))
+                    (list '#(syntax-object
+                             syntax-case
+                             ((top)
+                              #(ribcage #(e) #((top)) #("i12908"))
+                              #(ribcage () () ())
+                              #(ribcage #(x) #((top)) #("i12905")))
+                             (hygiene guile))
                           '#(syntax-object
                              x
                              ((top)
-                              #(ribcage
-                                #(id val)
-                                #((top) (top))
-                                #("i4848" "i4849"))
+                              #(ribcage #(e) #((top)) #("i12908"))
                               #(ribcage () () ())
-                              #(ribcage #(x) #((top)) #("i4835")))
-                             (hygiene guile))))
-                      #{tmp 4847}#)
-                    #f)
-                (@apply
-                  (lambda (#{id 4854}# #{val 4855}#)
-                    (list '#(syntax-object
-                             define
+                              #(ribcage #(x) #((top)) #("i12905")))
+                             (hygiene guile))
+                          '()
+                          (list '#(syntax-object
+                                   id
+                                   ((top)
+                                    #(ribcage #(e) #((top)) #("i12908"))
+                                    #(ribcage () () ())
+                                    #(ribcage #(x) #((top)) #("i12905")))
+                                   (hygiene guile))
+                                '(#(syntax-object
+                                    identifier?
+                                    ((top)
+                                     #(ribcage #(e) #((top)) #("i12908"))
+                                     #(ribcage () () ())
+                                     #(ribcage #(x) #((top)) #("i12905")))
+                                    (hygiene guile))
+                                  (#(syntax-object
+                                     syntax
+                                     ((top)
+                                      #(ribcage #(e) #((top)) #("i12908"))
+                                      #(ribcage () () ())
+                                      #(ribcage #(x) #((top)) #("i12905")))
+                                     (hygiene guile))
+                                   #(syntax-object
+                                     id
+                                     ((top)
+                                      #(ribcage #(e) #((top)) #("i12908"))
+                                      #(ribcage () () ())
+                                      #(ribcage #(x) #((top)) #("i12905")))
+                                     (hygiene guile))))
+                                (list '#(syntax-object
+                                         syntax
+                                         ((top)
+                                          #(ribcage #(e) #((top)) #("i12908"))
+                                          #(ribcage () () ())
+                                          #(ribcage #(x) #((top)) #("i12905")))
+                                         (hygiene guile))
+                                      #{e 12909}#))
+                          (list '(#(syntax-object
+                                    _
+                                    ((top)
+                                     #(ribcage #(e) #((top)) #("i12908"))
+                                     #(ribcage () () ())
+                                     #(ribcage #(x) #((top)) #("i12905")))
+                                    (hygiene guile))
+                                  #(syntax-object
+                                    x
+                                    ((top)
+                                     #(ribcage #(e) #((top)) #("i12908"))
+                                     #(ribcage () () ())
+                                     #(ribcage #(x) #((top)) #("i12905")))
+                                    (hygiene guile))
+                                  #(syntax-object
+                                    ...
+                                    ((top)
+                                     #(ribcage #(e) #((top)) #("i12908"))
+                                     #(ribcage () () ())
+                                     #(ribcage #(x) #((top)) #("i12905")))
+                                    (hygiene guile)))
+                                (list '#(syntax-object
+                                         syntax
+                                         ((top)
+                                          #(ribcage #(e) #((top)) #("i12908"))
+                                          #(ribcage () () ())
+                                          #(ribcage #(x) #((top)) #("i12905")))
+                                         (hygiene guile))
+                                      (cons #{e 12909}#
+                                            '(#(syntax-object
+                                                x
+                                                ((top)
+                                                 #(ribcage
+                                                   #(e)
+                                                   #((top))
+                                                   #("i12908"))
+                                                 #(ribcage () () ())
+                                                 #(ribcage
+                                                   #(x)
+                                                   #((top))
+                                                   #("i12905")))
+                                                (hygiene guile))
+                                              #(syntax-object
+                                                ...
+                                                ((top)
+                                                 #(ribcage
+                                                   #(e)
+                                                   #((top))
+                                                   #("i12908"))
+                                                 #(ribcage () () ())
+                                                 #(ribcage
+                                                   #(x)
+                                                   #((top))
+                                                   #("i12905")))
+                                                (hygiene guile)))))))))
+            #{tmp 12907}#)
+          (let ((#{tmp 12910}#
+                  ($sc-dispatch
+                    #{x 12904}#
+                    '(_ (any any)
+                        ((#(free-id
+                            #(syntax-object
+                              set!
+                              ((top)
+                               #(ribcage () () ())
+                               #(ribcage #(x) #((top)) #("i12905")))
+                              (hygiene guile)))
+                          any
+                          any)
+                         any)))))
+            (if (if #{tmp 12910}#
+                  (@apply
+                    (lambda (#{id 12916}#
+                             #{exp1 12917}#
+                             #{var 12918}#
+                             #{val 12919}#
+                             #{exp2 12920}#)
+                      (if (identifier? #{id 12916}#)
+                        (identifier? #{var 12918}#)
+                        #f))
+                    #{tmp 12910}#)
+                  #f)
+              (@apply
+                (lambda (#{id 12928}#
+                         #{exp1 12929}#
+                         #{var 12930}#
+                         #{val 12931}#
+                         #{exp2 12932}#)
+                  (list '#(syntax-object
+                           make-variable-transformer
+                           ((top)
+                            #(ribcage
+                              #(id exp1 var val exp2)
+                              #((top) (top) (top) (top) (top))
+                              #("i12923" "i12924" "i12925" "i12926" "i12927"))
+                            #(ribcage () () ())
+                            #(ribcage #(x) #((top)) #("i12905")))
+                           (hygiene guile))
+                        (list '#(syntax-object
+                                 lambda
+                                 ((top)
+                                  #(ribcage
+                                    #(id exp1 var val exp2)
+                                    #((top) (top) (top) (top) (top))
+                                    #("i12923"
+                                      "i12924"
+                                      "i12925"
+                                      "i12926"
+                                      "i12927"))
+                                  #(ribcage () () ())
+                                  #(ribcage #(x) #((top)) #("i12905")))
+                                 (hygiene guile))
+                              '(#(syntax-object
+                                  x
+                                  ((top)
+                                   #(ribcage
+                                     #(id exp1 var val exp2)
+                                     #((top) (top) (top) (top) (top))
+                                     #("i12923"
+                                       "i12924"
+                                       "i12925"
+                                       "i12926"
+                                       "i12927"))
+                                   #(ribcage () () ())
+                                   #(ribcage #(x) #((top)) #("i12905")))
+                                  (hygiene guile)))
+                              '#((#(syntax-object
+                                    macro-type
+                                    ((top)
+                                     #(ribcage
+                                       #(id exp1 var val exp2)
+                                       #((top) (top) (top) (top) (top))
+                                       #("i12923"
+                                         "i12924"
+                                         "i12925"
+                                         "i12926"
+                                         "i12927"))
+                                     #(ribcage () () ())
+                                     #(ribcage #(x) #((top)) #("i12905")))
+                                    (hygiene guile))
+                                  .
+                                  #(syntax-object
+                                    variable-transformer
+                                    ((top)
+                                     #(ribcage
+                                       #(id exp1 var val exp2)
+                                       #((top) (top) (top) (top) (top))
+                                       #("i12923"
+                                         "i12924"
+                                         "i12925"
+                                         "i12926"
+                                         "i12927"))
+                                     #(ribcage () () ())
+                                     #(ribcage #(x) #((top)) #("i12905")))
+                                    (hygiene guile))))
+                              (list '#(syntax-object
+                                       syntax-case
+                                       ((top)
+                                        #(ribcage
+                                          #(id exp1 var val exp2)
+                                          #((top) (top) (top) (top) (top))
+                                          #("i12923"
+                                            "i12924"
+                                            "i12925"
+                                            "i12926"
+                                            "i12927"))
+                                        #(ribcage () () ())
+                                        #(ribcage #(x) #((top)) #("i12905")))
+                                       (hygiene guile))
+                                    '#(syntax-object
+                                       x
+                                       ((top)
+                                        #(ribcage
+                                          #(id exp1 var val exp2)
+                                          #((top) (top) (top) (top) (top))
+                                          #("i12923"
+                                            "i12924"
+                                            "i12925"
+                                            "i12926"
+                                            "i12927"))
+                                        #(ribcage () () ())
+                                        #(ribcage #(x) #((top)) #("i12905")))
+                                       (hygiene guile))
+                                    '(#(syntax-object
+                                        set!
+                                        ((top)
+                                         #(ribcage
+                                           #(id exp1 var val exp2)
+                                           #((top) (top) (top) (top) (top))
+                                           #("i12923"
+                                             "i12924"
+                                             "i12925"
+                                             "i12926"
+                                             "i12927"))
+                                         #(ribcage () () ())
+                                         #(ribcage #(x) #((top)) #("i12905")))
+                                        (hygiene guile)))
+                                    (list (list '#(syntax-object
+                                                   set!
+                                                   ((top)
+                                                    #(ribcage
+                                                      #(id exp1 var val exp2)
+                                                      #((top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top))
+                                                      #("i12923"
+                                                        "i12924"
+                                                        "i12925"
+                                                        "i12926"
+                                                        "i12927"))
+                                                    #(ribcage () () ())
+                                                    #(ribcage
+                                                      #(x)
+                                                      #((top))
+                                                      #("i12905")))
+                                                   (hygiene guile))
+                                                #{var 12930}#
+                                                #{val 12931}#)
+                                          (list '#(syntax-object
+                                                   syntax
+                                                   ((top)
+                                                    #(ribcage
+                                                      #(id exp1 var val exp2)
+                                                      #((top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top))
+                                                      #("i12923"
+                                                        "i12924"
+                                                        "i12925"
+                                                        "i12926"
+                                                        "i12927"))
+                                                    #(ribcage () () ())
+                                                    #(ribcage
+                                                      #(x)
+                                                      #((top))
+                                                      #("i12905")))
+                                                   (hygiene guile))
+                                                #{exp2 12932}#))
+                                    (list (cons #{id 12928}#
+                                                '(#(syntax-object
+                                                    x
+                                                    ((top)
+                                                     #(ribcage
+                                                       #(id exp1 var val exp2)
+                                                       #((top)
+                                                         (top)
+                                                         (top)
+                                                         (top)
+                                                         (top))
+                                                       #("i12923"
+                                                         "i12924"
+                                                         "i12925"
+                                                         "i12926"
+                                                         "i12927"))
+                                                     #(ribcage () () ())
+                                                     #(ribcage
+                                                       #(x)
+                                                       #((top))
+                                                       #("i12905")))
+                                                    (hygiene guile))
+                                                  #(syntax-object
+                                                    ...
+                                                    ((top)
+                                                     #(ribcage
+                                                       #(id exp1 var val exp2)
+                                                       #((top)
+                                                         (top)
+                                                         (top)
+                                                         (top)
+                                                         (top))
+                                                       #("i12923"
+                                                         "i12924"
+                                                         "i12925"
+                                                         "i12926"
+                                                         "i12927"))
+                                                     #(ribcage () () ())
+                                                     #(ribcage
+                                                       #(x)
+                                                       #((top))
+                                                       #("i12905")))
+                                                    (hygiene guile))))
+                                          (list '#(syntax-object
+                                                   syntax
+                                                   ((top)
+                                                    #(ribcage
+                                                      #(id exp1 var val exp2)
+                                                      #((top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top))
+                                                      #("i12923"
+                                                        "i12924"
+                                                        "i12925"
+                                                        "i12926"
+                                                        "i12927"))
+                                                    #(ribcage () () ())
+                                                    #(ribcage
+                                                      #(x)
+                                                      #((top))
+                                                      #("i12905")))
+                                                   (hygiene guile))
+                                                (cons #{exp1 12929}#
+                                                      '(#(syntax-object
+                                                          x
+                                                          ((top)
+                                                           #(ribcage
+                                                             #(id
+                                                               exp1
+                                                               var
+                                                               val
+                                                               exp2)
+                                                             #((top)
+                                                               (top)
+                                                               (top)
+                                                               (top)
+                                                               (top))
+                                                             #("i12923"
+                                                               "i12924"
+                                                               "i12925"
+                                                               "i12926"
+                                                               "i12927"))
+                                                           #(ribcage () () ())
+                                                           #(ribcage
+                                                             #(x)
+                                                             #((top))
+                                                             #("i12905")))
+                                                          (hygiene guile))
+                                                        #(syntax-object
+                                                          ...
+                                                          ((top)
+                                                           #(ribcage
+                                                             #(id
+                                                               exp1
+                                                               var
+                                                               val
+                                                               exp2)
+                                                             #((top)
+                                                               (top)
+                                                               (top)
+                                                               (top)
+                                                               (top))
+                                                             #("i12923"
+                                                               "i12924"
+                                                               "i12925"
+                                                               "i12926"
+                                                               "i12927"))
+                                                           #(ribcage () () ())
+                                                           #(ribcage
+                                                             #(x)
+                                                             #((top))
+                                                             #("i12905")))
+                                                          (hygiene guile))))))
+                                    (list #{id 12928}#
+                                          (list '#(syntax-object
+                                                   identifier?
+                                                   ((top)
+                                                    #(ribcage
+                                                      #(id exp1 var val exp2)
+                                                      #((top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top))
+                                                      #("i12923"
+                                                        "i12924"
+                                                        "i12925"
+                                                        "i12926"
+                                                        "i12927"))
+                                                    #(ribcage () () ())
+                                                    #(ribcage
+                                                      #(x)
+                                                      #((top))
+                                                      #("i12905")))
+                                                   (hygiene guile))
+                                                (list '#(syntax-object
+                                                         syntax
+                                                         ((top)
+                                                          #(ribcage
+                                                            #(id
+                                                              exp1
+                                                              var
+                                                              val
+                                                              exp2)
+                                                            #((top)
+                                                              (top)
+                                                              (top)
+                                                              (top)
+                                                              (top))
+                                                            #("i12923"
+                                                              "i12924"
+                                                              "i12925"
+                                                              "i12926"
+                                                              "i12927"))
+                                                          #(ribcage () () ())
+                                                          #(ribcage
+                                                            #(x)
+                                                            #((top))
+                                                            #("i12905")))
+                                                         (hygiene guile))
+                                                      #{id 12928}#))
+                                          (list '#(syntax-object
+                                                   syntax
+                                                   ((top)
+                                                    #(ribcage
+                                                      #(id exp1 var val exp2)
+                                                      #((top)
+                                                        (top)
+                                                        (top)
+                                                        (top)
+                                                        (top))
+                                                      #("i12923"
+                                                        "i12924"
+                                                        "i12925"
+                                                        "i12926"
+                                                        "i12927"))
+                                                    #(ribcage () () ())
+                                                    #(ribcage
+                                                      #(x)
+                                                      #((top))
+                                                      #("i12905")))
+                                                   (hygiene guile))
+                                                #{exp1 12929}#))))))
+                #{tmp 12910}#)
+              (syntax-violation
+                #f
+                "source expression failed to match any pattern"
+                #{x 12904}#))))))))
+
+(define define*
+  (make-syntax-transformer
+    'define*
+    'macro
+    (lambda (#{x 12933}#)
+      (let ((#{tmp 12936}#
+              ($sc-dispatch
+                #{x 12933}#
+                '(_ (any . any) any . each-any))))
+        (if #{tmp 12936}#
+          (@apply
+            (lambda (#{id 12941}#
+                     #{args 12942}#
+                     #{b0 12943}#
+                     #{b1 12944}#)
+              (list '#(syntax-object
+                       define
+                       ((top)
+                        #(ribcage
+                          #(id args b0 b1)
+                          #((top) (top) (top) (top))
+                          #("i12937" "i12938" "i12939" "i12940"))
+                        #(ribcage () () ())
+                        #(ribcage #(x) #((top)) #("i12934")))
+                       (hygiene guile))
+                    #{id 12941}#
+                    (cons '#(syntax-object
+                             lambda*
                              ((top)
                               #(ribcage
-                                #(id val)
-                                #((top) (top))
-                                #("i4852" "i4853"))
+                                #(id args b0 b1)
+                                #((top) (top) (top) (top))
+                                #("i12937" "i12938" "i12939" "i12940"))
                               #(ribcage () () ())
-                              #(ribcage #(x) #((top)) #("i4835")))
+                              #(ribcage #(x) #((top)) #("i12934")))
                              (hygiene guile))
-                          #{id 4854}#
-                          #{val 4855}#))
-                  #{tmp 4847}#)
-                (syntax-violation
-                  #f
-                  "source expression failed to match any pattern"
-                  #{tmp 4836}#)))))))))
+                          (cons #{args 12942}#
+                                (cons #{b0 12943}# #{b1 12944}#)))))
+            #{tmp 12936}#)
+          (let ((#{tmp 12946}#
+                  ($sc-dispatch #{x 12933}# '(_ any any))))
+            (if (if #{tmp 12946}#
+                  (@apply
+                    (lambda (#{id 12949}# #{val 12950}#)
+                      (identifier?
+                        '#(syntax-object
+                           x
+                           ((top)
+                            #(ribcage
+                              #(id val)
+                              #((top) (top))
+                              #("i12947" "i12948"))
+                            #(ribcage () () ())
+                            #(ribcage #(x) #((top)) #("i12934")))
+                           (hygiene guile))))
+                    #{tmp 12946}#)
+                  #f)
+              (@apply
+                (lambda (#{id 12953}# #{val 12954}#)
+                  (list '#(syntax-object
+                           define
+                           ((top)
+                            #(ribcage
+                              #(id val)
+                              #((top) (top))
+                              #("i12951" "i12952"))
+                            #(ribcage () () ())
+                            #(ribcage #(x) #((top)) #("i12934")))
+                           (hygiene guile))
+                        #{id 12953}#
+                        #{val 12954}#))
+                #{tmp 12946}#)
+              (syntax-violation
+                #f
+                "source expression failed to match any pattern"
+                #{x 12933}#))))))))
 
diff --git a/module/ice-9/psyntax.scm b/module/ice-9/psyntax.scm
index 292d6e2..1717ba5 100644
--- a/module/ice-9/psyntax.scm
+++ b/module/ice-9/psyntax.scm
@@ -272,9 +272,8 @@
         (lambda (x mod)
           (primitive-eval x)))
     
-      (define-syntax gensym-hook
-        (syntax-rules ()
-          ((_) (gensym))))
+      (define-syntax-rule (gensym-hook)
+        (gensym))
 
       (define put-global-definition-hook
         (lambda (symbol type val)
@@ -451,9 +450,8 @@
 
 
     ;; FIXME: use a faster gensym
-    (define-syntax build-lexical-var
-      (syntax-rules ()
-        ((_ src id) (gensym (string-append (symbol->string id) " ")))))
+    (define-syntax-rule (build-lexical-var src id)
+      (gensym (string-append (symbol->string id) " ")))
 
     (define-structure (syntax-object expression wrap module))
 
@@ -470,11 +468,9 @@
                           #f)))
          (else #f))))
 
-    (define-syntax arg-check
-      (syntax-rules ()
-        ((_ pred? e who)
-         (let ((x e))
-           (if (not (pred? x)) (syntax-violation who "invalid argument" x))))))
+    (define-syntax-rule (arg-check pred? e who)
+      (let ((x e))
+        (if (not (pred? x)) (syntax-violation who "invalid argument" x))))
 
     ;; compile-time environments
 
@@ -537,12 +533,10 @@
         ((_ type value) (cons type value))
         ((_ 'type) '(type))
         ((_ type) (cons type '()))))
-    (define-syntax binding-type
-      (syntax-rules ()
-        ((_ x) (car x))))
-    (define-syntax binding-value
-      (syntax-rules ()
-        ((_ x) (cdr x))))
+    (define-syntax-rule (binding-type x)
+      (car x))
+    (define-syntax-rule (binding-value x)
+      (cdr x))
 
     (define-syntax null-env (identifier-syntax '()))
 
@@ -607,13 +601,11 @@
          ((syntax-object? x) (symbol? (syntax-object-expression x)))
          (else #f))))
 
-    (define-syntax id-sym-name
-      (syntax-rules ()
-        ((_ e)
-         (let ((x e))
-           (if (syntax-object? x)
-               (syntax-object-expression x)
-               x)))))
+    (define-syntax-rule (id-sym-name e)
+      (let ((x e))
+        (if (syntax-object? x)
+            (syntax-object-expression x)
+            x)))
 
     (define id-sym-name&marks
       (lambda (x w)
@@ -635,12 +627,11 @@
     (define-syntax wrap-subst (identifier-syntax cdr))
 
     (define-syntax subst-rename? (identifier-syntax vector?))
-    (define-syntax rename-old (syntax-rules () ((_ x) (vector-ref x 0))))
-    (define-syntax rename-new (syntax-rules () ((_ x) (vector-ref x 1))))
-    (define-syntax rename-marks (syntax-rules () ((_ x) (vector-ref x 2))))
-    (define-syntax make-rename
-      (syntax-rules ()
-        ((_ old new marks) (vector old new marks))))
+    (define-syntax-rule (rename-old x) (vector-ref x 0))
+    (define-syntax-rule (rename-new x) (vector-ref x 1))
+    (define-syntax-rule (rename-marks x) (vector-ref x 2))
+    (define-syntax-rule (make-rename old new marks)
+      (vector old new marks))
 
     ;; labels must be comparable with "eq?", have read-write invariance,
     ;; and distinct from symbols.
@@ -659,9 +650,8 @@
 
     (define-syntax top-wrap (identifier-syntax '((top))))
 
-    (define-syntax top-marked?
-      (syntax-rules ()
-        ((_ w) (memq 'top (wrap-marks w)))))
+    (define-syntax-rule (top-marked? w)
+      (memq 'top (wrap-marks w)))
 
     ;; Marks must be comparable with "eq?" and distinct from pairs and
     ;; the symbol top.  We do not use integers so that marks will remain
@@ -674,15 +664,13 @@
         (make-wrap (cons the-anti-mark (wrap-marks w))
                    (cons 'shift (wrap-subst w)))))
 
-    (define-syntax new-mark
-      (syntax-rules ()
-        ((_) (gensym "m"))))
+    (define-syntax-rule (new-mark)
+      (gensym "m"))
 
     ;; make-empty-ribcage and extend-ribcage maintain list-based ribcages for
     ;; internal definitions, in which the ribcages are built incrementally
-    (define-syntax make-empty-ribcage
-      (syntax-rules ()
-        ((_) (make-ribcage '() '() '()))))
+    (define-syntax-rule (make-empty-ribcage)
+      (make-ribcage '() '() '()))
 
     (define extend-ribcage!
       ;; must receive ids with complete wraps
@@ -751,10 +739,9 @@
 
     (define id-var-name
       (lambda (id w)
-        (define-syntax first
-          (syntax-rules ()
-            ;; Rely on Guile's multiple-values truncation.
-            ((_ e) e)))
+        (define-syntax-rule (first e)
+          ;; Rely on Guile's multiple-values truncation.
+          e)
         (define search
           (lambda (sym subst marks)
             (if (null? subst)
@@ -2686,6 +2673,20 @@
              ((dummy . pattern) #'template)
              ...))))))
 
+(define-syntax define-syntax-rule
+  (lambda (x)
+    (syntax-case x ()
+      ((_ (name . pattern) template)
+       #'(define-syntax name
+           (syntax-rules ()
+             ((_ . pattern) template))))
+      ((_ (name . pattern) docstring template)
+       (string? (syntax->datum #'docstring))
+       #'(define-syntax name
+           (syntax-rules ()
+             docstring
+             ((_ . pattern) template)))))))
+
 (define-syntax let*
   (lambda (x)
     (syntax-case x ()
diff --git a/module/ice-9/receive.scm b/module/ice-9/receive.scm
index f4f4d81..c931b59 100644
--- a/module/ice-9/receive.scm
+++ b/module/ice-9/receive.scm
@@ -1,6 +1,6 @@
 ;;;; SRFI-8
 
-;;; Copyright (C) 2000, 2001, 2004, 2006, 2010 Free Software Foundation, Inc.
+;;; Copyright (C) 2000, 2001, 2004, 2006, 2010, 2011 Free Software Foundation, 
Inc.
 ;;;
 ;;;; This library is free software; you can redistribute it and/or
 ;;;; modify it under the terms of the GNU Lesser General Public
@@ -17,14 +17,10 @@
 ;;;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 
USA
 
 (define-module (ice-9 receive)
-  :export (receive)
-  :no-backtrace
-  )
+  #:export (receive))
 
-(define-syntax receive
-  (syntax-rules ()
-    ((receive vars vals . body)
-     (call-with-values (lambda () vals)
-       (lambda vars . body)))))
+(define-syntax-rule (receive vars vals . body)
+  (call-with-values (lambda () vals)
+    (lambda vars . body)))
 
 (cond-expand-provide (current-module) '(srfi-8))
diff --git a/module/ice-9/threads.scm b/module/ice-9/threads.scm
index ee7ff26..047a733 100644
--- a/module/ice-9/threads.scm
+++ b/module/ice-9/threads.scm
@@ -1,4 +1,4 @@
-;;;;   Copyright (C) 1996, 1998, 2001, 2002, 2003, 2006, 2010 Free Software 
Foundation, Inc.
+;;;;   Copyright (C) 1996, 1998, 2001, 2002, 2003, 2006, 2010, 2011 Free 
Software Foundation, Inc.
 ;;;;
 ;;;; This library is free software; you can redistribute it and/or
 ;;;; modify it under the terms of the GNU Lesser General Public
@@ -51,12 +51,10 @@
 
 ;;; Macros first, so that the procedures expand correctly.
 
-(define-syntax begin-thread
-  (syntax-rules ()
-    ((_ e0 e1 ...)
-     (call-with-new-thread
-      (lambda () e0 e1 ...)
-      %thread-handler))))
+(define-syntax-rule (begin-thread e0 e1 ...)
+  (call-with-new-thread
+   (lambda () e0 e1 ...)
+   %thread-handler))
 
 (define-syntax parallel
   (lambda (x)
@@ -67,35 +65,27 @@
                  ...)
              (values (touch tmp0) ...)))))))
 
-(define-syntax letpar
-  (syntax-rules ()
-    ((_ ((v e) ...) b0 b1 ...)
-     (call-with-values
-         (lambda () (parallel e ...))
-       (lambda (v ...)
-         b0 b1 ...)))))
-
-(define-syntax make-thread
-  (syntax-rules ()
-    ((_ proc arg ...)
-     (call-with-new-thread
-      (lambda () (proc arg ...))
-      %thread-handler))))
-
-(define-syntax with-mutex
-  (syntax-rules ()
-    ((_ m e0 e1 ...)
-     (let ((x m))
-       (dynamic-wind
-         (lambda () (lock-mutex x))
-         (lambda () (begin e0 e1 ...))
-         (lambda () (unlock-mutex x)))))))
-
-(define-syntax monitor
-  (syntax-rules ()
-    ((_ first rest ...)
-     (with-mutex (make-mutex)
-       first rest ...))))
+(define-syntax-rule (letpar ((v e) ...) b0 b1 ...)
+  (call-with-values
+      (lambda () (parallel e ...))
+    (lambda (v ...)
+      b0 b1 ...)))
+
+(define-syntax-rule (make-thread proc arg ...)
+  (call-with-new-thread
+   (lambda () (proc arg ...))
+   %thread-handler))
+
+(define-syntax-rule (with-mutex m e0 e1 ...)
+  (let ((x m))
+    (dynamic-wind
+      (lambda () (lock-mutex x))
+      (lambda () (begin e0 e1 ...))
+      (lambda () (unlock-mutex x)))))
+
+(define-syntax-rule (monitor first rest ...)
+  (with-mutex (make-mutex)
+    first rest ...))
 
 (define (par-mapper mapper)
   (lambda (proc . arglists)
diff --git a/module/ice-9/vlist.scm b/module/ice-9/vlist.scm
index d5e28d5..4b40b99 100644
--- a/module/ice-9/vlist.scm
+++ b/module/ice-9/vlist.scm
@@ -70,14 +70,12 @@
     (fluid-set! f 2)
     f))
 
-(define-syntax define-inline
+(define-syntax-rule (define-inline (name formals ...) body ...)
   ;; Work around the lack of an inliner.
-  (syntax-rules ()
-    ((_ (name formals ...) body ...)
-     (define-syntax name
-       (syntax-rules ()
-         ((_ formals ...)
-          (begin body ...)))))))
+  (define-syntax name
+    (syntax-rules ()
+      ((_ formals ...)
+       (begin body ...)))))
 
 (define-inline (make-block base offset size hash-tab?)
   ;; Return a block (and block descriptor) of SIZE elements pointing to BASE
@@ -90,11 +88,9 @@
           base offset size 0
           (and hash-tab? (make-vector size #f))))
 
-(define-syntax define-block-accessor
-  (syntax-rules ()
-    ((_ name index)
-     (define-inline (name block)
-       (vector-ref block index)))))
+(define-syntax-rule (define-block-accessor name index)
+  (define-inline (name block)
+    (vector-ref block index)))
 
 (define-block-accessor block-content 0)
 (define-block-accessor block-base 1)
diff --git a/module/language/assembly/compile-bytecode.scm 
b/module/language/assembly/compile-bytecode.scm
index 163ffcc..85805a5 100644
--- a/module/language/assembly/compile-bytecode.scm
+++ b/module/language/assembly/compile-bytecode.scm
@@ -28,16 +28,14 @@
   #:export (compile-bytecode))
 
 (define (compile-bytecode assembly env . opts)
-  (define-syntax define-inline1
-    (syntax-rules ()
-      ((_ (proc arg) body body* ...)
-       (define-syntax proc
-         (syntax-rules ()
-           ((_ (arg-expr (... ...)))
-            (let ((x (arg-expr (... ...))))
-              (proc x)))
-           ((_ arg)
-            (begin body body* ...)))))))
+  (define-syntax-rule (define-inline1 (proc arg) body body* ...)
+    (define-syntax proc
+      (syntax-rules ()
+        ((_ (arg-expr (... ...)))
+         (let ((x (arg-expr (... ...))))
+           (proc x)))
+        ((_ arg)
+         (begin body body* ...)))))
        
   (define (fill-bytecode bv target-endianness)
     (let ((pos 0))
diff --git a/module/language/ecmascript/compile-tree-il.scm 
b/module/language/ecmascript/compile-tree-il.scm
index 7a96d07..0914f92 100644
--- a/module/language/ecmascript/compile-tree-il.scm
+++ b/module/language/ecmascript/compile-tree-il.scm
@@ -25,20 +25,14 @@
   #:use-module (srfi srfi-1)
   #:export (compile-tree-il))
 
-(define-syntax ->
-  (syntax-rules ()
-    ((_ (type arg ...))
-     `(type ,arg ...))))
+(define-syntax-rule (-> (type arg ...))
+  `(type ,arg ...))
 
-(define-syntax @implv
-  (syntax-rules ()
-    ((_ sym)
-     (-> (@ '(language ecmascript impl) 'sym)))))
+(define-syntax-rule (@implv sym)
+  (-> (@ '(language ecmascript impl) 'sym)))
 
-(define-syntax @impl
-  (syntax-rules ()
-    ((_ sym arg ...)
-     (-> (call (@implv sym) arg ...)))))
+(define-syntax-rule (@impl sym arg ...)
+  (-> (call (@implv sym) arg ...)))
 
 (define (empty-lexical-environment)
   '())
@@ -67,16 +61,14 @@
 ;; for emacs:
 ;; (put 'pmatch/source 'scheme-indent-function 1)
 
-(define-syntax pmatch/source
-  (syntax-rules ()
-    ((_ x clause ...)
-     (let ((x x))
-       (let ((res (pmatch x
-                    clause ...)))
-         (let ((loc (location x)))
-           (if loc
-               (set-source-properties! res (location x))))
-         res)))))
+(define-syntax-rule (pmatch/source x clause ...)
+  (let ((x x))
+    (let ((res (pmatch x
+                 clause ...)))
+      (let ((loc (location x)))
+        (if loc
+            (set-source-properties! res (location x))))
+      res)))
 
 (define (comp x e)
   (let ((l (location x)))
diff --git a/module/language/glil/compile-assembly.scm 
b/module/language/glil/compile-assembly.scm
index a081822..c76e412 100644
--- a/module/language/glil/compile-assembly.scm
+++ b/module/language/glil/compile-assembly.scm
@@ -856,7 +856,7 @@
             (vector-fold2 (lambda (x codes addr)
                             (receive (subcode addr) (ref-or-dump x i addr)
                               (values (cons subcode codes) addr)))
-                          x '() addr)
+                          contents '() addr)
           (receive (shape addr) (ref-or-dump (array-shape x) i addr)
             (values (fold append
                           (let ((len (vector-length contents)))
diff --git a/module/language/tree-il.scm b/module/language/tree-il.scm
index 1264f32..cd6b01e 100644
--- a/module/language/tree-il.scm
+++ b/module/language/tree-il.scm
@@ -344,7 +344,7 @@
      `(dynref ,(unparse-tree-il fluid)))
 
     ((<dynset> fluid exp)
-     `(dynref ,(unparse-tree-il fluid) ,(unparse-tree-il exp)))
+     `(dynset ,(unparse-tree-il fluid) ,(unparse-tree-il exp)))
 
     ((<prompt> tag body handler)
      `(prompt ,(unparse-tree-il tag) ,(unparse-tree-il body) ,(unparse-tree-il 
handler)))
@@ -588,84 +588,82 @@ This is an implementation of `foldts' as described by 
Andy Wingo in
            (leaf tree result))))))
 
 
-(define-syntax make-tree-il-folder
-  (syntax-rules ()
-    ((_ seed ...)
-     (lambda (tree down up seed ...)
-       (define (fold-values proc exps seed ...)
-         (if (null? exps)
-             (values seed ...)
-             (let-values (((seed ...) (proc (car exps) seed ...)))
-               (fold-values proc (cdr exps) seed ...))))
-       (let foldts ((tree tree) (seed seed) ...)
-         (let*-values
-             (((seed ...) (down tree seed ...))
-              ((seed ...)
-               (record-case tree
-                 ((<lexical-set> exp)
-                  (foldts exp seed ...))
-                 ((<module-set> exp)
-                  (foldts exp seed ...))
-                 ((<toplevel-set> exp)
-                  (foldts exp seed ...))
-                 ((<toplevel-define> exp)
-                  (foldts exp seed ...))
-                 ((<conditional> test consequent alternate)
-                  (let*-values (((seed ...) (foldts test seed ...))
-                                ((seed ...) (foldts consequent seed ...)))
-                    (foldts alternate seed ...)))
-                 ((<call> proc args)
-                  (let-values (((seed ...) (foldts proc seed ...)))
-                    (fold-values foldts args seed ...)))
-                 ((<primcall> name args)
-                  (fold-values foldts args seed ...))
-                 ((<seq> head tail)
-                  (let-values (((seed ...) (foldts head seed ...)))
-                    (foldts tail seed ...)))
-                 ((<lambda> body)
-                  (foldts body seed ...))
-                 ((<lambda-case> inits body alternate)
-                  (let-values (((seed ...) (fold-values foldts inits seed 
...)))
-                    (if alternate
-                        (let-values (((seed ...) (foldts body seed ...)))
-                          (foldts alternate seed ...))
-                        (foldts body seed ...))))
-                 ((<let> vals body)
-                  (let*-values (((seed ...) (fold-values foldts vals seed 
...)))
-                    (foldts body seed ...)))
-                 ((<letrec> vals body)
-                  (let*-values (((seed ...) (fold-values foldts vals seed 
...)))
-                    (foldts body seed ...)))
-                 ((<fix> vals body)
-                  (let*-values (((seed ...) (fold-values foldts vals seed 
...)))
-                    (foldts body seed ...)))
-                 ((<let-values> exp body)
-                  (let*-values (((seed ...) (foldts exp seed ...)))
-                    (foldts body seed ...)))
-                 ((<dynwind> body winder unwinder)
-                  (let*-values (((seed ...) (foldts body seed ...))
-                                ((seed ...) (foldts winder seed ...)))
-                    (foldts unwinder seed ...)))
-                 ((<dynlet> fluids vals body)
-                  (let*-values (((seed ...) (fold-values foldts fluids seed 
...))
-                                ((seed ...) (fold-values foldts vals seed 
...)))
-                    (foldts body seed ...)))
-                 ((<dynref> fluid)
-                  (foldts fluid seed ...))
-                 ((<dynset> fluid exp)
-                  (let*-values (((seed ...) (foldts fluid seed ...)))
-                    (foldts exp seed ...)))
-                 ((<prompt> tag body handler)
-                  (let*-values (((seed ...) (foldts tag seed ...))
-                                ((seed ...) (foldts body seed ...)))
-                    (foldts handler seed ...)))
-                 ((<abort> tag args tail)
-                  (let*-values (((seed ...) (foldts tag seed ...))
-                                ((seed ...) (fold-values foldts args seed 
...)))
-                    (foldts tail seed ...)))
-                 (else
-                  (values seed ...)))))
-           (up tree seed ...)))))))
+(define-syntax-rule (make-tree-il-folder seed ...)
+  (lambda (tree down up seed ...)
+    (define (fold-values proc exps seed ...)
+      (if (null? exps)
+          (values seed ...)
+          (let-values (((seed ...) (proc (car exps) seed ...)))
+            (fold-values proc (cdr exps) seed ...))))
+    (let foldts ((tree tree) (seed seed) ...)
+      (let*-values
+          (((seed ...) (down tree seed ...))
+           ((seed ...)
+            (record-case tree
+              ((<lexical-set> exp)
+               (foldts exp seed ...))
+              ((<module-set> exp)
+               (foldts exp seed ...))
+              ((<toplevel-set> exp)
+               (foldts exp seed ...))
+              ((<toplevel-define> exp)
+               (foldts exp seed ...))
+              ((<conditional> test consequent alternate)
+               (let*-values (((seed ...) (foldts test seed ...))
+                             ((seed ...) (foldts consequent seed ...)))
+                 (foldts alternate seed ...)))
+              ((<call> proc args)
+               (let-values (((seed ...) (foldts proc seed ...)))
+                 (fold-values foldts args seed ...)))
+              ((<primcall> name args)
+               (fold-values foldts args seed ...))
+              ((<seq> head tail)
+               (let-values (((seed ...) (foldts head seed ...)))
+                 (foldts tail seed ...)))
+              ((<lambda> body)
+               (foldts body seed ...))
+              ((<lambda-case> inits body alternate)
+               (let-values (((seed ...) (fold-values foldts inits seed ...)))
+                 (if alternate
+                     (let-values (((seed ...) (foldts body seed ...)))
+                       (foldts alternate seed ...))
+                     (foldts body seed ...))))
+              ((<let> vals body)
+               (let*-values (((seed ...) (fold-values foldts vals seed ...)))
+                 (foldts body seed ...)))
+              ((<letrec> vals body)
+               (let*-values (((seed ...) (fold-values foldts vals seed ...)))
+                 (foldts body seed ...)))
+              ((<fix> vals body)
+               (let*-values (((seed ...) (fold-values foldts vals seed ...)))
+                 (foldts body seed ...)))
+              ((<let-values> exp body)
+               (let*-values (((seed ...) (foldts exp seed ...)))
+                 (foldts body seed ...)))
+              ((<dynwind> body winder unwinder)
+               (let*-values (((seed ...) (foldts body seed ...))
+                             ((seed ...) (foldts winder seed ...)))
+                 (foldts unwinder seed ...)))
+              ((<dynlet> fluids vals body)
+               (let*-values (((seed ...) (fold-values foldts fluids seed ...))
+                             ((seed ...) (fold-values foldts vals seed ...)))
+                 (foldts body seed ...)))
+              ((<dynref> fluid)
+               (foldts fluid seed ...))
+              ((<dynset> fluid exp)
+               (let*-values (((seed ...) (foldts fluid seed ...)))
+                 (foldts exp seed ...)))
+              ((<prompt> tag body handler)
+               (let*-values (((seed ...) (foldts tag seed ...))
+                             ((seed ...) (foldts body seed ...)))
+                 (foldts handler seed ...)))
+              ((<abort> tag args tail)
+               (let*-values (((seed ...) (foldts tag seed ...))
+                             ((seed ...) (fold-values foldts args seed ...)))
+                 (foldts tail seed ...)))
+              (else
+               (values seed ...)))))
+        (up tree seed ...)))))
 
 (define (post-order! f x)
   (let lp ((x x))
diff --git a/module/language/tree-il/analyze.scm 
b/module/language/tree-il/analyze.scm
index 9e5c685..e578a05 100644
--- a/module/language/tree-il/analyze.scm
+++ b/module/language/tree-il/analyze.scm
@@ -23,6 +23,7 @@
   #:use-module (srfi srfi-9)
   #:use-module (srfi srfi-11)
   #:use-module (ice-9 vlist)
+  #:use-module (ice-9 match)
   #:use-module (system base syntax)
   #:use-module (system base message)
   #:use-module (system vm program)
@@ -869,25 +870,20 @@ accurate information is missing from a given `tree-il' 
element."
   ;; the name of the variable being defined; otherwise return #f.  This
   ;; assumes knowledge of the current implementation of `define-class' et al.
   (define (toplevel-define-arg args)
-    (and (pair? args) (pair? (cdr args)) (null? (cddr args))
-         (record-case (car args)
-           ((<const> exp)
-            (and (symbol? exp) exp))
-           (else #f))))
-
-  (record-case proc
-    ((<module-ref> mod public? name)
-     (and (equal? mod '(oop goops))
-          (not public?)
-          (eq? name 'toplevel-define!)
-          (toplevel-define-arg args)))
-    ((<toplevel-ref> name)
+    (match args
+      ((($ <const> _ (and (? symbol?) exp)) _)
+       exp)
+      (_ #f)))
+
+  (match proc
+    (($ <module-ref> _ '(oop goops) 'toplevel-define! #f)
+     (toplevel-define-arg args))
+    (($ <toplevel-ref> _ 'toplevel-define!)
      ;; This may be the result of expanding one of the GOOPS macros within
      ;; `oop/goops.scm'.
-     (and (eq? name 'toplevel-define!)
-          (eq? env (resolve-module '(oop goops)))
+     (and (eq? env (resolve-module '(oop goops)))
           (toplevel-define-arg args)))
-    (else #f)))
+    (_ #f)))
 
 (define unbound-variable-analysis
   ;; Report possibly unbound variables in the given tree.
@@ -1345,24 +1341,17 @@ accurate information is missing from a given `tree-il' 
element."
                               min-count max-count))))
           (else (error "computer bought the farm" state))))))
 
-;; Return the literal format pattern for X, or #f.
 (define (const-fmt x)
-  (record-case x
-    ((<const> exp)
+  ;; Return the literal format pattern for X, or #f.
+  (match x
+    (($ <const> _ exp)
      exp)
-    ((<call> proc args)
+    (($ <call> _
+        (or ($ <toplevel-ref> _ '_) ($ <module-ref> _ '_))
+        (($ <const> _ (and (? string?) fmt))))
      ;; Gettexted literals, like `(_ "foo")'.
-     (and (record-case proc
-            ((<toplevel-ref> name) (eq? name '_))
-            ((<module-ref> name) (eq? name '_))
-            (else #f))
-          (pmatch args
-            ((,fmt)
-             (record-case fmt
-               ((<const> exp) exp)
-               (else #f)))
-            (else #f))))
-    (else #f)))
+     fmt)
+    (_ #f)))
 
 (define format-analysis
   ;; Report arity mismatches in the given tree.
@@ -1413,18 +1402,13 @@ accurate information is missing from a given `tree-il' 
element."
        (and (module? env)
             (false-if-exception (module-ref env name))))
 
-     (record-case x
-       ((<call> proc args src)
-        (let ((loc src))
-          (record-case proc
-            ((<toplevel-ref> name src)
-             (let ((proc (resolve-toplevel name)))
-               (and (or (eq? proc format)
-                        (eq? proc (@ (ice-9 format) format)))
-                    (check-format-args args (or src (find pair? locs))))))
-            (else #t)))
-        #t)
-       (else #t))
+     (match x
+       (($ <call> src ($ <toplevel-ref> _ name) args)
+        (let ((proc (resolve-toplevel name)))
+          (and (or (eq? proc format)
+                   (eq? proc (@ (ice-9 format) format)))
+               (check-format-args args (or src (find pair? locs))))))
+       (_ #t))
      #t)
 
    (lambda (x _ env locs)
diff --git a/module/language/tree-il/canonicalize.scm 
b/module/language/tree-il/canonicalize.scm
new file mode 100644
index 0000000..27d7295
--- /dev/null
+++ b/module/language/tree-il/canonicalize.scm
@@ -0,0 +1,76 @@
+;;; Tree-il canonicalizer
+
+;; Copyright (C) 2011 Free Software Foundation, Inc.
+
+;;;; This library is free software; you can redistribute it and/or
+;;;; modify it under the terms of the GNU Lesser General Public
+;;;; License as published by the Free Software Foundation; either
+;;;; version 3 of the License, or (at your option) any later version.
+;;;; 
+;;;; This library is distributed in the hope that it will be useful,
+;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;;;; Lesser General Public License for more details.
+;;;; 
+;;;; You should have received a copy of the GNU Lesser General Public
+;;;; License along with this library; if not, write to the Free Software
+;;;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 
USA
+
+;;; Code:
+
+(define-module (language tree-il canonicalize)
+  #:use-module (language tree-il)
+  #:use-module (ice-9 match)
+  #:use-module (srfi srfi-1)
+  #:export (canonicalize!))
+
+(define (tree-il-any proc exp)
+  (tree-il-fold (lambda (exp res)
+                  (or res (proc exp)))
+                (lambda (exp res)
+                  (or res (proc exp)))
+                (lambda (exp res) res)
+                #f exp))
+
+(define (canonicalize! x)
+  (post-order!
+   (lambda (x)
+     (match x
+       (($ <let> src () () () body)
+        body)
+       (($ <letrec> src _ () () () body)
+        body)
+       (($ <fix> src () () () body)
+        body)
+       (($ <dynlet> src () () body)
+        body)
+       (($ <prompt> src tag body handler)
+        (define (escape-only? handler)
+          (match handler
+            (($ <lambda-case> _ (_ . _) _ _ _ _ (cont . _) body #f)
+             (tree-il-any (lambda (x)
+                            (and (lexical-ref? x)
+                                 (eq? (lexical-ref-gensym x) cont)))
+                          body))
+            (else #f)))
+        (define (thunk-application? x)
+          (match x
+            (($ <call> _
+                ($ <lambda> _ _ ($ <lambda-case> _ () #f #f #f))
+                ()) #t)
+            (_ #f)))
+        (define (make-thunk-application body)
+          (define thunk
+            (make-lambda #f '()
+                         (make-lambda-case #f '() #f #f #f '() '() body #f)))
+          (make-call #f thunk '()))
+
+        ;; This code has a nasty job to do: to ensure that either the
+        ;; handler is escape-only, or the body is the application of a
+        ;; thunk.  Sad but true.
+        (if (or (escape-only? handler)
+                (thunk-application? body))
+            #f
+            (make-prompt src tag (make-thunk-application body) handler)))
+       (_ #f)))
+   x))
diff --git a/module/language/tree-il/compile-glil.scm 
b/module/language/tree-il/compile-glil.scm
index a22063b..acb3e93 100644
--- a/module/language/tree-il/compile-glil.scm
+++ b/module/language/tree-il/compile-glil.scm
@@ -27,6 +27,7 @@
   #:use-module (system vm instruction)
   #:use-module (language tree-il)
   #:use-module (language tree-il optimize)
+  #:use-module (language tree-il canonicalize)
   #:use-module (language tree-il analyze)
   #:use-module ((srfi srfi-1) #:select (filter-map))
   #:export (compile-glil))
@@ -64,6 +65,7 @@
   (let* ((x (make-lambda (tree-il-src x) '()
                          (make-lambda-case #f '() #f #f #f '() '() x #f)))
          (x (optimize! x e opts))
+         (x (canonicalize! x))
          (allocation (analyze-lexicals x)))
 
     (with-fluids ((*comp-module* e))
diff --git a/module/language/tree-il/inline.scm 
b/module/language/tree-il/inline.scm
index 16af52a..5a2d9af 100644
--- a/module/language/tree-il/inline.scm
+++ b/module/language/tree-il/inline.scm
@@ -17,189 +17,9 @@
 ;;;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 
USA
 
 (define-module (language tree-il inline)
-  #:use-module (system base pmatch)
-  #:use-module (system base syntax)
-  #:use-module (language tree-il)
   #:export (inline!))
 
-;; Possible optimizations:
-;; * constant folding, propagation
-;; * procedure inlining
-;;   * always when single call site
-;;   * always for "trivial" procs
-;;   * otherwise who knows
-;; * dead code elimination
-;; * degenerate case optimizations
-;; * "fixing letrec"
-
-(define (boolean-value x)
-  (let ((src (tree-il-src x)))
-    (record-case x
-      ((<void>)
-       (make-const src #t))
-
-      ((<conditional> test consequent alternate)
-       (record-case (boolean-value test)
-         ((<const> exp)
-          (case exp
-            ((#t) (boolean-value consequent))
-            ((#f) (boolean-value alternate))
-            (else x)))
-         (else x)))
-      
-      ((<primcall> src name args)
-       (pmatch (cons name args)
-         ((,member ,k ,l) (guard (and (memq member '(memq memv))
-                                      (const? k)
-                                      (list? (const-exp l))))
-          (cond
-           ((null? (const-exp l))
-            (make-const #f #f))
-           ((const? k)
-            (make-const #f (->bool ((case member
-                                      ((memq) memq)
-                                      ((memv) memv)
-                                      (else (error "what" member)))
-                                    (const-exp k) (const-exp l)))))
-           (else
-            (let lp ((elts (const-exp l)))
-              (let ((test (make-primcall
-                           #f
-                           (case member
-                             ((memq) 'eq?)
-                             ((memv) 'eqv?)
-                             (else (error "what" member)))
-                           (list k (make-const #f (car elts))))))
-                (if (null? (cdr elts))
-                    test
-                    (make-conditional
-                     src
-                     test
-                     (make-const #f #t)
-                     (lp (cdr elts)))))))))
-         (else x)))
-       
-      ((<lambda> meta body)
-       (make-const src #t))
-
-      ((<const> exp)
-       (make-const src (not (not exp))))
-
-      (else
-       x))))
-
-;; This is a completely brain-dead optimization pass whose sole claim to
-;; fame is ((lambda () x)) => x.
 (define (inline! x)
-  (define (inline1 x)
-    (record-case x
-      ((<call> src proc args)
-       (record-case proc
-         ;; ((lambda (y ...) x) z ...) => (let ((y z) ...) x)
-         ((<lambda> body)
-          (let lp ((lcase body))
-            (and lcase
-                 (record-case lcase
-                   ((<lambda-case> req opt rest kw inits gensyms body 
alternate)
-                    (if (and (= (length gensyms) (length req) (length args)))
-                        (let ((x (make-let src req gensyms args body)))
-                          (or (inline1 x) x))
-                        (lp alternate)))))))
-
-         (else #f)))
-       
-      ((<primcall> src name args)
-       (pmatch (cons name args)
-         ;; (call-with-values (lambda () foo) (lambda (a b . c) bar))
-         ;; => (let-values (((a b . c) foo)) bar)
-         ;;
-         ;; Note that this is a singly-binding form of let-values.  Also
-         ;; note that Scheme's let-values expands into call-with-values,
-         ;; then here we reduce it to tree-il's let-values.
-         ((@call-with-values ,producer ,consumer)
-          (guard (lambda? consumer)
-                 (lambda-case? (lambda-body consumer))
-                 (not (lambda-case-opt (lambda-body consumer)))
-                 (not (lambda-case-kw (lambda-body consumer)))
-                 (not (lambda-case-alternate (lambda-body consumer))))
-          (make-let-values
-           src
-           (let ((x (make-call src producer '())))
-             (or (inline1 x) x))
-           (lambda-body consumer)))
-         (else #f)))
-
-      ((<conditional> test consequent alternate)
-       (let ((btest (boolean-value test)))
-         (or (record-case btest
-               ((<const> exp)
-                (case exp
-                  ((#t) consequent)
-                  ((#f) alternate)
-                  (else #f)))
-               (else #f))
-             (if (eq? test btest)
-                 x
-                 (make-conditional (conditional-src x)
-                                   btest consequent alternate)))))
-
-      ((<let> gensyms body)
-       (if (null? gensyms) body x))
-       
-      ((<letrec> gensyms body)
-       (if (null? gensyms) body x))
-       
-      ((<fix> gensyms body)
-       (if (null? gensyms) body x))
-       
-      ((<lambda-case> req opt rest kw gensyms body alternate)
-       (define (args-compatible? args gensyms)
-         (let lp ((args args) (gensyms gensyms))
-           (cond
-            ((null? args) (null? gensyms))
-            ((null? gensyms) #f)
-            ((and (lexical-ref? (car args))
-                  (eq? (lexical-ref-gensym (car args)) (car gensyms)))
-             (lp (cdr args) (cdr gensyms)))
-            (else #f))))
-         
-       (and (not opt) (not kw) rest (not alternate)
-            (record-case body
-              ((<primcall> name args)
-               ;; (lambda args (apply (lambda ...) args)) => (lambda ...)
-               (and (eq? name '@apply)
-                    (pair? args)
-                    (lambda? (car args))
-                    (args-compatible? (cdr args) gensyms)
-                    (lambda-body (car args))))
-              (else #f))))
-
-      ;; Actually the opposite of inlining -- if the prompt cannot be proven to
-      ;; be escape-only, ensure that its body is the call of a thunk.
-      ((<prompt> src tag body handler)
-       (define (escape-only? handler)
-         (and (pair? (lambda-case-req handler))
-              (let ((cont (car (lambda-case-gensyms handler))))
-                (tree-il-fold (lambda (leaf escape-only?)
-                                (and escape-only?
-                                     (not
-                                      (and (lexical-ref? leaf)
-                                           (eq? (lexical-ref-gensym leaf) 
cont)))))
-                              (lambda (down escape-only?) escape-only?)
-                              (lambda (up escape-only?) escape-only?)
-                              #t
-                              (lambda-case-body handler)))))
-       (define (make-thunk body)
-         (make-lambda #f '() (make-lambda-case #f '() #f #f #f '() '() body 
#f)))
-
-       (if (or (and (call? body)
-                    (lambda? (call-proc body))
-                    (null? (call-args body)))
-               (escape-only? handler))
-           x
-           (make-prompt src tag
-                        (make-call #f (make-thunk body) '())
-                        handler)))
-      
-      (else #f)))
-  (post-order! inline1 x))
+  (issue-deprecation-warning
+   "`inline!' is deprecated.  Use (language tree-il peval) instead.")
+  x)
diff --git a/module/language/tree-il/optimize.scm 
b/module/language/tree-il/optimize.scm
index dbbc216..cb19905 100644
--- a/module/language/tree-il/optimize.scm
+++ b/module/language/tree-il/optimize.scm
@@ -1,6 +1,6 @@
 ;;; Tree-il optimizer
 
-;; Copyright (C) 2009 Free Software Foundation, Inc.
+;; Copyright (C) 2009, 2011 Free Software Foundation, Inc.
 
 ;;;; This library is free software; you can redistribute it and/or
 ;;;; modify it under the terms of the GNU Lesser General Public
@@ -21,12 +21,17 @@
 (define-module (language tree-il optimize)
   #:use-module (language tree-il)
   #:use-module (language tree-il primitives)
-  #:use-module (language tree-il inline)
+  #:use-module (language tree-il peval)
   #:use-module (language tree-il fix-letrec)
+  #:use-module (ice-9 match)
   #:export (optimize!))
 
 (define (optimize! x env opts)
-  (inline!
-   (fix-letrec!
-    (expand-primitives! 
-     (resolve-primitives! x env)))))
+  (let ((peval (match (memq #:partial-eval? opts)
+                 ((#:partial-eval? #f _ ...)
+                  ;; Disable partial evaluation.
+                  (lambda (x e) x))
+                 (_ peval))))
+    (fix-letrec!
+     (peval (expand-primitives! (resolve-primitives! x env))
+            env))))
diff --git a/module/language/tree-il/peval.scm 
b/module/language/tree-il/peval.scm
new file mode 100644
index 0000000..6647920
--- /dev/null
+++ b/module/language/tree-il/peval.scm
@@ -0,0 +1,922 @@
+;;; Tree-IL partial evaluator
+
+;; Copyright (C) 2011 Free Software Foundation, Inc.
+
+;;;; This library is free software; you can redistribute it and/or
+;;;; modify it under the terms of the GNU Lesser General Public
+;;;; License as published by the Free Software Foundation; either
+;;;; version 3 of the License, or (at your option) any later version.
+;;;; 
+;;;; This library is distributed in the hope that it will be useful,
+;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;;;; Lesser General Public License for more details.
+;;;; 
+;;;; You should have received a copy of the GNU Lesser General Public
+;;;; License along with this library; if not, write to the Free Software
+;;;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 
USA
+
+(define-module (language tree-il peval)
+  #:use-module (language tree-il)
+  #:use-module (language tree-il primitives)
+  #:use-module (ice-9 vlist)
+  #:use-module (ice-9 match)
+  #:use-module (srfi srfi-1)
+  #:use-module (srfi srfi-9)
+  #:use-module (srfi srfi-11)
+  #:use-module (srfi srfi-26)
+  #:export (peval))
+
+;;;
+;;; Partial evaluation.
+;;;
+
+(define (fresh-gensyms syms)
+  (map (lambda (x) (gensym (string-append (symbol->string x) " ")))
+       syms))
+
+(define (alpha-rename exp)
+  "Alpha-rename EXP.  For any lambda in EXP, generate new symbols and
+replace all lexical references to the former symbols with lexical
+references to the new symbols."
+  ;; XXX: This should be factorized somehow.
+  (let loop ((exp     exp)
+             (mapping vlist-null))             ; maps old to new gensyms
+    (match exp
+      (($ <lambda-case> src req opt rest kw inits gensyms body alt)
+       ;; Create new symbols to replace GENSYMS and propagate them down
+       ;; in BODY and ALT.
+       (let* ((new     (fresh-gensyms
+                        (append req
+                                (or opt '())
+                                (if rest (list rest) '())
+                                (match kw
+                                  ((aok? (_ name _) ...) name)
+                                  (_ '())))))
+              (mapping (fold vhash-consq mapping gensyms new)))
+         (make-lambda-case src req opt rest
+                           (match kw
+                             ((aok? (kw name old) ...)
+                              (cons aok? (map list
+                                              kw
+                                              name
+                                              (take-right new (length old)))))
+                             (_ #f))
+                           (map (cut loop <> mapping) inits)
+                           new
+                           (loop body mapping)
+                           (and alt (loop alt mapping)))))
+      (($ <lexical-ref> src name gensym)
+       ;; Possibly replace GENSYM by the new gensym defined in MAPPING.
+       (let ((val (vhash-assq gensym mapping)))
+         (if val
+             (make-lexical-ref src name (cdr val))
+             exp)))
+      (($ <lexical-set> src name gensym exp)
+       (let ((val (vhash-assq gensym mapping)))
+         (make-lexical-set src name (if val (cdr val) gensym)
+                           (loop exp mapping))))
+      (($ <lambda> src meta body)
+       (make-lambda src meta (loop body mapping)))
+      (($ <let> src names gensyms vals body)
+       ;; As for `lambda-case' rename GENSYMS to avoid any collision.
+       (let* ((new     (fresh-gensyms names))
+              (mapping (fold vhash-consq mapping gensyms new))
+              (vals    (map (cut loop <> mapping) vals))
+              (body    (loop body mapping)))
+         (make-let src names new vals body)))
+      (($ <letrec> src in-order? names gensyms vals body)
+       ;; Likewise.
+       (let* ((new     (fresh-gensyms names))
+              (mapping (fold vhash-consq mapping gensyms new))
+              (vals    (map (cut loop <> mapping) vals))
+              (body    (loop body mapping)))
+         (make-letrec src in-order? names new vals body)))
+      (($ <fix> src names gensyms vals body)
+       ;; Likewise.
+       (let* ((new     (fresh-gensyms names))
+              (mapping (fold vhash-consq mapping gensyms new))
+              (vals    (map (cut loop <> mapping) vals))
+              (body    (loop body mapping)))
+         (make-fix src names new vals body)))
+      (($ <let-values> src exp body)
+       (make-let-values src (loop exp mapping) (loop body mapping)))
+      (($ <const>)
+       exp)
+      (($ <void>)
+       exp)
+      (($ <toplevel-ref>)
+       exp)
+      (($ <module-ref>)
+       exp)
+      (($ <primitive-ref>)
+       exp)
+      (($ <toplevel-set> src name exp)
+       (make-toplevel-set src name (loop exp mapping)))
+      (($ <toplevel-define> src name exp)
+       (make-toplevel-define src name (loop exp mapping)))
+      (($ <module-set> src mod name public? exp)
+       (make-module-set src mod name public? (loop exp mapping)))
+      (($ <dynlet> src fluids vals body)
+       (make-dynlet src
+                    (map (cut loop <> mapping) fluids)
+                    (map (cut loop <> mapping) vals)
+                    (loop body mapping)))
+      (($ <dynwind> src winder body unwinder)
+       (make-dynwind src
+                     (loop winder mapping)
+                     (loop body mapping)
+                     (loop unwinder mapping)))
+      (($ <dynref> src fluid)
+       (make-dynref src (loop fluid mapping)))
+      (($ <dynset> src fluid exp)
+       (make-dynset src (loop fluid mapping) (loop exp mapping)))
+      (($ <conditional> src condition subsequent alternate)
+       (make-conditional src
+                         (loop condition mapping)
+                         (loop subsequent mapping)
+                         (loop alternate mapping)))
+      (($ <call> src proc args)
+       (make-call src (loop proc mapping)
+                  (map (cut loop <> mapping) args)))
+      (($ <primcall> src name args)
+       (make-primcall src name (map (cut loop <> mapping) args)))
+      (($ <seq> src head tail)
+       (make-seq src (loop head mapping) (loop tail mapping)))
+      (($ <prompt> src tag body handler)
+       (make-prompt src (loop tag mapping) (loop body mapping)
+                    (loop handler mapping)))
+      (($ <abort> src tag args tail)
+       (make-abort src (loop tag mapping) (map (cut loop <> mapping) args)
+                   (loop tail mapping))))))
+
+(define-syntax-rule (let/ec k e e* ...)
+  (let ((tag (make-prompt-tag)))
+    (call-with-prompt
+     tag
+     (lambda ()
+       (let ((k (lambda args (apply abort-to-prompt tag args))))
+         e e* ...))
+     (lambda (_ res) res))))
+
+(define (tree-il-any proc exp)
+  (let/ec k
+    (tree-il-fold (lambda (exp res)
+                    (let ((res (proc exp)))
+                      (if res (k res) #f)))
+                  (lambda (exp res)
+                    (let ((res (proc exp)))
+                      (if res (k res) #f)))
+                  (lambda (exp res) #f)
+                  #f exp)))
+
+(define (vlist-any proc vlist)
+  (let ((len (vlist-length vlist)))
+    (let lp ((i 0))
+      (and (< i len)
+           (or (proc (vlist-ref vlist i))
+               (lp (1+ i)))))))
+
+(define-record-type <var>
+  (make-var name gensym refcount set?)
+  var?
+  (name var-name)
+  (gensym var-gensym)
+  (refcount var-refcount set-var-refcount!)
+  (set? var-set? set-var-set?!))
+
+(define* (build-var-table exp #:optional (table vlist-null))
+  (tree-il-fold
+   (lambda (exp res)
+     (match exp
+       (($ <lexical-ref> src name gensym)
+        (let ((var (vhash-assq gensym res)))
+          (if var
+              (begin
+                (set-var-refcount! (cdr var) (1+ (var-refcount (cdr var))))
+                res)
+              (vhash-consq gensym (make-var name gensym 1 #f) res))))
+       (_ res)))
+   (lambda (exp res)
+     (match exp
+       (($ <lexical-set> src name gensym exp)
+        (let ((var (vhash-assq gensym res)))
+          (if var
+              (begin
+                (set-var-set?! (cdr var) #t)
+                res)
+              (vhash-consq gensym (make-var name gensym 0 #t) res))))
+       (_ res)))
+   (lambda (exp res) res)
+   table exp))
+
+(define-record-type <counter>
+  (%make-counter effort size continuation recursive? data prev)
+  counter?
+  (effort effort-counter)
+  (size size-counter)
+  (continuation counter-continuation)
+  (recursive? counter-recursive?)
+  (data counter-data)
+  (prev counter-prev))
+
+(define (abort-counter c)
+  ((counter-continuation c)))
+
+(define (record-effort! c)
+  (let ((e (effort-counter c)))
+    (if (zero? (variable-ref e))
+        (abort-counter c)
+        (variable-set! e (1- (variable-ref e))))))
+
+(define (record-size! c)
+  (let ((s (size-counter c)))
+    (if (zero? (variable-ref s))
+        (abort-counter c)
+        (variable-set! s (1- (variable-ref s))))))
+
+(define (find-counter data counter)
+  (and counter
+       (if (eq? data (counter-data counter))
+           counter
+           (find-counter data (counter-prev counter)))))
+
+(define* (transfer! from to #:optional
+                    (effort (variable-ref (effort-counter from)))
+                    (size (variable-ref (size-counter from))))
+  (define (transfer-counter! from-v to-v amount)
+    (let* ((from-balance (variable-ref from-v))
+           (to-balance (variable-ref to-v))
+           (amount (min amount from-balance)))
+      (variable-set! from-v (- from-balance amount))
+      (variable-set! to-v (+ to-balance amount))))
+
+  (transfer-counter! (effort-counter from) (effort-counter to) effort)
+  (transfer-counter! (size-counter from) (size-counter to) size))
+
+(define (make-top-counter effort-limit size-limit continuation data)
+  (%make-counter (make-variable effort-limit)
+                 (make-variable size-limit)
+                 continuation
+                 #t
+                 data
+                 #f))
+
+(define (make-nested-counter continuation data current)
+  (let ((c (%make-counter (make-variable 0)
+                          (make-variable 0)
+                          continuation
+                          #f
+                          data
+                          current)))
+    (transfer! current c)
+    c))
+
+(define (make-recursive-counter effort-limit size-limit orig current)
+  (let ((c (%make-counter (make-variable 0)
+                          (make-variable 0)
+                          (counter-continuation orig)
+                          #t
+                          (counter-data orig)
+                          current)))
+    (transfer! current c effort-limit size-limit)
+    c))
+
+(define (types-check? primitive-name args)
+  (case primitive-name
+    ((values) #t)
+    ((not pair? null? list? symbol? vector? struct?)
+     (= (length args) 1))
+    ((eq? eqv? equal?)
+     (= (length args) 2))
+    ;; FIXME: add more cases?
+    (else #f)))
+
+(define* (peval exp #:optional (cenv (current-module)) (env vlist-null)
+                #:key
+                (operator-size-limit 40)
+                (operand-size-limit 20)
+                (value-size-limit 10)
+                (effort-limit 500)
+                (recursive-effort-limit 100))
+  "Partially evaluate EXP in compilation environment CENV, with
+top-level bindings from ENV and return the resulting expression.  Since
+it does not handle <fix> and <let-values>, it should be called before
+`fix-letrec'."
+
+  ;; This is a simple partial evaluator.  It effectively performs
+  ;; constant folding, copy propagation, dead code elimination, and
+  ;; inlining, but not across top-level bindings---there should be a way
+  ;; to allow this (TODO).
+  ;;
+  ;; Unlike a full-blown partial evaluator, it does not emit definitions
+  ;; of specialized versions of lambdas encountered on its way.  Also,
+  ;; it's not yet complete: it bails out for `prompt', etc.
+
+  (define local-toplevel-env
+    ;; The top-level environment of the module being compiled.
+    (let ()
+      (define (env-folder x env)
+        (match x
+          (($ <toplevel-define> _ name)
+           (vhash-consq name #t env))
+          (($ <seq> _ head tail)
+           (env-folder tail (env-folder head env)))
+          (_ env)))
+      (env-folder exp vlist-null)))
+
+  (define (local-toplevel? name)
+    (vhash-assq name local-toplevel-env))
+
+  (define store (build-var-table exp))
+
+  (define (assigned-lexical? sym)
+    (let ((v (vhash-assq sym store)))
+      (and v (var-set? (cdr v)))))
+
+  (define (lexical-refcount sym)
+    (let ((v (vhash-assq sym store)))
+      (if v (var-refcount (cdr v)) 0)))
+
+  (define (record-source-expression! orig new)
+    (set! store (vhash-consq new
+                             (source-expression orig)
+                             (build-var-table new store)))
+    new)
+
+  (define (source-expression new)
+    (let ((x (vhash-assq new store)))
+      (if x (cdr x) new)))
+
+  (define residual-lexical-references (make-hash-table))
+
+  (define (record-residual-lexical-reference! sym)
+    (hashq-set! residual-lexical-references sym #t))
+
+  (define (apply-primitive name args)
+    ;; todo: further optimize commutative primitives
+    (catch #t
+      (lambda ()
+        (call-with-values
+            (lambda ()
+              (apply (module-ref the-scm-module name) args))
+          (lambda results
+            (values #t results))))
+      (lambda _
+        (values #f '()))))
+
+  (define (inline-values exp src names gensyms body)
+    (let loop ((exp exp))
+      (match exp
+        ;; Some expression types are always singly-valued.
+        ((or ($ <const>)
+             ($ <void>)
+             ($ <lambda>)
+             ($ <lexical-ref>)
+             ($ <toplevel-ref>)
+             ($ <module-ref>)
+             ($ <primitive-ref>)
+             ($ <dynref>)
+             ($ <lexical-set>)          ; FIXME: these set! expressions
+             ($ <toplevel-set>)         ; could return zero values in
+             ($ <toplevel-define>)      ; the future
+             ($ <module-set>)           ;
+             ($ <dynset>))              ; 
+         (and (= (length names) 1)
+              (make-let src names gensyms (list exp) body)))
+        (($ <primcall> src (? singly-valued-primitive? name))
+         (and (= (length names) 1)
+              (make-let src names gensyms (list exp) body)))
+
+        ;; Statically-known number of values.
+        (($ <primcall> src 'values vals)
+         (and (= (length names) (length vals))
+              (make-let src names gensyms vals body)))
+
+        ;; Not going to copy code into both branches.
+        (($ <conditional>) #f)
+
+        ;; Bail on other applications.
+        (($ <call>) #f)
+        (($ <primcall>) #f)
+
+        ;; Bail on prompt and abort.
+        (($ <prompt>) #f)
+        (($ <abort>) #f)
+        
+        ;; Propagate to tail positions.
+        (($ <let> src names gensyms vals body)
+         (let ((body (loop body)))
+           (and body
+                (make-let src names gensyms vals body))))
+        (($ <letrec> src in-order? names gensyms vals body)
+         (let ((body (loop body)))
+           (and body
+                (make-letrec src in-order? names gensyms vals body))))
+        (($ <fix> src names gensyms vals body)
+         (let ((body (loop body)))
+           (and body
+                (make-fix src names gensyms vals body))))
+        (($ <let-values> src exp
+            ($ <lambda-case> src2 req opt rest kw inits gensyms body #f))
+         (let ((body (loop body)))
+           (and body
+                (make-let-values src exp
+                                 (make-lambda-case src2 req opt rest kw
+                                                   inits gensyms body #f)))))
+        (($ <dynwind> src winder body unwinder)
+         (let ((body (loop body)))
+           (and body
+                (make-dynwind src winder body unwinder))))
+        (($ <dynlet> src fluids vals body)
+         (let ((body (loop body)))
+           (and body
+                (make-dynlet src fluids vals body))))
+        (($ <seq> src head tail)
+         (let ((tail (loop tail)))
+           (and tail (make-seq src head tail)))))))
+
+  (define (make-values src values)
+    (match values
+      ((single) single)                 ; 1 value
+      ((_ ...)                          ; 0, or 2 or more values
+       (make-primcall src 'values values))))
+
+  (define (constant-expression? x)
+    ;; Return true if X is constant---i.e., if it is known to have no
+    ;; effects, does not allocate storage for a mutable object, and does
+    ;; not access mutable data (like `car' or toplevel references).
+    (let loop ((x x))
+      (match x
+        (($ <void>) #t)
+        (($ <const>) #t)
+        (($ <lambda>) #t)
+        (($ <lambda-case> _ req opt rest kw inits _ body alternate)
+         (and (every loop inits) (loop body) (loop alternate)))
+        (($ <lexical-ref> _ _ gensym)
+         (not (assigned-lexical? gensym)))
+        (($ <primitive-ref>) #t)
+        (($ <conditional> _ condition subsequent alternate)
+         (and (loop condition) (loop subsequent) (loop alternate)))
+        (($ <primcall> _ name args)
+         (and (effect-free-primitive? name)
+              (not (constructor-primitive? name))
+              (types-check? name args)
+              (every loop args)))
+        (($ <call> _ ($ <lambda> _ _ body) args)
+         (and (loop body) (every loop args)))
+        (($ <seq> _ head tail)
+         (and (loop head) (loop tail)))
+        (($ <let> _ _ _ vals body)
+         (and (every loop vals) (loop body)))
+        (($ <letrec> _ _ _ _ vals body)
+         (and (every loop vals) (loop body)))
+        (($ <fix> _ _ _ vals body)
+         (and (every loop vals) (loop body)))
+        (($ <let-values> _ exp body)
+         (and (loop exp) (loop body)))
+        (($ <prompt> _ tag body handler)
+         (and (loop tag) (loop body) (loop handler)))
+        (_ #f))))
+
+  (define (prune-bindings names syms vals body for-effect
+                          build-result)
+    (let lp ((names names) (syms syms) (vals vals)
+             (names* '()) (syms* '()) (vals* '())
+             (effects '()))
+      (match (list names syms vals)
+       ((() () ())
+        (let ((body (list->seq #f (append effects (list body)))))
+          (if (null? names*)
+              body
+              (build-result (reverse names*) (reverse syms*)
+                            (reverse vals*) body))))
+       (((name . names) (sym . syms) (val . vals))
+        (if (hashq-ref residual-lexical-references sym)
+            (lp names syms vals
+                (cons name names*) (cons sym syms*) (cons val vals*)
+                effects)
+            (let ((effect (for-effect val)))
+              (lp names syms vals
+                  names* syms* vals*
+                  (if (void? effect)
+                      effects
+                      (cons effect effects)))))))))
+  
+  (define (small-expression? x limit)
+    (let/ec k
+      (tree-il-fold
+       (lambda (x res)                  ; leaf
+         (1+ res))
+       (lambda (x res)                  ; down
+         (1+ res))
+       (lambda (x res)                  ; up
+         (if (< res limit)
+             res
+             (k #f)))
+       0 x)
+      #t))
+  
+  (let loop ((exp   exp)
+             (env   vlist-null)         ; static environment
+             (counter #f)               ; inlined call stack
+             (ctx 'value))   ; effect, value, test, operator, or operand
+    (define (lookup var)
+      (and=> (vhash-assq var env) cdr))
+
+    (define (for-value exp)
+      (loop exp env counter 'value))
+    (define (for-operand exp)
+      (loop exp env counter 'operand))
+    (define (for-test exp)
+      (loop exp env counter 'test))
+    (define (for-effect exp)
+      (loop exp env counter 'effect))
+    (define (for-tail exp)
+      (loop exp env counter ctx))
+
+    (if counter
+        (record-effort! counter))
+
+    (match exp
+      (($ <const>)
+       (case ctx
+         ((effect) (make-void #f))
+         (else exp)))
+      (($ <void>)
+       (case ctx
+         ((test) (make-const #f #t))
+         (else exp)))
+      (($ <lexical-ref> _ _ gensym)
+       (case ctx
+         ((effect) (make-void #f))
+         (else
+          (let ((val (lookup gensym)))
+            (cond
+             ((or (not val)
+                  (assigned-lexical? gensym)
+                  (not (constant-expression? val)))
+              ;; Don't copy-propagate through assigned variables,
+              ;; and don't reorder effects.
+              (record-residual-lexical-reference! gensym)
+              exp)
+             ((lexical-ref? val)
+              (for-tail val))
+             ((or (const? val)
+                  (void? val)
+                  (primitive-ref? val))
+              ;; Always propagate simple values that cannot lead to
+              ;; code bloat.
+              (for-tail val))
+             ((= 1 (lexical-refcount gensym))
+              ;; Always propagate values referenced only once.
+              ;; There is no need to rename the bindings, as they
+              ;; are only being moved, not copied.  However in
+              ;; operator context we do rename it, as that
+              ;; effectively clears out the residualized-lexical
+              ;; flags that may have been set when this value was
+              ;; visited previously as an operand.
+              (case ctx
+                ((test) (for-test val))
+                ((operator) (record-source-expression! val (alpha-rename val)))
+                (else val)))
+             ;; FIXME: do demand-driven size accounting rather than
+             ;; these heuristics.
+             ((eq? ctx 'operator)
+              ;; A pure expression in the operator position.  Inline
+              ;; if it's a lambda that's small enough.
+              (if (and (lambda? val)
+                       (small-expression? val operator-size-limit))
+                  (record-source-expression! val (alpha-rename val))
+                  (begin
+                    (record-residual-lexical-reference! gensym)
+                    exp)))
+             ((eq? ctx 'operand)
+              ;; A pure expression in the operand position.  Inline
+              ;; if it's small enough.
+              (if (small-expression? val operand-size-limit)
+                  (record-source-expression! val (alpha-rename val))
+                  (begin
+                    (record-residual-lexical-reference! gensym)
+                    exp)))
+             (else
+              ;; A pure expression, processed for value.  Don't
+              ;; inline lambdas, because they will probably won't
+              ;; fold because we don't know the operator.
+              (if (and (small-expression? val value-size-limit)
+                       (not (tree-il-any lambda? val)))
+                  (record-source-expression! val (alpha-rename val))
+                  (begin
+                    (record-residual-lexical-reference! gensym)
+                    exp))))))))
+      (($ <lexical-set> src name gensym exp)
+       (if (zero? (lexical-refcount gensym))
+           (let ((exp (for-effect exp)))
+             (if (void? exp)
+                 exp
+                 (make-seq src exp (make-void #f))))
+           (begin
+             (record-residual-lexical-reference! gensym)
+             (make-lexical-set src name gensym (for-value exp)))))
+      (($ <let> src names gensyms vals body)
+       (let* ((vals (map for-operand vals))
+              (body (loop body
+                      (fold vhash-consq env gensyms vals)
+                      counter
+                      ctx)))
+         (cond
+          ((const? body)
+           (for-tail (list->seq src (append vals (list body)))))
+          ((and (lexical-ref? body)
+                (memq (lexical-ref-gensym body) gensyms))
+           (let ((sym (lexical-ref-gensym body))
+                 (pairs (map cons gensyms vals)))
+             ;; (let ((x foo) (y bar) ...) x) => (begin bar ... foo)
+             (for-tail
+              (list->seq
+               src
+               (append (map cdr (alist-delete sym pairs eq?))
+                       (list (assq-ref pairs sym)))))))
+          (else
+           ;; Only include bindings for which lexical references
+           ;; have been residualized.
+           (prune-bindings names gensyms vals body for-effect
+                           (lambda (names gensyms vals body)
+                             (if (null? names) (error "what!" names))
+                             (make-let src names gensyms vals body)))))))
+      (($ <letrec> src in-order? names gensyms vals body)
+       ;; Things could be done more precisely when IN-ORDER? but
+       ;; it's OK not to do it---at worst we lost an optimization
+       ;; opportunity.
+       (let* ((vals (map for-operand vals))
+              (body (loop body
+                      (fold vhash-consq env gensyms vals)
+                      counter
+                      ctx)))
+         (if (and (const? body)
+                  (every constant-expression? vals))
+             body
+             (prune-bindings names gensyms vals body for-effect
+                             (lambda (names gensyms vals body)
+                               (make-letrec src in-order?
+                                            names gensyms vals body))))))
+      (($ <fix> src names gensyms vals body)
+       (let* ((vals (map for-operand vals))
+              (body (loop body
+                      (fold vhash-consq env gensyms vals)
+                      counter
+                      ctx)))
+         (if (const? body)
+             body
+             (prune-bindings names gensyms vals body for-effect
+                             (lambda (names gensyms vals body)
+                               (make-fix src names gensyms vals body))))))
+      (($ <let-values> lv-src producer consumer)
+       ;; Peval the producer, then try to inline the consumer into
+       ;; the producer.  If that succeeds, peval again.  Otherwise
+       ;; reconstruct the let-values, pevaling the consumer.
+       (let ((producer (for-value producer)))
+         (or (match consumer
+               (($ <lambda-case> src req #f #f #f () gensyms body #f)
+                (cond
+                 ((inline-values producer src req gensyms body)
+                  => for-tail)
+                 (else #f)))
+               (_ #f))
+             (make-let-values lv-src producer (for-tail consumer)))))
+      (($ <dynwind> src winder body unwinder)
+       (make-dynwind src (for-value winder) (for-tail body)
+                     (for-value unwinder)))
+      (($ <dynlet> src fluids vals body)
+       (make-dynlet src (map for-value fluids) (map for-value vals)
+                    (for-tail body)))
+      (($ <dynref> src fluid)
+       (make-dynref src (for-value fluid)))
+      (($ <dynset> src fluid exp)
+       (make-dynset src (for-value fluid) (for-value exp)))
+      (($ <toplevel-ref> src (? effect-free-primitive? name))
+       (if (local-toplevel? name)
+           exp
+           (resolve-primitives! exp cenv)))
+      (($ <toplevel-ref>)
+       ;; todo: open private local bindings.
+       exp)
+      (($ <module-ref>)
+       exp)
+      (($ <module-set> src mod name public? exp)
+       (make-module-set src mod name public? (for-value exp)))
+      (($ <toplevel-define> src name exp)
+       (make-toplevel-define src name (for-value exp)))
+      (($ <toplevel-set> src name exp)
+       (make-toplevel-set src name (for-value exp)))
+      (($ <primitive-ref>)
+       (case ctx
+         ((effect) (make-void #f))
+         ((test) (make-const #f #t))
+         (else exp)))
+      (($ <conditional> src condition subsequent alternate)
+       (let ((condition (for-test condition)))
+         (if (const? condition)
+             (if (const-exp condition)
+                 (for-tail subsequent)
+                 (for-tail alternate))
+             (make-conditional src condition
+                               (for-tail subsequent)
+                               (for-tail alternate)))))
+      (($ <primcall> src '@call-with-values
+          (producer
+           ($ <lambda> _ _
+              (and consumer
+                   ;; No optional or kwargs.
+                   ($ <lambda-case>
+                      _ req #f rest #f () gensyms body #f)))))
+       (for-tail (make-let-values src (make-call src producer '())
+                                  consumer)))
+
+      (($ <primcall> src (? constructor-primitive? name) args)
+       (case ctx
+         ((effect test)
+          (let ((res (if (eq? ctx 'effect)
+                         (make-void #f)
+                         (make-const #f #t))))
+            (match (cons name (map for-value args))
+              (('cons x xs)
+               (for-tail (make-seq src (make-seq src x xs) res)))
+              (((or 'list 'vector) . elts)
+               (for-tail (list->seq src (append elts (list res)))))
+              (('make-prompt-tag . (or () (($ <const> _ (? string?)))))
+               res)
+              ((name . args)
+               (make-primcall src name args)))))
+         (else
+          (match (cons name (map for-value args))
+            (('cons x ($ <const> _ ()))
+             (make-primcall src 'list (list x)))
+            (('cons x ($ <primcall> _ 'list elts))
+             (make-primcall src 'list (cons x elts)))
+            ;; FIXME: these for-tail recursions could take
+            ;; place outside an effort counter.
+            (('car ($ <primcall> _ 'cons (x xs)))
+             (for-tail (make-seq src xs x)))
+            (('cdr ($ <primcall> _ 'cons (x xs)))
+             (for-tail (make-seq src x xs)))
+            (('car ($ <primcall> _ 'list (head . rest)))
+             (for-tail (list->seq src (append rest (list head)))))
+            (('cdr ($ <primcall> _ 'list (head . rest)))
+             (for-tail (make-seq src head
+                                 (make-primcall src 'list rest))))
+            (('car ($ <const> _ (head . tail)))
+             (for-tail (make-const src head)))
+            (('cdr ($ <const> _ (head . tail)))
+             (for-tail (make-const src tail)))
+            ((name . args)
+             (make-primcall src name args))))))
+
+      (($ <primcall> src (? effect-free-primitive? name) args)
+       (let ((args (map for-value args)))
+         (if (every const? args)        ; only simple constants
+             (let-values (((success? values)
+                           (apply-primitive name
+                                            (map const-exp args))))
+               (if success?
+                   (case ctx
+                     ((effect) (make-void #f))
+                     ((test)
+                      ;; Values truncation: only take the first
+                      ;; value.
+                      (if (pair? values)
+                          (make-const #f (car values))
+                          (make-values src '())))
+                     (else
+                      (make-values src (map (cut make-const src <>)
+                                            values))))
+                   (make-primcall src name args)))
+             (cond
+              ((and (eq? ctx 'effect) (types-check? name args))
+               (make-void #f))
+              (else
+               (make-primcall src name args))))))
+
+      (($ <primcall> src name args)
+       (make-primcall src name (map for-value args)))
+
+      (($ <call> src orig-proc orig-args)
+       ;; todo: augment the global env with specialized functions
+       (let ((proc (loop orig-proc env counter 'operator)))
+         (match proc
+           (($ <primitive-ref> _ name)
+            (for-tail (make-primcall src name orig-args)))
+
+           (($ <lambda> _ _
+               ($ <lambda-case> _ req opt #f #f inits gensyms body #f))
+            ;; Simple case: no rest, no keyword arguments.
+            ;; todo: handle the more complex cases
+            (let* ((nargs (length orig-args))
+                   (nreq (length req))
+                   (nopt (if opt (length opt) 0))
+                   (key (source-expression proc)))
+              (cond
+               ((or (< nargs nreq) (> nargs (+ nreq nopt)))
+                ;; An error, or effecting arguments.
+                (make-call src (for-value orig-proc) (map for-value 
orig-args)))
+               ((or (and=> (find-counter key counter) counter-recursive?)
+                    (lambda? orig-proc))
+                ;; A recursive call, or a lambda in the operator
+                ;; position of the source expression.  Process again in
+                ;; tail context.
+                (loop (make-let src (append req (or opt '()))
+                                gensyms
+                                (append orig-args
+                                        (drop inits (- nargs nreq)))
+                                body)
+                  env counter ctx))
+               (else
+                ;; An integration at the top-level, the first
+                ;; recursion of a recursive procedure, or a nested
+                ;; integration of a procedure that hasn't been seen
+                ;; yet.
+                (let/ec k
+                  (define (abort)
+                    (k (make-call src
+                                  (for-value orig-proc)
+                                  (map for-value orig-args))))
+                  (define new-counter
+                    (cond
+                     ;; These first two cases will transfer effort
+                     ;; from the current counter into the new
+                     ;; counter.
+                     ((find-counter key counter)
+                      => (lambda (prev)
+                           (make-recursive-counter recursive-effort-limit
+                                                   operand-size-limit
+                                                   prev counter)))
+                     (counter
+                      (make-nested-counter abort key counter))
+                     ;; This case opens a new account, effectively
+                     ;; printing money.  It should only do so once
+                     ;; for each call site in the source program.
+                     (else
+                      (make-top-counter effort-limit operand-size-limit
+                                        abort key))))
+                  (define result
+                    (loop (make-let src (append req (or opt '()))
+                                    gensyms
+                                    (append orig-args
+                                            (drop inits (- nargs nreq)))
+                                    body)
+                      env new-counter ctx))
+                      
+                  (if counter
+                      ;; The nested inlining attempt succeeded.
+                      ;; Deposit the unspent effort and size back
+                      ;; into the current counter.
+                      (transfer! new-counter counter))
+
+                  result)))))
+           (_
+            (make-call src proc (map for-value orig-args))))))
+      (($ <lambda> src meta body)
+       (case ctx
+         ((effect) (make-void #f))
+         ((test) (make-const #f #t))
+         ((operator) exp)
+         (else
+          (make-lambda src meta (for-value body)))))
+      (($ <lambda-case> src req opt rest kw inits gensyms body alt)
+       (make-lambda-case src req opt rest kw
+                         (map for-value inits)
+                         gensyms
+                         (for-tail body)
+                         (and alt (for-tail alt))))
+      (($ <seq> src head tail)
+       (let ((head (for-effect head))
+             (tail (for-tail tail)))
+         (if (void? head)
+             tail
+             (make-seq src
+                       (if (and (seq? head)
+                                (void? (seq-tail head)))
+                           (seq-head head)
+                           head)
+                       tail))))
+      (($ <prompt> src tag body handler)
+       (define (singly-used-definition x)
+         (cond
+          ((and (lexical-ref? x)
+                ;; Only fetch definitions with single uses.
+                (= (lexical-refcount (lexical-ref-gensym x)) 1)
+                (lookup (lexical-ref-gensym x)))
+           => singly-used-definition)
+          (else x)))
+       (match (singly-used-definition tag)
+         (($ <primcall> _ 'make-prompt-tag (or () ((? constant-expression?))))
+          ;; There is no way that an <abort> could know the tag
+          ;; for this <prompt>, so we can elide the <prompt>
+          ;; entirely.
+          (for-tail body))
+         (_
+          (make-prompt src (for-value tag) (for-tail body)
+                       (for-value handler)))))
+      (($ <abort> src tag args tail)
+       (make-abort src (for-value tag) (map for-value args)
+                   (for-value tail))))))
diff --git a/module/language/tree-il/primitives.scm 
b/module/language/tree-il/primitives.scm
index 74c465f..ae35306 100644
--- a/module/language/tree-il/primitives.scm
+++ b/module/language/tree-il/primitives.scm
@@ -27,7 +27,8 @@
   #:use-module (srfi srfi-16)
   #:export (resolve-primitives! add-interesting-primitive!
             expand-primitives!
-            effect-free-primitive? effect+exception-free-primitive?))
+            effect-free-primitive? effect+exception-free-primitive?
+            constructor-primitive? singly-valued-primitive?))
 
 (define *interesting-primitive-names* 
   '(apply @apply
@@ -106,21 +107,23 @@
 
 (for-each add-interesting-primitive! *interesting-primitive-names*)
 
+(define *primitive-constructors*
+  ;; Primitives that return a fresh object.
+  '(acons cons cons* list vector make-struct make-struct/no-tail
+          car cdr vector-ref struct-ref make-prompt-tag))
+
 (define *effect-free-primitives*
-  '(values
+  `(values
     eq? eqv? equal?
     = < > <= >= zero?
     + * - / 1- 1+ quotient remainder modulo
     not
-    pair? null? list? symbol? vector? acons cons cons*
-    list vector
-    car cdr
+    pair? null? list? symbol? vector?
     caar cadr cdar cddr
     caaar caadr cadar caddr cdaar cdadr cddar cdddr
     caaaar caaadr caadar caaddr cadaar cadadr caddar cadddr
     cdaaar cdaadr cdadar cdaddr cddaar cddadr cdddar cddddr
-    vector-ref
-    struct? struct-vtable make-struct make-struct/no-tail struct-ref
+    struct? struct-vtable
     bytevector-u8-ref bytevector-s8-ref
     bytevector-u16-ref bytevector-u16-native-ref
     bytevector-s16-ref bytevector-s16-native-ref
@@ -129,7 +132,8 @@
     bytevector-u64-ref bytevector-u64-native-ref
     bytevector-s64-ref bytevector-s64-native-ref
     bytevector-ieee-single-ref bytevector-ieee-single-native-ref
-    bytevector-ieee-double-ref bytevector-ieee-double-native-ref))
+    bytevector-ieee-double-ref bytevector-ieee-double-native-ref
+    ,@*primitive-constructors*))
 
 ;; Like *effect-free-primitives* above, but further restricted in that they
 ;; cannot raise exceptions.
@@ -141,8 +145,55 @@
     list vector
     struct?))
 
+;; Primitives that only return one value.
+(define *singly-valued-primitives* 
+  '(eq? eqv? equal?
+    memq memv
+    = < > <= >= zero?
+    + * - / 1- 1+ quotient remainder modulo
+    ash logand logior logxor
+    not
+    pair? null? list? symbol? vector? acons cons cons*
+    list vector
+    car cdr
+    set-car! set-cdr!
+    caar cadr cdar cddr
+    caaar caadr cadar caddr cdaar cdadr cddar cdddr
+    caaaar caaadr caadar caaddr cadaar cadadr caddar cadddr
+    cdaaar cdaadr cdadar cdaddr cddaar cddadr cdddar cddddr
+    vector-ref vector-set!
+    variable-ref variable-set!
+    variable-bound?
+    fluid-ref fluid-set!
+    make-prompt-tag
+    struct? struct-vtable make-struct struct-ref struct-set!
+    bytevector-u8-ref bytevector-u8-set!
+    bytevector-s8-ref bytevector-s8-set!
+    u8vector-ref u8vector-set! s8vector-ref s8vector-set!
+    bytevector-u16-ref bytevector-u16-set!
+    bytevector-u16-native-ref bytevector-u16-native-set!
+    bytevector-s16-ref bytevector-s16-set!
+    bytevector-s16-native-ref bytevector-s16-native-set!
+    u16vector-ref u16vector-set! s16vector-ref s16vector-set!
+    bytevector-u32-ref bytevector-u32-set!
+    bytevector-u32-native-ref bytevector-u32-native-set!
+    bytevector-s32-ref bytevector-s32-set!
+    bytevector-s32-native-ref bytevector-s32-native-set!
+    u32vector-ref u32vector-set! s32vector-ref s32vector-set!
+    bytevector-u64-ref bytevector-u64-set!
+    bytevector-u64-native-ref bytevector-u64-native-set!
+    bytevector-s64-ref bytevector-s64-set!
+    bytevector-s64-native-ref bytevector-s64-native-set!
+    u64vector-ref u64vector-set! s64vector-ref s64vector-set!
+    bytevector-ieee-single-ref bytevector-ieee-single-set!
+    bytevector-ieee-single-native-ref bytevector-ieee-single-native-set!
+    bytevector-ieee-double-ref bytevector-ieee-double-set!
+    bytevector-ieee-double-native-ref bytevector-ieee-double-native-set!
+    f32vector-ref f32vector-set! f64vector-ref f64vector-set!))
+
 (define *effect-free-primitive-table* (make-hash-table))
 (define *effect+exceptions-free-primitive-table* (make-hash-table))
+(define *singly-valued-primitive-table* (make-hash-table))
 
 (for-each (lambda (x)
             (hashq-set! *effect-free-primitive-table* x #t))
@@ -150,11 +201,18 @@
 (for-each (lambda (x) 
             (hashq-set! *effect+exceptions-free-primitive-table* x #t))
           *effect+exception-free-primitives*)
+(for-each (lambda (x) 
+            (hashq-set! *singly-valued-primitive-table* x #t))
+          *singly-valued-primitives*)
 
+(define (constructor-primitive? prim)
+  (memq prim *primitive-constructors*))
 (define (effect-free-primitive? prim)
   (hashq-ref *effect-free-primitive-table* prim))
 (define (effect+exception-free-primitive? prim)
   (hashq-ref *effect+exceptions-free-primitive-table* prim))
+(define (singly-valued-primitive? prim)
+  (hashq-ref *singly-valued-primitive-table* prim))
 
 (define (resolve-primitives! x mod)
   (post-order!
@@ -247,6 +305,8 @@
 (define-primitive-expander zero? (x)
   (= x 0))
 
+;; FIXME: All the code that uses `const?' is redundant with `peval'.
+
 (define-primitive-expander +
   () 0
   (x) (values x)
diff --git a/module/oop/goops.scm b/module/oop/goops.scm
index a49af06..cd811b3 100644
--- a/module/oop/goops.scm
+++ b/module/oop/goops.scm
@@ -347,21 +347,18 @@
        #'(define-class-pre-definitions (rest ...) 
          out ... (define-class-pre-definition (slotopt ...)))))))
 
-(define-syntax define-class
-  (syntax-rules ()
-    ((_ name supers slot ...)
-     (begin
-       (define-class-pre-definitions (slot ...))
-       (if (and (defined? 'name)
-                (is-a? name <class>)
-                (memq <object> (class-precedence-list name)))
-           (class-redefinition name
-                               (class supers slot ... #:name 'name))
-           (toplevel-define! 'name (class supers slot ... #:name 'name)))))))
+(define-syntax-rule (define-class name supers slot ...)
+  (begin
+    (define-class-pre-definitions (slot ...))
+    (if (and (defined? 'name)
+             (is-a? name <class>)
+             (memq <object> (class-precedence-list name)))
+        (class-redefinition name
+                            (class supers slot ... #:name 'name))
+        (toplevel-define! 'name (class supers slot ... #:name 'name)))))
        
-(define-syntax standard-define-class
-  (syntax-rules ()
-    ((_ arg ...) (define-class arg ...))))
+(define-syntax-rule (standard-define-class arg ...)
+  (define-class arg ...))
 
 ;;;
 ;;; {Generic functions and accessors}
@@ -428,13 +425,15 @@
   (for-each (lambda (gf)
              (slot-set! gf 'extended-by
                         (cons eg (slot-ref gf 'extended-by))))
-           gfs))
+           gfs)
+  (invalidate-method-cache! eg))
 
 (define (not-extended-by! gfs eg)
   (for-each (lambda (gf)
              (slot-set! gf 'extended-by
                         (delq! eg (slot-ref gf 'extended-by))))
-           gfs))
+           gfs)
+  (invalidate-method-cache! eg))
 
 (define* (ensure-generic old-definition #:optional name)
   (cond ((is-a? old-definition <generic>) old-definition)
@@ -449,13 +448,11 @@
         (else (make <generic> #:name name))))
 
 ;; same semantics as <generic>
-(define-syntax define-accessor
-  (syntax-rules ()
-    ((_ name)
-     (define name
-       (cond ((not (defined? 'name))  (ensure-accessor #f 'name))
-             ((is-a? name <accessor>) (make <accessor> #:name 'name))
-             (else                    (ensure-accessor name 'name)))))))
+(define-syntax-rule (define-accessor name)
+  (define name
+    (cond ((not (defined? 'name))  (ensure-accessor #f 'name))
+          ((is-a? name <accessor>) (make <accessor> #:name 'name))
+          (else                    (ensure-accessor name 'name)))))
 
 (define (make-setter-name name)
   (string->symbol (string-append "setter:" (symbol->string name))))
@@ -505,6 +502,7 @@
                (slot-set! method 'generic-function gws))
              methods)
     (slot-set! gws 'methods methods)
+    (invalidate-method-cache! gws)
     gws))
 
 ;;;
@@ -669,15 +667,25 @@
                methods)
              (loop (cdr l)))))))
 
+(define (method-n-specializers m)
+  (length* (slot-ref m 'specializers)))
+
+(define (calculate-n-specialized gf)
+  (fold (lambda (m n) (max n (method-n-specializers m)))
+        0
+        (generic-function-methods gf)))
+
+(define (invalidate-method-cache! gf)
+  (%invalidate-method-cache! gf)
+  (slot-set! gf 'n-specialized (calculate-n-specialized gf))
+  (for-each (lambda (gf) (invalidate-method-cache! gf))
+            (slot-ref gf 'extended-by)))
+
 (define internal-add-method!
   (method ((gf <generic>) (m <method>))
     (slot-set! m  'generic-function gf)
     (slot-set! gf 'methods (compute-new-list-of-methods gf m))
-    (let ((specializers (slot-ref m 'specializers)))
-      (slot-set! gf 'n-specialized
-                 (max (length* specializers)
-                      (slot-ref gf 'n-specialized))))
-    (%invalidate-method-cache! gf)
+    (invalidate-method-cache! gf)
     (add-method-in-classes! m)
     *unspecified*))
 
@@ -917,6 +925,7 @@
         (slot-set! val2
                    'extended-by
                    (cons gf (delq! gf (slot-ref val2 'extended-by))))
+         (invalidate-method-cache! gf)
         var)))
 
 (module-define! duplicate-handlers 'merge-generics merge-generics)
@@ -1100,7 +1109,7 @@
                    ;; remove the method from its GF
                    (slot-set! gf 'methods
                               (delq1! m (slot-ref gf 'methods)))
-                   (%invalidate-method-cache! gf)
+                   (invalidate-method-cache! gf)
                    ;; remove the method from its specializers
                    (remove-method-in-classes! m))))
            (class-direct-methods c)))
diff --git a/module/oop/goops/simple.scm b/module/oop/goops/simple.scm
index 8f4d839..fba4d41 100644
--- a/module/oop/goops/simple.scm
+++ b/module/oop/goops/simple.scm
@@ -1,6 +1,6 @@
 ;;; installed-scm-file
 
-;;;; Copyright (C) 2005, 2006, 2010 Free Software Foundation, Inc.
+;;;; Copyright (C) 2005, 2006, 2010, 2011 Free Software Foundation, Inc.
 ;;;; 
 ;;;; This library is free software; you can redistribute it and/or
 ;;;; modify it under the terms of the GNU Lesser General Public
@@ -23,10 +23,8 @@
   :export (define-class)
   :no-backtrace)
 
-(define-syntax define-class
-  (syntax-rules ()
-    ((_ arg ...)
-     (define-class-with-accessors-keywords arg ...))))
+(define-syntax-rule (define-class arg ...)
+  (define-class-with-accessors-keywords arg ...))
 
 (module-use! (module-public-interface (current-module))
              (resolve-interface '(oop goops)))
diff --git a/module/oop/goops/stklos.scm b/module/oop/goops/stklos.scm
index 8a7ae16..45272fa 100644
--- a/module/oop/goops/stklos.scm
+++ b/module/oop/goops/stklos.scm
@@ -1,4 +1,4 @@
-;;;; Copyright (C) 1999,2002, 2006, 2010 Free Software Foundation, Inc.
+;;;; Copyright (C) 1999,2002, 2006, 2010, 2011 Free Software Foundation, Inc.
 ;;;; 
 ;;;; This library is free software; you can redistribute it and/or
 ;;;; modify it under the terms of the GNU Lesser General Public
@@ -47,10 +47,8 @@
 ;;; Enable keyword support (*fixme*---currently this has global effect)
 (read-set! keywords 'prefix)
 
-(define-syntax define-class
-  (syntax-rules ()
-    ((_ name supers (slot ...) rest ...)
-     (standard-define-class name supers slot ... rest ...))))
+(define-syntax-rule (define-class name supers (slot ...) rest ...)
+  (standard-define-class name supers slot ... rest ...))
 
 (define (toplevel-define! name val)
   (module-define! (current-module) name val))
diff --git a/module/srfi/srfi-1.scm b/module/srfi/srfi-1.scm
index 765bd50..d2347b0 100644
--- a/module/srfi/srfi-1.scm
+++ b/module/srfi/srfi-1.scm
@@ -240,11 +240,9 @@ higher-order procedures."
   (scm-error 'wrong-type-arg (symbol->string caller)
              "Wrong type argument: ~S" (list arg) '()))
 
-(define-syntax check-arg
-  (syntax-rules ()
-    ((_ pred arg caller)
-     (if (not (pred arg))
-         (wrong-type-arg 'caller arg)))))
+(define-syntax-rule (check-arg pred arg caller)
+  (if (not (pred arg))
+      (wrong-type-arg 'caller arg)))
 
 (define (out-of-range proc arg)
   (scm-error 'out-of-range proc
diff --git a/module/srfi/srfi-35.scm b/module/srfi/srfi-35.scm
index 7f1ff7f..d2b9c94 100644
--- a/module/srfi/srfi-35.scm
+++ b/module/srfi/srfi-35.scm
@@ -1,6 +1,6 @@
 ;;; srfi-35.scm --- Conditions                 -*- coding: utf-8 -*-
 
-;; Copyright (C) 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+;; Copyright (C) 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
 ;;
 ;; This library is free software; you can redistribute it and/or
 ;; modify it under the terms of the GNU Lesser General Public
@@ -295,24 +295,20 @@ by C."
 ;;; Syntax.
 ;;;
 
-(define-syntax define-condition-type
-  (syntax-rules ()
-    ((_ name parent pred (field-name field-accessor) ...)
-     (begin
-       (define name
-         (make-condition-type 'name parent '(field-name ...)))
-       (define (pred c)
-         (condition-has-type? c name))
-       (define (field-accessor c)
-         (condition-ref c 'field-name))
-       ...))))
-
-(define-syntax compound-condition
+(define-syntax-rule (define-condition-type name parent pred (field-name 
field-accessor) ...)
+  (begin
+    (define name
+      (make-condition-type 'name parent '(field-name ...)))
+    (define (pred c)
+      (condition-has-type? c name))
+    (define (field-accessor c)
+      (condition-ref c 'field-name))
+    ...))
+
+(define-syntax-rule (compound-condition (type ...) (field ...))
   ;; Create a compound condition using `make-compound-condition-type'.
-  (syntax-rules ()
-    ((_ (type ...) (field ...))
-     (condition ((make-compound-condition-type '%compound `(,type ...))
-                 field ...)))))
+  (condition ((make-compound-condition-type '%compound `(,type ...))
+              field ...)))
 
 (define-syntax condition-instantiation
   ;; Build the `(make-condition type ...)' call.
diff --git a/module/srfi/srfi-39.scm b/module/srfi/srfi-39.scm
index 61e67b8..dba86fd 100644
--- a/module/srfi/srfi-39.scm
+++ b/module/srfi/srfi-39.scm
@@ -1,6 +1,6 @@
 ;;; srfi-39.scm --- Parameter objects
 
-;;     Copyright (C) 2004, 2005, 2006, 2008 Free Software Foundation, Inc.
+;;     Copyright (C) 2004, 2005, 2006, 2008, 2011 Free Software Foundation, 
Inc.
 ;;
 ;; This library is free software; you can redistribute it and/or
 ;; modify it under the terms of the GNU Lesser General Public
@@ -69,12 +69,10 @@
          ((null? (cdr new-value)) (fluid-set! value (conv (car new-value))))
          (else (error "make-parameter expects 0 or 1 arguments" 
new-value)))))))
 
-(define-syntax parameterize
-  (syntax-rules ()
-    ((_ ((?param ?value) ...) ?body ...)
-     (with-parameters* (list ?param ...)
-                       (list ?value ...)
-                       (lambda () ?body ...)))))
+(define-syntax-rule (parameterize ((?param ?value) ...) ?body ...)
+  (with-parameters* (list ?param ...)
+                    (list ?value ...)
+                    (lambda () ?body ...)))
 
 (define (current-input-port . new-value)
   (if (null? new-value)
diff --git a/module/srfi/srfi-45.scm b/module/srfi/srfi-45.scm
index 1b912be..29b0393 100644
--- a/module/srfi/srfi-45.scm
+++ b/module/srfi/srfi-45.scm
@@ -1,6 +1,6 @@
 ;;; srfi-45.scm -- Primitives for Expressing Iterative Lazy Algorithms
 
-;; Copyright (C) 2010 Free Software Foundation, Inc.
+;; Copyright (C) 2010, 2011 Free Software Foundation, Inc.
 ;; Copyright (C) 2003 André van Tonder. All Rights Reserved.
 
 ;; Permission is hereby granted, free of charge, to any person
@@ -47,17 +47,14 @@
   (tag value-tag value-tag-set!)
   (proc value-proc value-proc-set!))
 
-(define-syntax lazy
-  (syntax-rules ()
-    ((lazy exp)
-     (make-promise (make-value 'lazy (lambda () exp))))))
+(define-syntax-rule (lazy exp)
+  (make-promise (make-value 'lazy (lambda () exp))))
 
 (define (eager x)
   (make-promise (make-value 'eager x)))
 
-(define-syntax delay
-  (syntax-rules ()
-    ((delay exp) (lazy (eager exp)))))
+(define-syntax-rule (delay exp)
+  (lazy (eager exp)))
 
 (define (force promise)
   (let ((content (promise-val promise)))
diff --git a/module/srfi/srfi-67/compare.scm b/module/srfi/srfi-67/compare.scm
index 21b0e94..767f3db 100644
--- a/module/srfi/srfi-67/compare.scm
+++ b/module/srfi/srfi-67/compare.scm
@@ -1,3 +1,4 @@
+; Copyright (c) 2011 Free Software Foundation, Inc.
 ; Copyright (c) 2005 Sebastian Egner and Jens Axel S{\o}gaard.
 ; 
 ; Permission is hereby granted, free of charge, to any person obtaining
@@ -88,14 +89,12 @@
 
 ; 3-sided conditional
 
-(define-syntax if3
-  (syntax-rules ()
-    ((if3 c less equal greater)
-     (case c
-       ((-1) less)
-       (( 0) equal)
-       (( 1) greater)
-       (else (error "comparison value not in {-1,0,1}"))))))
+(define-syntax-rule (if3 c less equal greater)
+  (case c
+    ((-1) less)
+    (( 0) equal)
+    (( 1) greater)
+    (else (error "comparison value not in {-1,0,1}"))))
 
 
 ; 2-sided conditionals for comparisons
@@ -110,51 +109,37 @@
        (a-cases alternate)
        (else    (error "comparison value not in {-1,0,1}"))))))
 
-(define-syntax if=?
-  (syntax-rules ()
-    ((if=? arg ...)
-     (compare:if-rel? (0) (-1 1) arg ...))))
+(define-syntax-rule (if=? arg ...)
+  (compare:if-rel? (0) (-1 1) arg ...))
 
-(define-syntax if<?
-  (syntax-rules ()
-    ((if<? arg ...)
-     (compare:if-rel? (-1) (0 1) arg ...))))
+(define-syntax-rule (if<? arg ...)
+  (compare:if-rel? (-1) (0 1) arg ...))
 
-(define-syntax if>?
-  (syntax-rules ()
-    ((if>? arg ...)
-     (compare:if-rel? (1) (-1 0) arg ...))))
+(define-syntax-rule (if>? arg ...)
+  (compare:if-rel? (1) (-1 0) arg ...))
 
-(define-syntax if<=?
-  (syntax-rules ()
-    ((if<=? arg ...)
-     (compare:if-rel? (-1 0) (1) arg ...))))
+(define-syntax-rule (if<=? arg ...)
+  (compare:if-rel? (-1 0) (1) arg ...))
 
-(define-syntax if>=?
-  (syntax-rules ()
-    ((if>=? arg ...)
-     (compare:if-rel? (0 1) (-1) arg ...))))
+(define-syntax-rule (if>=? arg ...)
+  (compare:if-rel? (0 1) (-1) arg ...))
 
-(define-syntax if-not=?
-  (syntax-rules ()
-    ((if-not=? arg ...)
-     (compare:if-rel? (-1 1) (0) arg ...))))
+(define-syntax-rule (if-not=? arg ...)
+  (compare:if-rel? (-1 1) (0) arg ...))
 
 
 ; predicates from compare procedures
 
-(define-syntax compare:define-rel?
-  (syntax-rules ()
-    ((compare:define-rel? rel? if-rel?)
-     (define rel?
-       (case-lambda
-       (()        (lambda (x y) (if-rel? (default-compare x y) #t #f)))
-       ((compare) (lambda (x y) (if-rel? (compare         x y) #t #f)))
-       ((x y)                   (if-rel? (default-compare x y) #t #f))
-       ((compare x y)
-        (if (procedure? compare)
-            (if-rel? (compare x y) #t #f)
-            (error "not a procedure (Did you mean rel/rel??): " compare))))))))
+(define-syntax-rule (compare:define-rel? rel? if-rel?)
+  (define rel?
+    (case-lambda
+      (()        (lambda (x y) (if-rel? (default-compare x y) #t #f)))
+      ((compare) (lambda (x y) (if-rel? (compare         x y) #t #f)))
+      ((x y)                   (if-rel? (default-compare x y) #t #f))
+      ((compare x y)
+       (if (procedure? compare)
+           (if-rel? (compare x y) #t #f)
+           (error "not a procedure (Did you mean rel/rel??): " compare))))))
 
 (compare:define-rel? =?    if=?)
 (compare:define-rel? <?    if<?)
@@ -166,29 +151,27 @@
 
 ; chains of length 3
 
-(define-syntax compare:define-rel1/rel2?
-  (syntax-rules ()
-    ((compare:define-rel1/rel2? rel1/rel2? if-rel1? if-rel2?)
-     (define rel1/rel2?
-       (case-lambda
-       (()
-        (lambda (x y z)
-          (if-rel1? (default-compare x y)
-                    (if-rel2? (default-compare y z) #t #f)
-                    (compare:checked #f default-compare z))))
-       ((compare)
-        (lambda (x y z)
-          (if-rel1? (compare x y)
-               (if-rel2? (compare y z) #t #f)
-               (compare:checked #f compare z))))
-       ((x y z)
-        (if-rel1? (default-compare x y)
-              (if-rel2? (default-compare y z) #t #f)
-              (compare:checked #f default-compare z)))
-       ((compare x y z)
-        (if-rel1? (compare x y)
-              (if-rel2? (compare y z) #t #f)
-              (compare:checked #f compare z))))))))
+(define-syntax-rule (compare:define-rel1/rel2? rel1/rel2? if-rel1? if-rel2?)
+  (define rel1/rel2?
+    (case-lambda
+      (()
+       (lambda (x y z)
+         (if-rel1? (default-compare x y)
+                   (if-rel2? (default-compare y z) #t #f)
+                   (compare:checked #f default-compare z))))
+      ((compare)
+       (lambda (x y z)
+         (if-rel1? (compare x y)
+                   (if-rel2? (compare y z) #t #f)
+                   (compare:checked #f compare z))))
+      ((x y z)
+       (if-rel1? (default-compare x y)
+                 (if-rel2? (default-compare y z) #t #f)
+                 (compare:checked #f default-compare z)))
+      ((compare x y z)
+       (if-rel1? (compare x y)
+                 (if-rel2? (compare y z) #t #f)
+                 (compare:checked #f compare z))))))
 
 (compare:define-rel1/rel2? </<?   if<?  if<?)
 (compare:define-rel1/rel2? </<=?  if<?  if<=?)
@@ -202,31 +185,29 @@
 
 ; chains of arbitrary length
 
-(define-syntax compare:define-chain-rel?
-  (syntax-rules ()
-    ((compare:define-chain-rel? chain-rel? if-rel?)
-     (define chain-rel?
-       (case-lambda
-       ((compare)
-        #t)
-       ((compare x1)
-        (compare:checked #t compare x1))
-       ((compare x1 x2)
-        (if-rel? (compare x1 x2) #t #f))
-       ((compare x1 x2 x3)
-        (if-rel? (compare x1 x2)
-                 (if-rel? (compare x2 x3) #t #f)
-                 (compare:checked #f compare x3)))
-       ((compare x1 x2 . x3+)
-        (if-rel? (compare x1 x2)
-                 (let chain? ((head x2) (tail x3+))
-                   (if (null? tail)
-                       #t
-                       (if-rel? (compare head (car tail))
-                                (chain? (car tail) (cdr tail))
-                                (apply compare:checked #f 
-                                       compare (cdr tail)))))
-                 (apply compare:checked #f compare x3+))))))))
+(define-syntax-rule (compare:define-chain-rel? chain-rel? if-rel?)
+  (define chain-rel?
+    (case-lambda
+      ((compare)
+       #t)
+      ((compare x1)
+       (compare:checked #t compare x1))
+      ((compare x1 x2)
+       (if-rel? (compare x1 x2) #t #f))
+      ((compare x1 x2 x3)
+       (if-rel? (compare x1 x2)
+                (if-rel? (compare x2 x3) #t #f)
+                (compare:checked #f compare x3)))
+      ((compare x1 x2 . x3+)
+       (if-rel? (compare x1 x2)
+                (let chain? ((head x2) (tail x3+))
+                  (if (null? tail)
+                      #t
+                      (if-rel? (compare head (car tail))
+                               (chain? (car tail) (cdr tail))
+                               (apply compare:checked #f 
+                                      compare (cdr tail)))))
+                (apply compare:checked #f compare x3+))))))
 
 (compare:define-chain-rel? chain=?  if=?)
 (compare:define-chain-rel? chain<?  if<?)
@@ -468,19 +449,17 @@
      (begin (compare:type-check type? type-name x)
             (compare:type-check type? type-name y)))))
 
-(define-syntax compare:define-by=/<
-  (syntax-rules ()
-    ((compare:define-by=/< compare = < type? type-name)
-     (define compare
-       (let ((= =) (< <))
-        (lambda (x y)
-          (if (type? x)
-              (if (eq? x y)
-                  0
-                  (if (type? y)
-                      (if (= x y) 0 (if (< x y) -1 1))
-                      (error (string-append "not " type-name ":") y)))
-              (error (string-append "not " type-name ":") x))))))))
+(define-syntax-rule (compare:define-by=/< compare = < type? type-name)
+  (define compare
+    (let ((= =) (< <))
+      (lambda (x y)
+        (if (type? x)
+            (if (eq? x y)
+                0
+                (if (type? y)
+                    (if (= x y) 0 (if (< x y) -1 1))
+                    (error (string-append "not " type-name ":") y)))
+            (error (string-append "not " type-name ":") x))))))
 
 (define (boolean-compare x y)
   (compare:type-check boolean? "boolean" x y)
diff --git a/module/sxml/match.scm b/module/sxml/match.scm
index 9aebc01..84cbce3 100644
--- a/module/sxml/match.scm
+++ b/module/sxml/match.scm
@@ -1,6 +1,6 @@
 ;;; -*- mode: scheme; coding: utf-8; -*-
 ;;;
-;;; Copyright (C) 2010 Free Software Foundation, Inc.
+;;; Copyright (C) 2010, 2011 Free Software Foundation, Inc.
 ;;;
 ;;; This library is free software; you can redistribute it and/or modify it
 ;;; under the terms of the GNU Lesser General Public License as published by
@@ -40,34 +40,27 @@
 ;;; PLT compatibility layer.
 ;;;
 
-(define-syntax syntax-object->datum
-  (syntax-rules ()
-    ((_ stx)
-     (syntax->datum stx))))
+(define-syntax-rule (syntax-object->datum stx)
+  (syntax->datum stx))
 
-(define-syntax void
-  (syntax-rules ()
-    ((_) *unspecified*)))
+(define-syntax-rule (void)
+  *unspecified*)
 
 (define %call/ec-prompt
   (make-prompt-tag))
 
-(define-syntax call/ec
+(define-syntax-rule (call/ec proc)
   ;; aka. `call-with-escape-continuation'
-  (syntax-rules ()
-    ((_ proc)
-     (call-with-prompt %call/ec-prompt
-                       (lambda ()
-                         (proc (lambda args
-                                 (apply abort-to-prompt
-                                        %call/ec-prompt args))))
-                       (lambda (_ . args)
-                         (apply values args))))))
+  (call-with-prompt %call/ec-prompt
+                    (lambda ()
+                      (proc (lambda args
+                              (apply abort-to-prompt
+                                     %call/ec-prompt args))))
+                    (lambda (_ . args)
+                      (apply values args))))
 
-(define-syntax let/ec
-  (syntax-rules ()
-    ((_ cont body ...)
-     (call/ec (lambda (cont) body ...)))))
+(define-syntax-rule (let/ec cont body ...)
+  (call/ec (lambda (cont) body ...)))
 
 (define (raise-syntax-error x msg obj sub)
   (throw 'sxml-match-error x msg obj sub))
diff --git a/module/system/repl/error-handling.scm 
b/module/system/repl/error-handling.scm
index c6c64cc..2a585aa 100644
--- a/module/system/repl/error-handling.scm
+++ b/module/system/repl/error-handling.scm
@@ -182,7 +182,5 @@
                (apply (if (memq k pass-keys) throw on-error) k args))
              (error "Unknown on-error strategy" on-error)))))))
 
-(define-syntax with-error-handling
-  (syntax-rules ()
-    ((_ form)
-     (call-with-error-handling (lambda () form)))))
+(define-syntax-rule (with-error-handling form)
+  (call-with-error-handling (lambda () form)))
diff --git a/module/system/repl/repl.scm b/module/system/repl/repl.scm
index 5bab778..1cffa71 100644
--- a/module/system/repl/repl.scm
+++ b/module/system/repl/repl.scm
@@ -135,15 +135,13 @@
   (run-repl (make-repl lang debug)))
 
 ;; (put 'abort-on-error 'scheme-indent-function 1)
-(define-syntax abort-on-error
-  (syntax-rules ()
-    ((_ string exp)
-     (catch #t
-       (lambda () exp)
-       (lambda (key . args)
-         (format #t "While ~A:~%" string)
-         (print-exception (current-output-port) #f key args)
-         (abort))))))
+(define-syntax-rule (abort-on-error string exp)
+  (catch #t
+    (lambda () exp)
+    (lambda (key . args)
+      (format #t "While ~A:~%" string)
+      (print-exception (current-output-port) #f key args)
+      (abort))))
 
 (define (run-repl repl)
   (define (with-stack-and-prompt thunk)
diff --git a/module/system/vm/inspect.scm b/module/system/vm/inspect.scm
index aebf50d..1023437 100644
--- a/module/system/vm/inspect.scm
+++ b/module/system/vm/inspect.scm
@@ -1,6 +1,6 @@
 ;;; Guile VM debugging facilities
 
-;;; Copyright (C) 2001, 2009, 2010 Free Software Foundation, Inc.
+;;; Copyright (C) 2001, 2009, 2010, 2011 Free Software Foundation, Inc.
 ;;;
 ;;; This library is free software; you can redistribute it and/or
 ;;; modify it under the terms of the GNU Lesser General Public
@@ -81,16 +81,15 @@
 ;;;
 
 (define (inspect x)
-  (define-syntax define-command
-    (syntax-rules ()
-      ((_ ((mod cname alias ...) . args) body ...)
-       (define cname
-         (let ((c (lambda* args body ...)))
-           (set-procedure-property! c 'name 'cname)
-           (module-define! mod 'cname c)
-           (module-add! mod 'alias (module-local-variable mod 'cname))
-           ...
-           c)))))
+  (define-syntax-rule (define-command ((mod cname alias ...) . args)
+                        body ...)
+    (define cname
+      (let ((c (lambda* args body ...)))
+        (set-procedure-property! c 'name 'cname)
+        (module-define! mod 'cname c)
+        (module-add! mod 'alias (module-local-variable mod 'cname))
+        ...
+        c)))
 
   (let ((commands (make-module)))
     (define (prompt)
diff --git a/module/texinfo.scm b/module/texinfo.scm
index 970895f..8798eb3 100644
--- a/module/texinfo.scm
+++ b/module/texinfo.scm
@@ -77,6 +77,7 @@
   #:use-module (sxml transform)
   #:use-module (sxml ssax input-parse)
   #:use-module (srfi srfi-1)
+  #:use-module (srfi srfi-11)
   #:use-module (srfi srfi-13)
   #:export (call-with-file-and-dir
             texi-command-specs
@@ -103,25 +104,6 @@ files by relative path name."
           (call-with-input-file (basename filename) proc))
         (lambda () (chdir current-dir)))))
 
-;; Define this version here, because (srfi srfi-11)'s definition uses
-;; syntax-rules, which is really damn slow
-(define-macro (let*-values bindings . body)
-  (if (null? bindings) (cons 'begin body)
-      (apply
-       (lambda (vars initializer)
-        (let ((cont 
-               (cons 'let*-values
-                     (cons (cdr bindings) body))))
-          (cond
-           ((not (pair? vars))         ; regular let case, a single var
-            `(let ((,vars ,initializer)) ,cont))
-           ((null? (cdr vars))         ; single var, see the prev case
-            `(let ((,(car vars) ,initializer)) ,cont))
-          (else                        ; the most generic case
-           `(call-with-values (lambda () ,initializer)
-             (lambda ,vars ,cont))))))
-       (car bindings))))
-
 ;;========================================================================
 ;;            Reflection on the XML vocabulary
 
diff --git a/module/web/http.scm b/module/web/http.scm
index 21874ee..70db813 100644
--- a/module/web/http.scm
+++ b/module/web/http.scm
@@ -702,15 +702,25 @@ ordered alist."
 ;; 0         1         2
 (define (parse-rfc-822-date str)
   ;; We could verify the day of the week but we don't.
-  (if (not (string-match? str "aaa, dd aaa dddd dd:dd:dd GMT"))
-      (bad-header 'date str))
-  (let ((date (parse-non-negative-integer str 5 7))
-        (month (parse-month str 8 11))
-        (year (parse-non-negative-integer str 12 16))
-        (hour (parse-non-negative-integer str 17 19))
-        (minute (parse-non-negative-integer str 20 22))
-        (second (parse-non-negative-integer str 23 25)))
-    (make-date 0 second minute hour date month year 0)))
+  (cond ((string-match? str "aaa, dd aaa dddd dd:dd:dd GMT")
+         (let ((date (parse-non-negative-integer str 5 7))
+               (month (parse-month str 8 11))
+               (year (parse-non-negative-integer str 12 16))
+               (hour (parse-non-negative-integer str 17 19))
+               (minute (parse-non-negative-integer str 20 22))
+               (second (parse-non-negative-integer str 23 25)))
+           (make-date 0 second minute hour date month year 0)))
+        ((string-match? str "aaa, d aaa dddd dd:dd:dd GMT")
+         (let ((date (parse-non-negative-integer str 5 6))
+               (month (parse-month str 7 10))
+               (year (parse-non-negative-integer str 11 15))
+               (hour (parse-non-negative-integer str 16 18))
+               (minute (parse-non-negative-integer str 19 21))
+               (second (parse-non-negative-integer str 22 24)))
+           (make-date 0 second minute hour date month year 0)))
+        (else
+         (bad-header 'date str)         ; prevent tail call
+         #f)))
 
 ;; RFC 850, updated by RFC 1036
 ;; Sunday, 06-Nov-94 08:49:37 GMT
diff --git a/module/web/server.scm b/module/web/server.scm
index c5e623a..ef6879e 100644
--- a/module/web/server.scm
+++ b/module/web/server.scm
@@ -118,11 +118,9 @@
   (write server-impl-write)
   (close server-impl-close))
 
-(define-syntax define-server-impl
-  (syntax-rules ()
-    ((_ name open read write close)
-     (define name
-       (make-server-impl 'name open read write close)))))
+(define-syntax-rule (define-server-impl name open read write close)
+  (define name
+    (make-server-impl 'name open read write close)))
 
 (define (lookup-server-impl impl)
   "Look up a server implementation.  If @var{impl} is a server
diff --git a/test-suite/Makefile.am b/test-suite/Makefile.am
index 8ee570b..05aee78 100644
--- a/test-suite/Makefile.am
+++ b/test-suite/Makefile.am
@@ -67,6 +67,7 @@ SCM_TESTS = tests/00-initial-env.test         \
            tests/list.test                     \
            tests/load.test                     \
            tests/match.test                    \
+           tests/match.test.upstream           \
            tests/modules.test                  \
            tests/multilingual.nottest          \
            tests/net-db.test                   \
diff --git a/test-suite/standalone/Makefile.am 
b/test-suite/standalone/Makefile.am
index 00655bd..76c47c4 100644
--- a/test-suite/standalone/Makefile.am
+++ b/test-suite/standalone/Makefile.am
@@ -178,6 +178,13 @@ test_scm_take_u8vector_LDADD = $(LIBGUILE_LDADD)
 check_PROGRAMS += test-scm-take-u8vector
 TESTS += test-scm-take-u8vector
 
+# test-scm-take-u8vector
+test_scm_to_latin1_string_SOURCES = test-scm-to-latin1-string.c
+test_scm_to_latin1_string_CFLAGS = ${test_cflags}
+test_scm_to_latin1_string_LDADD = $(LIBGUILE_LDADD)
+check_PROGRAMS += test-scm-to-latin1-string
+TESTS += test-scm-to-latin1-string
+
 if HAVE_SHARED_LIBRARIES
 
 # test-extensions
diff --git a/test-suite/standalone/test-scm-to-latin1-string.c 
b/test-suite/standalone/test-scm-to-latin1-string.c
new file mode 100644
index 0000000..b8f0120
--- /dev/null
+++ b/test-suite/standalone/test-scm-to-latin1-string.c
@@ -0,0 +1,78 @@
+/* Copyright (C) 2011 Free Software Foundation, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301 USA
+ */
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <libguile.h>
+#include <stdlib.h>
+
+/*
+  This outputs:
+
+  address@hidden ~/tmp $ ./a.out
+  foo,bar
+  bar
+
+*/
+
+#define TEST(x) \
+  if (!(x)) abort()
+
+static void
+inner_main (void *data, int argc, char **argv)
+{
+  char *cstr;
+
+  SCM string, tokens, tok;
+
+  string = scm_from_latin1_string ("foo,bar");
+  tokens = scm_string_split (string, SCM_MAKE_CHAR (','));
+
+  TEST (scm_is_pair (tokens));
+  tok = scm_car (tokens);
+  TEST (scm_is_string (tok));
+  cstr = scm_to_latin1_string (tok);
+  TEST (strcmp (cstr, "foo") == 0);
+  free (cstr);
+  tokens = scm_cdr (tokens);
+  
+  TEST (scm_is_pair (tokens));
+  tok = scm_car (tokens);
+  TEST (scm_is_string (tok));
+  cstr = scm_to_latin1_string (tok);
+  TEST (strcmp (cstr, "bar") == 0);
+  free (cstr);
+  tokens = scm_cdr (tokens);
+  
+  TEST (scm_is_null (tokens));
+}
+
+int
+main (int argc, char **argv)
+{
+  scm_boot_guile (argc, argv, inner_main, NULL);
+
+  return EXIT_SUCCESS;
+}
+
+/* Local Variables: */
+/* compile-command: "gcc `pkg-config --cflags --libs guile-2.0` main.c" */
+/* End: */
diff --git a/test-suite/tests/gc.test b/test-suite/tests/gc.test
index 9aa12be..57643e8 100644
--- a/test-suite/tests/gc.test
+++ b/test-suite/tests/gc.test
@@ -1,5 +1,6 @@
 ;;;; gc.test --- test guile's garbage collection    -*- scheme -*-
-;;;; Copyright (C) 2000, 2001, 2004, 2006, 2007, 2008, 2009 Free Software 
Foundation, Inc.
+;;;; Copyright (C) 2000, 2001, 2004, 2006, 2007, 2008, 2009,
+;;;;   2011 Free Software Foundation, Inc.
 ;;;;
 ;;;; This library is free software; you can redistribute it and/or
 ;;;; modify it under the terms of the GNU Lesser General Public
@@ -46,6 +47,13 @@
 ;;; 
 ;;;
 
+(define (stack-cleanup depth)
+  ;; Clean up stack space for DEPTH words.  This is defined here so that
+  ;; `peval' doesn't inline it.
+  (let cleanup ((i depth))
+    (and (> i 0)
+         (begin (cleanup (1- i)) i))))
+
 (with-test-prefix "gc"
 
   (pass-if "after-gc-hook gets called"
@@ -65,9 +73,7 @@
       (for-each (lambda (x) (guard (make-module))) (iota total))
 
       ;; Avoid false references to the modules on the stack.
-      (let cleanup ((i 20))
-        (and (> i 0)
-             (begin (cleanup (1- i)) i)))
+      (stack-cleanup 20)
 
       (gc)
       (gc) ;; twice: have to kill the weak vectors.
diff --git a/test-suite/tests/match.test b/test-suite/tests/match.test
index f2e670c..8b19ff7 100644
--- a/test-suite/tests/match.test
+++ b/test-suite/tests/match.test
@@ -1,6 +1,6 @@
 ;;;; match.test --- (ice-9 match)  -*- mode: scheme; coding: utf-8; -*-
 ;;;;
-;;;;   Copyright (C) 2010 Free Software Foundation, Inc.
+;;;;   Copyright (C) 2010, 2011 Free Software Foundation, Inc.
 ;;;;
 ;;;; This library is free software; you can redistribute it and/or
 ;;;; modify it under the terms of the GNU Lesser General Public
@@ -18,11 +18,25 @@
 
 (define-module (test-match)
   #:use-module (ice-9 match)
+  #:use-module (srfi srfi-9)
   #:use-module (test-suite lib))
 
 (define exception:match-error
   (cons 'match-error "^.*$"))
 
+(define-record-type rtd-2-slots
+  (make-2-slot-record a b)
+  two-slot-record?
+  (a slot-first)
+  (b slot-second))
+
+(define-record-type rtd-3-slots
+  (make-3-slot-record a b c)
+  three-slot-record?
+  (a slot-one)
+  (b slot-two)
+  (c slot-three))
+
 
 (with-test-prefix "matches"
 
@@ -86,7 +100,61 @@
     (let ((tree '(one (two 2) (three 3 (and 4 (and 5))))))
       (match tree
         (('one ('two x) ('three y ('and z '(and 5))))
-         (equal? (list x y z) '(2 3 4)))))))
+         (equal? (list x y z) '(2 3 4))))))
+
+  (pass-if "and, unique names"
+    (let ((tree '(1 2)))
+      (match tree
+        ((and (a 2) (1 b))
+         (equal? 3 (+ a b))))))
+  
+  (pass-if "and, same names"
+    (let ((a '(1 2)))
+      (match a
+        ((and (a 2) (1 b))
+         (equal? 3 (+ a b))))))
+  
+  (with-test-prefix "records"
+
+    (pass-if "all slots, bind"
+      (let ((r (make-3-slot-record 1 2 3)))
+        (match r
+          (($ rtd-3-slots a b c)
+           (equal? (list a b c) '(1 2 3))))))
+
+    (pass-if "all slots, literals"
+      (let ((r (make-3-slot-record 1 2 3)))
+        (match r
+          (($ rtd-3-slots 1 2 3)
+           #t))))
+
+    (pass-if "2 slots"
+      (let ((r (make-3-slot-record 1 2 3)))
+        (match r
+          (($ rtd-3-slots x y)
+           (equal? (list x y) '(1 2))))))
+
+    (pass-if "RTD correctly checked"
+      (let ((r (make-2-slot-record 1 2)))
+        (match r
+          (($ rtd-3-slots a b)
+           #f)
+          (($ rtd-2-slots a b)
+           (equal? (list a b) '(1 2))))))
+
+    (pass-if "getter"
+      (match (make-2-slot-record 1 2)
+        (($ rtd-2-slots (get! first) (get! second))
+         (equal? (list (first) (second)) '(1 2)))))
+
+    (pass-if "setter"
+      (let ((r (make-2-slot-record 1 2)))
+        (match r
+          (($ rtd-2-slots (set! set-first!) (set! set-second!))
+           (set-first! 'one)
+           (set-second! 'two)
+           (equal? (list (slot-first r) (slot-second r))
+                   '(one two))))))))
 
 
 (with-test-prefix "doesn't match"
@@ -105,4 +173,36 @@
     exception:match-error
     (match '(a 0)
       (((and x (? symbol?)) ..1)
-       (equal? x '(a b c))))))
+       (equal? x '(a b c)))))
+
+  (with-test-prefix "records"
+
+    (pass-if "not a record"
+      (match "hello"
+        (($ rtd-2-slots) #f)
+        (_               #t)))
+
+    (pass-if-exception "too many slots"
+      exception:out-of-range
+      (let ((r (make-3-slot-record 1 2 3)))
+        (match r
+          (($ rtd-3-slots a b c d)
+           #f))))))
+
+
+;;;
+;;; Upstream tests, from Chibi-Scheme (3-clause BSD license).
+;;;
+
+(let-syntax ((load       (syntax-rules ()
+                           ((_ file) #t)))
+             (test       (syntax-rules ()
+                           ((_ name expected expr)
+                            (pass-if name
+                                     (equal? expected expr)))))
+             (test-begin (syntax-rules ()
+                           ((_ name) #t)))
+             (test-end   (syntax-rules ()
+                           ((_) #t))))
+  (with-test-prefix "upstream tests"
+    (include-from-path "test-suite/tests/match.test.upstream")))
diff --git a/test-suite/tests/match.test.upstream 
b/test-suite/tests/match.test.upstream
new file mode 100644
index 0000000..47bf44e
--- /dev/null
+++ b/test-suite/tests/match.test.upstream
@@ -0,0 +1,168 @@
+
+(cond-expand
+ (modules (import (chibi match) (only (chibi test) test-begin test test-end)))
+ (else (load "lib/chibi/match/match.scm")))
+
+(test-begin "match")
+
+(test "any" 'ok (match 'any (_ 'ok)))
+(test "symbol" 'ok (match 'ok (x x)))
+(test "number" 'ok (match 28 (28 'ok)))
+(test "string" 'ok (match "good" ("bad" 'fail) ("good" 'ok)))
+(test "literal symbol" 'ok (match 'good ('bad 'fail) ('good 'ok)))
+(test "null" 'ok (match '() (() 'ok)))
+(test "pair" 'ok (match '(ok) ((x) x)))
+(test "vector" 'ok (match '#(ok) (#(x) x)))
+(test "any doubled" 'ok (match '(1 2) ((_ _) 'ok)))
+(test "and empty" 'ok (match '(o k) ((and) 'ok)))
+(test "and single" 'ok (match 'ok ((and x) x)))
+(test "and double" 'ok (match 'ok ((and (? symbol?) y) 'ok)))
+(test "or empty" 'ok (match '(o k) ((or) 'fail) (else 'ok)))
+(test "or single" 'ok (match 'ok ((or x) 'ok)))
+(test "or double" 'ok (match 'ok ((or (? symbol? y) y) y)))
+(test "not" 'ok (match 28 ((not (a . b)) 'ok)))
+(test "pred" 'ok (match 28 ((? number?) 'ok)))
+(test "named pred" 29 (match 28 ((? number? x) (+ x 1))))
+
+(test "duplicate symbols pass" 'ok (match '(ok . ok) ((x . x) x)))
+(test "duplicate symbols fail" 'ok (match '(ok . bad) ((x . x) 'bad) (else 
'ok)))
+(test "duplicate symbols samth" 'ok (match '(ok . ok) ((x . 'bad) x) (('ok . 
x) x)))
+
+(test "ellipses" '((a b c) (1 2 3))
+  (match '((a . 1) (b . 2) (c . 3))
+    (((x . y) ___) (list x y))))
+
+(test "real ellipses" '((a b c) (1 2 3))
+  (match '((a . 1) (b . 2) (c . 3))
+    (((x . y) ...) (list x y))))
+
+(test "vector ellipses" '(1 2 3 (a b c) (1 2 3))
+  (match '#(1 2 3 (a . 1) (b . 2) (c . 3))
+    (#(a b c (hd . tl) ...) (list a b c hd tl))))
+
+(test "pred ellipses" '(1 2 3)
+  (match '(1 2 3)
+    (((? odd? n) ___) n)
+    (((? number? n) ___) n)))
+
+(test "failure continuation" 'ok
+  (match '(1 2)
+    ((a . b) (=> next) (if (even? a) 'fail (next)))
+    ((a . b) 'ok)))
+
+(test "let" '(o k)
+  (match-let ((x 'ok) (y '(o k))) y))
+
+(test "let*" '(f o o f)
+  (match-let* ((x 'f) (y 'o) ((z w) (list y x))) (list x y z w)))
+
+(test "getter car" '(1 2)
+  (match '(1 . 2) (((get! a) . b) (list (a) b))))
+
+(test "getter cdr" '(1 2)
+  (match '(1 . 2) ((a . (get! b)) (list a (b)))))
+
+(test "getter vector" '(1 2 3)
+  (match '#(1 2 3) (#((get! a) b c) (list (a) b c))))
+
+(test "setter car" '(3 . 2)
+  (let ((x (cons 1 2)))
+    (match x (((set! a) . b) (a 3)))
+    x))
+
+(test "setter cdr" '(1 . 3)
+  (let ((x (cons 1 2)))
+    (match x ((a . (set! b)) (b 3)))
+    x))
+
+(test "setter vector" '#(1 0 3)
+  (let ((x (vector 1 2 3)))
+    (match x (#(a (set! b) c) (b 0)))
+    x))
+
+(test "single tail" '((a b) (1 2) (c . 3))
+  (match '((a . 1) (b . 2) (c . 3))
+    (((x . y) ... last) (list x y last))))
+
+(test "single tail 2" '((a b) (1 2) 3)
+  (match '((a . 1) (b . 2) 3)
+    (((x . y) ... last) (list x y last))))
+
+(test "multiple tail" '((a b) (1 2) (c . 3) (d . 4) (e . 5))
+  (match '((a . 1) (b . 2) (c . 3) (d . 4) (e . 5))
+    (((x . y) ... u v w) (list x y u v w))))
+
+(test "tail against improper list" #f
+  (match '(a b c d e f . g)
+    ((x ... y u v w) (list x y u v w))
+    (else #f)))
+
+(test "Riastradh quasiquote" '(2 3)
+  (match '(1 2 3) (`(1 ,b ,c) (list b c))))
+
+(test "trivial tree search" '(1 2 3)
+  (match '(1 2 3) ((_ *** (a b c)) (list a b c))))
+
+(test "simple tree search" '(1 2 3)
+  (match '(x (1 2 3)) ((_ *** (a b c)) (list a b c))))
+
+(test "deep tree search" '(1 2 3)
+  (match '(x (x (x (1 2 3)))) ((_ *** (a b c)) (list a b c))))
+
+(test "non-tail tree search" '(1 2 3)
+  (match '(x (x (x a b c (1 2 3) d e f))) ((_ *** (a b c)) (list a b c))))
+
+(test "restricted tree search" '(1 2 3)
+  (match '(x (x (x a b c (1 2 3) d e f))) (('x *** (a b c)) (list a b c))))
+
+(test "fail restricted tree search" #f
+  (match '(x (y (x a b c (1 2 3) d e f)))
+    (('x *** (a b c)) (list a b c))
+    (else #f)))
+
+(test "sxml tree search" '(((href . "http://synthcode.com/";)) ("synthcode"))
+  (match '(p (ul (li a (b c) (a (^ (href . "http://synthcode.com/";)) 
"synthcode") d e f)))
+    (((or 'p 'ul 'li 'b) *** ('a ('^ attrs ...) text ...))
+     (list attrs text))
+    (else #f)))
+
+(test "failed sxml tree search" #f
+  (match '(p (ol (li a (b c) (a (^ (href . "http://synthcode.com/";)) 
"synthcode") d e f)))
+    (((or 'p 'ul 'li 'b) *** ('a ('^ attrs ...) text ...))
+     (list attrs text))
+    (else #f)))
+
+(test "collect tree search"
+    '((p ul li) ((href . "http://synthcode.com/";)) ("synthcode"))
+  (match '(p (ul (li a (b c) (a (^ (href . "http://synthcode.com/";)) 
"synthcode") d e f)))
+    (((and tag (or 'p 'ul 'li 'b)) *** ('a ('^ attrs ...) text ...))
+     (list tag attrs text))
+    (else #f)))
+
+(test "anded tail pattern" '(1 2)
+      (match '(1 2 3) ((and (a ... b) x) a)))
+
+(test "anded search pattern" '(a b c)
+      (match '(a (b (c d))) ((and (p *** 'd) x) p)))
+
+(test "joined tail" '(1 2)
+      (match '(1 2 3) ((and (a ... b) x) a)))
+
+(test "list ..1" '(a b c)
+    (match '(a b c) ((x ..1) x)))
+
+(test "list ..1 failed" #f
+    (match '()
+      ((x ..1) x)
+      (else #f)))
+
+(test "list ..1 with predicate" '(a b c)
+    (match '(a b c)
+      (((and x (? symbol?)) ..1) x)))
+
+(test "list ..1 with failed predicate" #f
+    (match '(a b 3)
+      (((and x (? symbol?)) ..1) x)
+      (else #f)))
+
+(test-end)
diff --git a/test-suite/tests/statprof.test b/test-suite/tests/statprof.test
index 66af55f..7ce39ba 100644
--- a/test-suite/tests/statprof.test
+++ b/test-suite/tests/statprof.test
@@ -40,8 +40,11 @@
 
     ;; make sure these are compiled so we're not swamped in `eval'
     (define (make-func)
+      ;; Disable partial evaluation so that `(+ i i)' doesn't get
+      ;; stripped.
       (compile '(lambda (n)
-                  (do ((i 0 (+ i 1))) ((= 200 i)) (+ i i)))))
+                  (do ((i 0 (+ i 1))) ((= 200 i)) (+ i i)))
+               #:opts '(#:partial-eval? #f)))
     (define run-test
       (compile '(lambda (num-calls funcs)
                   (let loop ((x num-calls) (funcs funcs))
@@ -50,11 +53,11 @@
                       ((car funcs) x)
                       (loop (- x 1) (cdr funcs))))))))
     
-    (let ((num-calls 40000)
+    (let ((num-calls 80000)
           (funcs (circular-list (make-func) (make-func) (make-func))))
 
-      ;; Run test. 10000 us == 100 Hz.
-      (statprof-reset 0 10000 #f #f)
+      ;; Run test. 20000 us == 200 Hz.
+      (statprof-reset 0 20000 #f #f)
       (statprof-start)
       (run-test num-calls funcs)
       (statprof-stop)
diff --git a/test-suite/tests/threads.test b/test-suite/tests/threads.test
index db002f2..85a7c38 100644
--- a/test-suite/tests/threads.test
+++ b/test-suite/tests/threads.test
@@ -36,6 +36,13 @@
     (equal? '(a b c) '(a b c))
     a))
 
+(define (stack-cleanup depth)
+  ;; Clean up stack space for DEPTH words.  This is defined here so that
+  ;; `peval' doesn't inline it.
+  (let cleanup ((i depth))
+    (and (> i 0)
+         (begin (cleanup (1- i)) i))))
+
 (if (provided? 'threads)
     (begin
 
@@ -403,9 +410,7 @@
             (g (let ((m (make-mutex))) (lock-mutex m) m))
 
             ;; Avoid false references to M on the stack.
-            (let cleanup ((i 20))
-              (and (> i 0)
-                   (begin (cleanup (1- i)) i)))
+            (stack-cleanup 20)
 
             (gc) (gc)
             (let ((m (g)))
diff --git a/test-suite/tests/tree-il.test b/test-suite/tests/tree-il.test
index 0f445fd..9a7f051 100644
--- a/test-suite/tests/tree-il.test
+++ b/test-suite/tests/tree-il.test
@@ -23,6 +23,7 @@
   #:use-module (system base pmatch)
   #:use-module (system base message)
   #:use-module (language tree-il)
+  #:use-module (language tree-il primitives)
   #:use-module (language glil)
   #:use-module (srfi srfi-13))
 
@@ -34,26 +35,28 @@
   (post-order! (lambda (x) (set! (tree-il-src x) #f))
                x))
 
-(define-syntax assert-scheme->glil
-  (syntax-rules ()
-    ((_ in out)
-     (let ((tree-il (strip-source
-                     (compile 'in #:from 'scheme #:to 'tree-il))))
-       (pass-if 'in
-                (equal? (unparse-glil (compile tree-il #:from 'tree-il #:to 
'glil))
-                        'out))))))
-
 (define-syntax assert-tree-il->glil
-  (syntax-rules ()
-    ((_ in pat test ...)
+  (syntax-rules (with-partial-evaluation without-partial-evaluation
+                 with-options)
+    ((_ with-partial-evaluation in pat test ...)
+     (assert-tree-il->glil with-options (#:partial-eval? #t)
+                           in pat test ...))
+    ((_ without-partial-evaluation in pat test ...)
+     (assert-tree-il->glil with-options (#:partial-eval? #f)
+                           in pat test ...))
+    ((_ with-options opts in pat test ...)
      (let ((exp 'in))
        (pass-if 'in
          (let ((glil (unparse-glil
                       (compile (strip-source (parse-tree-il exp))
-                               #:from 'tree-il #:to 'glil))))
+                               #:from 'tree-il #:to 'glil
+                               #:opts 'opts))))
            (pmatch glil
              (pat (guard test ...) #t)
-             (else #f))))))))
+             (else #f))))))
+    ((_ in pat test ...)
+     (assert-tree-il->glil with-partial-evaluation
+                           in pat test ...))))
 
 (define-syntax pass-if-tree-il->scheme
   (syntax-rules ()
@@ -66,6 +69,39 @@
          (pat (guard guard-exp) #t)
          (_ #f))))))
 
+(define peval
+  ;; The partial evaluator.
+  (@@ (language tree-il optimize) peval))
+
+(define-syntax pass-if-peval
+  (syntax-rules (resolve-primitives)
+    ((_ in pat)
+     (pass-if-peval in pat
+                    (compile 'in #:from 'scheme #:to 'tree-il)))
+    ((_ resolve-primitives in pat)
+     (pass-if-peval in pat
+                    (expand-primitives!
+                     (resolve-primitives!
+                      (compile 'in #:from 'scheme #:to 'tree-il)
+                      (current-module)))))
+    ((_ in pat code)
+     (pass-if 'in
+       (let ((evaled (unparse-tree-il (peval code))))
+         (pmatch evaled
+           (pat #t)
+           (_   (pk 'peval-mismatch)
+                ((@ (ice-9 pretty-print) pretty-print)
+                    'in)
+                (newline)
+                ((@ (ice-9 pretty-print) pretty-print)
+                    evaled)
+                (newline)
+                ((@ (ice-9 pretty-print) pretty-print)
+                    'pat)
+                (newline)
+                #f)))))))
+
+
 (with-test-prefix "tree-il->scheme"
   (pass-if-tree-il->scheme
    (case-lambda ((a) a) ((b c) (list b c)))
@@ -107,8 +143,8 @@
             (const 1) (call return 1)
             (label ,l2) (const 2) (call return 1))
    (eq? l1 l2))
-  
-  (assert-tree-il->glil
+
+  (assert-tree-il->glil without-partial-evaluation
    (begin (if (toplevel foo) (const 1) (const 2)) (const #f))
    (program () (std-prelude 0 0 #f) (label _) (toplevel ref foo) (branch 
br-if-not ,l1) (branch br ,l2)
             (label ,l3) (label ,l4) (const #f) (call return 1))
@@ -137,21 +173,21 @@
             (call return 1))))
 
 (with-test-prefix "lexical refs"
-  (assert-tree-il->glil
+  (assert-tree-il->glil without-partial-evaluation
    (let (x) (y) ((const 1)) (lexical x y))
    (program () (std-prelude 0 1 #f) (label _)
             (const 1) (bind (x #f 0)) (lexical #t #f set 0)
             (lexical #t #f ref 0) (call return 1)
             (unbind)))
 
-  (assert-tree-il->glil
+  (assert-tree-il->glil without-partial-evaluation
    (let (x) (y) ((const 1)) (begin (lexical x y) (const #f)))
    (program () (std-prelude 0 1 #f) (label _)
             (const 1) (bind (x #f 0)) (lexical #t #f set 0)
             (const #f) (call return 1)
             (unbind)))
 
-  (assert-tree-il->glil
+  (assert-tree-il->glil without-partial-evaluation
    (let (x) (y) ((const 1)) (primcall null? (lexical x y)))
    (program () (std-prelude 0 1 #f) (label _)
             (const 1) (bind (x #f 0)) (lexical #t #f set 0)
@@ -270,7 +306,7 @@
             (toplevel ref bar)
             (call return 1)))
 
-  (assert-tree-il->glil
+  (assert-tree-il->glil without-partial-evaluation
    (begin (toplevel bar) (const #f))
    (program () (std-prelude 0 0 #f) (label _)
             (toplevel ref bar) (call drop 1)
@@ -332,13 +368,14 @@
             (const #f) (call return 1)))
 
   (assert-tree-il->glil
+   ;; This gets simplified by `peval'.
    (primcall null? (const 2))
    (program () (std-prelude 0 0 #f) (label _)
-            (const 2) (call null? 1) (call return 1))))
+            (const #f) (call return 1))))
 
 (with-test-prefix "letrec"
   ;; simple bindings -> let
-  (assert-tree-il->glil
+  (assert-tree-il->glil without-partial-evaluation
    (letrec (x y) (x1 y1) ((const 10) (const 20))
            (call (toplevel foo) (lexical x x1) (lexical y y1)))
    (program () (std-prelude 0 2 #f) (label _)
@@ -351,7 +388,7 @@
             (unbind)))
 
   ;; complex bindings -> box and set! within let
-  (assert-tree-il->glil
+  (assert-tree-il->glil without-partial-evaluation
    (letrec (x y) (x1 y1) ((call (toplevel foo)) (call (toplevel bar)))
            (primcall + (lexical x x1) (lexical y y1)))
    (program () (std-prelude 0 4 #f) (label _)
@@ -367,7 +404,7 @@
             (call add 2) (call return 1) (unbind)))
   
   ;; complex bindings in letrec* -> box and set! in order
-  (assert-tree-il->glil
+  (assert-tree-il->glil without-partial-evaluation
    (letrec* (x y) (x1 y1) ((call (toplevel foo)) (call (toplevel bar)))
             (primcall + (lexical x x1) (lexical y y1)))
    (program () (std-prelude 0 2 #f) (label _)
@@ -383,7 +420,7 @@
             (call add 2) (call return 1) (unbind)))
 
   ;; simple bindings in letrec* -> equivalent to letrec
-  (assert-tree-il->glil
+  (assert-tree-il->glil without-partial-evaluation
    (letrec* (x y) (xx yy) ((const 1) (const 2))
             (lexical y yy))
    (program () (std-prelude 0 1 #f) (label _)
@@ -487,9 +524,10 @@
             (const #t) (call return 1)))
 
   (assert-tree-il->glil
+   ;; This gets simplified by `peval'.
    (primcall null? (begin (const #f) (const 2)))
    (program () (std-prelude 0 0 #f) (label _)
-            (const 2) (call null? 1) (call return 1))))
+            (const #f) (call return 1))))
 
 (with-test-prefix "values"
   (assert-tree-il->glil
@@ -514,7 +552,7 @@
 ;; FIXME: binding info for or-hacked locals might bork the disassembler,
 ;; and could be tightened in any case
 (with-test-prefix "the or hack"
-  (assert-tree-il->glil
+  (assert-tree-il->glil without-partial-evaluation
    (let (x) (y) ((const 1))
         (if (lexical x y)
             (lexical x y)
@@ -532,7 +570,7 @@
    (eq? l1 l2))
 
   ;; second bound var is unreferenced
-  (assert-tree-il->glil
+  (assert-tree-il->glil without-partial-evaluation
    (let (x) (y) ((const 1))
         (if (lexical x y)
             (lexical x y)
@@ -587,6 +625,693 @@
             (call tail-call 1))))
 
 
+(with-test-prefix "partial evaluation"
+
+  (pass-if-peval
+    ;; First order, primitive.
+    (let ((x 1) (y 2)) (+ x y))
+    (const 3))
+
+  (pass-if-peval
+    ;; First order, thunk.
+    (let ((x 1) (y 2))
+      (let ((f (lambda () (+ x y))))
+        (f)))
+    (const 3))
+
+  (pass-if-peval resolve-primitives
+    ;; First order, let-values (requires primitive expansion for
+    ;; `call-with-values'.)
+    (let ((x 0))
+      (call-with-values
+          (lambda () (if (zero? x) (values 1 2) (values 3 4)))
+        (lambda (a b)
+          (+ a b))))
+    (const 3))
+
+  (pass-if-peval
+    ;; First order, coalesced, mutability preserved.
+    (cons 0 (cons 1 (cons 2 (list 3 4 5))))
+    (primcall list
+              (const 0) (const 1) (const 2) (const 3) (const 4) (const 5)))
+
+  (pass-if-peval
+   ;; First order, coalesced, mutability preserved.
+   (cons 0 (cons 1 (cons 2 (list 3 4 5))))
+   ;; This must not be a constant.
+   (primcall list
+             (const 0) (const 1) (const 2) (const 3) (const 4) (const 5)))
+
+  (pass-if-peval
+    ;; First order, coalesced, immutability preserved.
+    (cons 0 (cons 1 (cons 2 '(3 4 5))))
+    (primcall cons (const 0)
+              (primcall cons (const 1)
+                        (primcall cons (const 2)
+                                  (const (3 4 5))))))
+
+  ;; These two tests doesn't work any more because we changed the way we
+  ;; deal with constants -- now the algorithm will see a construction as
+  ;; being bound to the lexical, so it won't propagate it.  It can't
+  ;; even propagate it in the case that it is only referenced once,
+  ;; because:
+  ;;
+  ;;   (let ((x (cons 1 2))) (lambda () x))
+  ;;
+  ;; is not the same as
+  ;;
+  ;;   (lambda () (cons 1 2))
+  ;;
+  ;; Perhaps if we determined that not only was it only referenced once,
+  ;; it was not closed over by a lambda, then we could propagate it, and
+  ;; re-enable these two tests.
+  ;;
+  #;
+  (pass-if-peval
+   ;; First order, mutability preserved.
+   (let loop ((i 3) (r '()))
+     (if (zero? i)
+         r
+         (loop (1- i) (cons (cons i i) r))))
+   (primcall list
+             (primcall cons (const 1) (const 1))
+             (primcall cons (const 2) (const 2))
+             (primcall cons (const 3) (const 3))))
+  ;;
+  ;; See above.
+  #;
+  (pass-if-peval
+   ;; First order, evaluated.
+   (let loop ((i 7)
+              (r '()))
+     (if (<= i 0)
+         (car r)
+         (loop (1- i) (cons i r))))
+   (const 1))
+
+  ;; Instead here are tests for what happens for the above cases: they
+  ;; unroll but they don't fold.
+  (pass-if-peval
+   (let loop ((i 3) (r '()))
+     (if (zero? i)
+         r
+         (loop (1- i) (cons (cons i i) r))))
+   (letrec (loop) (_) (_)
+           (let (r) (_)
+                ((primcall list
+                           (primcall cons (const 3) (const 3))))
+                (let (r) (_)
+                     ((primcall cons
+                                (primcall cons (const 2) (const 2))
+                                (lexical r _)))
+                     (primcall cons
+                               (primcall cons (const 1) (const 1))
+                               (lexical r _))))))
+
+  ;; See above.
+  (pass-if-peval
+   (let loop ((i 4)
+              (r '()))
+     (if (<= i 0)
+         (car r)
+         (loop (1- i) (cons i r))))
+   (letrec (loop) (_) (_)
+           (let (r) (_)
+                ((primcall list (const 4)))
+                (let (r) (_)
+                     ((primcall cons
+                                (const 3)
+                                (lexical r _)))
+                     (let (r) (_)
+                          ((primcall cons
+                                     (const 2)
+                                     (lexical r _)))
+                          (let (r) (_)
+                               ((primcall cons
+                                          (const 1)
+                                          (lexical r _)))
+                               (primcall car
+                                         (lexical r _))))))))
+
+   ;; Static sums.
+  (pass-if-peval
+   (let loop ((l '(1 2 3 4)) (sum 0))
+     (if (null? l)
+         sum
+         (loop (cdr l) (+ sum (car l)))))
+   (const 10))
+
+  (pass-if-peval
+   ;; Mutability preserved.
+   ((lambda (x y z) (list x y z)) 1 2 3)
+   (primcall list (const 1) (const 2) (const 3)))
+
+  (pass-if-peval
+   ;; Don't propagate effect-free expressions that operate on mutable
+   ;; objects.
+   (let* ((x (list 1))
+          (y (car x)))
+     (set-car! x 0)
+     y)
+   (let (x) (_) ((primcall list (const 1)))
+        (let (y) (_) ((primcall car (lexical x _)))
+             (seq
+               (call (toplevel set-car!) (lexical x _) (const 0))
+               (lexical y _)))))
+  
+  (pass-if-peval
+   ;; Don't propagate effect-free expressions that operate on objects we
+   ;; don't know about.
+   (let ((y (car x)))
+     (set-car! x 0)
+     y)
+   (let (y) (_) ((primcall car (toplevel x)))
+        (seq
+          (call (toplevel set-car!) (toplevel x) (const 0))
+          (lexical y _))))
+  
+  (pass-if-peval
+   ;; Infinite recursion
+   ((lambda (x) (x x)) (lambda (x) (x x)))
+   (let (x) (_)
+        ((lambda _
+           (lambda-case
+            (((x) _ _ _ _ _)
+             (call (lexical x _) (lexical x _))))))
+        (call (lexical x _) (lexical x _))))
+
+  (pass-if-peval
+    ;; First order, aliased primitive.
+    (let* ((x *) (y (x 1 2))) y)
+    (const 2))
+
+  (pass-if-peval
+    ;; First order, shadowed primitive.
+    (begin
+      (define (+ x y) (pk x y))
+      (+ 1 2))
+    (seq
+      (define +
+        (lambda (_)
+          (lambda-case
+           (((x y) #f #f #f () (_ _))
+            (call (toplevel pk) (lexical x _) (lexical y _))))))
+      (call (toplevel +) (const 1) (const 2))))
+
+  (pass-if-peval
+    ;; First-order, effects preserved.
+    (let ((x 2))
+      (do-something!)
+      x)
+    (seq
+      (call (toplevel do-something!))
+      (const 2)))
+
+  (pass-if-peval
+    ;; First order, residual bindings removed.
+    (let ((x 2) (y 3))
+      (* (+ x y) z))
+    (primcall * (const 5) (toplevel z)))
+
+  (pass-if-peval
+    ;; First order, with lambda.
+    (define (foo x)
+      (define (bar z) (* z z))
+      (+ x (bar 3)))
+    (define foo
+      (lambda (_)
+        (lambda-case
+         (((x) #f #f #f () (_))
+          (primcall + (lexical x _) (const 9)))))))
+
+  (pass-if-peval
+    ;; First order, with lambda inlined & specialized twice.
+    (let ((f (lambda (x y)
+               (+ (* x top) y)))
+          (x 2)
+          (y 3))
+      (+ (* x (f x y))
+         (f something x)))
+    (primcall +
+              (primcall *
+                        (const 2)
+                        (primcall +     ; (f 2 3)
+                                  (primcall *
+                                            (const 2)
+                                            (toplevel top))
+                                  (const 3)))
+              (let (x) (_) ((toplevel something)) ; (f something 2)
+                   ;; `something' is not const, so preserve order of
+                   ;; effects with a lexical binding.
+                   (primcall +
+                             (primcall *
+                                       (lexical x _)
+                                       (toplevel top))
+                             (const 2)))))
+  
+  (pass-if-peval
+   ;; First order, with lambda inlined & specialized 3 times.
+   (let ((f (lambda (x y) (if (> x 0) y x))))
+     (+ (f -1 0)
+        (f 1 0)
+        (f -1 y)
+        (f 2 y)
+        (f z y)))
+   (primcall +
+             (const -1)                               ; (f -1 0)
+             (const 0)                                ; (f 1 0)
+             (seq (toplevel y) (const -1))          ; (f -1 y)
+             (toplevel y)                             ; (f 2 y)
+             (let (x y) (_ _) ((toplevel z) (toplevel y)) ; (f z y)
+                  (if (primcall > (lexical x _) (const 0))
+                      (lexical y _)
+                      (lexical x _)))))
+
+  (pass-if-peval
+    ;; First order, conditional.
+    (let ((y 2))
+      (lambda (x)
+        (if (> y 0)
+            (display x)
+            'never-reached)))
+    (lambda ()
+      (lambda-case
+       (((x) #f #f #f () (_))
+        (call (toplevel display) (lexical x _))))))
+
+  (pass-if-peval
+    ;; First order, recursive procedure.
+    (letrec ((fibo (lambda (n)
+                     (if (<= n 1)
+                         n
+                         (+ (fibo (- n 1))
+                            (fibo (- n 2)))))))
+      (fibo 4))
+    (const 3))
+
+  (pass-if-peval
+   ;; Don't propagate toplevel references, as intervening expressions
+   ;; could alter their bindings.
+   (let ((x top))
+     (foo)
+     x)
+   (let (x) (_) ((toplevel top))
+        (seq
+          (call (toplevel foo))
+          (lexical x _))))
+
+  (pass-if-peval
+    ;; Higher order.
+    ((lambda (f x)
+       (f (* (car x) (cadr x))))
+     (lambda (x)
+       (+ x 1))
+     '(2 3))
+    (const 7))
+
+  (pass-if-peval
+    ;; Higher order with optional argument (default value).
+    ((lambda* (f x #:optional (y 0))
+       (+ y (f (* (car x) (cadr x)))))
+     (lambda (x)
+       (+ x 1))
+     '(2 3))
+    (const 7))
+
+  (pass-if-peval
+    ;; Higher order with optional argument (caller-supplied value).
+    ((lambda* (f x #:optional (y 0))
+       (+ y (f (* (car x) (cadr x)))))
+     (lambda (x)
+       (+ x 1))
+     '(2 3)
+     35)
+    (const 42))
+
+  (pass-if-peval
+    ;; Higher order with optional argument (side-effecting default
+    ;; value).
+    ((lambda* (f x #:optional (y (foo)))
+       (+ y (f (* (car x) (cadr x)))))
+     (lambda (x)
+       (+ x 1))
+     '(2 3))
+    (let (y) (_) ((call (toplevel foo)))
+         (primcall + (lexical y _) (const 7))))
+
+  (pass-if-peval
+    ;; Higher order with optional argument (caller-supplied value).
+    ((lambda* (f x #:optional (y (foo)))
+       (+ y (f (* (car x) (cadr x)))))
+     (lambda (x)
+       (+ x 1))
+     '(2 3)
+     35)
+    (const 42))
+
+  (pass-if-peval
+    ;; Higher order.
+    ((lambda (f) (f x)) (lambda (x) x))
+    (toplevel x))
+
+  (pass-if-peval
+    ;; Bug reported at
+    ;; <https://lists.gnu.org/archive/html/bug-guile/2011-09/msg00019.html>.
+    (let ((fold (lambda (f g) (f (g top)))))
+      (fold 1+ (lambda (x) x)))
+    (primcall 1+ (toplevel top)))
+  
+  (pass-if-peval
+    ;; Procedure not inlined when residual code contains recursive calls.
+    ;; <http://debbugs.gnu.org/9542>
+    (letrec ((fold (lambda (f x3 b null? car cdr)
+                     (if (null? x3)
+                         b
+                         (f (car x3) (fold f (cdr x3) b null? car cdr))))))
+      (fold * x 1 zero? (lambda (x1) x1) (lambda (x2) (- x2 1))))
+    (letrec (fold) (_) (_)
+            (call (lexical fold _)
+                   (primitive *)
+                   (toplevel x)
+                   (const 1)
+                   (primitive zero?)
+                   (lambda ()
+                     (lambda-case
+                      (((x1) #f #f #f () (_))
+                       (lexical x1 _))))
+                   (lambda ()
+                     (lambda-case
+                      (((x2) #f #f #f () (_))
+                       (primcall - (lexical x2 _) (const 1))))))))
+
+  (pass-if "inlined lambdas are alpha-renamed"
+    ;; In this example, `make-adder' is inlined more than once; thus,
+    ;; they should use different gensyms for their arguments, because
+    ;; the various optimization passes assume uniquely-named variables.
+    ;;
+    ;; Bug reported at
+    ;; <https://lists.gnu.org/archive/html/bug-guile/2011-09/msg00019.html> and
+    ;; <https://lists.gnu.org/archive/html/bug-guile/2011-09/msg00029.html>.
+    (pmatch (unparse-tree-il
+             (peval (compile
+                     '(let ((make-adder
+                             (lambda (x) (lambda (y) (+ x y)))))
+                        (cons (make-adder 1) (make-adder 2)))
+                     #:to 'tree-il)))
+      ((primcall cons
+                 (lambda ()
+                   (lambda-case
+                    (((y) #f #f #f () (,gensym1))
+                     (primcall +
+                               (const 1)
+                               (lexical y ,ref1)))))
+                 (lambda ()
+                   (lambda-case
+                    (((y) #f #f #f () (,gensym2))
+                     (primcall +
+                               (const 2)
+                               (lexical y ,ref2))))))
+       (and (eq? gensym1 ref1)
+            (eq? gensym2 ref2)
+            (not (eq? gensym1 gensym2))))
+      (_ #f)))
+
+  (pass-if-peval
+    ;; Higher order, mutually recursive procedures.
+    (letrec ((even? (lambda (x)
+                      (or (= 0 x)
+                          (odd? (- x 1)))))
+             (odd?  (lambda (x)
+                      (not (even? (- x 1))))))
+      (and (even? 4) (odd? 7)))
+    (const #t))
+
+  ;;
+  ;; Below are cases where constant propagation should bail out.
+  ;;
+
+  (pass-if-peval
+    ;; Non-constant lexical is not propagated.
+    (let ((v (make-vector 6 #f)))
+      (lambda (n)
+        (vector-set! v n n)))
+    (let (v) (_)
+         ((call (toplevel make-vector) (const 6) (const #f)))
+         (lambda ()
+           (lambda-case
+            (((n) #f #f #f () (_))
+             (call (toplevel vector-set!)
+                    (lexical v _) (lexical n _) (lexical n _)))))))
+
+  (pass-if-peval
+    ;; Mutable lexical is not propagated.
+    (let ((v (vector 1 2 3)))
+      (lambda ()
+        v))
+    (let (v) (_)
+         ((primcall vector (const 1) (const 2) (const 3)))
+         (lambda ()
+           (lambda-case
+            ((() #f #f #f () ())
+             (lexical v _))))))
+
+  (pass-if-peval
+    ;; Lexical that is not provably pure is not inlined nor propagated.
+    (let* ((x (if (> p q) (frob!) (display 'chbouib)))
+           (y (* x 2)))
+      (+ x x y))
+    (let (x) (_) ((if (primcall > (toplevel p) (toplevel q))
+                      (call (toplevel frob!))
+                      (call (toplevel display) (const chbouib))))
+         (let (y) (_) ((primcall * (lexical x _) (const 2)))
+              (primcall +
+                        (lexical x _) (lexical x _) (lexical y _)))))
+
+  (pass-if-peval
+    ;; Non-constant arguments not propagated to lambdas.
+    ((lambda (x y z)
+       (vector-set! x 0 0)
+       (set-car! y 0)
+       (set-cdr! z '()))
+     (vector 1 2 3)
+     (make-list 10)
+     (list 1 2 3))
+    (let (x y z) (_ _ _)
+         ((primcall vector (const 1) (const 2) (const 3))
+          (call (toplevel make-list) (const 10))
+          (primcall list (const 1) (const 2) (const 3)))
+         (seq
+           (call (toplevel vector-set!)
+                  (lexical x _) (const 0) (const 0))
+           (seq (call (toplevel set-car!)
+                  (lexical y _) (const 0))
+                (call (toplevel set-cdr!)
+                      (lexical z _) (const ()))))))
+
+  (pass-if-peval
+   (let ((foo top-foo) (bar top-bar))
+     (let* ((g (lambda (x y) (+ x y)))
+            (f (lambda (g x) (g x x))))
+       (+ (f g foo) (f g bar))))
+   (let (foo bar) (_ _) ((toplevel top-foo) (toplevel top-bar))
+        (primcall +
+                  (primcall + (lexical foo _) (lexical foo _))
+                  (primcall + (lexical bar _) (lexical bar _)))))
+
+  (pass-if-peval
+    ;; Fresh objects are not turned into constants, nor are constants
+    ;; turned into fresh objects.
+    (let* ((c '(2 3))
+           (x (cons 1 c))
+           (y (cons 0 x)))
+      y)
+    (let (x) (_) ((primcall cons (const 1) (const (2 3))))
+         (primcall cons (const 0) (lexical x _))))
+
+  (pass-if-peval
+    ;; Bindings mutated.
+    (let ((x 2))
+      (set! x 3)
+      x)
+    (let (x) (_) ((const 2))
+         (seq
+           (set! (lexical x _) (const 3))
+           (lexical x _))))
+
+  (pass-if-peval
+    ;; Bindings mutated.
+    (letrec ((x 0)
+             (f (lambda ()
+                  (set! x (+ 1 x))
+                  x)))
+      (frob f) ; may mutate `x'
+      x)
+    (letrec (x) (_) ((const 0))
+            (seq
+              (call (toplevel frob) (lambda _ _))
+              (lexical x _))))
+
+  (pass-if-peval
+    ;; Bindings mutated.
+    (letrec ((f (lambda (x)
+                  (set! f (lambda (_) x))
+                  x)))
+      (f 2))
+    (letrec _ . _))
+
+  (pass-if-peval
+    ;; Bindings possibly mutated.
+    (let ((x (make-foo)))
+      (frob! x) ; may mutate `x'
+      x)
+    (let (x) (_) ((call (toplevel make-foo)))
+         (seq
+           (call (toplevel frob!) (lexical x _))
+           (lexical x _))))
+
+  (pass-if-peval
+    ;; Inlining stops at recursive calls with dynamic arguments.
+    (let loop ((x x))
+      (if (< x 0) x (loop (1- x))))
+    (letrec (loop) (_) ((lambda (_)
+                          (lambda-case
+                           (((x) #f #f #f () (_))
+                            (if _ _
+                                (call (lexical loop _)
+                                       (primcall 1-
+                                                 (lexical x _))))))))
+            (call (lexical loop _) (toplevel x))))
+
+  (pass-if-peval
+    ;; Recursion on the 2nd argument is fully evaluated.
+    (let ((x (top)))
+      (let loop ((x x) (y 10))
+        (if (> y 0)
+            (loop x (1- y))
+            (foo x y))))
+    (let (x) (_) ((call (toplevel top)))
+         (letrec (loop) (_) (_)
+                 (call (toplevel foo) (lexical x _) (const 0)))))
+
+  (pass-if-peval
+    ;; Inlining aborted when residual code contains recursive calls.
+    ;;
+    ;; <http://debbugs.gnu.org/9542>
+    (let loop ((x x) (y 0))
+      (if (> y 0)
+          (loop (1- x) (1- y))
+          (if (< x 0)
+              x
+              (loop (1+ x) (1+ y)))))
+    (letrec (loop) (_) ((lambda (_)
+                          (lambda-case
+                           (((x y) #f #f #f () (_ _))
+                            (if (primcall >
+                                          (lexical y _) (const 0))
+                                _ _)))))
+            (call (lexical loop _) (toplevel x) (const 0))))
+
+  (pass-if-peval
+    ;; Infinite recursion: `peval' gives up and leaves it as is.
+    (letrec ((f (lambda (x) (g (1- x))))
+             (g (lambda (x) (h (1+ x))))
+             (h (lambda (x) (f x))))
+      (f 0))
+    (letrec _ . _))
+
+  (pass-if-peval
+    ;; Constant folding: cons
+   (begin (cons 1 2) #f)
+   (const #f))
+  
+  (pass-if-peval
+    ;; Constant folding: cons
+   (begin (cons (foo) 2) #f)
+   (seq (call (toplevel foo)) (const #f)))
+  
+  (pass-if-peval
+    ;; Constant folding: cons
+   (if (cons 0 0) 1 2)
+   (const 1))
+  
+  (pass-if-peval
+   ;; Constant folding: car+cons
+   (car (cons 1 0))
+   (const 1))
+  
+  (pass-if-peval
+   ;; Constant folding: cdr+cons
+   (cdr (cons 1 0))
+   (const 0))
+  
+  (pass-if-peval
+   ;; Constant folding: car+cons, impure
+   (car (cons 1 (bar)))
+   (seq (call (toplevel bar)) (const 1)))
+  
+  (pass-if-peval
+   ;; Constant folding: cdr+cons, impure
+   (cdr (cons (bar) 0))
+   (seq (call (toplevel bar)) (const 0)))
+  
+  (pass-if-peval
+   ;; Constant folding: car+list
+   (car (list 1 0))
+   (const 1))
+  
+  (pass-if-peval
+   ;; Constant folding: cdr+list
+   (cdr (list 1 0))
+   (primcall list (const 0)))
+  
+  (pass-if-peval
+   ;; Constant folding: car+list, impure
+   (car (list 1 (bar)))
+   (seq (call (toplevel bar)) (const 1)))
+  
+  (pass-if-peval
+   ;; Constant folding: cdr+list, impure
+   (cdr (list (bar) 0))
+   (seq (call (toplevel bar)) (primcall list (const 0))))
+  
+  (pass-if-peval
+   resolve-primitives
+   ;; Prompt is removed if tag is unreferenced
+   (let ((tag (make-prompt-tag)))
+     (call-with-prompt tag
+                       (lambda () 1)
+                       (lambda args args)))
+   (const 1))
+  
+  (pass-if-peval
+   resolve-primitives
+   ;; Prompt is removed if tag is unreferenced, with explicit stem
+   (let ((tag (make-prompt-tag "foo")))
+     (call-with-prompt tag
+                       (lambda () 1)
+                       (lambda args args)))
+   (const 1))
+
+  (pass-if-peval
+   resolve-primitives
+   ;; `while' without `break' or `continue' has no prompts and gets its
+   ;; condition folded.  Unfortunately the outer `lp' does not yet get
+   ;; elided.
+   (while #t #t)
+   (letrec (lp) (_)
+           ((lambda _
+              (lambda-case
+               ((() #f #f #f () ())
+                (letrec (loop) (_)
+                        ((lambda _
+                           (lambda-case
+                            ((() #f #f #f () ())
+                             (call (lexical loop _))))))
+                        (call (lexical loop _)))))))
+           (call (lexical lp _)))))
+
+
+
 (with-test-prefix "tree-il-fold"
 
   (pass-if "empty tree"
diff --git a/test-suite/tests/web-http.test b/test-suite/tests/web-http.test
index c191c6e..e4d6efb 100644
--- a/test-suite/tests/web-http.test
+++ b/test-suite/tests/web-http.test
@@ -89,6 +89,9 @@
   (pass-if-parse date "Tue, 15 Nov 1994 08:12:31 GMT"
                  (string->date "Tue, 15 Nov 1994 08:12:31 +0000"
                                "~a, ~d ~b ~Y ~H:~M:~S ~z"))
+  (pass-if-parse date "Wed, 7 Sep 2011 11:25:00 GMT"
+                 (string->date "Wed, 7 Sep 2011 11:25:00 +0000"
+                               "~a,~e ~b ~Y ~H:~M:~S ~z"))
   (pass-if-parse-error date "Tue, 15 Nov 1994 08:12:31 EST" date)
   (pass-if-any-error date "Tue, 15 Qux 1994 08:12:31 EST")
 
diff --git a/test-suite/vm/t-match.scm b/test-suite/vm/t-match.scm
index ed56ae7..2032fbe 100644
--- a/test-suite/vm/t-match.scm
+++ b/test-suite/vm/t-match.scm
@@ -12,7 +12,7 @@
 (define (matches? obj)
 ;  (format #t "matches? ~a~%" obj)
   (match obj
-        (($ stuff) #t)
+        (($ <stuff>) #t)
 ;       (blurps    #t)
         ("hello"   #t)
         (else #f)))


hooks/post-receive
-- 
GNU Guile



reply via email to

[Prev in Thread] Current Thread [Next in Thread]