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-90-g6fc3eae


From: Andy Wingo
Subject: [Guile-commits] GNU Guile branch, master, updated. v2.1.0-90-g6fc3eae
Date: Thu, 02 Jun 2011 17:19:05 +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=6fc3eae4772bc2c5dc3e2b377ca481eef9aa52f5

The branch, master has been updated
       via  6fc3eae4772bc2c5dc3e2b377ca481eef9aa52f5 (commit)
       via  a881a4ae3bc1f2cc00ac7274e286271b6f55287c (commit)
       via  7081d4f981a53ef488b823a1f76d33619d715d7f (commit)
       via  d31d703fd427898aa61cc8e9a452d29425bfc8b8 (commit)
       via  2187975e391efd3e4b8078f2ce477d62856edc20 (commit)
       via  dfb572a7bf37d70e46d91d62955fe3e404fdcc58 (commit)
       via  0687e826a12e45cec9fcf14ed642f176d230afb9 (commit)
       via  dfc4d56df1854e1c93606fa03497ff7218357e3d (commit)
       via  c382f58943a80cc9467695b3f2399407bcf7e1bf (commit)
       via  7a582ca155eb59083149840b76c3fcebbbdedfe4 (commit)
       via  153c4a4afa4ca3ae6020a0d5ec34bbe62a62c568 (commit)
       via  9228f9eb956e8a7588c315239511fc4e08e16553 (commit)
       via  6b4b4bfb0925adb2da66f4b49deb570da33c737d (commit)
       via  0faf4b2a74b84a220eae6b822040ebd3c49e86a9 (commit)
       via  1e2cc0b6304a4e1804791926db929f63ea082d1f (commit)
       via  ec7ea550f2acd6e7bbaf10f8e4a1e9915dc80cf8 (commit)
      from  1b679a82e1d87e8bf10033292de6e53309057217 (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 6fc3eae4772bc2c5dc3e2b377ca481eef9aa52f5
Author: Andy Wingo <address@hidden>
Date:   Thu Jun 2 19:13:32 2011 +0200

    sequence of expressions -> seq of head and tail
    
    * libguile/expand.h:
    * module/language/tree-il.scm: Rename "sequence" to "seq", and instead
      of taking a list of expressions, take a head and a tail.
    
    * module/language/tree-il/analyze.scm:
    * module/language/tree-il/compile-glil.scm:
    * module/language/tree-il/fix-letrec.scm:
    * module/language/tree-il/spec.scm:
    * module/language/elisp/compile-tree-il.scm:
    * module/ice-9/psyntax.scm:
    * module/ice-9/psyntax-pp.scm:
    * module/ice-9/eval.scm:
    * libguile/memoize.h:
    * libguile/memoize.c:
    * libguile/expand.c:
    * libguile/eval.c: Adapt to the new seq format.

commit a881a4ae3bc1f2cc00ac7274e286271b6f55287c
Author: Andy Wingo <address@hidden>
Date:   Thu Jun 2 17:41:45 2011 +0200

    add <primcall> to tree-il
    
    * libguile/expand.c:
    * libguile/expand.h (SCM_EXPANDED_PRIMCALL_TYPE_NAME):
      (SCM_EXPANDED_PRIMCALL_FIELD_NAMES):
      (SCM_EXPANDED_PRIMCALL_SRC):
      (SCM_EXPANDED_PRIMCALL_NAME):
      (SCM_EXPANDED_PRIMCALL_ARGS):
      (SCM_MAKE_EXPANDED_PRIMCALL): Add "primcall" Tree-IL type.
    
    * doc/ref/compiler.texi (Tree-IL): Update docs.
    
    * libguile/memoize.c (memoize): Memoizer for primcalls.
    
    * module/ice-9/psyntax.scm: Build primcalls, sometimes.  Also change
      build-primref to just make a primitive-ref.
    
    * module/language/tree-il.scm: Add primcall to the exports, parsers,
      serializers, etc.
    
    * module/language/tree-il/analyze.scm:
    * module/language/tree-il/compile-glil.scm:
    * module/language/tree-il/fix-letrec.scm:
    * module/language/tree-il/inline.scm:
    * module/language/tree-il/primitives.scm:
    * module/language/elisp/compile-tree-il.scm: Add primcall support.
    
    * test-suite/tests/tree-il.test: Use primcalls sometimes.

commit 7081d4f981a53ef488b823a1f76d33619d715d7f
Author: Andy Wingo <address@hidden>
Date:   Thu Jun 2 13:42:55 2011 +0200

    rename <application> to <call>
    
    * doc/ref/compiler.texi (The Scheme Compiler): Update docs.
    
    * libguile/expand.h:
    * libguile/expand.c:
    * module/language/tree-il.scm: Rename <application> to <call>.  Change
      the external representation from (apply proc arg ...) to (call proc
      arg ...).
    
    * libguile/memoize.c:
    * module/ice-9/psyntax-pp.scm:
    * module/ice-9/psyntax.scm:
    * module/language/brainfuck/compile-tree-il.scm:
    * module/language/ecmascript/compile-tree-il.scm:
    * module/language/elisp/compile-tree-il.scm:
    * module/language/tree-il/analyze.scm:
    * module/language/tree-il/compile-glil.scm:
    * module/language/tree-il/fix-letrec.scm:
    * module/language/tree-il/inline.scm:
    * module/language/tree-il/primitives.scm:
    * test-suite/tests/tree-il.test: Update all callers.

commit d31d703fd427898aa61cc8e9a452d29425bfc8b8
Merge: 1b679a8 2187975
Author: Andy Wingo <address@hidden>
Date:   Mon May 30 11:50:38 2011 +0200

    Merge remote-tracking branch 'origin/stable-2.0'

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

Summary of changes:
 doc/ref/Makefile.am                            |    1 -
 doc/ref/compiler.texi                          |   42 +-
 doc/ref/mod-getopt-long.texi                   |   26 +-
 doc/ref/script-getopt.texi                     |   93 -
 libguile/eval.c                                |    7 +-
 libguile/expand.c                              |   39 +-
 libguile/expand.h                              |   51 +-
 libguile/hashtab.c                             |   42 +-
 libguile/memoize.c                             |   65 +-
 libguile/memoize.h                             |    4 +-
 libguile/r6rs-ports.c                          |   13 +-
 meta/guile-tools.in                            |  162 +-
 module/Makefile.am                             |    1 +
 module/ice-9/boot-9.scm                        |    2 +-
 module/ice-9/eval.scm                          |   15 +-
 module/ice-9/getopt-long.scm                   |  113 +-
 module/ice-9/psyntax-pp.scm                    |13637 ++++++++++++------------
 module/ice-9/psyntax.scm                       |  165 +-
 module/language/brainfuck/compile-tree-il.scm  |   54 +-
 module/language/ecmascript/compile-tree-il.scm |  172 +-
 module/language/elisp/compile-tree-il.scm      |  207 +-
 module/language/tree-il.scm                    |  114 +-
 module/language/tree-il/analyze.scm            |   52 +-
 module/language/tree-il/compile-glil.scm       |  400 +-
 module/language/tree-il/fix-letrec.scm         |   19 +-
 module/language/tree-il/inline.scm             |  132 +-
 module/language/tree-il/primitives.scm         |   39 +-
 module/language/tree-il/spec.scm               |    6 +-
 module/rnrs/io/ports.scm                       |    8 +-
 module/scripts/list.scm                        |   83 +
 test-suite/tests/getopt-long.test              |   13 +-
 test-suite/tests/r6rs-ports.test               |   69 +-
 test-suite/tests/tree-il.test                  |   70 +-
 33 files changed, 7970 insertions(+), 7946 deletions(-)
 delete mode 100644 doc/ref/script-getopt.texi
 create mode 100644 module/scripts/list.scm

diff --git a/doc/ref/Makefile.am b/doc/ref/Makefile.am
index 0359380..2ccf7dd 100644
--- a/doc/ref/Makefile.am
+++ b/doc/ref/Makefile.am
@@ -67,7 +67,6 @@ guile_TEXINFOS = preface.texi                 \
                 api-deprecated.texi            \
                 scheme-using.texi              \
                 indices.texi                   \
-                script-getopt.texi             \
                 data-rep.texi                  \
                 repl-modules.texi              \
                 srfi-modules.texi              \
diff --git a/doc/ref/compiler.texi b/doc/ref/compiler.texi
index 86379c7..7f60ac6 100644
--- a/doc/ref/compiler.texi
+++ b/doc/ref/compiler.texi
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Guile Reference Manual.
address@hidden Copyright (C)  2008, 2009, 2010
address@hidden Copyright (C)  2008, 2009, 2010, 2011
 @c   Free Software Foundation, Inc.
 @c See the file guile.texi for copying conditions.
 
@@ -158,12 +158,11 @@ different worlds indefinitely, as shown by the following 
quine:
 @node The Scheme Compiler
 @subsection The Scheme Compiler
 
-The job of the Scheme compiler is to expand all macros and all of
-Scheme to its most primitive expressions. The definition of
-``primitive'' is given by the inventory of constructs provided by
-Tree-IL, the target language of the Scheme compiler: procedure
-applications, conditionals, lexical references, etc. This is described
-more fully in the next section.
+The job of the Scheme compiler is to expand all macros and all of Scheme
+to its most primitive expressions. The definition of ``primitive'' is
+given by the inventory of constructs provided by Tree-IL, the target
+language of the Scheme compiler: procedure calls, conditionals, lexical
+references, etc. This is described more fully in the next section.
 
 The tricky and amusing thing about the Scheme-to-Tree-IL compiler is
 that it is completely implemented by the macro expander. Since the
@@ -181,10 +180,10 @@ The Scheme-to-Tree-IL expander may be invoked using the 
generic
 @lisp
 (compile '(+ 1 2) #:from 'scheme #:to 'tree-il)
 @result{}
- #<<application> src: #f
-                 proc: #<<toplevel-ref> src: #f name: +>
-                 args: (#<<const> src: #f exp: 1>
-                        #<<const> src: #f exp: 2>)>
+ #<<call> src: #f
+          proc: #<<toplevel-ref> src: #f name: +>
+          args: (#<<const> src: #f exp: 1>
+                 #<<const> src: #f exp: 2>)>
 @end lisp
 
 Or, since Tree-IL is so close to Scheme, it is often useful to expand
@@ -339,9 +338,9 @@ instruction.
 
 Compilation of Tree-IL usually begins with a pass that resolves some
 @code{<module-ref>} and @code{<toplevel-ref>} expressions to
address@hidden<primitive-ref>} expressions. The actual compilation pass
-has special cases for applications of certain primitives, like
address@hidden or @code{cons}.
address@hidden<primitive-ref>} expressions. The actual compilation pass has
+special cases for calls to certain primitives, like @code{apply} or
address@hidden
 @end deftp
 @deftp {Scheme Variable} <lexical-ref> src name gensym
 @deftpx {External Representation} (lexical @var{name} @var{gensym})
@@ -385,10 +384,19 @@ Defines a new top-level variable in the current 
procedure's module.
 @deftpx {External Representation} (if @var{test} @var{then} @var{else})
 A conditional. Note that @var{else} is not optional.
 @end deftp
address@hidden {Scheme Variable} <application> src proc args
address@hidden {External Representation} (apply @var{proc} . @var{args})
address@hidden {Scheme Variable} <call> src proc args
address@hidden {External Representation} (call @var{proc} . @var{args})
 A procedure call.
 @end deftp
address@hidden {Scheme Variable} <primcall> src name args
address@hidden {External Representation} (primcall @var{name} . @var{args})
+A call to a primitive.  Equivalent to @code{(call (primitive @var{name})
+. @var{args})}.  This construct is often more convenient to generate and
+analyze than @code{<call>}.
+
+As part of the compilation process, instances of @code{(call (primitive
address@hidden) . @var{args})} are transformed into primcalls.
address@hidden deftp
 @deftp {Scheme Variable} <sequence> src exps
 @deftpx {External Representation} (begin . @var{exps})
 Like Scheme's @code{begin}.
@@ -506,7 +514,7 @@ Like Scheme's @code{receive} -- binds the values returned by
 evaluating @code{exp} to the @code{lambda}-like bindings described by
 @var{gensyms}. That is to say, @var{gensyms} may be an improper list.
 
address@hidden<let-values>} is an optimization of @code{<application>} of the
address@hidden<let-values>} is an optimization of a @code{<call>} to the
 primitive, @code{call-with-values}.
 @end deftp
 @deftp {Scheme Variable} <fix> src names gensyms vals body
diff --git a/doc/ref/mod-getopt-long.texi b/doc/ref/mod-getopt-long.texi
index 3d753df..1740215 100644
--- a/doc/ref/mod-getopt-long.texi
+++ b/doc/ref/mod-getopt-long.texi
@@ -13,8 +13,9 @@ The @code{(ice-9 getopt-long)} module exports two procedures:
 @itemize @bullet
 @item
 @code{getopt-long} takes a list of strings --- the command line
-arguments --- and an @dfn{option specification}.  It parses the command
-line arguments according to the option specification and returns a data
+arguments --- an @dfn{option specification}, and some optional keyword
+parameters.  It parses the command line arguments according to the
+option specification and keyword parameters, and returns a data
 structure that encapsulates the results of the parsing.
 
 @item
@@ -254,7 +255,7 @@ as ordinary argument strings.
 @node getopt-long Reference
 @subsection Reference Documentation for @code{getopt-long}
 
address@hidden {Scheme Procedure} getopt-long args grammar
address@hidden {Scheme Procedure} getopt-long args grammar 
[#:stop-at-first-non-option #t]
 Parse the command line given in @var{args} (which must be a list of
 strings) according to the option specification @var{grammar}.
 
@@ -290,6 +291,13 @@ value, and throw an exception if it returns @code{#f}.  
@var{func}
 should be a procedure which accepts a string and returns a boolean
 value; you may need to use quasiquotes to get it into @var{grammar}.
 @end table
+
+The @code{#:stop-at-first-non-option} keyword, if specified with any
+true value, tells @code{getopt-long} to stop when it gets to the first
+non-option in the command line.  That is, at the first word which is
+neither an option itself, nor the value of an option.  Everything in the
+command line from that word onwards will be returned as non-option
+arguments.
 @end deffn
 
 @code{getopt-long}'s @var{args} parameter is expected to be a list of
@@ -323,6 +331,18 @@ happen using the long option @address@hidden syntax).
 An option predicate fails.
 @end itemize
 
address@hidden:stop-at-first-non-option} is useful for command line invocations
+like @code{guile-tools [--help | --version] [script [script-options]]}
+and @code{cvs [general-options] command [command-options]}, where there
+are options at two levels: some generic and understood by the outer
+command, and some that are specific to the particular script or command
+being invoked.  To use @code{getopt-long} in such cases, you would call
+it twice: firstly with @code{#:stop-at-first-non-option #t}, so as to
+parse any generic options and identify the wanted script or sub-command;
+secondly, and after trimming off the initial generic command words, with
+a script- or sub-command-specific option grammar, so as to process those
+specific options.
+
 
 @node option-ref Reference
 @subsection Reference Documentation for @code{option-ref}
diff --git a/doc/ref/script-getopt.texi b/doc/ref/script-getopt.texi
deleted file mode 100644
index c7bb0d4..0000000
--- a/doc/ref/script-getopt.texi
+++ /dev/null
@@ -1,93 +0,0 @@
address@hidden -*-texinfo-*-
address@hidden This is part of the GNU Guile Reference Manual.
address@hidden Copyright (C)  1996, 1997, 2000, 2001, 2002, 2003, 2004
address@hidden   Free Software Foundation, Inc.
address@hidden See the file guile.texi for copying conditions.
-
address@hidden Command Line Handling
address@hidden Handling Command Line Options and Arguments
-
address@hidden This chapter was written and contributed by Martin Grabmueller.
-
-The ability to accept and handle command line arguments is very
-important when writing Guile scripts to solve particular problems, such
-as extracting information from text files or interfacing with existing
-command line applications.  This chapter describes how Guile makes
-command line arguments available to a Guile script, and the utilities
-that Guile provides to help with the processing of command line
-arguments.
-
-When a Guile script is invoked, Guile makes the command line arguments
-accessible via the procedure @code{command-line}, which returns the
-arguments as a list of strings.
-
-For example, if the script
-
address@hidden
-#! /usr/local/bin/guile -s
-!#
-(write (command-line))
-(newline)
address@hidden example
-
address@hidden
-is saved in a file @file{cmdline-test.scm} and invoked using the command
-line @code{./cmdline-test.scm bar.txt -o foo -frumple grob}, the output
-is
-
address@hidden
-("./cmdline-test.scm" "bar.txt" "-o" "foo" "-frumple" "grob")
address@hidden example
-
-If the script invocation includes a @code{-e} option, specifying a
-procedure to call after loading the script, Guile will call that
-procedure with @code{(command-line)} as its argument.  So a script that
-uses @code{-e} doesn't need to refer explicitly to @code{command-line}
-in its code.  For example, the script above would have identical
-behaviour if it was written instead like this:
-
address@hidden
-#! /usr/local/bin/guile \
--e main -s
-!#
-(define (main args)
-  (write args)
-  (newline))
address@hidden example
-
-(Note the use of the meta switch @code{\} so that the script invocation
-can include more than one Guile option: @xref{The Meta Switch}.)
-
-These scripts use the @code{#!} POSIX convention so that they can be
-executed using their own file names directly, as in the example command
-line @code{./cmdline-test.scm bar.txt -o foo -frumple grob}.  But they
-can also be executed by typing out the implied Guile command line in
-full, as in:
-
address@hidden
-$ guile -s ./cmdline-test.scm bar.txt -o foo -frumple grob
address@hidden example
-
address@hidden
-or
-
address@hidden
-$ guile -e main -s ./cmdline-test2.scm bar.txt -o foo -frumple grob
address@hidden example
-
-Even when a script is invoked using this longer form, the arguments that
-the script receives are the same as if it had been invoked using the
-short form.  Guile ensures that the @code{(command-line)} or @code{-e}
-arguments are independent of how the script is invoked, by stripping off
-the arguments that Guile itself processes.
-
-A script is free to parse and handle its command line arguments in any
-way that it chooses.  Where the set of possible options and arguments is
-complex, however, it can get tricky to extract all the options, check
-the validity of given arguments, and so on.  This task can be greatly
-simplified by taking advantage of the module @code{(ice-9 getopt-long)},
-which is distributed with Guile, @xref{getopt-long}.
-
address@hidden Local Variables:
address@hidden TeX-master: "guile.texi"
address@hidden End:
diff --git a/libguile/eval.c b/libguile/eval.c
index e008b3a..e1d0348 100644
--- a/libguile/eval.c
+++ b/libguile/eval.c
@@ -229,10 +229,9 @@ eval (SCM x, SCM env)
   mx = SCM_MEMOIZED_ARGS (x);
   switch (SCM_MEMOIZED_TAG (x))
     {
-    case SCM_M_BEGIN:
-      for (; !scm_is_null (CDR (mx)); mx = CDR (mx))
-        eval (CAR (mx), env);
-      x = CAR (mx);
+    case SCM_M_SEQ:
+      eval (CAR (mx), env);
+      x = CDR (mx);
       goto loop;
 
     case SCM_M_IF:
diff --git a/libguile/expand.c b/libguile/expand.c
index bdecd80..78dd4ca 100644
--- a/libguile/expand.c
+++ b/libguile/expand.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 
1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010
+/* Copyright (C) 
1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011
  * Free Software Foundation, Inc.
  * 
  * This library is free software; you can redistribute it and/or
@@ -71,10 +71,10 @@ static const char** exp_field_names[SCM_NUM_EXPANDED_TYPES];
   SCM_MAKE_EXPANDED_TOPLEVEL_DEFINE(src, name, exp)
 #define CONDITIONAL(src, test, consequent, alternate) \
   SCM_MAKE_EXPANDED_CONDITIONAL(src, test, consequent, alternate)
-#define APPLICATION(src, proc, exps) \
-  SCM_MAKE_EXPANDED_APPLICATION(src, proc, exps)
-#define SEQUENCE(src, exps) \
-  SCM_MAKE_EXPANDED_SEQUENCE(src, exps)
+#define CALL(src, proc, exps) \
+  SCM_MAKE_EXPANDED_CALL(src, proc, exps)
+#define SEQ(src, head, tail) \
+  SCM_MAKE_EXPANDED_SEQ(src, head, tail)
 #define LAMBDA(src, meta, body) \
   SCM_MAKE_EXPANDED_LAMBDA(src, meta, body)
 #define LAMBDA_CASE(src, req, opt, rest, kw, inits, gensyms, body, alternate) \
@@ -359,9 +359,9 @@ expand (SCM exp, SCM env)
                arg_exps = CDR (arg_exps))
             args = scm_cons (expand (CAR (arg_exps), env), args);
           if (scm_is_null (arg_exps))
-            return APPLICATION (scm_source_properties (exp),
-                                expand (proc, env),
-                                scm_reverse_x (args, SCM_UNDEFINED));
+            return CALL (scm_source_properties (exp),
+                         expand (proc, env),
+                         scm_reverse_x (args, SCM_UNDEFINED));
           else
             syntax_error ("expected a proper list", exp, SCM_UNDEFINED);
         }
@@ -396,7 +396,9 @@ expand_sequence (const SCM forms, const SCM env)
   if (scm_is_null (CDR (forms)))
     return expand (CAR (forms), env);
   else
-    return SEQUENCE (SCM_BOOL_F, expand_exprs (forms, env));
+    return SEQ (scm_source_properties (forms),
+                expand (CAR (forms), env),
+                expand_sequence (CDR (forms), env));
 }
 
 
@@ -487,10 +489,10 @@ expand_cond_clauses (SCM clause, SCM rest, int elp, int 
alp, SCM env)
                   scm_list_1 (expand (test, env)),
                   CONDITIONAL (SCM_BOOL_F,
                                LEXICAL_REF (SCM_BOOL_F, tmp, tmp),
-                               APPLICATION (SCM_BOOL_F,
-                                            expand (CADDR (clause), new_env),
-                                            scm_list_1 (LEXICAL_REF 
(SCM_BOOL_F,
-                                                                     tmp, 
tmp))),
+                               CALL (SCM_BOOL_F,
+                                     expand (CADDR (clause), new_env),
+                                     scm_list_1 (LEXICAL_REF (SCM_BOOL_F,
+                                                              tmp, tmp))),
                                rest));
     }
   /* FIXME length == 1 case */
@@ -993,9 +995,9 @@ expand_named_let (const SCM expr, SCM env)
                                       SCM_BOOL_F, SCM_BOOL_F, var_syms,
                                       expand_sequence (CDDDR (expr), 
inner_env),
                                       SCM_BOOL_F))),
-     APPLICATION (SCM_BOOL_F,
-                  LEXICAL_REF (SCM_BOOL_F, name, name_sym),
-                  expand_exprs (inits, env)));
+     CALL (SCM_BOOL_F,
+           LEXICAL_REF (SCM_BOOL_F, name, name_sym),
+           expand_exprs (inits, env)));
 }
 
 static SCM
@@ -1243,8 +1245,9 @@ scm_init_expand ()
   DEFINE_NAMES (TOPLEVEL_SET);
   DEFINE_NAMES (TOPLEVEL_DEFINE);
   DEFINE_NAMES (CONDITIONAL);
-  DEFINE_NAMES (APPLICATION);
-  DEFINE_NAMES (SEQUENCE);
+  DEFINE_NAMES (CALL);
+  DEFINE_NAMES (PRIMCALL);
+  DEFINE_NAMES (SEQ);
   DEFINE_NAMES (LAMBDA);
   DEFINE_NAMES (LAMBDA_CASE);
   DEFINE_NAMES (LET);
diff --git a/libguile/expand.h b/libguile/expand.h
index 02e6e17..f5e7af5 100644
--- a/libguile/expand.h
+++ b/libguile/expand.h
@@ -47,8 +47,9 @@ typedef enum
     SCM_EXPANDED_TOPLEVEL_SET,
     SCM_EXPANDED_TOPLEVEL_DEFINE,
     SCM_EXPANDED_CONDITIONAL,
-    SCM_EXPANDED_APPLICATION,
-    SCM_EXPANDED_SEQUENCE,
+    SCM_EXPANDED_CALL,
+    SCM_EXPANDED_PRIMCALL,
+    SCM_EXPANDED_SEQ,
     SCM_EXPANDED_LAMBDA,
     SCM_EXPANDED_LAMBDA_CASE,
     SCM_EXPANDED_LET,
@@ -228,30 +229,44 @@ enum
 #define SCM_MAKE_EXPANDED_CONDITIONAL(src, test, consequent, alternate) \
   scm_c_make_struct (exp_vtables[SCM_EXPANDED_CONDITIONAL], 0, 
SCM_NUM_EXPANDED_CONDITIONAL_FIELDS, SCM_UNPACK (src), SCM_UNPACK (test), 
SCM_UNPACK (consequent), SCM_UNPACK (alternate))
 
-#define SCM_EXPANDED_APPLICATION_TYPE_NAME "application"
-#define SCM_EXPANDED_APPLICATION_FIELD_NAMES    \
+#define SCM_EXPANDED_CALL_TYPE_NAME "call"
+#define SCM_EXPANDED_CALL_FIELD_NAMES    \
   { "src", "proc", "args", }
 enum
   {
-    SCM_EXPANDED_APPLICATION_SRC,
-    SCM_EXPANDED_APPLICATION_PROC,
-    SCM_EXPANDED_APPLICATION_ARGS,
-    SCM_NUM_EXPANDED_APPLICATION_FIELDS,
+    SCM_EXPANDED_CALL_SRC,
+    SCM_EXPANDED_CALL_PROC,
+    SCM_EXPANDED_CALL_ARGS,
+    SCM_NUM_EXPANDED_CALL_FIELDS,
   };
-#define SCM_MAKE_EXPANDED_APPLICATION(src, proc, args) \
-  scm_c_make_struct (exp_vtables[SCM_EXPANDED_APPLICATION], 0, 
SCM_NUM_EXPANDED_APPLICATION_FIELDS, SCM_UNPACK (src), SCM_UNPACK (proc), 
SCM_UNPACK (args))
+#define SCM_MAKE_EXPANDED_CALL(src, proc, args) \
+  scm_c_make_struct (exp_vtables[SCM_EXPANDED_CALL], 0, 
SCM_NUM_EXPANDED_CALL_FIELDS, SCM_UNPACK (src), SCM_UNPACK (proc), SCM_UNPACK 
(args))
 
-#define SCM_EXPANDED_SEQUENCE_TYPE_NAME "sequence"
-#define SCM_EXPANDED_SEQUENCE_FIELD_NAMES       \
-  {  "src", "exps", }
+#define SCM_EXPANDED_PRIMCALL_TYPE_NAME "primcall"
+#define SCM_EXPANDED_PRIMCALL_FIELD_NAMES    \
+  { "src", "name", "args", }
 enum
   {
-    SCM_EXPANDED_SEQUENCE_SRC,
-    SCM_EXPANDED_SEQUENCE_EXPS,
-    SCM_NUM_EXPANDED_SEQUENCE_FIELDS,
+    SCM_EXPANDED_PRIMCALL_SRC,
+    SCM_EXPANDED_PRIMCALL_NAME,
+    SCM_EXPANDED_PRIMCALL_ARGS,
+    SCM_NUM_EXPANDED_PRIMCALL_FIELDS,
   };
-#define SCM_MAKE_EXPANDED_SEQUENCE(src, exps) \
-  scm_c_make_struct (exp_vtables[SCM_EXPANDED_SEQUENCE], 0, 
SCM_NUM_EXPANDED_SEQUENCE_FIELDS, SCM_UNPACK (src), SCM_UNPACK (exps))
+#define SCM_MAKE_EXPANDED_PRIMCALL(src, name, args) \
+  scm_c_make_struct (exp_vtables[SCM_EXPANDED_PRIMCALL], 0, 
SCM_NUM_EXPANDED_PRIMCALL_FIELDS, SCM_UNPACK (src), SCM_UNPACK (name), 
SCM_UNPACK (args))
+
+#define SCM_EXPANDED_SEQ_TYPE_NAME "seq"
+#define SCM_EXPANDED_SEQ_FIELD_NAMES       \
+  {  "src", "head", "tail", }
+enum
+  {
+    SCM_EXPANDED_SEQ_SRC,
+    SCM_EXPANDED_SEQ_HEAD,
+    SCM_EXPANDED_SEQ_TAIL,
+    SCM_NUM_EXPANDED_SEQ_FIELDS,
+  };
+#define SCM_MAKE_EXPANDED_SEQ(src, head, tail)                          \
+  scm_c_make_struct (exp_vtables[SCM_EXPANDED_SEQ], 0, 
SCM_NUM_EXPANDED_SEQ_FIELDS, SCM_UNPACK (src), SCM_UNPACK (head), SCM_UNPACK 
(tail))
 
 #define SCM_EXPANDED_LAMBDA_TYPE_NAME "lambda"
 #define SCM_EXPANDED_LAMBDA_FIELD_NAMES         \
diff --git a/libguile/hashtab.c b/libguile/hashtab.c
index d707993..440738c 100644
--- a/libguile/hashtab.c
+++ b/libguile/hashtab.c
@@ -1377,40 +1377,20 @@ scm_internal_hash_fold (scm_t_hash_fold_fn fn, void 
*closure,
   n = SCM_SIMPLE_VECTOR_LENGTH (buckets);
   for (i = 0; i < n; ++i)
     {
-      SCM prev, ls;
+      SCM ls, handle;
 
-      for (prev = SCM_BOOL_F, ls = SCM_SIMPLE_VECTOR_REF (buckets, i);
-          !scm_is_null (ls);
-          prev = ls, ls = SCM_CDR (ls))
+      for (ls = SCM_SIMPLE_VECTOR_REF (buckets, i); !scm_is_null (ls);
+          ls = SCM_CDR (ls))
        {
-         SCM handle;
-
-         if (!scm_is_pair (ls))
-           SCM_WRONG_TYPE_ARG (SCM_ARG3, buckets);
-
          handle = SCM_CAR (ls);
-         if (!scm_is_pair (handle))
-           SCM_WRONG_TYPE_ARG (SCM_ARG3, buckets);
 
-         if (SCM_HASHTABLE_WEAK_P (table))
-           {
-             if (SCM_WEAK_PAIR_DELETED_P (handle))
-               {
-                 /* We hit a weak pair whose car/cdr has become
-                    unreachable: unlink it from the bucket.  */
-                 if (scm_is_true (prev))
-                   SCM_SETCDR (prev, SCM_CDR (ls));
-                 else
-                   SCM_SIMPLE_VECTOR_SET (buckets, i, SCM_CDR (ls));
-
-                  /* Update the item count.  */
-                  SCM_HASHTABLE_DECREMENT (table);
-
-                 continue;
-               }
-           }
-
-         result = fn (closure, SCM_CAR (handle), SCM_CDR (handle), result);
+         if (SCM_HASHTABLE_WEAK_P (table) && SCM_WEAK_PAIR_DELETED_P (handle))
+            /* Don't try to unlink this weak pair, as we're not within
+               the allocation lock.  Instead rely on
+               vacuum_weak_hash_table to do its job.  */
+            continue;
+          else
+            result = fn (closure, SCM_CAR (handle), SCM_CDR (handle), result);
        }
     }
 
diff --git a/libguile/memoize.c b/libguile/memoize.c
index 0b1aa51..801088c 100644
--- a/libguile/memoize.c
+++ b/libguile/memoize.c
@@ -67,8 +67,8 @@ scm_t_bits scm_tc16_memoized;
 #define MAKMEMO(n, args)                                                \
   (scm_cell (scm_tc16_memoized | ((n) << 16), SCM_UNPACK (args)))
 
-#define MAKMEMO_BEGIN(exps) \
-  MAKMEMO (SCM_M_BEGIN, exps)
+#define MAKMEMO_SEQ(head,tail) \
+  MAKMEMO (SCM_M_SEQ, scm_cons (head, tail))
 #define MAKMEMO_IF(test, then, else_) \
   MAKMEMO (SCM_M_IF, scm_cons (test, scm_cons (then, else_)))
 #define FIXED_ARITY(nreq) \
@@ -124,7 +124,7 @@ scm_t_bits scm_tc16_memoizer;
 /* This table must agree with the list of M_ constants in memoize.h */
 static const char *const memoized_tags[] =
 {
-  "begin",
+  "seq",
   "if",
   "lambda",
   "let",
@@ -241,12 +241,12 @@ memoize (SCM exp, SCM env)
                          memoize (REF (exp, CONDITIONAL, CONSEQUENT), env),
                          memoize (REF (exp, CONDITIONAL, ALTERNATE), env));
 
-    case SCM_EXPANDED_APPLICATION:
+    case SCM_EXPANDED_CALL:
       {
         SCM proc, args;
 
-        proc = REF (exp, APPLICATION, PROC);
-        args = memoize_exps (REF (exp, APPLICATION, ARGS), env);
+        proc = REF (exp, CALL, PROC);
+        args = memoize_exps (REF (exp, CALL, ARGS), env);
 
         if (SCM_EXPANDED_TYPE (proc) == SCM_EXPANDED_TOPLEVEL_REF)
           {
@@ -263,8 +263,23 @@ memoize (SCM exp, SCM env)
         return MAKMEMO_CALL (memoize (proc, env), scm_ilength (args), args);
       }
 
-    case SCM_EXPANDED_SEQUENCE:
-      return MAKMEMO_BEGIN (memoize_exps (REF (exp, SEQUENCE, EXPS), env));
+    case SCM_EXPANDED_PRIMCALL:
+      {
+        SCM proc, args;
+
+        if (scm_is_eq (scm_current_module (), scm_the_root_module ()))
+          proc = MAKMEMO_TOP_REF (REF (exp, PRIMCALL, NAME));
+        else
+          proc = MAKMEMO_MOD_REF (list_of_guile, REF (exp, PRIMCALL, NAME),
+                                  SCM_BOOL_F);
+        args = memoize_exps (REF (exp, PRIMCALL, ARGS), env);
+
+        return MAKMEMO_CALL (proc, scm_ilength (args), args);
+      }
+
+    case SCM_EXPANDED_SEQ:
+      return MAKMEMO_SEQ (memoize (REF (exp, SEQ, HEAD), env),
+                          memoize (REF (exp, SEQ, TAIL), env));
 
     case SCM_EXPANDED_LAMBDA:
       /* The body will be a lambda-case. */
@@ -394,18 +409,21 @@ memoize (SCM exp, SCM env)
 
         if (in_order_p)
           {
-            SCM body_exps = SCM_EOL;
+            SCM body_exps = SCM_EOL, seq;
             for (; scm_is_pair (exps); exps = CDR (exps), i--)
               body_exps = scm_cons (MAKMEMO_LEX_SET (i-1,
                                                      memoize (CAR (exps), 
new_env)),
                                     body_exps);
-            body_exps = scm_cons (memoize (body, new_env), body_exps);
-            body_exps = scm_reverse_x (body_exps, SCM_UNDEFINED);
-            return MAKMEMO_LET (undefs, MAKMEMO_BEGIN (body_exps));
+
+            seq = memoize (body, new_env);
+            for (; scm_is_pair (body_exps); body_exps = CDR (body_exps))
+              seq = MAKMEMO_SEQ (CAR (body_exps), seq);
+
+            return MAKMEMO_LET (undefs, seq);
           }
         else
           {
-            SCM sets = SCM_EOL, inits = SCM_EOL;
+            SCM sets = SCM_EOL, inits = SCM_EOL, set_seq;
             for (; scm_is_pair (exps); exps = CDR (exps), i--)
               {
                 sets = scm_cons (MAKMEMO_LEX_SET ((i-1) + nvars,
@@ -414,10 +432,18 @@ memoize (SCM exp, SCM env)
                 inits = scm_cons (memoize (CAR (exps), new_env), inits);
               }
             inits = scm_reverse_x (inits, SCM_UNDEFINED);
-            return MAKMEMO_LET
-              (undefs,
-               MAKMEMO_BEGIN (scm_list_2 (MAKMEMO_LET (inits, MAKMEMO_BEGIN 
(sets)),
-                                          memoize (body, new_env))));
+
+            sets = scm_reverse_x (sets, SCM_UNDEFINED);
+            if (scm_is_null (sets))
+              return memoize (body, env);
+
+            for (set_seq = CAR (sets), sets = CDR (sets); scm_is_pair (sets);
+                 sets = CDR (sets))
+              set_seq = MAKMEMO_SEQ (CAR (sets), set_seq);
+            
+            return MAKMEMO_LET (undefs,
+                                MAKMEMO_SEQ (MAKMEMO_LET (inits, set_seq),
+                                             memoize (body, new_env)));
           }
       }
 
@@ -608,8 +634,9 @@ unmemoize (const SCM expr)
     {
     case SCM_M_APPLY:
       return scm_cons (scm_sym_atapply, unmemoize_exprs (args));
-    case SCM_M_BEGIN:
-      return scm_cons (scm_sym_begin, unmemoize_exprs (args));
+    case SCM_M_SEQ:
+      return scm_list_3 (scm_sym_begin, unmemoize (CAR (args)),
+                         unmemoize (CDR (args)));
     case SCM_M_CALL:
       return scm_cons (unmemoize (CAR (args)), unmemoize_exprs (CDDR (args)));
     case SCM_M_CONT:
diff --git a/libguile/memoize.h b/libguile/memoize.h
index 26bd5b1..da78b06 100644
--- a/libguile/memoize.h
+++ b/libguile/memoize.h
@@ -3,7 +3,7 @@
 #ifndef SCM_MEMOIZE_H
 #define SCM_MEMOIZE_H
 
-/* Copyright (C) 1995,1996,1998,1999,2000,2001,2002,2004,2008,2009,2010
+/* Copyright (C) 1995,1996,1998,1999,2000,2001,2002,2004,2008,2009,2010,2011
  * Free Software Foundation, Inc.
  *
  * This library is free software; you can redistribute it and/or
@@ -72,7 +72,7 @@ SCM_INTERNAL scm_t_bits scm_tc16_memoized;
 
 enum
   {
-    SCM_M_BEGIN,
+    SCM_M_SEQ,
     SCM_M_IF,
     SCM_M_LAMBDA,
     SCM_M_LET,
diff --git a/libguile/r6rs-ports.c b/libguile/r6rs-ports.c
index 308f17a..bf146ef 100644
--- a/libguile/r6rs-ports.c
+++ b/libguile/r6rs-ports.c
@@ -1179,12 +1179,21 @@ tp_flush (SCM port)
   scm_t_port *c_port = SCM_PTAB_ENTRY (port);
   size_t count = c_port->write_pos - c_port->write_buf;
 
-  scm_c_write (binary_port, c_port->write_buf, count);
+  /* As the runtime will try to flush all ports upon exit, we test for
+     the underlying port still being open here. Otherwise, when you
+     would explicitly close the underlying port and the transcoded port
+     still had data outstanding, you'd get an exception on Guile exit.
+     
+     We just throw away the data when the underlying port is closed.  */
+  
+  if (SCM_OPOUTPORTP (binary_port))
+      scm_c_write (binary_port, c_port->write_buf, count);
 
   c_port->write_pos = c_port->write_buf;
   c_port->rw_active = SCM_PORT_NEITHER;
 
-  scm_force_output (binary_port);
+  if (SCM_OPOUTPORTP (binary_port))
+    scm_force_output (binary_port);
 }
 
 static int
diff --git a/meta/guile-tools.in b/meta/guile-tools.in
index 7f156ff..2f335b8 100755
--- a/meta/guile-tools.in
+++ b/meta/guile-tools.in
@@ -24,7 +24,7 @@ exec guile $GUILE_FLAGS -e '(@@ (guile-tools) main)' -s "$0" 
"$@"
 ;;;; Boston, MA 02110-1301 USA
 
 (define-module (guile-tools)
-  #:use-module ((srfi srfi-1) #:select (fold append-map))
+  #:use-module (ice-9 getopt-long)
   #:autoload (ice-9 format) (format))
 
 ;; Hack to provide scripts with the bug-report address.
@@ -55,146 +55,34 @@ This is free software: you are free to change and 
redistribute it.
 There is NO WARRANTY, to the extent permitted by law.
 " (version) (effective-version)))
 
-(define (directory-files dir)
-  (if (and (file-exists? dir) (file-is-directory? dir))
-      (let ((dir-stream (opendir dir)))
-        (let loop ((new (readdir dir-stream))
-                   (acc '()))
-          (if (eof-object? new)
-              (begin
-                (closedir dir-stream)
-                acc)
-              (loop (readdir dir-stream)
-                    (if (or (string=? "."  new)             ; ignore
-                            (string=? ".." new))            ; ignore
-                        acc
-                        (cons new acc))))))
-      '()))
-
-(define (strip-extensions path)
-  (or-map (lambda (ext)
-            (and
-             (string-suffix? ext path)
-             (substring path 0
-                        (- (string-length path) (string-length ext)))))
-          (append %load-compiled-extensions %load-extensions)))
-
-(define (unique l)
-  (cond ((null? l) l)
-        ((null? (cdr l)) l)
-        ((equal? (car l) (cadr l)) (unique (cdr l)))
-        (else (cons (car l) (unique (cdr l))))))
-
-(define (find-submodules head)
-  (let ((shead (map symbol->string head)))
-    (unique
-     (sort
-      (append-map (lambda (path)
-                    (fold (lambda (x rest)
-                            (let ((stripped (strip-extensions x)))
-                              (if stripped (cons stripped rest) rest)))
-                          '()
-                          (directory-files
-                           (fold (lambda (x y) (in-vicinity y x)) path 
shead))))
-                  %load-path)
-      string<?))))
-
-(define (list-scripts)
-  (for-each (lambda (x)
-              ;; would be nice to show a summary.
-              (format #t "~A\n" x))
-            (find-submodules '(scripts))))
-
 (define (find-script s)
   (resolve-module (list 'scripts (string->symbol s)) #:ensure #f))
 
-(define (getopt args grammar)
-  (define (fail)
-    (format (current-error-port)
-            "Try `guile-tools --help' for more information.~%")
-    (exit 1))
-
-  (define (unrecognized-arg arg)
-    (format (current-error-port)
-            "guile-tools: unrecognized option: `~a'~%" arg)
-    (fail))
-
-  (define (unexpected-value sym val)
-    (format (current-error-port)
-            "guile-tools: option `--~a' does not take an argument (given ~s)~%"
-            sym val)
-    (fail))
-
-  (define (single-char-table grammar)
-    (cond
-     ((null? grammar) '())
-     ((assq 'single-char (cdar grammar))
-      => (lambda (form)
-           (acons (cadr form) (car grammar)
-                  (single-char-table (cdr grammar)))))
-     (else
-      (single-char-table (cdr grammar)))))
-  
-  (let ((single (single-char-table grammar)))
-    (let lp ((args (cdr args)) (options '()))
-      (cond
-       ((or (null? args) (equal? (car args) "-"))
-        (values (reverse options) args))
-       ((equal? (car args) "--")
-        (values (reverse options) (cdr args)))
-       ((string-prefix? "--" (car args))
-        (let* ((str (car args))
-               (eq (string-index str #\= 2))
-               (sym (string->symbol
-                     (substring str 2 (or eq (string-length str)))))
-               (val (and eq (substring str (1+ eq))))
-               (spec (assq sym grammar)))
-          (cond
-           ((not spec)
-            (unrecognized-arg (substring str 0 (or eq (string-length str)))))
-           (val
-            ;; no values for now
-            (unexpected-value sym val))
-           ((assq-ref (cdr spec) 'value)
-            (error "options with values not supported right now"))
-           (else
-            (lp (cdr args) (acons sym #f options))))))
-       ((string-prefix? "-" (car args))
-        (let lp* ((chars (cdr (string->list (car args)))) (options options))
-          (if (null? chars)
-              (lp (cdr args) options)
-              (let ((spec (assv-ref single (car chars))))
-                (cond
-                 ((not spec)
-                  (unrecognized-arg (string #\- (car chars))))
-                 ((assq-ref (cdr spec) 'value)
-                  (error "options with values not supported right now"))
-                 (else
-                  (lp* (cdr chars) (acons (car spec) #f options))))))))
-       (else (values (reverse options) args))))))
-
 (define (main args)
   (if (defined? 'setlocale)
       (setlocale LC_ALL ""))
 
-  (call-with-values (lambda () (getopt args *option-grammar*))
-    (lambda (options args)
-      (cond
-       ((assq 'help options)
-        (display-help)
-        (exit 0))
-       ((assq 'version options)
-        (display-version)
-        (exit 0))
-       ((or (equal? args '())
-            (equal? args '("list")))
-        (list-scripts))
-       ((find-script (car args))
-        => (lambda (mod)
-             (exit (apply (module-ref mod 'main) (cdr args)))))
-       (else
-        (format (current-error-port)
-                "guile-tools: unknown script ~s~%" (car args))
-        (format (current-error-port)
-                "Try `guile-tools --help' for more information.~%")
-        (exit 1))))))
+  (let ((options (getopt-long args *option-grammar*
+                              #:stop-at-first-non-option #t)))
+    (cond
+     ((option-ref options 'help #f)
+      (display-help)
+      (exit 0))
+     ((option-ref options 'version #f)
+      (display-version)
+      (exit 0))
+     (else
+      (let ((args (option-ref options '() '())))
+        (cond ((find-script (if (null? args)
+                                "list"
+                                (car args)))
+               => (lambda (mod)
+                    (exit (apply (module-ref mod 'main) (if (null? args)
+                                                            '()
+                                                            (cdr args))))))
+              (else
+               (format (current-error-port)
+                       "guile-tools: unknown script ~s~%" (car args))
+               (format (current-error-port)
+                       "Try `guile-tools --help' for more information.~%")
+               (exit 1))))))))
diff --git a/module/Makefile.am b/module/Makefile.am
index 42aff18..ddd4674 100644
--- a/module/Makefile.am
+++ b/module/Makefile.am
@@ -155,6 +155,7 @@ SCRIPTS_SOURCES =                           \
   scripts/frisk.scm                            \
   scripts/generate-autoload.scm                        \
   scripts/lint.scm                             \
+  scripts/list.scm                             \
   scripts/punify.scm                           \
   scripts/read-scheme-source.scm               \
   scripts/read-text-outline.scm                        \
diff --git a/module/ice-9/boot-9.scm b/module/ice-9/boot-9.scm
index 0493de5..7c9e3c5 100644
--- a/module/ice-9/boot-9.scm
+++ b/module/ice-9/boot-9.scm
@@ -682,7 +682,7 @@ If there is no handler at all, Guile prints an error and 
then exits."
           (let ((filename (or (cadr source) "<unnamed port>"))
                 (line (caddr source))
                 (col (cdddr source)))
-            (format port "~a:~a:~a: " filename line col))
+            (format port "~a:~a:~a: " filename (1+ line) col))
           (format port "ERROR: "))))
 
   (set! set-exception-printer!
diff --git a/module/ice-9/eval.scm b/module/ice-9/eval.scm
index 30a373a..e938061 100644
--- a/module/ice-9/eval.scm
+++ b/module/ice-9/eval.scm
@@ -1,6 +1,6 @@
 ;;; -*- mode: scheme; coding: utf-8; -*-
 
-;;;; Copyright (C) 2009, 2010
+;;;; Copyright (C) 2009, 2010, 2011
 ;;;; Free Software Foundation, Inc.
 ;;;;
 ;;;; This library is free software; you can redistribute it and/or
@@ -381,14 +381,11 @@
                                        0 #f '() #f)
                  (apply make-general-closure (capture-env env) body nreq 
tail))))
 
-        (('begin (first . rest))
-         (let lp ((first first) (rest rest))
-           (if (null? rest)
-               (eval first env)
-               (begin
-                 (eval first env)
-                 (lp (car rest) (cdr rest))))))
-      
+        (('seq (head . tail))
+         (begin
+           (eval head env)
+           (eval tail env)))
+        
         (('lexical-set! (n . x))
          (let ((val (eval x env)))
            (list-set! env n val)))
diff --git a/module/ice-9/getopt-long.scm b/module/ice-9/getopt-long.scm
index 1b170b4..12f8c94 100644
--- a/module/ice-9/getopt-long.scm
+++ b/module/ice-9/getopt-long.scm
@@ -161,6 +161,7 @@
   #:use-module (srfi srfi-9)
   #:use-module (ice-9 match)
   #:use-module (ice-9 regex)
+  #:use-module (ice-9 optargs)
   #:export (getopt-long option-ref))
 
 (define %program-name (make-fluid))
@@ -179,8 +180,6 @@
   option-spec?
   (name
    option-spec->name set-option-spec-name!)
-  (value 
-   option-spec->value set-option-spec-value!)
   (required?
    option-spec->required? set-option-spec-required?!)
   (option-spec->single-char
@@ -228,33 +227,12 @@
 (define long-opt-no-value-rx   (make-regexp "^--([^=]+)$"))
 (define long-opt-with-value-rx (make-regexp "^--([^=]+)=(.*)"))
 
-(define (expand-clumped-singles opt-ls)
-  ;; example: ("--xyz" "-abc5d") => ("--xyz" "-a" "-b" "-c" "5d")
-  (let loop ((opt-ls opt-ls) (ret-ls '()))
-    (cond ((null? opt-ls)
-           (reverse ret-ls))                                    ;;; retval
-          ((regexp-exec short-opt-rx (car opt-ls))
-           => (lambda (match)
-                (let ((singles (reverse
-                                (map (lambda (c)
-                                       (string-append "-" (make-string 1 c)))
-                                     (string->list
-                                      (match:substring match 1)))))
-                      (extra (match:substring match 2)))
-                  (loop (cdr opt-ls)
-                        (append (if (string=? "" extra)
-                                    singles
-                                    (cons extra singles))
-                                ret-ls)))))
-          (else (loop (cdr opt-ls)
-                      (cons (car opt-ls) ret-ls))))))
-
 (define (looks-like-an-option string)
   (or (regexp-exec short-opt-rx string)
       (regexp-exec long-opt-with-value-rx string)
       (regexp-exec long-opt-no-value-rx string)))
 
-(define (process-options specs argument-ls)
+(define (process-options specs argument-ls stop-at-first-non-option)
   ;; Use SPECS to scan ARGUMENT-LS; return (FOUND . ETC).
   ;; FOUND is an unordered list of option specs for found options, while ETC
   ;; is an order-maintained list of elements in ARGUMENT-LS that are neither
@@ -266,32 +244,22 @@
                        (cons (make-string 1 (option-spec->single-char spec))
                              spec))
                      (remove-if-not option-spec->single-char specs))))
-    (let loop ((argument-ls argument-ls) (found '()) (etc '()))
+    (let loop ((unclumped 0) (argument-ls argument-ls) (found '()) (etc '()))
       (define (eat! spec ls)
-        (define (val!loop val n-ls n-found n-etc)
-          (set-option-spec-value!
-           spec
-           ;; handle multiple occurrances
-           (cond ((option-spec->value spec)
-                  => (lambda (cur)
-                       ((if (list? cur) cons list)
-                        val cur)))
-                 (else val)))
-          (loop n-ls n-found n-etc))
         (cond
          ((eq? 'optional (option-spec->value-policy spec))
           (if (or (null? ls)
                   (looks-like-an-option (car ls)))
-              (val!loop #t ls (cons spec found) etc)
-              (val!loop (car ls) (cdr ls) (cons spec found) etc)))
+              (loop (- unclumped 1) ls (acons spec #t found) etc)
+              (loop (- unclumped 2) (cdr ls) (acons spec (car ls) found) etc)))
          ((eq? #t (option-spec->value-policy spec))
           (if (or (null? ls)
                   (looks-like-an-option (car ls)))
               (fatal-error "option must be specified with argument: --~a"
                            (option-spec->name spec))
-              (val!loop (car ls) (cdr ls) (cons spec found) etc)))
+              (loop (- unclumped 2) (cdr ls) (acons spec (car ls) found) etc)))
          (else
-          (val!loop #t ls (cons spec found) etc))))
+          (loop (- unclumped 1) ls (acons spec #t found) etc))))
       
       (match argument-ls
         (()
@@ -300,10 +268,24 @@
          (cond
           ((regexp-exec short-opt-rx opt)
            => (lambda (match)
-                (let* ((c (match:substring match 1))
-                       (spec (or (assoc-ref sc-idx c)
-                                 (fatal-error "no such option: -~a" c))))
-                  (eat! spec rest))))
+                (if (> unclumped 0)
+                    ;; Next option is known not to be clumped.
+                    (let* ((c (match:substring match 1))
+                           (spec (or (assoc-ref sc-idx c)
+                                     (fatal-error "no such option: -~a" c))))
+                      (eat! spec rest))
+                    ;; Expand a clumped group of short options.
+                    (let* ((extra (match:substring match 2))
+                           (unclumped-opts
+                            (append (map (lambda (c)
+                                           (string-append "-" (make-string 1 
c)))
+                                         (string->list
+                                          (match:substring match 1)))
+                                    (if (string=? "" extra) '() (list 
extra)))))
+                      (loop (length unclumped-opts)
+                            (append unclumped-opts rest)
+                            found
+                            etc)))))
           ((regexp-exec long-opt-no-value-rx opt)
            => (lambda (match)
                 (let* ((opt (match:substring match 1))
@@ -319,10 +301,14 @@
                       (eat! spec (cons (match:substring match 2) rest))
                       (fatal-error "option does not support argument: --~a"
                                    opt)))))
+          ((and stop-at-first-non-option
+                (<= unclumped 0))
+           (cons found (append (reverse etc) argument-ls)))
           (else
-           (loop rest found (cons opt etc)))))))))
+           (loop (- unclumped 1) rest found (cons opt etc)))))))))
 
-(define (getopt-long program-arguments option-desc-list)
+(define* (getopt-long program-arguments option-desc-list
+                      #:key stop-at-first-non-option)
   "Process options, handling both long and short options, similar to
 the glibc function 'getopt_long'.  PROGRAM-ARGUMENTS should be a value
 similar to what (program-arguments) returns.  OPTION-DESC-LIST is a
@@ -356,44 +342,27 @@ to add a `single-char' clause to the option description."
   (with-fluids ((%program-name (car program-arguments)))
     (let* ((specifications (map parse-option-spec option-desc-list))
            (pair (split-arg-list (cdr program-arguments)))
-           (split-ls (expand-clumped-singles (car pair)))
+           (split-ls (car pair))
            (non-split-ls (cdr pair))
-           (found/etc (process-options specifications split-ls))
+           (found/etc (process-options specifications split-ls
+                                       stop-at-first-non-option))
            (found (car found/etc))
            (rest-ls (append (cdr found/etc) non-split-ls)))
       (for-each (lambda (spec)
                   (let ((name (option-spec->name spec))
-                        (val (option-spec->value spec)))
+                        (val (assq-ref found spec)))
                     (and (option-spec->required? spec)
-                         (or (memq spec found)
+                         (or val
                              (fatal-error "option must be specified: --~a"
                                           name)))
-                    (and (memq spec found)
-                         (eq? #t (option-spec->value-policy spec))
-                         (or val
-                             (fatal-error
-                              "option must be specified with argument: --~a"
-                              name)))
                     (let ((pred (option-spec->predicate spec)))
                       (and pred (pred name val)))))
                 specifications)
-      (cons (cons '() rest-ls)
-            (let ((multi-count (map (lambda (desc)
-                                      (cons (car desc) 0))
-                                    option-desc-list)))
-              (map (lambda (spec)
-                     (let ((name (string->symbol (option-spec->name spec))))
-                       (cons name
-                             ;; handle multiple occurrances
-                             (let ((maybe-ls (option-spec->value spec)))
-                               (if (list? maybe-ls)
-                                   (let* ((look (assq name multi-count))
-                                          (idx (cdr look))
-                                          (val (list-ref maybe-ls idx)))
-                                     (set-cdr! look (1+ idx)) ; ugh!
-                                     val)
-                                   maybe-ls)))))
-                   found))))))
+      (for-each (lambda (spec+val)
+                  (set-car! spec+val
+                            (string->symbol (option-spec->name (car 
spec+val)))))
+                found)
+      (cons (cons '() rest-ls) found))))
 
 (define (option-ref options key default)
   "Return value in alist OPTIONS using KEY, a symbol; or DEFAULT if not found.
diff --git a/module/ice-9/psyntax-pp.scm b/module/ice-9/psyntax-pp.scm
index 2a444a0..9270a69 100644
--- a/module/ice-9/psyntax-pp.scm
+++ b/module/ice-9/psyntax-pp.scm
@@ -3,1520 +3,1525 @@
 
 (letrec*
   ((#{make-void 203}#
-     (lambda (#{src 761}#)
+     (lambda (#{src 765}#)
        (make-struct/no-tail
          (vector-ref %expanded-vtables 0)
-         #{src 761}#)))
+         #{src 765}#)))
    (#{make-const 205}#
-     (lambda (#{src 763}# #{exp 764}#)
+     (lambda (#{src 767}# #{exp 768}#)
        (make-struct/no-tail
          (vector-ref %expanded-vtables 1)
-         #{src 763}#
-         #{exp 764}#)))
+         #{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 771}# #{name 772}# #{gensym 773}#)
+     (lambda (#{src 775}# #{name 776}# #{gensym 777}#)
        (make-struct/no-tail
          (vector-ref %expanded-vtables 3)
-         #{src 771}#
-         #{name 772}#
-         #{gensym 773}#)))
+         #{src 775}#
+         #{name 776}#
+         #{gensym 777}#)))
    (#{make-lexical-set 211}#
-     (lambda (#{src 777}#
-              #{name 778}#
-              #{gensym 779}#
-              #{exp 780}#)
+     (lambda (#{src 781}#
+              #{name 782}#
+              #{gensym 783}#
+              #{exp 784}#)
        (make-struct/no-tail
          (vector-ref %expanded-vtables 4)
-         #{src 777}#
-         #{name 778}#
-         #{gensym 779}#
-         #{exp 780}#)))
+         #{src 781}#
+         #{name 782}#
+         #{gensym 783}#
+         #{exp 784}#)))
    (#{make-module-ref 213}#
-     (lambda (#{src 785}#
-              #{mod 786}#
-              #{name 787}#
-              #{public? 788}#)
+     (lambda (#{src 789}#
+              #{mod 790}#
+              #{name 791}#
+              #{public? 792}#)
        (make-struct/no-tail
          (vector-ref %expanded-vtables 5)
-         #{src 785}#
-         #{mod 786}#
-         #{name 787}#
-         #{public? 788}#)))
+         #{src 789}#
+         #{mod 790}#
+         #{name 791}#
+         #{public? 792}#)))
    (#{make-module-set 215}#
-     (lambda (#{src 793}#
-              #{mod 794}#
-              #{name 795}#
-              #{public? 796}#
-              #{exp 797}#)
+     (lambda (#{src 797}#
+              #{mod 798}#
+              #{name 799}#
+              #{public? 800}#
+              #{exp 801}#)
        (make-struct/no-tail
          (vector-ref %expanded-vtables 6)
-         #{src 793}#
-         #{mod 794}#
-         #{name 795}#
-         #{public? 796}#
-         #{exp 797}#)))
+         #{src 797}#
+         #{mod 798}#
+         #{name 799}#
+         #{public? 800}#
+         #{exp 801}#)))
    (#{make-toplevel-ref 217}#
-     (lambda (#{src 803}# #{name 804}#)
+     (lambda (#{src 807}# #{name 808}#)
        (make-struct/no-tail
          (vector-ref %expanded-vtables 7)
-         #{src 803}#
-         #{name 804}#)))
+         #{src 807}#
+         #{name 808}#)))
    (#{make-toplevel-set 219}#
-     (lambda (#{src 807}# #{name 808}# #{exp 809}#)
+     (lambda (#{src 811}# #{name 812}# #{exp 813}#)
        (make-struct/no-tail
          (vector-ref %expanded-vtables 8)
-         #{src 807}#
-         #{name 808}#
-         #{exp 809}#)))
+         #{src 811}#
+         #{name 812}#
+         #{exp 813}#)))
    (#{make-toplevel-define 221}#
-     (lambda (#{src 813}# #{name 814}# #{exp 815}#)
+     (lambda (#{src 817}# #{name 818}# #{exp 819}#)
        (make-struct/no-tail
          (vector-ref %expanded-vtables 9)
-         #{src 813}#
-         #{name 814}#
-         #{exp 815}#)))
+         #{src 817}#
+         #{name 818}#
+         #{exp 819}#)))
    (#{make-conditional 223}#
-     (lambda (#{src 819}#
-              #{test 820}#
-              #{consequent 821}#
-              #{alternate 822}#)
+     (lambda (#{src 823}#
+              #{test 824}#
+              #{consequent 825}#
+              #{alternate 826}#)
        (make-struct/no-tail
          (vector-ref %expanded-vtables 10)
-         #{src 819}#
-         #{test 820}#
-         #{consequent 821}#
-         #{alternate 822}#)))
-   (#{make-application 225}#
-     (lambda (#{src 827}# #{proc 828}# #{args 829}#)
+         #{src 823}#
+         #{test 824}#
+         #{consequent 825}#
+         #{alternate 826}#)))
+   (#{make-call 225}#
+     (lambda (#{src 831}# #{proc 832}# #{args 833}#)
        (make-struct/no-tail
          (vector-ref %expanded-vtables 11)
-         #{src 827}#
-         #{proc 828}#
-         #{args 829}#)))
-   (#{make-sequence 227}#
-     (lambda (#{src 833}# #{exps 834}#)
+         #{src 831}#
+         #{proc 832}#
+         #{args 833}#)))
+   (#{make-primcall 227}#
+     (lambda (#{src 837}# #{name 838}# #{args 839}#)
        (make-struct/no-tail
          (vector-ref %expanded-vtables 12)
-         #{src 833}#
-         #{exps 834}#)))
-   (#{make-lambda 229}#
-     (lambda (#{src 837}# #{meta 838}# #{body 839}#)
+         #{src 837}#
+         #{name 838}#
+         #{args 839}#)))
+   (#{make-sequence 229}#
+     (lambda (#{src 843}# head tail)
        (make-struct/no-tail
          (vector-ref %expanded-vtables 13)
-         #{src 837}#
-         #{meta 838}#
-         #{body 839}#)))
-   (#{make-lambda-case 231}#
-     (lambda (#{src 843}#
-              #{req 844}#
-              #{opt 845}#
-              #{rest 846}#
-              #{kw 847}#
-              #{inits 848}#
-              #{gensyms 849}#
-              #{body 850}#
-              #{alternate 851}#)
+         #{src 843}#
+         head tail)))
+   (#{make-lambda 231}#
+     (lambda (#{src 847}# #{meta 848}# #{body 849}#)
        (make-struct/no-tail
          (vector-ref %expanded-vtables 14)
-         #{src 843}#
-         #{req 844}#
-         #{opt 845}#
-         #{rest 846}#
-         #{kw 847}#
-         #{inits 848}#
-         #{gensyms 849}#
-         #{body 850}#
-         #{alternate 851}#)))
-   (#{make-let 233}#
-     (lambda (#{src 861}#
-              #{names 862}#
-              #{gensyms 863}#
-              #{vals 864}#
-              #{body 865}#)
+         #{src 847}#
+         #{meta 848}#
+         #{body 849}#)))
+   (#{make-lambda-case 233}#
+     (lambda (#{src 853}#
+              #{req 854}#
+              #{opt 855}#
+              #{rest 856}#
+              #{kw 857}#
+              #{inits 858}#
+              #{gensyms 859}#
+              #{body 860}#
+              #{alternate 861}#)
        (make-struct/no-tail
          (vector-ref %expanded-vtables 15)
-         #{src 861}#
-         #{names 862}#
-         #{gensyms 863}#
-         #{vals 864}#
-         #{body 865}#)))
-   (#{make-letrec 235}#
+         #{src 853}#
+         #{req 854}#
+         #{opt 855}#
+         #{rest 856}#
+         #{kw 857}#
+         #{inits 858}#
+         #{gensyms 859}#
+         #{body 860}#
+         #{alternate 861}#)))
+   (#{make-let 235}#
      (lambda (#{src 871}#
-              #{in-order? 872}#
-              #{names 873}#
-              #{gensyms 874}#
-              #{vals 875}#
-              #{body 876}#)
+              #{names 872}#
+              #{gensyms 873}#
+              #{vals 874}#
+              #{body 875}#)
        (make-struct/no-tail
          (vector-ref %expanded-vtables 16)
          #{src 871}#
-         #{in-order? 872}#
-         #{names 873}#
-         #{gensyms 874}#
-         #{vals 875}#
-         #{body 876}#)))
-   (#{make-dynlet 237}#
-     (lambda (#{src 883}#
-              #{fluids 884}#
+         #{names 872}#
+         #{gensyms 873}#
+         #{vals 874}#
+         #{body 875}#)))
+   (#{make-letrec 237}#
+     (lambda (#{src 881}#
+              #{in-order? 882}#
+              #{names 883}#
+              #{gensyms 884}#
               #{vals 885}#
               #{body 886}#)
        (make-struct/no-tail
          (vector-ref %expanded-vtables 17)
-         #{src 883}#
-         #{fluids 884}#
+         #{src 881}#
+         #{in-order? 882}#
+         #{names 883}#
+         #{gensyms 884}#
          #{vals 885}#
          #{body 886}#)))
-   (#{lambda? 240}#
-     (lambda (#{x 891}#)
-       (if (struct? #{x 891}#)
-         (eq? (struct-vtable #{x 891}#)
-              (vector-ref %expanded-vtables 13))
+   (#{make-dynlet 239}#
+     (lambda (#{src 893}#
+              #{fluids 894}#
+              #{vals 895}#
+              #{body 896}#)
+       (make-struct/no-tail
+         (vector-ref %expanded-vtables 18)
+         #{src 893}#
+         #{fluids 894}#
+         #{vals 895}#
+         #{body 896}#)))
+   (#{lambda? 242}#
+     (lambda (#{x 901}#)
+       (if (struct? #{x 901}#)
+         (eq? (struct-vtable #{x 901}#)
+              (vector-ref %expanded-vtables 14))
          #f)))
-   (#{lambda-meta 242}#
-     (lambda (#{x 895}#) (struct-ref #{x 895}# 1)))
-   (#{set-lambda-meta! 244}#
-     (lambda (#{x 897}# #{v 898}#)
-       (struct-set! #{x 897}# 1 #{v 898}#)))
-   (#{top-level-eval-hook 250}#
-     (lambda (#{x 901}# #{mod 902}#)
-       (primitive-eval #{x 901}#)))
-   (#{local-eval-hook 252}#
-     (lambda (#{x 905}# #{mod 906}#)
-       (primitive-eval #{x 905}#)))
-   (#{put-global-definition-hook 255}#
-     (lambda (#{symbol 909}# #{type 910}# #{val 911}#)
+   (#{lambda-meta 244}#
+     (lambda (#{x 905}#) (struct-ref #{x 905}# 1)))
+   (#{set-lambda-meta! 246}#
+     (lambda (#{x 907}# #{v 908}#)
+       (struct-set! #{x 907}# 1 #{v 908}#)))
+   (#{top-level-eval-hook 252}#
+     (lambda (#{x 911}# #{mod 912}#)
+       (primitive-eval #{x 911}#)))
+   (#{local-eval-hook 254}#
+     (lambda (#{x 915}# #{mod 916}#)
+       (primitive-eval #{x 915}#)))
+   (#{put-global-definition-hook 257}#
+     (lambda (#{symbol 919}# #{type 920}# #{val 921}#)
        (module-define!
          (current-module)
-         #{symbol 909}#
+         #{symbol 919}#
          (make-syntax-transformer
-           #{symbol 909}#
-           #{type 910}#
-           #{val 911}#))))
-   (#{get-global-definition-hook 257}#
-     (lambda (#{symbol 915}# #{module 916}#)
+           #{symbol 919}#
+           #{type 920}#
+           #{val 921}#))))
+   (#{get-global-definition-hook 259}#
+     (lambda (#{symbol 925}# #{module 926}#)
        (begin
-         (if (if (not #{module 916}#) (current-module) #f)
+         (if (if (not #{module 926}#) (current-module) #f)
            (warn "module system is booted, we should have a module"
-                 #{symbol 915}#))
+                 #{symbol 925}#))
          (begin
-           (let ((#{v 922}# (module-variable
-                              (if #{module 916}#
-                                (resolve-module (cdr #{module 916}#))
+           (let ((#{v 932}# (module-variable
+                              (if #{module 926}#
+                                (resolve-module (cdr #{module 926}#))
                                 (current-module))
-                              #{symbol 915}#)))
-             (if #{v 922}#
-               (if (variable-bound? #{v 922}#)
+                              #{symbol 925}#)))
+             (if #{v 932}#
+               (if (variable-bound? #{v 932}#)
                  (begin
-                   (let ((#{val 927}# (variable-ref #{v 922}#)))
-                     (if (macro? #{val 927}#)
-                       (if (macro-type #{val 927}#)
-                         (cons (macro-type #{val 927}#)
-                               (macro-binding #{val 927}#))
+                   (let ((#{val 937}# (variable-ref #{v 932}#)))
+                     (if (macro? #{val 937}#)
+                       (if (macro-type #{val 937}#)
+                         (cons (macro-type #{val 937}#)
+                               (macro-binding #{val 937}#))
                          #f)
                        #f)))
                  #f)
                #f))))))
-   (#{decorate-source 259}#
-     (lambda (#{e 931}# #{s 932}#)
+   (#{decorate-source 261}#
+     (lambda (#{e 941}# #{s 942}#)
        (begin
-         (if (if (pair? #{e 931}#) #{s 932}# #f)
-           (set-source-properties! #{e 931}# #{s 932}#))
-         #{e 931}#)))
-   (#{maybe-name-value! 261}#
-     (lambda (#{name 937}# #{val 938}#)
-       (if (#{lambda? 240}# #{val 938}#)
+         (if (if (pair? #{e 941}#) #{s 942}# #f)
+           (set-source-properties! #{e 941}# #{s 942}#))
+         #{e 941}#)))
+   (#{maybe-name-value! 263}#
+     (lambda (#{name 947}# #{val 948}#)
+       (if (#{lambda? 242}# #{val 948}#)
          (begin
-           (let ((#{meta 942}# (#{lambda-meta 242}# #{val 938}#)))
-             (if (not (assq 'name #{meta 942}#))
-               (#{set-lambda-meta! 244}#
-                 #{val 938}#
-                 (cons (cons 'name #{name 937}#) #{meta 942}#))))))))
-   (#{build-void 263}#
-     (lambda (#{source 943}#)
-       (#{make-void 203}# #{source 943}#)))
-   (#{build-application 265}#
-     (lambda (#{source 945}# #{fun-exp 946}# #{arg-exps 947}#)
-       (#{make-application 225}#
-         #{source 945}#
-         #{fun-exp 946}#
-         #{arg-exps 947}#)))
-   (#{build-conditional 267}#
-     (lambda (#{source 951}#
-              #{test-exp 952}#
-              #{then-exp 953}#
-              #{else-exp 954}#)
+           (let ((#{meta 952}# (#{lambda-meta 244}# #{val 948}#)))
+             (if (not (assq 'name #{meta 952}#))
+               (#{set-lambda-meta! 246}#
+                 #{val 948}#
+                 (cons (cons 'name #{name 947}#) #{meta 952}#))))))))
+   (#{build-void 265}#
+     (lambda (#{source 953}#)
+       (#{make-void 203}# #{source 953}#)))
+   (#{build-call 267}#
+     (lambda (#{source 955}# #{fun-exp 956}# #{arg-exps 957}#)
+       (#{make-call 225}#
+         #{source 955}#
+         #{fun-exp 956}#
+         #{arg-exps 957}#)))
+   (#{build-conditional 269}#
+     (lambda (#{source 961}#
+              #{test-exp 962}#
+              #{then-exp 963}#
+              #{else-exp 964}#)
        (#{make-conditional 223}#
-         #{source 951}#
-         #{test-exp 952}#
-         #{then-exp 953}#
-         #{else-exp 954}#)))
-   (#{build-dynlet 269}#
-     (lambda (#{source 959}#
-              #{fluids 960}#
-              #{vals 961}#
-              #{body 962}#)
-       (#{make-dynlet 237}#
-         #{source 959}#
-         #{fluids 960}#
-         #{vals 961}#
-         #{body 962}#)))
-   (#{build-lexical-reference 271}#
-     (lambda (#{type 967}#
-              #{source 968}#
-              #{name 969}#
-              #{var 970}#)
+         #{source 961}#
+         #{test-exp 962}#
+         #{then-exp 963}#
+         #{else-exp 964}#)))
+   (#{build-dynlet 271}#
+     (lambda (#{source 969}#
+              #{fluids 970}#
+              #{vals 971}#
+              #{body 972}#)
+       (#{make-dynlet 239}#
+         #{source 969}#
+         #{fluids 970}#
+         #{vals 971}#
+         #{body 972}#)))
+   (#{build-lexical-reference 273}#
+     (lambda (#{type 977}#
+              #{source 978}#
+              #{name 979}#
+              #{var 980}#)
        (#{make-lexical-ref 209}#
-         #{source 968}#
-         #{name 969}#
-         #{var 970}#)))
-   (#{build-lexical-assignment 273}#
-     (lambda (#{source 975}#
-              #{name 976}#
-              #{var 977}#
-              #{exp 978}#)
+         #{source 978}#
+         #{name 979}#
+         #{var 980}#)))
+   (#{build-lexical-assignment 275}#
+     (lambda (#{source 985}#
+              #{name 986}#
+              #{var 987}#
+              #{exp 988}#)
        (begin
-         (#{maybe-name-value! 261}#
-           #{name 976}#
-           #{exp 978}#)
+         (#{maybe-name-value! 263}#
+           #{name 986}#
+           #{exp 988}#)
          (#{make-lexical-set 211}#
-           #{source 975}#
-           #{name 976}#
-           #{var 977}#
-           #{exp 978}#))))
-   (#{analyze-variable 275}#
-     (lambda (#{mod 983}#
-              #{var 984}#
-              #{modref-cont 985}#
-              #{bare-cont 986}#)
-       (if (not #{mod 983}#)
-         (#{bare-cont 986}# #{var 984}#)
+           #{source 985}#
+           #{name 986}#
+           #{var 987}#
+           #{exp 988}#))))
+   (#{analyze-variable 277}#
+     (lambda (#{mod 993}#
+              #{var 994}#
+              #{modref-cont 995}#
+              #{bare-cont 996}#)
+       (if (not #{mod 993}#)
+         (#{bare-cont 996}# #{var 994}#)
          (begin
-           (let ((#{kind 993}# (car #{mod 983}#))
-                 (#{mod 994}# (cdr #{mod 983}#)))
-             (if (eqv? #{kind 993}# 'public)
-               (#{modref-cont 985}# #{mod 994}# #{var 984}# #t)
-               (if (eqv? #{kind 993}# 'private)
+           (let ((#{kind 1003}# (car #{mod 993}#))
+                 (#{mod 1004}# (cdr #{mod 993}#)))
+             (if (memv #{kind 1003}# '(public))
+               (#{modref-cont 995}# #{mod 1004}# #{var 994}# #t)
+               (if (memv #{kind 1003}# '(private))
                  (if (not (equal?
-                            #{mod 994}#
+                            #{mod 1004}#
                             (module-name (current-module))))
-                   (#{modref-cont 985}# #{mod 994}# #{var 984}# #f)
-                   (#{bare-cont 986}# #{var 984}#))
-                 (if (eqv? #{kind 993}# 'bare)
-                   (#{bare-cont 986}# #{var 984}#)
-                   (if (eqv? #{kind 993}# 'hygiene)
+                   (#{modref-cont 995}# #{mod 1004}# #{var 994}# #f)
+                   (#{bare-cont 996}# #{var 994}#))
+                 (if (memv #{kind 1003}# '(bare))
+                   (#{bare-cont 996}# #{var 994}#)
+                   (if (memv #{kind 1003}# '(hygiene))
                      (if (if (not (equal?
-                                    #{mod 994}#
+                                    #{mod 1004}#
                                     (module-name (current-module))))
                            (module-variable
-                             (resolve-module #{mod 994}#)
-                             #{var 984}#)
+                             (resolve-module #{mod 1004}#)
+                             #{var 994}#)
                            #f)
-                       (#{modref-cont 985}# #{mod 994}# #{var 984}# #f)
-                       (#{bare-cont 986}# #{var 984}#))
+                       (#{modref-cont 995}# #{mod 1004}# #{var 994}# #f)
+                       (#{bare-cont 996}# #{var 994}#))
                      (syntax-violation
                        #f
                        "bad module kind"
-                       #{var 984}#
-                       #{mod 994}#))))))))))
-   (#{build-global-reference 277}#
-     (lambda (#{source 1002}# #{var 1003}# #{mod 1004}#)
-       (#{analyze-variable 275}#
-         #{mod 1004}#
-         #{var 1003}#
-         (lambda (#{mod 1008}# #{var 1009}# #{public? 1010}#)
+                       #{var 994}#
+                       #{mod 1004}#))))))))))
+   (#{build-global-reference 279}#
+     (lambda (#{source 1012}# #{var 1013}# #{mod 1014}#)
+       (#{analyze-variable 277}#
+         #{mod 1014}#
+         #{var 1013}#
+         (lambda (#{mod 1018}# #{var 1019}# #{public? 1020}#)
            (#{make-module-ref 213}#
-             #{source 1002}#
-             #{mod 1008}#
-             #{var 1009}#
-             #{public? 1010}#))
-         (lambda (#{var 1014}#)
+             #{source 1012}#
+             #{mod 1018}#
+             #{var 1019}#
+             #{public? 1020}#))
+         (lambda (#{var 1024}#)
            (#{make-toplevel-ref 217}#
-             #{source 1002}#
-             #{var 1014}#)))))
-   (#{build-global-assignment 279}#
-     (lambda (#{source 1016}#
-              #{var 1017}#
-              #{exp 1018}#
-              #{mod 1019}#)
+             #{source 1012}#
+             #{var 1024}#)))))
+   (#{build-global-assignment 281}#
+     (lambda (#{source 1026}#
+              #{var 1027}#
+              #{exp 1028}#
+              #{mod 1029}#)
        (begin
-         (#{maybe-name-value! 261}#
-           #{var 1017}#
-           #{exp 1018}#)
-         (#{analyze-variable 275}#
-           #{mod 1019}#
-           #{var 1017}#
-           (lambda (#{mod 1024}# #{var 1025}# #{public? 1026}#)
+         (#{maybe-name-value! 263}#
+           #{var 1027}#
+           #{exp 1028}#)
+         (#{analyze-variable 277}#
+           #{mod 1029}#
+           #{var 1027}#
+           (lambda (#{mod 1034}# #{var 1035}# #{public? 1036}#)
              (#{make-module-set 215}#
-               #{source 1016}#
-               #{mod 1024}#
-               #{var 1025}#
-               #{public? 1026}#
-               #{exp 1018}#))
-           (lambda (#{var 1030}#)
+               #{source 1026}#
+               #{mod 1034}#
+               #{var 1035}#
+               #{public? 1036}#
+               #{exp 1028}#))
+           (lambda (#{var 1040}#)
              (#{make-toplevel-set 219}#
-               #{source 1016}#
-               #{var 1030}#
-               #{exp 1018}#))))))
-   (#{build-global-definition 281}#
-     (lambda (#{source 1032}# #{var 1033}# #{exp 1034}#)
+               #{source 1026}#
+               #{var 1040}#
+               #{exp 1028}#))))))
+   (#{build-global-definition 283}#
+     (lambda (#{source 1042}# #{var 1043}# #{exp 1044}#)
        (begin
-         (#{maybe-name-value! 261}#
-           #{var 1033}#
-           #{exp 1034}#)
+         (#{maybe-name-value! 263}#
+           #{var 1043}#
+           #{exp 1044}#)
          (#{make-toplevel-define 221}#
-           #{source 1032}#
-           #{var 1033}#
-           #{exp 1034}#))))
-   (#{build-simple-lambda 283}#
-     (lambda (#{src 1038}#
-              #{req 1039}#
-              #{rest 1040}#
-              #{vars 1041}#
-              #{meta 1042}#
-              #{exp 1043}#)
-       (#{make-lambda 229}#
-         #{src 1038}#
-         #{meta 1042}#
-         (#{make-lambda-case 231}#
-           #{src 1038}#
-           #{req 1039}#
+           #{source 1042}#
+           #{var 1043}#
+           #{exp 1044}#))))
+   (#{build-simple-lambda 285}#
+     (lambda (#{src 1048}#
+              #{req 1049}#
+              #{rest 1050}#
+              #{vars 1051}#
+              #{meta 1052}#
+              #{exp 1053}#)
+       (#{make-lambda 231}#
+         #{src 1048}#
+         #{meta 1052}#
+         (#{make-lambda-case 233}#
+           #{src 1048}#
+           #{req 1049}#
            #f
-           #{rest 1040}#
+           #{rest 1050}#
            #f
            '()
-           #{vars 1041}#
-           #{exp 1043}#
-           #f))))
-   (#{build-case-lambda 285}#
-     (lambda (#{src 1050}# #{meta 1051}# #{body 1052}#)
-       (#{make-lambda 229}#
-         #{src 1050}#
-         #{meta 1051}#
-         #{body 1052}#)))
-   (#{build-lambda-case 287}#
-     (lambda (#{src 1056}#
-              #{req 1057}#
-              #{opt 1058}#
-              #{rest 1059}#
-              #{kw 1060}#
-              #{inits 1061}#
-              #{vars 1062}#
-              #{body 1063}#
-              #{else-case 1064}#)
-       (#{make-lambda-case 231}#
-         #{src 1056}#
-         #{req 1057}#
-         #{opt 1058}#
-         #{rest 1059}#
-         #{kw 1060}#
-         #{inits 1061}#
-         #{vars 1062}#
-         #{body 1063}#
-         #{else-case 1064}#)))
-   (#{build-primref 289}#
-     (lambda (#{src 1074}# #{name 1075}#)
-       (if (equal? (module-name (current-module)) '(guile))
-         (#{make-toplevel-ref 217}#
-           #{src 1074}#
-           #{name 1075}#)
-         (#{make-module-ref 213}#
-           #{src 1074}#
-           '(guile)
-           #{name 1075}#
+           #{vars 1051}#
+           #{exp 1053}#
            #f))))
-   (#{build-data 291}#
-     (lambda (#{src 1078}# #{exp 1079}#)
-       (#{make-const 205}# #{src 1078}# #{exp 1079}#)))
-   (#{build-sequence 293}#
-     (lambda (#{src 1082}# #{exps 1083}#)
-       (if (null? (cdr #{exps 1083}#))
-         (car #{exps 1083}#)
-         (#{make-sequence 227}#
-           #{src 1082}#
-           #{exps 1083}#))))
-   (#{build-let 295}#
-     (lambda (#{src 1086}#
-              #{ids 1087}#
-              #{vars 1088}#
-              #{val-exps 1089}#
-              #{body-exp 1090}#)
+   (#{build-case-lambda 287}#
+     (lambda (#{src 1060}# #{meta 1061}# #{body 1062}#)
+       (#{make-lambda 231}#
+         #{src 1060}#
+         #{meta 1061}#
+         #{body 1062}#)))
+   (#{build-lambda-case 289}#
+     (lambda (#{src 1066}#
+              #{req 1067}#
+              #{opt 1068}#
+              #{rest 1069}#
+              #{kw 1070}#
+              #{inits 1071}#
+              #{vars 1072}#
+              #{body 1073}#
+              #{else-case 1074}#)
+       (#{make-lambda-case 233}#
+         #{src 1066}#
+         #{req 1067}#
+         #{opt 1068}#
+         #{rest 1069}#
+         #{kw 1070}#
+         #{inits 1071}#
+         #{vars 1072}#
+         #{body 1073}#
+         #{else-case 1074}#)))
+   (#{build-primcall 291}#
+     (lambda (#{src 1084}# #{name 1085}# #{args 1086}#)
+       (#{make-primcall 227}#
+         #{src 1084}#
+         #{name 1085}#
+         #{args 1086}#)))
+   (#{build-primref 293}#
+     (lambda (#{src 1090}# #{name 1091}#)
+       (#{make-primitive-ref 207}#
+         #{src 1090}#
+         #{name 1091}#)))
+   (#{build-data 295}#
+     (lambda (#{src 1094}# #{exp 1095}#)
+       (#{make-const 205}# #{src 1094}# #{exp 1095}#)))
+   (#{build-sequence 297}#
+     (lambda (#{src 1098}# #{exps 1099}#)
+       (if (null? (cdr #{exps 1099}#))
+         (car #{exps 1099}#)
+         (#{make-sequence 229}#
+          #f (car #{exps 1099}#)
+          (#{build-sequence 297}# #f (cdr #{exps 1099}#))))))
+   (#{build-let 299}#
+     (lambda (#{src 1102}#
+              #{ids 1103}#
+              #{vars 1104}#
+              #{val-exps 1105}#
+              #{body-exp 1106}#)
        (begin
          (for-each
-           #{maybe-name-value! 261}#
-           #{ids 1087}#
-           #{val-exps 1089}#)
-         (if (null? #{vars 1088}#)
-           #{body-exp 1090}#
-           (#{make-let 233}#
-             #{src 1086}#
-             #{ids 1087}#
-             #{vars 1088}#
-             #{val-exps 1089}#
-             #{body-exp 1090}#)))))
-   (#{build-named-let 297}#
-     (lambda (#{src 1096}#
-              #{ids 1097}#
-              #{vars 1098}#
-              #{val-exps 1099}#
-              #{body-exp 1100}#)
+           #{maybe-name-value! 263}#
+           #{ids 1103}#
+           #{val-exps 1105}#)
+         (if (null? #{vars 1104}#)
+           #{body-exp 1106}#
+           (#{make-let 235}#
+             #{src 1102}#
+             #{ids 1103}#
+             #{vars 1104}#
+             #{val-exps 1105}#
+             #{body-exp 1106}#)))))
+   (#{build-named-let 301}#
+     (lambda (#{src 1112}#
+              #{ids 1113}#
+              #{vars 1114}#
+              #{val-exps 1115}#
+              #{body-exp 1116}#)
        (begin
-         (let ((#{f 1110}# (car #{vars 1098}#))
-               (#{f-name 1111}# (car #{ids 1097}#))
-               (#{vars 1112}# (cdr #{vars 1098}#))
-               (#{ids 1113}# (cdr #{ids 1097}#)))
+         (let ((#{f 1126}# (car #{vars 1114}#))
+               (#{f-name 1127}# (car #{ids 1113}#))
+               (#{vars 1128}# (cdr #{vars 1114}#))
+               (#{ids 1129}# (cdr #{ids 1113}#)))
            (begin
-             (let ((#{proc 1115}#
-                     (#{build-simple-lambda 283}#
-                       #{src 1096}#
-                       #{ids 1113}#
+             (let ((#{proc 1131}#
+                     (#{build-simple-lambda 285}#
+                       #{src 1112}#
+                       #{ids 1129}#
                        #f
-                       #{vars 1112}#
+                       #{vars 1128}#
                        '()
-                       #{body-exp 1100}#)))
+                       #{body-exp 1116}#)))
                (begin
-                 (#{maybe-name-value! 261}#
-                   #{f-name 1111}#
-                   #{proc 1115}#)
+                 (#{maybe-name-value! 263}#
+                   #{f-name 1127}#
+                   #{proc 1131}#)
                  (for-each
-                   #{maybe-name-value! 261}#
-                   #{ids 1113}#
-                   #{val-exps 1099}#)
-                 (#{make-letrec 235}#
-                   #{src 1096}#
+                   #{maybe-name-value! 263}#
+                   #{ids 1129}#
+                   #{val-exps 1115}#)
+                 (#{make-letrec 237}#
+                   #{src 1112}#
                    #f
-                   (list #{f-name 1111}#)
-                   (list #{f 1110}#)
-                   (list #{proc 1115}#)
-                   (#{build-application 265}#
-                     #{src 1096}#
-                     (#{build-lexical-reference 271}#
+                   (list #{f-name 1127}#)
+                   (list #{f 1126}#)
+                   (list #{proc 1131}#)
+                   (#{build-call 267}#
+                     #{src 1112}#
+                     (#{build-lexical-reference 273}#
                        'fun
-                       #{src 1096}#
-                       #{f-name 1111}#
-                       #{f 1110}#)
-                     #{val-exps 1099}#)))))))))
-   (#{build-letrec 299}#
-     (lambda (#{src 1116}#
-              #{in-order? 1117}#
-              #{ids 1118}#
-              #{vars 1119}#
-              #{val-exps 1120}#
-              #{body-exp 1121}#)
-       (if (null? #{vars 1119}#)
-         #{body-exp 1121}#
+                       #{src 1112}#
+                       #{f-name 1127}#
+                       #{f 1126}#)
+                     #{val-exps 1115}#)))))))))
+   (#{build-letrec 303}#
+     (lambda (#{src 1132}#
+              #{in-order? 1133}#
+              #{ids 1134}#
+              #{vars 1135}#
+              #{val-exps 1136}#
+              #{body-exp 1137}#)
+       (if (null? #{vars 1135}#)
+         #{body-exp 1137}#
          (begin
            (for-each
-             #{maybe-name-value! 261}#
-             #{ids 1118}#
-             #{val-exps 1120}#)
-           (#{make-letrec 235}#
-             #{src 1116}#
-             #{in-order? 1117}#
-             #{ids 1118}#
-             #{vars 1119}#
-             #{val-exps 1120}#
-             #{body-exp 1121}#)))))
-   (#{make-syntax-object 303}#
-     (lambda (#{expression 1128}#
-              #{wrap 1129}#
-              #{module 1130}#)
+             #{maybe-name-value! 263}#
+             #{ids 1134}#
+             #{val-exps 1136}#)
+           (#{make-letrec 237}#
+             #{src 1132}#
+             #{in-order? 1133}#
+             #{ids 1134}#
+             #{vars 1135}#
+             #{val-exps 1136}#
+             #{body-exp 1137}#)))))
+   (#{make-syntax-object 307}#
+     (lambda (#{expression 1144}#
+              #{wrap 1145}#
+              #{module 1146}#)
        (vector
          'syntax-object
-         #{expression 1128}#
-         #{wrap 1129}#
-         #{module 1130}#)))
-   (#{syntax-object? 305}#
-     (lambda (#{x 1134}#)
-       (if (vector? #{x 1134}#)
-         (if (= (vector-length #{x 1134}#) 4)
-           (eq? (vector-ref #{x 1134}# 0) 'syntax-object)
+         #{expression 1144}#
+         #{wrap 1145}#
+         #{module 1146}#)))
+   (#{syntax-object? 309}#
+     (lambda (#{x 1150}#)
+       (if (vector? #{x 1150}#)
+         (if (= (vector-length #{x 1150}#) 4)
+           (eq? (vector-ref #{x 1150}# 0) 'syntax-object)
            #f)
          #f)))
-   (#{syntax-object-expression 307}#
-     (lambda (#{x 1139}#) (vector-ref #{x 1139}# 1)))
-   (#{syntax-object-wrap 309}#
-     (lambda (#{x 1141}#) (vector-ref #{x 1141}# 2)))
-   (#{syntax-object-module 311}#
-     (lambda (#{x 1143}#) (vector-ref #{x 1143}# 3)))
-   (#{source-annotation 320}#
-     (lambda (#{x 1157}#)
-       (if (#{syntax-object? 305}# #{x 1157}#)
-         (#{source-annotation 320}#
-           (#{syntax-object-expression 307}# #{x 1157}#))
-         (if (pair? #{x 1157}#)
+   (#{syntax-object-expression 311}#
+     (lambda (#{x 1155}#) (vector-ref #{x 1155}# 1)))
+   (#{syntax-object-wrap 313}#
+     (lambda (#{x 1157}#) (vector-ref #{x 1157}# 2)))
+   (#{syntax-object-module 315}#
+     (lambda (#{x 1159}#) (vector-ref #{x 1159}# 3)))
+   (#{source-annotation 324}#
+     (lambda (#{x 1173}#)
+       (if (#{syntax-object? 309}# #{x 1173}#)
+         (#{source-annotation 324}#
+           (#{syntax-object-expression 311}# #{x 1173}#))
+         (if (pair? #{x 1173}#)
            (begin
-             (let ((#{props 1164}# (source-properties #{x 1157}#)))
-               (if (pair? #{props 1164}#) #{props 1164}# #f)))
+             (let ((#{props 1180}# (source-properties #{x 1173}#)))
+               (if (pair? #{props 1180}#) #{props 1180}# #f)))
            #f))))
-   (#{extend-env 327}#
-     (lambda (#{labels 1166}# #{bindings 1167}# #{r 1168}#)
-       (if (null? #{labels 1166}#)
-         #{r 1168}#
-         (#{extend-env 327}#
-           (cdr #{labels 1166}#)
-           (cdr #{bindings 1167}#)
-           (cons (cons (car #{labels 1166}#)
-                       (car #{bindings 1167}#))
-                 #{r 1168}#)))))
-   (#{extend-var-env 329}#
-     (lambda (#{labels 1172}# #{vars 1173}# #{r 1174}#)
-       (if (null? #{labels 1172}#)
-         #{r 1174}#
-         (#{extend-var-env 329}#
-           (cdr #{labels 1172}#)
-           (cdr #{vars 1173}#)
-           (cons (cons (car #{labels 1172}#)
-                       (cons 'lexical (car #{vars 1173}#)))
-                 #{r 1174}#)))))
-   (#{macros-only-env 331}#
-     (lambda (#{r 1179}#)
-       (if (null? #{r 1179}#)
+   (#{extend-env 331}#
+     (lambda (#{labels 1182}# #{bindings 1183}# #{r 1184}#)
+       (if (null? #{labels 1182}#)
+         #{r 1184}#
+         (#{extend-env 331}#
+           (cdr #{labels 1182}#)
+           (cdr #{bindings 1183}#)
+           (cons (cons (car #{labels 1182}#)
+                       (car #{bindings 1183}#))
+                 #{r 1184}#)))))
+   (#{extend-var-env 333}#
+     (lambda (#{labels 1188}# #{vars 1189}# #{r 1190}#)
+       (if (null? #{labels 1188}#)
+         #{r 1190}#
+         (#{extend-var-env 333}#
+           (cdr #{labels 1188}#)
+           (cdr #{vars 1189}#)
+           (cons (cons (car #{labels 1188}#)
+                       (cons 'lexical (car #{vars 1189}#)))
+                 #{r 1190}#)))))
+   (#{macros-only-env 335}#
+     (lambda (#{r 1195}#)
+       (if (null? #{r 1195}#)
          '()
          (begin
-           (let ((#{a 1182}# (car #{r 1179}#)))
-             (if (eq? (car (cdr #{a 1182}#)) 'macro)
-               (cons #{a 1182}#
-                     (#{macros-only-env 331}# (cdr #{r 1179}#)))
-               (#{macros-only-env 331}# (cdr #{r 1179}#))))))))
-   (#{lookup 333}#
-     (lambda (#{x 1183}# #{r 1184}# #{mod 1185}#)
+           (let ((#{a 1198}# (car #{r 1195}#)))
+             (if (eq? (car (cdr #{a 1198}#)) 'macro)
+               (cons #{a 1198}#
+                     (#{macros-only-env 335}# (cdr #{r 1195}#)))
+               (#{macros-only-env 335}# (cdr #{r 1195}#))))))))
+   (#{lookup 337}#
+     (lambda (#{x 1199}# #{r 1200}# #{mod 1201}#)
        (begin
-         (let ((#{t 1191}# (assq #{x 1183}# #{r 1184}#)))
-           (if #{t 1191}#
-             (cdr #{t 1191}#)
-             (if (symbol? #{x 1183}#)
+         (let ((#{t 1207}# (assq #{x 1199}# #{r 1200}#)))
+           (if #{t 1207}#
+             (cdr #{t 1207}#)
+             (if (symbol? #{x 1199}#)
                (begin
-                 (let ((#{t 1197}#
-                         (#{get-global-definition-hook 257}#
-                           #{x 1183}#
-                           #{mod 1185}#)))
-                   (if #{t 1197}# #{t 1197}# '(global))))
+                 (let ((#{t 1213}#
+                         (#{get-global-definition-hook 259}#
+                           #{x 1199}#
+                           #{mod 1201}#)))
+                   (if #{t 1213}# #{t 1213}# '(global))))
                '(displaced-lexical)))))))
-   (#{global-extend 335}#
-     (lambda (#{type 1202}# #{sym 1203}# #{val 1204}#)
-       (#{put-global-definition-hook 255}#
-         #{sym 1203}#
-         #{type 1202}#
-         #{val 1204}#)))
-   (#{nonsymbol-id? 337}#
-     (lambda (#{x 1208}#)
-       (if (#{syntax-object? 305}# #{x 1208}#)
+   (#{global-extend 339}#
+     (lambda (#{type 1218}# #{sym 1219}# #{val 1220}#)
+       (#{put-global-definition-hook 257}#
+         #{sym 1219}#
+         #{type 1218}#
+         #{val 1220}#)))
+   (#{nonsymbol-id? 341}#
+     (lambda (#{x 1224}#)
+       (if (#{syntax-object? 309}# #{x 1224}#)
          (symbol?
-           (#{syntax-object-expression 307}# #{x 1208}#))
+           (#{syntax-object-expression 311}# #{x 1224}#))
          #f)))
-   (#{id? 339}#
-     (lambda (#{x 1212}#)
-       (if (symbol? #{x 1212}#)
+   (#{id? 343}#
+     (lambda (#{x 1228}#)
+       (if (symbol? #{x 1228}#)
          #t
-         (if (#{syntax-object? 305}# #{x 1212}#)
+         (if (#{syntax-object? 309}# #{x 1228}#)
            (symbol?
-             (#{syntax-object-expression 307}# #{x 1212}#))
+             (#{syntax-object-expression 311}# #{x 1228}#))
            #f))))
-   (#{id-sym-name&marks 342}#
-     (lambda (#{x 1219}# #{w 1220}#)
-       (if (#{syntax-object? 305}# #{x 1219}#)
+   (#{id-sym-name&marks 346}#
+     (lambda (#{x 1235}# #{w 1236}#)
+       (if (#{syntax-object? 309}# #{x 1235}#)
          (values
-           (#{syntax-object-expression 307}# #{x 1219}#)
-           (#{join-marks 389}#
-             (car #{w 1220}#)
-             (car (#{syntax-object-wrap 309}# #{x 1219}#))))
-         (values #{x 1219}# (car #{w 1220}#)))))
-   (#{gen-label 352}#
+           (#{syntax-object-expression 311}# #{x 1235}#)
+           (#{join-marks 393}#
+             (car #{w 1236}#)
+             (car (#{syntax-object-wrap 313}# #{x 1235}#))))
+         (values #{x 1235}# (car #{w 1236}#)))))
+   (#{gen-label 356}#
      (lambda () (symbol->string (gensym "i"))))
-   (#{gen-labels 354}#
-     (lambda (#{ls 1226}#)
-       (if (null? #{ls 1226}#)
+   (#{gen-labels 358}#
+     (lambda (#{ls 1242}#)
+       (if (null? #{ls 1242}#)
          '()
-         (cons (#{gen-label 352}#)
-               (#{gen-labels 354}# (cdr #{ls 1226}#))))))
-   (#{make-ribcage 357}#
-     (lambda (#{symnames 1228}#
-              #{marks 1229}#
-              #{labels 1230}#)
+         (cons (#{gen-label 356}#)
+               (#{gen-labels 358}# (cdr #{ls 1242}#))))))
+   (#{make-ribcage 361}#
+     (lambda (#{symnames 1244}#
+              #{marks 1245}#
+              #{labels 1246}#)
        (vector
          'ribcage
-         #{symnames 1228}#
-         #{marks 1229}#
-         #{labels 1230}#)))
-   (#{ribcage-symnames 361}#
-     (lambda (#{x 1239}#) (vector-ref #{x 1239}# 1)))
-   (#{ribcage-marks 363}#
-     (lambda (#{x 1241}#) (vector-ref #{x 1241}# 2)))
-   (#{ribcage-labels 365}#
-     (lambda (#{x 1243}#) (vector-ref #{x 1243}# 3)))
-   (#{set-ribcage-symnames! 367}#
-     (lambda (#{x 1245}# #{update 1246}#)
-       (vector-set! #{x 1245}# 1 #{update 1246}#)))
-   (#{set-ribcage-marks! 369}#
-     (lambda (#{x 1249}# #{update 1250}#)
-       (vector-set! #{x 1249}# 2 #{update 1250}#)))
-   (#{set-ribcage-labels! 371}#
-     (lambda (#{x 1253}# #{update 1254}#)
-       (vector-set! #{x 1253}# 3 #{update 1254}#)))
-   (#{anti-mark 377}#
-     (lambda (#{w 1257}#)
-       (cons (cons #f (car #{w 1257}#))
-             (cons 'shift (cdr #{w 1257}#)))))
-   (#{extend-ribcage! 381}#
-     (lambda (#{ribcage 1263}# #{id 1264}# #{label 1265}#)
+         #{symnames 1244}#
+         #{marks 1245}#
+         #{labels 1246}#)))
+   (#{ribcage-symnames 365}#
+     (lambda (#{x 1255}#) (vector-ref #{x 1255}# 1)))
+   (#{ribcage-marks 367}#
+     (lambda (#{x 1257}#) (vector-ref #{x 1257}# 2)))
+   (#{ribcage-labels 369}#
+     (lambda (#{x 1259}#) (vector-ref #{x 1259}# 3)))
+   (#{set-ribcage-symnames! 371}#
+     (lambda (#{x 1261}# #{update 1262}#)
+       (vector-set! #{x 1261}# 1 #{update 1262}#)))
+   (#{set-ribcage-marks! 373}#
+     (lambda (#{x 1265}# #{update 1266}#)
+       (vector-set! #{x 1265}# 2 #{update 1266}#)))
+   (#{set-ribcage-labels! 375}#
+     (lambda (#{x 1269}# #{update 1270}#)
+       (vector-set! #{x 1269}# 3 #{update 1270}#)))
+   (#{anti-mark 381}#
+     (lambda (#{w 1273}#)
+       (cons (cons #f (car #{w 1273}#))
+             (cons 'shift (cdr #{w 1273}#)))))
+   (#{extend-ribcage! 385}#
+     (lambda (#{ribcage 1279}# #{id 1280}# #{label 1281}#)
        (begin
-         (#{set-ribcage-symnames! 367}#
-           #{ribcage 1263}#
-           (cons (#{syntax-object-expression 307}# #{id 1264}#)
-                 (#{ribcage-symnames 361}# #{ribcage 1263}#)))
-         (#{set-ribcage-marks! 369}#
-           #{ribcage 1263}#
-           (cons (car (#{syntax-object-wrap 309}# #{id 1264}#))
-                 (#{ribcage-marks 363}# #{ribcage 1263}#)))
-         (#{set-ribcage-labels! 371}#
-           #{ribcage 1263}#
-           (cons #{label 1265}#
-                 (#{ribcage-labels 365}# #{ribcage 1263}#))))))
-   (#{make-binding-wrap 383}#
-     (lambda (#{ids 1270}# #{labels 1271}# #{w 1272}#)
-       (if (null? #{ids 1270}#)
-         #{w 1272}#
-         (cons (car #{w 1272}#)
+         (#{set-ribcage-symnames! 371}#
+           #{ribcage 1279}#
+           (cons (#{syntax-object-expression 311}# #{id 1280}#)
+                 (#{ribcage-symnames 365}# #{ribcage 1279}#)))
+         (#{set-ribcage-marks! 373}#
+           #{ribcage 1279}#
+           (cons (car (#{syntax-object-wrap 313}# #{id 1280}#))
+                 (#{ribcage-marks 367}# #{ribcage 1279}#)))
+         (#{set-ribcage-labels! 375}#
+           #{ribcage 1279}#
+           (cons #{label 1281}#
+                 (#{ribcage-labels 369}# #{ribcage 1279}#))))))
+   (#{make-binding-wrap 387}#
+     (lambda (#{ids 1286}# #{labels 1287}# #{w 1288}#)
+       (if (null? #{ids 1286}#)
+         #{w 1288}#
+         (cons (car #{w 1288}#)
                (cons (begin
-                       (let ((#{labelvec 1279}#
-                               (list->vector #{labels 1271}#)))
+                       (let ((#{labelvec 1295}#
+                               (list->vector #{labels 1287}#)))
                          (begin
-                           (let ((#{n 1281}#
-                                   (vector-length #{labelvec 1279}#)))
+                           (let ((#{n 1297}#
+                                   (vector-length #{labelvec 1295}#)))
                              (begin
-                               (let ((#{symnamevec 1284}#
-                                       (make-vector #{n 1281}#))
-                                     (#{marksvec 1285}#
-                                       (make-vector #{n 1281}#)))
+                               (let ((#{symnamevec 1300}#
+                                       (make-vector #{n 1297}#))
+                                     (#{marksvec 1301}#
+                                       (make-vector #{n 1297}#)))
                                  (begin
                                    (letrec*
-                                     ((#{f 1289}#
-                                        (lambda (#{ids 1290}# #{i 1291}#)
-                                          (if (not (null? #{ids 1290}#))
+                                     ((#{f 1305}#
+                                        (lambda (#{ids 1306}# #{i 1307}#)
+                                          (if (not (null? #{ids 1306}#))
                                             (call-with-values
                                               (lambda ()
-                                                (#{id-sym-name&marks 342}#
-                                                  (car #{ids 1290}#)
-                                                  #{w 1272}#))
-                                              (lambda (#{symname 1292}#
-                                                       #{marks 1293}#)
+                                                (#{id-sym-name&marks 346}#
+                                                  (car #{ids 1306}#)
+                                                  #{w 1288}#))
+                                              (lambda (#{symname 1308}#
+                                                       #{marks 1309}#)
                                                 (begin
                                                   (vector-set!
-                                                    #{symnamevec 1284}#
-                                                    #{i 1291}#
-                                                    #{symname 1292}#)
+                                                    #{symnamevec 1300}#
+                                                    #{i 1307}#
+                                                    #{symname 1308}#)
                                                   (vector-set!
-                                                    #{marksvec 1285}#
-                                                    #{i 1291}#
-                                                    #{marks 1293}#)
-                                                  (#{f 1289}#
-                                                    (cdr #{ids 1290}#)
-                                                    (#{1+}# #{i 1291}#)))))))))
-                                     (begin (#{f 1289}# #{ids 1270}# 0)))
-                                   (#{make-ribcage 357}#
-                                     #{symnamevec 1284}#
-                                     #{marksvec 1285}#
-                                     #{labelvec 1279}#))))))))
-                     (cdr #{w 1272}#))))))
-   (#{smart-append 385}#
-     (lambda (#{m1 1298}# #{m2 1299}#)
-       (if (null? #{m2 1299}#)
-         #{m1 1298}#
-         (append #{m1 1298}# #{m2 1299}#))))
-   (#{join-wraps 387}#
-     (lambda (#{w1 1302}# #{w2 1303}#)
+                                                    #{marksvec 1301}#
+                                                    #{i 1307}#
+                                                    #{marks 1309}#)
+                                                  (#{f 1305}#
+                                                    (cdr #{ids 1306}#)
+                                                    (#{1+}# #{i 1307}#)))))))))
+                                     (begin (#{f 1305}# #{ids 1286}# 0)))
+                                   (#{make-ribcage 361}#
+                                     #{symnamevec 1300}#
+                                     #{marksvec 1301}#
+                                     #{labelvec 1295}#))))))))
+                     (cdr #{w 1288}#))))))
+   (#{smart-append 389}#
+     (lambda (#{m1 1314}# #{m2 1315}#)
+       (if (null? #{m2 1315}#)
+         #{m1 1314}#
+         (append #{m1 1314}# #{m2 1315}#))))
+   (#{join-wraps 391}#
+     (lambda (#{w1 1318}# #{w2 1319}#)
        (begin
-         (let ((#{m1 1308}# (car #{w1 1302}#))
-               (#{s1 1309}# (cdr #{w1 1302}#)))
-           (if (null? #{m1 1308}#)
-             (if (null? #{s1 1309}#)
-               #{w2 1303}#
-               (cons (car #{w2 1303}#)
-                     (#{smart-append 385}#
-                       #{s1 1309}#
-                       (cdr #{w2 1303}#))))
-             (cons (#{smart-append 385}#
-                     #{m1 1308}#
-                     (car #{w2 1303}#))
-                   (#{smart-append 385}#
-                     #{s1 1309}#
-                     (cdr #{w2 1303}#))))))))
-   (#{join-marks 389}#
-     (lambda (#{m1 1318}# #{m2 1319}#)
-       (#{smart-append 385}# #{m1 1318}# #{m2 1319}#)))
-   (#{same-marks? 391}#
-     (lambda (#{x 1322}# #{y 1323}#)
+         (let ((#{m1 1324}# (car #{w1 1318}#))
+               (#{s1 1325}# (cdr #{w1 1318}#)))
+           (if (null? #{m1 1324}#)
+             (if (null? #{s1 1325}#)
+               #{w2 1319}#
+               (cons (car #{w2 1319}#)
+                     (#{smart-append 389}#
+                       #{s1 1325}#
+                       (cdr #{w2 1319}#))))
+             (cons (#{smart-append 389}#
+                     #{m1 1324}#
+                     (car #{w2 1319}#))
+                   (#{smart-append 389}#
+                     #{s1 1325}#
+                     (cdr #{w2 1319}#))))))))
+   (#{join-marks 393}#
+     (lambda (#{m1 1334}# #{m2 1335}#)
+       (#{smart-append 389}# #{m1 1334}# #{m2 1335}#)))
+   (#{same-marks? 395}#
+     (lambda (#{x 1338}# #{y 1339}#)
        (begin
-         (let ((#{t 1328}# (eq? #{x 1322}# #{y 1323}#)))
-           (if #{t 1328}#
-             #{t 1328}#
-             (if (not (null? #{x 1322}#))
-               (if (not (null? #{y 1323}#))
-                 (if (eq? (car #{x 1322}#) (car #{y 1323}#))
-                   (#{same-marks? 391}#
-                     (cdr #{x 1322}#)
-                     (cdr #{y 1323}#))
+         (let ((#{t 1344}# (eq? #{x 1338}# #{y 1339}#)))
+           (if #{t 1344}#
+             #{t 1344}#
+             (if (not (null? #{x 1338}#))
+               (if (not (null? #{y 1339}#))
+                 (if (eq? (car #{x 1338}#) (car #{y 1339}#))
+                   (#{same-marks? 395}#
+                     (cdr #{x 1338}#)
+                     (cdr #{y 1339}#))
                    #f)
                  #f)
                #f))))))
-   (#{id-var-name 393}#
-     (lambda (#{id 1334}# #{w 1335}#)
+   (#{id-var-name 397}#
+     (lambda (#{id 1350}# #{w 1351}#)
        (letrec*
-         ((#{search 1340}#
-            (lambda (#{sym 1356}# #{subst 1357}# #{marks 1358}#)
-              (if (null? #{subst 1357}#)
-                (values #f #{marks 1358}#)
+         ((#{search 1356}#
+            (lambda (#{sym 1372}# #{subst 1373}# #{marks 1374}#)
+              (if (null? #{subst 1373}#)
+                (values #f #{marks 1374}#)
                 (begin
-                  (let ((#{fst 1363}# (car #{subst 1357}#)))
-                    (if (eq? #{fst 1363}# 'shift)
-                      (#{search 1340}#
-                        #{sym 1356}#
-                        (cdr #{subst 1357}#)
-                        (cdr #{marks 1358}#))
+                  (let ((#{fst 1379}# (car #{subst 1373}#)))
+                    (if (eq? #{fst 1379}# 'shift)
+                      (#{search 1356}#
+                        #{sym 1372}#
+                        (cdr #{subst 1373}#)
+                        (cdr #{marks 1374}#))
                       (begin
-                        (let ((#{symnames 1365}#
-                                (#{ribcage-symnames 361}# #{fst 1363}#)))
-                          (if (vector? #{symnames 1365}#)
-                            (#{search-vector-rib 1344}#
-                              #{sym 1356}#
-                              #{subst 1357}#
-                              #{marks 1358}#
-                              #{symnames 1365}#
-                              #{fst 1363}#)
-                            (#{search-list-rib 1342}#
-                              #{sym 1356}#
-                              #{subst 1357}#
-                              #{marks 1358}#
-                              #{symnames 1365}#
-                              #{fst 1363}#))))))))))
-          (#{search-list-rib 1342}#
-            (lambda (#{sym 1366}#
-                     #{subst 1367}#
-                     #{marks 1368}#
-                     #{symnames 1369}#
-                     #{ribcage 1370}#)
+                        (let ((#{symnames 1381}#
+                                (#{ribcage-symnames 365}# #{fst 1379}#)))
+                          (if (vector? #{symnames 1381}#)
+                            (#{search-vector-rib 1360}#
+                              #{sym 1372}#
+                              #{subst 1373}#
+                              #{marks 1374}#
+                              #{symnames 1381}#
+                              #{fst 1379}#)
+                            (#{search-list-rib 1358}#
+                              #{sym 1372}#
+                              #{subst 1373}#
+                              #{marks 1374}#
+                              #{symnames 1381}#
+                              #{fst 1379}#))))))))))
+          (#{search-list-rib 1358}#
+            (lambda (#{sym 1382}#
+                     #{subst 1383}#
+                     #{marks 1384}#
+                     #{symnames 1385}#
+                     #{ribcage 1386}#)
               (letrec*
-                ((#{f 1379}#
-                   (lambda (#{symnames 1380}# #{i 1381}#)
-                     (if (null? #{symnames 1380}#)
-                       (#{search 1340}#
-                         #{sym 1366}#
-                         (cdr #{subst 1367}#)
-                         #{marks 1368}#)
-                       (if (if (eq? (car #{symnames 1380}#) #{sym 1366}#)
-                             (#{same-marks? 391}#
-                               #{marks 1368}#
+                ((#{f 1395}#
+                   (lambda (#{symnames 1396}# #{i 1397}#)
+                     (if (null? #{symnames 1396}#)
+                       (#{search 1356}#
+                         #{sym 1382}#
+                         (cdr #{subst 1383}#)
+                         #{marks 1384}#)
+                       (if (if (eq? (car #{symnames 1396}#) #{sym 1382}#)
+                             (#{same-marks? 395}#
+                               #{marks 1384}#
                                (list-ref
-                                 (#{ribcage-marks 363}# #{ribcage 1370}#)
-                                 #{i 1381}#))
+                                 (#{ribcage-marks 367}# #{ribcage 1386}#)
+                                 #{i 1397}#))
                              #f)
                          (values
                            (list-ref
-                             (#{ribcage-labels 365}# #{ribcage 1370}#)
-                             #{i 1381}#)
-                           #{marks 1368}#)
-                         (#{f 1379}#
-                           (cdr #{symnames 1380}#)
-                           (#{1+}# #{i 1381}#)))))))
-                (begin (#{f 1379}# #{symnames 1369}# 0)))))
-          (#{search-vector-rib 1344}#
-            (lambda (#{sym 1390}#
-                     #{subst 1391}#
-                     #{marks 1392}#
-                     #{symnames 1393}#
-                     #{ribcage 1394}#)
+                             (#{ribcage-labels 369}# #{ribcage 1386}#)
+                             #{i 1397}#)
+                           #{marks 1384}#)
+                         (#{f 1395}#
+                           (cdr #{symnames 1396}#)
+                           (#{1+}# #{i 1397}#)))))))
+                (begin (#{f 1395}# #{symnames 1385}# 0)))))
+          (#{search-vector-rib 1360}#
+            (lambda (#{sym 1406}#
+                     #{subst 1407}#
+                     #{marks 1408}#
+                     #{symnames 1409}#
+                     #{ribcage 1410}#)
               (begin
-                (let ((#{n 1401}# (vector-length #{symnames 1393}#)))
+                (let ((#{n 1417}# (vector-length #{symnames 1409}#)))
                   (letrec*
-                    ((#{f 1404}#
-                       (lambda (#{i 1405}#)
-                         (if (= #{i 1405}# #{n 1401}#)
-                           (#{search 1340}#
-                             #{sym 1390}#
-                             (cdr #{subst 1391}#)
-                             #{marks 1392}#)
+                    ((#{f 1420}#
+                       (lambda (#{i 1421}#)
+                         (if (= #{i 1421}# #{n 1417}#)
+                           (#{search 1356}#
+                             #{sym 1406}#
+                             (cdr #{subst 1407}#)
+                             #{marks 1408}#)
                            (if (if (eq? (vector-ref
-                                          #{symnames 1393}#
-                                          #{i 1405}#)
-                                        #{sym 1390}#)
-                                 (#{same-marks? 391}#
-                                   #{marks 1392}#
+                                          #{symnames 1409}#
+                                          #{i 1421}#)
+                                        #{sym 1406}#)
+                                 (#{same-marks? 395}#
+                                   #{marks 1408}#
                                    (vector-ref
-                                     (#{ribcage-marks 363}# #{ribcage 1394}#)
-                                     #{i 1405}#))
+                                     (#{ribcage-marks 367}# #{ribcage 1410}#)
+                                     #{i 1421}#))
                                  #f)
                              (values
                                (vector-ref
-                                 (#{ribcage-labels 365}# #{ribcage 1394}#)
-                                 #{i 1405}#)
-                               #{marks 1392}#)
-                             (#{f 1404}# (#{1+}# #{i 1405}#)))))))
-                    (begin (#{f 1404}# 0))))))))
+                                 (#{ribcage-labels 369}# #{ribcage 1410}#)
+                                 #{i 1421}#)
+                               #{marks 1408}#)
+                             (#{f 1420}# (#{1+}# #{i 1421}#)))))))
+                    (begin (#{f 1420}# 0))))))))
          (begin
-           (if (symbol? #{id 1334}#)
+           (if (symbol? #{id 1350}#)
              (begin
-               (let ((#{t 1417}#
-                       (#{search 1340}#
-                         #{id 1334}#
-                         (cdr #{w 1335}#)
-                         (car #{w 1335}#))))
-                 (if #{t 1417}# #{t 1417}# #{id 1334}#)))
-             (if (#{syntax-object? 305}# #{id 1334}#)
+               (let ((#{t 1433}#
+                       (#{search 1356}#
+                         #{id 1350}#
+                         (cdr #{w 1351}#)
+                         (car #{w 1351}#))))
+                 (if #{t 1433}# #{t 1433}# #{id 1350}#)))
+             (if (#{syntax-object? 309}# #{id 1350}#)
                (begin
-                 (let ((#{id 1426}#
-                         (#{syntax-object-expression 307}# #{id 1334}#))
-                       (#{w1 1427}#
-                         (#{syntax-object-wrap 309}# #{id 1334}#)))
+                 (let ((#{id 1442}#
+                         (#{syntax-object-expression 311}# #{id 1350}#))
+                       (#{w1 1443}#
+                         (#{syntax-object-wrap 313}# #{id 1350}#)))
                    (begin
-                     (let ((#{marks 1429}#
-                             (#{join-marks 389}#
-                               (car #{w 1335}#)
-                               (car #{w1 1427}#))))
+                     (let ((#{marks 1445}#
+                             (#{join-marks 393}#
+                               (car #{w 1351}#)
+                               (car #{w1 1443}#))))
                        (call-with-values
                          (lambda ()
-                           (#{search 1340}#
-                             #{id 1426}#
-                             (cdr #{w 1335}#)
-                             #{marks 1429}#))
-                         (lambda (#{new-id 1433}# #{marks 1434}#)
+                           (#{search 1356}#
+                             #{id 1442}#
+                             (cdr #{w 1351}#)
+                             #{marks 1445}#))
+                         (lambda (#{new-id 1449}# #{marks 1450}#)
                            (begin
-                             (let ((#{t 1439}# #{new-id 1433}#))
-                               (if #{t 1439}#
-                                 #{t 1439}#
+                             (let ((#{t 1455}# #{new-id 1449}#))
+                               (if #{t 1455}#
+                                 #{t 1455}#
                                  (begin
-                                   (let ((#{t 1442}#
-                                           (#{search 1340}#
-                                             #{id 1426}#
-                                             (cdr #{w1 1427}#)
-                                             #{marks 1434}#)))
-                                     (if #{t 1442}#
-                                       #{t 1442}#
-                                       #{id 1426}#))))))))))))
+                                   (let ((#{t 1458}#
+                                           (#{search 1356}#
+                                             #{id 1442}#
+                                             (cdr #{w1 1443}#)
+                                             #{marks 1450}#)))
+                                     (if #{t 1458}#
+                                       #{t 1458}#
+                                       #{id 1442}#))))))))))))
                (syntax-violation
                  'id-var-name
                  "invalid id"
-                 #{id 1334}#)))))))
-   (#{free-id=? 395}#
-     (lambda (#{i 1447}# #{j 1448}#)
+                 #{id 1350}#)))))))
+   (#{free-id=? 399}#
+     (lambda (#{i 1463}# #{j 1464}#)
        (if (eq? (begin
-                  (let ((#{x 1454}# #{i 1447}#))
-                    (if (#{syntax-object? 305}# #{x 1454}#)
-                      (#{syntax-object-expression 307}# #{x 1454}#)
-                      #{x 1454}#)))
+                  (let ((#{x 1470}# #{i 1463}#))
+                    (if (#{syntax-object? 309}# #{x 1470}#)
+                      (#{syntax-object-expression 311}# #{x 1470}#)
+                      #{x 1470}#)))
                 (begin
-                  (let ((#{x 1457}# #{j 1448}#))
-                    (if (#{syntax-object? 305}# #{x 1457}#)
-                      (#{syntax-object-expression 307}# #{x 1457}#)
-                      #{x 1457}#))))
-         (eq? (#{id-var-name 393}# #{i 1447}# '(()))
-              (#{id-var-name 393}# #{j 1448}# '(())))
+                  (let ((#{x 1473}# #{j 1464}#))
+                    (if (#{syntax-object? 309}# #{x 1473}#)
+                      (#{syntax-object-expression 311}# #{x 1473}#)
+                      #{x 1473}#))))
+         (eq? (#{id-var-name 397}# #{i 1463}# '(()))
+              (#{id-var-name 397}# #{j 1464}# '(())))
          #f)))
-   (#{bound-id=? 397}#
-     (lambda (#{i 1461}# #{j 1462}#)
-       (if (if (#{syntax-object? 305}# #{i 1461}#)
-             (#{syntax-object? 305}# #{j 1462}#)
+   (#{bound-id=? 401}#
+     (lambda (#{i 1477}# #{j 1478}#)
+       (if (if (#{syntax-object? 309}# #{i 1477}#)
+             (#{syntax-object? 309}# #{j 1478}#)
              #f)
-         (if (eq? (#{syntax-object-expression 307}# #{i 1461}#)
-                  (#{syntax-object-expression 307}# #{j 1462}#))
-           (#{same-marks? 391}#
-             (car (#{syntax-object-wrap 309}# #{i 1461}#))
-             (car (#{syntax-object-wrap 309}# #{j 1462}#)))
+         (if (eq? (#{syntax-object-expression 311}# #{i 1477}#)
+                  (#{syntax-object-expression 311}# #{j 1478}#))
+           (#{same-marks? 395}#
+             (car (#{syntax-object-wrap 313}# #{i 1477}#))
+             (car (#{syntax-object-wrap 313}# #{j 1478}#)))
            #f)
-         (eq? #{i 1461}# #{j 1462}#))))
-   (#{valid-bound-ids? 399}#
-     (lambda (#{ids 1471}#)
+         (eq? #{i 1477}# #{j 1478}#))))
+   (#{valid-bound-ids? 403}#
+     (lambda (#{ids 1487}#)
        (if (letrec*
-             ((#{all-ids? 1476}#
-                (lambda (#{ids 1477}#)
+             ((#{all-ids? 1492}#
+                (lambda (#{ids 1493}#)
                   (begin
-                    (let ((#{t 1480}# (null? #{ids 1477}#)))
-                      (if #{t 1480}#
-                        #{t 1480}#
-                        (if (#{id? 339}# (car #{ids 1477}#))
-                          (#{all-ids? 1476}# (cdr #{ids 1477}#))
+                    (let ((#{t 1496}# (null? #{ids 1493}#)))
+                      (if #{t 1496}#
+                        #{t 1496}#
+                        (if (#{id? 343}# (car #{ids 1493}#))
+                          (#{all-ids? 1492}# (cdr #{ids 1493}#))
                           #f)))))))
-             (begin (#{all-ids? 1476}# #{ids 1471}#)))
-         (#{distinct-bound-ids? 401}# #{ids 1471}#)
+             (begin (#{all-ids? 1492}# #{ids 1487}#)))
+         (#{distinct-bound-ids? 405}# #{ids 1487}#)
          #f)))
-   (#{distinct-bound-ids? 401}#
-     (lambda (#{ids 1485}#)
+   (#{distinct-bound-ids? 405}#
+     (lambda (#{ids 1501}#)
        (letrec*
-         ((#{distinct? 1489}#
-            (lambda (#{ids 1490}#)
+         ((#{distinct? 1505}#
+            (lambda (#{ids 1506}#)
               (begin
-                (let ((#{t 1493}# (null? #{ids 1490}#)))
-                  (if #{t 1493}#
-                    #{t 1493}#
-                    (if (not (#{bound-id-member? 403}#
-                               (car #{ids 1490}#)
-                               (cdr #{ids 1490}#)))
-                      (#{distinct? 1489}# (cdr #{ids 1490}#))
+                (let ((#{t 1509}# (null? #{ids 1506}#)))
+                  (if #{t 1509}#
+                    #{t 1509}#
+                    (if (not (#{bound-id-member? 407}#
+                               (car #{ids 1506}#)
+                               (cdr #{ids 1506}#)))
+                      (#{distinct? 1505}# (cdr #{ids 1506}#))
                       #f)))))))
-         (begin (#{distinct? 1489}# #{ids 1485}#)))))
-   (#{bound-id-member? 403}#
-     (lambda (#{x 1497}# #{list 1498}#)
-       (if (not (null? #{list 1498}#))
+         (begin (#{distinct? 1505}# #{ids 1501}#)))))
+   (#{bound-id-member? 407}#
+     (lambda (#{x 1513}# #{list 1514}#)
+       (if (not (null? #{list 1514}#))
          (begin
-           (let ((#{t 1505}#
-                   (#{bound-id=? 397}#
-                     #{x 1497}#
-                     (car #{list 1498}#))))
-             (if #{t 1505}#
-               #{t 1505}#
-               (#{bound-id-member? 403}#
-                 #{x 1497}#
-                 (cdr #{list 1498}#)))))
+           (let ((#{t 1521}#
+                   (#{bound-id=? 401}#
+                     #{x 1513}#
+                     (car #{list 1514}#))))
+             (if #{t 1521}#
+               #{t 1521}#
+               (#{bound-id-member? 407}#
+                 #{x 1513}#
+                 (cdr #{list 1514}#)))))
          #f)))
-   (#{wrap 405}#
-     (lambda (#{x 1507}# #{w 1508}# #{defmod 1509}#)
-       (if (if (null? (car #{w 1508}#))
-             (null? (cdr #{w 1508}#))
+   (#{wrap 409}#
+     (lambda (#{x 1523}# #{w 1524}# #{defmod 1525}#)
+       (if (if (null? (car #{w 1524}#))
+             (null? (cdr #{w 1524}#))
              #f)
-         #{x 1507}#
-         (if (#{syntax-object? 305}# #{x 1507}#)
-           (#{make-syntax-object 303}#
-             (#{syntax-object-expression 307}# #{x 1507}#)
-             (#{join-wraps 387}#
-               #{w 1508}#
-               (#{syntax-object-wrap 309}# #{x 1507}#))
-             (#{syntax-object-module 311}# #{x 1507}#))
-           (if (null? #{x 1507}#)
-             #{x 1507}#
-             (#{make-syntax-object 303}#
-               #{x 1507}#
-               #{w 1508}#
-               #{defmod 1509}#))))))
-   (#{source-wrap 407}#
-     (lambda (#{x 1524}#
-              #{w 1525}#
-              #{s 1526}#
-              #{defmod 1527}#)
-       (#{wrap 405}#
-         (#{decorate-source 259}# #{x 1524}# #{s 1526}#)
-         #{w 1525}#
-         #{defmod 1527}#)))
-   (#{chi-sequence 409}#
-     (lambda (#{body 1532}#
-              #{r 1533}#
-              #{w 1534}#
-              #{s 1535}#
-              #{mod 1536}#)
-       (#{build-sequence 293}#
-         #{s 1535}#
+         #{x 1523}#
+         (if (#{syntax-object? 309}# #{x 1523}#)
+           (#{make-syntax-object 307}#
+             (#{syntax-object-expression 311}# #{x 1523}#)
+             (#{join-wraps 391}#
+               #{w 1524}#
+               (#{syntax-object-wrap 313}# #{x 1523}#))
+             (#{syntax-object-module 315}# #{x 1523}#))
+           (if (null? #{x 1523}#)
+             #{x 1523}#
+             (#{make-syntax-object 307}#
+               #{x 1523}#
+               #{w 1524}#
+               #{defmod 1525}#))))))
+   (#{source-wrap 411}#
+     (lambda (#{x 1540}#
+              #{w 1541}#
+              #{s 1542}#
+              #{defmod 1543}#)
+       (#{wrap 409}#
+         (#{decorate-source 261}# #{x 1540}# #{s 1542}#)
+         #{w 1541}#
+         #{defmod 1543}#)))
+   (#{chi-sequence 413}#
+     (lambda (#{body 1548}#
+              #{r 1549}#
+              #{w 1550}#
+              #{s 1551}#
+              #{mod 1552}#)
+       (#{build-sequence 297}#
+         #{s 1551}#
          (letrec*
-           ((#{dobody 1547}#
-              (lambda (#{body 1548}#
-                       #{r 1549}#
-                       #{w 1550}#
-                       #{mod 1551}#)
-                (if (null? #{body 1548}#)
+           ((#{dobody 1563}#
+              (lambda (#{body 1564}#
+                       #{r 1565}#
+                       #{w 1566}#
+                       #{mod 1567}#)
+                (if (null? #{body 1564}#)
                   '()
                   (begin
-                    (let ((#{first 1553}#
-                            (#{chi 419}#
-                              (car #{body 1548}#)
-                              #{r 1549}#
-                              #{w 1550}#
-                              #{mod 1551}#)))
-                      (cons #{first 1553}#
-                            (#{dobody 1547}#
-                              (cdr #{body 1548}#)
-                              #{r 1549}#
-                              #{w 1550}#
-                              #{mod 1551}#))))))))
+                    (let ((#{first 1569}#
+                            (#{chi 423}#
+                              (car #{body 1564}#)
+                              #{r 1565}#
+                              #{w 1566}#
+                              #{mod 1567}#)))
+                      (cons #{first 1569}#
+                            (#{dobody 1563}#
+                              (cdr #{body 1564}#)
+                              #{r 1565}#
+                              #{w 1566}#
+                              #{mod 1567}#))))))))
            (begin
-             (#{dobody 1547}#
-               #{body 1532}#
-               #{r 1533}#
-               #{w 1534}#
-               #{mod 1536}#))))))
-   (#{chi-top-sequence 411}#
-     (lambda (#{body 1554}#
-              #{r 1555}#
-              #{w 1556}#
-              #{s 1557}#
-              #{m 1558}#
-              #{esew 1559}#
-              #{mod 1560}#)
+             (#{dobody 1563}#
+               #{body 1548}#
+               #{r 1549}#
+               #{w 1550}#
+               #{mod 1552}#))))))
+   (#{chi-top-sequence 415}#
+     (lambda (#{body 1570}#
+              #{r 1571}#
+              #{w 1572}#
+              #{s 1573}#
+              #{m 1574}#
+              #{esew 1575}#
+              #{mod 1576}#)
        (letrec*
-         ((#{scan 1569}#
-            (lambda (#{body 1570}#
-                     #{r 1571}#
-                     #{w 1572}#
-                     #{s 1573}#
-                     #{m 1574}#
-                     #{esew 1575}#
-                     #{mod 1576}#
-                     #{exps 1577}#)
-              (if (null? #{body 1570}#)
-                #{exps 1577}#
+         ((#{scan 1585}#
+            (lambda (#{body 1586}#
+                     #{r 1587}#
+                     #{w 1588}#
+                     #{s 1589}#
+                     #{m 1590}#
+                     #{esew 1591}#
+                     #{mod 1592}#
+                     #{exps 1593}#)
+              (if (null? #{body 1586}#)
+                #{exps 1593}#
                 (call-with-values
                   (lambda ()
                     (call-with-values
                       (lambda ()
                         (begin
-                          (let ((#{e 1590}# (car #{body 1570}#)))
-                            (#{syntax-type 417}#
-                              #{e 1590}#
-                              #{r 1571}#
-                              #{w 1572}#
+                          (let ((#{e 1606}# (car #{body 1586}#)))
+                            (#{syntax-type 421}#
+                              #{e 1606}#
+                              #{r 1587}#
+                              #{w 1588}#
                               (begin
-                                (let ((#{t 1593}#
-                                        (#{source-annotation 320}#
-                                          #{e 1590}#)))
-                                  (if #{t 1593}# #{t 1593}# #{s 1573}#)))
+                                (let ((#{t 1609}#
+                                        (#{source-annotation 324}#
+                                          #{e 1606}#)))
+                                  (if #{t 1609}# #{t 1609}# #{s 1589}#)))
                               #f
-                              #{mod 1576}#
+                              #{mod 1592}#
                               #f))))
-                      (lambda (#{type 1595}#
-                               #{value 1596}#
-                               #{e 1597}#
-                               #{w 1598}#
-                               #{s 1599}#
-                               #{mod 1600}#)
-                        (if (eqv? #{type 1595}# 'begin-form)
-                          (let ((#{tmp 1608}# #{e 1597}#))
-                            (let ((#{tmp 1609}#
-                                    ($sc-dispatch #{tmp 1608}# '(_))))
-                              (if #{tmp 1609}#
-                                (@apply (lambda () #{exps 1577}#) #{tmp 1609}#)
-                                (let ((#{tmp 1610}#
+                      (lambda (#{type 1611}#
+                               #{value 1612}#
+                               #{e 1613}#
+                               #{w 1614}#
+                               #{s 1615}#
+                               #{mod 1616}#)
+                        (if (memv #{type 1611}# '(begin-form))
+                          (let ((#{tmp 1624}# #{e 1613}#))
+                            (let ((#{tmp 1625}#
+                                    ($sc-dispatch #{tmp 1624}# '(_))))
+                              (if #{tmp 1625}#
+                                (@apply (lambda () #{exps 1593}#) #{tmp 1625}#)
+                                (let ((#{tmp 1626}#
                                         ($sc-dispatch
-                                          #{tmp 1608}#
+                                          #{tmp 1624}#
                                           '(_ any . each-any))))
-                                  (if #{tmp 1610}#
+                                  (if #{tmp 1626}#
                                     (@apply
-                                      (lambda (#{e1 1613}# #{e2 1614}#)
-                                        (#{scan 1569}#
-                                          (cons #{e1 1613}# #{e2 1614}#)
-                                          #{r 1571}#
-                                          #{w 1598}#
-                                          #{s 1599}#
-                                          #{m 1574}#
-                                          #{esew 1575}#
-                                          #{mod 1600}#
-                                          #{exps 1577}#))
-                                      #{tmp 1610}#)
+                                      (lambda (#{e1 1629}# #{e2 1630}#)
+                                        (#{scan 1585}#
+                                          (cons #{e1 1629}# #{e2 1630}#)
+                                          #{r 1587}#
+                                          #{w 1614}#
+                                          #{s 1615}#
+                                          #{m 1590}#
+                                          #{esew 1591}#
+                                          #{mod 1616}#
+                                          #{exps 1593}#))
+                                      #{tmp 1626}#)
                                     (syntax-violation
                                       #f
                                       "source expression failed to match any 
pattern"
-                                      #{tmp 1608}#))))))
-                          (if (eqv? #{type 1595}# 'local-syntax-form)
-                            (#{chi-local-syntax 429}#
-                              #{value 1596}#
-                              #{e 1597}#
-                              #{r 1571}#
-                              #{w 1598}#
-                              #{s 1599}#
-                              #{mod 1600}#
-                              (lambda (#{body 1617}#
-                                       #{r 1618}#
-                                       #{w 1619}#
-                                       #{s 1620}#
-                                       #{mod 1621}#)
-                                (#{scan 1569}#
-                                  #{body 1617}#
-                                  #{r 1618}#
-                                  #{w 1619}#
-                                  #{s 1620}#
-                                  #{m 1574}#
-                                  #{esew 1575}#
-                                  #{mod 1621}#
-                                  #{exps 1577}#)))
-                            (if (eqv? #{type 1595}# 'eval-when-form)
-                              (let ((#{tmp 1628}# #{e 1597}#))
-                                (let ((#{tmp 1629}#
+                                      #{tmp 1624}#))))))
+                          (if (memv #{type 1611}# '(local-syntax-form))
+                            (#{chi-local-syntax 433}#
+                              #{value 1612}#
+                              #{e 1613}#
+                              #{r 1587}#
+                              #{w 1614}#
+                              #{s 1615}#
+                              #{mod 1616}#
+                              (lambda (#{body 1633}#
+                                       #{r 1634}#
+                                       #{w 1635}#
+                                       #{s 1636}#
+                                       #{mod 1637}#)
+                                (#{scan 1585}#
+                                  #{body 1633}#
+                                  #{r 1634}#
+                                  #{w 1635}#
+                                  #{s 1636}#
+                                  #{m 1590}#
+                                  #{esew 1591}#
+                                  #{mod 1637}#
+                                  #{exps 1593}#)))
+                            (if (memv #{type 1611}# '(eval-when-form))
+                              (let ((#{tmp 1644}# #{e 1613}#))
+                                (let ((#{tmp 1645}#
                                         ($sc-dispatch
-                                          #{tmp 1628}#
+                                          #{tmp 1644}#
                                           '(_ each-any any . each-any))))
-                                  (if #{tmp 1629}#
+                                  (if #{tmp 1645}#
                                     (@apply
-                                      (lambda (#{x 1633}#
-                                               #{e1 1634}#
-                                               #{e2 1635}#)
+                                      (lambda (#{x 1649}#
+                                               #{e1 1650}#
+                                               #{e2 1651}#)
                                         (begin
-                                          (let ((#{when-list 1638}#
-                                                  (#{chi-when-list 415}#
-                                                    #{e 1597}#
-                                                    #{x 1633}#
-                                                    #{w 1598}#))
-                                                (#{body 1639}#
-                                                  (cons #{e1 1634}#
-                                                        #{e2 1635}#)))
-                                            (if (eq? #{m 1574}# 'e)
+                                          (let ((#{when-list 1654}#
+                                                  (#{chi-when-list 419}#
+                                                    #{e 1613}#
+                                                    #{x 1649}#
+                                                    #{w 1614}#))
+                                                (#{body 1655}#
+                                                  (cons #{e1 1650}#
+                                                        #{e2 1651}#)))
+                                            (if (eq? #{m 1590}# 'e)
                                               (if (memq 'eval
-                                                        #{when-list 1638}#)
-                                                (#{scan 1569}#
-                                                  #{body 1639}#
-                                                  #{r 1571}#
-                                                  #{w 1598}#
-                                                  #{s 1599}#
+                                                        #{when-list 1654}#)
+                                                (#{scan 1585}#
+                                                  #{body 1655}#
+                                                  #{r 1587}#
+                                                  #{w 1614}#
+                                                  #{s 1615}#
                                                   (if (memq 'expand
-                                                            #{when-list 1638}#)
+                                                            #{when-list 1654}#)
                                                     'c&e
                                                     'e)
                                                   '(eval)
-                                                  #{mod 1600}#
-                                                  #{exps 1577}#)
+                                                  #{mod 1616}#
+                                                  #{exps 1593}#)
                                                 (begin
                                                   (if (memq 'expand
-                                                            #{when-list 1638}#)
-                                                    (#{top-level-eval-hook 
250}#
-                                                      (#{chi-top-sequence 411}#
-                                                        #{body 1639}#
-                                                        #{r 1571}#
-                                                        #{w 1598}#
-                                                        #{s 1599}#
+                                                            #{when-list 1654}#)
+                                                    (#{top-level-eval-hook 
252}#
+                                                      (#{chi-top-sequence 415}#
+                                                        #{body 1655}#
+                                                        #{r 1587}#
+                                                        #{w 1614}#
+                                                        #{s 1615}#
                                                         'e
                                                         '(eval)
-                                                        #{mod 1600}#)
-                                                      #{mod 1600}#))
-                                                  #{exps 1577}#))
+                                                        #{mod 1616}#)
+                                                      #{mod 1616}#))
+                                                  #{exps 1593}#))
                                               (if (memq 'load
-                                                        #{when-list 1638}#)
+                                                        #{when-list 1654}#)
                                                 (if (begin
-                                                      (let ((#{t 1648}#
+                                                      (let ((#{t 1664}#
                                                               (memq 'compile
-                                                                    
#{when-list 1638}#)))
-                                                        (if #{t 1648}#
-                                                          #{t 1648}#
+                                                                    
#{when-list 1654}#)))
+                                                        (if #{t 1664}#
+                                                          #{t 1664}#
                                                           (begin
-                                                            (let ((#{t 1651}#
+                                                            (let ((#{t 1667}#
                                                                     (memq 
'expand
-                                                                          
#{when-list 1638}#)))
-                                                              (if #{t 1651}#
-                                                                #{t 1651}#
-                                                                (if (eq? #{m 
1574}#
+                                                                          
#{when-list 1654}#)))
+                                                              (if #{t 1667}#
+                                                                #{t 1667}#
+                                                                (if (eq? #{m 
1590}#
                                                                          'c&e)
                                                                   (memq 'eval
-                                                                        
#{when-list 1638}#)
+                                                                        
#{when-list 1654}#)
                                                                   #f)))))))
-                                                  (#{scan 1569}#
-                                                    #{body 1639}#
-                                                    #{r 1571}#
-                                                    #{w 1598}#
-                                                    #{s 1599}#
+                                                  (#{scan 1585}#
+                                                    #{body 1655}#
+                                                    #{r 1587}#
+                                                    #{w 1614}#
+                                                    #{s 1615}#
                                                     'c&e
                                                     '(compile load)
-                                                    #{mod 1600}#
-                                                    #{exps 1577}#)
-                                                  (if (if (eq? #{m 1574}# 'c)
-                                                        #t
-                                                        (eq? #{m 1574}# 'c&e))
-                                                    (#{scan 1569}#
-                                                      #{body 1639}#
-                                                      #{r 1571}#
-                                                      #{w 1598}#
-                                                      #{s 1599}#
+                                                    #{mod 1616}#
+                                                    #{exps 1593}#)
+                                                  (if (memq #{m 1590}#
+                                                            '(c c&e))
+                                                    (#{scan 1585}#
+                                                      #{body 1655}#
+                                                      #{r 1587}#
+                                                      #{w 1614}#
+                                                      #{s 1615}#
                                                       'c
                                                       '(load)
-                                                      #{mod 1600}#
-                                                      #{exps 1577}#)
-                                                    #{exps 1577}#))
+                                                      #{mod 1616}#
+                                                      #{exps 1593}#)
+                                                    #{exps 1593}#))
                                                 (if (begin
-                                                      (let ((#{t 1659}#
+                                                      (let ((#{t 1675}#
                                                               (memq 'compile
-                                                                    
#{when-list 1638}#)))
-                                                        (if #{t 1659}#
-                                                          #{t 1659}#
+                                                                    
#{when-list 1654}#)))
+                                                        (if #{t 1675}#
+                                                          #{t 1675}#
                                                           (begin
-                                                            (let ((#{t 1662}#
+                                                            (let ((#{t 1678}#
                                                                     (memq 
'expand
-                                                                          
#{when-list 1638}#)))
-                                                              (if #{t 1662}#
-                                                                #{t 1662}#
-                                                                (if (eq? #{m 
1574}#
+                                                                          
#{when-list 1654}#)))
+                                                              (if #{t 1678}#
+                                                                #{t 1678}#
+                                                                (if (eq? #{m 
1590}#
                                                                          'c&e)
                                                                   (memq 'eval
-                                                                        
#{when-list 1638}#)
+                                                                        
#{when-list 1654}#)
                                                                   #f)))))))
                                                   (begin
-                                                    (#{top-level-eval-hook 
250}#
-                                                      (#{chi-top-sequence 411}#
-                                                        #{body 1639}#
-                                                        #{r 1571}#
-                                                        #{w 1598}#
-                                                        #{s 1599}#
+                                                    (#{top-level-eval-hook 
252}#
+                                                      (#{chi-top-sequence 415}#
+                                                        #{body 1655}#
+                                                        #{r 1587}#
+                                                        #{w 1614}#
+                                                        #{s 1615}#
                                                         'e
                                                         '(eval)
-                                                        #{mod 1600}#)
-                                                      #{mod 1600}#)
-                                                    #{exps 1577}#)
-                                                  #{exps 1577}#))))))
-                                      #{tmp 1629}#)
+                                                        #{mod 1616}#)
+                                                      #{mod 1616}#)
+                                                    #{exps 1593}#)
+                                                  #{exps 1593}#))))))
+                                      #{tmp 1645}#)
                                     (syntax-violation
                                       #f
                                       "source expression failed to match any 
pattern"
-                                      #{tmp 1628}#))))
-                              (if (eqv? #{type 1595}# 'define-syntax-form)
+                                      #{tmp 1644}#))))
+                              (if (memv #{type 1611}# '(define-syntax-form))
                                 (begin
-                                  (let ((#{n 1670}#
-                                          (#{id-var-name 393}#
-                                            #{value 1596}#
-                                            #{w 1598}#))
-                                        (#{r 1671}#
-                                          (#{macros-only-env 331}#
-                                            #{r 1571}#)))
-                                    (if (eqv? #{m 1574}# 'c)
-                                      (if (memq 'compile #{esew 1575}#)
+                                  (let ((#{n 1686}#
+                                          (#{id-var-name 397}#
+                                            #{value 1612}#
+                                            #{w 1614}#))
+                                        (#{r 1687}#
+                                          (#{macros-only-env 335}#
+                                            #{r 1587}#)))
+                                    (if (memv #{m 1590}# '(c))
+                                      (if (memq 'compile #{esew 1591}#)
                                         (begin
-                                          (let ((#{e 1674}#
-                                                  (#{chi-install-global 413}#
-                                                    #{n 1670}#
-                                                    (#{chi 419}#
-                                                      #{e 1597}#
-                                                      #{r 1671}#
-                                                      #{w 1598}#
-                                                      #{mod 1600}#))))
+                                          (let ((#{e 1690}#
+                                                  (#{chi-install-global 417}#
+                                                    #{n 1686}#
+                                                    (#{chi 423}#
+                                                      #{e 1613}#
+                                                      #{r 1687}#
+                                                      #{w 1614}#
+                                                      #{mod 1616}#))))
                                             (begin
-                                              (#{top-level-eval-hook 250}#
-                                                #{e 1674}#
-                                                #{mod 1600}#)
-                                              (if (memq 'load #{esew 1575}#)
-                                                (cons #{e 1674}# #{exps 1577}#)
-                                                #{exps 1577}#))))
-                                        (if (memq 'load #{esew 1575}#)
-                                          (cons (#{chi-install-global 413}#
-                                                  #{n 1670}#
-                                                  (#{chi 419}#
-                                                    #{e 1597}#
-                                                    #{r 1671}#
-                                                    #{w 1598}#
-                                                    #{mod 1600}#))
-                                                #{exps 1577}#)
-                                          #{exps 1577}#))
-                                      (if (eqv? #{m 1574}# 'c&e)
+                                              (#{top-level-eval-hook 252}#
+                                                #{e 1690}#
+                                                #{mod 1616}#)
+                                              (if (memq 'load #{esew 1591}#)
+                                                (cons #{e 1690}# #{exps 1593}#)
+                                                #{exps 1593}#))))
+                                        (if (memq 'load #{esew 1591}#)
+                                          (cons (#{chi-install-global 417}#
+                                                  #{n 1686}#
+                                                  (#{chi 423}#
+                                                    #{e 1613}#
+                                                    #{r 1687}#
+                                                    #{w 1614}#
+                                                    #{mod 1616}#))
+                                                #{exps 1593}#)
+                                          #{exps 1593}#))
+                                      (if (memv #{m 1590}# '(c&e))
                                         (begin
-                                          (let ((#{e 1677}#
-                                                  (#{chi-install-global 413}#
-                                                    #{n 1670}#
-                                                    (#{chi 419}#
-                                                      #{e 1597}#
-                                                      #{r 1671}#
-                                                      #{w 1598}#
-                                                      #{mod 1600}#))))
+                                          (let ((#{e 1693}#
+                                                  (#{chi-install-global 417}#
+                                                    #{n 1686}#
+                                                    (#{chi 423}#
+                                                      #{e 1613}#
+                                                      #{r 1687}#
+                                                      #{w 1614}#
+                                                      #{mod 1616}#))))
                                             (begin
-                                              (#{top-level-eval-hook 250}#
-                                                #{e 1677}#
-                                                #{mod 1600}#)
-                                              (cons #{e 1677}#
-                                                    #{exps 1577}#))))
+                                              (#{top-level-eval-hook 252}#
+                                                #{e 1693}#
+                                                #{mod 1616}#)
+                                              (cons #{e 1693}#
+                                                    #{exps 1593}#))))
                                         (begin
-                                          (if (memq 'eval #{esew 1575}#)
-                                            (#{top-level-eval-hook 250}#
-                                              (#{chi-install-global 413}#
-                                                #{n 1670}#
-                                                (#{chi 419}#
-                                                  #{e 1597}#
-                                                  #{r 1671}#
-                                                  #{w 1598}#
-                                                  #{mod 1600}#))
-                                              #{mod 1600}#))
-                                          #{exps 1577}#)))))
-                                (if (eqv? #{type 1595}# 'define-form)
+                                          (if (memq 'eval #{esew 1591}#)
+                                            (#{top-level-eval-hook 252}#
+                                              (#{chi-install-global 417}#
+                                                #{n 1686}#
+                                                (#{chi 423}#
+                                                  #{e 1613}#
+                                                  #{r 1687}#
+                                                  #{w 1614}#
+                                                  #{mod 1616}#))
+                                              #{mod 1616}#))
+                                          #{exps 1593}#)))))
+                                (if (memv #{type 1611}# '(define-form))
                                   (begin
-                                    (let ((#{n 1682}#
-                                            (#{id-var-name 393}#
-                                              #{value 1596}#
-                                              #{w 1598}#)))
+                                    (let ((#{n 1698}#
+                                            (#{id-var-name 397}#
+                                              #{value 1612}#
+                                              #{w 1614}#)))
                                       (begin
-                                        (let ((#{type 1684}#
-                                                (car (#{lookup 333}#
-                                                       #{n 1682}#
-                                                       #{r 1571}#
-                                                       #{mod 1600}#))))
-                                          (if (if (eqv? #{type 1684}# 'global)
-                                                #t
-                                                (if (eqv? #{type 1684}# 'core)
-                                                  #t
-                                                  (if (eqv? #{type 1684}#
-                                                            'macro)
-                                                    #t
-                                                    (eqv? #{type 1684}#
-                                                          'module-ref))))
+                                        (let ((#{type 1700}#
+                                                (car (#{lookup 337}#
+                                                       #{n 1698}#
+                                                       #{r 1587}#
+                                                       #{mod 1616}#))))
+                                          (if (memv #{type 1700}#
+                                                    '(global
+                                                       core
+                                                       macro
+                                                       module-ref))
                                             (begin
-                                              (if (if (if (eq? #{m 1574}# 'c)
-                                                        #t
-                                                        (eq? #{m 1574}# 'c&e))
+                                              (if (if (memq #{m 1590}#
+                                                            '(c c&e))
                                                     (if (not 
(module-local-variable
                                                                (current-module)
-                                                               #{n 1682}#))
+                                                               #{n 1698}#))
                                                       (current-module)
                                                       #f)
                                                     #f)
                                                 (begin
-                                                  (let ((#{old 1691}#
+                                                  (let ((#{old 1707}#
                                                           (module-variable
                                                             (current-module)
-                                                            #{n 1682}#)))
+                                                            #{n 1698}#)))
                                                     (if (if (variable?
-                                                              #{old 1691}#)
+                                                              #{old 1707}#)
                                                           (variable-bound?
-                                                            #{old 1691}#)
+                                                            #{old 1707}#)
                                                           #f)
                                                       (module-define!
                                                         (current-module)
-                                                        #{n 1682}#
+                                                        #{n 1698}#
                                                         (variable-ref
-                                                          #{old 1691}#))
+                                                          #{old 1707}#))
                                                       (module-add!
                                                         (current-module)
-                                                        #{n 1682}#
+                                                        #{n 1698}#
                                                         
(make-undefined-variable))))))
-                                              (cons (if (eq? #{m 1574}# 'c&e)
+                                              (cons (if (eq? #{m 1590}# 'c&e)
                                                       (begin
-                                                        (let ((#{x 1695}#
-                                                                
(#{build-global-definition 281}#
-                                                                  #{s 1599}#
-                                                                  #{n 1682}#
-                                                                  (#{chi 419}#
-                                                                    #{e 1597}#
-                                                                    #{r 1571}#
-                                                                    #{w 1598}#
-                                                                    #{mod 
1600}#))))
+                                                        (let ((#{x 1711}#
+                                                                
(#{build-global-definition 283}#
+                                                                  #{s 1615}#
+                                                                  #{n 1698}#
+                                                                  (#{chi 423}#
+                                                                    #{e 1613}#
+                                                                    #{r 1587}#
+                                                                    #{w 1614}#
+                                                                    #{mod 
1616}#))))
                                                           (begin
-                                                            
(#{top-level-eval-hook 250}#
-                                                              #{x 1695}#
-                                                              #{mod 1600}#)
-                                                            #{x 1695}#)))
+                                                            
(#{top-level-eval-hook 252}#
+                                                              #{x 1711}#
+                                                              #{mod 1616}#)
+                                                            #{x 1711}#)))
                                                       (lambda ()
-                                                        
(#{build-global-definition 281}#
-                                                          #{s 1599}#
-                                                          #{n 1682}#
-                                                          (#{chi 419}#
-                                                            #{e 1597}#
-                                                            #{r 1571}#
-                                                            #{w 1598}#
-                                                            #{mod 1600}#))))
-                                                    #{exps 1577}#))
-                                            (if (eqv? #{type 1684}#
-                                                      'displaced-lexical)
+                                                        
(#{build-global-definition 283}#
+                                                          #{s 1615}#
+                                                          #{n 1698}#
+                                                          (#{chi 423}#
+                                                            #{e 1613}#
+                                                            #{r 1587}#
+                                                            #{w 1614}#
+                                                            #{mod 1616}#))))
+                                                    #{exps 1593}#))
+                                            (if (memv #{type 1700}#
+                                                      '(displaced-lexical))
                                               (syntax-violation
                                                 #f
                                                 "identifier out of context"
-                                                #{e 1597}#
-                                                (#{wrap 405}#
-                                                  #{value 1596}#
-                                                  #{w 1598}#
-                                                  #{mod 1600}#))
+                                                #{e 1613}#
+                                                (#{wrap 409}#
+                                                  #{value 1612}#
+                                                  #{w 1614}#
+                                                  #{mod 1616}#))
                                               (syntax-violation
                                                 #f
                                                 "cannot define keyword at top 
level"
-                                                #{e 1597}#
-                                                (#{wrap 405}#
-                                                  #{value 1596}#
-                                                  #{w 1598}#
-                                                  #{mod 1600}#))))))))
-                                  (cons (if (eq? #{m 1574}# 'c&e)
+                                                #{e 1613}#
+                                                (#{wrap 409}#
+                                                  #{value 1612}#
+                                                  #{w 1614}#
+                                                  #{mod 1616}#))))))))
+                                  (cons (if (eq? #{m 1590}# 'c&e)
                                           (begin
-                                            (let ((#{x 1700}#
-                                                    (#{chi-expr 421}#
-                                                      #{type 1595}#
-                                                      #{value 1596}#
-                                                      #{e 1597}#
-                                                      #{r 1571}#
-                                                      #{w 1598}#
-                                                      #{s 1599}#
-                                                      #{mod 1600}#)))
+                                            (let ((#{x 1716}#
+                                                    (#{chi-expr 425}#
+                                                      #{type 1611}#
+                                                      #{value 1612}#
+                                                      #{e 1613}#
+                                                      #{r 1587}#
+                                                      #{w 1614}#
+                                                      #{s 1615}#
+                                                      #{mod 1616}#)))
                                               (begin
-                                                (#{top-level-eval-hook 250}#
-                                                  #{x 1700}#
-                                                  #{mod 1600}#)
-                                                #{x 1700}#)))
+                                                (#{top-level-eval-hook 252}#
+                                                  #{x 1716}#
+                                                  #{mod 1616}#)
+                                                #{x 1716}#)))
                                           (lambda ()
-                                            (#{chi-expr 421}#
-                                              #{type 1595}#
-                                              #{value 1596}#
-                                              #{e 1597}#
-                                              #{r 1571}#
-                                              #{w 1598}#
-                                              #{s 1599}#
-                                              #{mod 1600}#)))
-                                        #{exps 1577}#)))))))))
-                  (lambda (#{exps 1701}#)
-                    (#{scan 1569}#
-                      (cdr #{body 1570}#)
-                      #{r 1571}#
-                      #{w 1572}#
-                      #{s 1573}#
-                      #{m 1574}#
-                      #{esew 1575}#
-                      #{mod 1576}#
-                      #{exps 1701}#)))))))
+                                            (#{chi-expr 425}#
+                                              #{type 1611}#
+                                              #{value 1612}#
+                                              #{e 1613}#
+                                              #{r 1587}#
+                                              #{w 1614}#
+                                              #{s 1615}#
+                                              #{mod 1616}#)))
+                                        #{exps 1593}#)))))))))
+                  (lambda (#{exps 1717}#)
+                    (#{scan 1585}#
+                      (cdr #{body 1586}#)
+                      #{r 1587}#
+                      #{w 1588}#
+                      #{s 1589}#
+                      #{m 1590}#
+                      #{esew 1591}#
+                      #{mod 1592}#
+                      #{exps 1717}#)))))))
          (begin
            (call-with-values
              (lambda ()
-               (#{scan 1569}#
-                 #{body 1554}#
-                 #{r 1555}#
-                 #{w 1556}#
-                 #{s 1557}#
-                 #{m 1558}#
-                 #{esew 1559}#
-                 #{mod 1560}#
+               (#{scan 1585}#
+                 #{body 1570}#
+                 #{r 1571}#
+                 #{w 1572}#
+                 #{s 1573}#
+                 #{m 1574}#
+                 #{esew 1575}#
+                 #{mod 1576}#
                  '()))
-             (lambda (#{exps 1703}#)
-               (if (null? #{exps 1703}#)
-                 (#{build-void 263}# #{s 1557}#)
-                 (#{build-sequence 293}#
-                   #{s 1557}#
+             (lambda (#{exps 1719}#)
+               (if (null? #{exps 1719}#)
+                 (#{build-void 265}# #{s 1573}#)
+                 (#{build-sequence 297}#
+                   #{s 1573}#
                    (letrec*
-                     ((#{lp 1708}#
-                        (lambda (#{in 1709}# #{out 1710}#)
-                          (if (null? #{in 1709}#)
-                            #{out 1710}#
+                     ((#{lp 1724}#
+                        (lambda (#{in 1725}# #{out 1726}#)
+                          (if (null? #{in 1725}#)
+                            #{out 1726}#
                             (begin
-                              (let ((#{e 1712}# (car #{in 1709}#)))
-                                (#{lp 1708}#
-                                  (cdr #{in 1709}#)
-                                  (cons (if (procedure? #{e 1712}#)
-                                          (#{e 1712}#)
-                                          #{e 1712}#)
-                                        #{out 1710}#))))))))
-                     (begin (#{lp 1708}# #{exps 1703}# '())))))))))))
-   (#{chi-install-global 413}#
-     (lambda (#{name 1713}# #{e 1714}#)
-       (#{build-global-definition 281}#
+                              (let ((#{e 1728}# (car #{in 1725}#)))
+                                (#{lp 1724}#
+                                  (cdr #{in 1725}#)
+                                  (cons (if (procedure? #{e 1728}#)
+                                          (#{e 1728}#)
+                                          #{e 1728}#)
+                                        #{out 1726}#))))))))
+                     (begin (#{lp 1724}# #{exps 1719}# '())))))))))))
+   (#{chi-install-global 417}#
+     (lambda (#{name 1729}# #{e 1730}#)
+       (#{build-global-definition 283}#
          #f
-         #{name 1713}#
-         (#{build-application 265}#
+         #{name 1729}#
+         (#{build-primcall 291}#
            #f
-           (#{build-primref 289}#
-             #f
-             'make-syntax-transformer)
-           (list (#{build-data 291}# #f #{name 1713}#)
-                 (#{build-data 291}# #f 'macro)
-                 #{e 1714}#)))))
-   (#{chi-when-list 415}#
-     (lambda (#{e 1722}# #{when-list 1723}# #{w 1724}#)
+           'make-syntax-transformer
+           (list (#{build-data 295}# #f #{name 1729}#)
+                 (#{build-data 295}# #f 'macro)
+                 #{e 1730}#)))))
+   (#{chi-when-list 419}#
+     (lambda (#{e 1737}# #{when-list 1738}# #{w 1739}#)
        (letrec*
-         ((#{f 1731}#
-            (lambda (#{when-list 1732}# #{situations 1733}#)
-              (if (null? #{when-list 1732}#)
-                #{situations 1733}#
-                (#{f 1731}#
-                  (cdr #{when-list 1732}#)
+         ((#{f 1746}#
+            (lambda (#{when-list 1747}# #{situations 1748}#)
+              (if (null? #{when-list 1747}#)
+                #{situations 1748}#
+                (#{f 1746}#
+                  (cdr #{when-list 1747}#)
                   (cons (begin
-                          (let ((#{x 1735}# (car #{when-list 1732}#)))
-                            (if (#{free-id=? 395}#
-                                  #{x 1735}#
+                          (let ((#{x 1750}# (car #{when-list 1747}#)))
+                            (if (#{free-id=? 399}#
+                                  #{x 1750}#
                                   '#(syntax-object
                                      compile
                                      ((top)
                                       #(ribcage () () ())
                                       #(ribcage () () ())
                                       #(ribcage () () ())
-                                      #(ribcage #(x) #((top)) #("i1734"))
+                                      #(ribcage #(x) #((top)) #("i1749"))
                                       #(ribcage () () ())
                                       #(ribcage
                                         #(f when-list situations)
                                         #((top) (top) (top))
-                                        #("i1728" "i1729" "i1730"))
+                                        #("i1743" "i1744" "i1745"))
                                       #(ribcage () () ())
                                       #(ribcage
                                         #(e when-list w)
                                         #((top) (top) (top))
-                                        #("i1725" "i1726" "i1727"))
+                                        #("i1740" "i1741" "i1742"))
                                       #(ribcage
                                         (lambda-var-list
                                           gen-var
@@ -1531,7 +1536,7 @@
                                           chi-local-syntax
                                           chi-body
                                           chi-macro
-                                          chi-application
+                                          chi-call
                                           chi-expr
                                           chi
                                           syntax-type
@@ -1609,6 +1614,7 @@
                                           build-sequence
                                           build-data
                                           build-primref
+                                          build-primcall
                                           build-lambda-case
                                           build-case-lambda
                                           build-simple-lambda
@@ -1620,7 +1626,7 @@
                                           build-lexical-reference
                                           build-dynlet
                                           build-conditional
-                                          build-application
+                                          build-call
                                           build-void
                                           maybe-name-value!
                                           decorate-source
@@ -1642,7 +1648,8 @@
                                           make-lambda-case
                                           make-lambda
                                           make-sequence
-                                          make-application
+                                          make-primcall
+                                          make-call
                                           make-conditional
                                           make-toplevel-define
                                           make-toplevel-set
@@ -1789,8 +1796,12 @@
                                          (top)
                                          (top)
                                          (top)
+                                         (top)
+                                         (top)
                                          (top))
-                                        ("i448"
+                                        ("i452"
+                                         "i450"
+                                         "i448"
                                          "i446"
                                          "i444"
                                          "i442"
@@ -1823,14 +1834,14 @@
                                          "i388"
                                          "i386"
                                          "i384"
+                                         "i383"
                                          "i382"
                                          "i380"
                                          "i379"
                                          "i378"
+                                         "i377"
                                          "i376"
-                                         "i375"
                                          "i374"
-                                         "i373"
                                          "i372"
                                          "i370"
                                          "i368"
@@ -1838,33 +1849,33 @@
                                          "i364"
                                          "i362"
                                          "i360"
-                                         "i358"
-                                         "i356"
+                                         "i357"
+                                         "i355"
+                                         "i354"
                                          "i353"
+                                         "i352"
                                          "i351"
                                          "i350"
                                          "i349"
                                          "i348"
                                          "i347"
-                                         "i346"
                                          "i345"
                                          "i344"
-                                         "i343"
-                                         "i341"
+                                         "i342"
                                          "i340"
                                          "i338"
                                          "i336"
                                          "i334"
                                          "i332"
                                          "i330"
+                                         "i329"
                                          "i328"
+                                         "i327"
                                          "i326"
                                          "i325"
-                                         "i324"
                                          "i323"
                                          "i322"
-                                         "i321"
-                                         "i319"
+                                         "i320"
                                          "i318"
                                          "i316"
                                          "i314"
@@ -1897,17 +1908,17 @@
                                          "i260"
                                          "i258"
                                          "i256"
-                                         "i254"
+                                         "i255"
                                          "i253"
                                          "i251"
+                                         "i250"
                                          "i249"
                                          "i248"
                                          "i247"
-                                         "i246"
                                          "i245"
                                          "i243"
                                          "i241"
-                                         "i239"
+                                         "i238"
                                          "i236"
                                          "i234"
                                          "i232"
@@ -1934,25 +1945,25 @@
                                         ("i40" "i39" "i38")))
                                      (hygiene guile)))
                               'compile
-                              (if (#{free-id=? 395}#
-                                    #{x 1735}#
+                              (if (#{free-id=? 399}#
+                                    #{x 1750}#
                                     '#(syntax-object
                                        load
                                        ((top)
                                         #(ribcage () () ())
                                         #(ribcage () () ())
                                         #(ribcage () () ())
-                                        #(ribcage #(x) #((top)) #("i1734"))
+                                        #(ribcage #(x) #((top)) #("i1749"))
                                         #(ribcage () () ())
                                         #(ribcage
                                           #(f when-list situations)
                                           #((top) (top) (top))
-                                          #("i1728" "i1729" "i1730"))
+                                          #("i1743" "i1744" "i1745"))
                                         #(ribcage () () ())
                                         #(ribcage
                                           #(e when-list w)
                                           #((top) (top) (top))
-                                          #("i1725" "i1726" "i1727"))
+                                          #("i1740" "i1741" "i1742"))
                                         #(ribcage
                                           (lambda-var-list
                                             gen-var
@@ -1967,7 +1978,7 @@
                                             chi-local-syntax
                                             chi-body
                                             chi-macro
-                                            chi-application
+                                            chi-call
                                             chi-expr
                                             chi
                                             syntax-type
@@ -2045,6 +2056,7 @@
                                             build-sequence
                                             build-data
                                             build-primref
+                                            build-primcall
                                             build-lambda-case
                                             build-case-lambda
                                             build-simple-lambda
@@ -2056,7 +2068,7 @@
                                             build-lexical-reference
                                             build-dynlet
                                             build-conditional
-                                            build-application
+                                            build-call
                                             build-void
                                             maybe-name-value!
                                             decorate-source
@@ -2078,7 +2090,8 @@
                                             make-lambda-case
                                             make-lambda
                                             make-sequence
-                                            make-application
+                                            make-primcall
+                                            make-call
                                             make-conditional
                                             make-toplevel-define
                                             make-toplevel-set
@@ -2225,8 +2238,12 @@
                                            (top)
                                            (top)
                                            (top)
+                                           (top)
+                                           (top)
                                            (top))
-                                          ("i448"
+                                          ("i452"
+                                           "i450"
+                                           "i448"
                                            "i446"
                                            "i444"
                                            "i442"
@@ -2259,14 +2276,14 @@
                                            "i388"
                                            "i386"
                                            "i384"
+                                           "i383"
                                            "i382"
                                            "i380"
                                            "i379"
                                            "i378"
+                                           "i377"
                                            "i376"
-                                           "i375"
                                            "i374"
-                                           "i373"
                                            "i372"
                                            "i370"
                                            "i368"
@@ -2274,33 +2291,33 @@
                                            "i364"
                                            "i362"
                                            "i360"
-                                           "i358"
-                                           "i356"
+                                           "i357"
+                                           "i355"
+                                           "i354"
                                            "i353"
+                                           "i352"
                                            "i351"
                                            "i350"
                                            "i349"
                                            "i348"
                                            "i347"
-                                           "i346"
                                            "i345"
                                            "i344"
-                                           "i343"
-                                           "i341"
+                                           "i342"
                                            "i340"
                                            "i338"
                                            "i336"
                                            "i334"
                                            "i332"
                                            "i330"
+                                           "i329"
                                            "i328"
+                                           "i327"
                                            "i326"
                                            "i325"
-                                           "i324"
                                            "i323"
                                            "i322"
-                                           "i321"
-                                           "i319"
+                                           "i320"
                                            "i318"
                                            "i316"
                                            "i314"
@@ -2333,17 +2350,17 @@
                                            "i260"
                                            "i258"
                                            "i256"
-                                           "i254"
+                                           "i255"
                                            "i253"
                                            "i251"
+                                           "i250"
                                            "i249"
                                            "i248"
                                            "i247"
-                                           "i246"
                                            "i245"
                                            "i243"
                                            "i241"
-                                           "i239"
+                                           "i238"
                                            "i236"
                                            "i234"
                                            "i232"
@@ -2370,25 +2387,25 @@
                                           ("i40" "i39" "i38")))
                                        (hygiene guile)))
                                 'load
-                                (if (#{free-id=? 395}#
-                                      #{x 1735}#
+                                (if (#{free-id=? 399}#
+                                      #{x 1750}#
                                       '#(syntax-object
                                          eval
                                          ((top)
                                           #(ribcage () () ())
                                           #(ribcage () () ())
                                           #(ribcage () () ())
-                                          #(ribcage #(x) #((top)) #("i1734"))
+                                          #(ribcage #(x) #((top)) #("i1749"))
                                           #(ribcage () () ())
                                           #(ribcage
                                             #(f when-list situations)
                                             #((top) (top) (top))
-                                            #("i1728" "i1729" "i1730"))
+                                            #("i1743" "i1744" "i1745"))
                                           #(ribcage () () ())
                                           #(ribcage
                                             #(e when-list w)
                                             #((top) (top) (top))
-                                            #("i1725" "i1726" "i1727"))
+                                            #("i1740" "i1741" "i1742"))
                                           #(ribcage
                                             (lambda-var-list
                                               gen-var
@@ -2403,7 +2420,7 @@
                                               chi-local-syntax
                                               chi-body
                                               chi-macro
-                                              chi-application
+                                              chi-call
                                               chi-expr
                                               chi
                                               syntax-type
@@ -2481,6 +2498,7 @@
                                               build-sequence
                                               build-data
                                               build-primref
+                                              build-primcall
                                               build-lambda-case
                                               build-case-lambda
                                               build-simple-lambda
@@ -2492,7 +2510,7 @@
                                               build-lexical-reference
                                               build-dynlet
                                               build-conditional
-                                              build-application
+                                              build-call
                                               build-void
                                               maybe-name-value!
                                               decorate-source
@@ -2514,7 +2532,8 @@
                                               make-lambda-case
                                               make-lambda
                                               make-sequence
-                                              make-application
+                                              make-primcall
+                                              make-call
                                               make-conditional
                                               make-toplevel-define
                                               make-toplevel-set
@@ -2661,8 +2680,12 @@
                                              (top)
                                              (top)
                                              (top)
+                                             (top)
+                                             (top)
                                              (top))
-                                            ("i448"
+                                            ("i452"
+                                             "i450"
+                                             "i448"
                                              "i446"
                                              "i444"
                                              "i442"
@@ -2695,14 +2718,14 @@
                                              "i388"
                                              "i386"
                                              "i384"
+                                             "i383"
                                              "i382"
                                              "i380"
                                              "i379"
                                              "i378"
+                                             "i377"
                                              "i376"
-                                             "i375"
                                              "i374"
-                                             "i373"
                                              "i372"
                                              "i370"
                                              "i368"
@@ -2710,33 +2733,33 @@
                                              "i364"
                                              "i362"
                                              "i360"
-                                             "i358"
-                                             "i356"
+                                             "i357"
+                                             "i355"
+                                             "i354"
                                              "i353"
+                                             "i352"
                                              "i351"
                                              "i350"
                                              "i349"
                                              "i348"
                                              "i347"
-                                             "i346"
                                              "i345"
                                              "i344"
-                                             "i343"
-                                             "i341"
+                                             "i342"
                                              "i340"
                                              "i338"
                                              "i336"
                                              "i334"
                                              "i332"
                                              "i330"
+                                             "i329"
                                              "i328"
+                                             "i327"
                                              "i326"
                                              "i325"
-                                             "i324"
                                              "i323"
                                              "i322"
-                                             "i321"
-                                             "i319"
+                                             "i320"
                                              "i318"
                                              "i316"
                                              "i314"
@@ -2769,17 +2792,17 @@
                                              "i260"
                                              "i258"
                                              "i256"
-                                             "i254"
+                                             "i255"
                                              "i253"
                                              "i251"
+                                             "i250"
                                              "i249"
                                              "i248"
                                              "i247"
-                                             "i246"
                                              "i245"
                                              "i243"
                                              "i241"
-                                             "i239"
+                                             "i238"
                                              "i236"
                                              "i234"
                                              "i232"
@@ -2806,25 +2829,25 @@
                                             ("i40" "i39" "i38")))
                                          (hygiene guile)))
                                   'eval
-                                  (if (#{free-id=? 395}#
-                                        #{x 1735}#
+                                  (if (#{free-id=? 399}#
+                                        #{x 1750}#
                                         '#(syntax-object
                                            expand
                                            ((top)
                                             #(ribcage () () ())
                                             #(ribcage () () ())
                                             #(ribcage () () ())
-                                            #(ribcage #(x) #((top)) #("i1734"))
+                                            #(ribcage #(x) #((top)) #("i1749"))
                                             #(ribcage () () ())
                                             #(ribcage
                                               #(f when-list situations)
                                               #((top) (top) (top))
-                                              #("i1728" "i1729" "i1730"))
+                                              #("i1743" "i1744" "i1745"))
                                             #(ribcage () () ())
                                             #(ribcage
                                               #(e when-list w)
                                               #((top) (top) (top))
-                                              #("i1725" "i1726" "i1727"))
+                                              #("i1740" "i1741" "i1742"))
                                             #(ribcage
                                               (lambda-var-list
                                                 gen-var
@@ -2839,7 +2862,7 @@
                                                 chi-local-syntax
                                                 chi-body
                                                 chi-macro
-                                                chi-application
+                                                chi-call
                                                 chi-expr
                                                 chi
                                                 syntax-type
@@ -2917,6 +2940,7 @@
                                                 build-sequence
                                                 build-data
                                                 build-primref
+                                                build-primcall
                                                 build-lambda-case
                                                 build-case-lambda
                                                 build-simple-lambda
@@ -2928,7 +2952,7 @@
                                                 build-lexical-reference
                                                 build-dynlet
                                                 build-conditional
-                                                build-application
+                                                build-call
                                                 build-void
                                                 maybe-name-value!
                                                 decorate-source
@@ -2950,7 +2974,8 @@
                                                 make-lambda-case
                                                 make-lambda
                                                 make-sequence
-                                                make-application
+                                                make-primcall
+                                                make-call
                                                 make-conditional
                                                 make-toplevel-define
                                                 make-toplevel-set
@@ -3097,8 +3122,12 @@
                                                (top)
                                                (top)
                                                (top)
+                                               (top)
+                                               (top)
                                                (top))
-                                              ("i448"
+                                              ("i452"
+                                               "i450"
+                                               "i448"
                                                "i446"
                                                "i444"
                                                "i442"
@@ -3131,14 +3160,14 @@
                                                "i388"
                                                "i386"
                                                "i384"
+                                               "i383"
                                                "i382"
                                                "i380"
                                                "i379"
                                                "i378"
+                                               "i377"
                                                "i376"
-                                               "i375"
                                                "i374"
-                                               "i373"
                                                "i372"
                                                "i370"
                                                "i368"
@@ -3146,33 +3175,33 @@
                                                "i364"
                                                "i362"
                                                "i360"
-                                               "i358"
-                                               "i356"
+                                               "i357"
+                                               "i355"
+                                               "i354"
                                                "i353"
+                                               "i352"
                                                "i351"
                                                "i350"
                                                "i349"
                                                "i348"
                                                "i347"
-                                               "i346"
                                                "i345"
                                                "i344"
-                                               "i343"
-                                               "i341"
+                                               "i342"
                                                "i340"
                                                "i338"
                                                "i336"
                                                "i334"
                                                "i332"
                                                "i330"
+                                               "i329"
                                                "i328"
+                                               "i327"
                                                "i326"
                                                "i325"
-                                               "i324"
                                                "i323"
                                                "i322"
-                                               "i321"
-                                               "i319"
+                                               "i320"
                                                "i318"
                                                "i316"
                                                "i314"
@@ -3205,17 +3234,17 @@
                                                "i260"
                                                "i258"
                                                "i256"
-                                               "i254"
+                                               "i255"
                                                "i253"
                                                "i251"
+                                               "i250"
                                                "i249"
                                                "i248"
                                                "i247"
-                                               "i246"
                                                "i245"
                                                "i243"
                                                "i241"
-                                               "i239"
+                                               "i238"
                                                "i236"
                                                "i234"
                                                "i232"
@@ -3245,243 +3274,243 @@
                                     (syntax-violation
                                       'eval-when
                                       "invalid situation"
-                                      #{e 1722}#
-                                      (#{wrap 405}#
-                                        #{x 1735}#
-                                        #{w 1724}#
+                                      #{e 1737}#
+                                      (#{wrap 409}#
+                                        #{x 1750}#
+                                        #{w 1739}#
                                         #f))))))))
-                        #{situations 1733}#))))))
-         (begin (#{f 1731}# #{when-list 1723}# '())))))
-   (#{syntax-type 417}#
-     (lambda (#{e 1745}#
-              #{r 1746}#
-              #{w 1747}#
-              #{s 1748}#
-              #{rib 1749}#
-              #{mod 1750}#
-              #{for-car? 1751}#)
-       (if (symbol? #{e 1745}#)
+                        #{situations 1748}#))))))
+         (begin (#{f 1746}# #{when-list 1738}# '())))))
+   (#{syntax-type 421}#
+     (lambda (#{e 1760}#
+              #{r 1761}#
+              #{w 1762}#
+              #{s 1763}#
+              #{rib 1764}#
+              #{mod 1765}#
+              #{for-car? 1766}#)
+       (if (symbol? #{e 1760}#)
          (begin
-           (let ((#{n 1763}#
-                   (#{id-var-name 393}# #{e 1745}# #{w 1747}#)))
+           (let ((#{n 1778}#
+                   (#{id-var-name 397}# #{e 1760}# #{w 1762}#)))
              (begin
-               (let ((#{b 1765}#
-                       (#{lookup 333}#
-                         #{n 1763}#
-                         #{r 1746}#
-                         #{mod 1750}#)))
+               (let ((#{b 1780}#
+                       (#{lookup 337}#
+                         #{n 1778}#
+                         #{r 1761}#
+                         #{mod 1765}#)))
                  (begin
-                   (let ((#{type 1767}# (car #{b 1765}#)))
-                     (if (eqv? #{type 1767}# 'lexical)
+                   (let ((#{type 1782}# (car #{b 1780}#)))
+                     (if (memv #{type 1782}# '(lexical))
                        (values
-                         #{type 1767}#
-                         (cdr #{b 1765}#)
-                         #{e 1745}#
-                         #{w 1747}#
-                         #{s 1748}#
-                         #{mod 1750}#)
-                       (if (eqv? #{type 1767}# 'global)
+                         #{type 1782}#
+                         (cdr #{b 1780}#)
+                         #{e 1760}#
+                         #{w 1762}#
+                         #{s 1763}#
+                         #{mod 1765}#)
+                       (if (memv #{type 1782}# '(global))
                          (values
-                           #{type 1767}#
-                           #{n 1763}#
-                           #{e 1745}#
-                           #{w 1747}#
-                           #{s 1748}#
-                           #{mod 1750}#)
-                         (if (eqv? #{type 1767}# 'macro)
-                           (if #{for-car? 1751}#
+                           #{type 1782}#
+                           #{n 1778}#
+                           #{e 1760}#
+                           #{w 1762}#
+                           #{s 1763}#
+                           #{mod 1765}#)
+                         (if (memv #{type 1782}# '(macro))
+                           (if #{for-car? 1766}#
                              (values
-                               #{type 1767}#
-                               (cdr #{b 1765}#)
-                               #{e 1745}#
-                               #{w 1747}#
-                               #{s 1748}#
-                               #{mod 1750}#)
-                             (#{syntax-type 417}#
-                               (#{chi-macro 425}#
-                                 (cdr #{b 1765}#)
-                                 #{e 1745}#
-                                 #{r 1746}#
-                                 #{w 1747}#
-                                 #{s 1748}#
-                                 #{rib 1749}#
-                                 #{mod 1750}#)
-                               #{r 1746}#
+                               #{type 1782}#
+                               (cdr #{b 1780}#)
+                               #{e 1760}#
+                               #{w 1762}#
+                               #{s 1763}#
+                               #{mod 1765}#)
+                             (#{syntax-type 421}#
+                               (#{chi-macro 429}#
+                                 (cdr #{b 1780}#)
+                                 #{e 1760}#
+                                 #{r 1761}#
+                                 #{w 1762}#
+                                 #{s 1763}#
+                                 #{rib 1764}#
+                                 #{mod 1765}#)
+                               #{r 1761}#
                                '(())
-                               #{s 1748}#
-                               #{rib 1749}#
-                               #{mod 1750}#
+                               #{s 1763}#
+                               #{rib 1764}#
+                               #{mod 1765}#
                                #f))
                            (values
-                             #{type 1767}#
-                             (cdr #{b 1765}#)
-                             #{e 1745}#
-                             #{w 1747}#
-                             #{s 1748}#
-                             #{mod 1750}#))))))))))
-         (if (pair? #{e 1745}#)
+                             #{type 1782}#
+                             (cdr #{b 1780}#)
+                             #{e 1760}#
+                             #{w 1762}#
+                             #{s 1763}#
+                             #{mod 1765}#))))))))))
+         (if (pair? #{e 1760}#)
            (begin
-             (let ((#{first 1781}# (car #{e 1745}#)))
+             (let ((#{first 1796}# (car #{e 1760}#)))
                (call-with-values
                  (lambda ()
-                   (#{syntax-type 417}#
-                     #{first 1781}#
-                     #{r 1746}#
-                     #{w 1747}#
-                     #{s 1748}#
-                     #{rib 1749}#
-                     #{mod 1750}#
+                   (#{syntax-type 421}#
+                     #{first 1796}#
+                     #{r 1761}#
+                     #{w 1762}#
+                     #{s 1763}#
+                     #{rib 1764}#
+                     #{mod 1765}#
                      #t))
-                 (lambda (#{ftype 1782}#
-                          #{fval 1783}#
-                          #{fe 1784}#
-                          #{fw 1785}#
-                          #{fs 1786}#
-                          #{fmod 1787}#)
-                   (if (eqv? #{ftype 1782}# 'lexical)
+                 (lambda (#{ftype 1797}#
+                          #{fval 1798}#
+                          #{fe 1799}#
+                          #{fw 1800}#
+                          #{fs 1801}#
+                          #{fmod 1802}#)
+                   (if (memv #{ftype 1797}# '(lexical))
                      (values
                        'lexical-call
-                       #{fval 1783}#
-                       #{e 1745}#
-                       #{w 1747}#
-                       #{s 1748}#
-                       #{mod 1750}#)
-                     (if (eqv? #{ftype 1782}# 'global)
+                       #{fval 1798}#
+                       #{e 1760}#
+                       #{w 1762}#
+                       #{s 1763}#
+                       #{mod 1765}#)
+                     (if (memv #{ftype 1797}# '(global))
                        (values
                          'global-call
-                         (#{make-syntax-object 303}#
-                           #{fval 1783}#
-                           #{w 1747}#
-                           #{fmod 1787}#)
-                         #{e 1745}#
-                         #{w 1747}#
-                         #{s 1748}#
-                         #{mod 1750}#)
-                       (if (eqv? #{ftype 1782}# 'macro)
-                         (#{syntax-type 417}#
-                           (#{chi-macro 425}#
-                             #{fval 1783}#
-                             #{e 1745}#
-                             #{r 1746}#
-                             #{w 1747}#
-                             #{s 1748}#
-                             #{rib 1749}#
-                             #{mod 1750}#)
-                           #{r 1746}#
+                         (#{make-syntax-object 307}#
+                           #{fval 1798}#
+                           #{w 1762}#
+                           #{fmod 1802}#)
+                         #{e 1760}#
+                         #{w 1762}#
+                         #{s 1763}#
+                         #{mod 1765}#)
+                       (if (memv #{ftype 1797}# '(macro))
+                         (#{syntax-type 421}#
+                           (#{chi-macro 429}#
+                             #{fval 1798}#
+                             #{e 1760}#
+                             #{r 1761}#
+                             #{w 1762}#
+                             #{s 1763}#
+                             #{rib 1764}#
+                             #{mod 1765}#)
+                           #{r 1761}#
                            '(())
-                           #{s 1748}#
-                           #{rib 1749}#
-                           #{mod 1750}#
-                           #{for-car? 1751}#)
-                         (if (eqv? #{ftype 1782}# 'module-ref)
+                           #{s 1763}#
+                           #{rib 1764}#
+                           #{mod 1765}#
+                           #{for-car? 1766}#)
+                         (if (memv #{ftype 1797}# '(module-ref))
                            (call-with-values
                              (lambda ()
-                               (#{fval 1783}#
-                                 #{e 1745}#
-                                 #{r 1746}#
-                                 #{w 1747}#))
-                             (lambda (#{e 1799}#
-                                      #{r 1800}#
-                                      #{w 1801}#
-                                      #{s 1802}#
-                                      #{mod 1803}#)
-                               (#{syntax-type 417}#
-                                 #{e 1799}#
-                                 #{r 1800}#
-                                 #{w 1801}#
-                                 #{s 1802}#
-                                 #{rib 1749}#
-                                 #{mod 1803}#
-                                 #{for-car? 1751}#)))
-                           (if (eqv? #{ftype 1782}# 'core)
+                               (#{fval 1798}#
+                                 #{e 1760}#
+                                 #{r 1761}#
+                                 #{w 1762}#))
+                             (lambda (#{e 1814}#
+                                      #{r 1815}#
+                                      #{w 1816}#
+                                      #{s 1817}#
+                                      #{mod 1818}#)
+                               (#{syntax-type 421}#
+                                 #{e 1814}#
+                                 #{r 1815}#
+                                 #{w 1816}#
+                                 #{s 1817}#
+                                 #{rib 1764}#
+                                 #{mod 1818}#
+                                 #{for-car? 1766}#)))
+                           (if (memv #{ftype 1797}# '(core))
                              (values
                                'core-form
-                               #{fval 1783}#
-                               #{e 1745}#
-                               #{w 1747}#
-                               #{s 1748}#
-                               #{mod 1750}#)
-                             (if (eqv? #{ftype 1782}# 'local-syntax)
+                               #{fval 1798}#
+                               #{e 1760}#
+                               #{w 1762}#
+                               #{s 1763}#
+                               #{mod 1765}#)
+                             (if (memv #{ftype 1797}# '(local-syntax))
                                (values
                                  'local-syntax-form
-                                 #{fval 1783}#
-                                 #{e 1745}#
-                                 #{w 1747}#
-                                 #{s 1748}#
-                                 #{mod 1750}#)
-                               (if (eqv? #{ftype 1782}# 'begin)
+                                 #{fval 1798}#
+                                 #{e 1760}#
+                                 #{w 1762}#
+                                 #{s 1763}#
+                                 #{mod 1765}#)
+                               (if (memv #{ftype 1797}# '(begin))
                                  (values
                                    'begin-form
                                    #f
-                                   #{e 1745}#
-                                   #{w 1747}#
-                                   #{s 1748}#
-                                   #{mod 1750}#)
-                                 (if (eqv? #{ftype 1782}# 'eval-when)
+                                   #{e 1760}#
+                                   #{w 1762}#
+                                   #{s 1763}#
+                                   #{mod 1765}#)
+                                 (if (memv #{ftype 1797}# '(eval-when))
                                    (values
                                      'eval-when-form
                                      #f
-                                     #{e 1745}#
-                                     #{w 1747}#
-                                     #{s 1748}#
-                                     #{mod 1750}#)
-                                   (if (eqv? #{ftype 1782}# 'define)
-                                     (let ((#{tmp 1814}# #{e 1745}#))
-                                       (let ((#{tmp 1815}#
+                                     #{e 1760}#
+                                     #{w 1762}#
+                                     #{s 1763}#
+                                     #{mod 1765}#)
+                                   (if (memv #{ftype 1797}# '(define))
+                                     (let ((#{tmp 1829}# #{e 1760}#))
+                                       (let ((#{tmp 1830}#
                                                ($sc-dispatch
-                                                 #{tmp 1814}#
+                                                 #{tmp 1829}#
                                                  '(_ any any))))
-                                         (if (if #{tmp 1815}#
+                                         (if (if #{tmp 1830}#
                                                (@apply
-                                                 (lambda (#{name 1818}#
-                                                          #{val 1819}#)
-                                                   (#{id? 339}# #{name 1818}#))
-                                                 #{tmp 1815}#)
+                                                 (lambda (#{name 1833}#
+                                                          #{val 1834}#)
+                                                   (#{id? 343}# #{name 1833}#))
+                                                 #{tmp 1830}#)
                                                #f)
                                            (@apply
-                                             (lambda (#{name 1822}#
-                                                      #{val 1823}#)
+                                             (lambda (#{name 1837}#
+                                                      #{val 1838}#)
                                                (values
                                                  'define-form
-                                                 #{name 1822}#
-                                                 #{val 1823}#
-                                                 #{w 1747}#
-                                                 #{s 1748}#
-                                                 #{mod 1750}#))
-                                             #{tmp 1815}#)
-                                           (let ((#{tmp 1824}#
+                                                 #{name 1837}#
+                                                 #{val 1838}#
+                                                 #{w 1762}#
+                                                 #{s 1763}#
+                                                 #{mod 1765}#))
+                                             #{tmp 1830}#)
+                                           (let ((#{tmp 1839}#
                                                    ($sc-dispatch
-                                                     #{tmp 1814}#
+                                                     #{tmp 1829}#
                                                      '(_ (any . any)
                                                          any
                                                          .
                                                          each-any))))
-                                             (if (if #{tmp 1824}#
+                                             (if (if #{tmp 1839}#
                                                    (@apply
-                                                     (lambda (#{name 1829}#
-                                                              #{args 1830}#
-                                                              #{e1 1831}#
-                                                              #{e2 1832}#)
-                                                       (if (#{id? 339}#
-                                                             #{name 1829}#)
-                                                         (#{valid-bound-ids? 
399}#
-                                                           (#{lambda-var-list 
449}#
-                                                             #{args 1830}#))
+                                                     (lambda (#{name 1844}#
+                                                              #{args 1845}#
+                                                              #{e1 1846}#
+                                                              #{e2 1847}#)
+                                                       (if (#{id? 343}#
+                                                             #{name 1844}#)
+                                                         (#{valid-bound-ids? 
403}#
+                                                           (#{lambda-var-list 
453}#
+                                                             #{args 1845}#))
                                                          #f))
-                                                     #{tmp 1824}#)
+                                                     #{tmp 1839}#)
                                                    #f)
                                                (@apply
-                                                 (lambda (#{name 1839}#
-                                                          #{args 1840}#
-                                                          #{e1 1841}#
-                                                          #{e2 1842}#)
+                                                 (lambda (#{name 1854}#
+                                                          #{args 1855}#
+                                                          #{e1 1856}#
+                                                          #{e2 1857}#)
                                                    (values
                                                      'define-form
-                                                     (#{wrap 405}#
-                                                       #{name 1839}#
-                                                       #{w 1747}#
-                                                       #{mod 1750}#)
-                                                     (#{decorate-source 259}#
+                                                     (#{wrap 409}#
+                                                       #{name 1854}#
+                                                       #{w 1762}#
+                                                       #{mod 1765}#)
+                                                     (#{decorate-source 261}#
                                                        (cons '#(syntax-object
                                                                 lambda
                                                                 ((top)
@@ -3494,10 +3523,10 @@
                                                                      (top)
                                                                      (top)
                                                                      (top))
-                                                                   #("i1835"
-                                                                     "i1836"
-                                                                     "i1837"
-                                                                     "i1838"))
+                                                                   #("i1850"
+                                                                     "i1851"
+                                                                     "i1852"
+                                                                     "i1853"))
                                                                  #(ribcage
                                                                    ()
                                                                    ()
@@ -3519,12 +3548,12 @@
                                                                      (top)
                                                                      (top)
                                                                      (top))
-                                                                   #("i1788"
-                                                                     "i1789"
-                                                                     "i1790"
-                                                                     "i1791"
-                                                                     "i1792"
-                                                                     "i1793"))
+                                                                   #("i1803"
+                                                                     "i1804"
+                                                                     "i1805"
+                                                                     "i1806"
+                                                                     "i1807"
+                                                                     "i1808"))
                                                                  #(ribcage
                                                                    ()
                                                                    ()
@@ -3532,7 +3561,7 @@
                                                                  #(ribcage
                                                                    #(first)
                                                                    #((top))
-                                                                   #("i1780"))
+                                                                   #("i1795"))
                                                                  #(ribcage
                                                                    ()
                                                                    ()
@@ -3560,13 +3589,13 @@
                                                                      (top)
                                                                      (top)
                                                                      (top))
-                                                                   #("i1752"
-                                                                     "i1753"
-                                                                     "i1754"
-                                                                     "i1755"
-                                                                     "i1756"
-                                                                     "i1757"
-                                                                     "i1758"))
+                                                                   #("i1767"
+                                                                     "i1768"
+                                                                     "i1769"
+                                                                     "i1770"
+                                                                     "i1771"
+                                                                     "i1772"
+                                                                     "i1773"))
                                                                  #(ribcage
                                                                    
(lambda-var-list
                                                                      gen-var
@@ -3581,7 +3610,7 @@
                                                                      
chi-local-syntax
                                                                      chi-body
                                                                      chi-macro
-                                                                     
chi-application
+                                                                     chi-call
                                                                      chi-expr
                                                                      chi
                                                                      
syntax-type
@@ -3659,6 +3688,7 @@
                                                                      
build-sequence
                                                                      build-data
                                                                      
build-primref
+                                                                     
build-primcall
                                                                      
build-lambda-case
                                                                      
build-case-lambda
                                                                      
build-simple-lambda
@@ -3670,7 +3700,7 @@
                                                                      
build-lexical-reference
                                                                      
build-dynlet
                                                                      
build-conditional
-                                                                     
build-application
+                                                                     build-call
                                                                      build-void
                                                                      
maybe-name-value!
                                                                      
decorate-source
@@ -3692,7 +3722,8 @@
                                                                      
make-lambda-case
                                                                      
make-lambda
                                                                      
make-sequence
-                                                                     
make-application
+                                                                     
make-primcall
+                                                                     make-call
                                                                      
make-conditional
                                                                      
make-toplevel-define
                                                                      
make-toplevel-set
@@ -3839,8 +3870,12 @@
                                                                     (top)
                                                                     (top)
                                                                     (top)
+                                                                    (top)
+                                                                    (top)
                                                                     (top))
-                                                                   ("i448"
+                                                                   ("i452"
+                                                                    "i450"
+                                                                    "i448"
                                                                     "i446"
                                                                     "i444"
                                                                     "i442"
@@ -3873,14 +3908,14 @@
                                                                     "i388"
                                                                     "i386"
                                                                     "i384"
+                                                                    "i383"
                                                                     "i382"
                                                                     "i380"
                                                                     "i379"
                                                                     "i378"
+                                                                    "i377"
                                                                     "i376"
-                                                                    "i375"
                                                                     "i374"
-                                                                    "i373"
                                                                     "i372"
                                                                     "i370"
                                                                     "i368"
@@ -3888,33 +3923,33 @@
                                                                     "i364"
                                                                     "i362"
                                                                     "i360"
-                                                                    "i358"
-                                                                    "i356"
+                                                                    "i357"
+                                                                    "i355"
+                                                                    "i354"
                                                                     "i353"
+                                                                    "i352"
                                                                     "i351"
                                                                     "i350"
                                                                     "i349"
                                                                     "i348"
                                                                     "i347"
-                                                                    "i346"
                                                                     "i345"
                                                                     "i344"
-                                                                    "i343"
-                                                                    "i341"
+                                                                    "i342"
                                                                     "i340"
                                                                     "i338"
                                                                     "i336"
                                                                     "i334"
                                                                     "i332"
                                                                     "i330"
+                                                                    "i329"
                                                                     "i328"
+                                                                    "i327"
                                                                     "i326"
                                                                     "i325"
-                                                                    "i324"
                                                                     "i323"
                                                                     "i322"
-                                                                    "i321"
-                                                                    "i319"
+                                                                    "i320"
                                                                     "i318"
                                                                     "i316"
                                                                     "i314"
@@ -3947,17 +3982,17 @@
                                                                     "i260"
                                                                     "i258"
                                                                     "i256"
-                                                                    "i254"
+                                                                    "i255"
                                                                     "i253"
                                                                     "i251"
+                                                                    "i250"
                                                                     "i249"
                                                                     "i248"
                                                                     "i247"
-                                                                    "i246"
                                                                     "i245"
                                                                     "i243"
                                                                     "i241"
-                                                                    "i239"
+                                                                    "i238"
                                                                     "i236"
                                                                     "i234"
                                                                     "i232"
@@ -3988,43 +4023,43 @@
                                                                     "i38")))
                                                                 (hygiene
                                                                   guile))
-                                                             (#{wrap 405}#
-                                                               (cons #{args 
1840}#
-                                                                     (cons 
#{e1 1841}#
-                                                                           
#{e2 1842}#))
-                                                               #{w 1747}#
-                                                               #{mod 1750}#))
-                                                       #{s 1748}#)
+                                                             (#{wrap 409}#
+                                                               (cons #{args 
1855}#
+                                                                     (cons 
#{e1 1856}#
+                                                                           
#{e2 1857}#))
+                                                               #{w 1762}#
+                                                               #{mod 1765}#))
+                                                       #{s 1763}#)
                                                      '(())
-                                                     #{s 1748}#
-                                                     #{mod 1750}#))
-                                                 #{tmp 1824}#)
-                                               (let ((#{tmp 1845}#
+                                                     #{s 1763}#
+                                                     #{mod 1765}#))
+                                                 #{tmp 1839}#)
+                                               (let ((#{tmp 1860}#
                                                        ($sc-dispatch
-                                                         #{tmp 1814}#
+                                                         #{tmp 1829}#
                                                          '(_ any))))
-                                                 (if (if #{tmp 1845}#
+                                                 (if (if #{tmp 1860}#
                                                        (@apply
-                                                         (lambda (#{name 
1847}#)
-                                                           (#{id? 339}#
-                                                             #{name 1847}#))
-                                                         #{tmp 1845}#)
+                                                         (lambda (#{name 
1862}#)
+                                                           (#{id? 343}#
+                                                             #{name 1862}#))
+                                                         #{tmp 1860}#)
                                                        #f)
                                                    (@apply
-                                                     (lambda (#{name 1849}#)
+                                                     (lambda (#{name 1864}#)
                                                        (values
                                                          'define-form
-                                                         (#{wrap 405}#
-                                                           #{name 1849}#
-                                                           #{w 1747}#
-                                                           #{mod 1750}#)
+                                                         (#{wrap 409}#
+                                                           #{name 1864}#
+                                                           #{w 1762}#
+                                                           #{mod 1765}#)
                                                          '(#(syntax-object
                                                              if
                                                              ((top)
                                                               #(ribcage
                                                                 #(name)
                                                                 #((top))
-                                                                #("i1848"))
+                                                                #("i1863"))
                                                               #(ribcage
                                                                 ()
                                                                 ()
@@ -4046,12 +4081,12 @@
                                                                   (top)
                                                                   (top)
                                                                   (top))
-                                                                #("i1788"
-                                                                  "i1789"
-                                                                  "i1790"
-                                                                  "i1791"
-                                                                  "i1792"
-                                                                  "i1793"))
+                                                                #("i1803"
+                                                                  "i1804"
+                                                                  "i1805"
+                                                                  "i1806"
+                                                                  "i1807"
+                                                                  "i1808"))
                                                               #(ribcage
                                                                 ()
                                                                 ()
@@ -4059,7 +4094,7 @@
                                                               #(ribcage
                                                                 #(first)
                                                                 #((top))
-                                                                #("i1780"))
+                                                                #("i1795"))
                                                               #(ribcage
                                                                 ()
                                                                 ()
@@ -4087,13 +4122,13 @@
                                                                   (top)
                                                                   (top)
                                                                   (top))
-                                                                #("i1752"
-                                                                  "i1753"
-                                                                  "i1754"
-                                                                  "i1755"
-                                                                  "i1756"
-                                                                  "i1757"
-                                                                  "i1758"))
+                                                                #("i1767"
+                                                                  "i1768"
+                                                                  "i1769"
+                                                                  "i1770"
+                                                                  "i1771"
+                                                                  "i1772"
+                                                                  "i1773"))
                                                               #(ribcage
                                                                 
(lambda-var-list
                                                                   gen-var
@@ -4108,7 +4143,7 @@
                                                                   
chi-local-syntax
                                                                   chi-body
                                                                   chi-macro
-                                                                  
chi-application
+                                                                  chi-call
                                                                   chi-expr
                                                                   chi
                                                                   syntax-type
@@ -4186,6 +4221,7 @@
                                                                   
build-sequence
                                                                   build-data
                                                                   build-primref
+                                                                  
build-primcall
                                                                   
build-lambda-case
                                                                   
build-case-lambda
                                                                   
build-simple-lambda
@@ -4197,7 +4233,7 @@
                                                                   
build-lexical-reference
                                                                   build-dynlet
                                                                   
build-conditional
-                                                                  
build-application
+                                                                  build-call
                                                                   build-void
                                                                   
maybe-name-value!
                                                                   
decorate-source
@@ -4219,7 +4255,8 @@
                                                                   
make-lambda-case
                                                                   make-lambda
                                                                   make-sequence
-                                                                  
make-application
+                                                                  make-primcall
+                                                                  make-call
                                                                   
make-conditional
                                                                   
make-toplevel-define
                                                                   
make-toplevel-set
@@ -4366,8 +4403,12 @@
                                                                  (top)
                                                                  (top)
                                                                  (top)
+                                                                 (top)
+                                                                 (top)
                                                                  (top))
-                                                                ("i448"
+                                                                ("i452"
+                                                                 "i450"
+                                                                 "i448"
                                                                  "i446"
                                                                  "i444"
                                                                  "i442"
@@ -4400,14 +4441,14 @@
                                                                  "i388"
                                                                  "i386"
                                                                  "i384"
+                                                                 "i383"
                                                                  "i382"
                                                                  "i380"
                                                                  "i379"
                                                                  "i378"
+                                                                 "i377"
                                                                  "i376"
-                                                                 "i375"
                                                                  "i374"
-                                                                 "i373"
                                                                  "i372"
                                                                  "i370"
                                                                  "i368"
@@ -4415,33 +4456,33 @@
                                                                  "i364"
                                                                  "i362"
                                                                  "i360"
-                                                                 "i358"
-                                                                 "i356"
+                                                                 "i357"
+                                                                 "i355"
+                                                                 "i354"
                                                                  "i353"
+                                                                 "i352"
                                                                  "i351"
                                                                  "i350"
                                                                  "i349"
                                                                  "i348"
                                                                  "i347"
-                                                                 "i346"
                                                                  "i345"
                                                                  "i344"
-                                                                 "i343"
-                                                                 "i341"
+                                                                 "i342"
                                                                  "i340"
                                                                  "i338"
                                                                  "i336"
                                                                  "i334"
                                                                  "i332"
                                                                  "i330"
+                                                                 "i329"
                                                                  "i328"
+                                                                 "i327"
                                                                  "i326"
                                                                  "i325"
-                                                                 "i324"
                                                                  "i323"
                                                                  "i322"
-                                                                 "i321"
-                                                                 "i319"
+                                                                 "i320"
                                                                  "i318"
                                                                  "i316"
                                                                  "i314"
@@ -4474,17 +4515,17 @@
                                                                  "i260"
                                                                  "i258"
                                                                  "i256"
-                                                                 "i254"
+                                                                 "i255"
                                                                  "i253"
                                                                  "i251"
+                                                                 "i250"
                                                                  "i249"
                                                                  "i248"
                                                                  "i247"
-                                                                 "i246"
                                                                  "i245"
                                                                  "i243"
                                                                  "i241"
-                                                                 "i239"
+                                                                 "i238"
                                                                  "i236"
                                                                  "i234"
                                                                  "i232"
@@ -4520,7 +4561,7 @@
                                                               #(ribcage
                                                                 #(name)
                                                                 #((top))
-                                                                #("i1848"))
+                                                                #("i1863"))
                                                               #(ribcage
                                                                 ()
                                                                 ()
@@ -4542,12 +4583,12 @@
                                                                   (top)
                                                                   (top)
                                                                   (top))
-                                                                #("i1788"
-                                                                  "i1789"
-                                                                  "i1790"
-                                                                  "i1791"
-                                                                  "i1792"
-                                                                  "i1793"))
+                                                                #("i1803"
+                                                                  "i1804"
+                                                                  "i1805"
+                                                                  "i1806"
+                                                                  "i1807"
+                                                                  "i1808"))
                                                               #(ribcage
                                                                 ()
                                                                 ()
@@ -4555,7 +4596,7 @@
                                                               #(ribcage
                                                                 #(first)
                                                                 #((top))
-                                                                #("i1780"))
+                                                                #("i1795"))
                                                               #(ribcage
                                                                 ()
                                                                 ()
@@ -4583,13 +4624,13 @@
                                                                   (top)
                                                                   (top)
                                                                   (top))
-                                                                #("i1752"
-                                                                  "i1753"
-                                                                  "i1754"
-                                                                  "i1755"
-                                                                  "i1756"
-                                                                  "i1757"
-                                                                  "i1758"))
+                                                                #("i1767"
+                                                                  "i1768"
+                                                                  "i1769"
+                                                                  "i1770"
+                                                                  "i1771"
+                                                                  "i1772"
+                                                                  "i1773"))
                                                               #(ribcage
                                                                 
(lambda-var-list
                                                                   gen-var
@@ -4604,7 +4645,7 @@
                                                                   
chi-local-syntax
                                                                   chi-body
                                                                   chi-macro
-                                                                  
chi-application
+                                                                  chi-call
                                                                   chi-expr
                                                                   chi
                                                                   syntax-type
@@ -4682,6 +4723,7 @@
                                                                   
build-sequence
                                                                   build-data
                                                                   build-primref
+                                                                  
build-primcall
                                                                   
build-lambda-case
                                                                   
build-case-lambda
                                                                   
build-simple-lambda
@@ -4693,7 +4735,7 @@
                                                                   
build-lexical-reference
                                                                   build-dynlet
                                                                   
build-conditional
-                                                                  
build-application
+                                                                  build-call
                                                                   build-void
                                                                   
maybe-name-value!
                                                                   
decorate-source
@@ -4715,7 +4757,8 @@
                                                                   
make-lambda-case
                                                                   make-lambda
                                                                   make-sequence
-                                                                  
make-application
+                                                                  make-primcall
+                                                                  make-call
                                                                   
make-conditional
                                                                   
make-toplevel-define
                                                                   
make-toplevel-set
@@ -4862,8 +4905,12 @@
                                                                  (top)
                                                                  (top)
                                                                  (top)
+                                                                 (top)
+                                                                 (top)
                                                                  (top))
-                                                                ("i448"
+                                                                ("i452"
+                                                                 "i450"
+                                                                 "i448"
                                                                  "i446"
                                                                  "i444"
                                                                  "i442"
@@ -4896,14 +4943,14 @@
                                                                  "i388"
                                                                  "i386"
                                                                  "i384"
+                                                                 "i383"
                                                                  "i382"
                                                                  "i380"
                                                                  "i379"
                                                                  "i378"
+                                                                 "i377"
                                                                  "i376"
-                                                                 "i375"
                                                                  "i374"
-                                                                 "i373"
                                                                  "i372"
                                                                  "i370"
                                                                  "i368"
@@ -4911,33 +4958,33 @@
                                                                  "i364"
                                                                  "i362"
                                                                  "i360"
-                                                                 "i358"
-                                                                 "i356"
+                                                                 "i357"
+                                                                 "i355"
+                                                                 "i354"
                                                                  "i353"
+                                                                 "i352"
                                                                  "i351"
                                                                  "i350"
                                                                  "i349"
                                                                  "i348"
                                                                  "i347"
-                                                                 "i346"
                                                                  "i345"
                                                                  "i344"
-                                                                 "i343"
-                                                                 "i341"
+                                                                 "i342"
                                                                  "i340"
                                                                  "i338"
                                                                  "i336"
                                                                  "i334"
                                                                  "i332"
                                                                  "i330"
+                                                                 "i329"
                                                                  "i328"
+                                                                 "i327"
                                                                  "i326"
                                                                  "i325"
-                                                                 "i324"
                                                                  "i323"
                                                                  "i322"
-                                                                 "i321"
-                                                                 "i319"
+                                                                 "i320"
                                                                  "i318"
                                                                  "i316"
                                                                  "i314"
@@ -4970,17 +5017,17 @@
                                                                  "i260"
                                                                  "i258"
                                                                  "i256"
-                                                                 "i254"
+                                                                 "i255"
                                                                  "i253"
                                                                  "i251"
+                                                                 "i250"
                                                                  "i249"
                                                                  "i248"
                                                                  "i247"
-                                                                 "i246"
                                                                  "i245"
                                                                  "i243"
                                                                  "i241"
-                                                                 "i239"
+                                                                 "i238"
                                                                  "i236"
                                                                  "i234"
                                                                  "i232"
@@ -5016,7 +5063,7 @@
                                                               #(ribcage
                                                                 #(name)
                                                                 #((top))
-                                                                #("i1848"))
+                                                                #("i1863"))
                                                               #(ribcage
                                                                 ()
                                                                 ()
@@ -5038,12 +5085,12 @@
                                                                   (top)
                                                                   (top)
                                                                   (top))
-                                                                #("i1788"
-                                                                  "i1789"
-                                                                  "i1790"
-                                                                  "i1791"
-                                                                  "i1792"
-                                                                  "i1793"))
+                                                                #("i1803"
+                                                                  "i1804"
+                                                                  "i1805"
+                                                                  "i1806"
+                                                                  "i1807"
+                                                                  "i1808"))
                                                               #(ribcage
                                                                 ()
                                                                 ()
@@ -5051,7 +5098,7 @@
                                                               #(ribcage
                                                                 #(first)
                                                                 #((top))
-                                                                #("i1780"))
+                                                                #("i1795"))
                                                               #(ribcage
                                                                 ()
                                                                 ()
@@ -5079,13 +5126,13 @@
                                                                   (top)
                                                                   (top)
                                                                   (top))
-                                                                #("i1752"
-                                                                  "i1753"
-                                                                  "i1754"
-                                                                  "i1755"
-                                                                  "i1756"
-                                                                  "i1757"
-                                                                  "i1758"))
+                                                                #("i1767"
+                                                                  "i1768"
+                                                                  "i1769"
+                                                                  "i1770"
+                                                                  "i1771"
+                                                                  "i1772"
+                                                                  "i1773"))
                                                               #(ribcage
                                                                 
(lambda-var-list
                                                                   gen-var
@@ -5100,7 +5147,7 @@
                                                                   
chi-local-syntax
                                                                   chi-body
                                                                   chi-macro
-                                                                  
chi-application
+                                                                  chi-call
                                                                   chi-expr
                                                                   chi
                                                                   syntax-type
@@ -5178,6 +5225,7 @@
                                                                   
build-sequence
                                                                   build-data
                                                                   build-primref
+                                                                  
build-primcall
                                                                   
build-lambda-case
                                                                   
build-case-lambda
                                                                   
build-simple-lambda
@@ -5189,7 +5237,7 @@
                                                                   
build-lexical-reference
                                                                   build-dynlet
                                                                   
build-conditional
-                                                                  
build-application
+                                                                  build-call
                                                                   build-void
                                                                   
maybe-name-value!
                                                                   
decorate-source
@@ -5211,7 +5259,8 @@
                                                                   
make-lambda-case
                                                                   make-lambda
                                                                   make-sequence
-                                                                  
make-application
+                                                                  make-primcall
+                                                                  make-call
                                                                   
make-conditional
                                                                   
make-toplevel-define
                                                                   
make-toplevel-set
@@ -5358,8 +5407,12 @@
                                                                  (top)
                                                                  (top)
                                                                  (top)
+                                                                 (top)
+                                                                 (top)
                                                                  (top))
-                                                                ("i448"
+                                                                ("i452"
+                                                                 "i450"
+                                                                 "i448"
                                                                  "i446"
                                                                  "i444"
                                                                  "i442"
@@ -5392,14 +5445,14 @@
                                                                  "i388"
                                                                  "i386"
                                                                  "i384"
+                                                                 "i383"
                                                                  "i382"
                                                                  "i380"
                                                                  "i379"
                                                                  "i378"
+                                                                 "i377"
                                                                  "i376"
-                                                                 "i375"
                                                                  "i374"
-                                                                 "i373"
                                                                  "i372"
                                                                  "i370"
                                                                  "i368"
@@ -5407,33 +5460,33 @@
                                                                  "i364"
                                                                  "i362"
                                                                  "i360"
-                                                                 "i358"
-                                                                 "i356"
+                                                                 "i357"
+                                                                 "i355"
+                                                                 "i354"
                                                                  "i353"
+                                                                 "i352"
                                                                  "i351"
                                                                  "i350"
                                                                  "i349"
                                                                  "i348"
                                                                  "i347"
-                                                                 "i346"
                                                                  "i345"
                                                                  "i344"
-                                                                 "i343"
-                                                                 "i341"
+                                                                 "i342"
                                                                  "i340"
                                                                  "i338"
                                                                  "i336"
                                                                  "i334"
                                                                  "i332"
                                                                  "i330"
+                                                                 "i329"
                                                                  "i328"
+                                                                 "i327"
                                                                  "i326"
                                                                  "i325"
-                                                                 "i324"
                                                                  "i323"
                                                                  "i322"
-                                                                 "i321"
-                                                                 "i319"
+                                                                 "i320"
                                                                  "i318"
                                                                  "i316"
                                                                  "i314"
@@ -5466,17 +5519,17 @@
                                                                  "i260"
                                                                  "i258"
                                                                  "i256"
-                                                                 "i254"
+                                                                 "i255"
                                                                  "i253"
                                                                  "i251"
+                                                                 "i250"
                                                                  "i249"
                                                                  "i248"
                                                                  "i247"
-                                                                 "i246"
                                                                  "i245"
                                                                  "i243"
                                                                  "i241"
-                                                                 "i239"
+                                                                 "i238"
                                                                  "i236"
                                                                  "i234"
                                                                  "i232"
@@ -5507,817 +5560,814 @@
                                                                  "i38")))
                                                              (hygiene guile)))
                                                          '(())
-                                                         #{s 1748}#
-                                                         #{mod 1750}#))
-                                                     #{tmp 1845}#)
+                                                         #{s 1763}#
+                                                         #{mod 1765}#))
+                                                     #{tmp 1860}#)
                                                    (syntax-violation
                                                      #f
                                                      "source expression failed 
to match any pattern"
-                                                     #{tmp 1814}#))))))))
-                                     (if (eqv? #{ftype 1782}# 'define-syntax)
-                                       (let ((#{tmp 1852}# #{e 1745}#))
-                                         (let ((#{tmp 1853}#
+                                                     #{tmp 1829}#))))))))
+                                     (if (memv #{ftype 1797}# '(define-syntax))
+                                       (let ((#{tmp 1867}# #{e 1760}#))
+                                         (let ((#{tmp 1868}#
                                                  ($sc-dispatch
-                                                   #{tmp 1852}#
+                                                   #{tmp 1867}#
                                                    '(_ any any))))
-                                           (if (if #{tmp 1853}#
+                                           (if (if #{tmp 1868}#
                                                  (@apply
-                                                   (lambda (#{name 1856}#
-                                                            #{val 1857}#)
-                                                     (#{id? 339}#
-                                                       #{name 1856}#))
-                                                   #{tmp 1853}#)
+                                                   (lambda (#{name 1871}#
+                                                            #{val 1872}#)
+                                                     (#{id? 343}#
+                                                       #{name 1871}#))
+                                                   #{tmp 1868}#)
                                                  #f)
                                              (@apply
-                                               (lambda (#{name 1860}#
-                                                        #{val 1861}#)
+                                               (lambda (#{name 1875}#
+                                                        #{val 1876}#)
                                                  (values
                                                    'define-syntax-form
-                                                   #{name 1860}#
-                                                   #{val 1861}#
-                                                   #{w 1747}#
-                                                   #{s 1748}#
-                                                   #{mod 1750}#))
-                                               #{tmp 1853}#)
+                                                   #{name 1875}#
+                                                   #{val 1876}#
+                                                   #{w 1762}#
+                                                   #{s 1763}#
+                                                   #{mod 1765}#))
+                                               #{tmp 1868}#)
                                              (syntax-violation
                                                #f
                                                "source expression failed to 
match any pattern"
-                                               #{tmp 1852}#))))
+                                               #{tmp 1867}#))))
                                        (values
                                          'call
                                          #f
-                                         #{e 1745}#
-                                         #{w 1747}#
-                                         #{s 1748}#
-                                         #{mod 1750}#)))))))))))))))
-           (if (#{syntax-object? 305}# #{e 1745}#)
-             (#{syntax-type 417}#
-               (#{syntax-object-expression 307}# #{e 1745}#)
-               #{r 1746}#
-               (#{join-wraps 387}#
-                 #{w 1747}#
-                 (#{syntax-object-wrap 309}# #{e 1745}#))
+                                         #{e 1760}#
+                                         #{w 1762}#
+                                         #{s 1763}#
+                                         #{mod 1765}#)))))))))))))))
+           (if (#{syntax-object? 309}# #{e 1760}#)
+             (#{syntax-type 421}#
+               (#{syntax-object-expression 311}# #{e 1760}#)
+               #{r 1761}#
+               (#{join-wraps 391}#
+                 #{w 1762}#
+                 (#{syntax-object-wrap 313}# #{e 1760}#))
                (begin
-                 (let ((#{t 1867}#
-                         (#{source-annotation 320}# #{e 1745}#)))
-                   (if #{t 1867}# #{t 1867}# #{s 1748}#)))
-               #{rib 1749}#
+                 (let ((#{t 1882}#
+                         (#{source-annotation 324}# #{e 1760}#)))
+                   (if #{t 1882}# #{t 1882}# #{s 1763}#)))
+               #{rib 1764}#
                (begin
-                 (let ((#{t 1871}#
-                         (#{syntax-object-module 311}# #{e 1745}#)))
-                   (if #{t 1871}# #{t 1871}# #{mod 1750}#)))
-               #{for-car? 1751}#)
-             (if (self-evaluating? #{e 1745}#)
+                 (let ((#{t 1886}#
+                         (#{syntax-object-module 315}# #{e 1760}#)))
+                   (if #{t 1886}# #{t 1886}# #{mod 1765}#)))
+               #{for-car? 1766}#)
+             (if (self-evaluating? #{e 1760}#)
                (values
                  'constant
                  #f
-                 #{e 1745}#
-                 #{w 1747}#
-                 #{s 1748}#
-                 #{mod 1750}#)
+                 #{e 1760}#
+                 #{w 1762}#
+                 #{s 1763}#
+                 #{mod 1765}#)
                (values
                  'other
                  #f
-                 #{e 1745}#
-                 #{w 1747}#
-                 #{s 1748}#
-                 #{mod 1750}#)))))))
-   (#{chi 419}#
-     (lambda (#{e 1876}# #{r 1877}# #{w 1878}# #{mod 1879}#)
+                 #{e 1760}#
+                 #{w 1762}#
+                 #{s 1763}#
+                 #{mod 1765}#)))))))
+   (#{chi 423}#
+     (lambda (#{e 1891}# #{r 1892}# #{w 1893}# #{mod 1894}#)
        (call-with-values
          (lambda ()
-           (#{syntax-type 417}#
-             #{e 1876}#
-             #{r 1877}#
-             #{w 1878}#
-             (#{source-annotation 320}# #{e 1876}#)
+           (#{syntax-type 421}#
+             #{e 1891}#
+             #{r 1892}#
+             #{w 1893}#
+             (#{source-annotation 324}# #{e 1891}#)
              #f
-             #{mod 1879}#
+             #{mod 1894}#
              #f))
-         (lambda (#{type 1884}#
-                  #{value 1885}#
-                  #{e 1886}#
-                  #{w 1887}#
-                  #{s 1888}#
-                  #{mod 1889}#)
-           (#{chi-expr 421}#
-             #{type 1884}#
-             #{value 1885}#
-             #{e 1886}#
-             #{r 1877}#
-             #{w 1887}#
-             #{s 1888}#
-             #{mod 1889}#)))))
-   (#{chi-expr 421}#
-     (lambda (#{type 1896}#
-              #{value 1897}#
-              #{e 1898}#
-              #{r 1899}#
-              #{w 1900}#
-              #{s 1901}#
-              #{mod 1902}#)
-       (if (eqv? #{type 1896}# 'lexical)
-         (#{build-lexical-reference 271}#
+         (lambda (#{type 1899}#
+                  #{value 1900}#
+                  #{e 1901}#
+                  #{w 1902}#
+                  #{s 1903}#
+                  #{mod 1904}#)
+           (#{chi-expr 425}#
+             #{type 1899}#
+             #{value 1900}#
+             #{e 1901}#
+             #{r 1892}#
+             #{w 1902}#
+             #{s 1903}#
+             #{mod 1904}#)))))
+   (#{chi-expr 425}#
+     (lambda (#{type 1911}#
+              #{value 1912}#
+              #{e 1913}#
+              #{r 1914}#
+              #{w 1915}#
+              #{s 1916}#
+              #{mod 1917}#)
+       (if (memv #{type 1911}# '(lexical))
+         (#{build-lexical-reference 273}#
            'value
-           #{s 1901}#
-           #{e 1898}#
-           #{value 1897}#)
-         (if (if (eqv? #{type 1896}# 'core)
-               #t
-               (eqv? #{type 1896}# 'core-form))
-           (#{value 1897}#
-             #{e 1898}#
-             #{r 1899}#
-             #{w 1900}#
-             #{s 1901}#
-             #{mod 1902}#)
-           (if (eqv? #{type 1896}# 'module-ref)
+           #{s 1916}#
+           #{e 1913}#
+           #{value 1912}#)
+         (if (memv #{type 1911}# '(core core-form))
+           (#{value 1912}#
+             #{e 1913}#
+             #{r 1914}#
+             #{w 1915}#
+             #{s 1916}#
+             #{mod 1917}#)
+           (if (memv #{type 1911}# '(module-ref))
              (call-with-values
                (lambda ()
-                 (#{value 1897}# #{e 1898}# #{r 1899}# #{w 1900}#))
-               (lambda (#{e 1913}#
-                        #{r 1914}#
-                        #{w 1915}#
-                        #{s 1916}#
-                        #{mod 1917}#)
-                 (#{chi 419}#
+                 (#{value 1912}# #{e 1913}# #{r 1914}# #{w 1915}#))
+               (lambda (#{e 1928}#
+                        #{r 1929}#
+                        #{w 1930}#
+                        #{s 1931}#
+                        #{mod 1932}#)
+                 (#{chi 423}#
+                   #{e 1928}#
+                   #{r 1929}#
+                   #{w 1930}#
+                   #{mod 1932}#)))
+             (if (memv #{type 1911}# '(lexical-call))
+               (#{chi-call 427}#
+                 (begin
+                   (let ((#{id 1940}# (car #{e 1913}#)))
+                     (#{build-lexical-reference 273}#
+                       'fun
+                       (#{source-annotation 324}# #{id 1940}#)
+                       (if (#{syntax-object? 309}# #{id 1940}#)
+                         (syntax->datum #{id 1940}#)
+                         #{id 1940}#)
+                       #{value 1912}#)))
+                 #{e 1913}#
+                 #{r 1914}#
+                 #{w 1915}#
+                 #{s 1916}#
+                 #{mod 1917}#)
+               (if (memv #{type 1911}# '(global-call))
+                 (#{chi-call 427}#
+                   (#{build-global-reference 279}#
+                     (#{source-annotation 324}# (car #{e 1913}#))
+                     (if (#{syntax-object? 309}# #{value 1912}#)
+                       (#{syntax-object-expression 311}# #{value 1912}#)
+                       #{value 1912}#)
+                     (if (#{syntax-object? 309}# #{value 1912}#)
+                       (#{syntax-object-module 315}# #{value 1912}#)
+                       #{mod 1917}#))
                    #{e 1913}#
                    #{r 1914}#
                    #{w 1915}#
-                   #{mod 1917}#)))
-             (if (eqv? #{type 1896}# 'lexical-call)
-               (#{chi-application 423}#
-                 (begin
-                   (let ((#{id 1925}# (car #{e 1898}#)))
-                     (#{build-lexical-reference 271}#
-                       'fun
-                       (#{source-annotation 320}# #{id 1925}#)
-                       (if (#{syntax-object? 305}# #{id 1925}#)
-                         (syntax->datum #{id 1925}#)
-                         #{id 1925}#)
-                       #{value 1897}#)))
-                 #{e 1898}#
-                 #{r 1899}#
-                 #{w 1900}#
-                 #{s 1901}#
-                 #{mod 1902}#)
-               (if (eqv? #{type 1896}# 'global-call)
-                 (#{chi-application 423}#
-                   (#{build-global-reference 277}#
-                     (#{source-annotation 320}# (car #{e 1898}#))
-                     (if (#{syntax-object? 305}# #{value 1897}#)
-                       (#{syntax-object-expression 307}# #{value 1897}#)
-                       #{value 1897}#)
-                     (if (#{syntax-object? 305}# #{value 1897}#)
-                       (#{syntax-object-module 311}# #{value 1897}#)
-                       #{mod 1902}#))
-                   #{e 1898}#
-                   #{r 1899}#
-                   #{w 1900}#
-                   #{s 1901}#
-                   #{mod 1902}#)
-                 (if (eqv? #{type 1896}# 'constant)
-                   (#{build-data 291}#
-                     #{s 1901}#
-                     (#{strip 445}#
-                       (#{source-wrap 407}#
-                         #{e 1898}#
-                         #{w 1900}#
-                         #{s 1901}#
-                         #{mod 1902}#)
+                   #{s 1916}#
+                   #{mod 1917}#)
+                 (if (memv #{type 1911}# '(constant))
+                   (#{build-data 295}#
+                     #{s 1916}#
+                     (#{strip 449}#
+                       (#{source-wrap 411}#
+                         #{e 1913}#
+                         #{w 1915}#
+                         #{s 1916}#
+                         #{mod 1917}#)
                        '(())))
-                   (if (eqv? #{type 1896}# 'global)
-                     (#{build-global-reference 277}#
-                       #{s 1901}#
-                       #{value 1897}#
-                       #{mod 1902}#)
-                     (if (eqv? #{type 1896}# 'call)
-                       (#{chi-application 423}#
-                         (#{chi 419}#
-                           (car #{e 1898}#)
-                           #{r 1899}#
-                           #{w 1900}#
-                           #{mod 1902}#)
-                         #{e 1898}#
-                         #{r 1899}#
-                         #{w 1900}#
-                         #{s 1901}#
-                         #{mod 1902}#)
-                       (if (eqv? #{type 1896}# 'begin-form)
-                         (let ((#{tmp 1932}# #{e 1898}#))
-                           (let ((#{tmp 1933}#
+                   (if (memv #{type 1911}# '(global))
+                     (#{build-global-reference 279}#
+                       #{s 1916}#
+                       #{value 1912}#
+                       #{mod 1917}#)
+                     (if (memv #{type 1911}# '(call))
+                       (#{chi-call 427}#
+                         (#{chi 423}#
+                           (car #{e 1913}#)
+                           #{r 1914}#
+                           #{w 1915}#
+                           #{mod 1917}#)
+                         #{e 1913}#
+                         #{r 1914}#
+                         #{w 1915}#
+                         #{s 1916}#
+                         #{mod 1917}#)
+                       (if (memv #{type 1911}# '(begin-form))
+                         (let ((#{tmp 1947}# #{e 1913}#))
+                           (let ((#{tmp 1948}#
                                    ($sc-dispatch
-                                     #{tmp 1932}#
+                                     #{tmp 1947}#
                                      '(_ any . each-any))))
-                             (if #{tmp 1933}#
+                             (if #{tmp 1948}#
                                (@apply
-                                 (lambda (#{e1 1936}# #{e2 1937}#)
-                                   (#{chi-sequence 409}#
-                                     (cons #{e1 1936}# #{e2 1937}#)
-                                     #{r 1899}#
-                                     #{w 1900}#
-                                     #{s 1901}#
-                                     #{mod 1902}#))
-                                 #{tmp 1933}#)
+                                 (lambda (#{e1 1951}# #{e2 1952}#)
+                                   (#{chi-sequence 413}#
+                                     (cons #{e1 1951}# #{e2 1952}#)
+                                     #{r 1914}#
+                                     #{w 1915}#
+                                     #{s 1916}#
+                                     #{mod 1917}#))
+                                 #{tmp 1948}#)
                                (syntax-violation
                                  #f
                                  "source expression failed to match any 
pattern"
-                                 #{tmp 1932}#))))
-                         (if (eqv? #{type 1896}# 'local-syntax-form)
-                           (#{chi-local-syntax 429}#
-                             #{value 1897}#
-                             #{e 1898}#
-                             #{r 1899}#
-                             #{w 1900}#
-                             #{s 1901}#
-                             #{mod 1902}#
-                             #{chi-sequence 409}#)
-                           (if (eqv? #{type 1896}# 'eval-when-form)
-                             (let ((#{tmp 1941}# #{e 1898}#))
-                               (let ((#{tmp 1942}#
+                                 #{tmp 1947}#))))
+                         (if (memv #{type 1911}# '(local-syntax-form))
+                           (#{chi-local-syntax 433}#
+                             #{value 1912}#
+                             #{e 1913}#
+                             #{r 1914}#
+                             #{w 1915}#
+                             #{s 1916}#
+                             #{mod 1917}#
+                             #{chi-sequence 413}#)
+                           (if (memv #{type 1911}# '(eval-when-form))
+                             (let ((#{tmp 1956}# #{e 1913}#))
+                               (let ((#{tmp 1957}#
                                        ($sc-dispatch
-                                         #{tmp 1941}#
+                                         #{tmp 1956}#
                                          '(_ each-any any . each-any))))
-                                 (if #{tmp 1942}#
+                                 (if #{tmp 1957}#
                                    (@apply
-                                     (lambda (#{x 1946}#
-                                              #{e1 1947}#
-                                              #{e2 1948}#)
+                                     (lambda (#{x 1961}#
+                                              #{e1 1962}#
+                                              #{e2 1963}#)
                                        (begin
-                                         (let ((#{when-list 1950}#
-                                                 (#{chi-when-list 415}#
-                                                   #{e 1898}#
-                                                   #{x 1946}#
-                                                   #{w 1900}#)))
-                                           (if (memq 'eval #{when-list 1950}#)
-                                             (#{chi-sequence 409}#
-                                               (cons #{e1 1947}# #{e2 1948}#)
-                                               #{r 1899}#
-                                               #{w 1900}#
-                                               #{s 1901}#
-                                               #{mod 1902}#)
-                                             (#{chi-void 433}#)))))
-                                     #{tmp 1942}#)
+                                         (let ((#{when-list 1965}#
+                                                 (#{chi-when-list 419}#
+                                                   #{e 1913}#
+                                                   #{x 1961}#
+                                                   #{w 1915}#)))
+                                           (if (memq 'eval #{when-list 1965}#)
+                                             (#{chi-sequence 413}#
+                                               (cons #{e1 1962}# #{e2 1963}#)
+                                               #{r 1914}#
+                                               #{w 1915}#
+                                               #{s 1916}#
+                                               #{mod 1917}#)
+                                             (#{chi-void 437}#)))))
+                                     #{tmp 1957}#)
                                    (syntax-violation
                                      #f
                                      "source expression failed to match any 
pattern"
-                                     #{tmp 1941}#))))
-                             (if (if (eqv? #{type 1896}# 'define-form)
-                                   #t
-                                   (eqv? #{type 1896}# 'define-syntax-form))
+                                     #{tmp 1956}#))))
+                             (if (memv #{type 1911}#
+                                       '(define-form define-syntax-form))
                                (syntax-violation
                                  #f
                                  "definition in expression context"
-                                 #{e 1898}#
-                                 (#{wrap 405}#
-                                   #{value 1897}#
-                                   #{w 1900}#
-                                   #{mod 1902}#))
-                               (if (eqv? #{type 1896}# 'syntax)
+                                 #{e 1913}#
+                                 (#{wrap 409}#
+                                   #{value 1912}#
+                                   #{w 1915}#
+                                   #{mod 1917}#))
+                               (if (memv #{type 1911}# '(syntax))
                                  (syntax-violation
                                    #f
                                    "reference to pattern variable outside 
syntax form"
-                                   (#{source-wrap 407}#
-                                     #{e 1898}#
-                                     #{w 1900}#
-                                     #{s 1901}#
-                                     #{mod 1902}#))
-                                 (if (eqv? #{type 1896}# 'displaced-lexical)
+                                   (#{source-wrap 411}#
+                                     #{e 1913}#
+                                     #{w 1915}#
+                                     #{s 1916}#
+                                     #{mod 1917}#))
+                                 (if (memv #{type 1911}# '(displaced-lexical))
                                    (syntax-violation
                                      #f
                                      "reference to identifier outside its 
scope"
-                                     (#{source-wrap 407}#
-                                       #{e 1898}#
-                                       #{w 1900}#
-                                       #{s 1901}#
-                                       #{mod 1902}#))
+                                     (#{source-wrap 411}#
+                                       #{e 1913}#
+                                       #{w 1915}#
+                                       #{s 1916}#
+                                       #{mod 1917}#))
                                    (syntax-violation
                                      #f
                                      "unexpected syntax"
-                                     (#{source-wrap 407}#
-                                       #{e 1898}#
-                                       #{w 1900}#
-                                       #{s 1901}#
-                                       #{mod 1902}#))))))))))))))))))
-   (#{chi-application 423}#
-     (lambda (#{x 1957}#
-              #{e 1958}#
-              #{r 1959}#
-              #{w 1960}#
-              #{s 1961}#
-              #{mod 1962}#)
-       (let ((#{tmp 1969}# #{e 1958}#))
-         (let ((#{tmp 1970}#
-                 ($sc-dispatch #{tmp 1969}# '(any . each-any))))
-           (if #{tmp 1970}#
+                                     (#{source-wrap 411}#
+                                       #{e 1913}#
+                                       #{w 1915}#
+                                       #{s 1916}#
+                                       #{mod 1917}#))))))))))))))))))
+   (#{chi-call 427}#
+     (lambda (#{x 1972}#
+              #{e 1973}#
+              #{r 1974}#
+              #{w 1975}#
+              #{s 1976}#
+              #{mod 1977}#)
+       (let ((#{tmp 1984}# #{e 1973}#))
+         (let ((#{tmp 1985}#
+                 ($sc-dispatch #{tmp 1984}# '(any . each-any))))
+           (if #{tmp 1985}#
              (@apply
-               (lambda (#{e0 1973}# #{e1 1974}#)
-                 (#{build-application 265}#
-                   #{s 1961}#
-                   #{x 1957}#
-                   (map (lambda (#{e 1975}#)
-                          (#{chi 419}#
-                            #{e 1975}#
-                            #{r 1959}#
-                            #{w 1960}#
-                            #{mod 1962}#))
-                        #{e1 1974}#)))
-               #{tmp 1970}#)
+               (lambda (#{e0 1988}# #{e1 1989}#)
+                 (#{build-call 267}#
+                   #{s 1976}#
+                   #{x 1972}#
+                   (map (lambda (#{e 1990}#)
+                          (#{chi 423}#
+                            #{e 1990}#
+                            #{r 1974}#
+                            #{w 1975}#
+                            #{mod 1977}#))
+                        #{e1 1989}#)))
+               #{tmp 1985}#)
              (syntax-violation
                #f
                "source expression failed to match any pattern"
-               #{tmp 1969}#))))))
-   (#{chi-macro 425}#
-     (lambda (#{p 1978}#
-              #{e 1979}#
-              #{r 1980}#
-              #{w 1981}#
-              #{s 1982}#
-              #{rib 1983}#
-              #{mod 1984}#)
+               #{tmp 1984}#))))))
+   (#{chi-macro 429}#
+     (lambda (#{p 1993}#
+              #{e 1994}#
+              #{r 1995}#
+              #{w 1996}#
+              #{s 1997}#
+              #{rib 1998}#
+              #{mod 1999}#)
        (letrec*
-         ((#{rebuild-macro-output 1993}#
-            (lambda (#{x 1994}# #{m 1995}#)
-              (if (pair? #{x 1994}#)
-                (#{decorate-source 259}#
-                  (cons (#{rebuild-macro-output 1993}#
-                          (car #{x 1994}#)
-                          #{m 1995}#)
-                        (#{rebuild-macro-output 1993}#
-                          (cdr #{x 1994}#)
-                          #{m 1995}#))
-                  #{s 1982}#)
-                (if (#{syntax-object? 305}# #{x 1994}#)
+         ((#{rebuild-macro-output 2008}#
+            (lambda (#{x 2009}# #{m 2010}#)
+              (if (pair? #{x 2009}#)
+                (#{decorate-source 261}#
+                  (cons (#{rebuild-macro-output 2008}#
+                          (car #{x 2009}#)
+                          #{m 2010}#)
+                        (#{rebuild-macro-output 2008}#
+                          (cdr #{x 2009}#)
+                          #{m 2010}#))
+                  #{s 1997}#)
+                (if (#{syntax-object? 309}# #{x 2009}#)
                   (begin
-                    (let ((#{w 2003}#
-                            (#{syntax-object-wrap 309}# #{x 1994}#)))
+                    (let ((#{w 2018}#
+                            (#{syntax-object-wrap 313}# #{x 2009}#)))
                       (begin
-                        (let ((#{ms 2006}# (car #{w 2003}#))
-                              (#{s 2007}# (cdr #{w 2003}#)))
-                          (if (if (pair? #{ms 2006}#)
-                                (eq? (car #{ms 2006}#) #f)
+                        (let ((#{ms 2021}# (car #{w 2018}#))
+                              (#{s 2022}# (cdr #{w 2018}#)))
+                          (if (if (pair? #{ms 2021}#)
+                                (eq? (car #{ms 2021}#) #f)
                                 #f)
-                            (#{make-syntax-object 303}#
-                              (#{syntax-object-expression 307}# #{x 1994}#)
-                              (cons (cdr #{ms 2006}#)
-                                    (if #{rib 1983}#
-                                      (cons #{rib 1983}# (cdr #{s 2007}#))
-                                      (cdr #{s 2007}#)))
-                              (#{syntax-object-module 311}# #{x 1994}#))
-                            (#{make-syntax-object 303}#
-                              (#{decorate-source 259}#
-                                (#{syntax-object-expression 307}# #{x 1994}#)
-                                #{s 2007}#)
-                              (cons (cons #{m 1995}# #{ms 2006}#)
-                                    (if #{rib 1983}#
-                                      (cons #{rib 1983}#
-                                            (cons 'shift #{s 2007}#))
-                                      (cons 'shift #{s 2007}#)))
-                              (#{syntax-object-module 311}# #{x 1994}#)))))))
-                  (if (vector? #{x 1994}#)
+                            (#{make-syntax-object 307}#
+                              (#{syntax-object-expression 311}# #{x 2009}#)
+                              (cons (cdr #{ms 2021}#)
+                                    (if #{rib 1998}#
+                                      (cons #{rib 1998}# (cdr #{s 2022}#))
+                                      (cdr #{s 2022}#)))
+                              (#{syntax-object-module 315}# #{x 2009}#))
+                            (#{make-syntax-object 307}#
+                              (#{decorate-source 261}#
+                                (#{syntax-object-expression 311}# #{x 2009}#)
+                                #{s 2022}#)
+                              (cons (cons #{m 2010}# #{ms 2021}#)
+                                    (if #{rib 1998}#
+                                      (cons #{rib 1998}#
+                                            (cons 'shift #{s 2022}#))
+                                      (cons 'shift #{s 2022}#)))
+                              (#{syntax-object-module 315}# #{x 2009}#)))))))
+                  (if (vector? #{x 2009}#)
                     (begin
-                      (let ((#{n 2019}# (vector-length #{x 1994}#)))
+                      (let ((#{n 2034}# (vector-length #{x 2009}#)))
                         (begin
-                          (let ((#{v 2021}#
-                                  (#{decorate-source 259}#
-                                    (make-vector #{n 2019}#)
-                                    #{x 1994}#)))
+                          (let ((#{v 2036}#
+                                  (#{decorate-source 261}#
+                                    (make-vector #{n 2034}#)
+                                    #{x 2009}#)))
                             (letrec*
-                              ((#{loop 2024}#
-                                 (lambda (#{i 2025}#)
-                                   (if (= #{i 2025}# #{n 2019}#)
-                                     (begin (if #f #f) #{v 2021}#)
+                              ((#{loop 2039}#
+                                 (lambda (#{i 2040}#)
+                                   (if (= #{i 2040}# #{n 2034}#)
+                                     (begin (if #f #f) #{v 2036}#)
                                      (begin
                                        (vector-set!
-                                         #{v 2021}#
-                                         #{i 2025}#
-                                         (#{rebuild-macro-output 1993}#
-                                           (vector-ref #{x 1994}# #{i 2025}#)
-                                           #{m 1995}#))
-                                       (#{loop 2024}# (#{1+}# #{i 2025}#)))))))
-                              (begin (#{loop 2024}# 0)))))))
-                    (if (symbol? #{x 1994}#)
+                                         #{v 2036}#
+                                         #{i 2040}#
+                                         (#{rebuild-macro-output 2008}#
+                                           (vector-ref #{x 2009}# #{i 2040}#)
+                                           #{m 2010}#))
+                                       (#{loop 2039}# (#{1+}# #{i 2040}#)))))))
+                              (begin (#{loop 2039}# 0)))))))
+                    (if (symbol? #{x 2009}#)
                       (syntax-violation
                         #f
                         "encountered raw symbol in macro output"
-                        (#{source-wrap 407}#
-                          #{e 1979}#
-                          #{w 1981}#
-                          (cdr #{w 1981}#)
-                          #{mod 1984}#)
-                        #{x 1994}#)
-                      (#{decorate-source 259}# #{x 1994}# #{s 1982}#))))))))
+                        (#{source-wrap 411}#
+                          #{e 1994}#
+                          #{w 1996}#
+                          (cdr #{w 1996}#)
+                          #{mod 1999}#)
+                        #{x 2009}#)
+                      (#{decorate-source 261}# #{x 2009}# #{s 1997}#))))))))
          (begin
-           (#{rebuild-macro-output 1993}#
-             (#{p 1978}#
-               (#{source-wrap 407}#
-                 #{e 1979}#
-                 (#{anti-mark 377}# #{w 1981}#)
-                 #{s 1982}#
-                 #{mod 1984}#))
+           (#{rebuild-macro-output 2008}#
+             (#{p 1993}#
+               (#{source-wrap 411}#
+                 #{e 1994}#
+                 (#{anti-mark 381}# #{w 1996}#)
+                 #{s 1997}#
+                 #{mod 1999}#))
              (gensym "m"))))))
-   (#{chi-body 427}#
-     (lambda (#{body 2035}#
-              #{outer-form 2036}#
-              #{r 2037}#
-              #{w 2038}#
-              #{mod 2039}#)
+   (#{chi-body 431}#
+     (lambda (#{body 2050}#
+              #{outer-form 2051}#
+              #{r 2052}#
+              #{w 2053}#
+              #{mod 2054}#)
        (begin
-         (let ((#{r 2047}#
-                 (cons '("placeholder" placeholder) #{r 2037}#)))
+         (let ((#{r 2062}#
+                 (cons '("placeholder" placeholder) #{r 2052}#)))
            (begin
-             (let ((#{ribcage 2049}#
-                     (#{make-ribcage 357}# '() '() '())))
+             (let ((#{ribcage 2064}#
+                     (#{make-ribcage 361}# '() '() '())))
                (begin
-                 (let ((#{w 2052}#
-                         (cons (car #{w 2038}#)
-                               (cons #{ribcage 2049}# (cdr #{w 2038}#)))))
+                 (let ((#{w 2067}#
+                         (cons (car #{w 2053}#)
+                               (cons #{ribcage 2064}# (cdr #{w 2053}#)))))
                    (letrec*
-                     ((#{parse 2064}#
-                        (lambda (#{body 2065}#
-                                 #{ids 2066}#
-                                 #{labels 2067}#
-                                 #{var-ids 2068}#
-                                 #{vars 2069}#
-                                 #{vals 2070}#
-                                 #{bindings 2071}#)
-                          (if (null? #{body 2065}#)
+                     ((#{parse 2079}#
+                        (lambda (#{body 2080}#
+                                 #{ids 2081}#
+                                 #{labels 2082}#
+                                 #{var-ids 2083}#
+                                 #{vars 2084}#
+                                 #{vals 2085}#
+                                 #{bindings 2086}#)
+                          (if (null? #{body 2080}#)
                             (syntax-violation
                               #f
                               "no expressions in body"
-                              #{outer-form 2036}#)
+                              #{outer-form 2051}#)
                             (begin
-                              (let ((#{e 2076}# (cdr (car #{body 2065}#)))
-                                    (#{er 2077}# (car (car #{body 2065}#))))
+                              (let ((#{e 2091}# (cdr (car #{body 2080}#)))
+                                    (#{er 2092}# (car (car #{body 2080}#))))
                                 (call-with-values
                                   (lambda ()
-                                    (#{syntax-type 417}#
-                                      #{e 2076}#
-                                      #{er 2077}#
+                                    (#{syntax-type 421}#
+                                      #{e 2091}#
+                                      #{er 2092}#
                                       '(())
-                                      (#{source-annotation 320}# #{er 2077}#)
-                                      #{ribcage 2049}#
-                                      #{mod 2039}#
+                                      (#{source-annotation 324}# #{er 2092}#)
+                                      #{ribcage 2064}#
+                                      #{mod 2054}#
                                       #f))
-                                  (lambda (#{type 2079}#
-                                           #{value 2080}#
-                                           #{e 2081}#
-                                           #{w 2082}#
-                                           #{s 2083}#
-                                           #{mod 2084}#)
-                                    (if (eqv? #{type 2079}# 'define-form)
+                                  (lambda (#{type 2094}#
+                                           #{value 2095}#
+                                           #{e 2096}#
+                                           #{w 2097}#
+                                           #{s 2098}#
+                                           #{mod 2099}#)
+                                    (if (memv #{type 2094}# '(define-form))
                                       (begin
-                                        (let ((#{id 2094}#
-                                                (#{wrap 405}#
-                                                  #{value 2080}#
-                                                  #{w 2082}#
-                                                  #{mod 2084}#))
-                                              (#{label 2095}#
-                                                (#{gen-label 352}#)))
+                                        (let ((#{id 2109}#
+                                                (#{wrap 409}#
+                                                  #{value 2095}#
+                                                  #{w 2097}#
+                                                  #{mod 2099}#))
+                                              (#{label 2110}#
+                                                (#{gen-label 356}#)))
                                           (begin
-                                            (let ((#{var 2097}#
-                                                    (#{gen-var 447}#
-                                                      #{id 2094}#)))
+                                            (let ((#{var 2112}#
+                                                    (#{gen-var 451}#
+                                                      #{id 2109}#)))
                                               (begin
-                                                (#{extend-ribcage! 381}#
-                                                  #{ribcage 2049}#
-                                                  #{id 2094}#
-                                                  #{label 2095}#)
-                                                (#{parse 2064}#
-                                                  (cdr #{body 2065}#)
-                                                  (cons #{id 2094}#
-                                                        #{ids 2066}#)
-                                                  (cons #{label 2095}#
-                                                        #{labels 2067}#)
-                                                  (cons #{id 2094}#
-                                                        #{var-ids 2068}#)
-                                                  (cons #{var 2097}#
-                                                        #{vars 2069}#)
-                                                  (cons (cons #{er 2077}#
-                                                              (#{wrap 405}#
-                                                                #{e 2081}#
-                                                                #{w 2082}#
-                                                                #{mod 2084}#))
-                                                        #{vals 2070}#)
+                                                (#{extend-ribcage! 385}#
+                                                  #{ribcage 2064}#
+                                                  #{id 2109}#
+                                                  #{label 2110}#)
+                                                (#{parse 2079}#
+                                                  (cdr #{body 2080}#)
+                                                  (cons #{id 2109}#
+                                                        #{ids 2081}#)
+                                                  (cons #{label 2110}#
+                                                        #{labels 2082}#)
+                                                  (cons #{id 2109}#
+                                                        #{var-ids 2083}#)
+                                                  (cons #{var 2112}#
+                                                        #{vars 2084}#)
+                                                  (cons (cons #{er 2092}#
+                                                              (#{wrap 409}#
+                                                                #{e 2096}#
+                                                                #{w 2097}#
+                                                                #{mod 2099}#))
+                                                        #{vals 2085}#)
                                                   (cons (cons 'lexical
-                                                              #{var 2097}#)
-                                                        #{bindings 
2071}#)))))))
-                                      (if (eqv? #{type 2079}#
-                                                'define-syntax-form)
+                                                              #{var 2112}#)
+                                                        #{bindings 
2086}#)))))))
+                                      (if (memv #{type 2094}#
+                                                '(define-syntax-form))
                                         (begin
-                                          (let ((#{id 2102}#
-                                                  (#{wrap 405}#
-                                                    #{value 2080}#
-                                                    #{w 2082}#
-                                                    #{mod 2084}#))
-                                                (#{label 2103}#
-                                                  (#{gen-label 352}#)))
+                                          (let ((#{id 2117}#
+                                                  (#{wrap 409}#
+                                                    #{value 2095}#
+                                                    #{w 2097}#
+                                                    #{mod 2099}#))
+                                                (#{label 2118}#
+                                                  (#{gen-label 356}#)))
                                             (begin
-                                              (#{extend-ribcage! 381}#
-                                                #{ribcage 2049}#
-                                                #{id 2102}#
-                                                #{label 2103}#)
-                                              (#{parse 2064}#
-                                                (cdr #{body 2065}#)
-                                                (cons #{id 2102}# #{ids 2066}#)
-                                                (cons #{label 2103}#
-                                                      #{labels 2067}#)
-                                                #{var-ids 2068}#
-                                                #{vars 2069}#
-                                                #{vals 2070}#
+                                              (#{extend-ribcage! 385}#
+                                                #{ribcage 2064}#
+                                                #{id 2117}#
+                                                #{label 2118}#)
+                                              (#{parse 2079}#
+                                                (cdr #{body 2080}#)
+                                                (cons #{id 2117}# #{ids 2081}#)
+                                                (cons #{label 2118}#
+                                                      #{labels 2082}#)
+                                                #{var-ids 2083}#
+                                                #{vars 2084}#
+                                                #{vals 2085}#
                                                 (cons (cons 'macro
-                                                            (cons #{er 2077}#
-                                                                  (#{wrap 405}#
-                                                                    #{e 2081}#
-                                                                    #{w 2082}#
-                                                                    #{mod 
2084}#)))
-                                                      #{bindings 2071}#)))))
-                                        (if (eqv? #{type 2079}# 'begin-form)
-                                          (let ((#{tmp 2106}# #{e 2081}#))
-                                            (let ((#{tmp 2107}#
+                                                            (cons #{er 2092}#
+                                                                  (#{wrap 409}#
+                                                                    #{e 2096}#
+                                                                    #{w 2097}#
+                                                                    #{mod 
2099}#)))
+                                                      #{bindings 2086}#)))))
+                                        (if (memv #{type 2094}# '(begin-form))
+                                          (let ((#{tmp 2121}# #{e 2096}#))
+                                            (let ((#{tmp 2122}#
                                                     ($sc-dispatch
-                                                      #{tmp 2106}#
+                                                      #{tmp 2121}#
                                                       '(_ . each-any))))
-                                              (if #{tmp 2107}#
+                                              (if #{tmp 2122}#
                                                 (@apply
-                                                  (lambda (#{e1 2109}#)
-                                                    (#{parse 2064}#
+                                                  (lambda (#{e1 2124}#)
+                                                    (#{parse 2079}#
                                                       (letrec*
-                                                        ((#{f 2112}#
-                                                           (lambda (#{forms 
2113}#)
-                                                             (if (null? 
#{forms 2113}#)
-                                                               (cdr #{body 
2065}#)
-                                                               (cons (cons 
#{er 2077}#
-                                                                           
(#{wrap 405}#
-                                                                             
(car #{forms 2113}#)
-                                                                             
#{w 2082}#
-                                                                             
#{mod 2084}#))
-                                                                     (#{f 
2112}#
-                                                                       (cdr 
#{forms 2113}#)))))))
+                                                        ((#{f 2127}#
+                                                           (lambda (#{forms 
2128}#)
+                                                             (if (null? 
#{forms 2128}#)
+                                                               (cdr #{body 
2080}#)
+                                                               (cons (cons 
#{er 2092}#
+                                                                           
(#{wrap 409}#
+                                                                             
(car #{forms 2128}#)
+                                                                             
#{w 2097}#
+                                                                             
#{mod 2099}#))
+                                                                     (#{f 
2127}#
+                                                                       (cdr 
#{forms 2128}#)))))))
                                                         (begin
-                                                          (#{f 2112}#
-                                                            #{e1 2109}#)))
-                                                      #{ids 2066}#
-                                                      #{labels 2067}#
-                                                      #{var-ids 2068}#
-                                                      #{vars 2069}#
-                                                      #{vals 2070}#
-                                                      #{bindings 2071}#))
-                                                  #{tmp 2107}#)
+                                                          (#{f 2127}#
+                                                            #{e1 2124}#)))
+                                                      #{ids 2081}#
+                                                      #{labels 2082}#
+                                                      #{var-ids 2083}#
+                                                      #{vars 2084}#
+                                                      #{vals 2085}#
+                                                      #{bindings 2086}#))
+                                                  #{tmp 2122}#)
                                                 (syntax-violation
                                                   #f
                                                   "source expression failed to 
match any pattern"
-                                                  #{tmp 2106}#))))
-                                          (if (eqv? #{type 2079}#
-                                                    'local-syntax-form)
-                                            (#{chi-local-syntax 429}#
-                                              #{value 2080}#
-                                              #{e 2081}#
-                                              #{er 2077}#
-                                              #{w 2082}#
-                                              #{s 2083}#
-                                              #{mod 2084}#
-                                              (lambda (#{forms 2116}#
-                                                       #{er 2117}#
-                                                       #{w 2118}#
-                                                       #{s 2119}#
-                                                       #{mod 2120}#)
-                                                (#{parse 2064}#
+                                                  #{tmp 2121}#))))
+                                          (if (memv #{type 2094}#
+                                                    '(local-syntax-form))
+                                            (#{chi-local-syntax 433}#
+                                              #{value 2095}#
+                                              #{e 2096}#
+                                              #{er 2092}#
+                                              #{w 2097}#
+                                              #{s 2098}#
+                                              #{mod 2099}#
+                                              (lambda (#{forms 2131}#
+                                                       #{er 2132}#
+                                                       #{w 2133}#
+                                                       #{s 2134}#
+                                                       #{mod 2135}#)
+                                                (#{parse 2079}#
                                                   (letrec*
-                                                    ((#{f 2128}#
-                                                       (lambda (#{forms 2129}#)
-                                                         (if (null? #{forms 
2129}#)
-                                                           (cdr #{body 2065}#)
-                                                           (cons (cons #{er 
2117}#
-                                                                       (#{wrap 
405}#
-                                                                         (car 
#{forms 2129}#)
-                                                                         #{w 
2118}#
-                                                                         #{mod 
2120}#))
-                                                                 (#{f 2128}#
-                                                                   (cdr 
#{forms 2129}#)))))))
+                                                    ((#{f 2143}#
+                                                       (lambda (#{forms 2144}#)
+                                                         (if (null? #{forms 
2144}#)
+                                                           (cdr #{body 2080}#)
+                                                           (cons (cons #{er 
2132}#
+                                                                       (#{wrap 
409}#
+                                                                         (car 
#{forms 2144}#)
+                                                                         #{w 
2133}#
+                                                                         #{mod 
2135}#))
+                                                                 (#{f 2143}#
+                                                                   (cdr 
#{forms 2144}#)))))))
                                                     (begin
-                                                      (#{f 2128}#
-                                                        #{forms 2116}#)))
-                                                  #{ids 2066}#
-                                                  #{labels 2067}#
-                                                  #{var-ids 2068}#
-                                                  #{vars 2069}#
-                                                  #{vals 2070}#
-                                                  #{bindings 2071}#)))
-                                            (if (null? #{ids 2066}#)
-                                              (#{build-sequence 293}#
+                                                      (#{f 2143}#
+                                                        #{forms 2131}#)))
+                                                  #{ids 2081}#
+                                                  #{labels 2082}#
+                                                  #{var-ids 2083}#
+                                                  #{vars 2084}#
+                                                  #{vals 2085}#
+                                                  #{bindings 2086}#)))
+                                            (if (null? #{ids 2081}#)
+                                              (#{build-sequence 297}#
                                                 #f
-                                                (map (lambda (#{x 2132}#)
-                                                       (#{chi 419}#
-                                                         (cdr #{x 2132}#)
-                                                         (car #{x 2132}#)
+                                                (map (lambda (#{x 2147}#)
+                                                       (#{chi 423}#
+                                                         (cdr #{x 2147}#)
+                                                         (car #{x 2147}#)
                                                          '(())
-                                                         #{mod 2084}#))
-                                                     (cons (cons #{er 2077}#
-                                                                 
(#{source-wrap 407}#
-                                                                   #{e 2081}#
-                                                                   #{w 2082}#
-                                                                   #{s 2083}#
-                                                                   #{mod 
2084}#))
-                                                           (cdr #{body 
2065}#))))
+                                                         #{mod 2099}#))
+                                                     (cons (cons #{er 2092}#
+                                                                 
(#{source-wrap 411}#
+                                                                   #{e 2096}#
+                                                                   #{w 2097}#
+                                                                   #{s 2098}#
+                                                                   #{mod 
2099}#))
+                                                           (cdr #{body 
2080}#))))
                                               (begin
-                                                (if (not (#{valid-bound-ids? 
399}#
-                                                           #{ids 2066}#))
+                                                (if (not (#{valid-bound-ids? 
403}#
+                                                           #{ids 2081}#))
                                                   (syntax-violation
                                                     #f
                                                     "invalid or duplicate 
identifier in definition"
-                                                    #{outer-form 2036}#))
+                                                    #{outer-form 2051}#))
                                                 (letrec*
-                                                  ((#{loop 2139}#
-                                                     (lambda (#{bs 2140}#
-                                                              #{er-cache 2141}#
-                                                              #{r-cache 2142}#)
-                                                       (if (not (null? #{bs 
2140}#))
+                                                  ((#{loop 2154}#
+                                                     (lambda (#{bs 2155}#
+                                                              #{er-cache 2156}#
+                                                              #{r-cache 2157}#)
+                                                       (if (not (null? #{bs 
2155}#))
                                                          (begin
-                                                           (let ((#{b 2145}#
-                                                                   (car #{bs 
2140}#)))
-                                                             (if (eq? (car #{b 
2145}#)
+                                                           (let ((#{b 2160}#
+                                                                   (car #{bs 
2155}#)))
+                                                             (if (eq? (car #{b 
2160}#)
                                                                       'macro)
                                                                (begin
-                                                                 (let ((#{er 
2148}#
-                                                                         (car 
(cdr #{b 2145}#))))
+                                                                 (let ((#{er 
2163}#
+                                                                         (car 
(cdr #{b 2160}#))))
                                                                    (begin
-                                                                     (let 
((#{r-cache 2150}#
-                                                                             
(if (eq? #{er 2148}#
-                                                                               
       #{er-cache 2141}#)
-                                                                               
#{r-cache 2142}#
-                                                                               
(#{macros-only-env 331}#
-                                                                               
  #{er 2148}#))))
+                                                                     (let 
((#{r-cache 2165}#
+                                                                             
(if (eq? #{er 2163}#
+                                                                               
       #{er-cache 2156}#)
+                                                                               
#{r-cache 2157}#
+                                                                               
(#{macros-only-env 335}#
+                                                                               
  #{er 2163}#))))
                                                                        (begin
                                                                          
(set-cdr!
-                                                                           #{b 
2145}#
-                                                                           
(#{eval-local-transformer 431}#
-                                                                             
(#{chi 419}#
-                                                                               
(cdr (cdr #{b 2145}#))
-                                                                               
#{r-cache 2150}#
+                                                                           #{b 
2160}#
+                                                                           
(#{eval-local-transformer 435}#
+                                                                             
(#{chi 423}#
+                                                                               
(cdr (cdr #{b 2160}#))
+                                                                               
#{r-cache 2165}#
                                                                                
'(())
-                                                                               
#{mod 2084}#)
-                                                                             
#{mod 2084}#))
-                                                                         
(#{loop 2139}#
-                                                                           
(cdr #{bs 2140}#)
-                                                                           
#{er 2148}#
-                                                                           
#{r-cache 2150}#))))))
-                                                               (#{loop 2139}#
-                                                                 (cdr #{bs 
2140}#)
-                                                                 #{er-cache 
2141}#
-                                                                 #{r-cache 
2142}#))))))))
+                                                                               
#{mod 2099}#)
+                                                                             
#{mod 2099}#))
+                                                                         
(#{loop 2154}#
+                                                                           
(cdr #{bs 2155}#)
+                                                                           
#{er 2163}#
+                                                                           
#{r-cache 2165}#))))))
+                                                               (#{loop 2154}#
+                                                                 (cdr #{bs 
2155}#)
+                                                                 #{er-cache 
2156}#
+                                                                 #{r-cache 
2157}#))))))))
                                                   (begin
-                                                    (#{loop 2139}#
-                                                      #{bindings 2071}#
+                                                    (#{loop 2154}#
+                                                      #{bindings 2086}#
                                                       #f
                                                       #f)))
                                                 (set-cdr!
-                                                  #{r 2047}#
-                                                  (#{extend-env 327}#
-                                                    #{labels 2067}#
-                                                    #{bindings 2071}#
-                                                    (cdr #{r 2047}#)))
-                                                (#{build-letrec 299}#
+                                                  #{r 2062}#
+                                                  (#{extend-env 331}#
+                                                    #{labels 2082}#
+                                                    #{bindings 2086}#
+                                                    (cdr #{r 2062}#)))
+                                                (#{build-letrec 303}#
                                                   #f
                                                   #t
                                                   (reverse
                                                     (map syntax->datum
-                                                         #{var-ids 2068}#))
-                                                  (reverse #{vars 2069}#)
-                                                  (map (lambda (#{x 2153}#)
-                                                         (#{chi 419}#
-                                                           (cdr #{x 2153}#)
-                                                           (car #{x 2153}#)
+                                                         #{var-ids 2083}#))
+                                                  (reverse #{vars 2084}#)
+                                                  (map (lambda (#{x 2168}#)
+                                                         (#{chi 423}#
+                                                           (cdr #{x 2168}#)
+                                                           (car #{x 2168}#)
                                                            '(())
-                                                           #{mod 2084}#))
-                                                       (reverse #{vals 2070}#))
-                                                  (#{build-sequence 293}#
+                                                           #{mod 2099}#))
+                                                       (reverse #{vals 2085}#))
+                                                  (#{build-sequence 297}#
                                                     #f
-                                                    (map (lambda (#{x 2157}#)
-                                                           (#{chi 419}#
-                                                             (cdr #{x 2157}#)
-                                                             (car #{x 2157}#)
+                                                    (map (lambda (#{x 2172}#)
+                                                           (#{chi 423}#
+                                                             (cdr #{x 2172}#)
+                                                             (car #{x 2172}#)
                                                              '(())
-                                                             #{mod 2084}#))
-                                                         (cons (cons #{er 
2077}#
-                                                                     
(#{source-wrap 407}#
-                                                                       #{e 
2081}#
-                                                                       #{w 
2082}#
-                                                                       #{s 
2083}#
-                                                                       #{mod 
2084}#))
-                                                               (cdr #{body 
2065}#)))))))))))))))))))
+                                                             #{mod 2099}#))
+                                                         (cons (cons #{er 
2092}#
+                                                                     
(#{source-wrap 411}#
+                                                                       #{e 
2096}#
+                                                                       #{w 
2097}#
+                                                                       #{s 
2098}#
+                                                                       #{mod 
2099}#))
+                                                               (cdr #{body 
2080}#)))))))))))))))))))
                      (begin
-                       (#{parse 2064}#
-                         (map (lambda (#{x 2072}#)
-                                (cons #{r 2047}#
-                                      (#{wrap 405}#
-                                        #{x 2072}#
-                                        #{w 2052}#
-                                        #{mod 2039}#)))
-                              #{body 2035}#)
+                       (#{parse 2079}#
+                         (map (lambda (#{x 2087}#)
+                                (cons #{r 2062}#
+                                      (#{wrap 409}#
+                                        #{x 2087}#
+                                        #{w 2067}#
+                                        #{mod 2054}#)))
+                              #{body 2050}#)
                          '()
                          '()
                          '()
                          '()
                          '()
                          '())))))))))))
-   (#{chi-local-syntax 429}#
-     (lambda (#{rec? 2160}#
-              #{e 2161}#
-              #{r 2162}#
-              #{w 2163}#
-              #{s 2164}#
-              #{mod 2165}#
-              #{k 2166}#)
-       (let ((#{tmp 2174}# #{e 2161}#))
-         (let ((#{tmp 2175}#
+   (#{chi-local-syntax 433}#
+     (lambda (#{rec? 2175}#
+              #{e 2176}#
+              #{r 2177}#
+              #{w 2178}#
+              #{s 2179}#
+              #{mod 2180}#
+              #{k 2181}#)
+       (let ((#{tmp 2189}# #{e 2176}#))
+         (let ((#{tmp 2190}#
                  ($sc-dispatch
-                   #{tmp 2174}#
+                   #{tmp 2189}#
                    '(_ #(each (any any)) any . each-any))))
-           (if #{tmp 2175}#
+           (if #{tmp 2190}#
              (@apply
-               (lambda (#{id 2180}#
-                        #{val 2181}#
-                        #{e1 2182}#
-                        #{e2 2183}#)
+               (lambda (#{id 2195}#
+                        #{val 2196}#
+                        #{e1 2197}#
+                        #{e2 2198}#)
                  (begin
-                   (let ((#{ids 2185}# #{id 2180}#))
-                     (if (not (#{valid-bound-ids? 399}# #{ids 2185}#))
+                   (let ((#{ids 2200}# #{id 2195}#))
+                     (if (not (#{valid-bound-ids? 403}# #{ids 2200}#))
                        (syntax-violation
                          #f
                          "duplicate bound keyword"
-                         #{e 2161}#)
+                         #{e 2176}#)
                        (begin
-                         (let ((#{labels 2188}#
-                                 (#{gen-labels 354}# #{ids 2185}#)))
+                         (let ((#{labels 2203}#
+                                 (#{gen-labels 358}# #{ids 2200}#)))
                            (begin
-                             (let ((#{new-w 2190}#
-                                     (#{make-binding-wrap 383}#
-                                       #{ids 2185}#
-                                       #{labels 2188}#
-                                       #{w 2163}#)))
-                               (#{k 2166}#
-                                 (cons #{e1 2182}# #{e2 2183}#)
-                                 (#{extend-env 327}#
-                                   #{labels 2188}#
+                             (let ((#{new-w 2205}#
+                                     (#{make-binding-wrap 387}#
+                                       #{ids 2200}#
+                                       #{labels 2203}#
+                                       #{w 2178}#)))
+                               (#{k 2181}#
+                                 (cons #{e1 2197}# #{e2 2198}#)
+                                 (#{extend-env 331}#
+                                   #{labels 2203}#
                                    (begin
-                                     (let ((#{w 2194}#
-                                             (if #{rec? 2160}#
-                                               #{new-w 2190}#
-                                               #{w 2163}#))
-                                           (#{trans-r 2195}#
-                                             (#{macros-only-env 331}#
-                                               #{r 2162}#)))
-                                       (map (lambda (#{x 2196}#)
+                                     (let ((#{w 2209}#
+                                             (if #{rec? 2175}#
+                                               #{new-w 2205}#
+                                               #{w 2178}#))
+                                           (#{trans-r 2210}#
+                                             (#{macros-only-env 335}#
+                                               #{r 2177}#)))
+                                       (map (lambda (#{x 2211}#)
                                               (cons 'macro
-                                                    (#{eval-local-transformer 
431}#
-                                                      (#{chi 419}#
-                                                        #{x 2196}#
-                                                        #{trans-r 2195}#
-                                                        #{w 2194}#
-                                                        #{mod 2165}#)
-                                                      #{mod 2165}#)))
-                                            #{val 2181}#)))
-                                   #{r 2162}#)
-                                 #{new-w 2190}#
-                                 #{s 2164}#
-                                 #{mod 2165}#)))))))))
-               #{tmp 2175}#)
-             (let ((#{_ 2201}# #{tmp 2174}#))
+                                                    (#{eval-local-transformer 
435}#
+                                                      (#{chi 423}#
+                                                        #{x 2211}#
+                                                        #{trans-r 2210}#
+                                                        #{w 2209}#
+                                                        #{mod 2180}#)
+                                                      #{mod 2180}#)))
+                                            #{val 2196}#)))
+                                   #{r 2177}#)
+                                 #{new-w 2205}#
+                                 #{s 2179}#
+                                 #{mod 2180}#)))))))))
+               #{tmp 2190}#)
+             (let ((#{_ 2216}# #{tmp 2189}#))
                (syntax-violation
                  #f
                  "bad local syntax definition"
-                 (#{source-wrap 407}#
-                   #{e 2161}#
-                   #{w 2163}#
-                   #{s 2164}#
-                   #{mod 2165}#))))))))
-   (#{eval-local-transformer 431}#
-     (lambda (#{expanded 2202}# #{mod 2203}#)
+                 (#{source-wrap 411}#
+                   #{e 2176}#
+                   #{w 2178}#
+                   #{s 2179}#
+                   #{mod 2180}#))))))))
+   (#{eval-local-transformer 435}#
+     (lambda (#{expanded 2217}# #{mod 2218}#)
        (begin
-         (let ((#{p 2207}#
-                 (#{local-eval-hook 252}#
-                   #{expanded 2202}#
-                   #{mod 2203}#)))
-           (if (procedure? #{p 2207}#)
-             #{p 2207}#
+         (let ((#{p 2222}#
+                 (#{local-eval-hook 254}#
+                   #{expanded 2217}#
+                   #{mod 2218}#)))
+           (if (procedure? #{p 2222}#)
+             #{p 2222}#
              (syntax-violation
                #f
                "nonprocedure transformer"
-               #{p 2207}#))))))
-   (#{chi-void 433}#
-     (lambda () (#{build-void 263}# #f)))
-   (#{ellipsis? 435}#
-     (lambda (#{x 2209}#)
-       (if (#{nonsymbol-id? 337}# #{x 2209}#)
-         (#{free-id=? 395}#
-           #{x 2209}#
+               #{p 2222}#))))))
+   (#{chi-void 437}#
+     (lambda () (#{build-void 265}# #f)))
+   (#{ellipsis? 439}#
+     (lambda (#{x 2224}#)
+       (if (#{nonsymbol-id? 341}# #{x 2224}#)
+         (#{free-id=? 399}#
+           #{x 2224}#
            '#(syntax-object
               ...
               ((top)
                #(ribcage () () ())
                #(ribcage () () ())
-               #(ribcage #(x) #((top)) #("i2210"))
+               #(ribcage #(x) #((top)) #("i2225"))
                #(ribcage
                  (lambda-var-list
                    gen-var
@@ -6332,7 +6382,7 @@
                    chi-local-syntax
                    chi-body
                    chi-macro
-                   chi-application
+                   chi-call
                    chi-expr
                    chi
                    syntax-type
@@ -6410,6 +6460,7 @@
                    build-sequence
                    build-data
                    build-primref
+                   build-primcall
                    build-lambda-case
                    build-case-lambda
                    build-simple-lambda
@@ -6421,7 +6472,7 @@
                    build-lexical-reference
                    build-dynlet
                    build-conditional
-                   build-application
+                   build-call
                    build-void
                    maybe-name-value!
                    decorate-source
@@ -6443,7 +6494,8 @@
                    make-lambda-case
                    make-lambda
                    make-sequence
-                   make-application
+                   make-primcall
+                   make-call
                    make-conditional
                    make-toplevel-define
                    make-toplevel-set
@@ -6590,8 +6642,12 @@
                   (top)
                   (top)
                   (top)
+                  (top)
+                  (top)
                   (top))
-                 ("i448"
+                 ("i452"
+                  "i450"
+                  "i448"
                   "i446"
                   "i444"
                   "i442"
@@ -6624,14 +6680,14 @@
                   "i388"
                   "i386"
                   "i384"
+                  "i383"
                   "i382"
                   "i380"
                   "i379"
                   "i378"
+                  "i377"
                   "i376"
-                  "i375"
                   "i374"
-                  "i373"
                   "i372"
                   "i370"
                   "i368"
@@ -6639,33 +6695,33 @@
                   "i364"
                   "i362"
                   "i360"
-                  "i358"
-                  "i356"
+                  "i357"
+                  "i355"
+                  "i354"
                   "i353"
+                  "i352"
                   "i351"
                   "i350"
                   "i349"
                   "i348"
                   "i347"
-                  "i346"
                   "i345"
                   "i344"
-                  "i343"
-                  "i341"
+                  "i342"
                   "i340"
                   "i338"
                   "i336"
                   "i334"
                   "i332"
                   "i330"
+                  "i329"
                   "i328"
+                  "i327"
                   "i326"
                   "i325"
-                  "i324"
                   "i323"
                   "i322"
-                  "i321"
-                  "i319"
+                  "i320"
                   "i318"
                   "i316"
                   "i314"
@@ -6698,17 +6754,17 @@
                   "i260"
                   "i258"
                   "i256"
-                  "i254"
+                  "i255"
                   "i253"
                   "i251"
+                  "i250"
                   "i249"
                   "i248"
                   "i247"
-                  "i246"
                   "i245"
                   "i243"
                   "i241"
-                  "i239"
+                  "i238"
                   "i236"
                   "i234"
                   "i232"
@@ -6735,249 +6791,249 @@
                  ("i40" "i39" "i38")))
               (hygiene guile)))
          #f)))
-   (#{lambda-formals 437}#
-     (lambda (#{orig-args 2213}#)
+   (#{lambda-formals 441}#
+     (lambda (#{orig-args 2228}#)
        (letrec*
-         ((#{req 2216}#
-            (lambda (#{args 2219}# #{rreq 2220}#)
-              (let ((#{tmp 2223}# #{args 2219}#))
-                (let ((#{tmp 2224}# ($sc-dispatch #{tmp 2223}# '())))
-                  (if #{tmp 2224}#
+         ((#{req 2231}#
+            (lambda (#{args 2234}# #{rreq 2235}#)
+              (let ((#{tmp 2238}# #{args 2234}#))
+                (let ((#{tmp 2239}# ($sc-dispatch #{tmp 2238}# '())))
+                  (if #{tmp 2239}#
                     (@apply
                       (lambda ()
-                        (#{check 2218}# (reverse #{rreq 2220}#) #f))
-                      #{tmp 2224}#)
-                    (let ((#{tmp 2225}#
-                            ($sc-dispatch #{tmp 2223}# '(any . any))))
-                      (if (if #{tmp 2225}#
+                        (#{check 2233}# (reverse #{rreq 2235}#) #f))
+                      #{tmp 2239}#)
+                    (let ((#{tmp 2240}#
+                            ($sc-dispatch #{tmp 2238}# '(any . any))))
+                      (if (if #{tmp 2240}#
                             (@apply
-                              (lambda (#{a 2228}# #{b 2229}#)
-                                (#{id? 339}# #{a 2228}#))
-                              #{tmp 2225}#)
+                              (lambda (#{a 2243}# #{b 2244}#)
+                                (#{id? 343}# #{a 2243}#))
+                              #{tmp 2240}#)
                             #f)
                         (@apply
-                          (lambda (#{a 2232}# #{b 2233}#)
-                            (#{req 2216}#
-                              #{b 2233}#
-                              (cons #{a 2232}# #{rreq 2220}#)))
-                          #{tmp 2225}#)
-                        (let ((#{tmp 2234}# (list #{tmp 2223}#)))
-                          (if (if #{tmp 2234}#
+                          (lambda (#{a 2247}# #{b 2248}#)
+                            (#{req 2231}#
+                              #{b 2248}#
+                              (cons #{a 2247}# #{rreq 2235}#)))
+                          #{tmp 2240}#)
+                        (let ((#{tmp 2249}# (list #{tmp 2238}#)))
+                          (if (if #{tmp 2249}#
                                 (@apply
-                                  (lambda (#{r 2236}#)
-                                    (#{id? 339}# #{r 2236}#))
-                                  #{tmp 2234}#)
+                                  (lambda (#{r 2251}#)
+                                    (#{id? 343}# #{r 2251}#))
+                                  #{tmp 2249}#)
                                 #f)
                             (@apply
-                              (lambda (#{r 2238}#)
-                                (#{check 2218}#
-                                  (reverse #{rreq 2220}#)
-                                  #{r 2238}#))
-                              #{tmp 2234}#)
-                            (let ((#{else 2240}# #{tmp 2223}#))
+                              (lambda (#{r 2253}#)
+                                (#{check 2233}#
+                                  (reverse #{rreq 2235}#)
+                                  #{r 2253}#))
+                              #{tmp 2249}#)
+                            (let ((#{else 2255}# #{tmp 2238}#))
                               (syntax-violation
                                 'lambda
                                 "invalid argument list"
-                                #{orig-args 2213}#
-                                #{args 2219}#)))))))))))
-          (#{check 2218}#
-            (lambda (#{req 2241}# #{rest 2242}#)
-              (if (#{distinct-bound-ids? 401}#
-                    (if #{rest 2242}#
-                      (cons #{rest 2242}# #{req 2241}#)
-                      #{req 2241}#))
-                (values #{req 2241}# #f #{rest 2242}# #f)
+                                #{orig-args 2228}#
+                                #{args 2234}#)))))))))))
+          (#{check 2233}#
+            (lambda (#{req 2256}# #{rest 2257}#)
+              (if (#{distinct-bound-ids? 405}#
+                    (if #{rest 2257}#
+                      (cons #{rest 2257}# #{req 2256}#)
+                      #{req 2256}#))
+                (values #{req 2256}# #f #{rest 2257}# #f)
                 (syntax-violation
                   'lambda
                   "duplicate identifier in argument list"
-                  #{orig-args 2213}#)))))
-         (begin (#{req 2216}# #{orig-args 2213}# '())))))
-   (#{chi-simple-lambda 439}#
-     (lambda (#{e 2248}#
-              #{r 2249}#
-              #{w 2250}#
-              #{s 2251}#
-              #{mod 2252}#
-              #{req 2253}#
-              #{rest 2254}#
-              #{meta 2255}#
-              #{body 2256}#)
+                  #{orig-args 2228}#)))))
+         (begin (#{req 2231}# #{orig-args 2228}# '())))))
+   (#{chi-simple-lambda 443}#
+     (lambda (#{e 2263}#
+              #{r 2264}#
+              #{w 2265}#
+              #{s 2266}#
+              #{mod 2267}#
+              #{req 2268}#
+              #{rest 2269}#
+              #{meta 2270}#
+              #{body 2271}#)
        (begin
-         (let ((#{ids 2268}#
-                 (if #{rest 2254}#
-                   (append #{req 2253}# (list #{rest 2254}#))
-                   #{req 2253}#)))
+         (let ((#{ids 2283}#
+                 (if #{rest 2269}#
+                   (append #{req 2268}# (list #{rest 2269}#))
+                   #{req 2268}#)))
            (begin
-             (let ((#{vars 2270}#
-                     (map #{gen-var 447}# #{ids 2268}#)))
+             (let ((#{vars 2285}#
+                     (map #{gen-var 451}# #{ids 2283}#)))
                (begin
-                 (let ((#{labels 2272}#
-                         (#{gen-labels 354}# #{ids 2268}#)))
-                   (#{build-simple-lambda 283}#
-                     #{s 2251}#
-                     (map syntax->datum #{req 2253}#)
-                     (if #{rest 2254}#
-                       (syntax->datum #{rest 2254}#)
+                 (let ((#{labels 2287}#
+                         (#{gen-labels 358}# #{ids 2283}#)))
+                   (#{build-simple-lambda 285}#
+                     #{s 2266}#
+                     (map syntax->datum #{req 2268}#)
+                     (if #{rest 2269}#
+                       (syntax->datum #{rest 2269}#)
                        #f)
-                     #{vars 2270}#
-                     #{meta 2255}#
-                     (#{chi-body 427}#
-                       #{body 2256}#
-                       (#{source-wrap 407}#
-                         #{e 2248}#
-                         #{w 2250}#
-                         #{s 2251}#
-                         #{mod 2252}#)
-                       (#{extend-var-env 329}#
-                         #{labels 2272}#
-                         #{vars 2270}#
-                         #{r 2249}#)
-                       (#{make-binding-wrap 383}#
-                         #{ids 2268}#
-                         #{labels 2272}#
-                         #{w 2250}#)
-                       #{mod 2252}#))))))))))
-   (#{lambda*-formals 441}#
-     (lambda (#{orig-args 2275}#)
+                     #{vars 2285}#
+                     #{meta 2270}#
+                     (#{chi-body 431}#
+                       #{body 2271}#
+                       (#{source-wrap 411}#
+                         #{e 2263}#
+                         #{w 2265}#
+                         #{s 2266}#
+                         #{mod 2267}#)
+                       (#{extend-var-env 333}#
+                         #{labels 2287}#
+                         #{vars 2285}#
+                         #{r 2264}#)
+                       (#{make-binding-wrap 387}#
+                         #{ids 2283}#
+                         #{labels 2287}#
+                         #{w 2265}#)
+                       #{mod 2267}#))))))))))
+   (#{lambda*-formals 445}#
+     (lambda (#{orig-args 2290}#)
        (letrec*
-         ((#{req 2278}#
-            (lambda (#{args 2287}# #{rreq 2288}#)
-              (let ((#{tmp 2291}# #{args 2287}#))
-                (let ((#{tmp 2292}# ($sc-dispatch #{tmp 2291}# '())))
-                  (if #{tmp 2292}#
+         ((#{req 2293}#
+            (lambda (#{args 2302}# #{rreq 2303}#)
+              (let ((#{tmp 2306}# #{args 2302}#))
+                (let ((#{tmp 2307}# ($sc-dispatch #{tmp 2306}# '())))
+                  (if #{tmp 2307}#
                     (@apply
                       (lambda ()
-                        (#{check 2286}#
-                          (reverse #{rreq 2288}#)
+                        (#{check 2301}#
+                          (reverse #{rreq 2303}#)
                           '()
                           #f
                           '()))
-                      #{tmp 2292}#)
-                    (let ((#{tmp 2293}#
-                            ($sc-dispatch #{tmp 2291}# '(any . any))))
-                      (if (if #{tmp 2293}#
+                      #{tmp 2307}#)
+                    (let ((#{tmp 2308}#
+                            ($sc-dispatch #{tmp 2306}# '(any . any))))
+                      (if (if #{tmp 2308}#
                             (@apply
-                              (lambda (#{a 2296}# #{b 2297}#)
-                                (#{id? 339}# #{a 2296}#))
-                              #{tmp 2293}#)
+                              (lambda (#{a 2311}# #{b 2312}#)
+                                (#{id? 343}# #{a 2311}#))
+                              #{tmp 2308}#)
                             #f)
                         (@apply
-                          (lambda (#{a 2300}# #{b 2301}#)
-                            (#{req 2278}#
-                              #{b 2301}#
-                              (cons #{a 2300}# #{rreq 2288}#)))
-                          #{tmp 2293}#)
-                        (let ((#{tmp 2302}#
-                                ($sc-dispatch #{tmp 2291}# '(any . any))))
-                          (if (if #{tmp 2302}#
+                          (lambda (#{a 2315}# #{b 2316}#)
+                            (#{req 2293}#
+                              #{b 2316}#
+                              (cons #{a 2315}# #{rreq 2303}#)))
+                          #{tmp 2308}#)
+                        (let ((#{tmp 2317}#
+                                ($sc-dispatch #{tmp 2306}# '(any . any))))
+                          (if (if #{tmp 2317}#
                                 (@apply
-                                  (lambda (#{a 2305}# #{b 2306}#)
-                                    (eq? (syntax->datum #{a 2305}#)
+                                  (lambda (#{a 2320}# #{b 2321}#)
+                                    (eq? (syntax->datum #{a 2320}#)
                                          #:optional))
-                                  #{tmp 2302}#)
+                                  #{tmp 2317}#)
                                 #f)
                             (@apply
-                              (lambda (#{a 2309}# #{b 2310}#)
-                                (#{opt 2280}#
-                                  #{b 2310}#
-                                  (reverse #{rreq 2288}#)
+                              (lambda (#{a 2324}# #{b 2325}#)
+                                (#{opt 2295}#
+                                  #{b 2325}#
+                                  (reverse #{rreq 2303}#)
                                   '()))
-                              #{tmp 2302}#)
-                            (let ((#{tmp 2311}#
-                                    ($sc-dispatch #{tmp 2291}# '(any . any))))
-                              (if (if #{tmp 2311}#
+                              #{tmp 2317}#)
+                            (let ((#{tmp 2326}#
+                                    ($sc-dispatch #{tmp 2306}# '(any . any))))
+                              (if (if #{tmp 2326}#
                                     (@apply
-                                      (lambda (#{a 2314}# #{b 2315}#)
-                                        (eq? (syntax->datum #{a 2314}#) #:key))
-                                      #{tmp 2311}#)
+                                      (lambda (#{a 2329}# #{b 2330}#)
+                                        (eq? (syntax->datum #{a 2329}#) #:key))
+                                      #{tmp 2326}#)
                                     #f)
                                 (@apply
-                                  (lambda (#{a 2318}# #{b 2319}#)
-                                    (#{key 2282}#
-                                      #{b 2319}#
-                                      (reverse #{rreq 2288}#)
+                                  (lambda (#{a 2333}# #{b 2334}#)
+                                    (#{key 2297}#
+                                      #{b 2334}#
+                                      (reverse #{rreq 2303}#)
                                       '()
                                       '()))
-                                  #{tmp 2311}#)
-                                (let ((#{tmp 2320}#
+                                  #{tmp 2326}#)
+                                (let ((#{tmp 2335}#
                                         ($sc-dispatch
-                                          #{tmp 2291}#
+                                          #{tmp 2306}#
                                           '(any any))))
-                                  (if (if #{tmp 2320}#
+                                  (if (if #{tmp 2335}#
                                         (@apply
-                                          (lambda (#{a 2323}# #{b 2324}#)
-                                            (eq? (syntax->datum #{a 2323}#)
+                                          (lambda (#{a 2338}# #{b 2339}#)
+                                            (eq? (syntax->datum #{a 2338}#)
                                                  #:rest))
-                                          #{tmp 2320}#)
+                                          #{tmp 2335}#)
                                         #f)
                                     (@apply
-                                      (lambda (#{a 2327}# #{b 2328}#)
-                                        (#{rest 2284}#
-                                          #{b 2328}#
-                                          (reverse #{rreq 2288}#)
+                                      (lambda (#{a 2342}# #{b 2343}#)
+                                        (#{rest 2299}#
+                                          #{b 2343}#
+                                          (reverse #{rreq 2303}#)
                                           '()
                                           '()))
-                                      #{tmp 2320}#)
-                                    (let ((#{tmp 2329}# (list #{tmp 2291}#)))
-                                      (if (if #{tmp 2329}#
+                                      #{tmp 2335}#)
+                                    (let ((#{tmp 2344}# (list #{tmp 2306}#)))
+                                      (if (if #{tmp 2344}#
                                             (@apply
-                                              (lambda (#{r 2331}#)
-                                                (#{id? 339}# #{r 2331}#))
-                                              #{tmp 2329}#)
+                                              (lambda (#{r 2346}#)
+                                                (#{id? 343}# #{r 2346}#))
+                                              #{tmp 2344}#)
                                             #f)
                                         (@apply
-                                          (lambda (#{r 2333}#)
-                                            (#{rest 2284}#
-                                              #{r 2333}#
-                                              (reverse #{rreq 2288}#)
+                                          (lambda (#{r 2348}#)
+                                            (#{rest 2299}#
+                                              #{r 2348}#
+                                              (reverse #{rreq 2303}#)
                                               '()
                                               '()))
-                                          #{tmp 2329}#)
-                                        (let ((#{else 2335}# #{tmp 2291}#))
+                                          #{tmp 2344}#)
+                                        (let ((#{else 2350}# #{tmp 2306}#))
                                           (syntax-violation
                                             'lambda*
                                             "invalid argument list"
-                                            #{orig-args 2275}#
-                                            #{args 2287}#)))))))))))))))))
-          (#{opt 2280}#
-            (lambda (#{args 2336}# #{req 2337}# #{ropt 2338}#)
-              (let ((#{tmp 2342}# #{args 2336}#))
-                (let ((#{tmp 2343}# ($sc-dispatch #{tmp 2342}# '())))
-                  (if #{tmp 2343}#
+                                            #{orig-args 2290}#
+                                            #{args 2302}#)))))))))))))))))
+          (#{opt 2295}#
+            (lambda (#{args 2351}# #{req 2352}# #{ropt 2353}#)
+              (let ((#{tmp 2357}# #{args 2351}#))
+                (let ((#{tmp 2358}# ($sc-dispatch #{tmp 2357}# '())))
+                  (if #{tmp 2358}#
                     (@apply
                       (lambda ()
-                        (#{check 2286}#
-                          #{req 2337}#
-                          (reverse #{ropt 2338}#)
+                        (#{check 2301}#
+                          #{req 2352}#
+                          (reverse #{ropt 2353}#)
                           #f
                           '()))
-                      #{tmp 2343}#)
-                    (let ((#{tmp 2344}#
-                            ($sc-dispatch #{tmp 2342}# '(any . any))))
-                      (if (if #{tmp 2344}#
+                      #{tmp 2358}#)
+                    (let ((#{tmp 2359}#
+                            ($sc-dispatch #{tmp 2357}# '(any . any))))
+                      (if (if #{tmp 2359}#
                             (@apply
-                              (lambda (#{a 2347}# #{b 2348}#)
-                                (#{id? 339}# #{a 2347}#))
-                              #{tmp 2344}#)
+                              (lambda (#{a 2362}# #{b 2363}#)
+                                (#{id? 343}# #{a 2362}#))
+                              #{tmp 2359}#)
                             #f)
                         (@apply
-                          (lambda (#{a 2351}# #{b 2352}#)
-                            (#{opt 2280}#
-                              #{b 2352}#
-                              #{req 2337}#
-                              (cons (cons #{a 2351}#
+                          (lambda (#{a 2366}# #{b 2367}#)
+                            (#{opt 2295}#
+                              #{b 2367}#
+                              #{req 2352}#
+                              (cons (cons #{a 2366}#
                                           '(#(syntax-object
                                               #f
                                               ((top)
                                                #(ribcage
                                                  #(a b)
                                                  #((top) (top))
-                                                 #("i2349" "i2350"))
+                                                 #("i2364" "i2365"))
                                                #(ribcage () () ())
                                                #(ribcage
                                                  #(args req ropt)
                                                  #((top) (top) (top))
-                                                 #("i2339" "i2340" "i2341"))
+                                                 #("i2354" "i2355" "i2356"))
                                                #(ribcage
                                                  (check rest key opt req)
                                                  ((top)
@@ -6985,15 +7041,15 @@
                                                   (top)
                                                   (top)
                                                   (top))
-                                                 ("i2285"
-                                                  "i2283"
-                                                  "i2281"
-                                                  "i2279"
-                                                  "i2277"))
+                                                 ("i2300"
+                                                  "i2298"
+                                                  "i2296"
+                                                  "i2294"
+                                                  "i2292"))
                                                #(ribcage
                                                  #(orig-args)
                                                  #((top))
-                                                 #("i2276"))
+                                                 #("i2291"))
                                                #(ribcage
                                                  (lambda-var-list
                                                    gen-var
@@ -7008,7 +7064,7 @@
                                                    chi-local-syntax
                                                    chi-body
                                                    chi-macro
-                                                   chi-application
+                                                   chi-call
                                                    chi-expr
                                                    chi
                                                    syntax-type
@@ -7086,6 +7142,7 @@
                                                    build-sequence
                                                    build-data
                                                    build-primref
+                                                   build-primcall
                                                    build-lambda-case
                                                    build-case-lambda
                                                    build-simple-lambda
@@ -7097,7 +7154,7 @@
                                                    build-lexical-reference
                                                    build-dynlet
                                                    build-conditional
-                                                   build-application
+                                                   build-call
                                                    build-void
                                                    maybe-name-value!
                                                    decorate-source
@@ -7119,7 +7176,8 @@
                                                    make-lambda-case
                                                    make-lambda
                                                    make-sequence
-                                                   make-application
+                                                   make-primcall
+                                                   make-call
                                                    make-conditional
                                                    make-toplevel-define
                                                    make-toplevel-set
@@ -7266,8 +7324,12 @@
                                                   (top)
                                                   (top)
                                                   (top)
+                                                  (top)
+                                                  (top)
                                                   (top))
-                                                 ("i448"
+                                                 ("i452"
+                                                  "i450"
+                                                  "i448"
                                                   "i446"
                                                   "i444"
                                                   "i442"
@@ -7300,14 +7362,14 @@
                                                   "i388"
                                                   "i386"
                                                   "i384"
+                                                  "i383"
                                                   "i382"
                                                   "i380"
                                                   "i379"
                                                   "i378"
+                                                  "i377"
                                                   "i376"
-                                                  "i375"
                                                   "i374"
-                                                  "i373"
                                                   "i372"
                                                   "i370"
                                                   "i368"
@@ -7315,33 +7377,33 @@
                                                   "i364"
                                                   "i362"
                                                   "i360"
-                                                  "i358"
-                                                  "i356"
+                                                  "i357"
+                                                  "i355"
+                                                  "i354"
                                                   "i353"
+                                                  "i352"
                                                   "i351"
                                                   "i350"
                                                   "i349"
                                                   "i348"
                                                   "i347"
-                                                  "i346"
                                                   "i345"
                                                   "i344"
-                                                  "i343"
-                                                  "i341"
+                                                  "i342"
                                                   "i340"
                                                   "i338"
                                                   "i336"
                                                   "i334"
                                                   "i332"
                                                   "i330"
+                                                  "i329"
                                                   "i328"
+                                                  "i327"
                                                   "i326"
                                                   "i325"
-                                                  "i324"
                                                   "i323"
                                                   "i322"
-                                                  "i321"
-                                                  "i319"
+                                                  "i320"
                                                   "i318"
                                                   "i316"
                                                   "i314"
@@ -7374,17 +7436,17 @@
                                                   "i260"
                                                   "i258"
                                                   "i256"
-                                                  "i254"
+                                                  "i255"
                                                   "i253"
                                                   "i251"
+                                                  "i250"
                                                   "i249"
                                                   "i248"
                                                   "i247"
-                                                  "i246"
                                                   "i245"
                                                   "i243"
                                                   "i241"
-                                                  "i239"
+                                                  "i238"
                                                   "i236"
                                                   "i234"
                                                   "i232"
@@ -7410,118 +7472,118 @@
                                                  ((top) (top) (top))
                                                  ("i40" "i39" "i38")))
                                               (hygiene guile))))
-                                    #{ropt 2338}#)))
-                          #{tmp 2344}#)
-                        (let ((#{tmp 2353}#
+                                    #{ropt 2353}#)))
+                          #{tmp 2359}#)
+                        (let ((#{tmp 2368}#
                                 ($sc-dispatch
-                                  #{tmp 2342}#
+                                  #{tmp 2357}#
                                   '((any any) . any))))
-                          (if (if #{tmp 2353}#
+                          (if (if #{tmp 2368}#
                                 (@apply
-                                  (lambda (#{a 2357}# #{init 2358}# #{b 2359}#)
-                                    (#{id? 339}# #{a 2357}#))
-                                  #{tmp 2353}#)
+                                  (lambda (#{a 2372}# #{init 2373}# #{b 2374}#)
+                                    (#{id? 343}# #{a 2372}#))
+                                  #{tmp 2368}#)
                                 #f)
                             (@apply
-                              (lambda (#{a 2363}# #{init 2364}# #{b 2365}#)
-                                (#{opt 2280}#
-                                  #{b 2365}#
-                                  #{req 2337}#
-                                  (cons (list #{a 2363}# #{init 2364}#)
-                                        #{ropt 2338}#)))
-                              #{tmp 2353}#)
-                            (let ((#{tmp 2366}#
-                                    ($sc-dispatch #{tmp 2342}# '(any . any))))
-                              (if (if #{tmp 2366}#
+                              (lambda (#{a 2378}# #{init 2379}# #{b 2380}#)
+                                (#{opt 2295}#
+                                  #{b 2380}#
+                                  #{req 2352}#
+                                  (cons (list #{a 2378}# #{init 2379}#)
+                                        #{ropt 2353}#)))
+                              #{tmp 2368}#)
+                            (let ((#{tmp 2381}#
+                                    ($sc-dispatch #{tmp 2357}# '(any . any))))
+                              (if (if #{tmp 2381}#
                                     (@apply
-                                      (lambda (#{a 2369}# #{b 2370}#)
-                                        (eq? (syntax->datum #{a 2369}#) #:key))
-                                      #{tmp 2366}#)
+                                      (lambda (#{a 2384}# #{b 2385}#)
+                                        (eq? (syntax->datum #{a 2384}#) #:key))
+                                      #{tmp 2381}#)
                                     #f)
                                 (@apply
-                                  (lambda (#{a 2373}# #{b 2374}#)
-                                    (#{key 2282}#
-                                      #{b 2374}#
-                                      #{req 2337}#
-                                      (reverse #{ropt 2338}#)
+                                  (lambda (#{a 2388}# #{b 2389}#)
+                                    (#{key 2297}#
+                                      #{b 2389}#
+                                      #{req 2352}#
+                                      (reverse #{ropt 2353}#)
                                       '()))
-                                  #{tmp 2366}#)
-                                (let ((#{tmp 2375}#
+                                  #{tmp 2381}#)
+                                (let ((#{tmp 2390}#
                                         ($sc-dispatch
-                                          #{tmp 2342}#
+                                          #{tmp 2357}#
                                           '(any any))))
-                                  (if (if #{tmp 2375}#
+                                  (if (if #{tmp 2390}#
                                         (@apply
-                                          (lambda (#{a 2378}# #{b 2379}#)
-                                            (eq? (syntax->datum #{a 2378}#)
+                                          (lambda (#{a 2393}# #{b 2394}#)
+                                            (eq? (syntax->datum #{a 2393}#)
                                                  #:rest))
-                                          #{tmp 2375}#)
+                                          #{tmp 2390}#)
                                         #f)
                                     (@apply
-                                      (lambda (#{a 2382}# #{b 2383}#)
-                                        (#{rest 2284}#
-                                          #{b 2383}#
-                                          #{req 2337}#
-                                          (reverse #{ropt 2338}#)
+                                      (lambda (#{a 2397}# #{b 2398}#)
+                                        (#{rest 2299}#
+                                          #{b 2398}#
+                                          #{req 2352}#
+                                          (reverse #{ropt 2353}#)
                                           '()))
-                                      #{tmp 2375}#)
-                                    (let ((#{tmp 2384}# (list #{tmp 2342}#)))
-                                      (if (if #{tmp 2384}#
+                                      #{tmp 2390}#)
+                                    (let ((#{tmp 2399}# (list #{tmp 2357}#)))
+                                      (if (if #{tmp 2399}#
                                             (@apply
-                                              (lambda (#{r 2386}#)
-                                                (#{id? 339}# #{r 2386}#))
-                                              #{tmp 2384}#)
+                                              (lambda (#{r 2401}#)
+                                                (#{id? 343}# #{r 2401}#))
+                                              #{tmp 2399}#)
                                             #f)
                                         (@apply
-                                          (lambda (#{r 2388}#)
-                                            (#{rest 2284}#
-                                              #{r 2388}#
-                                              #{req 2337}#
-                                              (reverse #{ropt 2338}#)
+                                          (lambda (#{r 2403}#)
+                                            (#{rest 2299}#
+                                              #{r 2403}#
+                                              #{req 2352}#
+                                              (reverse #{ropt 2353}#)
                                               '()))
-                                          #{tmp 2384}#)
-                                        (let ((#{else 2390}# #{tmp 2342}#))
+                                          #{tmp 2399}#)
+                                        (let ((#{else 2405}# #{tmp 2357}#))
                                           (syntax-violation
                                             'lambda*
                                             "invalid optional argument list"
-                                            #{orig-args 2275}#
-                                            #{args 2336}#)))))))))))))))))
-          (#{key 2282}#
-            (lambda (#{args 2391}#
-                     #{req 2392}#
-                     #{opt 2393}#
-                     #{rkey 2394}#)
-              (let ((#{tmp 2399}# #{args 2391}#))
-                (let ((#{tmp 2400}# ($sc-dispatch #{tmp 2399}# '())))
-                  (if #{tmp 2400}#
+                                            #{orig-args 2290}#
+                                            #{args 2351}#)))))))))))))))))
+          (#{key 2297}#
+            (lambda (#{args 2406}#
+                     #{req 2407}#
+                     #{opt 2408}#
+                     #{rkey 2409}#)
+              (let ((#{tmp 2414}# #{args 2406}#))
+                (let ((#{tmp 2415}# ($sc-dispatch #{tmp 2414}# '())))
+                  (if #{tmp 2415}#
                     (@apply
                       (lambda ()
-                        (#{check 2286}#
-                          #{req 2392}#
-                          #{opt 2393}#
+                        (#{check 2301}#
+                          #{req 2407}#
+                          #{opt 2408}#
                           #f
-                          (cons #f (reverse #{rkey 2394}#))))
-                      #{tmp 2400}#)
-                    (let ((#{tmp 2401}#
-                            ($sc-dispatch #{tmp 2399}# '(any . any))))
-                      (if (if #{tmp 2401}#
+                          (cons #f (reverse #{rkey 2409}#))))
+                      #{tmp 2415}#)
+                    (let ((#{tmp 2416}#
+                            ($sc-dispatch #{tmp 2414}# '(any . any))))
+                      (if (if #{tmp 2416}#
                             (@apply
-                              (lambda (#{a 2404}# #{b 2405}#)
-                                (#{id? 339}# #{a 2404}#))
-                              #{tmp 2401}#)
+                              (lambda (#{a 2419}# #{b 2420}#)
+                                (#{id? 343}# #{a 2419}#))
+                              #{tmp 2416}#)
                             #f)
                         (@apply
-                          (lambda (#{a 2408}# #{b 2409}#)
-                            (let ((#{tmp 2411}#
+                          (lambda (#{a 2423}# #{b 2424}#)
+                            (let ((#{tmp 2426}#
                                     (symbol->keyword
-                                      (syntax->datum #{a 2408}#))))
-                              (let ((#{k 2413}# #{tmp 2411}#))
-                                (#{key 2282}#
-                                  #{b 2409}#
-                                  #{req 2392}#
-                                  #{opt 2393}#
-                                  (cons (cons #{k 2413}#
-                                              (cons #{a 2408}#
+                                      (syntax->datum #{a 2423}#))))
+                              (let ((#{k 2428}# #{tmp 2426}#))
+                                (#{key 2297}#
+                                  #{b 2424}#
+                                  #{req 2407}#
+                                  #{opt 2408}#
+                                  (cons (cons #{k 2428}#
+                                              (cons #{a 2423}#
                                                     '(#(syntax-object
                                                         #f
                                                         ((top)
@@ -7529,11 +7591,11 @@
                                                          #(ribcage
                                                            #(k)
                                                            #((top))
-                                                           #("i2412"))
+                                                           #("i2427"))
                                                          #(ribcage
                                                            #(a b)
                                                            #((top) (top))
-                                                           #("i2406" "i2407"))
+                                                           #("i2421" "i2422"))
                                                          #(ribcage () () ())
                                                          #(ribcage
                                                            #(args req opt rkey)
@@ -7541,10 +7603,10 @@
                                                              (top)
                                                              (top)
                                                              (top))
-                                                           #("i2395"
-                                                             "i2396"
-                                                             "i2397"
-                                                             "i2398"))
+                                                           #("i2410"
+                                                             "i2411"
+                                                             "i2412"
+                                                             "i2413"))
                                                          #(ribcage
                                                            (check rest
                                                                   key
@@ -7555,15 +7617,15 @@
                                                             (top)
                                                             (top)
                                                             (top))
-                                                           ("i2285"
-                                                            "i2283"
-                                                            "i2281"
-                                                            "i2279"
-                                                            "i2277"))
+                                                           ("i2300"
+                                                            "i2298"
+                                                            "i2296"
+                                                            "i2294"
+                                                            "i2292"))
                                                          #(ribcage
                                                            #(orig-args)
                                                            #((top))
-                                                           #("i2276"))
+                                                           #("i2291"))
                                                          #(ribcage
                                                            (lambda-var-list
                                                              gen-var
@@ -7578,7 +7640,7 @@
                                                              chi-local-syntax
                                                              chi-body
                                                              chi-macro
-                                                             chi-application
+                                                             chi-call
                                                              chi-expr
                                                              chi
                                                              syntax-type
@@ -7656,6 +7718,7 @@
                                                              build-sequence
                                                              build-data
                                                              build-primref
+                                                             build-primcall
                                                              build-lambda-case
                                                              build-case-lambda
                                                              
build-simple-lambda
@@ -7667,7 +7730,7 @@
                                                              
build-lexical-reference
                                                              build-dynlet
                                                              build-conditional
-                                                             build-application
+                                                             build-call
                                                              build-void
                                                              maybe-name-value!
                                                              decorate-source
@@ -7689,7 +7752,8 @@
                                                              make-lambda-case
                                                              make-lambda
                                                              make-sequence
-                                                             make-application
+                                                             make-primcall
+                                                             make-call
                                                              make-conditional
                                                              
make-toplevel-define
                                                              make-toplevel-set
@@ -7836,8 +7900,12 @@
                                                             (top)
                                                             (top)
                                                             (top)
+                                                            (top)
+                                                            (top)
                                                             (top))
-                                                           ("i448"
+                                                           ("i452"
+                                                            "i450"
+                                                            "i448"
                                                             "i446"
                                                             "i444"
                                                             "i442"
@@ -7870,14 +7938,14 @@
                                                             "i388"
                                                             "i386"
                                                             "i384"
+                                                            "i383"
                                                             "i382"
                                                             "i380"
                                                             "i379"
                                                             "i378"
+                                                            "i377"
                                                             "i376"
-                                                            "i375"
                                                             "i374"
-                                                            "i373"
                                                             "i372"
                                                             "i370"
                                                             "i368"
@@ -7885,33 +7953,33 @@
                                                             "i364"
                                                             "i362"
                                                             "i360"
-                                                            "i358"
-                                                            "i356"
+                                                            "i357"
+                                                            "i355"
+                                                            "i354"
                                                             "i353"
+                                                            "i352"
                                                             "i351"
                                                             "i350"
                                                             "i349"
                                                             "i348"
                                                             "i347"
-                                                            "i346"
                                                             "i345"
                                                             "i344"
-                                                            "i343"
-                                                            "i341"
+                                                            "i342"
                                                             "i340"
                                                             "i338"
                                                             "i336"
                                                             "i334"
                                                             "i332"
                                                             "i330"
+                                                            "i329"
                                                             "i328"
+                                                            "i327"
                                                             "i326"
                                                             "i325"
-                                                            "i324"
                                                             "i323"
                                                             "i322"
-                                                            "i321"
-                                                            "i319"
+                                                            "i320"
                                                             "i318"
                                                             "i316"
                                                             "i314"
@@ -7944,17 +8012,17 @@
                                                             "i260"
                                                             "i258"
                                                             "i256"
-                                                            "i254"
+                                                            "i255"
                                                             "i253"
                                                             "i251"
+                                                            "i250"
                                                             "i249"
                                                             "i248"
                                                             "i247"
-                                                            "i246"
                                                             "i245"
                                                             "i243"
                                                             "i241"
-                                                            "i239"
+                                                            "i238"
                                                             "i236"
                                                             "i234"
                                                             "i232"
@@ -7982,1935 +8050,1930 @@
                                                             "i39"
                                                             "i38")))
                                                         (hygiene guile)))))
-                                        #{rkey 2394}#)))))
-                          #{tmp 2401}#)
-                        (let ((#{tmp 2414}#
+                                        #{rkey 2409}#)))))
+                          #{tmp 2416}#)
+                        (let ((#{tmp 2429}#
                                 ($sc-dispatch
-                                  #{tmp 2399}#
+                                  #{tmp 2414}#
                                   '((any any) . any))))
-                          (if (if #{tmp 2414}#
+                          (if (if #{tmp 2429}#
                                 (@apply
-                                  (lambda (#{a 2418}# #{init 2419}# #{b 2420}#)
-                                    (#{id? 339}# #{a 2418}#))
-                                  #{tmp 2414}#)
+                                  (lambda (#{a 2433}# #{init 2434}# #{b 2435}#)
+                                    (#{id? 343}# #{a 2433}#))
+                                  #{tmp 2429}#)
                                 #f)
                             (@apply
-                              (lambda (#{a 2424}# #{init 2425}# #{b 2426}#)
-                                (let ((#{tmp 2428}#
+                              (lambda (#{a 2439}# #{init 2440}# #{b 2441}#)
+                                (let ((#{tmp 2443}#
                                         (symbol->keyword
-                                          (syntax->datum #{a 2424}#))))
-                                  (let ((#{k 2430}# #{tmp 2428}#))
-                                    (#{key 2282}#
-                                      #{b 2426}#
-                                      #{req 2392}#
-                                      #{opt 2393}#
-                                      (cons (list #{k 2430}#
-                                                  #{a 2424}#
-                                                  #{init 2425}#)
-                                            #{rkey 2394}#)))))
-                              #{tmp 2414}#)
-                            (let ((#{tmp 2431}#
+                                          (syntax->datum #{a 2439}#))))
+                                  (let ((#{k 2445}# #{tmp 2443}#))
+                                    (#{key 2297}#
+                                      #{b 2441}#
+                                      #{req 2407}#
+                                      #{opt 2408}#
+                                      (cons (list #{k 2445}#
+                                                  #{a 2439}#
+                                                  #{init 2440}#)
+                                            #{rkey 2409}#)))))
+                              #{tmp 2429}#)
+                            (let ((#{tmp 2446}#
                                     ($sc-dispatch
-                                      #{tmp 2399}#
+                                      #{tmp 2414}#
                                       '((any any any) . any))))
-                              (if (if #{tmp 2431}#
+                              (if (if #{tmp 2446}#
                                     (@apply
-                                      (lambda (#{a 2436}#
-                                               #{init 2437}#
-                                               #{k 2438}#
-                                               #{b 2439}#)
-                                        (if (#{id? 339}# #{a 2436}#)
-                                          (keyword? (syntax->datum #{k 2438}#))
+                                      (lambda (#{a 2451}#
+                                               #{init 2452}#
+                                               #{k 2453}#
+                                               #{b 2454}#)
+                                        (if (#{id? 343}# #{a 2451}#)
+                                          (keyword? (syntax->datum #{k 2453}#))
                                           #f))
-                                      #{tmp 2431}#)
+                                      #{tmp 2446}#)
                                     #f)
                                 (@apply
-                                  (lambda (#{a 2446}#
-                                           #{init 2447}#
-                                           #{k 2448}#
-                                           #{b 2449}#)
-                                    (#{key 2282}#
-                                      #{b 2449}#
-                                      #{req 2392}#
-                                      #{opt 2393}#
-                                      (cons (list #{k 2448}#
-                                                  #{a 2446}#
-                                                  #{init 2447}#)
-                                            #{rkey 2394}#)))
-                                  #{tmp 2431}#)
-                                (let ((#{tmp 2450}#
-                                        ($sc-dispatch #{tmp 2399}# '(any))))
-                                  (if (if #{tmp 2450}#
+                                  (lambda (#{a 2461}#
+                                           #{init 2462}#
+                                           #{k 2463}#
+                                           #{b 2464}#)
+                                    (#{key 2297}#
+                                      #{b 2464}#
+                                      #{req 2407}#
+                                      #{opt 2408}#
+                                      (cons (list #{k 2463}#
+                                                  #{a 2461}#
+                                                  #{init 2462}#)
+                                            #{rkey 2409}#)))
+                                  #{tmp 2446}#)
+                                (let ((#{tmp 2465}#
+                                        ($sc-dispatch #{tmp 2414}# '(any))))
+                                  (if (if #{tmp 2465}#
                                         (@apply
-                                          (lambda (#{aok 2452}#)
-                                            (eq? (syntax->datum #{aok 2452}#)
+                                          (lambda (#{aok 2467}#)
+                                            (eq? (syntax->datum #{aok 2467}#)
                                                  #:allow-other-keys))
-                                          #{tmp 2450}#)
+                                          #{tmp 2465}#)
                                         #f)
                                     (@apply
-                                      (lambda (#{aok 2454}#)
-                                        (#{check 2286}#
-                                          #{req 2392}#
-                                          #{opt 2393}#
+                                      (lambda (#{aok 2469}#)
+                                        (#{check 2301}#
+                                          #{req 2407}#
+                                          #{opt 2408}#
                                           #f
-                                          (cons #t (reverse #{rkey 2394}#))))
-                                      #{tmp 2450}#)
-                                    (let ((#{tmp 2455}#
+                                          (cons #t (reverse #{rkey 2409}#))))
+                                      #{tmp 2465}#)
+                                    (let ((#{tmp 2470}#
                                             ($sc-dispatch
-                                              #{tmp 2399}#
+                                              #{tmp 2414}#
                                               '(any any any))))
-                                      (if (if #{tmp 2455}#
+                                      (if (if #{tmp 2470}#
                                             (@apply
-                                              (lambda (#{aok 2459}#
-                                                       #{a 2460}#
-                                                       #{b 2461}#)
+                                              (lambda (#{aok 2474}#
+                                                       #{a 2475}#
+                                                       #{b 2476}#)
                                                 (if (eq? (syntax->datum
-                                                           #{aok 2459}#)
+                                                           #{aok 2474}#)
                                                          #:allow-other-keys)
                                                   (eq? (syntax->datum
-                                                         #{a 2460}#)
+                                                         #{a 2475}#)
                                                        #:rest)
                                                   #f))
-                                              #{tmp 2455}#)
+                                              #{tmp 2470}#)
                                             #f)
                                         (@apply
-                                          (lambda (#{aok 2467}#
-                                                   #{a 2468}#
-                                                   #{b 2469}#)
-                                            (#{rest 2284}#
-                                              #{b 2469}#
-                                              #{req 2392}#
-                                              #{opt 2393}#
+                                          (lambda (#{aok 2482}#
+                                                   #{a 2483}#
+                                                   #{b 2484}#)
+                                            (#{rest 2299}#
+                                              #{b 2484}#
+                                              #{req 2407}#
+                                              #{opt 2408}#
                                               (cons #t
-                                                    (reverse #{rkey 2394}#))))
-                                          #{tmp 2455}#)
-                                        (let ((#{tmp 2470}#
+                                                    (reverse #{rkey 2409}#))))
+                                          #{tmp 2470}#)
+                                        (let ((#{tmp 2485}#
                                                 ($sc-dispatch
-                                                  #{tmp 2399}#
+                                                  #{tmp 2414}#
                                                   '(any . any))))
-                                          (if (if #{tmp 2470}#
+                                          (if (if #{tmp 2485}#
                                                 (@apply
-                                                  (lambda (#{aok 2473}#
-                                                           #{r 2474}#)
+                                                  (lambda (#{aok 2488}#
+                                                           #{r 2489}#)
                                                     (if (eq? (syntax->datum
-                                                               #{aok 2473}#)
+                                                               #{aok 2488}#)
                                                              
#:allow-other-keys)
-                                                      (#{id? 339}# #{r 2474}#)
+                                                      (#{id? 343}# #{r 2489}#)
                                                       #f))
-                                                  #{tmp 2470}#)
+                                                  #{tmp 2485}#)
                                                 #f)
                                             (@apply
-                                              (lambda (#{aok 2479}# #{r 2480}#)
-                                                (#{rest 2284}#
-                                                  #{r 2480}#
-                                                  #{req 2392}#
-                                                  #{opt 2393}#
+                                              (lambda (#{aok 2494}# #{r 2495}#)
+                                                (#{rest 2299}#
+                                                  #{r 2495}#
+                                                  #{req 2407}#
+                                                  #{opt 2408}#
                                                   (cons #t
                                                         (reverse
-                                                          #{rkey 2394}#))))
-                                              #{tmp 2470}#)
-                                            (let ((#{tmp 2481}#
+                                                          #{rkey 2409}#))))
+                                              #{tmp 2485}#)
+                                            (let ((#{tmp 2496}#
                                                     ($sc-dispatch
-                                                      #{tmp 2399}#
+                                                      #{tmp 2414}#
                                                       '(any any))))
-                                              (if (if #{tmp 2481}#
+                                              (if (if #{tmp 2496}#
                                                     (@apply
-                                                      (lambda (#{a 2484}#
-                                                               #{b 2485}#)
+                                                      (lambda (#{a 2499}#
+                                                               #{b 2500}#)
                                                         (eq? (syntax->datum
-                                                               #{a 2484}#)
+                                                               #{a 2499}#)
                                                              #:rest))
-                                                      #{tmp 2481}#)
+                                                      #{tmp 2496}#)
                                                     #f)
                                                 (@apply
-                                                  (lambda (#{a 2488}#
-                                                           #{b 2489}#)
-                                                    (#{rest 2284}#
-                                                      #{b 2489}#
-                                                      #{req 2392}#
-                                                      #{opt 2393}#
+                                                  (lambda (#{a 2503}#
+                                                           #{b 2504}#)
+                                                    (#{rest 2299}#
+                                                      #{b 2504}#
+                                                      #{req 2407}#
+                                                      #{opt 2408}#
                                                       (cons #f
                                                             (reverse
-                                                              #{rkey 2394}#))))
-                                                  #{tmp 2481}#)
-                                                (let ((#{tmp 2490}#
-                                                        (list #{tmp 2399}#)))
-                                                  (if (if #{tmp 2490}#
+                                                              #{rkey 2409}#))))
+                                                  #{tmp 2496}#)
+                                                (let ((#{tmp 2505}#
+                                                        (list #{tmp 2414}#)))
+                                                  (if (if #{tmp 2505}#
                                                         (@apply
-                                                          (lambda (#{r 2492}#)
-                                                            (#{id? 339}#
-                                                              #{r 2492}#))
-                                                          #{tmp 2490}#)
+                                                          (lambda (#{r 2507}#)
+                                                            (#{id? 343}#
+                                                              #{r 2507}#))
+                                                          #{tmp 2505}#)
                                                         #f)
                                                     (@apply
-                                                      (lambda (#{r 2494}#)
-                                                        (#{rest 2284}#
-                                                          #{r 2494}#
-                                                          #{req 2392}#
-                                                          #{opt 2393}#
+                                                      (lambda (#{r 2509}#)
+                                                        (#{rest 2299}#
+                                                          #{r 2509}#
+                                                          #{req 2407}#
+                                                          #{opt 2408}#
                                                           (cons #f
                                                                 (reverse
-                                                                  #{rkey 
2394}#))))
-                                                      #{tmp 2490}#)
-                                                    (let ((#{else 2496}#
-                                                            #{tmp 2399}#))
+                                                                  #{rkey 
2409}#))))
+                                                      #{tmp 2505}#)
+                                                    (let ((#{else 2511}#
+                                                            #{tmp 2414}#))
                                                       (syntax-violation
                                                         'lambda*
                                                         "invalid keyword 
argument list"
-                                                        #{orig-args 2275}#
-                                                        #{args 
2391}#)))))))))))))))))))))))
-          (#{rest 2284}#
-            (lambda (#{args 2497}#
-                     #{req 2498}#
-                     #{opt 2499}#
-                     #{kw 2500}#)
-              (let ((#{tmp 2505}# #{args 2497}#))
-                (let ((#{tmp 2506}# (list #{tmp 2505}#)))
-                  (if (if #{tmp 2506}#
+                                                        #{orig-args 2290}#
+                                                        #{args 
2406}#)))))))))))))))))))))))
+          (#{rest 2299}#
+            (lambda (#{args 2512}#
+                     #{req 2513}#
+                     #{opt 2514}#
+                     #{kw 2515}#)
+              (let ((#{tmp 2520}# #{args 2512}#))
+                (let ((#{tmp 2521}# (list #{tmp 2520}#)))
+                  (if (if #{tmp 2521}#
                         (@apply
-                          (lambda (#{r 2508}#) (#{id? 339}# #{r 2508}#))
-                          #{tmp 2506}#)
+                          (lambda (#{r 2523}#) (#{id? 343}# #{r 2523}#))
+                          #{tmp 2521}#)
                         #f)
                     (@apply
-                      (lambda (#{r 2510}#)
-                        (#{check 2286}#
-                          #{req 2498}#
-                          #{opt 2499}#
-                          #{r 2510}#
-                          #{kw 2500}#))
-                      #{tmp 2506}#)
-                    (let ((#{else 2512}# #{tmp 2505}#))
+                      (lambda (#{r 2525}#)
+                        (#{check 2301}#
+                          #{req 2513}#
+                          #{opt 2514}#
+                          #{r 2525}#
+                          #{kw 2515}#))
+                      #{tmp 2521}#)
+                    (let ((#{else 2527}# #{tmp 2520}#))
                       (syntax-violation
                         'lambda*
                         "invalid rest argument"
-                        #{orig-args 2275}#
-                        #{args 2497}#)))))))
-          (#{check 2286}#
-            (lambda (#{req 2513}#
-                     #{opt 2514}#
-                     #{rest 2515}#
-                     #{kw 2516}#)
-              (if (#{distinct-bound-ids? 401}#
+                        #{orig-args 2290}#
+                        #{args 2512}#)))))))
+          (#{check 2301}#
+            (lambda (#{req 2528}#
+                     #{opt 2529}#
+                     #{rest 2530}#
+                     #{kw 2531}#)
+              (if (#{distinct-bound-ids? 405}#
                     (append
-                      #{req 2513}#
-                      (map car #{opt 2514}#)
-                      (if #{rest 2515}# (list #{rest 2515}#) '())
-                      (if (pair? #{kw 2516}#)
-                        (map cadr (cdr #{kw 2516}#))
+                      #{req 2528}#
+                      (map car #{opt 2529}#)
+                      (if #{rest 2530}# (list #{rest 2530}#) '())
+                      (if (pair? #{kw 2531}#)
+                        (map cadr (cdr #{kw 2531}#))
                         '())))
                 (values
-                  #{req 2513}#
-                  #{opt 2514}#
-                  #{rest 2515}#
-                  #{kw 2516}#)
+                  #{req 2528}#
+                  #{opt 2529}#
+                  #{rest 2530}#
+                  #{kw 2531}#)
                 (syntax-violation
                   'lambda*
                   "duplicate identifier in argument list"
-                  #{orig-args 2275}#)))))
-         (begin (#{req 2278}# #{orig-args 2275}# '())))))
-   (#{chi-lambda-case 443}#
-     (lambda (#{e 2524}#
-              #{r 2525}#
-              #{w 2526}#
-              #{s 2527}#
-              #{mod 2528}#
-              #{get-formals 2529}#
-              #{clauses 2530}#)
+                  #{orig-args 2290}#)))))
+         (begin (#{req 2293}# #{orig-args 2290}# '())))))
+   (#{chi-lambda-case 447}#
+     (lambda (#{e 2539}#
+              #{r 2540}#
+              #{w 2541}#
+              #{s 2542}#
+              #{mod 2543}#
+              #{get-formals 2544}#
+              #{clauses 2545}#)
        (letrec*
-         ((#{expand-req 2539}#
-            (lambda (#{req 2546}#
-                     #{opt 2547}#
-                     #{rest 2548}#
-                     #{kw 2549}#
-                     #{body 2550}#)
+         ((#{expand-req 2554}#
+            (lambda (#{req 2561}#
+                     #{opt 2562}#
+                     #{rest 2563}#
+                     #{kw 2564}#
+                     #{body 2565}#)
               (begin
-                (let ((#{vars 2558}#
-                        (map #{gen-var 447}# #{req 2546}#))
-                      (#{labels 2559}#
-                        (#{gen-labels 354}# #{req 2546}#)))
+                (let ((#{vars 2573}#
+                        (map #{gen-var 451}# #{req 2561}#))
+                      (#{labels 2574}#
+                        (#{gen-labels 358}# #{req 2561}#)))
                   (begin
-                    (let ((#{r* 2562}#
-                            (#{extend-var-env 329}#
-                              #{labels 2559}#
-                              #{vars 2558}#
-                              #{r 2525}#))
-                          (#{w* 2563}#
-                            (#{make-binding-wrap 383}#
-                              #{req 2546}#
-                              #{labels 2559}#
-                              #{w 2526}#)))
-                      (#{expand-opt 2541}#
-                        (map syntax->datum #{req 2546}#)
-                        #{opt 2547}#
-                        #{rest 2548}#
-                        #{kw 2549}#
-                        #{body 2550}#
-                        (reverse #{vars 2558}#)
-                        #{r* 2562}#
-                        #{w* 2563}#
+                    (let ((#{r* 2577}#
+                            (#{extend-var-env 333}#
+                              #{labels 2574}#
+                              #{vars 2573}#
+                              #{r 2540}#))
+                          (#{w* 2578}#
+                            (#{make-binding-wrap 387}#
+                              #{req 2561}#
+                              #{labels 2574}#
+                              #{w 2541}#)))
+                      (#{expand-opt 2556}#
+                        (map syntax->datum #{req 2561}#)
+                        #{opt 2562}#
+                        #{rest 2563}#
+                        #{kw 2564}#
+                        #{body 2565}#
+                        (reverse #{vars 2573}#)
+                        #{r* 2577}#
+                        #{w* 2578}#
                         '()
                         '())))))))
-          (#{expand-opt 2541}#
-            (lambda (#{req 2564}#
-                     #{opt 2565}#
-                     #{rest 2566}#
-                     #{kw 2567}#
-                     #{body 2568}#
-                     #{vars 2569}#
-                     #{r* 2570}#
-                     #{w* 2571}#
-                     #{out 2572}#
-                     #{inits 2573}#)
-              (if (pair? #{opt 2565}#)
-                (let ((#{tmp 2586}# (car #{opt 2565}#)))
-                  (let ((#{tmp 2587}#
-                          ($sc-dispatch #{tmp 2586}# '(any any))))
-                    (if #{tmp 2587}#
+          (#{expand-opt 2556}#
+            (lambda (#{req 2579}#
+                     #{opt 2580}#
+                     #{rest 2581}#
+                     #{kw 2582}#
+                     #{body 2583}#
+                     #{vars 2584}#
+                     #{r* 2585}#
+                     #{w* 2586}#
+                     #{out 2587}#
+                     #{inits 2588}#)
+              (if (pair? #{opt 2580}#)
+                (let ((#{tmp 2601}# (car #{opt 2580}#)))
+                  (let ((#{tmp 2602}#
+                          ($sc-dispatch #{tmp 2601}# '(any any))))
+                    (if #{tmp 2602}#
                       (@apply
-                        (lambda (#{id 2590}# #{i 2591}#)
+                        (lambda (#{id 2605}# #{i 2606}#)
                           (begin
-                            (let ((#{v 2594}# (#{gen-var 447}# #{id 2590}#)))
+                            (let ((#{v 2609}# (#{gen-var 451}# #{id 2605}#)))
                               (begin
-                                (let ((#{l 2596}#
-                                        (#{gen-labels 354}#
-                                          (list #{v 2594}#))))
+                                (let ((#{l 2611}#
+                                        (#{gen-labels 358}#
+                                          (list #{v 2609}#))))
                                   (begin
-                                    (let ((#{r** 2598}#
-                                            (#{extend-var-env 329}#
-                                              #{l 2596}#
-                                              (list #{v 2594}#)
-                                              #{r* 2570}#)))
+                                    (let ((#{r** 2613}#
+                                            (#{extend-var-env 333}#
+                                              #{l 2611}#
+                                              (list #{v 2609}#)
+                                              #{r* 2585}#)))
                                       (begin
-                                        (let ((#{w** 2600}#
-                                                (#{make-binding-wrap 383}#
-                                                  (list #{id 2590}#)
-                                                  #{l 2596}#
-                                                  #{w* 2571}#)))
-                                          (#{expand-opt 2541}#
-                                            #{req 2564}#
-                                            (cdr #{opt 2565}#)
-                                            #{rest 2566}#
-                                            #{kw 2567}#
-                                            #{body 2568}#
-                                            (cons #{v 2594}# #{vars 2569}#)
-                                            #{r** 2598}#
-                                            #{w** 2600}#
-                                            (cons (syntax->datum #{id 2590}#)
-                                                  #{out 2572}#)
-                                            (cons (#{chi 419}#
-                                                    #{i 2591}#
-                                                    #{r* 2570}#
-                                                    #{w* 2571}#
-                                                    #{mod 2528}#)
-                                                  #{inits 2573}#)))))))))))
-                        #{tmp 2587}#)
+                                        (let ((#{w** 2615}#
+                                                (#{make-binding-wrap 387}#
+                                                  (list #{id 2605}#)
+                                                  #{l 2611}#
+                                                  #{w* 2586}#)))
+                                          (#{expand-opt 2556}#
+                                            #{req 2579}#
+                                            (cdr #{opt 2580}#)
+                                            #{rest 2581}#
+                                            #{kw 2582}#
+                                            #{body 2583}#
+                                            (cons #{v 2609}# #{vars 2584}#)
+                                            #{r** 2613}#
+                                            #{w** 2615}#
+                                            (cons (syntax->datum #{id 2605}#)
+                                                  #{out 2587}#)
+                                            (cons (#{chi 423}#
+                                                    #{i 2606}#
+                                                    #{r* 2585}#
+                                                    #{w* 2586}#
+                                                    #{mod 2543}#)
+                                                  #{inits 2588}#)))))))))))
+                        #{tmp 2602}#)
                       (syntax-violation
                         #f
                         "source expression failed to match any pattern"
-                        #{tmp 2586}#))))
-                (if #{rest 2566}#
+                        #{tmp 2601}#))))
+                (if #{rest 2581}#
                   (begin
-                    (let ((#{v 2605}# (#{gen-var 447}# #{rest 2566}#)))
+                    (let ((#{v 2620}# (#{gen-var 451}# #{rest 2581}#)))
                       (begin
-                        (let ((#{l 2607}#
-                                (#{gen-labels 354}# (list #{v 2605}#))))
+                        (let ((#{l 2622}#
+                                (#{gen-labels 358}# (list #{v 2620}#))))
                           (begin
-                            (let ((#{r* 2609}#
-                                    (#{extend-var-env 329}#
-                                      #{l 2607}#
-                                      (list #{v 2605}#)
-                                      #{r* 2570}#)))
+                            (let ((#{r* 2624}#
+                                    (#{extend-var-env 333}#
+                                      #{l 2622}#
+                                      (list #{v 2620}#)
+                                      #{r* 2585}#)))
                               (begin
-                                (let ((#{w* 2611}#
-                                        (#{make-binding-wrap 383}#
-                                          (list #{rest 2566}#)
-                                          #{l 2607}#
-                                          #{w* 2571}#)))
-                                  (#{expand-kw 2543}#
-                                    #{req 2564}#
-                                    (if (pair? #{out 2572}#)
-                                      (reverse #{out 2572}#)
+                                (let ((#{w* 2626}#
+                                        (#{make-binding-wrap 387}#
+                                          (list #{rest 2581}#)
+                                          #{l 2622}#
+                                          #{w* 2586}#)))
+                                  (#{expand-kw 2558}#
+                                    #{req 2579}#
+                                    (if (pair? #{out 2587}#)
+                                      (reverse #{out 2587}#)
                                       #f)
-                                    (syntax->datum #{rest 2566}#)
-                                    (if (pair? #{kw 2567}#)
-                                      (cdr #{kw 2567}#)
-                                      #{kw 2567}#)
-                                    #{body 2568}#
-                                    (cons #{v 2605}# #{vars 2569}#)
-                                    #{r* 2609}#
-                                    #{w* 2611}#
-                                    (if (pair? #{kw 2567}#)
-                                      (car #{kw 2567}#)
+                                    (syntax->datum #{rest 2581}#)
+                                    (if (pair? #{kw 2582}#)
+                                      (cdr #{kw 2582}#)
+                                      #{kw 2582}#)
+                                    #{body 2583}#
+                                    (cons #{v 2620}# #{vars 2584}#)
+                                    #{r* 2624}#
+                                    #{w* 2626}#
+                                    (if (pair? #{kw 2582}#)
+                                      (car #{kw 2582}#)
                                       #f)
                                     '()
-                                    #{inits 2573}#)))))))))
-                  (#{expand-kw 2543}#
-                    #{req 2564}#
-                    (if (pair? #{out 2572}#)
-                      (reverse #{out 2572}#)
+                                    #{inits 2588}#)))))))))
+                  (#{expand-kw 2558}#
+                    #{req 2579}#
+                    (if (pair? #{out 2587}#)
+                      (reverse #{out 2587}#)
                       #f)
                     #f
-                    (if (pair? #{kw 2567}#)
-                      (cdr #{kw 2567}#)
-                      #{kw 2567}#)
-                    #{body 2568}#
-                    #{vars 2569}#
-                    #{r* 2570}#
-                    #{w* 2571}#
-                    (if (pair? #{kw 2567}#) (car #{kw 2567}#) #f)
+                    (if (pair? #{kw 2582}#)
+                      (cdr #{kw 2582}#)
+                      #{kw 2582}#)
+                    #{body 2583}#
+                    #{vars 2584}#
+                    #{r* 2585}#
+                    #{w* 2586}#
+                    (if (pair? #{kw 2582}#) (car #{kw 2582}#) #f)
                     '()
-                    #{inits 2573}#)))))
-          (#{expand-kw 2543}#
-            (lambda (#{req 2613}#
-                     #{opt 2614}#
-                     #{rest 2615}#
-                     #{kw 2616}#
-                     #{body 2617}#
-                     #{vars 2618}#
-                     #{r* 2619}#
-                     #{w* 2620}#
-                     #{aok 2621}#
-                     #{out 2622}#
-                     #{inits 2623}#)
-              (if (pair? #{kw 2616}#)
-                (let ((#{tmp 2637}# (car #{kw 2616}#)))
-                  (let ((#{tmp 2638}#
-                          ($sc-dispatch #{tmp 2637}# '(any any any))))
-                    (if #{tmp 2638}#
+                    #{inits 2588}#)))))
+          (#{expand-kw 2558}#
+            (lambda (#{req 2628}#
+                     #{opt 2629}#
+                     #{rest 2630}#
+                     #{kw 2631}#
+                     #{body 2632}#
+                     #{vars 2633}#
+                     #{r* 2634}#
+                     #{w* 2635}#
+                     #{aok 2636}#
+                     #{out 2637}#
+                     #{inits 2638}#)
+              (if (pair? #{kw 2631}#)
+                (let ((#{tmp 2652}# (car #{kw 2631}#)))
+                  (let ((#{tmp 2653}#
+                          ($sc-dispatch #{tmp 2652}# '(any any any))))
+                    (if #{tmp 2653}#
                       (@apply
-                        (lambda (#{k 2642}# #{id 2643}# #{i 2644}#)
+                        (lambda (#{k 2657}# #{id 2658}# #{i 2659}#)
                           (begin
-                            (let ((#{v 2647}# (#{gen-var 447}# #{id 2643}#)))
+                            (let ((#{v 2662}# (#{gen-var 451}# #{id 2658}#)))
                               (begin
-                                (let ((#{l 2649}#
-                                        (#{gen-labels 354}#
-                                          (list #{v 2647}#))))
+                                (let ((#{l 2664}#
+                                        (#{gen-labels 358}#
+                                          (list #{v 2662}#))))
                                   (begin
-                                    (let ((#{r** 2651}#
-                                            (#{extend-var-env 329}#
-                                              #{l 2649}#
-                                              (list #{v 2647}#)
-                                              #{r* 2619}#)))
+                                    (let ((#{r** 2666}#
+                                            (#{extend-var-env 333}#
+                                              #{l 2664}#
+                                              (list #{v 2662}#)
+                                              #{r* 2634}#)))
                                       (begin
-                                        (let ((#{w** 2653}#
-                                                (#{make-binding-wrap 383}#
-                                                  (list #{id 2643}#)
-                                                  #{l 2649}#
-                                                  #{w* 2620}#)))
-                                          (#{expand-kw 2543}#
-                                            #{req 2613}#
-                                            #{opt 2614}#
-                                            #{rest 2615}#
-                                            (cdr #{kw 2616}#)
-                                            #{body 2617}#
-                                            (cons #{v 2647}# #{vars 2618}#)
-                                            #{r** 2651}#
-                                            #{w** 2653}#
-                                            #{aok 2621}#
+                                        (let ((#{w** 2668}#
+                                                (#{make-binding-wrap 387}#
+                                                  (list #{id 2658}#)
+                                                  #{l 2664}#
+                                                  #{w* 2635}#)))
+                                          (#{expand-kw 2558}#
+                                            #{req 2628}#
+                                            #{opt 2629}#
+                                            #{rest 2630}#
+                                            (cdr #{kw 2631}#)
+                                            #{body 2632}#
+                                            (cons #{v 2662}# #{vars 2633}#)
+                                            #{r** 2666}#
+                                            #{w** 2668}#
+                                            #{aok 2636}#
                                             (cons (list (syntax->datum
-                                                          #{k 2642}#)
+                                                          #{k 2657}#)
                                                         (syntax->datum
-                                                          #{id 2643}#)
-                                                        #{v 2647}#)
-                                                  #{out 2622}#)
-                                            (cons (#{chi 419}#
-                                                    #{i 2644}#
-                                                    #{r* 2619}#
-                                                    #{w* 2620}#
-                                                    #{mod 2528}#)
-                                                  #{inits 2623}#)))))))))))
-                        #{tmp 2638}#)
+                                                          #{id 2658}#)
+                                                        #{v 2662}#)
+                                                  #{out 2637}#)
+                                            (cons (#{chi 423}#
+                                                    #{i 2659}#
+                                                    #{r* 2634}#
+                                                    #{w* 2635}#
+                                                    #{mod 2543}#)
+                                                  #{inits 2638}#)))))))))))
+                        #{tmp 2653}#)
                       (syntax-violation
                         #f
                         "source expression failed to match any pattern"
-                        #{tmp 2637}#))))
-                (#{expand-body 2545}#
-                  #{req 2613}#
-                  #{opt 2614}#
-                  #{rest 2615}#
+                        #{tmp 2652}#))))
+                (#{expand-body 2560}#
+                  #{req 2628}#
+                  #{opt 2629}#
+                  #{rest 2630}#
                   (if (begin
-                        (let ((#{t 2657}# #{aok 2621}#))
-                          (if #{t 2657}# #{t 2657}# (pair? #{out 2622}#))))
-                    (cons #{aok 2621}# (reverse #{out 2622}#))
+                        (let ((#{t 2672}# #{aok 2636}#))
+                          (if #{t 2672}# #{t 2672}# (pair? #{out 2637}#))))
+                    (cons #{aok 2636}# (reverse #{out 2637}#))
                     #f)
-                  #{body 2617}#
-                  (reverse #{vars 2618}#)
-                  #{r* 2619}#
-                  #{w* 2620}#
-                  (reverse #{inits 2623}#)
+                  #{body 2632}#
+                  (reverse #{vars 2633}#)
+                  #{r* 2634}#
+                  #{w* 2635}#
+                  (reverse #{inits 2638}#)
                   '()))))
-          (#{expand-body 2545}#
-            (lambda (#{req 2659}#
-                     #{opt 2660}#
-                     #{rest 2661}#
-                     #{kw 2662}#
-                     #{body 2663}#
-                     #{vars 2664}#
-                     #{r* 2665}#
-                     #{w* 2666}#
-                     #{inits 2667}#
-                     #{meta 2668}#)
-              (let ((#{tmp 2679}# #{body 2663}#))
-                (let ((#{tmp 2680}#
-                        ($sc-dispatch #{tmp 2679}# '(any any . each-any))))
-                  (if (if #{tmp 2680}#
+          (#{expand-body 2560}#
+            (lambda (#{req 2674}#
+                     #{opt 2675}#
+                     #{rest 2676}#
+                     #{kw 2677}#
+                     #{body 2678}#
+                     #{vars 2679}#
+                     #{r* 2680}#
+                     #{w* 2681}#
+                     #{inits 2682}#
+                     #{meta 2683}#)
+              (let ((#{tmp 2694}# #{body 2678}#))
+                (let ((#{tmp 2695}#
+                        ($sc-dispatch #{tmp 2694}# '(any any . each-any))))
+                  (if (if #{tmp 2695}#
                         (@apply
-                          (lambda (#{docstring 2684}# #{e1 2685}# #{e2 2686}#)
-                            (string? (syntax->datum #{docstring 2684}#)))
-                          #{tmp 2680}#)
+                          (lambda (#{docstring 2699}# #{e1 2700}# #{e2 2701}#)
+                            (string? (syntax->datum #{docstring 2699}#)))
+                          #{tmp 2695}#)
                         #f)
                     (@apply
-                      (lambda (#{docstring 2690}# #{e1 2691}# #{e2 2692}#)
-                        (#{expand-body 2545}#
-                          #{req 2659}#
-                          #{opt 2660}#
-                          #{rest 2661}#
-                          #{kw 2662}#
-                          (cons #{e1 2691}# #{e2 2692}#)
-                          #{vars 2664}#
-                          #{r* 2665}#
-                          #{w* 2666}#
-                          #{inits 2667}#
+                      (lambda (#{docstring 2705}# #{e1 2706}# #{e2 2707}#)
+                        (#{expand-body 2560}#
+                          #{req 2674}#
+                          #{opt 2675}#
+                          #{rest 2676}#
+                          #{kw 2677}#
+                          (cons #{e1 2706}# #{e2 2707}#)
+                          #{vars 2679}#
+                          #{r* 2680}#
+                          #{w* 2681}#
+                          #{inits 2682}#
                           (append
-                            #{meta 2668}#
+                            #{meta 2683}#
                             (list (cons 'documentation
-                                        (syntax->datum #{docstring 2690}#))))))
-                      #{tmp 2680}#)
-                    (let ((#{tmp 2695}#
+                                        (syntax->datum #{docstring 2705}#))))))
+                      #{tmp 2695}#)
+                    (let ((#{tmp 2710}#
                             ($sc-dispatch
-                              #{tmp 2679}#
+                              #{tmp 2694}#
                               '(#(vector #(each (any . any)))
                                 any
                                 .
                                 each-any))))
-                      (if #{tmp 2695}#
+                      (if #{tmp 2710}#
                         (@apply
-                          (lambda (#{k 2700}#
-                                   #{v 2701}#
-                                   #{e1 2702}#
-                                   #{e2 2703}#)
-                            (#{expand-body 2545}#
-                              #{req 2659}#
-                              #{opt 2660}#
-                              #{rest 2661}#
-                              #{kw 2662}#
-                              (cons #{e1 2702}# #{e2 2703}#)
-                              #{vars 2664}#
-                              #{r* 2665}#
-                              #{w* 2666}#
-                              #{inits 2667}#
+                          (lambda (#{k 2715}#
+                                   #{v 2716}#
+                                   #{e1 2717}#
+                                   #{e2 2718}#)
+                            (#{expand-body 2560}#
+                              #{req 2674}#
+                              #{opt 2675}#
+                              #{rest 2676}#
+                              #{kw 2677}#
+                              (cons #{e1 2717}# #{e2 2718}#)
+                              #{vars 2679}#
+                              #{r* 2680}#
+                              #{w* 2681}#
+                              #{inits 2682}#
                               (append
-                                #{meta 2668}#
+                                #{meta 2683}#
                                 (syntax->datum
-                                  (map cons #{k 2700}# #{v 2701}#)))))
-                          #{tmp 2695}#)
-                        (let ((#{tmp 2707}#
-                                ($sc-dispatch #{tmp 2679}# '(any . each-any))))
-                          (if #{tmp 2707}#
+                                  (map cons #{k 2715}# #{v 2716}#)))))
+                          #{tmp 2710}#)
+                        (let ((#{tmp 2722}#
+                                ($sc-dispatch #{tmp 2694}# '(any . each-any))))
+                          (if #{tmp 2722}#
                             (@apply
-                              (lambda (#{e1 2710}# #{e2 2711}#)
+                              (lambda (#{e1 2725}# #{e2 2726}#)
                                 (values
-                                  #{meta 2668}#
-                                  #{req 2659}#
-                                  #{opt 2660}#
-                                  #{rest 2661}#
-                                  #{kw 2662}#
-                                  #{inits 2667}#
-                                  #{vars 2664}#
-                                  (#{chi-body 427}#
-                                    (cons #{e1 2710}# #{e2 2711}#)
-                                    (#{source-wrap 407}#
-                                      #{e 2524}#
-                                      #{w 2526}#
-                                      #{s 2527}#
-                                      #{mod 2528}#)
-                                    #{r* 2665}#
-                                    #{w* 2666}#
-                                    #{mod 2528}#)))
-                              #{tmp 2707}#)
+                                  #{meta 2683}#
+                                  #{req 2674}#
+                                  #{opt 2675}#
+                                  #{rest 2676}#
+                                  #{kw 2677}#
+                                  #{inits 2682}#
+                                  #{vars 2679}#
+                                  (#{chi-body 431}#
+                                    (cons #{e1 2725}# #{e2 2726}#)
+                                    (#{source-wrap 411}#
+                                      #{e 2539}#
+                                      #{w 2541}#
+                                      #{s 2542}#
+                                      #{mod 2543}#)
+                                    #{r* 2680}#
+                                    #{w* 2681}#
+                                    #{mod 2543}#)))
+                              #{tmp 2722}#)
                             (syntax-violation
                               #f
                               "source expression failed to match any pattern"
-                              #{tmp 2679}#)))))))))))
+                              #{tmp 2694}#)))))))))))
          (begin
-           (let ((#{tmp 2713}# #{clauses 2530}#))
-             (let ((#{tmp 2714}# ($sc-dispatch #{tmp 2713}# '())))
-               (if #{tmp 2714}#
-                 (@apply (lambda () (values '() #f)) #{tmp 2714}#)
-                 (let ((#{tmp 2715}#
+           (let ((#{tmp 2728}# #{clauses 2545}#))
+             (let ((#{tmp 2729}# ($sc-dispatch #{tmp 2728}# '())))
+               (if #{tmp 2729}#
+                 (@apply (lambda () (values '() #f)) #{tmp 2729}#)
+                 (let ((#{tmp 2730}#
                          ($sc-dispatch
-                           #{tmp 2713}#
+                           #{tmp 2728}#
                            '((any any . each-any)
                              .
                              #(each (any any . each-any))))))
-                   (if #{tmp 2715}#
+                   (if #{tmp 2730}#
                      (@apply
-                       (lambda (#{args 2722}#
-                                #{e1 2723}#
-                                #{e2 2724}#
-                                #{args* 2725}#
-                                #{e1* 2726}#
-                                #{e2* 2727}#)
+                       (lambda (#{args 2737}#
+                                #{e1 2738}#
+                                #{e2 2739}#
+                                #{args* 2740}#
+                                #{e1* 2741}#
+                                #{e2* 2742}#)
                          (call-with-values
-                           (lambda () (#{get-formals 2529}# #{args 2722}#))
-                           (lambda (#{req 2728}#
-                                    #{opt 2729}#
-                                    #{rest 2730}#
-                                    #{kw 2731}#)
+                           (lambda () (#{get-formals 2544}# #{args 2737}#))
+                           (lambda (#{req 2743}#
+                                    #{opt 2744}#
+                                    #{rest 2745}#
+                                    #{kw 2746}#)
                              (call-with-values
                                (lambda ()
-                                 (#{expand-req 2539}#
-                                   #{req 2728}#
-                                   #{opt 2729}#
-                                   #{rest 2730}#
-                                   #{kw 2731}#
-                                   (cons #{e1 2723}# #{e2 2724}#)))
-                               (lambda (#{meta 2737}#
-                                        #{req 2738}#
-                                        #{opt 2739}#
-                                        #{rest 2740}#
-                                        #{kw 2741}#
-                                        #{inits 2742}#
-                                        #{vars 2743}#
-                                        #{body 2744}#)
+                                 (#{expand-req 2554}#
+                                   #{req 2743}#
+                                   #{opt 2744}#
+                                   #{rest 2745}#
+                                   #{kw 2746}#
+                                   (cons #{e1 2738}# #{e2 2739}#)))
+                               (lambda (#{meta 2752}#
+                                        #{req 2753}#
+                                        #{opt 2754}#
+                                        #{rest 2755}#
+                                        #{kw 2756}#
+                                        #{inits 2757}#
+                                        #{vars 2758}#
+                                        #{body 2759}#)
                                  (call-with-values
                                    (lambda ()
-                                     (#{chi-lambda-case 443}#
-                                       #{e 2524}#
-                                       #{r 2525}#
-                                       #{w 2526}#
-                                       #{s 2527}#
-                                       #{mod 2528}#
-                                       #{get-formals 2529}#
-                                       (map (lambda (#{tmp 2755}#
-                                                     #{tmp 2754}#
-                                                     #{tmp 2753}#)
-                                              (cons #{tmp 2753}#
-                                                    (cons #{tmp 2754}#
-                                                          #{tmp 2755}#)))
-                                            #{e2* 2727}#
-                                            #{e1* 2726}#
-                                            #{args* 2725}#)))
-                                   (lambda (#{meta* 2757}# #{else* 2758}#)
+                                     (#{chi-lambda-case 447}#
+                                       #{e 2539}#
+                                       #{r 2540}#
+                                       #{w 2541}#
+                                       #{s 2542}#
+                                       #{mod 2543}#
+                                       #{get-formals 2544}#
+                                       (map (lambda (#{tmp 2770}#
+                                                     #{tmp 2769}#
+                                                     #{tmp 2768}#)
+                                              (cons #{tmp 2768}#
+                                                    (cons #{tmp 2769}#
+                                                          #{tmp 2770}#)))
+                                            #{e2* 2742}#
+                                            #{e1* 2741}#
+                                            #{args* 2740}#)))
+                                   (lambda (#{meta* 2772}# #{else* 2773}#)
                                      (values
-                                       (append #{meta 2737}# #{meta* 2757}#)
-                                       (#{build-lambda-case 287}#
-                                         #{s 2527}#
-                                         #{req 2738}#
-                                         #{opt 2739}#
-                                         #{rest 2740}#
-                                         #{kw 2741}#
-                                         #{inits 2742}#
-                                         #{vars 2743}#
-                                         #{body 2744}#
-                                         #{else* 2758}#)))))))))
-                       #{tmp 2715}#)
+                                       (append #{meta 2752}# #{meta* 2772}#)
+                                       (#{build-lambda-case 289}#
+                                         #{s 2542}#
+                                         #{req 2753}#
+                                         #{opt 2754}#
+                                         #{rest 2755}#
+                                         #{kw 2756}#
+                                         #{inits 2757}#
+                                         #{vars 2758}#
+                                         #{body 2759}#
+                                         #{else* 2773}#)))))))))
+                       #{tmp 2730}#)
                      (syntax-violation
                        #f
                        "source expression failed to match any pattern"
-                       #{tmp 2713}#))))))))))
-   (#{strip 445}#
-     (lambda (#{x 2761}# #{w 2762}#)
-       (if (memq 'top (car #{w 2762}#))
-         #{x 2761}#
+                       #{tmp 2728}#))))))))))
+   (#{strip 449}#
+     (lambda (#{x 2776}# #{w 2777}#)
+       (if (memq 'top (car #{w 2777}#))
+         #{x 2776}#
          (letrec*
-           ((#{f 2769}#
-              (lambda (#{x 2770}#)
-                (if (#{syntax-object? 305}# #{x 2770}#)
-                  (#{strip 445}#
-                    (#{syntax-object-expression 307}# #{x 2770}#)
-                    (#{syntax-object-wrap 309}# #{x 2770}#))
-                  (if (pair? #{x 2770}#)
+           ((#{f 2784}#
+              (lambda (#{x 2785}#)
+                (if (#{syntax-object? 309}# #{x 2785}#)
+                  (#{strip 449}#
+                    (#{syntax-object-expression 311}# #{x 2785}#)
+                    (#{syntax-object-wrap 313}# #{x 2785}#))
+                  (if (pair? #{x 2785}#)
                     (begin
-                      (let ((#{a 2777}# (#{f 2769}# (car #{x 2770}#)))
-                            (#{d 2778}# (#{f 2769}# (cdr #{x 2770}#))))
-                        (if (if (eq? #{a 2777}# (car #{x 2770}#))
-                              (eq? #{d 2778}# (cdr #{x 2770}#))
+                      (let ((#{a 2792}# (#{f 2784}# (car #{x 2785}#)))
+                            (#{d 2793}# (#{f 2784}# (cdr #{x 2785}#))))
+                        (if (if (eq? #{a 2792}# (car #{x 2785}#))
+                              (eq? #{d 2793}# (cdr #{x 2785}#))
                               #f)
-                          #{x 2770}#
-                          (cons #{a 2777}# #{d 2778}#))))
-                    (if (vector? #{x 2770}#)
+                          #{x 2785}#
+                          (cons #{a 2792}# #{d 2793}#))))
+                    (if (vector? #{x 2785}#)
                       (begin
-                        (let ((#{old 2784}# (vector->list #{x 2770}#)))
+                        (let ((#{old 2799}# (vector->list #{x 2785}#)))
                           (begin
-                            (let ((#{new 2786}# (map #{f 2769}# #{old 2784}#)))
+                            (let ((#{new 2801}# (map #{f 2784}# #{old 2799}#)))
                               (letrec*
-                                ((#{lp 2790}#
-                                   (lambda (#{l1 2791}# #{l2 2792}#)
-                                     (if (null? #{l1 2791}#)
-                                       #{x 2770}#
-                                       (if (eq? (car #{l1 2791}#)
-                                                (car #{l2 2792}#))
-                                         (#{lp 2790}#
-                                           (cdr #{l1 2791}#)
-                                           (cdr #{l2 2792}#))
-                                         (list->vector #{new 2786}#))))))
+                                ((#{lp 2805}#
+                                   (lambda (#{l1 2806}# #{l2 2807}#)
+                                     (if (null? #{l1 2806}#)
+                                       #{x 2785}#
+                                       (if (eq? (car #{l1 2806}#)
+                                                (car #{l2 2807}#))
+                                         (#{lp 2805}#
+                                           (cdr #{l1 2806}#)
+                                           (cdr #{l2 2807}#))
+                                         (list->vector #{new 2801}#))))))
                                 (begin
-                                  (#{lp 2790}# #{old 2784}# #{new 2786}#)))))))
-                      #{x 2770}#))))))
-           (begin (#{f 2769}# #{x 2761}#))))))
-   (#{gen-var 447}#
-     (lambda (#{id 2794}#)
+                                  (#{lp 2805}# #{old 2799}# #{new 2801}#)))))))
+                      #{x 2785}#))))))
+           (begin (#{f 2784}# #{x 2776}#))))))
+   (#{gen-var 451}#
+     (lambda (#{id 2809}#)
        (begin
-         (let ((#{id 2797}#
-                 (if (#{syntax-object? 305}# #{id 2794}#)
-                   (#{syntax-object-expression 307}# #{id 2794}#)
-                   #{id 2794}#)))
+         (let ((#{id 2812}#
+                 (if (#{syntax-object? 309}# #{id 2809}#)
+                   (#{syntax-object-expression 311}# #{id 2809}#)
+                   #{id 2809}#)))
            (gensym
-             (string-append (symbol->string #{id 2797}#) " "))))))
-   (#{lambda-var-list 449}#
-     (lambda (#{vars 2799}#)
+             (string-append (symbol->string #{id 2812}#) " "))))))
+   (#{lambda-var-list 453}#
+     (lambda (#{vars 2814}#)
        (letrec*
-         ((#{lvl 2805}#
-            (lambda (#{vars 2806}# #{ls 2807}# #{w 2808}#)
-              (if (pair? #{vars 2806}#)
-                (#{lvl 2805}#
-                  (cdr #{vars 2806}#)
-                  (cons (#{wrap 405}# (car #{vars 2806}#) #{w 2808}# #f)
-                        #{ls 2807}#)
-                  #{w 2808}#)
-                (if (#{id? 339}# #{vars 2806}#)
-                  (cons (#{wrap 405}# #{vars 2806}# #{w 2808}# #f)
-                        #{ls 2807}#)
-                  (if (null? #{vars 2806}#)
-                    #{ls 2807}#
-                    (if (#{syntax-object? 305}# #{vars 2806}#)
-                      (#{lvl 2805}#
-                        (#{syntax-object-expression 307}# #{vars 2806}#)
-                        #{ls 2807}#
-                        (#{join-wraps 387}#
-                          #{w 2808}#
-                          (#{syntax-object-wrap 309}# #{vars 2806}#)))
-                      (cons #{vars 2806}# #{ls 2807}#))))))))
-         (begin (#{lvl 2805}# #{vars 2799}# '() '(())))))))
+         ((#{lvl 2820}#
+            (lambda (#{vars 2821}# #{ls 2822}# #{w 2823}#)
+              (if (pair? #{vars 2821}#)
+                (#{lvl 2820}#
+                  (cdr #{vars 2821}#)
+                  (cons (#{wrap 409}# (car #{vars 2821}#) #{w 2823}# #f)
+                        #{ls 2822}#)
+                  #{w 2823}#)
+                (if (#{id? 343}# #{vars 2821}#)
+                  (cons (#{wrap 409}# #{vars 2821}# #{w 2823}# #f)
+                        #{ls 2822}#)
+                  (if (null? #{vars 2821}#)
+                    #{ls 2822}#
+                    (if (#{syntax-object? 309}# #{vars 2821}#)
+                      (#{lvl 2820}#
+                        (#{syntax-object-expression 311}# #{vars 2821}#)
+                        #{ls 2822}#
+                        (#{join-wraps 391}#
+                          #{w 2823}#
+                          (#{syntax-object-wrap 313}# #{vars 2821}#)))
+                      (cons #{vars 2821}# #{ls 2822}#))))))))
+         (begin (#{lvl 2820}# #{vars 2814}# '() '(())))))))
   (begin
-    (lambda (#{src 767}# #{name 768}#)
-      (make-struct/no-tail
-        (vector-ref %expanded-vtables 2)
-        #{src 767}#
-        #{name 768}#))
-    (lambda (#{x 1145}# #{update 1146}#)
-      (vector-set! #{x 1145}# 1 #{update 1146}#))
-    (lambda (#{x 1149}# #{update 1150}#)
-      (vector-set! #{x 1149}# 2 #{update 1150}#))
-    (lambda (#{x 1153}# #{update 1154}#)
-      (vector-set! #{x 1153}# 3 #{update 1154}#))
-    (lambda (#{x 1234}#)
-      (if (vector? #{x 1234}#)
-        (if (= (vector-length #{x 1234}#) 4)
-          (eq? (vector-ref #{x 1234}# 0) 'ribcage)
+    (lambda (#{x 1161}# #{update 1162}#)
+      (vector-set! #{x 1161}# 1 #{update 1162}#))
+    (lambda (#{x 1165}# #{update 1166}#)
+      (vector-set! #{x 1165}# 2 #{update 1166}#))
+    (lambda (#{x 1169}# #{update 1170}#)
+      (vector-set! #{x 1169}# 3 #{update 1170}#))
+    (lambda (#{x 1250}#)
+      (if (vector? #{x 1250}#)
+        (if (= (vector-length #{x 1250}#) 4)
+          (eq? (vector-ref #{x 1250}# 0) 'ribcage)
           #f)
         #f))
     (begin
-      (#{global-extend 335}#
+      (#{global-extend 339}#
         'local-syntax
         'letrec-syntax
         #t)
-      (#{global-extend 335}#
+      (#{global-extend 339}#
         'local-syntax
         'let-syntax
         #f)
-      (#{global-extend 335}#
+      (#{global-extend 339}#
         'core
         'fluid-let-syntax
-        (lambda (#{e 2819}#
-                 #{r 2820}#
-                 #{w 2821}#
-                 #{s 2822}#
-                 #{mod 2823}#)
-          (let ((#{tmp 2829}# #{e 2819}#))
-            (let ((#{tmp 2830}#
+        (lambda (#{e 2834}#
+                 #{r 2835}#
+                 #{w 2836}#
+                 #{s 2837}#
+                 #{mod 2838}#)
+          (let ((#{tmp 2844}# #{e 2834}#))
+            (let ((#{tmp 2845}#
                     ($sc-dispatch
-                      #{tmp 2829}#
+                      #{tmp 2844}#
                       '(_ #(each (any any)) any . each-any))))
-              (if (if #{tmp 2830}#
+              (if (if #{tmp 2845}#
                     (@apply
-                      (lambda (#{var 2835}#
-                               #{val 2836}#
-                               #{e1 2837}#
-                               #{e2 2838}#)
-                        (#{valid-bound-ids? 399}# #{var 2835}#))
-                      #{tmp 2830}#)
+                      (lambda (#{var 2850}#
+                               #{val 2851}#
+                               #{e1 2852}#
+                               #{e2 2853}#)
+                        (#{valid-bound-ids? 403}# #{var 2850}#))
+                      #{tmp 2845}#)
                     #f)
                 (@apply
-                  (lambda (#{var 2844}#
-                           #{val 2845}#
-                           #{e1 2846}#
-                           #{e2 2847}#)
+                  (lambda (#{var 2859}#
+                           #{val 2860}#
+                           #{e1 2861}#
+                           #{e2 2862}#)
                     (begin
-                      (let ((#{names 2849}#
-                              (map (lambda (#{x 2850}#)
-                                     (#{id-var-name 393}#
-                                       #{x 2850}#
-                                       #{w 2821}#))
-                                   #{var 2844}#)))
+                      (let ((#{names 2864}#
+                              (map (lambda (#{x 2865}#)
+                                     (#{id-var-name 397}#
+                                       #{x 2865}#
+                                       #{w 2836}#))
+                                   #{var 2859}#)))
                         (begin
                           (for-each
-                            (lambda (#{id 2853}# #{n 2854}#)
+                            (lambda (#{id 2868}# #{n 2869}#)
                               (begin
-                                (let ((#{atom-key 2859}#
-                                        (car (#{lookup 333}#
-                                               #{n 2854}#
-                                               #{r 2820}#
-                                               #{mod 2823}#))))
-                                  (if (eqv? #{atom-key 2859}#
-                                            'displaced-lexical)
+                                (let ((#{atom-key 2874}#
+                                        (car (#{lookup 337}#
+                                               #{n 2869}#
+                                               #{r 2835}#
+                                               #{mod 2838}#))))
+                                  (if (memv #{atom-key 2874}#
+                                            '(displaced-lexical))
                                     (syntax-violation
                                       'fluid-let-syntax
                                       "identifier out of context"
-                                      #{e 2819}#
-                                      (#{source-wrap 407}#
-                                        #{id 2853}#
-                                        #{w 2821}#
-                                        #{s 2822}#
-                                        #{mod 2823}#))))))
-                            #{var 2844}#
-                            #{names 2849}#)
-                          (#{chi-body 427}#
-                            (cons #{e1 2846}# #{e2 2847}#)
-                            (#{source-wrap 407}#
-                              #{e 2819}#
-                              #{w 2821}#
-                              #{s 2822}#
-                              #{mod 2823}#)
-                            (#{extend-env 327}#
-                              #{names 2849}#
+                                      #{e 2834}#
+                                      (#{source-wrap 411}#
+                                        #{id 2868}#
+                                        #{w 2836}#
+                                        #{s 2837}#
+                                        #{mod 2838}#))))))
+                            #{var 2859}#
+                            #{names 2864}#)
+                          (#{chi-body 431}#
+                            (cons #{e1 2861}# #{e2 2862}#)
+                            (#{source-wrap 411}#
+                              #{e 2834}#
+                              #{w 2836}#
+                              #{s 2837}#
+                              #{mod 2838}#)
+                            (#{extend-env 331}#
+                              #{names 2864}#
                               (begin
-                                (let ((#{trans-r 2865}#
-                                        (#{macros-only-env 331}# #{r 2820}#)))
-                                  (map (lambda (#{x 2866}#)
+                                (let ((#{trans-r 2880}#
+                                        (#{macros-only-env 335}# #{r 2835}#)))
+                                  (map (lambda (#{x 2881}#)
                                          (cons 'macro
-                                               (#{eval-local-transformer 431}#
-                                                 (#{chi 419}#
-                                                   #{x 2866}#
-                                                   #{trans-r 2865}#
-                                                   #{w 2821}#
-                                                   #{mod 2823}#)
-                                                 #{mod 2823}#)))
-                                       #{val 2845}#)))
-                              #{r 2820}#)
-                            #{w 2821}#
-                            #{mod 2823}#)))))
-                  #{tmp 2830}#)
-                (let ((#{_ 2871}# #{tmp 2829}#))
+                                               (#{eval-local-transformer 435}#
+                                                 (#{chi 423}#
+                                                   #{x 2881}#
+                                                   #{trans-r 2880}#
+                                                   #{w 2836}#
+                                                   #{mod 2838}#)
+                                                 #{mod 2838}#)))
+                                       #{val 2860}#)))
+                              #{r 2835}#)
+                            #{w 2836}#
+                            #{mod 2838}#)))))
+                  #{tmp 2845}#)
+                (let ((#{_ 2886}# #{tmp 2844}#))
                   (syntax-violation
                     'fluid-let-syntax
                     "bad syntax"
-                    (#{source-wrap 407}#
-                      #{e 2819}#
-                      #{w 2821}#
-                      #{s 2822}#
-                      #{mod 2823}#))))))))
-      (#{global-extend 335}#
+                    (#{source-wrap 411}#
+                      #{e 2834}#
+                      #{w 2836}#
+                      #{s 2837}#
+                      #{mod 2838}#))))))))
+      (#{global-extend 339}#
         'core
         'quote
-        (lambda (#{e 2872}#
-                 #{r 2873}#
-                 #{w 2874}#
-                 #{s 2875}#
-                 #{mod 2876}#)
-          (let ((#{tmp 2882}# #{e 2872}#))
-            (let ((#{tmp 2883}#
-                    ($sc-dispatch #{tmp 2882}# '(_ any))))
-              (if #{tmp 2883}#
+        (lambda (#{e 2887}#
+                 #{r 2888}#
+                 #{w 2889}#
+                 #{s 2890}#
+                 #{mod 2891}#)
+          (let ((#{tmp 2897}# #{e 2887}#))
+            (let ((#{tmp 2898}#
+                    ($sc-dispatch #{tmp 2897}# '(_ any))))
+              (if #{tmp 2898}#
                 (@apply
-                  (lambda (#{e 2885}#)
-                    (#{build-data 291}#
-                      #{s 2875}#
-                      (#{strip 445}# #{e 2885}# #{w 2874}#)))
-                  #{tmp 2883}#)
-                (let ((#{_ 2887}# #{tmp 2882}#))
+                  (lambda (#{e 2900}#)
+                    (#{build-data 295}#
+                      #{s 2890}#
+                      (#{strip 449}# #{e 2900}# #{w 2889}#)))
+                  #{tmp 2898}#)
+                (let ((#{_ 2902}# #{tmp 2897}#))
                   (syntax-violation
                     'quote
                     "bad syntax"
-                    (#{source-wrap 407}#
-                      #{e 2872}#
-                      #{w 2874}#
-                      #{s 2875}#
-                      #{mod 2876}#))))))))
-      (#{global-extend 335}#
+                    (#{source-wrap 411}#
+                      #{e 2887}#
+                      #{w 2889}#
+                      #{s 2890}#
+                      #{mod 2891}#))))))))
+      (#{global-extend 339}#
         'core
         'syntax
         (letrec*
-          ((#{gen-syntax 2889}#
-             (lambda (#{src 2904}#
-                      #{e 2905}#
-                      #{r 2906}#
-                      #{maps 2907}#
-                      #{ellipsis? 2908}#
-                      #{mod 2909}#)
-               (if (#{id? 339}# #{e 2905}#)
+          ((#{gen-syntax 2904}#
+             (lambda (#{src 2919}#
+                      #{e 2920}#
+                      #{r 2921}#
+                      #{maps 2922}#
+                      #{ellipsis? 2923}#
+                      #{mod 2924}#)
+               (if (#{id? 343}# #{e 2920}#)
                  (begin
-                   (let ((#{label 2917}#
-                           (#{id-var-name 393}# #{e 2905}# '(()))))
+                   (let ((#{label 2932}#
+                           (#{id-var-name 397}# #{e 2920}# '(()))))
                      (begin
-                       (let ((#{b 2920}#
-                               (#{lookup 333}#
-                                 #{label 2917}#
-                                 #{r 2906}#
-                                 #{mod 2909}#)))
-                         (if (eq? (car #{b 2920}#) 'syntax)
+                       (let ((#{b 2935}#
+                               (#{lookup 337}#
+                                 #{label 2932}#
+                                 #{r 2921}#
+                                 #{mod 2924}#)))
+                         (if (eq? (car #{b 2935}#) 'syntax)
                            (call-with-values
                              (lambda ()
                                (begin
-                                 (let ((#{var.lev 2923}# (cdr #{b 2920}#)))
-                                   (#{gen-ref 2891}#
-                                     #{src 2904}#
-                                     (car #{var.lev 2923}#)
-                                     (cdr #{var.lev 2923}#)
-                                     #{maps 2907}#))))
-                             (lambda (#{var 2925}# #{maps 2926}#)
+                                 (let ((#{var.lev 2938}# (cdr #{b 2935}#)))
+                                   (#{gen-ref 2906}#
+                                     #{src 2919}#
+                                     (car #{var.lev 2938}#)
+                                     (cdr #{var.lev 2938}#)
+                                     #{maps 2922}#))))
+                             (lambda (#{var 2940}# #{maps 2941}#)
                                (values
-                                 (list 'ref #{var 2925}#)
-                                 #{maps 2926}#)))
-                           (if (#{ellipsis? 2908}# #{e 2905}#)
+                                 (list 'ref #{var 2940}#)
+                                 #{maps 2941}#)))
+                           (if (#{ellipsis? 2923}# #{e 2920}#)
                              (syntax-violation
                                'syntax
                                "misplaced ellipsis"
-                               #{src 2904}#)
+                               #{src 2919}#)
                              (values
-                               (list 'quote #{e 2905}#)
-                               #{maps 2907}#)))))))
-                 (let ((#{tmp 2931}# #{e 2905}#))
-                   (let ((#{tmp 2932}#
-                           ($sc-dispatch #{tmp 2931}# '(any any))))
-                     (if (if #{tmp 2932}#
+                               (list 'quote #{e 2920}#)
+                               #{maps 2922}#)))))))
+                 (let ((#{tmp 2946}# #{e 2920}#))
+                   (let ((#{tmp 2947}#
+                           ($sc-dispatch #{tmp 2946}# '(any any))))
+                     (if (if #{tmp 2947}#
                            (@apply
-                             (lambda (#{dots 2935}# #{e 2936}#)
-                               (#{ellipsis? 2908}# #{dots 2935}#))
-                             #{tmp 2932}#)
+                             (lambda (#{dots 2950}# #{e 2951}#)
+                               (#{ellipsis? 2923}# #{dots 2950}#))
+                             #{tmp 2947}#)
                            #f)
                        (@apply
-                         (lambda (#{dots 2939}# #{e 2940}#)
-                           (#{gen-syntax 2889}#
-                             #{src 2904}#
-                             #{e 2940}#
-                             #{r 2906}#
-                             #{maps 2907}#
-                             (lambda (#{x 2941}#) #f)
-                             #{mod 2909}#))
-                         #{tmp 2932}#)
-                       (let ((#{tmp 2943}#
-                               ($sc-dispatch #{tmp 2931}# '(any any . any))))
-                         (if (if #{tmp 2943}#
+                         (lambda (#{dots 2954}# #{e 2955}#)
+                           (#{gen-syntax 2904}#
+                             #{src 2919}#
+                             #{e 2955}#
+                             #{r 2921}#
+                             #{maps 2922}#
+                             (lambda (#{x 2956}#) #f)
+                             #{mod 2924}#))
+                         #{tmp 2947}#)
+                       (let ((#{tmp 2958}#
+                               ($sc-dispatch #{tmp 2946}# '(any any . any))))
+                         (if (if #{tmp 2958}#
                                (@apply
-                                 (lambda (#{x 2947}# #{dots 2948}# #{y 2949}#)
-                                   (#{ellipsis? 2908}# #{dots 2948}#))
-                                 #{tmp 2943}#)
+                                 (lambda (#{x 2962}# #{dots 2963}# #{y 2964}#)
+                                   (#{ellipsis? 2923}# #{dots 2963}#))
+                                 #{tmp 2958}#)
                                #f)
                            (@apply
-                             (lambda (#{x 2953}# #{dots 2954}# #{y 2955}#)
+                             (lambda (#{x 2968}# #{dots 2969}# #{y 2970}#)
                                (letrec*
-                                 ((#{f 2959}#
-                                    (lambda (#{y 2960}# #{k 2961}#)
-                                      (let ((#{tmp 2968}# #{y 2960}#))
-                                        (let ((#{tmp 2969}#
+                                 ((#{f 2974}#
+                                    (lambda (#{y 2975}# #{k 2976}#)
+                                      (let ((#{tmp 2983}# #{y 2975}#))
+                                        (let ((#{tmp 2984}#
                                                 ($sc-dispatch
-                                                  #{tmp 2968}#
+                                                  #{tmp 2983}#
                                                   '(any . any))))
-                                          (if (if #{tmp 2969}#
+                                          (if (if #{tmp 2984}#
                                                 (@apply
-                                                  (lambda (#{dots 2972}#
-                                                           #{y 2973}#)
-                                                    (#{ellipsis? 2908}#
-                                                      #{dots 2972}#))
-                                                  #{tmp 2969}#)
+                                                  (lambda (#{dots 2987}#
+                                                           #{y 2988}#)
+                                                    (#{ellipsis? 2923}#
+                                                      #{dots 2987}#))
+                                                  #{tmp 2984}#)
                                                 #f)
                                             (@apply
-                                              (lambda (#{dots 2976}#
-                                                       #{y 2977}#)
-                                                (#{f 2959}#
-                                                  #{y 2977}#
-                                                  (lambda (#{maps 2978}#)
+                                              (lambda (#{dots 2991}#
+                                                       #{y 2992}#)
+                                                (#{f 2974}#
+                                                  #{y 2992}#
+                                                  (lambda (#{maps 2993}#)
                                                     (call-with-values
                                                       (lambda ()
-                                                        (#{k 2961}#
+                                                        (#{k 2976}#
                                                           (cons '()
-                                                                #{maps 
2978}#)))
-                                                      (lambda (#{x 2980}#
-                                                               #{maps 2981}#)
-                                                        (if (null? (car #{maps 
2981}#))
+                                                                #{maps 
2993}#)))
+                                                      (lambda (#{x 2995}#
+                                                               #{maps 2996}#)
+                                                        (if (null? (car #{maps 
2996}#))
                                                           (syntax-violation
                                                             'syntax
                                                             "extra ellipsis"
-                                                            #{src 2904}#)
+                                                            #{src 2919}#)
                                                           (values
-                                                            (#{gen-mappend 
2893}#
-                                                              #{x 2980}#
-                                                              (car #{maps 
2981}#))
-                                                            (cdr #{maps 
2981}#))))))))
-                                              #{tmp 2969}#)
-                                            (let ((#{_ 2985}# #{tmp 2968}#))
+                                                            (#{gen-mappend 
2908}#
+                                                              #{x 2995}#
+                                                              (car #{maps 
2996}#))
+                                                            (cdr #{maps 
2996}#))))))))
+                                              #{tmp 2984}#)
+                                            (let ((#{_ 3000}# #{tmp 2983}#))
                                               (call-with-values
                                                 (lambda ()
-                                                  (#{gen-syntax 2889}#
-                                                    #{src 2904}#
-                                                    #{y 2960}#
-                                                    #{r 2906}#
-                                                    #{maps 2907}#
-                                                    #{ellipsis? 2908}#
-                                                    #{mod 2909}#))
-                                                (lambda (#{y 2986}#
-                                                         #{maps 2987}#)
+                                                  (#{gen-syntax 2904}#
+                                                    #{src 2919}#
+                                                    #{y 2975}#
+                                                    #{r 2921}#
+                                                    #{maps 2922}#
+                                                    #{ellipsis? 2923}#
+                                                    #{mod 2924}#))
+                                                (lambda (#{y 3001}#
+                                                         #{maps 3002}#)
                                                   (call-with-values
                                                     (lambda ()
-                                                      (#{k 2961}#
-                                                        #{maps 2987}#))
-                                                    (lambda (#{x 2990}#
-                                                             #{maps 2991}#)
+                                                      (#{k 2976}#
+                                                        #{maps 3002}#))
+                                                    (lambda (#{x 3005}#
+                                                             #{maps 3006}#)
                                                       (values
-                                                        (#{gen-append 2899}#
-                                                          #{x 2990}#
-                                                          #{y 2986}#)
-                                                        #{maps 
2991}#))))))))))))
+                                                        (#{gen-append 2914}#
+                                                          #{x 3005}#
+                                                          #{y 3001}#)
+                                                        #{maps 
3006}#))))))))))))
                                  (begin
-                                   (#{f 2959}#
-                                     #{y 2955}#
-                                     (lambda (#{maps 2962}#)
+                                   (#{f 2974}#
+                                     #{y 2970}#
+                                     (lambda (#{maps 2977}#)
                                        (call-with-values
                                          (lambda ()
-                                           (#{gen-syntax 2889}#
-                                             #{src 2904}#
-                                             #{x 2953}#
-                                             #{r 2906}#
-                                             (cons '() #{maps 2962}#)
-                                             #{ellipsis? 2908}#
-                                             #{mod 2909}#))
-                                         (lambda (#{x 2964}# #{maps 2965}#)
-                                           (if (null? (car #{maps 2965}#))
+                                           (#{gen-syntax 2904}#
+                                             #{src 2919}#
+                                             #{x 2968}#
+                                             #{r 2921}#
+                                             (cons '() #{maps 2977}#)
+                                             #{ellipsis? 2923}#
+                                             #{mod 2924}#))
+                                         (lambda (#{x 2979}# #{maps 2980}#)
+                                           (if (null? (car #{maps 2980}#))
                                              (syntax-violation
                                                'syntax
                                                "extra ellipsis"
-                                               #{src 2904}#)
+                                               #{src 2919}#)
                                              (values
-                                               (#{gen-map 2895}#
-                                                 #{x 2964}#
-                                                 (car #{maps 2965}#))
-                                               (cdr #{maps 2965}#))))))))))
-                             #{tmp 2943}#)
-                           (let ((#{tmp 2994}#
-                                   ($sc-dispatch #{tmp 2931}# '(any . any))))
-                             (if #{tmp 2994}#
+                                               (#{gen-map 2910}#
+                                                 #{x 2979}#
+                                                 (car #{maps 2980}#))
+                                               (cdr #{maps 2980}#))))))))))
+                             #{tmp 2958}#)
+                           (let ((#{tmp 3009}#
+                                   ($sc-dispatch #{tmp 2946}# '(any . any))))
+                             (if #{tmp 3009}#
                                (@apply
-                                 (lambda (#{x 2997}# #{y 2998}#)
+                                 (lambda (#{x 3012}# #{y 3013}#)
                                    (call-with-values
                                      (lambda ()
-                                       (#{gen-syntax 2889}#
-                                         #{src 2904}#
-                                         #{x 2997}#
-                                         #{r 2906}#
-                                         #{maps 2907}#
-                                         #{ellipsis? 2908}#
-                                         #{mod 2909}#))
-                                     (lambda (#{x 2999}# #{maps 3000}#)
+                                       (#{gen-syntax 2904}#
+                                         #{src 2919}#
+                                         #{x 3012}#
+                                         #{r 2921}#
+                                         #{maps 2922}#
+                                         #{ellipsis? 2923}#
+                                         #{mod 2924}#))
+                                     (lambda (#{x 3014}# #{maps 3015}#)
                                        (call-with-values
                                          (lambda ()
-                                           (#{gen-syntax 2889}#
-                                             #{src 2904}#
-                                             #{y 2998}#
-                                             #{r 2906}#
-                                             #{maps 3000}#
-                                             #{ellipsis? 2908}#
-                                             #{mod 2909}#))
-                                         (lambda (#{y 3003}# #{maps 3004}#)
+                                           (#{gen-syntax 2904}#
+                                             #{src 2919}#
+                                             #{y 3013}#
+                                             #{r 2921}#
+                                             #{maps 3015}#
+                                             #{ellipsis? 2923}#
+                                             #{mod 2924}#))
+                                         (lambda (#{y 3018}# #{maps 3019}#)
                                            (values
-                                             (#{gen-cons 2897}#
-                                               #{x 2999}#
-                                               #{y 3003}#)
-                                             #{maps 3004}#))))))
-                                 #{tmp 2994}#)
-                               (let ((#{tmp 3007}#
+                                             (#{gen-cons 2912}#
+                                               #{x 3014}#
+                                               #{y 3018}#)
+                                             #{maps 3019}#))))))
+                                 #{tmp 3009}#)
+                               (let ((#{tmp 3022}#
                                        ($sc-dispatch
-                                         #{tmp 2931}#
+                                         #{tmp 2946}#
                                          '#(vector (any . each-any)))))
-                                 (if #{tmp 3007}#
+                                 (if #{tmp 3022}#
                                    (@apply
-                                     (lambda (#{e1 3010}# #{e2 3011}#)
+                                     (lambda (#{e1 3025}# #{e2 3026}#)
                                        (call-with-values
                                          (lambda ()
-                                           (#{gen-syntax 2889}#
-                                             #{src 2904}#
-                                             (cons #{e1 3010}# #{e2 3011}#)
-                                             #{r 2906}#
-                                             #{maps 2907}#
-                                             #{ellipsis? 2908}#
-                                             #{mod 2909}#))
-                                         (lambda (#{e 3013}# #{maps 3014}#)
+                                           (#{gen-syntax 2904}#
+                                             #{src 2919}#
+                                             (cons #{e1 3025}# #{e2 3026}#)
+                                             #{r 2921}#
+                                             #{maps 2922}#
+                                             #{ellipsis? 2923}#
+                                             #{mod 2924}#))
+                                         (lambda (#{e 3028}# #{maps 3029}#)
                                            (values
-                                             (#{gen-vector 2901}# #{e 3013}#)
-                                             #{maps 3014}#))))
-                                     #{tmp 3007}#)
-                                   (let ((#{_ 3018}# #{tmp 2931}#))
+                                             (#{gen-vector 2916}# #{e 3028}#)
+                                             #{maps 3029}#))))
+                                     #{tmp 3022}#)
+                                   (let ((#{_ 3033}# #{tmp 2946}#))
                                      (values
-                                       (list 'quote #{e 2905}#)
-                                       #{maps 2907}#))))))))))))))
-           (#{gen-ref 2891}#
-             (lambda (#{src 3020}#
-                      #{var 3021}#
-                      #{level 3022}#
-                      #{maps 3023}#)
-               (if (= #{level 3022}# 0)
-                 (values #{var 3021}# #{maps 3023}#)
-                 (if (null? #{maps 3023}#)
+                                       (list 'quote #{e 2920}#)
+                                       #{maps 2922}#))))))))))))))
+           (#{gen-ref 2906}#
+             (lambda (#{src 3035}#
+                      #{var 3036}#
+                      #{level 3037}#
+                      #{maps 3038}#)
+               (if (= #{level 3037}# 0)
+                 (values #{var 3036}# #{maps 3038}#)
+                 (if (null? #{maps 3038}#)
                    (syntax-violation
                      'syntax
                      "missing ellipsis"
-                     #{src 3020}#)
+                     #{src 3035}#)
                    (call-with-values
                      (lambda ()
-                       (#{gen-ref 2891}#
-                         #{src 3020}#
-                         #{var 3021}#
-                         (#{1-}# #{level 3022}#)
-                         (cdr #{maps 3023}#)))
-                     (lambda (#{outer-var 3030}# #{outer-maps 3031}#)
+                       (#{gen-ref 2906}#
+                         #{src 3035}#
+                         #{var 3036}#
+                         (#{1-}# #{level 3037}#)
+                         (cdr #{maps 3038}#)))
+                     (lambda (#{outer-var 3045}# #{outer-maps 3046}#)
                        (begin
-                         (let ((#{b 3035}#
-                                 (assq #{outer-var 3030}#
-                                       (car #{maps 3023}#))))
-                           (if #{b 3035}#
-                             (values (cdr #{b 3035}#) #{maps 3023}#)
+                         (let ((#{b 3050}#
+                                 (assq #{outer-var 3045}#
+                                       (car #{maps 3038}#))))
+                           (if #{b 3050}#
+                             (values (cdr #{b 3050}#) #{maps 3038}#)
                              (begin
-                               (let ((#{inner-var 3037}#
-                                       (#{gen-var 447}# 'tmp)))
+                               (let ((#{inner-var 3052}#
+                                       (#{gen-var 451}# 'tmp)))
                                  (values
-                                   #{inner-var 3037}#
-                                   (cons (cons (cons #{outer-var 3030}#
-                                                     #{inner-var 3037}#)
-                                               (car #{maps 3023}#))
-                                         #{outer-maps 3031}#)))))))))))))
-           (#{gen-mappend 2893}#
-             (lambda (#{e 3038}# #{map-env 3039}#)
+                                   #{inner-var 3052}#
+                                   (cons (cons (cons #{outer-var 3045}#
+                                                     #{inner-var 3052}#)
+                                               (car #{maps 3038}#))
+                                         #{outer-maps 3046}#)))))))))))))
+           (#{gen-mappend 2908}#
+             (lambda (#{e 3053}# #{map-env 3054}#)
                (list 'apply
                      '(primitive append)
-                     (#{gen-map 2895}# #{e 3038}# #{map-env 3039}#))))
-           (#{gen-map 2895}#
-             (lambda (#{e 3043}# #{map-env 3044}#)
+                     (#{gen-map 2910}# #{e 3053}# #{map-env 3054}#))))
+           (#{gen-map 2910}#
+             (lambda (#{e 3058}# #{map-env 3059}#)
                (begin
-                 (let ((#{formals 3049}# (map cdr #{map-env 3044}#))
-                       (#{actuals 3050}#
-                         (map (lambda (#{x 3051}#)
-                                (list 'ref (car #{x 3051}#)))
-                              #{map-env 3044}#)))
-                   (if (eq? (car #{e 3043}#) 'ref)
-                     (car #{actuals 3050}#)
+                 (let ((#{formals 3064}# (map cdr #{map-env 3059}#))
+                       (#{actuals 3065}#
+                         (map (lambda (#{x 3066}#)
+                                (list 'ref (car #{x 3066}#)))
+                              #{map-env 3059}#)))
+                   (if (eq? (car #{e 3058}#) 'ref)
+                     (car #{actuals 3065}#)
                      (if (and-map
-                           (lambda (#{x 3058}#)
-                             (if (eq? (car #{x 3058}#) 'ref)
-                               (memq (car (cdr #{x 3058}#)) #{formals 3049}#)
+                           (lambda (#{x 3073}#)
+                             (if (eq? (car #{x 3073}#) 'ref)
+                               (memq (car (cdr #{x 3073}#)) #{formals 3064}#)
                                #f))
-                           (cdr #{e 3043}#))
+                           (cdr #{e 3058}#))
                        (cons 'map
-                             (cons (list 'primitive (car #{e 3043}#))
+                             (cons (list 'primitive (car #{e 3058}#))
                                    (map (begin
-                                          (let ((#{r 3064}#
+                                          (let ((#{r 3079}#
                                                   (map cons
-                                                       #{formals 3049}#
-                                                       #{actuals 3050}#)))
-                                            (lambda (#{x 3065}#)
-                                              (cdr (assq (car (cdr #{x 3065}#))
-                                                         #{r 3064}#)))))
-                                        (cdr #{e 3043}#))))
+                                                       #{formals 3064}#
+                                                       #{actuals 3065}#)))
+                                            (lambda (#{x 3080}#)
+                                              (cdr (assq (car (cdr #{x 3080}#))
+                                                         #{r 3079}#)))))
+                                        (cdr #{e 3058}#))))
                        (cons 'map
-                             (cons (list 'lambda #{formals 3049}# #{e 3043}#)
-                                   #{actuals 3050}#))))))))
-           (#{gen-cons 2897}#
-             (lambda (#{x 3069}# #{y 3070}#)
+                             (cons (list 'lambda #{formals 3064}# #{e 3058}#)
+                                   #{actuals 3065}#))))))))
+           (#{gen-cons 2912}#
+             (lambda (#{x 3084}# #{y 3085}#)
                (begin
-                 (let ((#{atom-key 3075}# (car #{y 3070}#)))
-                   (if (eqv? #{atom-key 3075}# 'quote)
-                     (if (eq? (car #{x 3069}#) 'quote)
+                 (let ((#{atom-key 3090}# (car #{y 3085}#)))
+                   (if (memv #{atom-key 3090}# '(quote))
+                     (if (eq? (car #{x 3084}#) 'quote)
                        (list 'quote
-                             (cons (car (cdr #{x 3069}#))
-                                   (car (cdr #{y 3070}#))))
-                       (if (eq? (car (cdr #{y 3070}#)) '())
-                         (list 'list #{x 3069}#)
-                         (list 'cons #{x 3069}# #{y 3070}#)))
-                     (if (eqv? #{atom-key 3075}# 'list)
-                       (cons 'list (cons #{x 3069}# (cdr #{y 3070}#)))
-                       (list 'cons #{x 3069}# #{y 3070}#)))))))
-           (#{gen-append 2899}#
-             (lambda (#{x 3084}# #{y 3085}#)
-               (if (equal? #{y 3085}# ''())
-                 #{x 3084}#
-                 (list 'append #{x 3084}# #{y 3085}#))))
-           (#{gen-vector 2901}#
-             (lambda (#{x 3089}#)
-               (if (eq? (car #{x 3089}#) 'list)
-                 (cons 'vector (cdr #{x 3089}#))
-                 (if (eq? (car #{x 3089}#) 'quote)
+                             (cons (car (cdr #{x 3084}#))
+                                   (car (cdr #{y 3085}#))))
+                       (if (eq? (car (cdr #{y 3085}#)) '())
+                         (list 'list #{x 3084}#)
+                         (list 'cons #{x 3084}# #{y 3085}#)))
+                     (if (memv #{atom-key 3090}# '(list))
+                       (cons 'list (cons #{x 3084}# (cdr #{y 3085}#)))
+                       (list 'cons #{x 3084}# #{y 3085}#)))))))
+           (#{gen-append 2914}#
+             (lambda (#{x 3099}# #{y 3100}#)
+               (if (equal? #{y 3100}# ''())
+                 #{x 3099}#
+                 (list 'append #{x 3099}# #{y 3100}#))))
+           (#{gen-vector 2916}#
+             (lambda (#{x 3104}#)
+               (if (eq? (car #{x 3104}#) 'list)
+                 (cons 'vector (cdr #{x 3104}#))
+                 (if (eq? (car #{x 3104}#) 'quote)
                    (list 'quote
-                         (list->vector (car (cdr #{x 3089}#))))
-                   (list 'list->vector #{x 3089}#)))))
-           (#{regen 2903}#
-             (lambda (#{x 3099}#)
+                         (list->vector (car (cdr #{x 3104}#))))
+                   (list 'list->vector #{x 3104}#)))))
+           (#{regen 2918}#
+             (lambda (#{x 3114}#)
                (begin
-                 (let ((#{atom-key 3103}# (car #{x 3099}#)))
-                   (if (eqv? #{atom-key 3103}# 'ref)
-                     (#{build-lexical-reference 271}#
+                 (let ((#{atom-key 3118}# (car #{x 3114}#)))
+                   (if (memv #{atom-key 3118}# '(ref))
+                     (#{build-lexical-reference 273}#
                        'value
                        #f
-                       (car (cdr #{x 3099}#))
-                       (car (cdr #{x 3099}#)))
-                     (if (eqv? #{atom-key 3103}# 'primitive)
-                       (#{build-primref 289}# #f (car (cdr #{x 3099}#)))
-                       (if (eqv? #{atom-key 3103}# 'quote)
-                         (#{build-data 291}# #f (car (cdr #{x 3099}#)))
-                         (if (eqv? #{atom-key 3103}# 'lambda)
-                           (if (list? (car (cdr #{x 3099}#)))
-                             (#{build-simple-lambda 283}#
+                       (car (cdr #{x 3114}#))
+                       (car (cdr #{x 3114}#)))
+                     (if (memv #{atom-key 3118}# '(primitive))
+                       (#{build-primref 293}# #f (car (cdr #{x 3114}#)))
+                       (if (memv #{atom-key 3118}# '(quote))
+                         (#{build-data 295}# #f (car (cdr #{x 3114}#)))
+                         (if (memv #{atom-key 3118}# '(lambda))
+                           (if (list? (car (cdr #{x 3114}#)))
+                             (#{build-simple-lambda 285}#
                                #f
-                               (car (cdr #{x 3099}#))
+                               (car (cdr #{x 3114}#))
                                #f
-                               (car (cdr #{x 3099}#))
+                               (car (cdr #{x 3114}#))
                                '()
-                               (#{regen 2903}# (car (cdr (cdr #{x 3099}#)))))
-                             (error "how did we get here" #{x 3099}#))
-                           (#{build-application 265}#
+                               (#{regen 2918}# (car (cdr (cdr #{x 3114}#)))))
+                             (error "how did we get here" #{x 3114}#))
+                           (#{build-primcall 291}#
                              #f
-                             (#{build-primref 289}# #f (car #{x 3099}#))
-                             (map #{regen 2903}# (cdr #{x 3099}#))))))))))))
+                             (car #{x 3114}#)
+                             (map #{regen 2918}# (cdr #{x 3114}#))))))))))))
           (begin
-            (lambda (#{e 3115}#
-                     #{r 3116}#
-                     #{w 3117}#
-                     #{s 3118}#
-                     #{mod 3119}#)
+            (lambda (#{e 3129}#
+                     #{r 3130}#
+                     #{w 3131}#
+                     #{s 3132}#
+                     #{mod 3133}#)
               (begin
-                (let ((#{e 3126}#
-                        (#{source-wrap 407}#
-                          #{e 3115}#
-                          #{w 3117}#
-                          #{s 3118}#
-                          #{mod 3119}#)))
-                  (let ((#{tmp 3127}# #{e 3126}#))
-                    (let ((#{tmp 3128}#
-                            ($sc-dispatch #{tmp 3127}# '(_ any))))
-                      (if #{tmp 3128}#
+                (let ((#{e 3140}#
+                        (#{source-wrap 411}#
+                          #{e 3129}#
+                          #{w 3131}#
+                          #{s 3132}#
+                          #{mod 3133}#)))
+                  (let ((#{tmp 3141}# #{e 3140}#))
+                    (let ((#{tmp 3142}#
+                            ($sc-dispatch #{tmp 3141}# '(_ any))))
+                      (if #{tmp 3142}#
                         (@apply
-                          (lambda (#{x 3130}#)
+                          (lambda (#{x 3144}#)
                             (call-with-values
                               (lambda ()
-                                (#{gen-syntax 2889}#
-                                  #{e 3126}#
-                                  #{x 3130}#
-                                  #{r 3116}#
+                                (#{gen-syntax 2904}#
+                                  #{e 3140}#
+                                  #{x 3144}#
+                                  #{r 3130}#
                                   '()
-                                  #{ellipsis? 435}#
-                                  #{mod 3119}#))
-                              (lambda (#{e 3131}# #{maps 3132}#)
-                                (#{regen 2903}# #{e 3131}#))))
-                          #{tmp 3128}#)
-                        (let ((#{_ 3136}# #{tmp 3127}#))
+                                  #{ellipsis? 439}#
+                                  #{mod 3133}#))
+                              (lambda (#{e 3145}# #{maps 3146}#)
+                                (#{regen 2918}# #{e 3145}#))))
+                          #{tmp 3142}#)
+                        (let ((#{_ 3150}# #{tmp 3141}#))
                           (syntax-violation
                             'syntax
                             "bad `syntax' form"
-                            #{e 3126}#)))))))))))
-      (#{global-extend 335}#
+                            #{e 3140}#)))))))))))
+      (#{global-extend 339}#
         'core
         'lambda
-        (lambda (#{e 3137}#
-                 #{r 3138}#
-                 #{w 3139}#
-                 #{s 3140}#
-                 #{mod 3141}#)
-          (let ((#{tmp 3147}# #{e 3137}#))
-            (let ((#{tmp 3148}#
+        (lambda (#{e 3151}#
+                 #{r 3152}#
+                 #{w 3153}#
+                 #{s 3154}#
+                 #{mod 3155}#)
+          (let ((#{tmp 3161}# #{e 3151}#))
+            (let ((#{tmp 3162}#
                     ($sc-dispatch
-                      #{tmp 3147}#
+                      #{tmp 3161}#
                       '(_ any any . each-any))))
-              (if #{tmp 3148}#
+              (if #{tmp 3162}#
                 (@apply
-                  (lambda (#{args 3152}# #{e1 3153}# #{e2 3154}#)
+                  (lambda (#{args 3166}# #{e1 3167}# #{e2 3168}#)
                     (call-with-values
                       (lambda ()
-                        (#{lambda-formals 437}# #{args 3152}#))
-                      (lambda (#{req 3155}#
-                               #{opt 3156}#
-                               #{rest 3157}#
-                               #{kw 3158}#)
+                        (#{lambda-formals 441}# #{args 3166}#))
+                      (lambda (#{req 3169}#
+                               #{opt 3170}#
+                               #{rest 3171}#
+                               #{kw 3172}#)
                         (letrec*
-                          ((#{lp 3166}#
-                             (lambda (#{body 3167}# #{meta 3168}#)
-                               (let ((#{tmp 3170}# #{body 3167}#))
-                                 (let ((#{tmp 3171}#
+                          ((#{lp 3180}#
+                             (lambda (#{body 3181}# #{meta 3182}#)
+                               (let ((#{tmp 3184}# #{body 3181}#))
+                                 (let ((#{tmp 3185}#
                                          ($sc-dispatch
-                                           #{tmp 3170}#
+                                           #{tmp 3184}#
                                            '(any any . each-any))))
-                                   (if (if #{tmp 3171}#
+                                   (if (if #{tmp 3185}#
                                          (@apply
-                                           (lambda (#{docstring 3175}#
-                                                    #{e1 3176}#
-                                                    #{e2 3177}#)
+                                           (lambda (#{docstring 3189}#
+                                                    #{e1 3190}#
+                                                    #{e2 3191}#)
                                              (string?
                                                (syntax->datum
-                                                 #{docstring 3175}#)))
-                                           #{tmp 3171}#)
+                                                 #{docstring 3189}#)))
+                                           #{tmp 3185}#)
                                          #f)
                                      (@apply
-                                       (lambda (#{docstring 3181}#
-                                                #{e1 3182}#
-                                                #{e2 3183}#)
-                                         (#{lp 3166}#
-                                           (cons #{e1 3182}# #{e2 3183}#)
+                                       (lambda (#{docstring 3195}#
+                                                #{e1 3196}#
+                                                #{e2 3197}#)
+                                         (#{lp 3180}#
+                                           (cons #{e1 3196}# #{e2 3197}#)
                                            (append
-                                             #{meta 3168}#
+                                             #{meta 3182}#
                                              (list (cons 'documentation
                                                          (syntax->datum
-                                                           #{docstring 
3181}#))))))
-                                       #{tmp 3171}#)
-                                     (let ((#{tmp 3186}#
+                                                           #{docstring 
3195}#))))))
+                                       #{tmp 3185}#)
+                                     (let ((#{tmp 3200}#
                                              ($sc-dispatch
-                                               #{tmp 3170}#
+                                               #{tmp 3184}#
                                                '(#(vector #(each (any . any)))
                                                  any
                                                  .
                                                  each-any))))
-                                       (if #{tmp 3186}#
+                                       (if #{tmp 3200}#
                                          (@apply
-                                           (lambda (#{k 3191}#
-                                                    #{v 3192}#
-                                                    #{e1 3193}#
-                                                    #{e2 3194}#)
-                                             (#{lp 3166}#
-                                               (cons #{e1 3193}# #{e2 3194}#)
+                                           (lambda (#{k 3205}#
+                                                    #{v 3206}#
+                                                    #{e1 3207}#
+                                                    #{e2 3208}#)
+                                             (#{lp 3180}#
+                                               (cons #{e1 3207}# #{e2 3208}#)
                                                (append
-                                                 #{meta 3168}#
+                                                 #{meta 3182}#
                                                  (syntax->datum
                                                    (map cons
-                                                        #{k 3191}#
-                                                        #{v 3192}#)))))
-                                           #{tmp 3186}#)
-                                         (let ((#{_ 3199}# #{tmp 3170}#))
-                                           (#{chi-simple-lambda 439}#
-                                             #{e 3137}#
-                                             #{r 3138}#
-                                             #{w 3139}#
-                                             #{s 3140}#
-                                             #{mod 3141}#
-                                             #{req 3155}#
-                                             #{rest 3157}#
-                                             #{meta 3168}#
-                                             #{body 3167}#))))))))))
+                                                        #{k 3205}#
+                                                        #{v 3206}#)))))
+                                           #{tmp 3200}#)
+                                         (let ((#{_ 3213}# #{tmp 3184}#))
+                                           (#{chi-simple-lambda 443}#
+                                             #{e 3151}#
+                                             #{r 3152}#
+                                             #{w 3153}#
+                                             #{s 3154}#
+                                             #{mod 3155}#
+                                             #{req 3169}#
+                                             #{rest 3171}#
+                                             #{meta 3182}#
+                                             #{body 3181}#))))))))))
                           (begin
-                            (#{lp 3166}#
-                              (cons #{e1 3153}# #{e2 3154}#)
+                            (#{lp 3180}#
+                              (cons #{e1 3167}# #{e2 3168}#)
                               '()))))))
-                  #{tmp 3148}#)
-                (let ((#{_ 3201}# #{tmp 3147}#))
+                  #{tmp 3162}#)
+                (let ((#{_ 3215}# #{tmp 3161}#))
                   (syntax-violation
                     'lambda
                     "bad lambda"
-                    #{e 3137}#)))))))
-      (#{global-extend 335}#
+                    #{e 3151}#)))))))
+      (#{global-extend 339}#
         'core
         'lambda*
-        (lambda (#{e 3202}#
-                 #{r 3203}#
-                 #{w 3204}#
-                 #{s 3205}#
-                 #{mod 3206}#)
-          (let ((#{tmp 3212}# #{e 3202}#))
-            (let ((#{tmp 3213}#
+        (lambda (#{e 3216}#
+                 #{r 3217}#
+                 #{w 3218}#
+                 #{s 3219}#
+                 #{mod 3220}#)
+          (let ((#{tmp 3226}# #{e 3216}#))
+            (let ((#{tmp 3227}#
                     ($sc-dispatch
-                      #{tmp 3212}#
+                      #{tmp 3226}#
                       '(_ any any . each-any))))
-              (if #{tmp 3213}#
+              (if #{tmp 3227}#
                 (@apply
-                  (lambda (#{args 3217}# #{e1 3218}# #{e2 3219}#)
+                  (lambda (#{args 3231}# #{e1 3232}# #{e2 3233}#)
                     (call-with-values
                       (lambda ()
-                        (#{chi-lambda-case 443}#
-                          #{e 3202}#
-                          #{r 3203}#
-                          #{w 3204}#
-                          #{s 3205}#
-                          #{mod 3206}#
-                          #{lambda*-formals 441}#
-                          (list (cons #{args 3217}#
-                                      (cons #{e1 3218}# #{e2 3219}#)))))
-                      (lambda (#{meta 3221}# #{lcase 3222}#)
-                        (#{build-case-lambda 285}#
-                          #{s 3205}#
-                          #{meta 3221}#
-                          #{lcase 3222}#))))
-                  #{tmp 3213}#)
-                (let ((#{_ 3226}# #{tmp 3212}#))
+                        (#{chi-lambda-case 447}#
+                          #{e 3216}#
+                          #{r 3217}#
+                          #{w 3218}#
+                          #{s 3219}#
+                          #{mod 3220}#
+                          #{lambda*-formals 445}#
+                          (list (cons #{args 3231}#
+                                      (cons #{e1 3232}# #{e2 3233}#)))))
+                      (lambda (#{meta 3235}# #{lcase 3236}#)
+                        (#{build-case-lambda 287}#
+                          #{s 3219}#
+                          #{meta 3235}#
+                          #{lcase 3236}#))))
+                  #{tmp 3227}#)
+                (let ((#{_ 3240}# #{tmp 3226}#))
                   (syntax-violation
                     'lambda
                     "bad lambda*"
-                    #{e 3202}#)))))))
-      (#{global-extend 335}#
+                    #{e 3216}#)))))))
+      (#{global-extend 339}#
         'core
         'case-lambda
-        (lambda (#{e 3227}#
-                 #{r 3228}#
-                 #{w 3229}#
-                 #{s 3230}#
-                 #{mod 3231}#)
-          (let ((#{tmp 3237}# #{e 3227}#))
-            (let ((#{tmp 3238}#
+        (lambda (#{e 3241}#
+                 #{r 3242}#
+                 #{w 3243}#
+                 #{s 3244}#
+                 #{mod 3245}#)
+          (let ((#{tmp 3251}# #{e 3241}#))
+            (let ((#{tmp 3252}#
                     ($sc-dispatch
-                      #{tmp 3237}#
+                      #{tmp 3251}#
                       '(_ (any any . each-any)
                           .
                           #(each (any any . each-any))))))
-              (if #{tmp 3238}#
+              (if #{tmp 3252}#
                 (@apply
-                  (lambda (#{args 3245}#
-                           #{e1 3246}#
-                           #{e2 3247}#
-                           #{args* 3248}#
-                           #{e1* 3249}#
-                           #{e2* 3250}#)
+                  (lambda (#{args 3259}#
+                           #{e1 3260}#
+                           #{e2 3261}#
+                           #{args* 3262}#
+                           #{e1* 3263}#
+                           #{e2* 3264}#)
                     (call-with-values
                       (lambda ()
-                        (#{chi-lambda-case 443}#
-                          #{e 3227}#
-                          #{r 3228}#
-                          #{w 3229}#
-                          #{s 3230}#
-                          #{mod 3231}#
-                          #{lambda-formals 437}#
-                          (cons (cons #{args 3245}#
-                                      (cons #{e1 3246}# #{e2 3247}#))
-                                (map (lambda (#{tmp 3254}#
-                                              #{tmp 3253}#
-                                              #{tmp 3252}#)
-                                       (cons #{tmp 3252}#
-                                             (cons #{tmp 3253}# #{tmp 3254}#)))
-                                     #{e2* 3250}#
-                                     #{e1* 3249}#
-                                     #{args* 3248}#))))
-                      (lambda (#{meta 3256}# #{lcase 3257}#)
-                        (#{build-case-lambda 285}#
-                          #{s 3230}#
-                          #{meta 3256}#
-                          #{lcase 3257}#))))
-                  #{tmp 3238}#)
-                (let ((#{_ 3261}# #{tmp 3237}#))
+                        (#{chi-lambda-case 447}#
+                          #{e 3241}#
+                          #{r 3242}#
+                          #{w 3243}#
+                          #{s 3244}#
+                          #{mod 3245}#
+                          #{lambda-formals 441}#
+                          (cons (cons #{args 3259}#
+                                      (cons #{e1 3260}# #{e2 3261}#))
+                                (map (lambda (#{tmp 3268}#
+                                              #{tmp 3267}#
+                                              #{tmp 3266}#)
+                                       (cons #{tmp 3266}#
+                                             (cons #{tmp 3267}# #{tmp 3268}#)))
+                                     #{e2* 3264}#
+                                     #{e1* 3263}#
+                                     #{args* 3262}#))))
+                      (lambda (#{meta 3270}# #{lcase 3271}#)
+                        (#{build-case-lambda 287}#
+                          #{s 3244}#
+                          #{meta 3270}#
+                          #{lcase 3271}#))))
+                  #{tmp 3252}#)
+                (let ((#{_ 3275}# #{tmp 3251}#))
                   (syntax-violation
                     'case-lambda
                     "bad case-lambda"
-                    #{e 3227}#)))))))
-      (#{global-extend 335}#
+                    #{e 3241}#)))))))
+      (#{global-extend 339}#
         'core
         'case-lambda*
-        (lambda (#{e 3262}#
-                 #{r 3263}#
-                 #{w 3264}#
-                 #{s 3265}#
-                 #{mod 3266}#)
-          (let ((#{tmp 3272}# #{e 3262}#))
-            (let ((#{tmp 3273}#
+        (lambda (#{e 3276}#
+                 #{r 3277}#
+                 #{w 3278}#
+                 #{s 3279}#
+                 #{mod 3280}#)
+          (let ((#{tmp 3286}# #{e 3276}#))
+            (let ((#{tmp 3287}#
                     ($sc-dispatch
-                      #{tmp 3272}#
+                      #{tmp 3286}#
                       '(_ (any any . each-any)
                           .
                           #(each (any any . each-any))))))
-              (if #{tmp 3273}#
+              (if #{tmp 3287}#
                 (@apply
-                  (lambda (#{args 3280}#
-                           #{e1 3281}#
-                           #{e2 3282}#
-                           #{args* 3283}#
-                           #{e1* 3284}#
-                           #{e2* 3285}#)
+                  (lambda (#{args 3294}#
+                           #{e1 3295}#
+                           #{e2 3296}#
+                           #{args* 3297}#
+                           #{e1* 3298}#
+                           #{e2* 3299}#)
                     (call-with-values
                       (lambda ()
-                        (#{chi-lambda-case 443}#
-                          #{e 3262}#
-                          #{r 3263}#
-                          #{w 3264}#
-                          #{s 3265}#
-                          #{mod 3266}#
-                          #{lambda*-formals 441}#
-                          (cons (cons #{args 3280}#
-                                      (cons #{e1 3281}# #{e2 3282}#))
-                                (map (lambda (#{tmp 3289}#
-                                              #{tmp 3288}#
-                                              #{tmp 3287}#)
-                                       (cons #{tmp 3287}#
-                                             (cons #{tmp 3288}# #{tmp 3289}#)))
-                                     #{e2* 3285}#
-                                     #{e1* 3284}#
-                                     #{args* 3283}#))))
-                      (lambda (#{meta 3291}# #{lcase 3292}#)
-                        (#{build-case-lambda 285}#
-                          #{s 3265}#
-                          #{meta 3291}#
-                          #{lcase 3292}#))))
-                  #{tmp 3273}#)
-                (let ((#{_ 3296}# #{tmp 3272}#))
+                        (#{chi-lambda-case 447}#
+                          #{e 3276}#
+                          #{r 3277}#
+                          #{w 3278}#
+                          #{s 3279}#
+                          #{mod 3280}#
+                          #{lambda*-formals 445}#
+                          (cons (cons #{args 3294}#
+                                      (cons #{e1 3295}# #{e2 3296}#))
+                                (map (lambda (#{tmp 3303}#
+                                              #{tmp 3302}#
+                                              #{tmp 3301}#)
+                                       (cons #{tmp 3301}#
+                                             (cons #{tmp 3302}# #{tmp 3303}#)))
+                                     #{e2* 3299}#
+                                     #{e1* 3298}#
+                                     #{args* 3297}#))))
+                      (lambda (#{meta 3305}# #{lcase 3306}#)
+                        (#{build-case-lambda 287}#
+                          #{s 3279}#
+                          #{meta 3305}#
+                          #{lcase 3306}#))))
+                  #{tmp 3287}#)
+                (let ((#{_ 3310}# #{tmp 3286}#))
                   (syntax-violation
                     'case-lambda
                     "bad case-lambda*"
-                    #{e 3262}#)))))))
-      (#{global-extend 335}#
+                    #{e 3276}#)))))))
+      (#{global-extend 339}#
         'core
         'let
         (letrec*
-          ((#{chi-let 3298}#
-             (lambda (#{e 3299}#
-                      #{r 3300}#
-                      #{w 3301}#
-                      #{s 3302}#
-                      #{mod 3303}#
-                      #{constructor 3304}#
-                      #{ids 3305}#
-                      #{vals 3306}#
-                      #{exps 3307}#)
-               (if (not (#{valid-bound-ids? 399}# #{ids 3305}#))
+          ((#{chi-let 3312}#
+             (lambda (#{e 3313}#
+                      #{r 3314}#
+                      #{w 3315}#
+                      #{s 3316}#
+                      #{mod 3317}#
+                      #{constructor 3318}#
+                      #{ids 3319}#
+                      #{vals 3320}#
+                      #{exps 3321}#)
+               (if (not (#{valid-bound-ids? 403}# #{ids 3319}#))
                  (syntax-violation
                    'let
                    "duplicate bound variable"
-                   #{e 3299}#)
+                   #{e 3313}#)
                  (begin
-                   (let ((#{labels 3319}#
-                           (#{gen-labels 354}# #{ids 3305}#))
-                         (#{new-vars 3320}#
-                           (map #{gen-var 447}# #{ids 3305}#)))
+                   (let ((#{labels 3333}#
+                           (#{gen-labels 358}# #{ids 3319}#))
+                         (#{new-vars 3334}#
+                           (map #{gen-var 451}# #{ids 3319}#)))
                      (begin
-                       (let ((#{nw 3323}#
-                               (#{make-binding-wrap 383}#
-                                 #{ids 3305}#
-                                 #{labels 3319}#
-                                 #{w 3301}#))
-                             (#{nr 3324}#
-                               (#{extend-var-env 329}#
-                                 #{labels 3319}#
-                                 #{new-vars 3320}#
-                                 #{r 3300}#)))
-                         (#{constructor 3304}#
-                           #{s 3302}#
-                           (map syntax->datum #{ids 3305}#)
-                           #{new-vars 3320}#
-                           (map (lambda (#{x 3325}#)
-                                  (#{chi 419}#
-                                    #{x 3325}#
-                                    #{r 3300}#
-                                    #{w 3301}#
-                                    #{mod 3303}#))
-                                #{vals 3306}#)
-                           (#{chi-body 427}#
-                             #{exps 3307}#
-                             (#{source-wrap 407}#
-                               #{e 3299}#
-                               #{nw 3323}#
-                               #{s 3302}#
-                               #{mod 3303}#)
-                             #{nr 3324}#
-                             #{nw 3323}#
-                             #{mod 3303}#))))))))))
+                       (let ((#{nw 3337}#
+                               (#{make-binding-wrap 387}#
+                                 #{ids 3319}#
+                                 #{labels 3333}#
+                                 #{w 3315}#))
+                             (#{nr 3338}#
+                               (#{extend-var-env 333}#
+                                 #{labels 3333}#
+                                 #{new-vars 3334}#
+                                 #{r 3314}#)))
+                         (#{constructor 3318}#
+                           #{s 3316}#
+                           (map syntax->datum #{ids 3319}#)
+                           #{new-vars 3334}#
+                           (map (lambda (#{x 3339}#)
+                                  (#{chi 423}#
+                                    #{x 3339}#
+                                    #{r 3314}#
+                                    #{w 3315}#
+                                    #{mod 3317}#))
+                                #{vals 3320}#)
+                           (#{chi-body 431}#
+                             #{exps 3321}#
+                             (#{source-wrap 411}#
+                               #{e 3313}#
+                               #{nw 3337}#
+                               #{s 3316}#
+                               #{mod 3317}#)
+                             #{nr 3338}#
+                             #{nw 3337}#
+                             #{mod 3317}#))))))))))
           (begin
-            (lambda (#{e 3327}#
-                     #{r 3328}#
-                     #{w 3329}#
-                     #{s 3330}#
-                     #{mod 3331}#)
-              (let ((#{tmp 3337}# #{e 3327}#))
-                (let ((#{tmp 3338}#
+            (lambda (#{e 3341}#
+                     #{r 3342}#
+                     #{w 3343}#
+                     #{s 3344}#
+                     #{mod 3345}#)
+              (let ((#{tmp 3351}# #{e 3341}#))
+                (let ((#{tmp 3352}#
                         ($sc-dispatch
-                          #{tmp 3337}#
+                          #{tmp 3351}#
                           '(_ #(each (any any)) any . each-any))))
-                  (if (if #{tmp 3338}#
+                  (if (if #{tmp 3352}#
                         (@apply
-                          (lambda (#{id 3343}#
-                                   #{val 3344}#
-                                   #{e1 3345}#
-                                   #{e2 3346}#)
-                            (and-map #{id? 339}# #{id 3343}#))
-                          #{tmp 3338}#)
+                          (lambda (#{id 3357}#
+                                   #{val 3358}#
+                                   #{e1 3359}#
+                                   #{e2 3360}#)
+                            (and-map #{id? 343}# #{id 3357}#))
+                          #{tmp 3352}#)
                         #f)
                     (@apply
-                      (lambda (#{id 3352}#
-                               #{val 3353}#
-                               #{e1 3354}#
-                               #{e2 3355}#)
-                        (#{chi-let 3298}#
-                          #{e 3327}#
-                          #{r 3328}#
-                          #{w 3329}#
-                          #{s 3330}#
-                          #{mod 3331}#
-                          #{build-let 295}#
-                          #{id 3352}#
-                          #{val 3353}#
-                          (cons #{e1 3354}# #{e2 3355}#)))
-                      #{tmp 3338}#)
-                    (let ((#{tmp 3359}#
+                      (lambda (#{id 3366}#
+                               #{val 3367}#
+                               #{e1 3368}#
+                               #{e2 3369}#)
+                        (#{chi-let 3312}#
+                          #{e 3341}#
+                          #{r 3342}#
+                          #{w 3343}#
+                          #{s 3344}#
+                          #{mod 3345}#
+                          #{build-let 299}#
+                          #{id 3366}#
+                          #{val 3367}#
+                          (cons #{e1 3368}# #{e2 3369}#)))
+                      #{tmp 3352}#)
+                    (let ((#{tmp 3373}#
                             ($sc-dispatch
-                              #{tmp 3337}#
+                              #{tmp 3351}#
                               '(_ any #(each (any any)) any . each-any))))
-                      (if (if #{tmp 3359}#
+                      (if (if #{tmp 3373}#
                             (@apply
-                              (lambda (#{f 3365}#
-                                       #{id 3366}#
-                                       #{val 3367}#
-                                       #{e1 3368}#
-                                       #{e2 3369}#)
-                                (if (#{id? 339}# #{f 3365}#)
-                                  (and-map #{id? 339}# #{id 3366}#)
+                              (lambda (#{f 3379}#
+                                       #{id 3380}#
+                                       #{val 3381}#
+                                       #{e1 3382}#
+                                       #{e2 3383}#)
+                                (if (#{id? 343}# #{f 3379}#)
+                                  (and-map #{id? 343}# #{id 3380}#)
                                   #f))
-                              #{tmp 3359}#)
+                              #{tmp 3373}#)
                             #f)
                         (@apply
-                          (lambda (#{f 3378}#
-                                   #{id 3379}#
-                                   #{val 3380}#
-                                   #{e1 3381}#
-                                   #{e2 3382}#)
-                            (#{chi-let 3298}#
-                              #{e 3327}#
-                              #{r 3328}#
-                              #{w 3329}#
-                              #{s 3330}#
-                              #{mod 3331}#
-                              #{build-named-let 297}#
-                              (cons #{f 3378}# #{id 3379}#)
-                              #{val 3380}#
-                              (cons #{e1 3381}# #{e2 3382}#)))
-                          #{tmp 3359}#)
-                        (let ((#{_ 3387}# #{tmp 3337}#))
+                          (lambda (#{f 3392}#
+                                   #{id 3393}#
+                                   #{val 3394}#
+                                   #{e1 3395}#
+                                   #{e2 3396}#)
+                            (#{chi-let 3312}#
+                              #{e 3341}#
+                              #{r 3342}#
+                              #{w 3343}#
+                              #{s 3344}#
+                              #{mod 3345}#
+                              #{build-named-let 301}#
+                              (cons #{f 3392}# #{id 3393}#)
+                              #{val 3394}#
+                              (cons #{e1 3395}# #{e2 3396}#)))
+                          #{tmp 3373}#)
+                        (let ((#{_ 3401}# #{tmp 3351}#))
                           (syntax-violation
                             'let
                             "bad let"
-                            (#{source-wrap 407}#
-                              #{e 3327}#
-                              #{w 3329}#
-                              #{s 3330}#
-                              #{mod 3331}#))))))))))))
-      (#{global-extend 335}#
+                            (#{source-wrap 411}#
+                              #{e 3341}#
+                              #{w 3343}#
+                              #{s 3344}#
+                              #{mod 3345}#))))))))))))
+      (#{global-extend 339}#
         'core
         'letrec
-        (lambda (#{e 3388}#
-                 #{r 3389}#
-                 #{w 3390}#
-                 #{s 3391}#
-                 #{mod 3392}#)
-          (let ((#{tmp 3398}# #{e 3388}#))
-            (let ((#{tmp 3399}#
+        (lambda (#{e 3402}#
+                 #{r 3403}#
+                 #{w 3404}#
+                 #{s 3405}#
+                 #{mod 3406}#)
+          (let ((#{tmp 3412}# #{e 3402}#))
+            (let ((#{tmp 3413}#
                     ($sc-dispatch
-                      #{tmp 3398}#
+                      #{tmp 3412}#
                       '(_ #(each (any any)) any . each-any))))
-              (if (if #{tmp 3399}#
+              (if (if #{tmp 3413}#
                     (@apply
-                      (lambda (#{id 3404}#
-                               #{val 3405}#
-                               #{e1 3406}#
-                               #{e2 3407}#)
-                        (and-map #{id? 339}# #{id 3404}#))
-                      #{tmp 3399}#)
+                      (lambda (#{id 3418}#
+                               #{val 3419}#
+                               #{e1 3420}#
+                               #{e2 3421}#)
+                        (and-map #{id? 343}# #{id 3418}#))
+                      #{tmp 3413}#)
                     #f)
                 (@apply
-                  (lambda (#{id 3413}#
-                           #{val 3414}#
-                           #{e1 3415}#
-                           #{e2 3416}#)
+                  (lambda (#{id 3427}#
+                           #{val 3428}#
+                           #{e1 3429}#
+                           #{e2 3430}#)
                     (begin
-                      (let ((#{ids 3418}# #{id 3413}#))
-                        (if (not (#{valid-bound-ids? 399}# #{ids 3418}#))
+                      (let ((#{ids 3432}# #{id 3427}#))
+                        (if (not (#{valid-bound-ids? 403}# #{ids 3432}#))
                           (syntax-violation
                             'letrec
                             "duplicate bound variable"
-                            #{e 3388}#)
+                            #{e 3402}#)
                           (begin
-                            (let ((#{labels 3422}#
-                                    (#{gen-labels 354}# #{ids 3418}#))
-                                  (#{new-vars 3423}#
-                                    (map #{gen-var 447}# #{ids 3418}#)))
+                            (let ((#{labels 3436}#
+                                    (#{gen-labels 358}# #{ids 3432}#))
+                                  (#{new-vars 3437}#
+                                    (map #{gen-var 451}# #{ids 3432}#)))
                               (begin
-                                (let ((#{w 3426}#
-                                        (#{make-binding-wrap 383}#
-                                          #{ids 3418}#
-                                          #{labels 3422}#
-                                          #{w 3390}#))
-                                      (#{r 3427}#
-                                        (#{extend-var-env 329}#
-                                          #{labels 3422}#
-                                          #{new-vars 3423}#
-                                          #{r 3389}#)))
-                                  (#{build-letrec 299}#
-                                    #{s 3391}#
+                                (let ((#{w 3440}#
+                                        (#{make-binding-wrap 387}#
+                                          #{ids 3432}#
+                                          #{labels 3436}#
+                                          #{w 3404}#))
+                                      (#{r 3441}#
+                                        (#{extend-var-env 333}#
+                                          #{labels 3436}#
+                                          #{new-vars 3437}#
+                                          #{r 3403}#)))
+                                  (#{build-letrec 303}#
+                                    #{s 3405}#
                                     #f
-                                    (map syntax->datum #{ids 3418}#)
-                                    #{new-vars 3423}#
-                                    (map (lambda (#{x 3428}#)
-                                           (#{chi 419}#
-                                             #{x 3428}#
-                                             #{r 3427}#
-                                             #{w 3426}#
-                                             #{mod 3392}#))
-                                         #{val 3414}#)
-                                    (#{chi-body 427}#
-                                      (cons #{e1 3415}# #{e2 3416}#)
-                                      (#{source-wrap 407}#
-                                        #{e 3388}#
-                                        #{w 3426}#
-                                        #{s 3391}#
-                                        #{mod 3392}#)
-                                      #{r 3427}#
-                                      #{w 3426}#
-                                      #{mod 3392}#))))))))))
-                  #{tmp 3399}#)
-                (let ((#{_ 3433}# #{tmp 3398}#))
+                                    (map syntax->datum #{ids 3432}#)
+                                    #{new-vars 3437}#
+                                    (map (lambda (#{x 3442}#)
+                                           (#{chi 423}#
+                                             #{x 3442}#
+                                             #{r 3441}#
+                                             #{w 3440}#
+                                             #{mod 3406}#))
+                                         #{val 3428}#)
+                                    (#{chi-body 431}#
+                                      (cons #{e1 3429}# #{e2 3430}#)
+                                      (#{source-wrap 411}#
+                                        #{e 3402}#
+                                        #{w 3440}#
+                                        #{s 3405}#
+                                        #{mod 3406}#)
+                                      #{r 3441}#
+                                      #{w 3440}#
+                                      #{mod 3406}#))))))))))
+                  #{tmp 3413}#)
+                (let ((#{_ 3447}# #{tmp 3412}#))
                   (syntax-violation
                     'letrec
                     "bad letrec"
-                    (#{source-wrap 407}#
-                      #{e 3388}#
-                      #{w 3390}#
-                      #{s 3391}#
-                      #{mod 3392}#))))))))
-      (#{global-extend 335}#
+                    (#{source-wrap 411}#
+                      #{e 3402}#
+                      #{w 3404}#
+                      #{s 3405}#
+                      #{mod 3406}#))))))))
+      (#{global-extend 339}#
         'core
         'letrec*
-        (lambda (#{e 3434}#
-                 #{r 3435}#
-                 #{w 3436}#
-                 #{s 3437}#
-                 #{mod 3438}#)
-          (let ((#{tmp 3444}# #{e 3434}#))
-            (let ((#{tmp 3445}#
+        (lambda (#{e 3448}#
+                 #{r 3449}#
+                 #{w 3450}#
+                 #{s 3451}#
+                 #{mod 3452}#)
+          (let ((#{tmp 3458}# #{e 3448}#))
+            (let ((#{tmp 3459}#
                     ($sc-dispatch
-                      #{tmp 3444}#
+                      #{tmp 3458}#
                       '(_ #(each (any any)) any . each-any))))
-              (if (if #{tmp 3445}#
+              (if (if #{tmp 3459}#
                     (@apply
-                      (lambda (#{id 3450}#
-                               #{val 3451}#
-                               #{e1 3452}#
-                               #{e2 3453}#)
-                        (and-map #{id? 339}# #{id 3450}#))
-                      #{tmp 3445}#)
+                      (lambda (#{id 3464}#
+                               #{val 3465}#
+                               #{e1 3466}#
+                               #{e2 3467}#)
+                        (and-map #{id? 343}# #{id 3464}#))
+                      #{tmp 3459}#)
                     #f)
                 (@apply
-                  (lambda (#{id 3459}#
-                           #{val 3460}#
-                           #{e1 3461}#
-                           #{e2 3462}#)
+                  (lambda (#{id 3473}#
+                           #{val 3474}#
+                           #{e1 3475}#
+                           #{e2 3476}#)
                     (begin
-                      (let ((#{ids 3464}# #{id 3459}#))
-                        (if (not (#{valid-bound-ids? 399}# #{ids 3464}#))
+                      (let ((#{ids 3478}# #{id 3473}#))
+                        (if (not (#{valid-bound-ids? 403}# #{ids 3478}#))
                           (syntax-violation
                             'letrec*
                             "duplicate bound variable"
-                            #{e 3434}#)
+                            #{e 3448}#)
                           (begin
-                            (let ((#{labels 3468}#
-                                    (#{gen-labels 354}# #{ids 3464}#))
-                                  (#{new-vars 3469}#
-                                    (map #{gen-var 447}# #{ids 3464}#)))
+                            (let ((#{labels 3482}#
+                                    (#{gen-labels 358}# #{ids 3478}#))
+                                  (#{new-vars 3483}#
+                                    (map #{gen-var 451}# #{ids 3478}#)))
                               (begin
-                                (let ((#{w 3472}#
-                                        (#{make-binding-wrap 383}#
-                                          #{ids 3464}#
-                                          #{labels 3468}#
-                                          #{w 3436}#))
-                                      (#{r 3473}#
-                                        (#{extend-var-env 329}#
-                                          #{labels 3468}#
-                                          #{new-vars 3469}#
-                                          #{r 3435}#)))
-                                  (#{build-letrec 299}#
-                                    #{s 3437}#
+                                (let ((#{w 3486}#
+                                        (#{make-binding-wrap 387}#
+                                          #{ids 3478}#
+                                          #{labels 3482}#
+                                          #{w 3450}#))
+                                      (#{r 3487}#
+                                        (#{extend-var-env 333}#
+                                          #{labels 3482}#
+                                          #{new-vars 3483}#
+                                          #{r 3449}#)))
+                                  (#{build-letrec 303}#
+                                    #{s 3451}#
                                     #t
-                                    (map syntax->datum #{ids 3464}#)
-                                    #{new-vars 3469}#
-                                    (map (lambda (#{x 3474}#)
-                                           (#{chi 419}#
-                                             #{x 3474}#
-                                             #{r 3473}#
-                                             #{w 3472}#
-                                             #{mod 3438}#))
-                                         #{val 3460}#)
-                                    (#{chi-body 427}#
-                                      (cons #{e1 3461}# #{e2 3462}#)
-                                      (#{source-wrap 407}#
-                                        #{e 3434}#
-                                        #{w 3472}#
-                                        #{s 3437}#
-                                        #{mod 3438}#)
-                                      #{r 3473}#
-                                      #{w 3472}#
-                                      #{mod 3438}#))))))))))
-                  #{tmp 3445}#)
-                (let ((#{_ 3479}# #{tmp 3444}#))
+                                    (map syntax->datum #{ids 3478}#)
+                                    #{new-vars 3483}#
+                                    (map (lambda (#{x 3488}#)
+                                           (#{chi 423}#
+                                             #{x 3488}#
+                                             #{r 3487}#
+                                             #{w 3486}#
+                                             #{mod 3452}#))
+                                         #{val 3474}#)
+                                    (#{chi-body 431}#
+                                      (cons #{e1 3475}# #{e2 3476}#)
+                                      (#{source-wrap 411}#
+                                        #{e 3448}#
+                                        #{w 3486}#
+                                        #{s 3451}#
+                                        #{mod 3452}#)
+                                      #{r 3487}#
+                                      #{w 3486}#
+                                      #{mod 3452}#))))))))))
+                  #{tmp 3459}#)
+                (let ((#{_ 3493}# #{tmp 3458}#))
                   (syntax-violation
                     'letrec*
                     "bad letrec*"
-                    (#{source-wrap 407}#
-                      #{e 3434}#
-                      #{w 3436}#
-                      #{s 3437}#
-                      #{mod 3438}#))))))))
-      (#{global-extend 335}#
+                    (#{source-wrap 411}#
+                      #{e 3448}#
+                      #{w 3450}#
+                      #{s 3451}#
+                      #{mod 3452}#))))))))
+      (#{global-extend 339}#
         'core
         'set!
-        (lambda (#{e 3480}#
-                 #{r 3481}#
-                 #{w 3482}#
-                 #{s 3483}#
-                 #{mod 3484}#)
-          (let ((#{tmp 3490}# #{e 3480}#))
-            (let ((#{tmp 3491}#
-                    ($sc-dispatch #{tmp 3490}# '(_ any any))))
-              (if (if #{tmp 3491}#
+        (lambda (#{e 3494}#
+                 #{r 3495}#
+                 #{w 3496}#
+                 #{s 3497}#
+                 #{mod 3498}#)
+          (let ((#{tmp 3504}# #{e 3494}#))
+            (let ((#{tmp 3505}#
+                    ($sc-dispatch #{tmp 3504}# '(_ any any))))
+              (if (if #{tmp 3505}#
                     (@apply
-                      (lambda (#{id 3494}# #{val 3495}#)
-                        (#{id? 339}# #{id 3494}#))
-                      #{tmp 3491}#)
+                      (lambda (#{id 3508}# #{val 3509}#)
+                        (#{id? 343}# #{id 3508}#))
+                      #{tmp 3505}#)
                     #f)
                 (@apply
-                  (lambda (#{id 3498}# #{val 3499}#)
+                  (lambda (#{id 3512}# #{val 3513}#)
                     (begin
-                      (let ((#{n 3502}#
-                              (#{id-var-name 393}# #{id 3498}# #{w 3482}#))
-                            (#{id-mod 3503}#
-                              (if (#{syntax-object? 305}# #{id 3498}#)
-                                (#{syntax-object-module 311}# #{id 3498}#)
-                                #{mod 3484}#)))
+                      (let ((#{n 3516}#
+                              (#{id-var-name 397}# #{id 3512}# #{w 3496}#))
+                            (#{id-mod 3517}#
+                              (if (#{syntax-object? 309}# #{id 3512}#)
+                                (#{syntax-object-module 315}# #{id 3512}#)
+                                #{mod 3498}#)))
                         (begin
-                          (let ((#{b 3505}#
-                                  (#{lookup 333}#
-                                    #{n 3502}#
-                                    #{r 3481}#
-                                    #{id-mod 3503}#)))
+                          (let ((#{b 3519}#
+                                  (#{lookup 337}#
+                                    #{n 3516}#
+                                    #{r 3495}#
+                                    #{id-mod 3517}#)))
                             (begin
-                              (let ((#{atom-key 3508}# (car #{b 3505}#)))
-                                (if (eqv? #{atom-key 3508}# 'lexical)
-                                  (#{build-lexical-assignment 273}#
-                                    #{s 3483}#
-                                    (syntax->datum #{id 3498}#)
-                                    (cdr #{b 3505}#)
-                                    (#{chi 419}#
-                                      #{val 3499}#
-                                      #{r 3481}#
-                                      #{w 3482}#
-                                      #{mod 3484}#))
-                                  (if (eqv? #{atom-key 3508}# 'global)
-                                    (#{build-global-assignment 279}#
-                                      #{s 3483}#
-                                      #{n 3502}#
-                                      (#{chi 419}#
-                                        #{val 3499}#
-                                        #{r 3481}#
-                                        #{w 3482}#
-                                        #{mod 3484}#)
-                                      #{id-mod 3503}#)
-                                    (if (eqv? #{atom-key 3508}# 'macro)
+                              (let ((#{atom-key 3522}# (car #{b 3519}#)))
+                                (if (memv #{atom-key 3522}# '(lexical))
+                                  (#{build-lexical-assignment 275}#
+                                    #{s 3497}#
+                                    (syntax->datum #{id 3512}#)
+                                    (cdr #{b 3519}#)
+                                    (#{chi 423}#
+                                      #{val 3513}#
+                                      #{r 3495}#
+                                      #{w 3496}#
+                                      #{mod 3498}#))
+                                  (if (memv #{atom-key 3522}# '(global))
+                                    (#{build-global-assignment 281}#
+                                      #{s 3497}#
+                                      #{n 3516}#
+                                      (#{chi 423}#
+                                        #{val 3513}#
+                                        #{r 3495}#
+                                        #{w 3496}#
+                                        #{mod 3498}#)
+                                      #{id-mod 3517}#)
+                                    (if (memv #{atom-key 3522}# '(macro))
                                       (begin
-                                        (let ((#{p 3515}# (cdr #{b 3505}#)))
+                                        (let ((#{p 3529}# (cdr #{b 3519}#)))
                                           (if (procedure-property
-                                                #{p 3515}#
+                                                #{p 3529}#
                                                 'variable-transformer)
-                                            (#{chi 419}#
-                                              (#{chi-macro 425}#
-                                                #{p 3515}#
-                                                #{e 3480}#
-                                                #{r 3481}#
-                                                #{w 3482}#
-                                                #{s 3483}#
+                                            (#{chi 423}#
+                                              (#{chi-macro 429}#
+                                                #{p 3529}#
+                                                #{e 3494}#
+                                                #{r 3495}#
+                                                #{w 3496}#
+                                                #{s 3497}#
                                                 #f
-                                                #{mod 3484}#)
-                                              #{r 3481}#
+                                                #{mod 3498}#)
+                                              #{r 3495}#
                                               '(())
-                                              #{mod 3484}#)
+                                              #{mod 3498}#)
                                             (syntax-violation
                                               'set!
                                               "not a variable transformer"
-                                              (#{wrap 405}#
-                                                #{e 3480}#
-                                                #{w 3482}#
-                                                #{mod 3484}#)
-                                              (#{wrap 405}#
-                                                #{id 3498}#
-                                                #{w 3482}#
-                                                #{id-mod 3503}#)))))
-                                      (if (eqv? #{atom-key 3508}#
-                                                'displaced-lexical)
+                                              (#{wrap 409}#
+                                                #{e 3494}#
+                                                #{w 3496}#
+                                                #{mod 3498}#)
+                                              (#{wrap 409}#
+                                                #{id 3512}#
+                                                #{w 3496}#
+                                                #{id-mod 3517}#)))))
+                                      (if (memv #{atom-key 3522}#
+                                                '(displaced-lexical))
                                         (syntax-violation
                                           'set!
                                           "identifier out of context"
-                                          (#{wrap 405}#
-                                            #{id 3498}#
-                                            #{w 3482}#
-                                            #{mod 3484}#))
+                                          (#{wrap 409}#
+                                            #{id 3512}#
+                                            #{w 3496}#
+                                            #{mod 3498}#))
                                         (syntax-violation
                                           'set!
                                           "bad set!"
-                                          (#{source-wrap 407}#
-                                            #{e 3480}#
-                                            #{w 3482}#
-                                            #{s 3483}#
-                                            #{mod 3484}#)))))))))))))
-                  #{tmp 3491}#)
-                (let ((#{tmp 3520}#
+                                          (#{source-wrap 411}#
+                                            #{e 3494}#
+                                            #{w 3496}#
+                                            #{s 3497}#
+                                            #{mod 3498}#)))))))))))))
+                  #{tmp 3505}#)
+                (let ((#{tmp 3534}#
                         ($sc-dispatch
-                          #{tmp 3490}#
+                          #{tmp 3504}#
                           '(_ (any . each-any) any))))
-                  (if #{tmp 3520}#
+                  (if #{tmp 3534}#
                     (@apply
-                      (lambda (#{head 3524}# #{tail 3525}# #{val 3526}#)
+                      (lambda (#{head 3538}# #{tail 3539}# #{val 3540}#)
                         (call-with-values
                           (lambda ()
-                            (#{syntax-type 417}#
-                              #{head 3524}#
-                              #{r 3481}#
+                            (#{syntax-type 421}#
+                              #{head 3538}#
+                              #{r 3495}#
                               '(())
                               #f
                               #f
-                              #{mod 3484}#
+                              #{mod 3498}#
                               #t))
-                          (lambda (#{type 3529}#
-                                   #{value 3530}#
-                                   #{ee 3531}#
-                                   #{ww 3532}#
-                                   #{ss 3533}#
-                                   #{modmod 3534}#)
-                            (if (eqv? #{type 3529}# 'module-ref)
+                          (lambda (#{type 3543}#
+                                   #{value 3544}#
+                                   #{ee 3545}#
+                                   #{ww 3546}#
+                                   #{ss 3547}#
+                                   #{modmod 3548}#)
+                            (if (memv #{type 3543}# '(module-ref))
                               (begin
-                                (let ((#{val 3543}#
-                                        (#{chi 419}#
-                                          #{val 3526}#
-                                          #{r 3481}#
-                                          #{w 3482}#
-                                          #{mod 3484}#)))
+                                (let ((#{val 3557}#
+                                        (#{chi 423}#
+                                          #{val 3540}#
+                                          #{r 3495}#
+                                          #{w 3496}#
+                                          #{mod 3498}#)))
                                   (call-with-values
                                     (lambda ()
-                                      (#{value 3530}#
-                                        (cons #{head 3524}# #{tail 3525}#)
-                                        #{r 3481}#
-                                        #{w 3482}#))
-                                    (lambda (#{e 3545}#
-                                             #{r 3546}#
-                                             #{w 3547}#
-                                             #{s* 3548}#
-                                             #{mod 3549}#)
-                                      (let ((#{tmp 3555}# #{e 3545}#))
-                                        (let ((#{tmp 3556}#
-                                                (list #{tmp 3555}#)))
-                                          (if (if #{tmp 3556}#
+                                      (#{value 3544}#
+                                        (cons #{head 3538}# #{tail 3539}#)
+                                        #{r 3495}#
+                                        #{w 3496}#))
+                                    (lambda (#{e 3559}#
+                                             #{r 3560}#
+                                             #{w 3561}#
+                                             #{s* 3562}#
+                                             #{mod 3563}#)
+                                      (let ((#{tmp 3569}# #{e 3559}#))
+                                        (let ((#{tmp 3570}#
+                                                (list #{tmp 3569}#)))
+                                          (if (if #{tmp 3570}#
                                                 (@apply
-                                                  (lambda (#{e 3558}#)
-                                                    (#{id? 339}# #{e 3558}#))
-                                                  #{tmp 3556}#)
+                                                  (lambda (#{e 3572}#)
+                                                    (#{id? 343}# #{e 3572}#))
+                                                  #{tmp 3570}#)
                                                 #f)
                                             (@apply
-                                              (lambda (#{e 3560}#)
-                                                (#{build-global-assignment 
279}#
-                                                  #{s 3483}#
-                                                  (syntax->datum #{e 3560}#)
-                                                  #{val 3543}#
-                                                  #{mod 3549}#))
-                                              #{tmp 3556}#)
+                                              (lambda (#{e 3574}#)
+                                                (#{build-global-assignment 
281}#
+                                                  #{s 3497}#
+                                                  (syntax->datum #{e 3574}#)
+                                                  #{val 3557}#
+                                                  #{mod 3563}#))
+                                              #{tmp 3570}#)
                                             (syntax-violation
                                               #f
                                               "source expression failed to 
match any pattern"
-                                              #{tmp 3555}#))))))))
-                              (#{build-application 265}#
-                                #{s 3483}#
-                                (#{chi 419}#
+                                              #{tmp 3569}#))))))))
+                              (#{build-call 267}#
+                                #{s 3497}#
+                                (#{chi 423}#
                                   (list '#(syntax-object
                                            setter
                                            ((top)
@@ -9924,25 +9987,25 @@
                                                 (top)
                                                 (top)
                                                 (top))
-                                              #("i3535"
-                                                "i3536"
-                                                "i3537"
-                                                "i3538"
-                                                "i3539"
-                                                "i3540"))
+                                              #("i3549"
+                                                "i3550"
+                                                "i3551"
+                                                "i3552"
+                                                "i3553"
+                                                "i3554"))
                                             #(ribcage
                                               #(head tail val)
                                               #((top) (top) (top))
-                                              #("i3521" "i3522" "i3523"))
+                                              #("i3535" "i3536" "i3537"))
                                             #(ribcage () () ())
                                             #(ribcage
                                               #(e r w s mod)
                                               #((top) (top) (top) (top) (top))
-                                              #("i3485"
-                                                "i3486"
-                                                "i3487"
-                                                "i3488"
-                                                "i3489"))
+                                              #("i3499"
+                                                "i3500"
+                                                "i3501"
+                                                "i3502"
+                                                "i3503"))
                                             #(ribcage
                                               (lambda-var-list
                                                 gen-var
@@ -9957,7 +10020,7 @@
                                                 chi-local-syntax
                                                 chi-body
                                                 chi-macro
-                                                chi-application
+                                                chi-call
                                                 chi-expr
                                                 chi
                                                 syntax-type
@@ -10035,6 +10098,7 @@
                                                 build-sequence
                                                 build-data
                                                 build-primref
+                                                build-primcall
                                                 build-lambda-case
                                                 build-case-lambda
                                                 build-simple-lambda
@@ -10046,7 +10110,7 @@
                                                 build-lexical-reference
                                                 build-dynlet
                                                 build-conditional
-                                                build-application
+                                                build-call
                                                 build-void
                                                 maybe-name-value!
                                                 decorate-source
@@ -10068,7 +10132,8 @@
                                                 make-lambda-case
                                                 make-lambda
                                                 make-sequence
-                                                make-application
+                                                make-primcall
+                                                make-call
                                                 make-conditional
                                                 make-toplevel-define
                                                 make-toplevel-set
@@ -10215,8 +10280,12 @@
                                                (top)
                                                (top)
                                                (top)
+                                               (top)
+                                               (top)
                                                (top))
-                                              ("i448"
+                                              ("i452"
+                                               "i450"
+                                               "i448"
                                                "i446"
                                                "i444"
                                                "i442"
@@ -10249,14 +10318,14 @@
                                                "i388"
                                                "i386"
                                                "i384"
+                                               "i383"
                                                "i382"
                                                "i380"
                                                "i379"
                                                "i378"
+                                               "i377"
                                                "i376"
-                                               "i375"
                                                "i374"
-                                               "i373"
                                                "i372"
                                                "i370"
                                                "i368"
@@ -10264,33 +10333,33 @@
                                                "i364"
                                                "i362"
                                                "i360"
-                                               "i358"
-                                               "i356"
+                                               "i357"
+                                               "i355"
+                                               "i354"
                                                "i353"
+                                               "i352"
                                                "i351"
                                                "i350"
                                                "i349"
                                                "i348"
                                                "i347"
-                                               "i346"
                                                "i345"
                                                "i344"
-                                               "i343"
-                                               "i341"
+                                               "i342"
                                                "i340"
                                                "i338"
                                                "i336"
                                                "i334"
                                                "i332"
                                                "i330"
+                                               "i329"
                                                "i328"
+                                               "i327"
                                                "i326"
                                                "i325"
-                                               "i324"
                                                "i323"
                                                "i322"
-                                               "i321"
-                                               "i319"
+                                               "i320"
                                                "i318"
                                                "i316"
                                                "i314"
@@ -10323,17 +10392,17 @@
                                                "i260"
                                                "i258"
                                                "i256"
-                                               "i254"
+                                               "i255"
                                                "i253"
                                                "i251"
+                                               "i250"
                                                "i249"
                                                "i248"
                                                "i247"
-                                               "i246"
                                                "i245"
                                                "i243"
                                                "i241"
-                                               "i239"
+                                               "i238"
                                                "i236"
                                                "i234"
                                                "i232"
@@ -10359,50 +10428,50 @@
                                               ((top) (top) (top))
                                               ("i40" "i39" "i38")))
                                            (hygiene guile))
-                                        #{head 3524}#)
-                                  #{r 3481}#
-                                  #{w 3482}#
-                                  #{mod 3484}#)
-                                (map (lambda (#{e 3562}#)
-                                       (#{chi 419}#
-                                         #{e 3562}#
-                                         #{r 3481}#
-                                         #{w 3482}#
-                                         #{mod 3484}#))
+                                        #{head 3538}#)
+                                  #{r 3495}#
+                                  #{w 3496}#
+                                  #{mod 3498}#)
+                                (map (lambda (#{e 3576}#)
+                                       (#{chi 423}#
+                                         #{e 3576}#
+                                         #{r 3495}#
+                                         #{w 3496}#
+                                         #{mod 3498}#))
                                      (append
-                                       #{tail 3525}#
-                                       (list #{val 3526}#))))))))
-                      #{tmp 3520}#)
-                    (let ((#{_ 3566}# #{tmp 3490}#))
+                                       #{tail 3539}#
+                                       (list #{val 3540}#))))))))
+                      #{tmp 3534}#)
+                    (let ((#{_ 3580}# #{tmp 3504}#))
                       (syntax-violation
                         'set!
                         "bad set!"
-                        (#{source-wrap 407}#
-                          #{e 3480}#
-                          #{w 3482}#
-                          #{s 3483}#
-                          #{mod 3484}#))))))))))
-      (#{global-extend 335}#
+                        (#{source-wrap 411}#
+                          #{e 3494}#
+                          #{w 3496}#
+                          #{s 3497}#
+                          #{mod 3498}#))))))))))
+      (#{global-extend 339}#
         'module-ref
         '@
-        (lambda (#{e 3567}# #{r 3568}# #{w 3569}#)
-          (let ((#{tmp 3573}# #{e 3567}#))
-            (let ((#{tmp 3574}#
-                    ($sc-dispatch #{tmp 3573}# '(_ each-any any))))
-              (if (if #{tmp 3574}#
+        (lambda (#{e 3581}# #{r 3582}# #{w 3583}#)
+          (let ((#{tmp 3587}# #{e 3581}#))
+            (let ((#{tmp 3588}#
+                    ($sc-dispatch #{tmp 3587}# '(_ each-any any))))
+              (if (if #{tmp 3588}#
                     (@apply
-                      (lambda (#{mod 3577}# #{id 3578}#)
-                        (if (and-map #{id? 339}# #{mod 3577}#)
-                          (#{id? 339}# #{id 3578}#)
+                      (lambda (#{mod 3591}# #{id 3592}#)
+                        (if (and-map #{id? 343}# #{mod 3591}#)
+                          (#{id? 343}# #{id 3592}#)
                           #f))
-                      #{tmp 3574}#)
+                      #{tmp 3588}#)
                     #f)
                 (@apply
-                  (lambda (#{mod 3584}# #{id 3585}#)
+                  (lambda (#{mod 3598}# #{id 3599}#)
                     (values
-                      (syntax->datum #{id 3585}#)
-                      #{r 3568}#
-                      #{w 3569}#
+                      (syntax->datum #{id 3599}#)
+                      #{r 3582}#
+                      #{w 3583}#
                       #f
                       (syntax->datum
                         (cons '#(syntax-object
@@ -10411,12 +10480,12 @@
                                   #(ribcage
                                     #(mod id)
                                     #((top) (top))
-                                    #("i3582" "i3583"))
+                                    #("i3596" "i3597"))
                                   #(ribcage () () ())
                                   #(ribcage
                                     #(e r w)
                                     #((top) (top) (top))
-                                    #("i3570" "i3571" "i3572"))
+                                    #("i3584" "i3585" "i3586"))
                                   #(ribcage
                                     (lambda-var-list
                                       gen-var
@@ -10431,7 +10500,7 @@
                                       chi-local-syntax
                                       chi-body
                                       chi-macro
-                                      chi-application
+                                      chi-call
                                       chi-expr
                                       chi
                                       syntax-type
@@ -10509,6 +10578,7 @@
                                       build-sequence
                                       build-data
                                       build-primref
+                                      build-primcall
                                       build-lambda-case
                                       build-case-lambda
                                       build-simple-lambda
@@ -10520,7 +10590,7 @@
                                       build-lexical-reference
                                       build-dynlet
                                       build-conditional
-                                      build-application
+                                      build-call
                                       build-void
                                       maybe-name-value!
                                       decorate-source
@@ -10542,7 +10612,8 @@
                                       make-lambda-case
                                       make-lambda
                                       make-sequence
-                                      make-application
+                                      make-primcall
+                                      make-call
                                       make-conditional
                                       make-toplevel-define
                                       make-toplevel-set
@@ -10689,8 +10760,12 @@
                                      (top)
                                      (top)
                                      (top)
+                                     (top)
+                                     (top)
                                      (top))
-                                    ("i448"
+                                    ("i452"
+                                     "i450"
+                                     "i448"
                                      "i446"
                                      "i444"
                                      "i442"
@@ -10723,14 +10798,14 @@
                                      "i388"
                                      "i386"
                                      "i384"
+                                     "i383"
                                      "i382"
                                      "i380"
                                      "i379"
                                      "i378"
+                                     "i377"
                                      "i376"
-                                     "i375"
                                      "i374"
-                                     "i373"
                                      "i372"
                                      "i370"
                                      "i368"
@@ -10738,33 +10813,33 @@
                                      "i364"
                                      "i362"
                                      "i360"
-                                     "i358"
-                                     "i356"
+                                     "i357"
+                                     "i355"
+                                     "i354"
                                      "i353"
+                                     "i352"
                                      "i351"
                                      "i350"
                                      "i349"
                                      "i348"
                                      "i347"
-                                     "i346"
                                      "i345"
                                      "i344"
-                                     "i343"
-                                     "i341"
+                                     "i342"
                                      "i340"
                                      "i338"
                                      "i336"
                                      "i334"
                                      "i332"
                                      "i330"
+                                     "i329"
                                      "i328"
+                                     "i327"
                                      "i326"
                                      "i325"
-                                     "i324"
                                      "i323"
                                      "i322"
-                                     "i321"
-                                     "i319"
+                                     "i320"
                                      "i318"
                                      "i316"
                                      "i314"
@@ -10797,17 +10872,17 @@
                                      "i260"
                                      "i258"
                                      "i256"
-                                     "i254"
+                                     "i255"
                                      "i253"
                                      "i251"
+                                     "i250"
                                      "i249"
                                      "i248"
                                      "i247"
-                                     "i246"
                                      "i245"
                                      "i243"
                                      "i241"
-                                     "i239"
+                                     "i238"
                                      "i236"
                                      "i234"
                                      "i232"
@@ -10833,70 +10908,70 @@
                                     ((top) (top) (top))
                                     ("i40" "i39" "i38")))
                                  (hygiene guile))
-                              #{mod 3584}#))))
-                  #{tmp 3574}#)
+                              #{mod 3598}#))))
+                  #{tmp 3588}#)
                 (syntax-violation
                   #f
                   "source expression failed to match any pattern"
-                  #{tmp 3573}#))))))
-      (#{global-extend 335}#
+                  #{tmp 3587}#))))))
+      (#{global-extend 339}#
         'module-ref
         '@@
-        (lambda (#{e 3587}# #{r 3588}# #{w 3589}#)
+        (lambda (#{e 3601}# #{r 3602}# #{w 3603}#)
           (letrec*
-            ((#{remodulate 3594}#
-               (lambda (#{x 3595}# #{mod 3596}#)
-                 (if (pair? #{x 3595}#)
-                   (cons (#{remodulate 3594}#
-                           (car #{x 3595}#)
-                           #{mod 3596}#)
-                         (#{remodulate 3594}#
-                           (cdr #{x 3595}#)
-                           #{mod 3596}#))
-                   (if (#{syntax-object? 305}# #{x 3595}#)
-                     (#{make-syntax-object 303}#
-                       (#{remodulate 3594}#
-                         (#{syntax-object-expression 307}# #{x 3595}#)
-                         #{mod 3596}#)
-                       (#{syntax-object-wrap 309}# #{x 3595}#)
-                       #{mod 3596}#)
-                     (if (vector? #{x 3595}#)
+            ((#{remodulate 3608}#
+               (lambda (#{x 3609}# #{mod 3610}#)
+                 (if (pair? #{x 3609}#)
+                   (cons (#{remodulate 3608}#
+                           (car #{x 3609}#)
+                           #{mod 3610}#)
+                         (#{remodulate 3608}#
+                           (cdr #{x 3609}#)
+                           #{mod 3610}#))
+                   (if (#{syntax-object? 309}# #{x 3609}#)
+                     (#{make-syntax-object 307}#
+                       (#{remodulate 3608}#
+                         (#{syntax-object-expression 311}# #{x 3609}#)
+                         #{mod 3610}#)
+                       (#{syntax-object-wrap 313}# #{x 3609}#)
+                       #{mod 3610}#)
+                     (if (vector? #{x 3609}#)
                        (begin
-                         (let ((#{n 3607}# (vector-length #{x 3595}#)))
+                         (let ((#{n 3621}# (vector-length #{x 3609}#)))
                            (begin
-                             (let ((#{v 3609}# (make-vector #{n 3607}#)))
+                             (let ((#{v 3623}# (make-vector #{n 3621}#)))
                                (letrec*
-                                 ((#{loop 3612}#
-                                    (lambda (#{i 3613}#)
-                                      (if (= #{i 3613}# #{n 3607}#)
-                                        (begin (if #f #f) #{v 3609}#)
+                                 ((#{loop 3626}#
+                                    (lambda (#{i 3627}#)
+                                      (if (= #{i 3627}# #{n 3621}#)
+                                        (begin (if #f #f) #{v 3623}#)
                                         (begin
                                           (vector-set!
-                                            #{v 3609}#
-                                            #{i 3613}#
-                                            (#{remodulate 3594}#
+                                            #{v 3623}#
+                                            #{i 3627}#
+                                            (#{remodulate 3608}#
                                               (vector-ref
-                                                #{x 3595}#
-                                                #{i 3613}#)
-                                              #{mod 3596}#))
-                                          (#{loop 3612}#
-                                            (#{1+}# #{i 3613}#)))))))
-                                 (begin (#{loop 3612}# 0)))))))
-                       #{x 3595}#))))))
+                                                #{x 3609}#
+                                                #{i 3627}#)
+                                              #{mod 3610}#))
+                                          (#{loop 3626}#
+                                            (#{1+}# #{i 3627}#)))))))
+                                 (begin (#{loop 3626}# 0)))))))
+                       #{x 3609}#))))))
             (begin
-              (let ((#{tmp 3619}# #{e 3587}#))
-                (let ((#{tmp 3620}#
-                        ($sc-dispatch #{tmp 3619}# '(_ each-any any))))
-                  (if (if #{tmp 3620}#
+              (let ((#{tmp 3633}# #{e 3601}#))
+                (let ((#{tmp 3634}#
+                        ($sc-dispatch #{tmp 3633}# '(_ each-any any))))
+                  (if (if #{tmp 3634}#
                         (@apply
-                          (lambda (#{mod 3623}# #{exp 3624}#)
-                            (and-map #{id? 339}# #{mod 3623}#))
-                          #{tmp 3620}#)
+                          (lambda (#{mod 3637}# #{exp 3638}#)
+                            (and-map #{id? 343}# #{mod 3637}#))
+                          #{tmp 3634}#)
                         #f)
                     (@apply
-                      (lambda (#{mod 3628}# #{exp 3629}#)
+                      (lambda (#{mod 3642}# #{exp 3643}#)
                         (begin
-                          (let ((#{mod 3631}#
+                          (let ((#{mod 3645}#
                                   (syntax->datum
                                     (cons '#(syntax-object
                                              private
@@ -10904,15 +10979,15 @@
                                               #(ribcage
                                                 #(mod exp)
                                                 #((top) (top))
-                                                #("i3626" "i3627"))
+                                                #("i3640" "i3641"))
                                               #(ribcage
                                                 (remodulate)
                                                 ((top))
-                                                ("i3593"))
+                                                ("i3607"))
                                               #(ribcage
                                                 #(e r w)
                                                 #((top) (top) (top))
-                                                #("i3590" "i3591" "i3592"))
+                                                #("i3604" "i3605" "i3606"))
                                               #(ribcage
                                                 (lambda-var-list
                                                   gen-var
@@ -10927,7 +11002,7 @@
                                                   chi-local-syntax
                                                   chi-body
                                                   chi-macro
-                                                  chi-application
+                                                  chi-call
                                                   chi-expr
                                                   chi
                                                   syntax-type
@@ -11005,6 +11080,7 @@
                                                   build-sequence
                                                   build-data
                                                   build-primref
+                                                  build-primcall
                                                   build-lambda-case
                                                   build-case-lambda
                                                   build-simple-lambda
@@ -11016,7 +11092,7 @@
                                                   build-lexical-reference
                                                   build-dynlet
                                                   build-conditional
-                                                  build-application
+                                                  build-call
                                                   build-void
                                                   maybe-name-value!
                                                   decorate-source
@@ -11038,7 +11114,8 @@
                                                   make-lambda-case
                                                   make-lambda
                                                   make-sequence
-                                                  make-application
+                                                  make-primcall
+                                                  make-call
                                                   make-conditional
                                                   make-toplevel-define
                                                   make-toplevel-set
@@ -11185,8 +11262,12 @@
                                                  (top)
                                                  (top)
                                                  (top)
+                                                 (top)
+                                                 (top)
                                                  (top))
-                                                ("i448"
+                                                ("i452"
+                                                 "i450"
+                                                 "i448"
                                                  "i446"
                                                  "i444"
                                                  "i442"
@@ -11219,14 +11300,14 @@
                                                  "i388"
                                                  "i386"
                                                  "i384"
+                                                 "i383"
                                                  "i382"
                                                  "i380"
                                                  "i379"
                                                  "i378"
+                                                 "i377"
                                                  "i376"
-                                                 "i375"
                                                  "i374"
-                                                 "i373"
                                                  "i372"
                                                  "i370"
                                                  "i368"
@@ -11234,33 +11315,33 @@
                                                  "i364"
                                                  "i362"
                                                  "i360"
-                                                 "i358"
-                                                 "i356"
+                                                 "i357"
+                                                 "i355"
+                                                 "i354"
                                                  "i353"
+                                                 "i352"
                                                  "i351"
                                                  "i350"
                                                  "i349"
                                                  "i348"
                                                  "i347"
-                                                 "i346"
                                                  "i345"
                                                  "i344"
-                                                 "i343"
-                                                 "i341"
+                                                 "i342"
                                                  "i340"
                                                  "i338"
                                                  "i336"
                                                  "i334"
                                                  "i332"
                                                  "i330"
+                                                 "i329"
                                                  "i328"
+                                                 "i327"
                                                  "i326"
                                                  "i325"
-                                                 "i324"
                                                  "i323"
                                                  "i322"
-                                                 "i321"
-                                                 "i319"
+                                                 "i320"
                                                  "i318"
                                                  "i316"
                                                  "i314"
@@ -11293,17 +11374,17 @@
                                                  "i260"
                                                  "i258"
                                                  "i256"
-                                                 "i254"
+                                                 "i255"
                                                  "i253"
                                                  "i251"
+                                                 "i250"
                                                  "i249"
                                                  "i248"
                                                  "i247"
-                                                 "i246"
                                                  "i245"
                                                  "i243"
                                                  "i241"
-                                                 "i239"
+                                                 "i238"
                                                  "i236"
                                                  "i234"
                                                  "i232"
@@ -11329,169 +11410,169 @@
                                                 ((top) (top) (top))
                                                 ("i40" "i39" "i38")))
                                              (hygiene guile))
-                                          #{mod 3628}#))))
+                                          #{mod 3642}#))))
                             (values
-                              (#{remodulate 3594}# #{exp 3629}# #{mod 3631}#)
-                              #{r 3588}#
-                              #{w 3589}#
-                              (#{source-annotation 320}# #{exp 3629}#)
-                              #{mod 3631}#))))
-                      #{tmp 3620}#)
+                              (#{remodulate 3608}# #{exp 3643}# #{mod 3645}#)
+                              #{r 3602}#
+                              #{w 3603}#
+                              (#{source-annotation 324}# #{exp 3643}#)
+                              #{mod 3645}#))))
+                      #{tmp 3634}#)
                     (syntax-violation
                       #f
                       "source expression failed to match any pattern"
-                      #{tmp 3619}#))))))))
-      (#{global-extend 335}#
+                      #{tmp 3633}#))))))))
+      (#{global-extend 339}#
         'core
         'if
-        (lambda (#{e 3633}#
-                 #{r 3634}#
-                 #{w 3635}#
-                 #{s 3636}#
-                 #{mod 3637}#)
-          (let ((#{tmp 3643}# #{e 3633}#))
-            (let ((#{tmp 3644}#
-                    ($sc-dispatch #{tmp 3643}# '(_ any any))))
-              (if #{tmp 3644}#
+        (lambda (#{e 3647}#
+                 #{r 3648}#
+                 #{w 3649}#
+                 #{s 3650}#
+                 #{mod 3651}#)
+          (let ((#{tmp 3657}# #{e 3647}#))
+            (let ((#{tmp 3658}#
+                    ($sc-dispatch #{tmp 3657}# '(_ any any))))
+              (if #{tmp 3658}#
                 (@apply
-                  (lambda (#{test 3647}# #{then 3648}#)
-                    (#{build-conditional 267}#
-                      #{s 3636}#
-                      (#{chi 419}#
-                        #{test 3647}#
-                        #{r 3634}#
-                        #{w 3635}#
-                        #{mod 3637}#)
-                      (#{chi 419}#
-                        #{then 3648}#
-                        #{r 3634}#
-                        #{w 3635}#
-                        #{mod 3637}#)
-                      (#{build-void 263}# #f)))
-                  #{tmp 3644}#)
-                (let ((#{tmp 3650}#
-                        ($sc-dispatch #{tmp 3643}# '(_ any any any))))
-                  (if #{tmp 3650}#
+                  (lambda (#{test 3661}# #{then 3662}#)
+                    (#{build-conditional 269}#
+                      #{s 3650}#
+                      (#{chi 423}#
+                        #{test 3661}#
+                        #{r 3648}#
+                        #{w 3649}#
+                        #{mod 3651}#)
+                      (#{chi 423}#
+                        #{then 3662}#
+                        #{r 3648}#
+                        #{w 3649}#
+                        #{mod 3651}#)
+                      (#{build-void 265}# #f)))
+                  #{tmp 3658}#)
+                (let ((#{tmp 3664}#
+                        ($sc-dispatch #{tmp 3657}# '(_ any any any))))
+                  (if #{tmp 3664}#
                     (@apply
-                      (lambda (#{test 3654}# #{then 3655}# #{else 3656}#)
-                        (#{build-conditional 267}#
-                          #{s 3636}#
-                          (#{chi 419}#
-                            #{test 3654}#
-                            #{r 3634}#
-                            #{w 3635}#
-                            #{mod 3637}#)
-                          (#{chi 419}#
-                            #{then 3655}#
-                            #{r 3634}#
-                            #{w 3635}#
-                            #{mod 3637}#)
-                          (#{chi 419}#
-                            #{else 3656}#
-                            #{r 3634}#
-                            #{w 3635}#
-                            #{mod 3637}#)))
-                      #{tmp 3650}#)
+                      (lambda (#{test 3668}# #{then 3669}# #{else 3670}#)
+                        (#{build-conditional 269}#
+                          #{s 3650}#
+                          (#{chi 423}#
+                            #{test 3668}#
+                            #{r 3648}#
+                            #{w 3649}#
+                            #{mod 3651}#)
+                          (#{chi 423}#
+                            #{then 3669}#
+                            #{r 3648}#
+                            #{w 3649}#
+                            #{mod 3651}#)
+                          (#{chi 423}#
+                            #{else 3670}#
+                            #{r 3648}#
+                            #{w 3649}#
+                            #{mod 3651}#)))
+                      #{tmp 3664}#)
                     (syntax-violation
                       #f
                       "source expression failed to match any pattern"
-                      #{tmp 3643}#))))))))
-      (#{global-extend 335}#
+                      #{tmp 3657}#))))))))
+      (#{global-extend 339}#
         'core
         'with-fluids
-        (lambda (#{e 3657}#
-                 #{r 3658}#
-                 #{w 3659}#
-                 #{s 3660}#
-                 #{mod 3661}#)
-          (let ((#{tmp 3667}# #{e 3657}#))
-            (let ((#{tmp 3668}#
+        (lambda (#{e 3671}#
+                 #{r 3672}#
+                 #{w 3673}#
+                 #{s 3674}#
+                 #{mod 3675}#)
+          (let ((#{tmp 3681}# #{e 3671}#))
+            (let ((#{tmp 3682}#
                     ($sc-dispatch
-                      #{tmp 3667}#
+                      #{tmp 3681}#
                       '(_ #(each (any any)) any . each-any))))
-              (if #{tmp 3668}#
+              (if #{tmp 3682}#
                 (@apply
-                  (lambda (#{fluid 3673}#
-                           #{val 3674}#
-                           #{b 3675}#
-                           #{b* 3676}#)
-                    (#{build-dynlet 269}#
-                      #{s 3660}#
-                      (map (lambda (#{x 3677}#)
-                             (#{chi 419}#
-                               #{x 3677}#
-                               #{r 3658}#
-                               #{w 3659}#
-                               #{mod 3661}#))
-                           #{fluid 3673}#)
-                      (map (lambda (#{x 3680}#)
-                             (#{chi 419}#
-                               #{x 3680}#
-                               #{r 3658}#
-                               #{w 3659}#
-                               #{mod 3661}#))
-                           #{val 3674}#)
-                      (#{chi-body 427}#
-                        (cons #{b 3675}# #{b* 3676}#)
-                        (#{source-wrap 407}#
-                          #{e 3657}#
-                          #{w 3659}#
-                          #{s 3660}#
-                          #{mod 3661}#)
-                        #{r 3658}#
-                        #{w 3659}#
-                        #{mod 3661}#)))
-                  #{tmp 3668}#)
+                  (lambda (#{fluid 3687}#
+                           #{val 3688}#
+                           #{b 3689}#
+                           #{b* 3690}#)
+                    (#{build-dynlet 271}#
+                      #{s 3674}#
+                      (map (lambda (#{x 3691}#)
+                             (#{chi 423}#
+                               #{x 3691}#
+                               #{r 3672}#
+                               #{w 3673}#
+                               #{mod 3675}#))
+                           #{fluid 3687}#)
+                      (map (lambda (#{x 3694}#)
+                             (#{chi 423}#
+                               #{x 3694}#
+                               #{r 3672}#
+                               #{w 3673}#
+                               #{mod 3675}#))
+                           #{val 3688}#)
+                      (#{chi-body 431}#
+                        (cons #{b 3689}# #{b* 3690}#)
+                        (#{source-wrap 411}#
+                          #{e 3671}#
+                          #{w 3673}#
+                          #{s 3674}#
+                          #{mod 3675}#)
+                        #{r 3672}#
+                        #{w 3673}#
+                        #{mod 3675}#)))
+                  #{tmp 3682}#)
                 (syntax-violation
                   #f
                   "source expression failed to match any pattern"
-                  #{tmp 3667}#))))))
-      (#{global-extend 335}# 'begin 'begin '())
-      (#{global-extend 335}# 'define 'define '())
-      (#{global-extend 335}#
+                  #{tmp 3681}#))))))
+      (#{global-extend 339}# 'begin 'begin '())
+      (#{global-extend 339}# 'define 'define '())
+      (#{global-extend 339}#
         'define-syntax
         'define-syntax
         '())
-      (#{global-extend 335}# 'eval-when 'eval-when '())
-      (#{global-extend 335}#
+      (#{global-extend 339}# 'eval-when 'eval-when '())
+      (#{global-extend 339}#
         'core
         'syntax-case
         (letrec*
-          ((#{convert-pattern 3685}#
-             (lambda (#{pattern 3692}# #{keys 3693}#)
+          ((#{convert-pattern 3699}#
+             (lambda (#{pattern 3706}# #{keys 3707}#)
                (letrec*
-                 ((#{cvt* 3697}#
-                    (lambda (#{p* 3700}# #{n 3701}# #{ids 3702}#)
-                      (if (null? #{p* 3700}#)
-                        (values '() #{ids 3702}#)
+                 ((#{cvt* 3711}#
+                    (lambda (#{p* 3714}# #{n 3715}# #{ids 3716}#)
+                      (if (null? #{p* 3714}#)
+                        (values '() #{ids 3716}#)
                         (call-with-values
                           (lambda ()
-                            (#{cvt* 3697}#
-                              (cdr #{p* 3700}#)
-                              #{n 3701}#
-                              #{ids 3702}#))
-                          (lambda (#{y 3706}# #{ids 3707}#)
+                            (#{cvt* 3711}#
+                              (cdr #{p* 3714}#)
+                              #{n 3715}#
+                              #{ids 3716}#))
+                          (lambda (#{y 3720}# #{ids 3721}#)
                             (call-with-values
                               (lambda ()
-                                (#{cvt 3699}#
-                                  (car #{p* 3700}#)
-                                  #{n 3701}#
-                                  #{ids 3707}#))
-                              (lambda (#{x 3710}# #{ids 3711}#)
+                                (#{cvt 3713}#
+                                  (car #{p* 3714}#)
+                                  #{n 3715}#
+                                  #{ids 3721}#))
+                              (lambda (#{x 3724}# #{ids 3725}#)
                                 (values
-                                  (cons #{x 3710}# #{y 3706}#)
-                                  #{ids 3711}#))))))))
-                  (#{cvt 3699}#
-                    (lambda (#{p 3714}# #{n 3715}# #{ids 3716}#)
-                      (if (#{id? 339}# #{p 3714}#)
-                        (if (#{bound-id-member? 403}#
-                              #{p 3714}#
-                              #{keys 3693}#)
+                                  (cons #{x 3724}# #{y 3720}#)
+                                  #{ids 3725}#))))))))
+                  (#{cvt 3713}#
+                    (lambda (#{p 3728}# #{n 3729}# #{ids 3730}#)
+                      (if (#{id? 343}# #{p 3728}#)
+                        (if (#{bound-id-member? 407}#
+                              #{p 3728}#
+                              #{keys 3707}#)
                           (values
-                            (vector 'free-id #{p 3714}#)
-                            #{ids 3716}#)
-                          (if (#{free-id=? 395}#
-                                #{p 3714}#
+                            (vector 'free-id #{p 3728}#)
+                            #{ids 3730}#)
+                          (if (#{free-id=? 399}#
+                                #{p 3728}#
                                 '#(syntax-object
                                    _
                                    ((top)
@@ -11499,22 +11580,22 @@
                                     #(ribcage
                                       #(p n ids)
                                       #((top) (top) (top))
-                                      #("i3717" "i3718" "i3719"))
+                                      #("i3731" "i3732" "i3733"))
                                     #(ribcage
                                       (cvt cvt*)
                                       ((top) (top))
-                                      ("i3698" "i3696"))
+                                      ("i3712" "i3710"))
                                     #(ribcage
                                       #(pattern keys)
                                       #((top) (top))
-                                      #("i3694" "i3695"))
+                                      #("i3708" "i3709"))
                                     #(ribcage
                                       (gen-syntax-case
                                         gen-clause
                                         build-dispatch-call
                                         convert-pattern)
                                       ((top) (top) (top) (top))
-                                      ("i3690" "i3688" "i3686" "i3684"))
+                                      ("i3704" "i3702" "i3700" "i3698"))
                                     #(ribcage
                                       (lambda-var-list
                                         gen-var
@@ -11529,7 +11610,7 @@
                                         chi-local-syntax
                                         chi-body
                                         chi-macro
-                                        chi-application
+                                        chi-call
                                         chi-expr
                                         chi
                                         syntax-type
@@ -11607,6 +11688,7 @@
                                         build-sequence
                                         build-data
                                         build-primref
+                                        build-primcall
                                         build-lambda-case
                                         build-case-lambda
                                         build-simple-lambda
@@ -11618,7 +11700,7 @@
                                         build-lexical-reference
                                         build-dynlet
                                         build-conditional
-                                        build-application
+                                        build-call
                                         build-void
                                         maybe-name-value!
                                         decorate-source
@@ -11640,7 +11722,8 @@
                                         make-lambda-case
                                         make-lambda
                                         make-sequence
-                                        make-application
+                                        make-primcall
+                                        make-call
                                         make-conditional
                                         make-toplevel-define
                                         make-toplevel-set
@@ -11787,8 +11870,12 @@
                                        (top)
                                        (top)
                                        (top)
+                                       (top)
+                                       (top)
                                        (top))
-                                      ("i448"
+                                      ("i452"
+                                       "i450"
+                                       "i448"
                                        "i446"
                                        "i444"
                                        "i442"
@@ -11821,14 +11908,14 @@
                                        "i388"
                                        "i386"
                                        "i384"
+                                       "i383"
                                        "i382"
                                        "i380"
                                        "i379"
                                        "i378"
+                                       "i377"
                                        "i376"
-                                       "i375"
                                        "i374"
-                                       "i373"
                                        "i372"
                                        "i370"
                                        "i368"
@@ -11836,33 +11923,33 @@
                                        "i364"
                                        "i362"
                                        "i360"
-                                       "i358"
-                                       "i356"
+                                       "i357"
+                                       "i355"
+                                       "i354"
                                        "i353"
+                                       "i352"
                                        "i351"
                                        "i350"
                                        "i349"
                                        "i348"
                                        "i347"
-                                       "i346"
                                        "i345"
                                        "i344"
-                                       "i343"
-                                       "i341"
+                                       "i342"
                                        "i340"
                                        "i338"
                                        "i336"
                                        "i334"
                                        "i332"
                                        "i330"
+                                       "i329"
                                        "i328"
+                                       "i327"
                                        "i326"
                                        "i325"
-                                       "i324"
                                        "i323"
                                        "i322"
-                                       "i321"
-                                       "i319"
+                                       "i320"
                                        "i318"
                                        "i316"
                                        "i314"
@@ -11895,17 +11982,17 @@
                                        "i260"
                                        "i258"
                                        "i256"
-                                       "i254"
+                                       "i255"
                                        "i253"
                                        "i251"
+                                       "i250"
                                        "i249"
                                        "i248"
                                        "i247"
-                                       "i246"
                                        "i245"
                                        "i243"
                                        "i241"
-                                       "i239"
+                                       "i238"
                                        "i236"
                                        "i234"
                                        "i232"
@@ -11931,322 +12018,322 @@
                                       ((top) (top) (top))
                                       ("i40" "i39" "i38")))
                                    (hygiene guile)))
-                            (values '_ #{ids 3716}#)
+                            (values '_ #{ids 3730}#)
                             (values
                               'any
-                              (cons (cons #{p 3714}# #{n 3715}#)
-                                    #{ids 3716}#))))
-                        (let ((#{tmp 3725}# #{p 3714}#))
-                          (let ((#{tmp 3726}#
-                                  ($sc-dispatch #{tmp 3725}# '(any any))))
-                            (if (if #{tmp 3726}#
+                              (cons (cons #{p 3728}# #{n 3729}#)
+                                    #{ids 3730}#))))
+                        (let ((#{tmp 3739}# #{p 3728}#))
+                          (let ((#{tmp 3740}#
+                                  ($sc-dispatch #{tmp 3739}# '(any any))))
+                            (if (if #{tmp 3740}#
                                   (@apply
-                                    (lambda (#{x 3729}# #{dots 3730}#)
-                                      (#{ellipsis? 435}# #{dots 3730}#))
-                                    #{tmp 3726}#)
+                                    (lambda (#{x 3743}# #{dots 3744}#)
+                                      (#{ellipsis? 439}# #{dots 3744}#))
+                                    #{tmp 3740}#)
                                   #f)
                               (@apply
-                                (lambda (#{x 3733}# #{dots 3734}#)
+                                (lambda (#{x 3747}# #{dots 3748}#)
                                   (call-with-values
                                     (lambda ()
-                                      (#{cvt 3699}#
-                                        #{x 3733}#
-                                        (#{1+}# #{n 3715}#)
-                                        #{ids 3716}#))
-                                    (lambda (#{p 3736}# #{ids 3737}#)
+                                      (#{cvt 3713}#
+                                        #{x 3747}#
+                                        (#{1+}# #{n 3729}#)
+                                        #{ids 3730}#))
+                                    (lambda (#{p 3750}# #{ids 3751}#)
                                       (values
-                                        (if (eq? #{p 3736}# 'any)
+                                        (if (eq? #{p 3750}# 'any)
                                           'each-any
-                                          (vector 'each #{p 3736}#))
-                                        #{ids 3737}#))))
-                                #{tmp 3726}#)
-                              (let ((#{tmp 3740}#
+                                          (vector 'each #{p 3750}#))
+                                        #{ids 3751}#))))
+                                #{tmp 3740}#)
+                              (let ((#{tmp 3754}#
                                       ($sc-dispatch
-                                        #{tmp 3725}#
+                                        #{tmp 3739}#
                                         '(any any . each-any))))
-                                (if (if #{tmp 3740}#
+                                (if (if #{tmp 3754}#
                                       (@apply
-                                        (lambda (#{x 3744}#
-                                                 #{dots 3745}#
-                                                 #{ys 3746}#)
-                                          (#{ellipsis? 435}# #{dots 3745}#))
-                                        #{tmp 3740}#)
+                                        (lambda (#{x 3758}#
+                                                 #{dots 3759}#
+                                                 #{ys 3760}#)
+                                          (#{ellipsis? 439}# #{dots 3759}#))
+                                        #{tmp 3754}#)
                                       #f)
                                   (@apply
-                                    (lambda (#{x 3750}#
-                                             #{dots 3751}#
-                                             #{ys 3752}#)
+                                    (lambda (#{x 3764}#
+                                             #{dots 3765}#
+                                             #{ys 3766}#)
                                       (call-with-values
                                         (lambda ()
-                                          (#{cvt* 3697}#
-                                            #{ys 3752}#
-                                            #{n 3715}#
-                                            #{ids 3716}#))
-                                        (lambda (#{ys 3754}# #{ids 3755}#)
+                                          (#{cvt* 3711}#
+                                            #{ys 3766}#
+                                            #{n 3729}#
+                                            #{ids 3730}#))
+                                        (lambda (#{ys 3768}# #{ids 3769}#)
                                           (call-with-values
                                             (lambda ()
-                                              (#{cvt 3699}#
-                                                #{x 3750}#
-                                                (#{1+}# #{n 3715}#)
-                                                #{ids 3755}#))
-                                            (lambda (#{x 3758}# #{ids 3759}#)
+                                              (#{cvt 3713}#
+                                                #{x 3764}#
+                                                (#{1+}# #{n 3729}#)
+                                                #{ids 3769}#))
+                                            (lambda (#{x 3772}# #{ids 3773}#)
                                               (values
                                                 (vector
                                                   'each+
-                                                  #{x 3758}#
-                                                  (reverse #{ys 3754}#)
+                                                  #{x 3772}#
+                                                  (reverse #{ys 3768}#)
                                                   '())
-                                                #{ids 3759}#))))))
-                                    #{tmp 3740}#)
-                                  (let ((#{tmp 3763}#
+                                                #{ids 3773}#))))))
+                                    #{tmp 3754}#)
+                                  (let ((#{tmp 3777}#
                                           ($sc-dispatch
-                                            #{tmp 3725}#
+                                            #{tmp 3739}#
                                             '(any . any))))
-                                    (if #{tmp 3763}#
+                                    (if #{tmp 3777}#
                                       (@apply
-                                        (lambda (#{x 3766}# #{y 3767}#)
+                                        (lambda (#{x 3780}# #{y 3781}#)
                                           (call-with-values
                                             (lambda ()
-                                              (#{cvt 3699}#
-                                                #{y 3767}#
-                                                #{n 3715}#
-                                                #{ids 3716}#))
-                                            (lambda (#{y 3768}# #{ids 3769}#)
+                                              (#{cvt 3713}#
+                                                #{y 3781}#
+                                                #{n 3729}#
+                                                #{ids 3730}#))
+                                            (lambda (#{y 3782}# #{ids 3783}#)
                                               (call-with-values
                                                 (lambda ()
-                                                  (#{cvt 3699}#
-                                                    #{x 3766}#
-                                                    #{n 3715}#
-                                                    #{ids 3769}#))
-                                                (lambda (#{x 3772}#
-                                                         #{ids 3773}#)
+                                                  (#{cvt 3713}#
+                                                    #{x 3780}#
+                                                    #{n 3729}#
+                                                    #{ids 3783}#))
+                                                (lambda (#{x 3786}#
+                                                         #{ids 3787}#)
                                                   (values
-                                                    (cons #{x 3772}#
-                                                          #{y 3768}#)
-                                                    #{ids 3773}#))))))
-                                        #{tmp 3763}#)
-                                      (let ((#{tmp 3776}#
-                                              ($sc-dispatch #{tmp 3725}# '())))
-                                        (if #{tmp 3776}#
+                                                    (cons #{x 3786}#
+                                                          #{y 3782}#)
+                                                    #{ids 3787}#))))))
+                                        #{tmp 3777}#)
+                                      (let ((#{tmp 3790}#
+                                              ($sc-dispatch #{tmp 3739}# '())))
+                                        (if #{tmp 3790}#
                                           (@apply
                                             (lambda ()
-                                              (values '() #{ids 3716}#))
-                                            #{tmp 3776}#)
-                                          (let ((#{tmp 3777}#
+                                              (values '() #{ids 3730}#))
+                                            #{tmp 3790}#)
+                                          (let ((#{tmp 3791}#
                                                   ($sc-dispatch
-                                                    #{tmp 3725}#
+                                                    #{tmp 3739}#
                                                     '#(vector each-any))))
-                                            (if #{tmp 3777}#
+                                            (if #{tmp 3791}#
                                               (@apply
-                                                (lambda (#{x 3779}#)
+                                                (lambda (#{x 3793}#)
                                                   (call-with-values
                                                     (lambda ()
-                                                      (#{cvt 3699}#
-                                                        #{x 3779}#
-                                                        #{n 3715}#
-                                                        #{ids 3716}#))
-                                                    (lambda (#{p 3781}#
-                                                             #{ids 3782}#)
+                                                      (#{cvt 3713}#
+                                                        #{x 3793}#
+                                                        #{n 3729}#
+                                                        #{ids 3730}#))
+                                                    (lambda (#{p 3795}#
+                                                             #{ids 3796}#)
                                                       (values
                                                         (vector
                                                           'vector
-                                                          #{p 3781}#)
-                                                        #{ids 3782}#))))
-                                                #{tmp 3777}#)
-                                              (let ((#{x 3786}# #{tmp 3725}#))
+                                                          #{p 3795}#)
+                                                        #{ids 3796}#))))
+                                                #{tmp 3791}#)
+                                              (let ((#{x 3800}# #{tmp 3739}#))
                                                 (values
                                                   (vector
                                                     'atom
-                                                    (#{strip 445}#
-                                                      #{p 3714}#
+                                                    (#{strip 449}#
+                                                      #{p 3728}#
                                                       '(())))
-                                                  #{ids 3716}#)))))))))))))))))
-                 (begin (#{cvt 3699}# #{pattern 3692}# 0 '())))))
-           (#{build-dispatch-call 3687}#
-             (lambda (#{pvars 3788}#
-                      #{exp 3789}#
-                      #{y 3790}#
-                      #{r 3791}#
-                      #{mod 3792}#)
+                                                  #{ids 3730}#)))))))))))))))))
+                 (begin (#{cvt 3713}# #{pattern 3706}# 0 '())))))
+           (#{build-dispatch-call 3701}#
+             (lambda (#{pvars 3802}#
+                      #{exp 3803}#
+                      #{y 3804}#
+                      #{r 3805}#
+                      #{mod 3806}#)
                (begin
-                 (map cdr #{pvars 3788}#)
-                 (let ((#{ids 3800}# (map car #{pvars 3788}#)))
+                 (map cdr #{pvars 3802}#)
+                 (let ((#{ids 3814}# (map car #{pvars 3802}#)))
                    (begin
-                     (let ((#{labels 3804}#
-                             (#{gen-labels 354}# #{ids 3800}#))
-                           (#{new-vars 3805}#
-                             (map #{gen-var 447}# #{ids 3800}#)))
-                       (#{build-application 265}#
+                     (let ((#{labels 3818}#
+                             (#{gen-labels 358}# #{ids 3814}#))
+                           (#{new-vars 3819}#
+                             (map #{gen-var 451}# #{ids 3814}#)))
+                       (#{build-primcall 291}#
                          #f
-                         (#{build-primref 289}# #f 'apply)
-                         (list (#{build-simple-lambda 283}#
+                         'apply
+                         (list (#{build-simple-lambda 285}#
                                  #f
-                                 (map syntax->datum #{ids 3800}#)
+                                 (map syntax->datum #{ids 3814}#)
                                  #f
-                                 #{new-vars 3805}#
+                                 #{new-vars 3819}#
                                  '()
-                                 (#{chi 419}#
-                                   #{exp 3789}#
-                                   (#{extend-env 327}#
-                                     #{labels 3804}#
-                                     (map (lambda (#{var 3809}# #{level 3810}#)
+                                 (#{chi 423}#
+                                   #{exp 3803}#
+                                   (#{extend-env 331}#
+                                     #{labels 3818}#
+                                     (map (lambda (#{var 3822}# #{level 3823}#)
                                             (cons 'syntax
-                                                  (cons #{var 3809}#
-                                                        #{level 3810}#)))
-                                          #{new-vars 3805}#
-                                          (map cdr #{pvars 3788}#))
-                                     #{r 3791}#)
-                                   (#{make-binding-wrap 383}#
-                                     #{ids 3800}#
-                                     #{labels 3804}#
+                                                  (cons #{var 3822}#
+                                                        #{level 3823}#)))
+                                          #{new-vars 3819}#
+                                          (map cdr #{pvars 3802}#))
+                                     #{r 3805}#)
+                                   (#{make-binding-wrap 387}#
+                                     #{ids 3814}#
+                                     #{labels 3818}#
                                      '(()))
-                                   #{mod 3792}#))
-                               #{y 3790}#))))))))
-           (#{gen-clause 3689}#
-             (lambda (#{x 3816}#
-                      #{keys 3817}#
-                      #{clauses 3818}#
-                      #{r 3819}#
-                      #{pat 3820}#
-                      #{fender 3821}#
-                      #{exp 3822}#
-                      #{mod 3823}#)
+                                   #{mod 3806}#))
+                               #{y 3804}#))))))))
+           (#{gen-clause 3703}#
+             (lambda (#{x 3829}#
+                      #{keys 3830}#
+                      #{clauses 3831}#
+                      #{r 3832}#
+                      #{pat 3833}#
+                      #{fender 3834}#
+                      #{exp 3835}#
+                      #{mod 3836}#)
                (call-with-values
                  (lambda ()
-                   (#{convert-pattern 3685}#
-                     #{pat 3820}#
-                     #{keys 3817}#))
-                 (lambda (#{p 3832}# #{pvars 3833}#)
-                   (if (not (#{distinct-bound-ids? 401}#
-                              (map car #{pvars 3833}#)))
+                   (#{convert-pattern 3699}#
+                     #{pat 3833}#
+                     #{keys 3830}#))
+                 (lambda (#{p 3845}# #{pvars 3846}#)
+                   (if (not (#{distinct-bound-ids? 405}#
+                              (map car #{pvars 3846}#)))
                      (syntax-violation
                        'syntax-case
                        "duplicate pattern variable"
-                       #{pat 3820}#)
+                       #{pat 3833}#)
                      (if (not (and-map
-                                (lambda (#{x 3840}#)
-                                  (not (#{ellipsis? 435}# (car #{x 3840}#))))
-                                #{pvars 3833}#))
+                                (lambda (#{x 3853}#)
+                                  (not (#{ellipsis? 439}# (car #{x 3853}#))))
+                                #{pvars 3846}#))
                        (syntax-violation
                          'syntax-case
                          "misplaced ellipsis"
-                         #{pat 3820}#)
+                         #{pat 3833}#)
                        (begin
-                         (let ((#{y 3844}# (#{gen-var 447}# 'tmp)))
-                           (#{build-application 265}#
+                         (let ((#{y 3857}# (#{gen-var 451}# 'tmp)))
+                           (#{build-call 267}#
                              #f
-                             (#{build-simple-lambda 283}#
+                             (#{build-simple-lambda 285}#
                                #f
                                (list 'tmp)
                                #f
-                               (list #{y 3844}#)
+                               (list #{y 3857}#)
                                '()
                                (begin
-                                 (let ((#{y 3848}#
-                                         (#{build-lexical-reference 271}#
+                                 (let ((#{y 3861}#
+                                         (#{build-lexical-reference 273}#
                                            'value
                                            #f
                                            'tmp
-                                           #{y 3844}#)))
-                                   (#{build-conditional 267}#
+                                           #{y 3857}#)))
+                                   (#{build-conditional 269}#
                                      #f
-                                     (let ((#{tmp 3851}# #{fender 3821}#))
-                                       (let ((#{tmp 3852}#
+                                     (let ((#{tmp 3864}# #{fender 3834}#))
+                                       (let ((#{tmp 3865}#
                                                ($sc-dispatch
-                                                 #{tmp 3851}#
+                                                 #{tmp 3864}#
                                                  '#(atom #t))))
-                                         (if #{tmp 3852}#
+                                         (if #{tmp 3865}#
                                            (@apply
-                                             (lambda () #{y 3848}#)
-                                             #{tmp 3852}#)
-                                           (let ((#{_ 3854}# #{tmp 3851}#))
-                                             (#{build-conditional 267}#
+                                             (lambda () #{y 3861}#)
+                                             #{tmp 3865}#)
+                                           (let ((#{_ 3867}# #{tmp 3864}#))
+                                             (#{build-conditional 269}#
                                                #f
-                                               #{y 3848}#
-                                               (#{build-dispatch-call 3687}#
-                                                 #{pvars 3833}#
-                                                 #{fender 3821}#
-                                                 #{y 3848}#
-                                                 #{r 3819}#
-                                                 #{mod 3823}#)
-                                               (#{build-data 291}# #f #f))))))
-                                     (#{build-dispatch-call 3687}#
-                                       #{pvars 3833}#
-                                       #{exp 3822}#
-                                       #{y 3848}#
-                                       #{r 3819}#
-                                       #{mod 3823}#)
-                                     (#{gen-syntax-case 3691}#
-                                       #{x 3816}#
-                                       #{keys 3817}#
-                                       #{clauses 3818}#
-                                       #{r 3819}#
-                                       #{mod 3823}#)))))
-                             (list (if (eq? #{p 3832}# 'any)
-                                     (#{build-application 265}#
+                                               #{y 3861}#
+                                               (#{build-dispatch-call 3701}#
+                                                 #{pvars 3846}#
+                                                 #{fender 3834}#
+                                                 #{y 3861}#
+                                                 #{r 3832}#
+                                                 #{mod 3836}#)
+                                               (#{build-data 295}# #f #f))))))
+                                     (#{build-dispatch-call 3701}#
+                                       #{pvars 3846}#
+                                       #{exp 3835}#
+                                       #{y 3861}#
+                                       #{r 3832}#
+                                       #{mod 3836}#)
+                                     (#{gen-syntax-case 3705}#
+                                       #{x 3829}#
+                                       #{keys 3830}#
+                                       #{clauses 3831}#
+                                       #{r 3832}#
+                                       #{mod 3836}#)))))
+                             (list (if (eq? #{p 3845}# 'any)
+                                     (#{build-primcall 291}#
                                        #f
-                                       (#{build-primref 289}# #f 'list)
-                                       (list #{x 3816}#))
-                                     (#{build-application 265}#
+                                       'list
+                                       (list #{x 3829}#))
+                                     (#{build-primcall 291}#
                                        #f
-                                       (#{build-primref 289}# #f '$sc-dispatch)
-                                       (list #{x 3816}#
-                                             (#{build-data 291}#
+                                       '$sc-dispatch
+                                       (list #{x 3829}#
+                                             (#{build-data 295}#
                                                #f
-                                               #{p 3832}#))))))))))))))
-           (#{gen-syntax-case 3691}#
-             (lambda (#{x 3862}#
-                      #{keys 3863}#
-                      #{clauses 3864}#
-                      #{r 3865}#
-                      #{mod 3866}#)
-               (if (null? #{clauses 3864}#)
-                 (#{build-application 265}#
+                                               #{p 3845}#))))))))))))))
+           (#{gen-syntax-case 3705}#
+             (lambda (#{x 3873}#
+                      #{keys 3874}#
+                      #{clauses 3875}#
+                      #{r 3876}#
+                      #{mod 3877}#)
+               (if (null? #{clauses 3875}#)
+                 (#{build-primcall 291}#
                    #f
-                   (#{build-primref 289}# #f 'syntax-violation)
-                   (list (#{build-data 291}# #f #f)
-                         (#{build-data 291}#
+                   'syntax-violation
+                   (list (#{build-data 295}# #f #f)
+                         (#{build-data 295}#
                            #f
                            "source expression failed to match any pattern")
-                         #{x 3862}#))
-                 (let ((#{tmp 3876}# (car #{clauses 3864}#)))
-                   (let ((#{tmp 3877}#
-                           ($sc-dispatch #{tmp 3876}# '(any any))))
-                     (if #{tmp 3877}#
+                         #{x 3873}#))
+                 (let ((#{tmp 3886}# (car #{clauses 3875}#)))
+                   (let ((#{tmp 3887}#
+                           ($sc-dispatch #{tmp 3886}# '(any any))))
+                     (if #{tmp 3887}#
                        (@apply
-                         (lambda (#{pat 3880}# #{exp 3881}#)
-                           (if (if (#{id? 339}# #{pat 3880}#)
+                         (lambda (#{pat 3890}# #{exp 3891}#)
+                           (if (if (#{id? 343}# #{pat 3890}#)
                                  (and-map
-                                   (lambda (#{x 3884}#)
-                                     (not (#{free-id=? 395}#
-                                            #{pat 3880}#
-                                            #{x 3884}#)))
+                                   (lambda (#{x 3894}#)
+                                     (not (#{free-id=? 399}#
+                                            #{pat 3890}#
+                                            #{x 3894}#)))
                                    (cons '#(syntax-object
                                             ...
                                             ((top)
                                              #(ribcage
                                                #(pat exp)
                                                #((top) (top))
-                                               #("i3878" "i3879"))
+                                               #("i3888" "i3889"))
                                              #(ribcage () () ())
                                              #(ribcage
                                                #(x keys clauses r mod)
                                                #((top) (top) (top) (top) (top))
-                                               #("i3867"
-                                                 "i3868"
-                                                 "i3869"
-                                                 "i3870"
-                                                 "i3871"))
+                                               #("i3878"
+                                                 "i3879"
+                                                 "i3880"
+                                                 "i3881"
+                                                 "i3882"))
                                              #(ribcage
                                                (gen-syntax-case
                                                  gen-clause
                                                  build-dispatch-call
                                                  convert-pattern)
                                                ((top) (top) (top) (top))
-                                               ("i3690"
-                                                "i3688"
-                                                "i3686"
-                                                "i3684"))
+                                               ("i3704"
+                                                "i3702"
+                                                "i3700"
+                                                "i3698"))
                                              #(ribcage
                                                (lambda-var-list
                                                  gen-var
@@ -12261,7 +12348,7 @@
                                                  chi-local-syntax
                                                  chi-body
                                                  chi-macro
-                                                 chi-application
+                                                 chi-call
                                                  chi-expr
                                                  chi
                                                  syntax-type
@@ -12339,6 +12426,7 @@
                                                  build-sequence
                                                  build-data
                                                  build-primref
+                                                 build-primcall
                                                  build-lambda-case
                                                  build-case-lambda
                                                  build-simple-lambda
@@ -12350,7 +12438,7 @@
                                                  build-lexical-reference
                                                  build-dynlet
                                                  build-conditional
-                                                 build-application
+                                                 build-call
                                                  build-void
                                                  maybe-name-value!
                                                  decorate-source
@@ -12372,7 +12460,8 @@
                                                  make-lambda-case
                                                  make-lambda
                                                  make-sequence
-                                                 make-application
+                                                 make-primcall
+                                                 make-call
                                                  make-conditional
                                                  make-toplevel-define
                                                  make-toplevel-set
@@ -12519,8 +12608,12 @@
                                                 (top)
                                                 (top)
                                                 (top)
+                                                (top)
+                                                (top)
                                                 (top))
-                                               ("i448"
+                                               ("i452"
+                                                "i450"
+                                                "i448"
                                                 "i446"
                                                 "i444"
                                                 "i442"
@@ -12553,14 +12646,14 @@
                                                 "i388"
                                                 "i386"
                                                 "i384"
+                                                "i383"
                                                 "i382"
                                                 "i380"
                                                 "i379"
                                                 "i378"
+                                                "i377"
                                                 "i376"
-                                                "i375"
                                                 "i374"
-                                                "i373"
                                                 "i372"
                                                 "i370"
                                                 "i368"
@@ -12568,33 +12661,33 @@
                                                 "i364"
                                                 "i362"
                                                 "i360"
-                                                "i358"
-                                                "i356"
+                                                "i357"
+                                                "i355"
+                                                "i354"
                                                 "i353"
+                                                "i352"
                                                 "i351"
                                                 "i350"
                                                 "i349"
                                                 "i348"
                                                 "i347"
-                                                "i346"
                                                 "i345"
                                                 "i344"
-                                                "i343"
-                                                "i341"
+                                                "i342"
                                                 "i340"
                                                 "i338"
                                                 "i336"
                                                 "i334"
                                                 "i332"
                                                 "i330"
+                                                "i329"
                                                 "i328"
+                                                "i327"
                                                 "i326"
                                                 "i325"
-                                                "i324"
                                                 "i323"
                                                 "i322"
-                                                "i321"
-                                                "i319"
+                                                "i320"
                                                 "i318"
                                                 "i316"
                                                 "i314"
@@ -12627,17 +12720,17 @@
                                                 "i260"
                                                 "i258"
                                                 "i256"
-                                                "i254"
+                                                "i255"
                                                 "i253"
                                                 "i251"
+                                                "i250"
                                                 "i249"
                                                 "i248"
                                                 "i247"
-                                                "i246"
                                                 "i245"
                                                 "i243"
                                                 "i241"
-                                                "i239"
+                                                "i238"
                                                 "i236"
                                                 "i234"
                                                 "i232"
@@ -12663,32 +12756,32 @@
                                                ((top) (top) (top))
                                                ("i40" "i39" "i38")))
                                             (hygiene guile))
-                                         #{keys 3863}#))
+                                         #{keys 3874}#))
                                  #f)
-                             (if (#{free-id=? 395}#
+                             (if (#{free-id=? 399}#
                                    '#(syntax-object
                                       pad
                                       ((top)
                                        #(ribcage
                                          #(pat exp)
                                          #((top) (top))
-                                         #("i3878" "i3879"))
+                                         #("i3888" "i3889"))
                                        #(ribcage () () ())
                                        #(ribcage
                                          #(x keys clauses r mod)
                                          #((top) (top) (top) (top) (top))
-                                         #("i3867"
-                                           "i3868"
-                                           "i3869"
-                                           "i3870"
-                                           "i3871"))
+                                         #("i3878"
+                                           "i3879"
+                                           "i3880"
+                                           "i3881"
+                                           "i3882"))
                                        #(ribcage
                                          (gen-syntax-case
                                            gen-clause
                                            build-dispatch-call
                                            convert-pattern)
                                          ((top) (top) (top) (top))
-                                         ("i3690" "i3688" "i3686" "i3684"))
+                                         ("i3704" "i3702" "i3700" "i3698"))
                                        #(ribcage
                                          (lambda-var-list
                                            gen-var
@@ -12703,7 +12796,7 @@
                                            chi-local-syntax
                                            chi-body
                                            chi-macro
-                                           chi-application
+                                           chi-call
                                            chi-expr
                                            chi
                                            syntax-type
@@ -12781,6 +12874,7 @@
                                            build-sequence
                                            build-data
                                            build-primref
+                                           build-primcall
                                            build-lambda-case
                                            build-case-lambda
                                            build-simple-lambda
@@ -12792,7 +12886,7 @@
                                            build-lexical-reference
                                            build-dynlet
                                            build-conditional
-                                           build-application
+                                           build-call
                                            build-void
                                            maybe-name-value!
                                            decorate-source
@@ -12814,7 +12908,8 @@
                                            make-lambda-case
                                            make-lambda
                                            make-sequence
-                                           make-application
+                                           make-primcall
+                                           make-call
                                            make-conditional
                                            make-toplevel-define
                                            make-toplevel-set
@@ -12961,8 +13056,12 @@
                                           (top)
                                           (top)
                                           (top)
+                                          (top)
+                                          (top)
                                           (top))
-                                         ("i448"
+                                         ("i452"
+                                          "i450"
+                                          "i448"
                                           "i446"
                                           "i444"
                                           "i442"
@@ -12995,14 +13094,14 @@
                                           "i388"
                                           "i386"
                                           "i384"
+                                          "i383"
                                           "i382"
                                           "i380"
                                           "i379"
                                           "i378"
+                                          "i377"
                                           "i376"
-                                          "i375"
                                           "i374"
-                                          "i373"
                                           "i372"
                                           "i370"
                                           "i368"
@@ -13010,33 +13109,33 @@
                                           "i364"
                                           "i362"
                                           "i360"
-                                          "i358"
-                                          "i356"
+                                          "i357"
+                                          "i355"
+                                          "i354"
                                           "i353"
+                                          "i352"
                                           "i351"
                                           "i350"
                                           "i349"
                                           "i348"
                                           "i347"
-                                          "i346"
                                           "i345"
                                           "i344"
-                                          "i343"
-                                          "i341"
+                                          "i342"
                                           "i340"
                                           "i338"
                                           "i336"
                                           "i334"
                                           "i332"
                                           "i330"
+                                          "i329"
                                           "i328"
+                                          "i327"
                                           "i326"
                                           "i325"
-                                          "i324"
                                           "i323"
                                           "i322"
-                                          "i321"
-                                          "i319"
+                                          "i320"
                                           "i318"
                                           "i316"
                                           "i314"
@@ -13069,17 +13168,17 @@
                                           "i260"
                                           "i258"
                                           "i256"
-                                          "i254"
+                                          "i255"
                                           "i253"
                                           "i251"
+                                          "i250"
                                           "i249"
                                           "i248"
                                           "i247"
-                                          "i246"
                                           "i245"
                                           "i243"
                                           "i241"
-                                          "i239"
+                                          "i238"
                                           "i236"
                                           "i234"
                                           "i232"
@@ -13111,23 +13210,23 @@
                                        #(ribcage
                                          #(pat exp)
                                          #((top) (top))
-                                         #("i3878" "i3879"))
+                                         #("i3888" "i3889"))
                                        #(ribcage () () ())
                                        #(ribcage
                                          #(x keys clauses r mod)
                                          #((top) (top) (top) (top) (top))
-                                         #("i3867"
-                                           "i3868"
-                                           "i3869"
-                                           "i3870"
-                                           "i3871"))
+                                         #("i3878"
+                                           "i3879"
+                                           "i3880"
+                                           "i3881"
+                                           "i3882"))
                                        #(ribcage
                                          (gen-syntax-case
                                            gen-clause
                                            build-dispatch-call
                                            convert-pattern)
                                          ((top) (top) (top) (top))
-                                         ("i3690" "i3688" "i3686" "i3684"))
+                                         ("i3704" "i3702" "i3700" "i3698"))
                                        #(ribcage
                                          (lambda-var-list
                                            gen-var
@@ -13142,7 +13241,7 @@
                                            chi-local-syntax
                                            chi-body
                                            chi-macro
-                                           chi-application
+                                           chi-call
                                            chi-expr
                                            chi
                                            syntax-type
@@ -13220,6 +13319,7 @@
                                            build-sequence
                                            build-data
                                            build-primref
+                                           build-primcall
                                            build-lambda-case
                                            build-case-lambda
                                            build-simple-lambda
@@ -13231,7 +13331,7 @@
                                            build-lexical-reference
                                            build-dynlet
                                            build-conditional
-                                           build-application
+                                           build-call
                                            build-void
                                            maybe-name-value!
                                            decorate-source
@@ -13253,7 +13353,8 @@
                                            make-lambda-case
                                            make-lambda
                                            make-sequence
-                                           make-application
+                                           make-primcall
+                                           make-call
                                            make-conditional
                                            make-toplevel-define
                                            make-toplevel-set
@@ -13400,8 +13501,12 @@
                                           (top)
                                           (top)
                                           (top)
+                                          (top)
+                                          (top)
                                           (top))
-                                         ("i448"
+                                         ("i452"
+                                          "i450"
+                                          "i448"
                                           "i446"
                                           "i444"
                                           "i442"
@@ -13434,14 +13539,14 @@
                                           "i388"
                                           "i386"
                                           "i384"
+                                          "i383"
                                           "i382"
                                           "i380"
                                           "i379"
                                           "i378"
+                                          "i377"
                                           "i376"
-                                          "i375"
                                           "i374"
-                                          "i373"
                                           "i372"
                                           "i370"
                                           "i368"
@@ -13449,33 +13554,33 @@
                                           "i364"
                                           "i362"
                                           "i360"
-                                          "i358"
-                                          "i356"
+                                          "i357"
+                                          "i355"
+                                          "i354"
                                           "i353"
+                                          "i352"
                                           "i351"
                                           "i350"
                                           "i349"
                                           "i348"
                                           "i347"
-                                          "i346"
                                           "i345"
                                           "i344"
-                                          "i343"
-                                          "i341"
+                                          "i342"
                                           "i340"
                                           "i338"
                                           "i336"
                                           "i334"
                                           "i332"
                                           "i330"
+                                          "i329"
                                           "i328"
+                                          "i327"
                                           "i326"
                                           "i325"
-                                          "i324"
                                           "i323"
                                           "i322"
-                                          "i321"
-                                          "i319"
+                                          "i320"
                                           "i318"
                                           "i316"
                                           "i314"
@@ -13508,17 +13613,17 @@
                                           "i260"
                                           "i258"
                                           "i256"
-                                          "i254"
+                                          "i255"
                                           "i253"
                                           "i251"
+                                          "i250"
                                           "i249"
                                           "i248"
                                           "i247"
-                                          "i246"
                                           "i245"
                                           "i243"
                                           "i241"
-                                          "i239"
+                                          "i238"
                                           "i236"
                                           "i234"
                                           "i232"
@@ -13544,562 +13649,560 @@
                                          ((top) (top) (top))
                                          ("i40" "i39" "i38")))
                                       (hygiene guile)))
-                               (#{chi 419}#
-                                 #{exp 3881}#
-                                 #{r 3865}#
+                               (#{chi 423}#
+                                 #{exp 3891}#
+                                 #{r 3876}#
                                  '(())
-                                 #{mod 3866}#)
+                                 #{mod 3877}#)
                                (begin
-                                 (let ((#{labels 3889}#
-                                         (list (#{gen-label 352}#)))
-                                       (#{var 3890}#
-                                         (#{gen-var 447}# #{pat 3880}#)))
-                                   (#{build-application 265}#
+                                 (let ((#{labels 3899}#
+                                         (list (#{gen-label 356}#)))
+                                       (#{var 3900}#
+                                         (#{gen-var 451}# #{pat 3890}#)))
+                                   (#{build-call 267}#
                                      #f
-                                     (#{build-simple-lambda 283}#
+                                     (#{build-simple-lambda 285}#
                                        #f
-                                       (list (syntax->datum #{pat 3880}#))
+                                       (list (syntax->datum #{pat 3890}#))
                                        #f
-                                       (list #{var 3890}#)
+                                       (list #{var 3900}#)
                                        '()
-                                       (#{chi 419}#
-                                         #{exp 3881}#
-                                         (#{extend-env 327}#
-                                           #{labels 3889}#
+                                       (#{chi 423}#
+                                         #{exp 3891}#
+                                         (#{extend-env 331}#
+                                           #{labels 3899}#
                                            (list (cons 'syntax
-                                                       (cons #{var 3890}# 0)))
-                                           #{r 3865}#)
-                                         (#{make-binding-wrap 383}#
-                                           (list #{pat 3880}#)
-                                           #{labels 3889}#
+                                                       (cons #{var 3900}# 0)))
+                                           #{r 3876}#)
+                                         (#{make-binding-wrap 387}#
+                                           (list #{pat 3890}#)
+                                           #{labels 3899}#
                                            '(()))
-                                         #{mod 3866}#))
-                                     (list #{x 3862}#)))))
-                             (#{gen-clause 3689}#
-                               #{x 3862}#
-                               #{keys 3863}#
-                               (cdr #{clauses 3864}#)
-                               #{r 3865}#
-                               #{pat 3880}#
+                                         #{mod 3877}#))
+                                     (list #{x 3873}#)))))
+                             (#{gen-clause 3703}#
+                               #{x 3873}#
+                               #{keys 3874}#
+                               (cdr #{clauses 3875}#)
+                               #{r 3876}#
+                               #{pat 3890}#
                                #t
-                               #{exp 3881}#
-                               #{mod 3866}#)))
-                         #{tmp 3877}#)
-                       (let ((#{tmp 3896}#
-                               ($sc-dispatch #{tmp 3876}# '(any any any))))
-                         (if #{tmp 3896}#
+                               #{exp 3891}#
+                               #{mod 3877}#)))
+                         #{tmp 3887}#)
+                       (let ((#{tmp 3906}#
+                               ($sc-dispatch #{tmp 3886}# '(any any any))))
+                         (if #{tmp 3906}#
                            (@apply
-                             (lambda (#{pat 3900}#
-                                      #{fender 3901}#
-                                      #{exp 3902}#)
-                               (#{gen-clause 3689}#
-                                 #{x 3862}#
-                                 #{keys 3863}#
-                                 (cdr #{clauses 3864}#)
-                                 #{r 3865}#
-                                 #{pat 3900}#
-                                 #{fender 3901}#
-                                 #{exp 3902}#
-                                 #{mod 3866}#))
-                             #{tmp 3896}#)
-                           (let ((#{_ 3904}# #{tmp 3876}#))
+                             (lambda (#{pat 3910}#
+                                      #{fender 3911}#
+                                      #{exp 3912}#)
+                               (#{gen-clause 3703}#
+                                 #{x 3873}#
+                                 #{keys 3874}#
+                                 (cdr #{clauses 3875}#)
+                                 #{r 3876}#
+                                 #{pat 3910}#
+                                 #{fender 3911}#
+                                 #{exp 3912}#
+                                 #{mod 3877}#))
+                             #{tmp 3906}#)
+                           (let ((#{_ 3914}# #{tmp 3886}#))
                              (syntax-violation
                                'syntax-case
                                "invalid clause"
-                               (car #{clauses 3864}#))))))))))))
+                               (car #{clauses 3875}#))))))))))))
           (begin
-            (lambda (#{e 3905}#
-                     #{r 3906}#
-                     #{w 3907}#
-                     #{s 3908}#
-                     #{mod 3909}#)
+            (lambda (#{e 3915}#
+                     #{r 3916}#
+                     #{w 3917}#
+                     #{s 3918}#
+                     #{mod 3919}#)
               (begin
-                (let ((#{e 3916}#
-                        (#{source-wrap 407}#
-                          #{e 3905}#
-                          #{w 3907}#
-                          #{s 3908}#
-                          #{mod 3909}#)))
-                  (let ((#{tmp 3917}# #{e 3916}#))
-                    (let ((#{tmp 3918}#
+                (let ((#{e 3926}#
+                        (#{source-wrap 411}#
+                          #{e 3915}#
+                          #{w 3917}#
+                          #{s 3918}#
+                          #{mod 3919}#)))
+                  (let ((#{tmp 3927}# #{e 3926}#))
+                    (let ((#{tmp 3928}#
                             ($sc-dispatch
-                              #{tmp 3917}#
+                              #{tmp 3927}#
                               '(_ any each-any . each-any))))
-                      (if #{tmp 3918}#
+                      (if #{tmp 3928}#
                         (@apply
-                          (lambda (#{val 3922}# #{key 3923}# #{m 3924}#)
+                          (lambda (#{val 3932}# #{key 3933}# #{m 3934}#)
                             (if (and-map
-                                  (lambda (#{x 3925}#)
-                                    (if (#{id? 339}# #{x 3925}#)
-                                      (not (#{ellipsis? 435}# #{x 3925}#))
+                                  (lambda (#{x 3935}#)
+                                    (if (#{id? 343}# #{x 3935}#)
+                                      (not (#{ellipsis? 439}# #{x 3935}#))
                                       #f))
-                                  #{key 3923}#)
+                                  #{key 3933}#)
                               (begin
-                                (let ((#{x 3931}# (#{gen-var 447}# 'tmp)))
-                                  (#{build-application 265}#
-                                    #{s 3908}#
-                                    (#{build-simple-lambda 283}#
+                                (let ((#{x 3941}# (#{gen-var 451}# 'tmp)))
+                                  (#{build-call 267}#
+                                    #{s 3918}#
+                                    (#{build-simple-lambda 285}#
                                       #f
                                       (list 'tmp)
                                       #f
-                                      (list #{x 3931}#)
+                                      (list #{x 3941}#)
                                       '()
-                                      (#{gen-syntax-case 3691}#
-                                        (#{build-lexical-reference 271}#
+                                      (#{gen-syntax-case 3705}#
+                                        (#{build-lexical-reference 273}#
                                           'value
                                           #f
                                           'tmp
-                                          #{x 3931}#)
-                                        #{key 3923}#
-                                        #{m 3924}#
-                                        #{r 3906}#
-                                        #{mod 3909}#))
-                                    (list (#{chi 419}#
-                                            #{val 3922}#
-                                            #{r 3906}#
+                                          #{x 3941}#)
+                                        #{key 3933}#
+                                        #{m 3934}#
+                                        #{r 3916}#
+                                        #{mod 3919}#))
+                                    (list (#{chi 423}#
+                                            #{val 3932}#
+                                            #{r 3916}#
                                             '(())
-                                            #{mod 3909}#)))))
+                                            #{mod 3919}#)))))
                               (syntax-violation
                                 'syntax-case
                                 "invalid literals list"
-                                #{e 3916}#)))
-                          #{tmp 3918}#)
+                                #{e 3926}#)))
+                          #{tmp 3928}#)
                         (syntax-violation
                           #f
                           "source expression failed to match any pattern"
-                          #{tmp 3917}#))))))))))
+                          #{tmp 3927}#))))))))))
       (set! macroexpand
         (lambda*
-          (#{x 3937}#
+          (#{x 3947}#
             #:optional
-            (#{m 3939}# 'e)
-            (#{esew 3941}# '(eval)))
-          (#{chi-top-sequence 411}#
-            (list #{x 3937}#)
+            (#{m 3949}# 'e)
+            (#{esew 3951}# '(eval)))
+          (#{chi-top-sequence 415}#
+            (list #{x 3947}#)
             '()
             '((top))
             #f
-            #{m 3939}#
-            #{esew 3941}#
+            #{m 3949}#
+            #{esew 3951}#
             (cons 'hygiene (module-name (current-module))))))
       (set! identifier?
-        (lambda (#{x 3945}#)
-          (#{nonsymbol-id? 337}# #{x 3945}#)))
+        (lambda (#{x 3955}#)
+          (#{nonsymbol-id? 341}# #{x 3955}#)))
       (set! datum->syntax
-        (lambda (#{id 3947}# #{datum 3948}#)
-          (#{make-syntax-object 303}#
-            #{datum 3948}#
-            (#{syntax-object-wrap 309}# #{id 3947}#)
-            (#{syntax-object-module 311}# #{id 3947}#))))
+        (lambda (#{id 3957}# #{datum 3958}#)
+          (#{make-syntax-object 307}#
+            #{datum 3958}#
+            (#{syntax-object-wrap 313}# #{id 3957}#)
+            (#{syntax-object-module 315}# #{id 3957}#))))
       (set! syntax->datum
-        (lambda (#{x 3951}#)
-          (#{strip 445}# #{x 3951}# '(()))))
+        (lambda (#{x 3961}#)
+          (#{strip 449}# #{x 3961}# '(()))))
       (set! syntax-source
-        (lambda (#{x 3954}#)
-          (#{source-annotation 320}# #{x 3954}#)))
+        (lambda (#{x 3964}#)
+          (#{source-annotation 324}# #{x 3964}#)))
       (set! generate-temporaries
-        (lambda (#{ls 3956}#)
+        (lambda (#{ls 3966}#)
           (begin
             (begin
-              (let ((#{x 3960}# #{ls 3956}#))
-                (if (not (list? #{x 3960}#))
+              (let ((#{x 3970}# #{ls 3966}#))
+                (if (not (list? #{x 3970}#))
                   (syntax-violation
                     'generate-temporaries
                     "invalid argument"
-                    #{x 3960}#))))
-            (map (lambda (#{x 3961}#)
-                   (#{wrap 405}# (gensym) '((top)) #f))
-                 #{ls 3956}#))))
+                    #{x 3970}#))))
+            (map (lambda (#{x 3971}#)
+                   (#{wrap 409}# (gensym) '((top)) #f))
+                 #{ls 3966}#))))
       (set! free-identifier=?
-        (lambda (#{x 3965}# #{y 3966}#)
+        (lambda (#{x 3975}# #{y 3976}#)
           (begin
             (begin
-              (let ((#{x 3971}# #{x 3965}#))
-                (if (not (#{nonsymbol-id? 337}# #{x 3971}#))
+              (let ((#{x 3981}# #{x 3975}#))
+                (if (not (#{nonsymbol-id? 341}# #{x 3981}#))
                   (syntax-violation
                     'free-identifier=?
                     "invalid argument"
-                    #{x 3971}#))))
+                    #{x 3981}#))))
             (begin
-              (let ((#{x 3974}# #{y 3966}#))
-                (if (not (#{nonsymbol-id? 337}# #{x 3974}#))
+              (let ((#{x 3984}# #{y 3976}#))
+                (if (not (#{nonsymbol-id? 341}# #{x 3984}#))
                   (syntax-violation
                     'free-identifier=?
                     "invalid argument"
-                    #{x 3974}#))))
-            (#{free-id=? 395}# #{x 3965}# #{y 3966}#))))
+                    #{x 3984}#))))
+            (#{free-id=? 399}# #{x 3975}# #{y 3976}#))))
       (set! bound-identifier=?
-        (lambda (#{x 3975}# #{y 3976}#)
+        (lambda (#{x 3985}# #{y 3986}#)
           (begin
             (begin
-              (let ((#{x 3981}# #{x 3975}#))
-                (if (not (#{nonsymbol-id? 337}# #{x 3981}#))
+              (let ((#{x 3991}# #{x 3985}#))
+                (if (not (#{nonsymbol-id? 341}# #{x 3991}#))
                   (syntax-violation
                     'bound-identifier=?
                     "invalid argument"
-                    #{x 3981}#))))
+                    #{x 3991}#))))
             (begin
-              (let ((#{x 3984}# #{y 3976}#))
-                (if (not (#{nonsymbol-id? 337}# #{x 3984}#))
+              (let ((#{x 3994}# #{y 3986}#))
+                (if (not (#{nonsymbol-id? 341}# #{x 3994}#))
                   (syntax-violation
                     'bound-identifier=?
                     "invalid argument"
-                    #{x 3984}#))))
-            (#{bound-id=? 397}# #{x 3975}# #{y 3976}#))))
+                    #{x 3994}#))))
+            (#{bound-id=? 401}# #{x 3985}# #{y 3986}#))))
       (set! syntax-violation
         (lambda*
-          (#{who 3985}#
-            #{message 3986}#
-            #{form 3987}#
+          (#{who 3995}#
+            #{message 3996}#
+            #{form 3997}#
             #:optional
-            (#{subform 3991}# #f))
+            (#{subform 4001}# #f))
           (begin
             (begin
-              (let ((#{x 3995}# #{who 3985}#))
-                (if (not (let ((#{x 3996}# #{x 3995}#))
+              (let ((#{x 4005}# #{who 3995}#))
+                (if (not (let ((#{x 4006}# #{x 4005}#))
                            (begin
-                             (let ((#{t 4000}# (not #{x 3996}#)))
-                               (if #{t 4000}#
-                                 #{t 4000}#
+                             (let ((#{t 4010}# (not #{x 4006}#)))
+                               (if #{t 4010}#
+                                 #{t 4010}#
                                  (begin
-                                   (let ((#{t 4003}# (string? #{x 3996}#)))
-                                     (if #{t 4003}#
-                                       #{t 4003}#
-                                       (symbol? #{x 3996}#)))))))))
+                                   (let ((#{t 4013}# (string? #{x 4006}#)))
+                                     (if #{t 4013}#
+                                       #{t 4013}#
+                                       (symbol? #{x 4006}#)))))))))
                   (syntax-violation
                     'syntax-violation
                     "invalid argument"
-                    #{x 3995}#))))
+                    #{x 4005}#))))
             (begin
-              (let ((#{x 4007}# #{message 3986}#))
-                (if (not (string? #{x 4007}#))
+              (let ((#{x 4017}# #{message 3996}#))
+                (if (not (string? #{x 4017}#))
                   (syntax-violation
                     'syntax-violation
                     "invalid argument"
-                    #{x 4007}#))))
+                    #{x 4017}#))))
             (throw 'syntax-error
-                   #{who 3985}#
-                   #{message 3986}#
-                   (#{source-annotation 320}#
+                   #{who 3995}#
+                   #{message 3996}#
+                   (#{source-annotation 324}#
                      (begin
-                       (let ((#{t 4010}# #{form 3987}#))
-                         (if #{t 4010}# #{t 4010}# #{subform 3991}#))))
-                   (#{strip 445}# #{form 3987}# '(()))
-                   (if #{subform 3991}#
-                     (#{strip 445}# #{subform 3991}# '(()))
+                       (let ((#{t 4020}# #{form 3997}#))
+                         (if #{t 4020}# #{t 4020}# #{subform 4001}#))))
+                   (#{strip 449}# #{form 3997}# '(()))
+                   (if #{subform 4001}#
+                     (#{strip 449}# #{subform 4001}# '(()))
                      #f)))))
       (letrec*
-        ((#{match-each 4017}#
-           (lambda (#{e 4030}# #{p 4031}# #{w 4032}# #{mod 4033}#)
-             (if (pair? #{e 4030}#)
+        ((#{match-each 4027}#
+           (lambda (#{e 4040}# #{p 4041}# #{w 4042}# #{mod 4043}#)
+             (if (pair? #{e 4040}#)
                (begin
-                 (let ((#{first 4041}#
-                         (#{match 4029}#
-                           (car #{e 4030}#)
-                           #{p 4031}#
-                           #{w 4032}#
+                 (let ((#{first 4051}#
+                         (#{match 4039}#
+                           (car #{e 4040}#)
+                           #{p 4041}#
+                           #{w 4042}#
                            '()
-                           #{mod 4033}#)))
-                   (if #{first 4041}#
+                           #{mod 4043}#)))
+                   (if #{first 4051}#
                      (begin
-                       (let ((#{rest 4045}#
-                               (#{match-each 4017}#
-                                 (cdr #{e 4030}#)
-                                 #{p 4031}#
-                                 #{w 4032}#
-                                 #{mod 4033}#)))
-                         (if #{rest 4045}#
-                           (cons #{first 4041}# #{rest 4045}#)
+                       (let ((#{rest 4055}#
+                               (#{match-each 4027}#
+                                 (cdr #{e 4040}#)
+                                 #{p 4041}#
+                                 #{w 4042}#
+                                 #{mod 4043}#)))
+                         (if #{rest 4055}#
+                           (cons #{first 4051}# #{rest 4055}#)
                            #f)))
                      #f)))
-               (if (null? #{e 4030}#)
+               (if (null? #{e 4040}#)
                  '()
-                 (if (#{syntax-object? 305}# #{e 4030}#)
-                   (#{match-each 4017}#
-                     (#{syntax-object-expression 307}# #{e 4030}#)
-                     #{p 4031}#
-                     (#{join-wraps 387}#
-                       #{w 4032}#
-                       (#{syntax-object-wrap 309}# #{e 4030}#))
-                     (#{syntax-object-module 311}# #{e 4030}#))
+                 (if (#{syntax-object? 309}# #{e 4040}#)
+                   (#{match-each 4027}#
+                     (#{syntax-object-expression 311}# #{e 4040}#)
+                     #{p 4041}#
+                     (#{join-wraps 391}#
+                       #{w 4042}#
+                       (#{syntax-object-wrap 313}# #{e 4040}#))
+                     (#{syntax-object-module 315}# #{e 4040}#))
                    #f)))))
-         (#{match-each+ 4019}#
-           (lambda (#{e 4053}#
-                    #{x-pat 4054}#
-                    #{y-pat 4055}#
-                    #{z-pat 4056}#
-                    #{w 4057}#
-                    #{r 4058}#
-                    #{mod 4059}#)
+         (#{match-each+ 4029}#
+           (lambda (#{e 4063}#
+                    #{x-pat 4064}#
+                    #{y-pat 4065}#
+                    #{z-pat 4066}#
+                    #{w 4067}#
+                    #{r 4068}#
+                    #{mod 4069}#)
              (letrec*
-               ((#{f 4070}#
-                  (lambda (#{e 4071}# #{w 4072}#)
-                    (if (pair? #{e 4071}#)
+               ((#{f 4080}#
+                  (lambda (#{e 4081}# #{w 4082}#)
+                    (if (pair? #{e 4081}#)
                       (call-with-values
                         (lambda ()
-                          (#{f 4070}# (cdr #{e 4071}#) #{w 4072}#))
-                        (lambda (#{xr* 4075}# #{y-pat 4076}# #{r 4077}#)
-                          (if #{r 4077}#
-                            (if (null? #{y-pat 4076}#)
+                          (#{f 4080}# (cdr #{e 4081}#) #{w 4082}#))
+                        (lambda (#{xr* 4085}# #{y-pat 4086}# #{r 4087}#)
+                          (if #{r 4087}#
+                            (if (null? #{y-pat 4086}#)
                               (begin
-                                (let ((#{xr 4082}#
-                                        (#{match 4029}#
-                                          (car #{e 4071}#)
-                                          #{x-pat 4054}#
-                                          #{w 4072}#
+                                (let ((#{xr 4092}#
+                                        (#{match 4039}#
+                                          (car #{e 4081}#)
+                                          #{x-pat 4064}#
+                                          #{w 4082}#
                                           '()
-                                          #{mod 4059}#)))
-                                  (if #{xr 4082}#
+                                          #{mod 4069}#)))
+                                  (if #{xr 4092}#
                                     (values
-                                      (cons #{xr 4082}# #{xr* 4075}#)
-                                      #{y-pat 4076}#
-                                      #{r 4077}#)
+                                      (cons #{xr 4092}# #{xr* 4085}#)
+                                      #{y-pat 4086}#
+                                      #{r 4087}#)
                                     (values #f #f #f))))
                               (values
                                 '()
-                                (cdr #{y-pat 4076}#)
-                                (#{match 4029}#
-                                  (car #{e 4071}#)
-                                  (car #{y-pat 4076}#)
-                                  #{w 4072}#
-                                  #{r 4077}#
-                                  #{mod 4059}#)))
+                                (cdr #{y-pat 4086}#)
+                                (#{match 4039}#
+                                  (car #{e 4081}#)
+                                  (car #{y-pat 4086}#)
+                                  #{w 4082}#
+                                  #{r 4087}#
+                                  #{mod 4069}#)))
                             (values #f #f #f))))
-                      (if (#{syntax-object? 305}# #{e 4071}#)
-                        (#{f 4070}#
-                          (#{syntax-object-expression 307}# #{e 4071}#)
-                          (#{join-wraps 387}# #{w 4072}# #{e 4071}#))
+                      (if (#{syntax-object? 309}# #{e 4081}#)
+                        (#{f 4080}#
+                          (#{syntax-object-expression 311}# #{e 4081}#)
+                          (#{join-wraps 391}# #{w 4082}# #{e 4081}#))
                         (values
                           '()
-                          #{y-pat 4055}#
-                          (#{match 4029}#
-                            #{e 4071}#
-                            #{z-pat 4056}#
-                            #{w 4072}#
-                            #{r 4058}#
-                            #{mod 4059}#)))))))
-               (begin (#{f 4070}# #{e 4053}# #{w 4057}#)))))
-         (#{match-each-any 4021}#
-           (lambda (#{e 4086}# #{w 4087}# #{mod 4088}#)
-             (if (pair? #{e 4086}#)
+                          #{y-pat 4065}#
+                          (#{match 4039}#
+                            #{e 4081}#
+                            #{z-pat 4066}#
+                            #{w 4082}#
+                            #{r 4068}#
+                            #{mod 4069}#)))))))
+               (begin (#{f 4080}# #{e 4063}# #{w 4067}#)))))
+         (#{match-each-any 4031}#
+           (lambda (#{e 4096}# #{w 4097}# #{mod 4098}#)
+             (if (pair? #{e 4096}#)
                (begin
-                 (let ((#{l 4095}#
-                         (#{match-each-any 4021}#
-                           (cdr #{e 4086}#)
-                           #{w 4087}#
-                           #{mod 4088}#)))
-                   (if #{l 4095}#
-                     (cons (#{wrap 405}#
-                             (car #{e 4086}#)
-                             #{w 4087}#
-                             #{mod 4088}#)
-                           #{l 4095}#)
+                 (let ((#{l 4105}#
+                         (#{match-each-any 4031}#
+                           (cdr #{e 4096}#)
+                           #{w 4097}#
+                           #{mod 4098}#)))
+                   (if #{l 4105}#
+                     (cons (#{wrap 409}#
+                             (car #{e 4096}#)
+                             #{w 4097}#
+                             #{mod 4098}#)
+                           #{l 4105}#)
                      #f)))
-               (if (null? #{e 4086}#)
+               (if (null? #{e 4096}#)
                  '()
-                 (if (#{syntax-object? 305}# #{e 4086}#)
-                   (#{match-each-any 4021}#
-                     (#{syntax-object-expression 307}# #{e 4086}#)
-                     (#{join-wraps 387}#
-                       #{w 4087}#
-                       (#{syntax-object-wrap 309}# #{e 4086}#))
-                     #{mod 4088}#)
+                 (if (#{syntax-object? 309}# #{e 4096}#)
+                   (#{match-each-any 4031}#
+                     (#{syntax-object-expression 311}# #{e 4096}#)
+                     (#{join-wraps 391}#
+                       #{w 4097}#
+                       (#{syntax-object-wrap 313}# #{e 4096}#))
+                     #{mod 4098}#)
                    #f)))))
-         (#{match-empty 4023}#
-           (lambda (#{p 4103}# #{r 4104}#)
-             (if (null? #{p 4103}#)
-               #{r 4104}#
-               (if (eq? #{p 4103}# '_)
-                 #{r 4104}#
-                 (if (eq? #{p 4103}# 'any)
-                   (cons '() #{r 4104}#)
-                   (if (pair? #{p 4103}#)
-                     (#{match-empty 4023}#
-                       (car #{p 4103}#)
-                       (#{match-empty 4023}#
-                         (cdr #{p 4103}#)
-                         #{r 4104}#))
-                     (if (eq? #{p 4103}# 'each-any)
-                       (cons '() #{r 4104}#)
+         (#{match-empty 4033}#
+           (lambda (#{p 4113}# #{r 4114}#)
+             (if (null? #{p 4113}#)
+               #{r 4114}#
+               (if (eq? #{p 4113}# '_)
+                 #{r 4114}#
+                 (if (eq? #{p 4113}# 'any)
+                   (cons '() #{r 4114}#)
+                   (if (pair? #{p 4113}#)
+                     (#{match-empty 4033}#
+                       (car #{p 4113}#)
+                       (#{match-empty 4033}#
+                         (cdr #{p 4113}#)
+                         #{r 4114}#))
+                     (if (eq? #{p 4113}# 'each-any)
+                       (cons '() #{r 4114}#)
                        (begin
-                         (let ((#{atom-key 4120}# (vector-ref #{p 4103}# 0)))
-                           (if (eqv? #{atom-key 4120}# 'each)
-                             (#{match-empty 4023}#
-                               (vector-ref #{p 4103}# 1)
-                               #{r 4104}#)
-                             (if (eqv? #{atom-key 4120}# 'each+)
-                               (#{match-empty 4023}#
-                                 (vector-ref #{p 4103}# 1)
-                                 (#{match-empty 4023}#
-                                   (reverse (vector-ref #{p 4103}# 2))
-                                   (#{match-empty 4023}#
-                                     (vector-ref #{p 4103}# 3)
-                                     #{r 4104}#)))
-                               (if (if (eqv? #{atom-key 4120}# 'free-id)
-                                     #t
-                                     (eqv? #{atom-key 4120}# 'atom))
-                                 #{r 4104}#
-                                 (if (eqv? #{atom-key 4120}# 'vector)
-                                   (#{match-empty 4023}#
-                                     (vector-ref #{p 4103}# 1)
-                                     #{r 4104}#))))))))))))))
-         (#{combine 4025}#
-           (lambda (#{r* 4125}# #{r 4126}#)
-             (if (null? (car #{r* 4125}#))
-               #{r 4126}#
-               (cons (map car #{r* 4125}#)
-                     (#{combine 4025}#
-                       (map cdr #{r* 4125}#)
-                       #{r 4126}#)))))
-         (#{match* 4027}#
-           (lambda (#{e 4129}#
-                    #{p 4130}#
-                    #{w 4131}#
-                    #{r 4132}#
-                    #{mod 4133}#)
-             (if (null? #{p 4130}#)
-               (if (null? #{e 4129}#) #{r 4132}# #f)
-               (if (pair? #{p 4130}#)
-                 (if (pair? #{e 4129}#)
-                   (#{match 4029}#
-                     (car #{e 4129}#)
-                     (car #{p 4130}#)
-                     #{w 4131}#
-                     (#{match 4029}#
-                       (cdr #{e 4129}#)
-                       (cdr #{p 4130}#)
-                       #{w 4131}#
-                       #{r 4132}#
-                       #{mod 4133}#)
-                     #{mod 4133}#)
+                         (let ((#{atom-key 4130}# (vector-ref #{p 4113}# 0)))
+                           (if (memv #{atom-key 4130}# '(each))
+                             (#{match-empty 4033}#
+                               (vector-ref #{p 4113}# 1)
+                               #{r 4114}#)
+                             (if (memv #{atom-key 4130}# '(each+))
+                               (#{match-empty 4033}#
+                                 (vector-ref #{p 4113}# 1)
+                                 (#{match-empty 4033}#
+                                   (reverse (vector-ref #{p 4113}# 2))
+                                   (#{match-empty 4033}#
+                                     (vector-ref #{p 4113}# 3)
+                                     #{r 4114}#)))
+                               (if (memv #{atom-key 4130}# '(free-id atom))
+                                 #{r 4114}#
+                                 (if (memv #{atom-key 4130}# '(vector))
+                                   (#{match-empty 4033}#
+                                     (vector-ref #{p 4113}# 1)
+                                     #{r 4114}#))))))))))))))
+         (#{combine 4035}#
+           (lambda (#{r* 4135}# #{r 4136}#)
+             (if (null? (car #{r* 4135}#))
+               #{r 4136}#
+               (cons (map car #{r* 4135}#)
+                     (#{combine 4035}#
+                       (map cdr #{r* 4135}#)
+                       #{r 4136}#)))))
+         (#{match* 4037}#
+           (lambda (#{e 4139}#
+                    #{p 4140}#
+                    #{w 4141}#
+                    #{r 4142}#
+                    #{mod 4143}#)
+             (if (null? #{p 4140}#)
+               (if (null? #{e 4139}#) #{r 4142}# #f)
+               (if (pair? #{p 4140}#)
+                 (if (pair? #{e 4139}#)
+                   (#{match 4039}#
+                     (car #{e 4139}#)
+                     (car #{p 4140}#)
+                     #{w 4141}#
+                     (#{match 4039}#
+                       (cdr #{e 4139}#)
+                       (cdr #{p 4140}#)
+                       #{w 4141}#
+                       #{r 4142}#
+                       #{mod 4143}#)
+                     #{mod 4143}#)
                    #f)
-                 (if (eq? #{p 4130}# 'each-any)
+                 (if (eq? #{p 4140}# 'each-any)
                    (begin
-                     (let ((#{l 4150}#
-                             (#{match-each-any 4021}#
-                               #{e 4129}#
-                               #{w 4131}#
-                               #{mod 4133}#)))
-                       (if #{l 4150}# (cons #{l 4150}# #{r 4132}#) #f)))
+                     (let ((#{l 4160}#
+                             (#{match-each-any 4031}#
+                               #{e 4139}#
+                               #{w 4141}#
+                               #{mod 4143}#)))
+                       (if #{l 4160}# (cons #{l 4160}# #{r 4142}#) #f)))
                    (begin
-                     (let ((#{atom-key 4156}# (vector-ref #{p 4130}# 0)))
-                       (if (eqv? #{atom-key 4156}# 'each)
-                         (if (null? #{e 4129}#)
-                           (#{match-empty 4023}#
-                             (vector-ref #{p 4130}# 1)
-                             #{r 4132}#)
+                     (let ((#{atom-key 4166}# (vector-ref #{p 4140}# 0)))
+                       (if (memv #{atom-key 4166}# '(each))
+                         (if (null? #{e 4139}#)
+                           (#{match-empty 4033}#
+                             (vector-ref #{p 4140}# 1)
+                             #{r 4142}#)
                            (begin
-                             (let ((#{l 4159}#
-                                     (#{match-each 4017}#
-                                       #{e 4129}#
-                                       (vector-ref #{p 4130}# 1)
-                                       #{w 4131}#
-                                       #{mod 4133}#)))
-                               (if #{l 4159}#
+                             (let ((#{l 4169}#
+                                     (#{match-each 4027}#
+                                       #{e 4139}#
+                                       (vector-ref #{p 4140}# 1)
+                                       #{w 4141}#
+                                       #{mod 4143}#)))
+                               (if #{l 4169}#
                                  (letrec*
-                                   ((#{collect 4164}#
-                                      (lambda (#{l 4165}#)
-                                        (if (null? (car #{l 4165}#))
-                                          #{r 4132}#
-                                          (cons (map car #{l 4165}#)
-                                                (#{collect 4164}#
-                                                  (map cdr #{l 4165}#)))))))
-                                   (begin (#{collect 4164}# #{l 4159}#)))
+                                   ((#{collect 4174}#
+                                      (lambda (#{l 4175}#)
+                                        (if (null? (car #{l 4175}#))
+                                          #{r 4142}#
+                                          (cons (map car #{l 4175}#)
+                                                (#{collect 4174}#
+                                                  (map cdr #{l 4175}#)))))))
+                                   (begin (#{collect 4174}# #{l 4169}#)))
                                  #f))))
-                         (if (eqv? #{atom-key 4156}# 'each+)
+                         (if (memv #{atom-key 4166}# '(each+))
                            (call-with-values
                              (lambda ()
-                               (#{match-each+ 4019}#
-                                 #{e 4129}#
-                                 (vector-ref #{p 4130}# 1)
-                                 (vector-ref #{p 4130}# 2)
-                                 (vector-ref #{p 4130}# 3)
-                                 #{w 4131}#
-                                 #{r 4132}#
-                                 #{mod 4133}#))
-                             (lambda (#{xr* 4167}# #{y-pat 4168}# #{r 4169}#)
-                               (if #{r 4169}#
-                                 (if (null? #{y-pat 4168}#)
-                                   (if (null? #{xr* 4167}#)
-                                     (#{match-empty 4023}#
-                                       (vector-ref #{p 4130}# 1)
-                                       #{r 4169}#)
-                                     (#{combine 4025}#
-                                       #{xr* 4167}#
-                                       #{r 4169}#))
+                               (#{match-each+ 4029}#
+                                 #{e 4139}#
+                                 (vector-ref #{p 4140}# 1)
+                                 (vector-ref #{p 4140}# 2)
+                                 (vector-ref #{p 4140}# 3)
+                                 #{w 4141}#
+                                 #{r 4142}#
+                                 #{mod 4143}#))
+                             (lambda (#{xr* 4177}# #{y-pat 4178}# #{r 4179}#)
+                               (if #{r 4179}#
+                                 (if (null? #{y-pat 4178}#)
+                                   (if (null? #{xr* 4177}#)
+                                     (#{match-empty 4033}#
+                                       (vector-ref #{p 4140}# 1)
+                                       #{r 4179}#)
+                                     (#{combine 4035}#
+                                       #{xr* 4177}#
+                                       #{r 4179}#))
                                    #f)
                                  #f)))
-                           (if (eqv? #{atom-key 4156}# 'free-id)
-                             (if (#{id? 339}# #{e 4129}#)
-                               (if (#{free-id=? 395}#
-                                     (#{wrap 405}#
-                                       #{e 4129}#
-                                       #{w 4131}#
-                                       #{mod 4133}#)
-                                     (vector-ref #{p 4130}# 1))
-                                 #{r 4132}#
+                           (if (memv #{atom-key 4166}# '(free-id))
+                             (if (#{id? 343}# #{e 4139}#)
+                               (if (#{free-id=? 399}#
+                                     (#{wrap 409}#
+                                       #{e 4139}#
+                                       #{w 4141}#
+                                       #{mod 4143}#)
+                                     (vector-ref #{p 4140}# 1))
+                                 #{r 4142}#
                                  #f)
                                #f)
-                             (if (eqv? #{atom-key 4156}# 'atom)
+                             (if (memv #{atom-key 4166}# '(atom))
                                (if (equal?
-                                     (vector-ref #{p 4130}# 1)
-                                     (#{strip 445}# #{e 4129}# #{w 4131}#))
-                                 #{r 4132}#
+                                     (vector-ref #{p 4140}# 1)
+                                     (#{strip 449}# #{e 4139}# #{w 4141}#))
+                                 #{r 4142}#
                                  #f)
-                               (if (eqv? #{atom-key 4156}# 'vector)
-                                 (if (vector? #{e 4129}#)
-                                   (#{match 4029}#
-                                     (vector->list #{e 4129}#)
-                                     (vector-ref #{p 4130}# 1)
-                                     #{w 4131}#
-                                     #{r 4132}#
-                                     #{mod 4133}#)
+                               (if (memv #{atom-key 4166}# '(vector))
+                                 (if (vector? #{e 4139}#)
+                                   (#{match 4039}#
+                                     (vector->list #{e 4139}#)
+                                     (vector-ref #{p 4140}# 1)
+                                     #{w 4141}#
+                                     #{r 4142}#
+                                     #{mod 4143}#)
                                    #f)))))))))))))
-         (#{match 4029}#
-           (lambda (#{e 4186}#
-                    #{p 4187}#
-                    #{w 4188}#
-                    #{r 4189}#
-                    #{mod 4190}#)
-             (if (not #{r 4189}#)
+         (#{match 4039}#
+           (lambda (#{e 4196}#
+                    #{p 4197}#
+                    #{w 4198}#
+                    #{r 4199}#
+                    #{mod 4200}#)
+             (if (not #{r 4199}#)
                #f
-               (if (eq? #{p 4187}# '_)
-                 #{r 4189}#
-                 (if (eq? #{p 4187}# 'any)
-                   (cons (#{wrap 405}# #{e 4186}# #{w 4188}# #{mod 4190}#)
-                         #{r 4189}#)
-                   (if (#{syntax-object? 305}# #{e 4186}#)
-                     (#{match* 4027}#
-                       (#{syntax-object-expression 307}# #{e 4186}#)
-                       #{p 4187}#
-                       (#{join-wraps 387}#
-                         #{w 4188}#
-                         (#{syntax-object-wrap 309}# #{e 4186}#))
-                       #{r 4189}#
-                       (#{syntax-object-module 311}# #{e 4186}#))
-                     (#{match* 4027}#
-                       #{e 4186}#
-                       #{p 4187}#
-                       #{w 4188}#
-                       #{r 4189}#
-                       #{mod 4190}#))))))))
+               (if (eq? #{p 4197}# '_)
+                 #{r 4199}#
+                 (if (eq? #{p 4197}# 'any)
+                   (cons (#{wrap 409}# #{e 4196}# #{w 4198}# #{mod 4200}#)
+                         #{r 4199}#)
+                   (if (#{syntax-object? 309}# #{e 4196}#)
+                     (#{match* 4037}#
+                       (#{syntax-object-expression 311}# #{e 4196}#)
+                       #{p 4197}#
+                       (#{join-wraps 391}#
+                         #{w 4198}#
+                         (#{syntax-object-wrap 313}# #{e 4196}#))
+                       #{r 4199}#
+                       (#{syntax-object-module 315}# #{e 4196}#))
+                     (#{match* 4037}#
+                       #{e 4196}#
+                       #{p 4197}#
+                       #{w 4198}#
+                       #{r 4199}#
+                       #{mod 4200}#))))))))
         (begin
           (set! $sc-dispatch
-            (lambda (#{e 4205}# #{p 4206}#)
-              (if (eq? #{p 4206}# 'any)
-                (list #{e 4205}#)
-                (if (eq? #{p 4206}# '_)
+            (lambda (#{e 4215}# #{p 4216}#)
+              (if (eq? #{p 4216}# 'any)
+                (list #{e 4215}#)
+                (if (eq? #{p 4216}# '_)
                   '()
-                  (if (#{syntax-object? 305}# #{e 4205}#)
-                    (#{match* 4027}#
-                      (#{syntax-object-expression 307}# #{e 4205}#)
-                      #{p 4206}#
-                      (#{syntax-object-wrap 309}# #{e 4205}#)
+                  (if (#{syntax-object? 309}# #{e 4215}#)
+                    (#{match* 4037}#
+                      (#{syntax-object-expression 311}# #{e 4215}#)
+                      #{p 4216}#
+                      (#{syntax-object-wrap 313}# #{e 4215}#)
                       '()
-                      (#{syntax-object-module 311}# #{e 4205}#))
-                    (#{match* 4027}#
-                      #{e 4205}#
-                      #{p 4206}#
+                      (#{syntax-object-module 315}# #{e 4215}#))
+                    (#{match* 4037}#
+                      #{e 4215}#
+                      #{p 4216}#
                       '(())
                       '()
                       #f)))))))))))
@@ -14108,82 +14211,82 @@
   (make-syntax-transformer
     'with-syntax
     'macro
-    (lambda (#{x 4217}#)
-      (let ((#{tmp 4219}# #{x 4217}#))
-        (let ((#{tmp 4220}#
+    (lambda (#{x 4227}#)
+      (let ((#{tmp 4229}# #{x 4227}#))
+        (let ((#{tmp 4230}#
                 ($sc-dispatch
-                  #{tmp 4219}#
+                  #{tmp 4229}#
                   '(_ () any . each-any))))
-          (if #{tmp 4220}#
+          (if #{tmp 4230}#
             (@apply
-              (lambda (#{e1 4223}# #{e2 4224}#)
+              (lambda (#{e1 4233}# #{e2 4234}#)
                 (cons '#(syntax-object
                          let
                          ((top)
                           #(ribcage
                             #(e1 e2)
                             #((top) (top))
-                            #("i4221" "i4222"))
+                            #("i4231" "i4232"))
                           #(ribcage () () ())
-                          #(ribcage #(x) #((top)) #("i4218")))
+                          #(ribcage #(x) #((top)) #("i4228")))
                          (hygiene guile))
-                      (cons '() (cons #{e1 4223}# #{e2 4224}#))))
-              #{tmp 4220}#)
-            (let ((#{tmp 4226}#
+                      (cons '() (cons #{e1 4233}# #{e2 4234}#))))
+              #{tmp 4230}#)
+            (let ((#{tmp 4236}#
                     ($sc-dispatch
-                      #{tmp 4219}#
+                      #{tmp 4229}#
                       '(_ ((any any)) any . each-any))))
-              (if #{tmp 4226}#
+              (if #{tmp 4236}#
                 (@apply
-                  (lambda (#{out 4231}#
-                           #{in 4232}#
-                           #{e1 4233}#
-                           #{e2 4234}#)
+                  (lambda (#{out 4241}#
+                           #{in 4242}#
+                           #{e1 4243}#
+                           #{e2 4244}#)
                     (list '#(syntax-object
                              syntax-case
                              ((top)
                               #(ribcage
                                 #(out in e1 e2)
                                 #((top) (top) (top) (top))
-                                #("i4227" "i4228" "i4229" "i4230"))
+                                #("i4237" "i4238" "i4239" "i4240"))
                               #(ribcage () () ())
-                              #(ribcage #(x) #((top)) #("i4218")))
+                              #(ribcage #(x) #((top)) #("i4228")))
                              (hygiene guile))
-                          #{in 4232}#
+                          #{in 4242}#
                           '()
-                          (list #{out 4231}#
+                          (list #{out 4241}#
                                 (cons '#(syntax-object
                                          let
                                          ((top)
                                           #(ribcage
                                             #(out in e1 e2)
                                             #((top) (top) (top) (top))
-                                            #("i4227" "i4228" "i4229" "i4230"))
+                                            #("i4237" "i4238" "i4239" "i4240"))
                                           #(ribcage () () ())
-                                          #(ribcage #(x) #((top)) #("i4218")))
+                                          #(ribcage #(x) #((top)) #("i4228")))
                                          (hygiene guile))
                                       (cons '()
-                                            (cons #{e1 4233}# #{e2 4234}#))))))
-                  #{tmp 4226}#)
-                (let ((#{tmp 4236}#
+                                            (cons #{e1 4243}# #{e2 4244}#))))))
+                  #{tmp 4236}#)
+                (let ((#{tmp 4246}#
                         ($sc-dispatch
-                          #{tmp 4219}#
+                          #{tmp 4229}#
                           '(_ #(each (any any)) any . each-any))))
-                  (if #{tmp 4236}#
+                  (if #{tmp 4246}#
                     (@apply
-                      (lambda (#{out 4241}#
-                               #{in 4242}#
-                               #{e1 4243}#
-                               #{e2 4244}#)
+                      (lambda (#{out 4251}#
+                               #{in 4252}#
+                               #{e1 4253}#
+                               #{e2 4254}#)
                         (list '#(syntax-object
                                  syntax-case
                                  ((top)
                                   #(ribcage
                                     #(out in e1 e2)
                                     #((top) (top) (top) (top))
-                                    #("i4237" "i4238" "i4239" "i4240"))
+                                    #("i4247" "i4248" "i4249" "i4250"))
                                   #(ribcage () () ())
-                                  #(ribcage #(x) #((top)) #("i4218")))
+                                  #(ribcage #(x) #((top)) #("i4228")))
                                  (hygiene guile))
                               (cons '#(syntax-object
                                        list
@@ -14191,63 +14294,63 @@
                                         #(ribcage
                                           #(out in e1 e2)
                                           #((top) (top) (top) (top))
-                                          #("i4237" "i4238" "i4239" "i4240"))
+                                          #("i4247" "i4248" "i4249" "i4250"))
                                         #(ribcage () () ())
-                                        #(ribcage #(x) #((top)) #("i4218")))
+                                        #(ribcage #(x) #((top)) #("i4228")))
                                        (hygiene guile))
-                                    #{in 4242}#)
+                                    #{in 4252}#)
                               '()
-                              (list #{out 4241}#
+                              (list #{out 4251}#
                                     (cons '#(syntax-object
                                              let
                                              ((top)
                                               #(ribcage
                                                 #(out in e1 e2)
                                                 #((top) (top) (top) (top))
-                                                #("i4237"
-                                                  "i4238"
-                                                  "i4239"
-                                                  "i4240"))
+                                                #("i4247"
+                                                  "i4248"
+                                                  "i4249"
+                                                  "i4250"))
                                               #(ribcage () () ())
                                               #(ribcage
                                                 #(x)
                                                 #((top))
-                                                #("i4218")))
+                                                #("i4228")))
                                              (hygiene guile))
                                           (cons '()
-                                                (cons #{e1 4243}#
-                                                      #{e2 4244}#))))))
-                      #{tmp 4236}#)
+                                                (cons #{e1 4253}#
+                                                      #{e2 4254}#))))))
+                      #{tmp 4246}#)
                     (syntax-violation
                       #f
                       "source expression failed to match any pattern"
-                      #{tmp 4219}#)))))))))))
+                      #{tmp 4229}#)))))))))))
 
 (define syntax-rules
   (make-syntax-transformer
     'syntax-rules
     'macro
-    (lambda (#{x 4248}#)
-      (let ((#{tmp 4250}# #{x 4248}#))
-        (let ((#{tmp 4251}#
+    (lambda (#{x 4258}#)
+      (let ((#{tmp 4260}# #{x 4258}#))
+        (let ((#{tmp 4261}#
                 ($sc-dispatch
-                  #{tmp 4250}#
+                  #{tmp 4260}#
                   '(_ each-any . #(each ((any . any) any))))))
-          (if #{tmp 4251}#
+          (if #{tmp 4261}#
             (@apply
-              (lambda (#{k 4256}#
-                       #{keyword 4257}#
-                       #{pattern 4258}#
-                       #{template 4259}#)
+              (lambda (#{k 4266}#
+                       #{keyword 4267}#
+                       #{pattern 4268}#
+                       #{template 4269}#)
                 (list '#(syntax-object
                          lambda
                          ((top)
                           #(ribcage
                             #(k keyword pattern template)
                             #((top) (top) (top) (top))
-                            #("i4252" "i4253" "i4254" "i4255"))
+                            #("i4262" "i4263" "i4264" "i4265"))
                           #(ribcage () () ())
-                          #(ribcage #(x) #((top)) #("i4249")))
+                          #(ribcage #(x) #((top)) #("i4259")))
                          (hygiene guile))
                       '(#(syntax-object
                           x
@@ -14255,9 +14358,9 @@
                            #(ribcage
                              #(k keyword pattern template)
                              #((top) (top) (top) (top))
-                             #("i4252" "i4253" "i4254" "i4255"))
+                             #("i4262" "i4263" "i4264" "i4265"))
                            #(ribcage () () ())
-                           #(ribcage #(x) #((top)) #("i4249")))
+                           #(ribcage #(x) #((top)) #("i4259")))
                           (hygiene guile)))
                       (vector
                         '(#(syntax-object
@@ -14266,9 +14369,9 @@
                              #(ribcage
                                #(k keyword pattern template)
                                #((top) (top) (top) (top))
-                               #("i4252" "i4253" "i4254" "i4255"))
+                               #("i4262" "i4263" "i4264" "i4265"))
                              #(ribcage () () ())
-                             #(ribcage #(x) #((top)) #("i4249")))
+                             #(ribcage #(x) #((top)) #("i4259")))
                             (hygiene guile))
                           .
                           #(syntax-object
@@ -14277,9 +14380,9 @@
                              #(ribcage
                                #(k keyword pattern template)
                                #((top) (top) (top) (top))
-                               #("i4252" "i4253" "i4254" "i4255"))
+                               #("i4262" "i4263" "i4264" "i4265"))
                              #(ribcage () () ())
-                             #(ribcage #(x) #((top)) #("i4249")))
+                             #(ribcage #(x) #((top)) #("i4259")))
                             (hygiene guile)))
                         (cons '#(syntax-object
                                  patterns
@@ -14287,20 +14390,20 @@
                                   #(ribcage
                                     #(k keyword pattern template)
                                     #((top) (top) (top) (top))
-                                    #("i4252" "i4253" "i4254" "i4255"))
+                                    #("i4262" "i4263" "i4264" "i4265"))
                                   #(ribcage () () ())
-                                  #(ribcage #(x) #((top)) #("i4249")))
+                                  #(ribcage #(x) #((top)) #("i4259")))
                                  (hygiene guile))
-                              #{pattern 4258}#))
+                              #{pattern 4268}#))
                       (cons '#(syntax-object
                                syntax-case
                                ((top)
                                 #(ribcage
                                   #(k keyword pattern template)
                                   #((top) (top) (top) (top))
-                                  #("i4252" "i4253" "i4254" "i4255"))
+                                  #("i4262" "i4263" "i4264" "i4265"))
                                 #(ribcage () () ())
-                                #(ribcage #(x) #((top)) #("i4249")))
+                                #(ribcage #(x) #((top)) #("i4259")))
                                (hygiene guile))
                             (cons '#(syntax-object
                                      x
@@ -14308,13 +14411,13 @@
                                       #(ribcage
                                         #(k keyword pattern template)
                                         #((top) (top) (top) (top))
-                                        #("i4252" "i4253" "i4254" "i4255"))
+                                        #("i4262" "i4263" "i4264" "i4265"))
                                       #(ribcage () () ())
-                                      #(ribcage #(x) #((top)) #("i4249")))
+                                      #(ribcage #(x) #((top)) #("i4259")))
                                      (hygiene guile))
-                                  (cons #{k 4256}#
-                                        (map (lambda (#{tmp 4263}#
-                                                      #{tmp 4262}#)
+                                  (cons #{k 4266}#
+                                        (map (lambda (#{tmp 4273}#
+                                                      #{tmp 4272}#)
                                                (list (cons '#(syntax-object
                                                               dummy
                                                               ((top)
@@ -14327,10 +14430,10 @@
                                                                    (top)
                                                                    (top)
                                                                    (top))
-                                                                 #("i4252"
-                                                                   "i4253"
-                                                                   "i4254"
-                                                                   "i4255"))
+                                                                 #("i4262"
+                                                                   "i4263"
+                                                                   "i4264"
+                                                                   "i4265"))
                                                                #(ribcage
                                                                  ()
                                                                  ()
@@ -14338,9 +14441,9 @@
                                                                #(ribcage
                                                                  #(x)
                                                                  #((top))
-                                                                 #("i4249")))
+                                                                 #("i4259")))
                                                               (hygiene guile))
-                                                           #{tmp 4262}#)
+                                                           #{tmp 4272}#)
                                                      (list '#(syntax-object
                                                               syntax
                                                               ((top)
@@ -14353,10 +14456,10 @@
                                                                    (top)
                                                                    (top)
                                                                    (top))
-                                                                 #("i4252"
-                                                                   "i4253"
-                                                                   "i4254"
-                                                                   "i4255"))
+                                                                 #("i4262"
+                                                                   "i4263"
+                                                                   "i4264"
+                                                                   "i4265"))
                                                                #(ribcage
                                                                  ()
                                                                  ()
@@ -14364,41 +14467,41 @@
                                                                #(ribcage
                                                                  #(x)
                                                                  #((top))
-                                                                 #("i4249")))
+                                                                 #("i4259")))
                                                               (hygiene guile))
-                                                           #{tmp 4263}#)))
-                                             #{template 4259}#
-                                             #{pattern 4258}#))))))
-              #{tmp 4251}#)
-            (let ((#{tmp 4264}#
+                                                           #{tmp 4273}#)))
+                                             #{template 4269}#
+                                             #{pattern 4268}#))))))
+              #{tmp 4261}#)
+            (let ((#{tmp 4274}#
                     ($sc-dispatch
-                      #{tmp 4250}#
+                      #{tmp 4260}#
                       '(_ each-any any . #(each ((any . any) any))))))
-              (if (if #{tmp 4264}#
+              (if (if #{tmp 4274}#
                     (@apply
-                      (lambda (#{k 4270}#
-                               #{docstring 4271}#
-                               #{keyword 4272}#
-                               #{pattern 4273}#
-                               #{template 4274}#)
-                        (string? (syntax->datum #{docstring 4271}#)))
-                      #{tmp 4264}#)
+                      (lambda (#{k 4280}#
+                               #{docstring 4281}#
+                               #{keyword 4282}#
+                               #{pattern 4283}#
+                               #{template 4284}#)
+                        (string? (syntax->datum #{docstring 4281}#)))
+                      #{tmp 4274}#)
                     #f)
                 (@apply
-                  (lambda (#{k 4280}#
-                           #{docstring 4281}#
-                           #{keyword 4282}#
-                           #{pattern 4283}#
-                           #{template 4284}#)
+                  (lambda (#{k 4290}#
+                           #{docstring 4291}#
+                           #{keyword 4292}#
+                           #{pattern 4293}#
+                           #{template 4294}#)
                     (list '#(syntax-object
                              lambda
                              ((top)
                               #(ribcage
                                 #(k docstring keyword pattern template)
                                 #((top) (top) (top) (top) (top))
-                                #("i4275" "i4276" "i4277" "i4278" "i4279"))
+                                #("i4285" "i4286" "i4287" "i4288" "i4289"))
                               #(ribcage () () ())
-                              #(ribcage #(x) #((top)) #("i4249")))
+                              #(ribcage #(x) #((top)) #("i4259")))
                              (hygiene guile))
                           '(#(syntax-object
                               x
@@ -14406,11 +14509,11 @@
                                #(ribcage
                                  #(k docstring keyword pattern template)
                                  #((top) (top) (top) (top) (top))
-                                 #("i4275" "i4276" "i4277" "i4278" "i4279"))
+                                 #("i4285" "i4286" "i4287" "i4288" "i4289"))
                                #(ribcage () () ())
-                               #(ribcage #(x) #((top)) #("i4249")))
+                               #(ribcage #(x) #((top)) #("i4259")))
                               (hygiene guile)))
-                          #{docstring 4281}#
+                          #{docstring 4291}#
                           (vector
                             '(#(syntax-object
                                 macro-type
@@ -14418,9 +14521,9 @@
                                  #(ribcage
                                    #(k docstring keyword pattern template)
                                    #((top) (top) (top) (top) (top))
-                                   #("i4275" "i4276" "i4277" "i4278" "i4279"))
+                                   #("i4285" "i4286" "i4287" "i4288" "i4289"))
                                  #(ribcage () () ())
-                                 #(ribcage #(x) #((top)) #("i4249")))
+                                 #(ribcage #(x) #((top)) #("i4259")))
                                 (hygiene guile))
                               .
                               #(syntax-object
@@ -14429,9 +14532,9 @@
                                  #(ribcage
                                    #(k docstring keyword pattern template)
                                    #((top) (top) (top) (top) (top))
-                                   #("i4275" "i4276" "i4277" "i4278" "i4279"))
+                                   #("i4285" "i4286" "i4287" "i4288" "i4289"))
                                  #(ribcage () () ())
-                                 #(ribcage #(x) #((top)) #("i4249")))
+                                 #(ribcage #(x) #((top)) #("i4259")))
                                 (hygiene guile)))
                             (cons '#(syntax-object
                                      patterns
@@ -14439,28 +14542,28 @@
                                       #(ribcage
                                         #(k docstring keyword pattern template)
                                         #((top) (top) (top) (top) (top))
-                                        #("i4275"
-                                          "i4276"
-                                          "i4277"
-                                          "i4278"
-                                          "i4279"))
+                                        #("i4285"
+                                          "i4286"
+                                          "i4287"
+                                          "i4288"
+                                          "i4289"))
                                       #(ribcage () () ())
-                                      #(ribcage #(x) #((top)) #("i4249")))
+                                      #(ribcage #(x) #((top)) #("i4259")))
                                      (hygiene guile))
-                                  #{pattern 4283}#))
+                                  #{pattern 4293}#))
                           (cons '#(syntax-object
                                    syntax-case
                                    ((top)
                                     #(ribcage
                                       #(k docstring keyword pattern template)
                                       #((top) (top) (top) (top) (top))
-                                      #("i4275"
-                                        "i4276"
-                                        "i4277"
-                                        "i4278"
-                                        "i4279"))
+                                      #("i4285"
+                                        "i4286"
+                                        "i4287"
+                                        "i4288"
+                                        "i4289"))
                                     #(ribcage () () ())
-                                    #(ribcage #(x) #((top)) #("i4249")))
+                                    #(ribcage #(x) #((top)) #("i4259")))
                                    (hygiene guile))
                                 (cons '#(syntax-object
                                          x
@@ -14472,17 +14575,17 @@
                                               pattern
                                               template)
                                             #((top) (top) (top) (top) (top))
-                                            #("i4275"
-                                              "i4276"
-                                              "i4277"
-                                              "i4278"
-                                              "i4279"))
+                                            #("i4285"
+                                              "i4286"
+                                              "i4287"
+                                              "i4288"
+                                              "i4289"))
                                           #(ribcage () () ())
-                                          #(ribcage #(x) #((top)) #("i4249")))
+                                          #(ribcage #(x) #((top)) #("i4259")))
                                          (hygiene guile))
-                                      (cons #{k 4280}#
-                                            (map (lambda (#{tmp 4288}#
-                                                          #{tmp 4287}#)
+                                      (cons #{k 4290}#
+                                            (map (lambda (#{tmp 4298}#
+                                                          #{tmp 4297}#)
                                                    (list (cons '#(syntax-object
                                                                   dummy
                                                                   ((top)
@@ -14497,11 +14600,11 @@
                                                                        (top)
                                                                        (top)
                                                                        (top))
-                                                                     #("i4275"
-                                                                       "i4276"
-                                                                       "i4277"
-                                                                       "i4278"
-                                                                       
"i4279"))
+                                                                     #("i4285"
+                                                                       "i4286"
+                                                                       "i4287"
+                                                                       "i4288"
+                                                                       
"i4289"))
                                                                    #(ribcage
                                                                      ()
                                                                      ()
@@ -14509,10 +14612,10 @@
                                                                    #(ribcage
                                                                      #(x)
                                                                      #((top))
-                                                                     
#("i4249")))
+                                                                     
#("i4259")))
                                                                   (hygiene
                                                                     guile))
-                                                               #{tmp 4287}#)
+                                                               #{tmp 4297}#)
                                                          (list '#(syntax-object
                                                                   syntax
                                                                   ((top)
@@ -14527,11 +14630,11 @@
                                                                        (top)
                                                                        (top)
                                                                        (top))
-                                                                     #("i4275"
-                                                                       "i4276"
-                                                                       "i4277"
-                                                                       "i4278"
-                                                                       
"i4279"))
+                                                                     #("i4285"
+                                                                       "i4286"
+                                                                       "i4287"
+                                                                       "i4288"
+                                                                       
"i4289"))
                                                                    #(ribcage
                                                                      ()
                                                                      ()
@@ -14539,48 +14642,48 @@
                                                                    #(ribcage
                                                                      #(x)
                                                                      #((top))
-                                                                     
#("i4249")))
+                                                                     
#("i4259")))
                                                                   (hygiene
                                                                     guile))
-                                                               #{tmp 4288}#)))
-                                                 #{template 4284}#
-                                                 #{pattern 4283}#))))))
-                  #{tmp 4264}#)
+                                                               #{tmp 4298}#)))
+                                                 #{template 4294}#
+                                                 #{pattern 4293}#))))))
+                  #{tmp 4274}#)
                 (syntax-violation
                   #f
                   "source expression failed to match any pattern"
-                  #{tmp 4250}#)))))))))
+                  #{tmp 4260}#)))))))))
 
 (define let*
   (make-syntax-transformer
     'let*
     'macro
-    (lambda (#{x 4289}#)
-      (let ((#{tmp 4291}# #{x 4289}#))
-        (let ((#{tmp 4292}#
+    (lambda (#{x 4299}#)
+      (let ((#{tmp 4301}# #{x 4299}#))
+        (let ((#{tmp 4302}#
                 ($sc-dispatch
-                  #{tmp 4291}#
+                  #{tmp 4301}#
                   '(any #(each (any any)) any . each-any))))
-          (if (if #{tmp 4292}#
+          (if (if #{tmp 4302}#
                 (@apply
-                  (lambda (#{let* 4298}#
-                           #{x 4299}#
-                           #{v 4300}#
-                           #{e1 4301}#
-                           #{e2 4302}#)
-                    (and-map identifier? #{x 4299}#))
-                  #{tmp 4292}#)
+                  (lambda (#{let* 4308}#
+                           #{x 4309}#
+                           #{v 4310}#
+                           #{e1 4311}#
+                           #{e2 4312}#)
+                    (and-map identifier? #{x 4309}#))
+                  #{tmp 4302}#)
                 #f)
             (@apply
-              (lambda (#{let* 4309}#
-                       #{x 4310}#
-                       #{v 4311}#
-                       #{e1 4312}#
-                       #{e2 4313}#)
+              (lambda (#{let* 4319}#
+                       #{x 4320}#
+                       #{v 4321}#
+                       #{e1 4322}#
+                       #{e2 4323}#)
                 (letrec*
-                  ((#{f 4316}#
-                     (lambda (#{bindings 4317}#)
-                       (if (null? #{bindings 4317}#)
+                  ((#{f 4326}#
+                     (lambda (#{bindings 4327}#)
+                       (if (null? #{bindings 4327}#)
                          (cons '#(syntax-object
                                   let
                                   ((top)
@@ -14588,27 +14691,27 @@
                                    #(ribcage
                                      #(f bindings)
                                      #((top) (top))
-                                     #("i4314" "i4315"))
+                                     #("i4324" "i4325"))
                                    #(ribcage
                                      #(let* x v e1 e2)
                                      #((top) (top) (top) (top) (top))
-                                     #("i4304"
-                                       "i4305"
-                                       "i4306"
-                                       "i4307"
-                                       "i4308"))
+                                     #("i4314"
+                                       "i4315"
+                                       "i4316"
+                                       "i4317"
+                                       "i4318"))
                                    #(ribcage () () ())
-                                   #(ribcage #(x) #((top)) #("i4290")))
+                                   #(ribcage #(x) #((top)) #("i4300")))
                                   (hygiene guile))
-                               (cons '() (cons #{e1 4312}# #{e2 4313}#)))
-                         (let ((#{tmp 4322}#
-                                 (list (#{f 4316}# (cdr #{bindings 4317}#))
-                                       (car #{bindings 4317}#))))
-                           (let ((#{tmp 4323}#
-                                   ($sc-dispatch #{tmp 4322}# '(any any))))
-                             (if #{tmp 4323}#
+                               (cons '() (cons #{e1 4322}# #{e2 4323}#)))
+                         (let ((#{tmp 4332}#
+                                 (list (#{f 4326}# (cdr #{bindings 4327}#))
+                                       (car #{bindings 4327}#))))
+                           (let ((#{tmp 4333}#
+                                   ($sc-dispatch #{tmp 4332}# '(any any))))
+                             (if #{tmp 4333}#
                                (@apply
-                                 (lambda (#{body 4326}# #{binding 4327}#)
+                                 (lambda (#{body 4336}# #{binding 4337}#)
                                    (list '#(syntax-object
                                             let
                                             ((top)
@@ -14616,96 +14719,96 @@
                                              #(ribcage
                                                #(body binding)
                                                #((top) (top))
-                                               #("i4324" "i4325"))
+                                               #("i4334" "i4335"))
                                              #(ribcage () () ())
                                              #(ribcage
                                                #(f bindings)
                                                #((top) (top))
-                                               #("i4314" "i4315"))
+                                               #("i4324" "i4325"))
                                              #(ribcage
                                                #(let* x v e1 e2)
                                                #((top) (top) (top) (top) (top))
-                                               #("i4304"
-                                                 "i4305"
-                                                 "i4306"
-                                                 "i4307"
-                                                 "i4308"))
+                                               #("i4314"
+                                                 "i4315"
+                                                 "i4316"
+                                                 "i4317"
+                                                 "i4318"))
                                              #(ribcage () () ())
                                              #(ribcage
                                                #(x)
                                                #((top))
-                                               #("i4290")))
+                                               #("i4300")))
                                             (hygiene guile))
-                                         (list #{binding 4327}#)
-                                         #{body 4326}#))
-                                 #{tmp 4323}#)
+                                         (list #{binding 4337}#)
+                                         #{body 4336}#))
+                                 #{tmp 4333}#)
                                (syntax-violation
                                  #f
                                  "source expression failed to match any 
pattern"
-                                 #{tmp 4322}#))))))))
+                                 #{tmp 4332}#))))))))
                   (begin
-                    (#{f 4316}# (map list #{x 4310}# #{v 4311}#)))))
-              #{tmp 4292}#)
+                    (#{f 4326}# (map list #{x 4320}# #{v 4321}#)))))
+              #{tmp 4302}#)
             (syntax-violation
               #f
               "source expression failed to match any pattern"
-              #{tmp 4291}#)))))))
+              #{tmp 4301}#)))))))
 
 (define do
   (make-syntax-transformer
     'do
     'macro
-    (lambda (#{orig-x 4328}#)
-      (let ((#{tmp 4330}# #{orig-x 4328}#))
-        (let ((#{tmp 4331}#
+    (lambda (#{orig-x 4338}#)
+      (let ((#{tmp 4340}# #{orig-x 4338}#))
+        (let ((#{tmp 4341}#
                 ($sc-dispatch
-                  #{tmp 4330}#
+                  #{tmp 4340}#
                   '(_ #(each (any any . any))
                       (any . each-any)
                       .
                       each-any))))
-          (if #{tmp 4331}#
+          (if #{tmp 4341}#
             (@apply
-              (lambda (#{var 4338}#
-                       #{init 4339}#
-                       #{step 4340}#
-                       #{e0 4341}#
-                       #{e1 4342}#
-                       #{c 4343}#)
-                (let ((#{tmp 4345}#
-                        (map (lambda (#{v 4366}# #{s 4367}#)
-                               (let ((#{tmp 4370}# #{s 4367}#))
-                                 (let ((#{tmp 4371}#
-                                         ($sc-dispatch #{tmp 4370}# '())))
-                                   (if #{tmp 4371}#
+              (lambda (#{var 4348}#
+                       #{init 4349}#
+                       #{step 4350}#
+                       #{e0 4351}#
+                       #{e1 4352}#
+                       #{c 4353}#)
+                (let ((#{tmp 4355}#
+                        (map (lambda (#{v 4376}# #{s 4377}#)
+                               (let ((#{tmp 4380}# #{s 4377}#))
+                                 (let ((#{tmp 4381}#
+                                         ($sc-dispatch #{tmp 4380}# '())))
+                                   (if #{tmp 4381}#
                                      (@apply
-                                       (lambda () #{v 4366}#)
-                                       #{tmp 4371}#)
-                                     (let ((#{tmp 4372}#
+                                       (lambda () #{v 4376}#)
+                                       #{tmp 4381}#)
+                                     (let ((#{tmp 4382}#
                                              ($sc-dispatch
-                                               #{tmp 4370}#
+                                               #{tmp 4380}#
                                                '(any))))
-                                       (if #{tmp 4372}#
+                                       (if #{tmp 4382}#
                                          (@apply
-                                           (lambda (#{e 4374}#) #{e 4374}#)
-                                           #{tmp 4372}#)
-                                         (let ((#{_ 4376}# #{tmp 4370}#))
+                                           (lambda (#{e 4384}#) #{e 4384}#)
+                                           #{tmp 4382}#)
+                                         (let ((#{_ 4386}# #{tmp 4380}#))
                                            (syntax-violation
                                              'do
                                              "bad step expression"
-                                             #{orig-x 4328}#
-                                             #{s 4367}#))))))))
-                             #{var 4338}#
-                             #{step 4340}#)))
-                  (let ((#{tmp 4346}#
-                          ($sc-dispatch #{tmp 4345}# 'each-any)))
-                    (if #{tmp 4346}#
+                                             #{orig-x 4338}#
+                                             #{s 4377}#))))))))
+                             #{var 4348}#
+                             #{step 4350}#)))
+                  (let ((#{tmp 4356}#
+                          ($sc-dispatch #{tmp 4355}# 'each-any)))
+                    (if #{tmp 4356}#
                       (@apply
-                        (lambda (#{step 4348}#)
-                          (let ((#{tmp 4349}# #{e1 4342}#))
-                            (let ((#{tmp 4350}#
-                                    ($sc-dispatch #{tmp 4349}# '())))
-                              (if #{tmp 4350}#
+                        (lambda (#{step 4358}#)
+                          (let ((#{tmp 4359}# #{e1 4352}#))
+                            (let ((#{tmp 4360}#
+                                    ($sc-dispatch #{tmp 4359}# '())))
+                              (if #{tmp 4360}#
                                 (@apply
                                   (lambda ()
                                     (list '#(syntax-object
@@ -14715,7 +14818,7 @@
                                               #(ribcage
                                                 #(step)
                                                 #((top))
-                                                #("i4347"))
+                                                #("i4357"))
                                               #(ribcage
                                                 #(var init step e0 e1 c)
                                                 #((top)
@@ -14724,17 +14827,17 @@
                                                   (top)
                                                   (top)
                                                   (top))
-                                                #("i4332"
-                                                  "i4333"
-                                                  "i4334"
-                                                  "i4335"
-                                                  "i4336"
-                                                  "i4337"))
+                                                #("i4342"
+                                                  "i4343"
+                                                  "i4344"
+                                                  "i4345"
+                                                  "i4346"
+                                                  "i4347"))
                                               #(ribcage () () ())
                                               #(ribcage
                                                 #(orig-x)
                                                 #((top))
-                                                #("i4329")))
+                                                #("i4339")))
                                              (hygiene guile))
                                           '#(syntax-object
                                              doloop
@@ -14743,7 +14846,7 @@
                                               #(ribcage
                                                 #(step)
                                                 #((top))
-                                                #("i4347"))
+                                                #("i4357"))
                                               #(ribcage
                                                 #(var init step e0 e1 c)
                                                 #((top)
@@ -14752,19 +14855,19 @@
                                                   (top)
                                                   (top)
                                                   (top))
-                                                #("i4332"
-                                                  "i4333"
-                                                  "i4334"
-                                                  "i4335"
-                                                  "i4336"
-                                                  "i4337"))
+                                                #("i4342"
+                                                  "i4343"
+                                                  "i4344"
+                                                  "i4345"
+                                                  "i4346"
+                                                  "i4347"))
                                               #(ribcage () () ())
                                               #(ribcage
                                                 #(orig-x)
                                                 #((top))
-                                                #("i4329")))
+                                                #("i4339")))
                                              (hygiene guile))
-                                          (map list #{var 4338}# #{init 4339}#)
+                                          (map list #{var 4348}# #{init 4349}#)
                                           (list '#(syntax-object
                                                    if
                                                    ((top)
@@ -14772,7 +14875,7 @@
                                                     #(ribcage
                                                       #(step)
                                                       #((top))
-                                                      #("i4347"))
+                                                      #("i4357"))
                                                     #(ribcage
                                                       #(var init step e0 e1 c)
                                                       #((top)
@@ -14781,17 +14884,17 @@
                                                         (top)
                                                         (top)
                                                         (top))
-                                                      #("i4332"
-                                                        "i4333"
-                                                        "i4334"
-                                                        "i4335"
-                                                        "i4336"
-                                                        "i4337"))
+                                                      #("i4342"
+                                                        "i4343"
+                                                        "i4344"
+                                                        "i4345"
+                                                        "i4346"
+                                                        "i4347"))
                                                     #(ribcage () () ())
                                                     #(ribcage
                                                       #(orig-x)
                                                       #((top))
-                                                      #("i4329")))
+                                                      #("i4339")))
                                                    (hygiene guile))
                                                 (list '#(syntax-object
                                                          not
@@ -14800,7 +14903,7 @@
                                                           #(ribcage
                                                             #(step)
                                                             #((top))
-                                                            #("i4347"))
+                                                            #("i4357"))
                                                           #(ribcage
                                                             #(var
                                                               init
@@ -14814,19 +14917,19 @@
                                                               (top)
                                                               (top)
                                                               (top))
-                                                            #("i4332"
-                                                              "i4333"
-                                                              "i4334"
-                                                              "i4335"
-                                                              "i4336"
-                                                              "i4337"))
+                                                            #("i4342"
+                                                              "i4343"
+                                                              "i4344"
+                                                              "i4345"
+                                                              "i4346"
+                                                              "i4347"))
                                                           #(ribcage () () ())
                                                           #(ribcage
                                                             #(orig-x)
                                                             #((top))
-                                                            #("i4329")))
+                                                            #("i4339")))
                                                          (hygiene guile))
-                                                      #{e0 4341}#)
+                                                      #{e0 4351}#)
                                                 (cons '#(syntax-object
                                                          begin
                                                          ((top)
@@ -14834,7 +14937,7 @@
                                                           #(ribcage
                                                             #(step)
                                                             #((top))
-                                                            #("i4347"))
+                                                            #("i4357"))
                                                           #(ribcage
                                                             #(var
                                                               init
@@ -14848,20 +14951,20 @@
                                                               (top)
                                                               (top)
                                                               (top))
-                                                            #("i4332"
-                                                              "i4333"
-                                                              "i4334"
-                                                              "i4335"
-                                                              "i4336"
-                                                              "i4337"))
+                                                            #("i4342"
+                                                              "i4343"
+                                                              "i4344"
+                                                              "i4345"
+                                                              "i4346"
+                                                              "i4347"))
                                                           #(ribcage () () ())
                                                           #(ribcage
                                                             #(orig-x)
                                                             #((top))
-                                                            #("i4329")))
+                                                            #("i4339")))
                                                          (hygiene guile))
                                                       (append
-                                                        #{c 4343}#
+                                                        #{c 4353}#
                                                         (list (cons 
'#(syntax-object
                                                                        doloop
                                                                        ((top)
@@ -14872,7 +14975,7 @@
                                                                         
#(ribcage
                                                                           
#(step)
                                                                           
#((top))
-                                                                          
#("i4347"))
+                                                                          
#("i4357"))
                                                                         
#(ribcage
                                                                           #(var
                                                                             
init
@@ -14886,12 +14989,12 @@
                                                                             
(top)
                                                                             
(top)
                                                                             
(top))
-                                                                          
#("i4332"
-                                                                            
"i4333"
-                                                                            
"i4334"
-                                                                            
"i4335"
-                                                                            
"i4336"
-                                                                            
"i4337"))
+                                                                          
#("i4342"
+                                                                            
"i4343"
+                                                                            
"i4344"
+                                                                            
"i4345"
+                                                                            
"i4346"
+                                                                            
"i4347"))
                                                                         
#(ribcage
                                                                           ()
                                                                           ()
@@ -14899,30 +15002,30 @@
                                                                         
#(ribcage
                                                                           
#(orig-x)
                                                                           
#((top))
-                                                                          
#("i4329")))
+                                                                          
#("i4339")))
                                                                        (hygiene
                                                                          
guile))
-                                                                    #{step 
4348}#)))))))
-                                  #{tmp 4350}#)
-                                (let ((#{tmp 4355}#
+                                                                    #{step 
4358}#)))))))
+                                  #{tmp 4360}#)
+                                (let ((#{tmp 4365}#
                                         ($sc-dispatch
-                                          #{tmp 4349}#
+                                          #{tmp 4359}#
                                           '(any . each-any))))
-                                  (if #{tmp 4355}#
+                                  (if #{tmp 4365}#
                                     (@apply
-                                      (lambda (#{e1 4358}# #{e2 4359}#)
+                                      (lambda (#{e1 4368}# #{e2 4369}#)
                                         (list '#(syntax-object
                                                  let
                                                  ((top)
                                                   #(ribcage
                                                     #(e1 e2)
                                                     #((top) (top))
-                                                    #("i4356" "i4357"))
+                                                    #("i4366" "i4367"))
                                                   #(ribcage () () ())
                                                   #(ribcage
                                                     #(step)
                                                     #((top))
-                                                    #("i4347"))
+                                                    #("i4357"))
                                                   #(ribcage
                                                     #(var init step e0 e1 c)
                                                     #((top)
@@ -14931,17 +15034,17 @@
                                                       (top)
                                                       (top)
                                                       (top))
-                                                    #("i4332"
-                                                      "i4333"
-                                                      "i4334"
-                                                      "i4335"
-                                                      "i4336"
-                                                      "i4337"))
+                                                    #("i4342"
+                                                      "i4343"
+                                                      "i4344"
+                                                      "i4345"
+                                                      "i4346"
+                                                      "i4347"))
                                                   #(ribcage () () ())
                                                   #(ribcage
                                                     #(orig-x)
                                                     #((top))
-                                                    #("i4329")))
+                                                    #("i4339")))
                                                  (hygiene guile))
                                               '#(syntax-object
                                                  doloop
@@ -14949,12 +15052,12 @@
                                                   #(ribcage
                                                     #(e1 e2)
                                                     #((top) (top))
-                                                    #("i4356" "i4357"))
+                                                    #("i4366" "i4367"))
                                                   #(ribcage () () ())
                                                   #(ribcage
                                                     #(step)
                                                     #((top))
-                                                    #("i4347"))
+                                                    #("i4357"))
                                                   #(ribcage
                                                     #(var init step e0 e1 c)
                                                     #((top)
@@ -14963,33 +15066,33 @@
                                                       (top)
                                                       (top)
                                                       (top))
-                                                    #("i4332"
-                                                      "i4333"
-                                                      "i4334"
-                                                      "i4335"
-                                                      "i4336"
-                                                      "i4337"))
+                                                    #("i4342"
+                                                      "i4343"
+                                                      "i4344"
+                                                      "i4345"
+                                                      "i4346"
+                                                      "i4347"))
                                                   #(ribcage () () ())
                                                   #(ribcage
                                                     #(orig-x)
                                                     #((top))
-                                                    #("i4329")))
+                                                    #("i4339")))
                                                  (hygiene guile))
                                               (map list
-                                                   #{var 4338}#
-                                                   #{init 4339}#)
+                                                   #{var 4348}#
+                                                   #{init 4349}#)
                                               (list '#(syntax-object
                                                        if
                                                        ((top)
                                                         #(ribcage
                                                           #(e1 e2)
                                                           #((top) (top))
-                                                          #("i4356" "i4357"))
+                                                          #("i4366" "i4367"))
                                                         #(ribcage () () ())
                                                         #(ribcage
                                                           #(step)
                                                           #((top))
-                                                          #("i4347"))
+                                                          #("i4357"))
                                                         #(ribcage
                                                           #(var
                                                             init
@@ -15003,27 +15106,27 @@
                                                             (top)
                                                             (top)
                                                             (top))
-                                                          #("i4332"
-                                                            "i4333"
-                                                            "i4334"
-                                                            "i4335"
-                                                            "i4336"
-                                                            "i4337"))
+                                                          #("i4342"
+                                                            "i4343"
+                                                            "i4344"
+                                                            "i4345"
+                                                            "i4346"
+                                                            "i4347"))
                                                         #(ribcage () () ())
                                                         #(ribcage
                                                           #(orig-x)
                                                           #((top))
-                                                          #("i4329")))
+                                                          #("i4339")))
                                                        (hygiene guile))
-                                                    #{e0 4341}#
+                                                    #{e0 4351}#
                                                     (cons '#(syntax-object
                                                              begin
                                                              ((top)
                                                               #(ribcage
                                                                 #(e1 e2)
                                                                 #((top) (top))
-                                                                #("i4356"
-                                                                  "i4357"))
+                                                                #("i4366"
+                                                                  "i4367"))
                                                               #(ribcage
                                                                 ()
                                                                 ()
@@ -15031,7 +15134,7 @@
                                                               #(ribcage
                                                                 #(step)
                                                                 #((top))
-                                                                #("i4347"))
+                                                                #("i4357"))
                                                               #(ribcage
                                                                 #(var
                                                                   init
@@ -15045,12 +15148,12 @@
                                                                   (top)
                                                                   (top)
                                                                   (top))
-                                                                #("i4332"
-                                                                  "i4333"
-                                                                  "i4334"
-                                                                  "i4335"
-                                                                  "i4336"
-                                                                  "i4337"))
+                                                                #("i4342"
+                                                                  "i4343"
+                                                                  "i4344"
+                                                                  "i4345"
+                                                                  "i4346"
+                                                                  "i4347"))
                                                               #(ribcage
                                                                 ()
                                                                 ()
@@ -15058,18 +15161,18 @@
                                                               #(ribcage
                                                                 #(orig-x)
                                                                 #((top))
-                                                                #("i4329")))
+                                                                #("i4339")))
                                                              (hygiene guile))
-                                                          (cons #{e1 4358}#
-                                                                #{e2 4359}#))
+                                                          (cons #{e1 4368}#
+                                                                #{e2 4369}#))
                                                     (cons '#(syntax-object
                                                              begin
                                                              ((top)
                                                               #(ribcage
                                                                 #(e1 e2)
                                                                 #((top) (top))
-                                                                #("i4356"
-                                                                  "i4357"))
+                                                                #("i4366"
+                                                                  "i4367"))
                                                               #(ribcage
                                                                 ()
                                                                 ()
@@ -15077,7 +15180,7 @@
                                                               #(ribcage
                                                                 #(step)
                                                                 #((top))
-                                                                #("i4347"))
+                                                                #("i4357"))
                                                               #(ribcage
                                                                 #(var
                                                                   init
@@ -15091,12 +15194,12 @@
                                                                   (top)
                                                                   (top)
                                                                   (top))
-                                                                #("i4332"
-                                                                  "i4333"
-                                                                  "i4334"
-                                                                  "i4335"
-                                                                  "i4336"
-                                                                  "i4337"))
+                                                                #("i4342"
+                                                                  "i4343"
+                                                                  "i4344"
+                                                                  "i4345"
+                                                                  "i4346"
+                                                                  "i4347"))
                                                               #(ribcage
                                                                 ()
                                                                 ()
@@ -15104,10 +15207,10 @@
                                                               #(ribcage
                                                                 #(orig-x)
                                                                 #((top))
-                                                                #("i4329")))
+                                                                #("i4339")))
                                                              (hygiene guile))
                                                           (append
-                                                            #{c 4343}#
+                                                            #{c 4353}#
                                                             (list (cons 
'#(syntax-object
                                                                            
doloop
                                                                            
((top)
@@ -15116,8 +15219,8 @@
                                                                                
 e2)
                                                                               
#((top)
                                                                                
 (top))
-                                                                              
#("i4356"
-                                                                               
 "i4357"))
+                                                                              
#("i4366"
+                                                                               
 "i4367"))
                                                                             
#(ribcage
                                                                               
()
                                                                               
()
@@ -15125,7 +15228,7 @@
                                                                             
#(ribcage
                                                                               
#(step)
                                                                               
#((top))
-                                                                              
#("i4347"))
+                                                                              
#("i4357"))
                                                                             
#(ribcage
                                                                               
#(var
                                                                                
 init
@@ -15139,12 +15242,12 @@
                                                                                
 (top)
                                                                                
 (top)
                                                                                
 (top))
-                                                                              
#("i4332"
-                                                                               
 "i4333"
-                                                                               
 "i4334"
-                                                                               
 "i4335"
-                                                                               
 "i4336"
-                                                                               
 "i4337"))
+                                                                              
#("i4342"
+                                                                               
 "i4343"
+                                                                               
 "i4344"
+                                                                               
 "i4345"
+                                                                               
 "i4346"
+                                                                               
 "i4347"))
                                                                             
#(ribcage
                                                                               
()
                                                                               
()
@@ -15152,37 +15255,37 @@
                                                                             
#(ribcage
                                                                               
#(orig-x)
                                                                               
#((top))
-                                                                              
#("i4329")))
+                                                                              
#("i4339")))
                                                                            
(hygiene
                                                                              
guile))
-                                                                        #{step 
4348}#)))))))
-                                      #{tmp 4355}#)
+                                                                        #{step 
4358}#)))))))
+                                      #{tmp 4365}#)
                                     (syntax-violation
                                       #f
                                       "source expression failed to match any 
pattern"
-                                      #{tmp 4349}#)))))))
-                        #{tmp 4346}#)
+                                      #{tmp 4359}#)))))))
+                        #{tmp 4356}#)
                       (syntax-violation
                         #f
                         "source expression failed to match any pattern"
-                        #{tmp 4345}#)))))
-              #{tmp 4331}#)
+                        #{tmp 4355}#)))))
+              #{tmp 4341}#)
             (syntax-violation
               #f
               "source expression failed to match any pattern"
-              #{tmp 4330}#)))))))
+              #{tmp 4340}#)))))))
 
 (define quasiquote
   (make-syntax-transformer
     'quasiquote
     'macro
     (letrec*
-      ((#{quasi 4380}#
-         (lambda (#{p 4393}# #{lev 4394}#)
-           (let ((#{tmp 4397}# #{p 4393}#))
-             (let ((#{tmp 4398}#
+      ((#{quasi 4390}#
+         (lambda (#{p 4403}# #{lev 4404}#)
+           (let ((#{tmp 4407}# #{p 4403}#))
+             (let ((#{tmp 4408}#
                      ($sc-dispatch
-                       #{tmp 4397}#
+                       #{tmp 4407}#
                        '(#(free-id
                            #(syntax-object
                              unquote
@@ -15191,7 +15294,7 @@
                               #(ribcage
                                 #(p lev)
                                 #((top) (top))
-                                #("i4395" "i4396"))
+                                #("i4405" "i4406"))
                               #(ribcage
                                 (emit quasivector
                                       quasilist*
@@ -15200,28 +15303,28 @@
                                       vquasi
                                       quasi)
                                 ((top) (top) (top) (top) (top) (top) (top))
-                                ("i4391"
-                                 "i4389"
-                                 "i4387"
-                                 "i4385"
-                                 "i4383"
-                                 "i4381"
-                                 "i4379")))
+                                ("i4401"
+                                 "i4399"
+                                 "i4397"
+                                 "i4395"
+                                 "i4393"
+                                 "i4391"
+                                 "i4389")))
                              (hygiene guile)))
                          any))))
-               (if #{tmp 4398}#
+               (if #{tmp 4408}#
                  (@apply
-                   (lambda (#{p 4400}#)
-                     (if (= #{lev 4394}# 0)
+                   (lambda (#{p 4410}#)
+                     (if (= #{lev 4404}# 0)
                        (list '#(syntax-object
                                 "value"
                                 ((top)
-                                 #(ribcage #(p) #((top)) #("i4399"))
+                                 #(ribcage #(p) #((top)) #("i4409"))
                                  #(ribcage () () ())
                                  #(ribcage
                                    #(p lev)
                                    #((top) (top))
-                                   #("i4395" "i4396"))
+                                   #("i4405" "i4406"))
                                  #(ribcage
                                    (emit quasivector
                                          quasilist*
@@ -15230,25 +15333,25 @@
                                          vquasi
                                          quasi)
                                    ((top) (top) (top) (top) (top) (top) (top))
-                                   ("i4391"
-                                    "i4389"
-                                    "i4387"
-                                    "i4385"
-                                    "i4383"
-                                    "i4381"
-                                    "i4379")))
+                                   ("i4401"
+                                    "i4399"
+                                    "i4397"
+                                    "i4395"
+                                    "i4393"
+                                    "i4391"
+                                    "i4389")))
                                 (hygiene guile))
-                             #{p 4400}#)
-                       (#{quasicons 4384}#
+                             #{p 4410}#)
+                       (#{quasicons 4394}#
                          '(#(syntax-object
                              "quote"
                              ((top)
-                              #(ribcage #(p) #((top)) #("i4399"))
+                              #(ribcage #(p) #((top)) #("i4409"))
                               #(ribcage () () ())
                               #(ribcage
                                 #(p lev)
                                 #((top) (top))
-                                #("i4395" "i4396"))
+                                #("i4405" "i4406"))
                               #(ribcage
                                 (emit quasivector
                                       quasilist*
@@ -15257,23 +15360,23 @@
                                       vquasi
                                       quasi)
                                 ((top) (top) (top) (top) (top) (top) (top))
-                                ("i4391"
-                                 "i4389"
-                                 "i4387"
-                                 "i4385"
-                                 "i4383"
-                                 "i4381"
-                                 "i4379")))
+                                ("i4401"
+                                 "i4399"
+                                 "i4397"
+                                 "i4395"
+                                 "i4393"
+                                 "i4391"
+                                 "i4389")))
                              (hygiene guile))
                            #(syntax-object
                              unquote
                              ((top)
-                              #(ribcage #(p) #((top)) #("i4399"))
+                              #(ribcage #(p) #((top)) #("i4409"))
                               #(ribcage () () ())
                               #(ribcage
                                 #(p lev)
                                 #((top) (top))
-                                #("i4395" "i4396"))
+                                #("i4405" "i4406"))
                               #(ribcage
                                 (emit quasivector
                                       quasilist*
@@ -15282,21 +15385,21 @@
                                       vquasi
                                       quasi)
                                 ((top) (top) (top) (top) (top) (top) (top))
-                                ("i4391"
-                                 "i4389"
-                                 "i4387"
-                                 "i4385"
-                                 "i4383"
-                                 "i4381"
-                                 "i4379")))
+                                ("i4401"
+                                 "i4399"
+                                 "i4397"
+                                 "i4395"
+                                 "i4393"
+                                 "i4391"
+                                 "i4389")))
                              (hygiene guile)))
-                         (#{quasi 4380}#
-                           (list #{p 4400}#)
-                           (#{1-}# #{lev 4394}#)))))
-                   #{tmp 4398}#)
-                 (let ((#{tmp 4401}#
+                         (#{quasi 4390}#
+                           (list #{p 4410}#)
+                           (#{1-}# #{lev 4404}#)))))
+                   #{tmp 4408}#)
+                 (let ((#{tmp 4411}#
                          ($sc-dispatch
-                           #{tmp 4397}#
+                           #{tmp 4407}#
                            '(#(free-id
                                #(syntax-object
                                  quasiquote
@@ -15305,7 +15408,7 @@
                                   #(ribcage
                                     #(p lev)
                                     #((top) (top))
-                                    #("i4395" "i4396"))
+                                    #("i4405" "i4406"))
                                   #(ribcage
                                     (emit quasivector
                                           quasilist*
@@ -15314,28 +15417,28 @@
                                           vquasi
                                           quasi)
                                     ((top) (top) (top) (top) (top) (top) (top))
-                                    ("i4391"
-                                     "i4389"
-                                     "i4387"
-                                     "i4385"
-                                     "i4383"
-                                     "i4381"
-                                     "i4379")))
+                                    ("i4401"
+                                     "i4399"
+                                     "i4397"
+                                     "i4395"
+                                     "i4393"
+                                     "i4391"
+                                     "i4389")))
                                  (hygiene guile)))
                              any))))
-                   (if #{tmp 4401}#
+                   (if #{tmp 4411}#
                      (@apply
-                       (lambda (#{p 4403}#)
-                         (#{quasicons 4384}#
+                       (lambda (#{p 4413}#)
+                         (#{quasicons 4394}#
                            '(#(syntax-object
                                "quote"
                                ((top)
-                                #(ribcage #(p) #((top)) #("i4402"))
+                                #(ribcage #(p) #((top)) #("i4412"))
                                 #(ribcage () () ())
                                 #(ribcage
                                   #(p lev)
                                   #((top) (top))
-                                  #("i4395" "i4396"))
+                                  #("i4405" "i4406"))
                                 #(ribcage
                                   (emit quasivector
                                         quasilist*
@@ -15344,23 +15447,23 @@
                                         vquasi
                                         quasi)
                                   ((top) (top) (top) (top) (top) (top) (top))
-                                  ("i4391"
-                                   "i4389"
-                                   "i4387"
-                                   "i4385"
-                                   "i4383"
-                                   "i4381"
-                                   "i4379")))
+                                  ("i4401"
+                                   "i4399"
+                                   "i4397"
+                                   "i4395"
+                                   "i4393"
+                                   "i4391"
+                                   "i4389")))
                                (hygiene guile))
                              #(syntax-object
                                quasiquote
                                ((top)
-                                #(ribcage #(p) #((top)) #("i4402"))
+                                #(ribcage #(p) #((top)) #("i4412"))
                                 #(ribcage () () ())
                                 #(ribcage
                                   #(p lev)
                                   #((top) (top))
-                                  #("i4395" "i4396"))
+                                  #("i4405" "i4406"))
                                 #(ribcage
                                   (emit quasivector
                                         quasilist*
@@ -15369,27 +15472,27 @@
                                         vquasi
                                         quasi)
                                   ((top) (top) (top) (top) (top) (top) (top))
-                                  ("i4391"
-                                   "i4389"
-                                   "i4387"
-                                   "i4385"
-                                   "i4383"
-                                   "i4381"
-                                   "i4379")))
+                                  ("i4401"
+                                   "i4399"
+                                   "i4397"
+                                   "i4395"
+                                   "i4393"
+                                   "i4391"
+                                   "i4389")))
                                (hygiene guile)))
-                           (#{quasi 4380}#
-                             (list #{p 4403}#)
-                             (#{1+}# #{lev 4394}#))))
-                       #{tmp 4401}#)
-                     (let ((#{tmp 4404}#
-                             ($sc-dispatch #{tmp 4397}# '(any . any))))
-                       (if #{tmp 4404}#
+                           (#{quasi 4390}#
+                             (list #{p 4413}#)
+                             (#{1+}# #{lev 4404}#))))
+                       #{tmp 4411}#)
+                     (let ((#{tmp 4414}#
+                             ($sc-dispatch #{tmp 4407}# '(any . any))))
+                       (if #{tmp 4414}#
                          (@apply
-                           (lambda (#{p 4407}# #{q 4408}#)
-                             (let ((#{tmp 4409}# #{p 4407}#))
-                               (let ((#{tmp 4410}#
+                           (lambda (#{p 4417}# #{q 4418}#)
+                             (let ((#{tmp 4419}# #{p 4417}#))
+                               (let ((#{tmp 4420}#
                                        ($sc-dispatch
-                                         #{tmp 4409}#
+                                         #{tmp 4419}#
                                          '(#(free-id
                                              #(syntax-object
                                                unquote
@@ -15397,12 +15500,12 @@
                                                 #(ribcage
                                                   #(p q)
                                                   #((top) (top))
-                                                  #("i4405" "i4406"))
+                                                  #("i4415" "i4416"))
                                                 #(ribcage () () ())
                                                 #(ribcage
                                                   #(p lev)
                                                   #((top) (top))
-                                                  #("i4395" "i4396"))
+                                                  #("i4405" "i4406"))
                                                 #(ribcage
                                                   (emit quasivector
                                                         quasilist*
@@ -15417,40 +15520,40 @@
                                                    (top)
                                                    (top)
                                                    (top))
-                                                  ("i4391"
-                                                   "i4389"
-                                                   "i4387"
-                                                   "i4385"
-                                                   "i4383"
-                                                   "i4381"
-                                                   "i4379")))
+                                                  ("i4401"
+                                                   "i4399"
+                                                   "i4397"
+                                                   "i4395"
+                                                   "i4393"
+                                                   "i4391"
+                                                   "i4389")))
                                                (hygiene guile)))
                                            .
                                            each-any))))
-                                 (if #{tmp 4410}#
+                                 (if #{tmp 4420}#
                                    (@apply
-                                     (lambda (#{p 4412}#)
-                                       (if (= #{lev 4394}# 0)
-                                         (#{quasilist* 4388}#
-                                           (map (lambda (#{tmp 4413}#)
+                                     (lambda (#{p 4422}#)
+                                       (if (= #{lev 4404}# 0)
+                                         (#{quasilist* 4398}#
+                                           (map (lambda (#{tmp 4423}#)
                                                   (list '#(syntax-object
                                                            "value"
                                                            ((top)
                                                             #(ribcage
                                                               #(p)
                                                               #((top))
-                                                              #("i4411"))
+                                                              #("i4421"))
                                                             #(ribcage
                                                               #(p q)
                                                               #((top) (top))
-                                                              #("i4405"
-                                                                "i4406"))
+                                                              #("i4415"
+                                                                "i4416"))
                                                             #(ribcage () () ())
                                                             #(ribcage
                                                               #(p lev)
                                                               #((top) (top))
-                                                              #("i4395"
-                                                                "i4396"))
+                                                              #("i4405"
+                                                                "i4406"))
                                                             #(ribcage
                                                               (emit quasivector
                                                                     quasilist*
@@ -15465,37 +15568,37 @@
                                                                (top)
                                                                (top)
                                                                (top))
-                                                              ("i4391"
-                                                               "i4389"
-                                                               "i4387"
-                                                               "i4385"
-                                                               "i4383"
-                                                               "i4381"
-                                                               "i4379")))
+                                                              ("i4401"
+                                                               "i4399"
+                                                               "i4397"
+                                                               "i4395"
+                                                               "i4393"
+                                                               "i4391"
+                                                               "i4389")))
                                                            (hygiene guile))
-                                                        #{tmp 4413}#))
-                                                #{p 4412}#)
-                                           (#{quasi 4380}#
-                                             #{q 4408}#
-                                             #{lev 4394}#))
-                                         (#{quasicons 4384}#
-                                           (#{quasicons 4384}#
+                                                        #{tmp 4423}#))
+                                                #{p 4422}#)
+                                           (#{quasi 4390}#
+                                             #{q 4418}#
+                                             #{lev 4404}#))
+                                         (#{quasicons 4394}#
+                                           (#{quasicons 4394}#
                                              '(#(syntax-object
                                                  "quote"
                                                  ((top)
                                                   #(ribcage
                                                     #(p)
                                                     #((top))
-                                                    #("i4411"))
+                                                    #("i4421"))
                                                   #(ribcage
                                                     #(p q)
                                                     #((top) (top))
-                                                    #("i4405" "i4406"))
+                                                    #("i4415" "i4416"))
                                                   #(ribcage () () ())
                                                   #(ribcage
                                                     #(p lev)
                                                     #((top) (top))
-                                                    #("i4395" "i4396"))
+                                                    #("i4405" "i4406"))
                                                   #(ribcage
                                                     (emit quasivector
                                                           quasilist*
@@ -15510,13 +15613,13 @@
                                                      (top)
                                                      (top)
                                                      (top))
-                                                    ("i4391"
-                                                     "i4389"
-                                                     "i4387"
-                                                     "i4385"
-                                                     "i4383"
-                                                     "i4381"
-                                                     "i4379")))
+                                                    ("i4401"
+                                                     "i4399"
+                                                     "i4397"
+                                                     "i4395"
+                                                     "i4393"
+                                                     "i4391"
+                                                     "i4389")))
                                                  (hygiene guile))
                                                #(syntax-object
                                                  unquote
@@ -15524,16 +15627,16 @@
                                                   #(ribcage
                                                     #(p)
                                                     #((top))
-                                                    #("i4411"))
+                                                    #("i4421"))
                                                   #(ribcage
                                                     #(p q)
                                                     #((top) (top))
-                                                    #("i4405" "i4406"))
+                                                    #("i4415" "i4416"))
                                                   #(ribcage () () ())
                                                   #(ribcage
                                                     #(p lev)
                                                     #((top) (top))
-                                                    #("i4395" "i4396"))
+                                                    #("i4405" "i4406"))
                                                   #(ribcage
                                                     (emit quasivector
                                                           quasilist*
@@ -15548,24 +15651,24 @@
                                                      (top)
                                                      (top)
                                                      (top))
-                                                    ("i4391"
-                                                     "i4389"
-                                                     "i4387"
-                                                     "i4385"
-                                                     "i4383"
-                                                     "i4381"
-                                                     "i4379")))
+                                                    ("i4401"
+                                                     "i4399"
+                                                     "i4397"
+                                                     "i4395"
+                                                     "i4393"
+                                                     "i4391"
+                                                     "i4389")))
                                                  (hygiene guile)))
-                                             (#{quasi 4380}#
-                                               #{p 4412}#
-                                               (#{1-}# #{lev 4394}#)))
-                                           (#{quasi 4380}#
-                                             #{q 4408}#
-                                             #{lev 4394}#))))
-                                     #{tmp 4410}#)
-                                   (let ((#{tmp 4415}#
+                                             (#{quasi 4390}#
+                                               #{p 4422}#
+                                               (#{1-}# #{lev 4404}#)))
+                                           (#{quasi 4390}#
+                                             #{q 4418}#
+                                             #{lev 4404}#))))
+                                     #{tmp 4420}#)
+                                   (let ((#{tmp 4425}#
                                            ($sc-dispatch
-                                             #{tmp 4409}#
+                                             #{tmp 4419}#
                                              '(#(free-id
                                                  #(syntax-object
                                                    unquote-splicing
@@ -15573,12 +15676,12 @@
                                                     #(ribcage
                                                       #(p q)
                                                       #((top) (top))
-                                                      #("i4405" "i4406"))
+                                                      #("i4415" "i4416"))
                                                     #(ribcage () () ())
                                                     #(ribcage
                                                       #(p lev)
                                                       #((top) (top))
-                                                      #("i4395" "i4396"))
+                                                      #("i4405" "i4406"))
                                                     #(ribcage
                                                       (emit quasivector
                                                             quasilist*
@@ -15593,35 +15696,35 @@
                                                        (top)
                                                        (top)
                                                        (top))
-                                                      ("i4391"
-                                                       "i4389"
-                                                       "i4387"
-                                                       "i4385"
-                                                       "i4383"
-                                                       "i4381"
-                                                       "i4379")))
+                                                      ("i4401"
+                                                       "i4399"
+                                                       "i4397"
+                                                       "i4395"
+                                                       "i4393"
+                                                       "i4391"
+                                                       "i4389")))
                                                    (hygiene guile)))
                                                .
                                                each-any))))
-                                     (if #{tmp 4415}#
+                                     (if #{tmp 4425}#
                                        (@apply
-                                         (lambda (#{p 4417}#)
-                                           (if (= #{lev 4394}# 0)
-                                             (#{quasiappend 4386}#
-                                               (map (lambda (#{tmp 4418}#)
+                                         (lambda (#{p 4427}#)
+                                           (if (= #{lev 4404}# 0)
+                                             (#{quasiappend 4396}#
+                                               (map (lambda (#{tmp 4428}#)
                                                       (list '#(syntax-object
                                                                "value"
                                                                ((top)
                                                                 #(ribcage
                                                                   #(p)
                                                                   #((top))
-                                                                  #("i4416"))
+                                                                  #("i4426"))
                                                                 #(ribcage
                                                                   #(p q)
                                                                   #((top)
                                                                     (top))
-                                                                  #("i4405"
-                                                                    "i4406"))
+                                                                  #("i4415"
+                                                                    "i4416"))
                                                                 #(ribcage
                                                                   ()
                                                                   ()
@@ -15630,8 +15733,8 @@
                                                                   #(p lev)
                                                                   #((top)
                                                                     (top))
-                                                                  #("i4395"
-                                                                    "i4396"))
+                                                                  #("i4405"
+                                                                    "i4406"))
                                                                 #(ribcage
                                                                   (emit 
quasivector
                                                                         
quasilist*
@@ -15646,37 +15749,37 @@
                                                                    (top)
                                                                    (top)
                                                                    (top))
-                                                                  ("i4391"
-                                                                   "i4389"
-                                                                   "i4387"
-                                                                   "i4385"
-                                                                   "i4383"
-                                                                   "i4381"
-                                                                   "i4379")))
+                                                                  ("i4401"
+                                                                   "i4399"
+                                                                   "i4397"
+                                                                   "i4395"
+                                                                   "i4393"
+                                                                   "i4391"
+                                                                   "i4389")))
                                                                (hygiene guile))
-                                                            #{tmp 4418}#))
-                                                    #{p 4417}#)
-                                               (#{quasi 4380}#
-                                                 #{q 4408}#
-                                                 #{lev 4394}#))
-                                             (#{quasicons 4384}#
-                                               (#{quasicons 4384}#
+                                                            #{tmp 4428}#))
+                                                    #{p 4427}#)
+                                               (#{quasi 4390}#
+                                                 #{q 4418}#
+                                                 #{lev 4404}#))
+                                             (#{quasicons 4394}#
+                                               (#{quasicons 4394}#
                                                  '(#(syntax-object
                                                      "quote"
                                                      ((top)
                                                       #(ribcage
                                                         #(p)
                                                         #((top))
-                                                        #("i4416"))
+                                                        #("i4426"))
                                                       #(ribcage
                                                         #(p q)
                                                         #((top) (top))
-                                                        #("i4405" "i4406"))
+                                                        #("i4415" "i4416"))
                                                       #(ribcage () () ())
                                                       #(ribcage
                                                         #(p lev)
                                                         #((top) (top))
-                                                        #("i4395" "i4396"))
+                                                        #("i4405" "i4406"))
                                                       #(ribcage
                                                         (emit quasivector
                                                               quasilist*
@@ -15691,13 +15794,13 @@
                                                          (top)
                                                          (top)
                                                          (top))
-                                                        ("i4391"
-                                                         "i4389"
-                                                         "i4387"
-                                                         "i4385"
-                                                         "i4383"
-                                                         "i4381"
-                                                         "i4379")))
+                                                        ("i4401"
+                                                         "i4399"
+                                                         "i4397"
+                                                         "i4395"
+                                                         "i4393"
+                                                         "i4391"
+                                                         "i4389")))
                                                      (hygiene guile))
                                                    #(syntax-object
                                                      unquote-splicing
@@ -15705,16 +15808,16 @@
                                                       #(ribcage
                                                         #(p)
                                                         #((top))
-                                                        #("i4416"))
+                                                        #("i4426"))
                                                       #(ribcage
                                                         #(p q)
                                                         #((top) (top))
-                                                        #("i4405" "i4406"))
+                                                        #("i4415" "i4416"))
                                                       #(ribcage () () ())
                                                       #(ribcage
                                                         #(p lev)
                                                         #((top) (top))
-                                                        #("i4395" "i4396"))
+                                                        #("i4405" "i4406"))
                                                       #(ribcage
                                                         (emit quasivector
                                                               quasilist*
@@ -15729,50 +15832,50 @@
                                                          (top)
                                                          (top)
                                                          (top))
-                                                        ("i4391"
-                                                         "i4389"
-                                                         "i4387"
-                                                         "i4385"
-                                                         "i4383"
-                                                         "i4381"
-                                                         "i4379")))
+                                                        ("i4401"
+                                                         "i4399"
+                                                         "i4397"
+                                                         "i4395"
+                                                         "i4393"
+                                                         "i4391"
+                                                         "i4389")))
                                                      (hygiene guile)))
-                                                 (#{quasi 4380}#
-                                                   #{p 4417}#
-                                                   (#{1-}# #{lev 4394}#)))
-                                               (#{quasi 4380}#
-                                                 #{q 4408}#
-                                                 #{lev 4394}#))))
-                                         #{tmp 4415}#)
-                                       (let ((#{_ 4421}# #{tmp 4409}#))
-                                         (#{quasicons 4384}#
-                                           (#{quasi 4380}#
-                                             #{p 4407}#
-                                             #{lev 4394}#)
-                                           (#{quasi 4380}#
-                                             #{q 4408}#
-                                             #{lev 4394}#)))))))))
-                           #{tmp 4404}#)
-                         (let ((#{tmp 4422}#
+                                                 (#{quasi 4390}#
+                                                   #{p 4427}#
+                                                   (#{1-}# #{lev 4404}#)))
+                                               (#{quasi 4390}#
+                                                 #{q 4418}#
+                                                 #{lev 4404}#))))
+                                         #{tmp 4425}#)
+                                       (let ((#{_ 4431}# #{tmp 4419}#))
+                                         (#{quasicons 4394}#
+                                           (#{quasi 4390}#
+                                             #{p 4417}#
+                                             #{lev 4404}#)
+                                           (#{quasi 4390}#
+                                             #{q 4418}#
+                                             #{lev 4404}#)))))))))
+                           #{tmp 4414}#)
+                         (let ((#{tmp 4432}#
                                  ($sc-dispatch
-                                   #{tmp 4397}#
+                                   #{tmp 4407}#
                                    '#(vector each-any))))
-                           (if #{tmp 4422}#
+                           (if #{tmp 4432}#
                              (@apply
-                               (lambda (#{x 4424}#)
-                                 (#{quasivector 4390}#
-                                   (#{vquasi 4382}# #{x 4424}# #{lev 4394}#)))
-                               #{tmp 4422}#)
-                             (let ((#{p 4427}# #{tmp 4397}#))
+                               (lambda (#{x 4434}#)
+                                 (#{quasivector 4400}#
+                                   (#{vquasi 4392}# #{x 4434}# #{lev 4404}#)))
+                               #{tmp 4432}#)
+                             (let ((#{p 4437}# #{tmp 4407}#))
                                (list '#(syntax-object
                                         "quote"
                                         ((top)
-                                         #(ribcage #(p) #((top)) #("i4426"))
+                                         #(ribcage #(p) #((top)) #("i4436"))
                                          #(ribcage () () ())
                                          #(ribcage
                                            #(p lev)
                                            #((top) (top))
-                                           #("i4395" "i4396"))
+                                           #("i4405" "i4406"))
                                          #(ribcage
                                            (emit quasivector
                                                  quasilist*
@@ -15787,27 +15890,27 @@
                                             (top)
                                             (top)
                                             (top))
-                                           ("i4391"
-                                            "i4389"
-                                            "i4387"
-                                            "i4385"
-                                            "i4383"
-                                            "i4381"
-                                            "i4379")))
+                                           ("i4401"
+                                            "i4399"
+                                            "i4397"
+                                            "i4395"
+                                            "i4393"
+                                            "i4391"
+                                            "i4389")))
                                         (hygiene guile))
-                                     #{p 4427}#)))))))))))))
-       (#{vquasi 4382}#
-         (lambda (#{p 4428}# #{lev 4429}#)
-           (let ((#{tmp 4432}# #{p 4428}#))
-             (let ((#{tmp 4433}#
-                     ($sc-dispatch #{tmp 4432}# '(any . any))))
-               (if #{tmp 4433}#
+                                     #{p 4437}#)))))))))))))
+       (#{vquasi 4392}#
+         (lambda (#{p 4438}# #{lev 4439}#)
+           (let ((#{tmp 4442}# #{p 4438}#))
+             (let ((#{tmp 4443}#
+                     ($sc-dispatch #{tmp 4442}# '(any . any))))
+               (if #{tmp 4443}#
                  (@apply
-                   (lambda (#{p 4436}# #{q 4437}#)
-                     (let ((#{tmp 4438}# #{p 4436}#))
-                       (let ((#{tmp 4439}#
+                   (lambda (#{p 4446}# #{q 4447}#)
+                     (let ((#{tmp 4448}# #{p 4446}#))
+                       (let ((#{tmp 4449}#
                                ($sc-dispatch
-                                 #{tmp 4438}#
+                                 #{tmp 4448}#
                                  '(#(free-id
                                      #(syntax-object
                                        unquote
@@ -15815,12 +15918,12 @@
                                         #(ribcage
                                           #(p q)
                                           #((top) (top))
-                                          #("i4434" "i4435"))
+                                          #("i4444" "i4445"))
                                         #(ribcage () () ())
                                         #(ribcage
                                           #(p lev)
                                           #((top) (top))
-                                          #("i4430" "i4431"))
+                                          #("i4440" "i4441"))
                                         #(ribcage
                                           (emit quasivector
                                                 quasilist*
@@ -15835,38 +15938,38 @@
                                            (top)
                                            (top)
                                            (top))
-                                          ("i4391"
-                                           "i4389"
-                                           "i4387"
-                                           "i4385"
-                                           "i4383"
-                                           "i4381"
-                                           "i4379")))
+                                          ("i4401"
+                                           "i4399"
+                                           "i4397"
+                                           "i4395"
+                                           "i4393"
+                                           "i4391"
+                                           "i4389")))
                                        (hygiene guile)))
                                    .
                                    each-any))))
-                         (if #{tmp 4439}#
+                         (if #{tmp 4449}#
                            (@apply
-                             (lambda (#{p 4441}#)
-                               (if (= #{lev 4429}# 0)
-                                 (#{quasilist* 4388}#
-                                   (map (lambda (#{tmp 4442}#)
+                             (lambda (#{p 4451}#)
+                               (if (= #{lev 4439}# 0)
+                                 (#{quasilist* 4398}#
+                                   (map (lambda (#{tmp 4452}#)
                                           (list '#(syntax-object
                                                    "value"
                                                    ((top)
                                                     #(ribcage
                                                       #(p)
                                                       #((top))
-                                                      #("i4440"))
+                                                      #("i4450"))
                                                     #(ribcage
                                                       #(p q)
                                                       #((top) (top))
-                                                      #("i4434" "i4435"))
+                                                      #("i4444" "i4445"))
                                                     #(ribcage () () ())
                                                     #(ribcage
                                                       #(p lev)
                                                       #((top) (top))
-                                                      #("i4430" "i4431"))
+                                                      #("i4440" "i4441"))
                                                     #(ribcage
                                                       (emit quasivector
                                                             quasilist*
@@ -15881,32 +15984,32 @@
                                                        (top)
                                                        (top)
                                                        (top))
-                                                      ("i4391"
-                                                       "i4389"
-                                                       "i4387"
-                                                       "i4385"
-                                                       "i4383"
-                                                       "i4381"
-                                                       "i4379")))
+                                                      ("i4401"
+                                                       "i4399"
+                                                       "i4397"
+                                                       "i4395"
+                                                       "i4393"
+                                                       "i4391"
+                                                       "i4389")))
                                                    (hygiene guile))
-                                                #{tmp 4442}#))
-                                        #{p 4441}#)
-                                   (#{vquasi 4382}# #{q 4437}# #{lev 4429}#))
-                                 (#{quasicons 4384}#
-                                   (#{quasicons 4384}#
+                                                #{tmp 4452}#))
+                                        #{p 4451}#)
+                                   (#{vquasi 4392}# #{q 4447}# #{lev 4439}#))
+                                 (#{quasicons 4394}#
+                                   (#{quasicons 4394}#
                                      '(#(syntax-object
                                          "quote"
                                          ((top)
-                                          #(ribcage #(p) #((top)) #("i4440"))
+                                          #(ribcage #(p) #((top)) #("i4450"))
                                           #(ribcage
                                             #(p q)
                                             #((top) (top))
-                                            #("i4434" "i4435"))
+                                            #("i4444" "i4445"))
                                           #(ribcage () () ())
                                           #(ribcage
                                             #(p lev)
                                             #((top) (top))
-                                            #("i4430" "i4431"))
+                                            #("i4440" "i4441"))
                                           #(ribcage
                                             (emit quasivector
                                                   quasilist*
@@ -15921,27 +16024,27 @@
                                              (top)
                                              (top)
                                              (top))
-                                            ("i4391"
-                                             "i4389"
-                                             "i4387"
-                                             "i4385"
-                                             "i4383"
-                                             "i4381"
-                                             "i4379")))
+                                            ("i4401"
+                                             "i4399"
+                                             "i4397"
+                                             "i4395"
+                                             "i4393"
+                                             "i4391"
+                                             "i4389")))
                                          (hygiene guile))
                                        #(syntax-object
                                          unquote
                                          ((top)
-                                          #(ribcage #(p) #((top)) #("i4440"))
+                                          #(ribcage #(p) #((top)) #("i4450"))
                                           #(ribcage
                                             #(p q)
                                             #((top) (top))
-                                            #("i4434" "i4435"))
+                                            #("i4444" "i4445"))
                                           #(ribcage () () ())
                                           #(ribcage
                                             #(p lev)
                                             #((top) (top))
-                                            #("i4430" "i4431"))
+                                            #("i4440" "i4441"))
                                           #(ribcage
                                             (emit quasivector
                                                   quasilist*
@@ -15956,22 +16059,22 @@
                                              (top)
                                              (top)
                                              (top))
-                                            ("i4391"
-                                             "i4389"
-                                             "i4387"
-                                             "i4385"
-                                             "i4383"
-                                             "i4381"
-                                             "i4379")))
+                                            ("i4401"
+                                             "i4399"
+                                             "i4397"
+                                             "i4395"
+                                             "i4393"
+                                             "i4391"
+                                             "i4389")))
                                          (hygiene guile)))
-                                     (#{quasi 4380}#
-                                       #{p 4441}#
-                                       (#{1-}# #{lev 4429}#)))
-                                   (#{vquasi 4382}# #{q 4437}# #{lev 4429}#))))
-                             #{tmp 4439}#)
-                           (let ((#{tmp 4444}#
+                                     (#{quasi 4390}#
+                                       #{p 4451}#
+                                       (#{1-}# #{lev 4439}#)))
+                                   (#{vquasi 4392}# #{q 4447}# #{lev 4439}#))))
+                             #{tmp 4449}#)
+                           (let ((#{tmp 4454}#
                                    ($sc-dispatch
-                                     #{tmp 4438}#
+                                     #{tmp 4448}#
                                      '(#(free-id
                                          #(syntax-object
                                            unquote-splicing
@@ -15979,12 +16082,12 @@
                                             #(ribcage
                                               #(p q)
                                               #((top) (top))
-                                              #("i4434" "i4435"))
+                                              #("i4444" "i4445"))
                                             #(ribcage () () ())
                                             #(ribcage
                                               #(p lev)
                                               #((top) (top))
-                                              #("i4430" "i4431"))
+                                              #("i4440" "i4441"))
                                             #(ribcage
                                               (emit quasivector
                                                     quasilist*
@@ -15999,38 +16102,38 @@
                                                (top)
                                                (top)
                                                (top))
-                                              ("i4391"
-                                               "i4389"
-                                               "i4387"
-                                               "i4385"
-                                               "i4383"
-                                               "i4381"
-                                               "i4379")))
+                                              ("i4401"
+                                               "i4399"
+                                               "i4397"
+                                               "i4395"
+                                               "i4393"
+                                               "i4391"
+                                               "i4389")))
                                            (hygiene guile)))
                                        .
                                        each-any))))
-                             (if #{tmp 4444}#
+                             (if #{tmp 4454}#
                                (@apply
-                                 (lambda (#{p 4446}#)
-                                   (if (= #{lev 4429}# 0)
-                                     (#{quasiappend 4386}#
-                                       (map (lambda (#{tmp 4447}#)
+                                 (lambda (#{p 4456}#)
+                                   (if (= #{lev 4439}# 0)
+                                     (#{quasiappend 4396}#
+                                       (map (lambda (#{tmp 4457}#)
                                               (list '#(syntax-object
                                                        "value"
                                                        ((top)
                                                         #(ribcage
                                                           #(p)
                                                           #((top))
-                                                          #("i4445"))
+                                                          #("i4455"))
                                                         #(ribcage
                                                           #(p q)
                                                           #((top) (top))
-                                                          #("i4434" "i4435"))
+                                                          #("i4444" "i4445"))
                                                         #(ribcage () () ())
                                                         #(ribcage
                                                           #(p lev)
                                                           #((top) (top))
-                                                          #("i4430" "i4431"))
+                                                          #("i4440" "i4441"))
                                                         #(ribcage
                                                           (emit quasivector
                                                                 quasilist*
@@ -16045,37 +16148,37 @@
                                                            (top)
                                                            (top)
                                                            (top))
-                                                          ("i4391"
-                                                           "i4389"
-                                                           "i4387"
-                                                           "i4385"
-                                                           "i4383"
-                                                           "i4381"
-                                                           "i4379")))
+                                                          ("i4401"
+                                                           "i4399"
+                                                           "i4397"
+                                                           "i4395"
+                                                           "i4393"
+                                                           "i4391"
+                                                           "i4389")))
                                                        (hygiene guile))
-                                                    #{tmp 4447}#))
-                                            #{p 4446}#)
-                                       (#{vquasi 4382}#
-                                         #{q 4437}#
-                                         #{lev 4429}#))
-                                     (#{quasicons 4384}#
-                                       (#{quasicons 4384}#
+                                                    #{tmp 4457}#))
+                                            #{p 4456}#)
+                                       (#{vquasi 4392}#
+                                         #{q 4447}#
+                                         #{lev 4439}#))
+                                     (#{quasicons 4394}#
+                                       (#{quasicons 4394}#
                                          '(#(syntax-object
                                              "quote"
                                              ((top)
                                               #(ribcage
                                                 #(p)
                                                 #((top))
-                                                #("i4445"))
+                                                #("i4455"))
                                               #(ribcage
                                                 #(p q)
                                                 #((top) (top))
-                                                #("i4434" "i4435"))
+                                                #("i4444" "i4445"))
                                               #(ribcage () () ())
                                               #(ribcage
                                                 #(p lev)
                                                 #((top) (top))
-                                                #("i4430" "i4431"))
+                                                #("i4440" "i4441"))
                                               #(ribcage
                                                 (emit quasivector
                                                       quasilist*
@@ -16090,13 +16193,13 @@
                                                  (top)
                                                  (top)
                                                  (top))
-                                                ("i4391"
-                                                 "i4389"
-                                                 "i4387"
-                                                 "i4385"
-                                                 "i4383"
-                                                 "i4381"
-                                                 "i4379")))
+                                                ("i4401"
+                                                 "i4399"
+                                                 "i4397"
+                                                 "i4395"
+                                                 "i4393"
+                                                 "i4391"
+                                                 "i4389")))
                                              (hygiene guile))
                                            #(syntax-object
                                              unquote-splicing
@@ -16104,16 +16207,16 @@
                                               #(ribcage
                                                 #(p)
                                                 #((top))
-                                                #("i4445"))
+                                                #("i4455"))
                                               #(ribcage
                                                 #(p q)
                                                 #((top) (top))
-                                                #("i4434" "i4435"))
+                                                #("i4444" "i4445"))
                                               #(ribcage () () ())
                                               #(ribcage
                                                 #(p lev)
                                                 #((top) (top))
-                                                #("i4430" "i4431"))
+                                                #("i4440" "i4441"))
                                               #(ribcage
                                                 (emit quasivector
                                                       quasilist*
@@ -16128,30 +16231,30 @@
                                                  (top)
                                                  (top)
                                                  (top))
-                                                ("i4391"
-                                                 "i4389"
-                                                 "i4387"
-                                                 "i4385"
-                                                 "i4383"
-                                                 "i4381"
-                                                 "i4379")))
+                                                ("i4401"
+                                                 "i4399"
+                                                 "i4397"
+                                                 "i4395"
+                                                 "i4393"
+                                                 "i4391"
+                                                 "i4389")))
                                              (hygiene guile)))
-                                         (#{quasi 4380}#
-                                           #{p 4446}#
-                                           (#{1-}# #{lev 4429}#)))
-                                       (#{vquasi 4382}#
-                                         #{q 4437}#
-                                         #{lev 4429}#))))
-                                 #{tmp 4444}#)
-                               (let ((#{_ 4450}# #{tmp 4438}#))
-                                 (#{quasicons 4384}#
-                                   (#{quasi 4380}# #{p 4436}# #{lev 4429}#)
-                                   (#{vquasi 4382}#
-                                     #{q 4437}#
-                                     #{lev 4429}#)))))))))
-                   #{tmp 4433}#)
-                 (let ((#{tmp 4451}# ($sc-dispatch #{tmp 4432}# '())))
-                   (if #{tmp 4451}#
+                                         (#{quasi 4390}#
+                                           #{p 4456}#
+                                           (#{1-}# #{lev 4439}#)))
+                                       (#{vquasi 4392}#
+                                         #{q 4447}#
+                                         #{lev 4439}#))))
+                                 #{tmp 4454}#)
+                               (let ((#{_ 4460}# #{tmp 4448}#))
+                                 (#{quasicons 4394}#
+                                   (#{quasi 4390}# #{p 4446}# #{lev 4439}#)
+                                   (#{vquasi 4392}#
+                                     #{q 4447}#
+                                     #{lev 4439}#)))))))))
+                   #{tmp 4443}#)
+                 (let ((#{tmp 4461}# ($sc-dispatch #{tmp 4442}# '())))
+                   (if #{tmp 4461}#
                      (@apply
                        (lambda ()
                          '(#(syntax-object
@@ -16161,7 +16264,7 @@
                               #(ribcage
                                 #(p lev)
                                 #((top) (top))
-                                #("i4430" "i4431"))
+                                #("i4440" "i4441"))
                               #(ribcage
                                 (emit quasivector
                                       quasilist*
@@ -16170,66 +16273,66 @@
                                       vquasi
                                       quasi)
                                 ((top) (top) (top) (top) (top) (top) (top))
-                                ("i4391"
-                                 "i4389"
-                                 "i4387"
-                                 "i4385"
-                                 "i4383"
-                                 "i4381"
-                                 "i4379")))
+                                ("i4401"
+                                 "i4399"
+                                 "i4397"
+                                 "i4395"
+                                 "i4393"
+                                 "i4391"
+                                 "i4389")))
                              (hygiene guile))
                            ()))
-                       #{tmp 4451}#)
+                       #{tmp 4461}#)
                      (syntax-violation
                        #f
                        "source expression failed to match any pattern"
-                       #{tmp 4432}#))))))))
-       (#{quasicons 4384}#
-         (lambda (#{x 4452}# #{y 4453}#)
-           (let ((#{tmp 4457}# (list #{x 4452}# #{y 4453}#)))
-             (let ((#{tmp 4458}#
-                     ($sc-dispatch #{tmp 4457}# '(any any))))
-               (if #{tmp 4458}#
+                       #{tmp 4442}#))))))))
+       (#{quasicons 4394}#
+         (lambda (#{x 4462}# #{y 4463}#)
+           (let ((#{tmp 4467}# (list #{x 4462}# #{y 4463}#)))
+             (let ((#{tmp 4468}#
+                     ($sc-dispatch #{tmp 4467}# '(any any))))
+               (if #{tmp 4468}#
                  (@apply
-                   (lambda (#{x 4461}# #{y 4462}#)
-                     (let ((#{tmp 4463}# #{y 4462}#))
-                       (let ((#{tmp 4464}#
+                   (lambda (#{x 4471}# #{y 4472}#)
+                     (let ((#{tmp 4473}# #{y 4472}#))
+                       (let ((#{tmp 4474}#
                                ($sc-dispatch
-                                 #{tmp 4463}#
+                                 #{tmp 4473}#
                                  '(#(atom "quote") any))))
-                         (if #{tmp 4464}#
+                         (if #{tmp 4474}#
                            (@apply
-                             (lambda (#{dy 4466}#)
-                               (let ((#{tmp 4467}# #{x 4461}#))
-                                 (let ((#{tmp 4468}#
+                             (lambda (#{dy 4476}#)
+                               (let ((#{tmp 4477}# #{x 4471}#))
+                                 (let ((#{tmp 4478}#
                                          ($sc-dispatch
-                                           #{tmp 4467}#
+                                           #{tmp 4477}#
                                            '(#(atom "quote") any))))
-                                   (if #{tmp 4468}#
+                                   (if #{tmp 4478}#
                                      (@apply
-                                       (lambda (#{dx 4470}#)
+                                       (lambda (#{dx 4480}#)
                                          (list '#(syntax-object
                                                   "quote"
                                                   ((top)
                                                    #(ribcage
                                                      #(dx)
                                                      #((top))
-                                                     #("i4469"))
+                                                     #("i4479"))
                                                    #(ribcage
                                                      #(dy)
                                                      #((top))
-                                                     #("i4465"))
+                                                     #("i4475"))
                                                    #(ribcage () () ())
                                                    #(ribcage
                                                      #(x y)
                                                      #((top) (top))
-                                                     #("i4459" "i4460"))
+                                                     #("i4469" "i4470"))
                                                    #(ribcage () () ())
                                                    #(ribcage () () ())
                                                    #(ribcage
                                                      #(x y)
                                                      #((top) (top))
-                                                     #("i4454" "i4455"))
+                                                     #("i4464" "i4465"))
                                                    #(ribcage
                                                      (emit quasivector
                                                            quasilist*
@@ -16244,40 +16347,40 @@
                                                       (top)
                                                       (top)
                                                       (top))
-                                                     ("i4391"
-                                                      "i4389"
-                                                      "i4387"
-                                                      "i4385"
-                                                      "i4383"
-                                                      "i4381"
-                                                      "i4379")))
+                                                     ("i4401"
+                                                      "i4399"
+                                                      "i4397"
+                                                      "i4395"
+                                                      "i4393"
+                                                      "i4391"
+                                                      "i4389")))
                                                   (hygiene guile))
-                                               (cons #{dx 4470}# #{dy 4466}#)))
-                                       #{tmp 4468}#)
-                                     (let ((#{_ 4472}# #{tmp 4467}#))
-                                       (if (null? #{dy 4466}#)
+                                               (cons #{dx 4480}# #{dy 4476}#)))
+                                       #{tmp 4478}#)
+                                     (let ((#{_ 4482}# #{tmp 4477}#))
+                                       (if (null? #{dy 4476}#)
                                          (list '#(syntax-object
                                                   "list"
                                                   ((top)
                                                    #(ribcage
                                                      #(_)
                                                      #((top))
-                                                     #("i4471"))
+                                                     #("i4481"))
                                                    #(ribcage
                                                      #(dy)
                                                      #((top))
-                                                     #("i4465"))
+                                                     #("i4475"))
                                                    #(ribcage () () ())
                                                    #(ribcage
                                                      #(x y)
                                                      #((top) (top))
-                                                     #("i4459" "i4460"))
+                                                     #("i4469" "i4470"))
                                                    #(ribcage () () ())
                                                    #(ribcage () () ())
                                                    #(ribcage
                                                      #(x y)
                                                      #((top) (top))
-                                                     #("i4454" "i4455"))
+                                                     #("i4464" "i4465"))
                                                    #(ribcage
                                                      (emit quasivector
                                                            quasilist*
@@ -16292,37 +16395,37 @@
                                                       (top)
                                                       (top)
                                                       (top))
-                                                     ("i4391"
-                                                      "i4389"
-                                                      "i4387"
-                                                      "i4385"
-                                                      "i4383"
-                                                      "i4381"
-                                                      "i4379")))
+                                                     ("i4401"
+                                                      "i4399"
+                                                      "i4397"
+                                                      "i4395"
+                                                      "i4393"
+                                                      "i4391"
+                                                      "i4389")))
                                                   (hygiene guile))
-                                               #{x 4461}#)
+                                               #{x 4471}#)
                                          (list '#(syntax-object
                                                   "list*"
                                                   ((top)
                                                    #(ribcage
                                                      #(_)
                                                      #((top))
-                                                     #("i4471"))
+                                                     #("i4481"))
                                                    #(ribcage
                                                      #(dy)
                                                      #((top))
-                                                     #("i4465"))
+                                                     #("i4475"))
                                                    #(ribcage () () ())
                                                    #(ribcage
                                                      #(x y)
                                                      #((top) (top))
-                                                     #("i4459" "i4460"))
+                                                     #("i4469" "i4470"))
                                                    #(ribcage () () ())
                                                    #(ribcage () () ())
                                                    #(ribcage
                                                      #(x y)
                                                      #((top) (top))
-                                                     #("i4454" "i4455"))
+                                                     #("i4464" "i4465"))
                                                    #(ribcage
                                                      (emit quasivector
                                                            quasilist*
@@ -16337,42 +16440,42 @@
                                                       (top)
                                                       (top)
                                                       (top))
-                                                     ("i4391"
-                                                      "i4389"
-                                                      "i4387"
-                                                      "i4385"
-                                                      "i4383"
-                                                      "i4381"
-                                                      "i4379")))
+                                                     ("i4401"
+                                                      "i4399"
+                                                      "i4397"
+                                                      "i4395"
+                                                      "i4393"
+                                                      "i4391"
+                                                      "i4389")))
                                                   (hygiene guile))
-                                               #{x 4461}#
-                                               #{y 4462}#)))))))
-                             #{tmp 4464}#)
-                           (let ((#{tmp 4473}#
+                                               #{x 4471}#
+                                               #{y 4472}#)))))))
+                             #{tmp 4474}#)
+                           (let ((#{tmp 4483}#
                                    ($sc-dispatch
-                                     #{tmp 4463}#
+                                     #{tmp 4473}#
                                      '(#(atom "list") . any))))
-                             (if #{tmp 4473}#
+                             (if #{tmp 4483}#
                                (@apply
-                                 (lambda (#{stuff 4475}#)
+                                 (lambda (#{stuff 4485}#)
                                    (cons '#(syntax-object
                                             "list"
                                             ((top)
                                              #(ribcage
                                                #(stuff)
                                                #((top))
-                                               #("i4474"))
+                                               #("i4484"))
                                              #(ribcage () () ())
                                              #(ribcage
                                                #(x y)
                                                #((top) (top))
-                                               #("i4459" "i4460"))
+                                               #("i4469" "i4470"))
                                              #(ribcage () () ())
                                              #(ribcage () () ())
                                              #(ribcage
                                                #(x y)
                                                #((top) (top))
-                                               #("i4454" "i4455"))
+                                               #("i4464" "i4465"))
                                              #(ribcage
                                                (emit quasivector
                                                      quasilist*
@@ -16387,41 +16490,41 @@
                                                 (top)
                                                 (top)
                                                 (top))
-                                               ("i4391"
-                                                "i4389"
-                                                "i4387"
-                                                "i4385"
-                                                "i4383"
-                                                "i4381"
-                                                "i4379")))
+                                               ("i4401"
+                                                "i4399"
+                                                "i4397"
+                                                "i4395"
+                                                "i4393"
+                                                "i4391"
+                                                "i4389")))
                                             (hygiene guile))
-                                         (cons #{x 4461}# #{stuff 4475}#)))
-                                 #{tmp 4473}#)
-                               (let ((#{tmp 4476}#
+                                         (cons #{x 4471}# #{stuff 4485}#)))
+                                 #{tmp 4483}#)
+                               (let ((#{tmp 4486}#
                                        ($sc-dispatch
-                                         #{tmp 4463}#
+                                         #{tmp 4473}#
                                          '(#(atom "list*") . any))))
-                                 (if #{tmp 4476}#
+                                 (if #{tmp 4486}#
                                    (@apply
-                                     (lambda (#{stuff 4478}#)
+                                     (lambda (#{stuff 4488}#)
                                        (cons '#(syntax-object
                                                 "list*"
                                                 ((top)
                                                  #(ribcage
                                                    #(stuff)
                                                    #((top))
-                                                   #("i4477"))
+                                                   #("i4487"))
                                                  #(ribcage () () ())
                                                  #(ribcage
                                                    #(x y)
                                                    #((top) (top))
-                                                   #("i4459" "i4460"))
+                                                   #("i4469" "i4470"))
                                                  #(ribcage () () ())
                                                  #(ribcage () () ())
                                                  #(ribcage
                                                    #(x y)
                                                    #((top) (top))
-                                                   #("i4454" "i4455"))
+                                                   #("i4464" "i4465"))
                                                  #(ribcage
                                                    (emit quasivector
                                                          quasilist*
@@ -16436,35 +16539,35 @@
                                                     (top)
                                                     (top)
                                                     (top))
-                                                   ("i4391"
-                                                    "i4389"
-                                                    "i4387"
-                                                    "i4385"
-                                                    "i4383"
-                                                    "i4381"
-                                                    "i4379")))
+                                                   ("i4401"
+                                                    "i4399"
+                                                    "i4397"
+                                                    "i4395"
+                                                    "i4393"
+                                                    "i4391"
+                                                    "i4389")))
                                                 (hygiene guile))
-                                             (cons #{x 4461}# #{stuff 4478}#)))
-                                     #{tmp 4476}#)
-                                   (let ((#{_ 4480}# #{tmp 4463}#))
+                                             (cons #{x 4471}# #{stuff 4488}#)))
+                                     #{tmp 4486}#)
+                                   (let ((#{_ 4490}# #{tmp 4473}#))
                                      (list '#(syntax-object
                                               "list*"
                                               ((top)
                                                #(ribcage
                                                  #(_)
                                                  #((top))
-                                                 #("i4479"))
+                                                 #("i4489"))
                                                #(ribcage () () ())
                                                #(ribcage
                                                  #(x y)
                                                  #((top) (top))
-                                                 #("i4459" "i4460"))
+                                                 #("i4469" "i4470"))
                                                #(ribcage () () ())
                                                #(ribcage () () ())
                                                #(ribcage
                                                  #(x y)
                                                  #((top) (top))
-                                                 #("i4454" "i4455"))
+                                                 #("i4464" "i4465"))
                                                #(ribcage
                                                  (emit quasivector
                                                        quasilist*
@@ -16479,30 +16582,30 @@
                                                   (top)
                                                   (top)
                                                   (top))
-                                                 ("i4391"
-                                                  "i4389"
-                                                  "i4387"
-                                                  "i4385"
-                                                  "i4383"
-                                                  "i4381"
-                                                  "i4379")))
+                                                 ("i4401"
+                                                  "i4399"
+                                                  "i4397"
+                                                  "i4395"
+                                                  "i4393"
+                                                  "i4391"
+                                                  "i4389")))
                                               (hygiene guile))
-                                           #{x 4461}#
-                                           #{y 4462}#))))))))))
-                   #{tmp 4458}#)
+                                           #{x 4471}#
+                                           #{y 4472}#))))))))))
+                   #{tmp 4468}#)
                  (syntax-violation
                    #f
                    "source expression failed to match any pattern"
-                   #{tmp 4457}#))))))
-       (#{quasiappend 4386}#
-         (lambda (#{x 4481}# #{y 4482}#)
-           (let ((#{tmp 4485}# #{y 4482}#))
-             (let ((#{tmp 4486}#
-                     ($sc-dispatch #{tmp 4485}# '(#(atom "quote") ()))))
-               (if #{tmp 4486}#
+                   #{tmp 4467}#))))))
+       (#{quasiappend 4396}#
+         (lambda (#{x 4491}# #{y 4492}#)
+           (let ((#{tmp 4495}# #{y 4492}#))
+             (let ((#{tmp 4496}#
+                     ($sc-dispatch #{tmp 4495}# '(#(atom "quote") ()))))
+               (if #{tmp 4496}#
                  (@apply
                    (lambda ()
-                     (if (null? #{x 4481}#)
+                     (if (null? #{x 4491}#)
                        '(#(syntax-object
                            "quote"
                            ((top)
@@ -16510,7 +16613,7 @@
                             #(ribcage
                               #(x y)
                               #((top) (top))
-                              #("i4483" "i4484"))
+                              #("i4493" "i4494"))
                             #(ribcage
                               (emit quasivector
                                     quasilist*
@@ -16519,23 +16622,23 @@
                                     vquasi
                                     quasi)
                               ((top) (top) (top) (top) (top) (top) (top))
-                              ("i4391"
-                               "i4389"
-                               "i4387"
-                               "i4385"
-                               "i4383"
-                               "i4381"
-                               "i4379")))
+                              ("i4401"
+                               "i4399"
+                               "i4397"
+                               "i4395"
+                               "i4393"
+                               "i4391"
+                               "i4389")))
                            (hygiene guile))
                          ())
-                       (if (null? (cdr #{x 4481}#))
-                         (car #{x 4481}#)
-                         (let ((#{tmp 4493}# #{x 4481}#))
-                           (let ((#{tmp 4494}#
-                                   ($sc-dispatch #{tmp 4493}# 'each-any)))
-                             (if #{tmp 4494}#
+                       (if (null? (cdr #{x 4491}#))
+                         (car #{x 4491}#)
+                         (let ((#{tmp 4503}# #{x 4491}#))
+                           (let ((#{tmp 4504}#
+                                   ($sc-dispatch #{tmp 4503}# 'each-any)))
+                             (if #{tmp 4504}#
                                (@apply
-                                 (lambda (#{p 4496}#)
+                                 (lambda (#{p 4506}#)
                                    (cons '#(syntax-object
                                             "append"
                                             ((top)
@@ -16543,12 +16646,12 @@
                                              #(ribcage
                                                #(p)
                                                #((top))
-                                               #("i4495"))
+                                               #("i4505"))
                                              #(ribcage () () ())
                                              #(ribcage
                                                #(x y)
                                                #((top) (top))
-                                               #("i4483" "i4484"))
+                                               #("i4493" "i4494"))
                                              #(ribcage
                                                (emit quasivector
                                                      quasilist*
@@ -16563,30 +16666,30 @@
                                                 (top)
                                                 (top)
                                                 (top))
-                                               ("i4391"
-                                                "i4389"
-                                                "i4387"
-                                                "i4385"
-                                                "i4383"
-                                                "i4381"
-                                                "i4379")))
+                                               ("i4401"
+                                                "i4399"
+                                                "i4397"
+                                                "i4395"
+                                                "i4393"
+                                                "i4391"
+                                                "i4389")))
                                             (hygiene guile))
-                                         #{p 4496}#))
-                                 #{tmp 4494}#)
+                                         #{p 4506}#))
+                                 #{tmp 4504}#)
                                (syntax-violation
                                  #f
                                  "source expression failed to match any 
pattern"
-                                 #{tmp 4493}#)))))))
-                   #{tmp 4486}#)
-                 (let ((#{_ 4499}# #{tmp 4485}#))
-                   (if (null? #{x 4481}#)
-                     #{y 4482}#
-                     (let ((#{tmp 4504}# (list #{x 4481}# #{y 4482}#)))
-                       (let ((#{tmp 4505}#
-                               ($sc-dispatch #{tmp 4504}# '(each-any any))))
-                         (if #{tmp 4505}#
+                                 #{tmp 4503}#)))))))
+                   #{tmp 4496}#)
+                 (let ((#{_ 4509}# #{tmp 4495}#))
+                   (if (null? #{x 4491}#)
+                     #{y 4492}#
+                     (let ((#{tmp 4514}# (list #{x 4491}# #{y 4492}#)))
+                       (let ((#{tmp 4515}#
+                               ($sc-dispatch #{tmp 4514}# '(each-any any))))
+                         (if #{tmp 4515}#
                            (@apply
-                             (lambda (#{p 4508}# #{y 4509}#)
+                             (lambda (#{p 4518}# #{y 4519}#)
                                (cons '#(syntax-object
                                         "append"
                                         ((top)
@@ -16594,13 +16697,13 @@
                                          #(ribcage
                                            #(p y)
                                            #((top) (top))
-                                           #("i4506" "i4507"))
-                                         #(ribcage #(_) #((top)) #("i4498"))
+                                           #("i4516" "i4517"))
+                                         #(ribcage #(_) #((top)) #("i4508"))
                                          #(ribcage () () ())
                                          #(ribcage
                                            #(x y)
                                            #((top) (top))
-                                           #("i4483" "i4484"))
+                                           #("i4493" "i4494"))
                                          #(ribcage
                                            (emit quasivector
                                                  quasilist*
@@ -16615,47 +16718,47 @@
                                             (top)
                                             (top)
                                             (top))
-                                           ("i4391"
-                                            "i4389"
-                                            "i4387"
-                                            "i4385"
-                                            "i4383"
-                                            "i4381"
-                                            "i4379")))
+                                           ("i4401"
+                                            "i4399"
+                                            "i4397"
+                                            "i4395"
+                                            "i4393"
+                                            "i4391"
+                                            "i4389")))
                                         (hygiene guile))
-                                     (append #{p 4508}# (list #{y 4509}#))))
-                             #{tmp 4505}#)
+                                     (append #{p 4518}# (list #{y 4519}#))))
+                             #{tmp 4515}#)
                            (syntax-violation
                              #f
                              "source expression failed to match any pattern"
-                             #{tmp 4504}#)))))))))))
-       (#{quasilist* 4388}#
-         (lambda (#{x 4511}# #{y 4512}#)
+                             #{tmp 4514}#)))))))))))
+       (#{quasilist* 4398}#
+         (lambda (#{x 4521}# #{y 4522}#)
            (letrec*
-             ((#{f 4517}#
-                (lambda (#{x 4518}#)
-                  (if (null? #{x 4518}#)
-                    #{y 4512}#
-                    (#{quasicons 4384}#
-                      (car #{x 4518}#)
-                      (#{f 4517}# (cdr #{x 4518}#)))))))
-             (begin (#{f 4517}# #{x 4511}#)))))
-       (#{quasivector 4390}#
-         (lambda (#{x 4519}#)
-           (let ((#{tmp 4521}# #{x 4519}#))
-             (let ((#{tmp 4522}#
+             ((#{f 4527}#
+                (lambda (#{x 4528}#)
+                  (if (null? #{x 4528}#)
+                    #{y 4522}#
+                    (#{quasicons 4394}#
+                      (car #{x 4528}#)
+                      (#{f 4527}# (cdr #{x 4528}#)))))))
+             (begin (#{f 4527}# #{x 4521}#)))))
+       (#{quasivector 4400}#
+         (lambda (#{x 4529}#)
+           (let ((#{tmp 4531}# #{x 4529}#))
+             (let ((#{tmp 4532}#
                      ($sc-dispatch
-                       #{tmp 4521}#
+                       #{tmp 4531}#
                        '(#(atom "quote") each-any))))
-               (if #{tmp 4522}#
+               (if #{tmp 4532}#
                  (@apply
-                   (lambda (#{x 4524}#)
+                   (lambda (#{x 4534}#)
                      (list '#(syntax-object
                               "quote"
                               ((top)
-                               #(ribcage #(x) #((top)) #("i4523"))
+                               #(ribcage #(x) #((top)) #("i4533"))
                                #(ribcage () () ())
-                               #(ribcage #(x) #((top)) #("i4520"))
+                               #(ribcage #(x) #((top)) #("i4530"))
                                #(ribcage
                                  (emit quasivector
                                        quasilist*
@@ -16664,53 +16767,53 @@
                                        vquasi
                                        quasi)
                                  ((top) (top) (top) (top) (top) (top) (top))
-                                 ("i4391"
-                                  "i4389"
-                                  "i4387"
-                                  "i4385"
-                                  "i4383"
-                                  "i4381"
-                                  "i4379")))
+                                 ("i4401"
+                                  "i4399"
+                                  "i4397"
+                                  "i4395"
+                                  "i4393"
+                                  "i4391"
+                                  "i4389")))
                               (hygiene guile))
-                           (list->vector #{x 4524}#)))
-                   #{tmp 4522}#)
-                 (let ((#{_ 4527}# #{tmp 4521}#))
+                           (list->vector #{x 4534}#)))
+                   #{tmp 4532}#)
+                 (let ((#{_ 4537}# #{tmp 4531}#))
                    (letrec*
-                     ((#{f 4531}#
-                        (lambda (#{y 4532}# #{k 4533}#)
-                          (let ((#{tmp 4544}# #{y 4532}#))
-                            (let ((#{tmp 4545}#
+                     ((#{f 4541}#
+                        (lambda (#{y 4542}# #{k 4543}#)
+                          (let ((#{tmp 4554}# #{y 4542}#))
+                            (let ((#{tmp 4555}#
                                     ($sc-dispatch
-                                      #{tmp 4544}#
+                                      #{tmp 4554}#
                                       '(#(atom "quote") each-any))))
-                              (if #{tmp 4545}#
+                              (if #{tmp 4555}#
                                 (@apply
-                                  (lambda (#{y 4547}#)
-                                    (#{k 4533}#
-                                      (map (lambda (#{tmp 4548}#)
+                                  (lambda (#{y 4557}#)
+                                    (#{k 4543}#
+                                      (map (lambda (#{tmp 4558}#)
                                              (list '#(syntax-object
                                                       "quote"
                                                       ((top)
                                                        #(ribcage
                                                          #(y)
                                                          #((top))
-                                                         #("i4546"))
+                                                         #("i4556"))
                                                        #(ribcage () () ())
                                                        #(ribcage
                                                          #(f y k)
                                                          #((top) (top) (top))
-                                                         #("i4528"
-                                                           "i4529"
-                                                           "i4530"))
+                                                         #("i4538"
+                                                           "i4539"
+                                                           "i4540"))
                                                        #(ribcage
                                                          #(_)
                                                          #((top))
-                                                         #("i4526"))
+                                                         #("i4536"))
                                                        #(ribcage () () ())
                                                        #(ribcage
                                                          #(x)
                                                          #((top))
-                                                         #("i4520"))
+                                                         #("i4530"))
                                                        #(ribcage
                                                          (emit quasivector
                                                                quasilist*
@@ -16725,75 +16828,75 @@
                                                           (top)
                                                           (top)
                                                           (top))
-                                                         ("i4391"
-                                                          "i4389"
-                                                          "i4387"
-                                                          "i4385"
-                                                          "i4383"
-                                                          "i4381"
-                                                          "i4379")))
+                                                         ("i4401"
+                                                          "i4399"
+                                                          "i4397"
+                                                          "i4395"
+                                                          "i4393"
+                                                          "i4391"
+                                                          "i4389")))
                                                       (hygiene guile))
-                                                   #{tmp 4548}#))
-                                           #{y 4547}#)))
-                                  #{tmp 4545}#)
-                                (let ((#{tmp 4549}#
+                                                   #{tmp 4558}#))
+                                           #{y 4557}#)))
+                                  #{tmp 4555}#)
+                                (let ((#{tmp 4559}#
                                         ($sc-dispatch
-                                          #{tmp 4544}#
+                                          #{tmp 4554}#
                                           '(#(atom "list") . each-any))))
-                                  (if #{tmp 4549}#
+                                  (if #{tmp 4559}#
                                     (@apply
-                                      (lambda (#{y 4551}#)
-                                        (#{k 4533}# #{y 4551}#))
-                                      #{tmp 4549}#)
-                                    (let ((#{tmp 4553}#
+                                      (lambda (#{y 4561}#)
+                                        (#{k 4543}# #{y 4561}#))
+                                      #{tmp 4559}#)
+                                    (let ((#{tmp 4563}#
                                             ($sc-dispatch
-                                              #{tmp 4544}#
+                                              #{tmp 4554}#
                                               '(#(atom "list*")
                                                 .
                                                 #(each+ any (any) ())))))
-                                      (if #{tmp 4553}#
+                                      (if #{tmp 4563}#
                                         (@apply
-                                          (lambda (#{y 4556}# #{z 4557}#)
-                                            (#{f 4531}#
-                                              #{z 4557}#
-                                              (lambda (#{ls 4558}#)
-                                                (#{k 4533}#
+                                          (lambda (#{y 4566}# #{z 4567}#)
+                                            (#{f 4541}#
+                                              #{z 4567}#
+                                              (lambda (#{ls 4568}#)
+                                                (#{k 4543}#
                                                   (append
-                                                    #{y 4556}#
-                                                    #{ls 4558}#)))))
-                                          #{tmp 4553}#)
-                                        (let ((#{else 4562}# #{tmp 4544}#))
-                                          (let ((#{tmp 4566}# #{x 4519}#))
-                                            (let ((#{ g4563 4568}#
-                                                    #{tmp 4566}#))
+                                                    #{y 4566}#
+                                                    #{ls 4568}#)))))
+                                          #{tmp 4563}#)
+                                        (let ((#{else 4572}# #{tmp 4554}#))
+                                          (let ((#{tmp 4576}# #{x 4529}#))
+                                            (let ((#{ g4573 4578}#
+                                                    #{tmp 4576}#))
                                               (list '#(syntax-object
                                                        "list->vector"
                                                        ((top)
                                                         #(ribcage () () ())
                                                         #(ribcage
-                                                          #(#{ g4563}#)
-                                                          #((m4564 top))
-                                                          #("i4567"))
+                                                          #(#{ g4573}#)
+                                                          #((m4574 top))
+                                                          #("i4577"))
                                                         #(ribcage
                                                           #(else)
                                                           #((top))
-                                                          #("i4561"))
+                                                          #("i4571"))
                                                         #(ribcage () () ())
                                                         #(ribcage
                                                           #(f y k)
                                                           #((top) (top) (top))
-                                                          #("i4528"
-                                                            "i4529"
-                                                            "i4530"))
+                                                          #("i4538"
+                                                            "i4539"
+                                                            "i4540"))
                                                         #(ribcage
                                                           #(_)
                                                           #((top))
-                                                          #("i4526"))
+                                                          #("i4536"))
                                                         #(ribcage () () ())
                                                         #(ribcage
                                                           #(x)
                                                           #((top))
-                                                          #("i4520"))
+                                                          #("i4530"))
                                                         #(ribcage
                                                           (emit quasivector
                                                                 quasilist*
@@ -16808,49 +16911,49 @@
                                                            (top)
                                                            (top)
                                                            (top))
-                                                          ("i4391"
-                                                           "i4389"
-                                                           "i4387"
-                                                           "i4385"
-                                                           "i4383"
-                                                           "i4381"
-                                                           "i4379")))
+                                                          ("i4401"
+                                                           "i4399"
+                                                           "i4397"
+                                                           "i4395"
+                                                           "i4393"
+                                                           "i4391"
+                                                           "i4389")))
                                                        (hygiene guile))
-                                                    #{ g4563 
4568}#))))))))))))))
+                                                    #{ g4573 
4578}#))))))))))))))
                      (begin
-                       (#{f 4531}#
-                         #{x 4519}#
-                         (lambda (#{ls 4534}#)
-                           (let ((#{tmp 4539}# #{ls 4534}#))
-                             (let ((#{tmp 4540}#
-                                     ($sc-dispatch #{tmp 4539}# 'each-any)))
-                               (if #{tmp 4540}#
+                       (#{f 4541}#
+                         #{x 4529}#
+                         (lambda (#{ls 4544}#)
+                           (let ((#{tmp 4549}# #{ls 4544}#))
+                             (let ((#{tmp 4550}#
+                                     ($sc-dispatch #{tmp 4549}# 'each-any)))
+                               (if #{tmp 4550}#
                                  (@apply
-                                   (lambda (#{ g4536 4542}#)
+                                   (lambda (#{ g4546 4552}#)
                                      (cons '#(syntax-object
                                               "vector"
                                               ((top)
                                                #(ribcage () () ())
                                                #(ribcage
-                                                 #(#{ g4536}#)
-                                                 #((m4537 top))
-                                                 #("i4541"))
+                                                 #(#{ g4546}#)
+                                                 #((m4547 top))
+                                                 #("i4551"))
                                                #(ribcage () () ())
                                                #(ribcage () () ())
                                                #(ribcage () () ())
                                                #(ribcage
                                                  #(ls)
                                                  #((top))
-                                                 #("i4535"))
+                                                 #("i4545"))
                                                #(ribcage
                                                  #(_)
                                                  #((top))
-                                                 #("i4526"))
+                                                 #("i4536"))
                                                #(ribcage () () ())
                                                #(ribcage
                                                  #(x)
                                                  #((top))
-                                                 #("i4520"))
+                                                 #("i4530"))
                                                #(ribcage
                                                  (emit quasivector
                                                        quasilist*
@@ -16865,36 +16968,36 @@
                                                   (top)
                                                   (top)
                                                   (top))
-                                                 ("i4391"
-                                                  "i4389"
-                                                  "i4387"
-                                                  "i4385"
-                                                  "i4383"
-                                                  "i4381"
-                                                  "i4379")))
+                                                 ("i4401"
+                                                  "i4399"
+                                                  "i4397"
+                                                  "i4395"
+                                                  "i4393"
+                                                  "i4391"
+                                                  "i4389")))
                                               (hygiene guile))
-                                           #{ g4536 4542}#))
-                                   #{tmp 4540}#)
+                                           #{ g4546 4552}#))
+                                   #{tmp 4550}#)
                                  (syntax-violation
                                    #f
                                    "source expression failed to match any 
pattern"
-                                   #{tmp 4539}#))))))))))))))
-       (#{emit 4392}#
-         (lambda (#{x 4569}#)
-           (let ((#{tmp 4571}# #{x 4569}#))
-             (let ((#{tmp 4572}#
+                                   #{tmp 4549}#))))))))))))))
+       (#{emit 4402}#
+         (lambda (#{x 4579}#)
+           (let ((#{tmp 4581}# #{x 4579}#))
+             (let ((#{tmp 4582}#
                      ($sc-dispatch
-                       #{tmp 4571}#
+                       #{tmp 4581}#
                        '(#(atom "quote") any))))
-               (if #{tmp 4572}#
+               (if #{tmp 4582}#
                  (@apply
-                   (lambda (#{x 4574}#)
+                   (lambda (#{x 4584}#)
                      (list '#(syntax-object
                               quote
                               ((top)
-                               #(ribcage #(x) #((top)) #("i4573"))
+                               #(ribcage #(x) #((top)) #("i4583"))
                                #(ribcage () () ())
-                               #(ribcage #(x) #((top)) #("i4570"))
+                               #(ribcage #(x) #((top)) #("i4580"))
                                #(ribcage
                                  (emit quasivector
                                        quasilist*
@@ -16903,46 +17006,46 @@
                                        vquasi
                                        quasi)
                                  ((top) (top) (top) (top) (top) (top) (top))
-                                 ("i4391"
-                                  "i4389"
-                                  "i4387"
-                                  "i4385"
-                                  "i4383"
-                                  "i4381"
-                                  "i4379")))
+                                 ("i4401"
+                                  "i4399"
+                                  "i4397"
+                                  "i4395"
+                                  "i4393"
+                                  "i4391"
+                                  "i4389")))
                               (hygiene guile))
-                           #{x 4574}#))
-                   #{tmp 4572}#)
-                 (let ((#{tmp 4575}#
+                           #{x 4584}#))
+                   #{tmp 4582}#)
+                 (let ((#{tmp 4585}#
                          ($sc-dispatch
-                           #{tmp 4571}#
+                           #{tmp 4581}#
                            '(#(atom "list") . each-any))))
-                   (if #{tmp 4575}#
+                   (if #{tmp 4585}#
                      (@apply
-                       (lambda (#{x 4577}#)
-                         (let ((#{tmp 4581}# (map #{emit 4392}# #{x 4577}#)))
-                           (let ((#{tmp 4582}#
-                                   ($sc-dispatch #{tmp 4581}# 'each-any)))
-                             (if #{tmp 4582}#
+                       (lambda (#{x 4587}#)
+                         (let ((#{tmp 4591}# (map #{emit 4402}# #{x 4587}#)))
+                           (let ((#{tmp 4592}#
+                                   ($sc-dispatch #{tmp 4591}# 'each-any)))
+                             (if #{tmp 4592}#
                                (@apply
-                                 (lambda (#{ g4578 4584}#)
+                                 (lambda (#{ g4588 4594}#)
                                    (cons '#(syntax-object
                                             list
                                             ((top)
                                              #(ribcage () () ())
                                              #(ribcage
-                                               #(#{ g4578}#)
-                                               #((m4579 top))
-                                               #("i4583"))
+                                               #(#{ g4588}#)
+                                               #((m4589 top))
+                                               #("i4593"))
                                              #(ribcage
                                                #(x)
                                                #((top))
-                                               #("i4576"))
+                                               #("i4586"))
                                              #(ribcage () () ())
                                              #(ribcage
                                                #(x)
                                                #((top))
-                                               #("i4570"))
+                                               #("i4580"))
                                              #(ribcage
                                                (emit quasivector
                                                      quasilist*
@@ -16957,70 +17060,70 @@
                                                 (top)
                                                 (top)
                                                 (top))
-                                               ("i4391"
-                                                "i4389"
-                                                "i4387"
-                                                "i4385"
-                                                "i4383"
-                                                "i4381"
-                                                "i4379")))
+                                               ("i4401"
+                                                "i4399"
+                                                "i4397"
+                                                "i4395"
+                                                "i4393"
+                                                "i4391"
+                                                "i4389")))
                                             (hygiene guile))
-                                         #{ g4578 4584}#))
-                                 #{tmp 4582}#)
+                                         #{ g4588 4594}#))
+                                 #{tmp 4592}#)
                                (syntax-violation
                                  #f
                                  "source expression failed to match any 
pattern"
-                                 #{tmp 4581}#)))))
-                       #{tmp 4575}#)
-                     (let ((#{tmp 4587}#
+                                 #{tmp 4591}#)))))
+                       #{tmp 4585}#)
+                     (let ((#{tmp 4597}#
                              ($sc-dispatch
-                               #{tmp 4571}#
+                               #{tmp 4581}#
                                '(#(atom "list*") . #(each+ any (any) ())))))
-                       (if #{tmp 4587}#
+                       (if #{tmp 4597}#
                          (@apply
-                           (lambda (#{x 4590}# #{y 4591}#)
+                           (lambda (#{x 4600}# #{y 4601}#)
                              (letrec*
-                               ((#{f 4594}#
-                                  (lambda (#{x* 4595}#)
-                                    (if (null? #{x* 4595}#)
-                                      (#{emit 4392}# #{y 4591}#)
-                                      (let ((#{tmp 4601}#
-                                              (list (#{emit 4392}#
-                                                      (car #{x* 4595}#))
-                                                    (#{f 4594}#
-                                                      (cdr #{x* 4595}#)))))
-                                        (let ((#{tmp 4602}#
+                               ((#{f 4604}#
+                                  (lambda (#{x* 4605}#)
+                                    (if (null? #{x* 4605}#)
+                                      (#{emit 4402}# #{y 4601}#)
+                                      (let ((#{tmp 4611}#
+                                              (list (#{emit 4402}#
+                                                      (car #{x* 4605}#))
+                                                    (#{f 4604}#
+                                                      (cdr #{x* 4605}#)))))
+                                        (let ((#{tmp 4612}#
                                                 ($sc-dispatch
-                                                  #{tmp 4601}#
+                                                  #{tmp 4611}#
                                                   '(any any))))
-                                          (if #{tmp 4602}#
+                                          (if #{tmp 4612}#
                                             (@apply
-                                              (lambda (#{ g4598 4605}#
-                                                       #{ g4597 4606}#)
+                                              (lambda (#{ g4608 4615}#
+                                                       #{ g4607 4616}#)
                                                 (list '#(syntax-object
                                                          cons
                                                          ((top)
                                                           #(ribcage () () ())
                                                           #(ribcage
-                                                            #(#{ g4598}#
-                                                              #{ g4597}#)
-                                                            #((m4599 top)
-                                                              (m4599 top))
-                                                            #("i4603" "i4604"))
+                                                            #(#{ g4608}#
+                                                              #{ g4607}#)
+                                                            #((m4609 top)
+                                                              (m4609 top))
+                                                            #("i4613" "i4614"))
                                                           #(ribcage () () ())
                                                           #(ribcage
                                                             #(f x*)
                                                             #((top) (top))
-                                                            #("i4592" "i4593"))
+                                                            #("i4602" "i4603"))
                                                           #(ribcage
                                                             #(x y)
                                                             #((top) (top))
-                                                            #("i4588" "i4589"))
+                                                            #("i4598" "i4599"))
                                                           #(ribcage () () ())
                                                           #(ribcage
                                                             #(x)
                                                             #((top))
-                                                            #("i4570"))
+                                                            #("i4580"))
                                                           #(ribcage
                                                             (emit quasivector
                                                                   quasilist*
@@ -17035,56 +17138,56 @@
                                                              (top)
                                                              (top)
                                                              (top))
-                                                            ("i4391"
-                                                             "i4389"
-                                                             "i4387"
-                                                             "i4385"
-                                                             "i4383"
-                                                             "i4381"
-                                                             "i4379")))
+                                                            ("i4401"
+                                                             "i4399"
+                                                             "i4397"
+                                                             "i4395"
+                                                             "i4393"
+                                                             "i4391"
+                                                             "i4389")))
                                                          (hygiene guile))
-                                                      #{ g4598 4605}#
-                                                      #{ g4597 4606}#))
-                                              #{tmp 4602}#)
+                                                      #{ g4608 4615}#
+                                                      #{ g4607 4616}#))
+                                              #{tmp 4612}#)
                                             (syntax-violation
                                               #f
                                               "source expression failed to 
match any pattern"
-                                              #{tmp 4601}#))))))))
-                               (begin (#{f 4594}# #{x 4590}#))))
-                           #{tmp 4587}#)
-                         (let ((#{tmp 4607}#
+                                              #{tmp 4611}#))))))))
+                               (begin (#{f 4604}# #{x 4600}#))))
+                           #{tmp 4597}#)
+                         (let ((#{tmp 4617}#
                                  ($sc-dispatch
-                                   #{tmp 4571}#
+                                   #{tmp 4581}#
                                    '(#(atom "append") . each-any))))
-                           (if #{tmp 4607}#
+                           (if #{tmp 4617}#
                              (@apply
-                               (lambda (#{x 4609}#)
-                                 (let ((#{tmp 4613}#
-                                         (map #{emit 4392}# #{x 4609}#)))
-                                   (let ((#{tmp 4614}#
+                               (lambda (#{x 4619}#)
+                                 (let ((#{tmp 4623}#
+                                         (map #{emit 4402}# #{x 4619}#)))
+                                   (let ((#{tmp 4624}#
                                            ($sc-dispatch
-                                             #{tmp 4613}#
+                                             #{tmp 4623}#
                                              'each-any)))
-                                     (if #{tmp 4614}#
+                                     (if #{tmp 4624}#
                                        (@apply
-                                         (lambda (#{ g4610 4616}#)
+                                         (lambda (#{ g4620 4626}#)
                                            (cons '#(syntax-object
                                                     append
                                                     ((top)
                                                      #(ribcage () () ())
                                                      #(ribcage
-                                                       #(#{ g4610}#)
-                                                       #((m4611 top))
-                                                       #("i4615"))
+                                                       #(#{ g4620}#)
+                                                       #((m4621 top))
+                                                       #("i4625"))
                                                      #(ribcage
                                                        #(x)
                                                        #((top))
-                                                       #("i4608"))
+                                                       #("i4618"))
                                                      #(ribcage () () ())
                                                      #(ribcage
                                                        #(x)
                                                        #((top))
-                                                       #("i4570"))
+                                                       #("i4580"))
                                                      #(ribcage
                                                        (emit quasivector
                                                              quasilist*
@@ -17099,54 +17202,54 @@
                                                         (top)
                                                         (top)
                                                         (top))
-                                                       ("i4391"
-                                                        "i4389"
-                                                        "i4387"
-                                                        "i4385"
-                                                        "i4383"
-                                                        "i4381"
-                                                        "i4379")))
+                                                       ("i4401"
+                                                        "i4399"
+                                                        "i4397"
+                                                        "i4395"
+                                                        "i4393"
+                                                        "i4391"
+                                                        "i4389")))
                                                     (hygiene guile))
-                                                 #{ g4610 4616}#))
-                                         #{tmp 4614}#)
+                                                 #{ g4620 4626}#))
+                                         #{tmp 4624}#)
                                        (syntax-violation
                                          #f
                                          "source expression failed to match 
any pattern"
-                                         #{tmp 4613}#)))))
-                               #{tmp 4607}#)
-                             (let ((#{tmp 4619}#
+                                         #{tmp 4623}#)))))
+                               #{tmp 4617}#)
+                             (let ((#{tmp 4629}#
                                      ($sc-dispatch
-                                       #{tmp 4571}#
+                                       #{tmp 4581}#
                                        '(#(atom "vector") . each-any))))
-                               (if #{tmp 4619}#
+                               (if #{tmp 4629}#
                                  (@apply
-                                   (lambda (#{x 4621}#)
-                                     (let ((#{tmp 4625}#
-                                             (map #{emit 4392}# #{x 4621}#)))
-                                       (let ((#{tmp 4626}#
+                                   (lambda (#{x 4631}#)
+                                     (let ((#{tmp 4635}#
+                                             (map #{emit 4402}# #{x 4631}#)))
+                                       (let ((#{tmp 4636}#
                                                ($sc-dispatch
-                                                 #{tmp 4625}#
+                                                 #{tmp 4635}#
                                                  'each-any)))
-                                         (if #{tmp 4626}#
+                                         (if #{tmp 4636}#
                                            (@apply
-                                             (lambda (#{ g4622 4628}#)
+                                             (lambda (#{ g4632 4638}#)
                                                (cons '#(syntax-object
                                                         vector
                                                         ((top)
                                                          #(ribcage () () ())
                                                          #(ribcage
-                                                           #(#{ g4622}#)
-                                                           #((m4623 top))
-                                                           #("i4627"))
+                                                           #(#{ g4632}#)
+                                                           #((m4633 top))
+                                                           #("i4637"))
                                                          #(ribcage
                                                            #(x)
                                                            #((top))
-                                                           #("i4620"))
+                                                           #("i4630"))
                                                          #(ribcage () () ())
                                                          #(ribcage
                                                            #(x)
                                                            #((top))
-                                                           #("i4570"))
+                                                           #("i4580"))
                                                          #(ribcage
                                                            (emit quasivector
                                                                  quasilist*
@@ -17161,49 +17264,49 @@
                                                             (top)
                                                             (top)
                                                             (top))
-                                                           ("i4391"
-                                                            "i4389"
-                                                            "i4387"
-                                                            "i4385"
-                                                            "i4383"
-                                                            "i4381"
-                                                            "i4379")))
+                                                           ("i4401"
+                                                            "i4399"
+                                                            "i4397"
+                                                            "i4395"
+                                                            "i4393"
+                                                            "i4391"
+                                                            "i4389")))
                                                         (hygiene guile))
-                                                     #{ g4622 4628}#))
-                                             #{tmp 4626}#)
+                                                     #{ g4632 4638}#))
+                                             #{tmp 4636}#)
                                            (syntax-violation
                                              #f
                                              "source expression failed to 
match any pattern"
-                                             #{tmp 4625}#)))))
-                                   #{tmp 4619}#)
-                                 (let ((#{tmp 4631}#
+                                             #{tmp 4635}#)))))
+                                   #{tmp 4629}#)
+                                 (let ((#{tmp 4641}#
                                          ($sc-dispatch
-                                           #{tmp 4571}#
+                                           #{tmp 4581}#
                                            '(#(atom "list->vector") any))))
-                                   (if #{tmp 4631}#
+                                   (if #{tmp 4641}#
                                      (@apply
-                                       (lambda (#{x 4633}#)
-                                         (let ((#{tmp 4637}#
-                                                 (#{emit 4392}# #{x 4633}#)))
-                                           (let ((#{ g4634 4639}#
-                                                   #{tmp 4637}#))
+                                       (lambda (#{x 4643}#)
+                                         (let ((#{tmp 4647}#
+                                                 (#{emit 4402}# #{x 4643}#)))
+                                           (let ((#{ g4644 4649}#
+                                                   #{tmp 4647}#))
                                              (list '#(syntax-object
                                                       list->vector
                                                       ((top)
                                                        #(ribcage () () ())
                                                        #(ribcage
-                                                         #(#{ g4634}#)
-                                                         #((m4635 top))
-                                                         #("i4638"))
+                                                         #(#{ g4644}#)
+                                                         #((m4645 top))
+                                                         #("i4648"))
                                                        #(ribcage
                                                          #(x)
                                                          #((top))
-                                                         #("i4632"))
+                                                         #("i4642"))
                                                        #(ribcage () () ())
                                                        #(ribcage
                                                          #(x)
                                                          #((top))
-                                                         #("i4570"))
+                                                         #("i4580"))
                                                        #(ribcage
                                                          (emit quasivector
                                                                quasilist*
@@ -17218,83 +17321,83 @@
                                                           (top)
                                                           (top)
                                                           (top))
-                                                         ("i4391"
-                                                          "i4389"
-                                                          "i4387"
-                                                          "i4385"
-                                                          "i4383"
-                                                          "i4381"
-                                                          "i4379")))
+                                                         ("i4401"
+                                                          "i4399"
+                                                          "i4397"
+                                                          "i4395"
+                                                          "i4393"
+                                                          "i4391"
+                                                          "i4389")))
                                                       (hygiene guile))
-                                                   #{ g4634 4639}#))))
-                                       #{tmp 4631}#)
-                                     (let ((#{tmp 4640}#
+                                                   #{ g4644 4649}#))))
+                                       #{tmp 4641}#)
+                                     (let ((#{tmp 4650}#
                                              ($sc-dispatch
-                                               #{tmp 4571}#
+                                               #{tmp 4581}#
                                                '(#(atom "value") any))))
-                                       (if #{tmp 4640}#
+                                       (if #{tmp 4650}#
                                          (@apply
-                                           (lambda (#{x 4642}#) #{x 4642}#)
-                                           #{tmp 4640}#)
+                                           (lambda (#{x 4652}#) #{x 4652}#)
+                                           #{tmp 4650}#)
                                          (syntax-violation
                                            #f
                                            "source expression failed to match 
any pattern"
-                                           #{tmp 4571}#)))))))))))))))))))
+                                           #{tmp 4581}#)))))))))))))))))))
       (begin
-        (lambda (#{x 4643}#)
-          (let ((#{tmp 4645}# #{x 4643}#))
-            (let ((#{tmp 4646}#
-                    ($sc-dispatch #{tmp 4645}# '(_ any))))
-              (if #{tmp 4646}#
+        (lambda (#{x 4653}#)
+          (let ((#{tmp 4655}# #{x 4653}#))
+            (let ((#{tmp 4656}#
+                    ($sc-dispatch #{tmp 4655}# '(_ any))))
+              (if #{tmp 4656}#
                 (@apply
-                  (lambda (#{e 4648}#)
-                    (#{emit 4392}# (#{quasi 4380}# #{e 4648}# 0)))
-                  #{tmp 4646}#)
+                  (lambda (#{e 4658}#)
+                    (#{emit 4402}# (#{quasi 4390}# #{e 4658}# 0)))
+                  #{tmp 4656}#)
                 (syntax-violation
                   #f
                   "source expression failed to match any pattern"
-                  #{tmp 4645}#)))))))))
+                  #{tmp 4655}#)))))))))
 
 (define include
   (make-syntax-transformer
     'include
     'macro
-    (lambda (#{x 4649}#)
+    (lambda (#{x 4659}#)
       (letrec*
-        ((#{read-file 4652}#
-           (lambda (#{fn 4653}# #{k 4654}#)
+        ((#{read-file 4662}#
+           (lambda (#{fn 4663}# #{k 4664}#)
              (begin
-               (let ((#{p 4658}# (open-input-file #{fn 4653}#)))
+               (let ((#{p 4668}# (open-input-file #{fn 4663}#)))
                  (letrec*
-                   ((#{f 4662}#
-                      (lambda (#{x 4663}# #{result 4664}#)
-                        (if (eof-object? #{x 4663}#)
+                   ((#{f 4672}#
+                      (lambda (#{x 4673}# #{result 4674}#)
+                        (if (eof-object? #{x 4673}#)
                           (begin
-                            (close-input-port #{p 4658}#)
-                            (reverse #{result 4664}#))
-                          (#{f 4662}#
-                            (read #{p 4658}#)
-                            (cons (datum->syntax #{k 4654}# #{x 4663}#)
-                                  #{result 4664}#))))))
-                   (begin (#{f 4662}# (read #{p 4658}#) '()))))))))
+                            (close-input-port #{p 4668}#)
+                            (reverse #{result 4674}#))
+                          (#{f 4672}#
+                            (read #{p 4668}#)
+                            (cons (datum->syntax #{k 4664}# #{x 4673}#)
+                                  #{result 4674}#))))))
+                   (begin (#{f 4672}# (read #{p 4668}#) '()))))))))
         (begin
-          (let ((#{tmp 4665}# #{x 4649}#))
-            (let ((#{tmp 4666}#
-                    ($sc-dispatch #{tmp 4665}# '(any any))))
-              (if #{tmp 4666}#
+          (let ((#{tmp 4675}# #{x 4659}#))
+            (let ((#{tmp 4676}#
+                    ($sc-dispatch #{tmp 4675}# '(any any))))
+              (if #{tmp 4676}#
                 (@apply
-                  (lambda (#{k 4669}# #{filename 4670}#)
+                  (lambda (#{k 4679}# #{filename 4680}#)
                     (begin
-                      (let ((#{fn 4672}# (syntax->datum #{filename 4670}#)))
-                        (let ((#{tmp 4674}#
-                                (#{read-file 4652}#
-                                  #{fn 4672}#
-                                  #{filename 4670}#)))
-                          (let ((#{tmp 4675}#
-                                  ($sc-dispatch #{tmp 4674}# 'each-any)))
-                            (if #{tmp 4675}#
+                      (let ((#{fn 4682}# (syntax->datum #{filename 4680}#)))
+                        (let ((#{tmp 4684}#
+                                (#{read-file 4662}#
+                                  #{fn 4682}#
+                                  #{filename 4680}#)))
+                          (let ((#{tmp 4685}#
+                                  ($sc-dispatch #{tmp 4684}# 'each-any)))
+                            (if #{tmp 4685}#
                               (@apply
-                                (lambda (#{exp 4677}#)
+                                (lambda (#{exp 4687}#)
                                   (cons '#(syntax-object
                                            begin
                                            ((top)
@@ -17302,129 +17405,129 @@
                                             #(ribcage
                                               #(exp)
                                               #((top))
-                                              #("i4676"))
+                                              #("i4686"))
                                             #(ribcage () () ())
                                             #(ribcage () () ())
                                             #(ribcage
                                               #(fn)
                                               #((top))
-                                              #("i4671"))
+                                              #("i4681"))
                                             #(ribcage
                                               #(k filename)
                                               #((top) (top))
-                                              #("i4667" "i4668"))
+                                              #("i4677" "i4678"))
                                             #(ribcage
                                               (read-file)
                                               ((top))
-                                              ("i4651"))
+                                              ("i4661"))
                                             #(ribcage
                                               #(x)
                                               #((top))
-                                              #("i4650")))
+                                              #("i4660")))
                                            (hygiene guile))
-                                        #{exp 4677}#))
-                                #{tmp 4675}#)
+                                        #{exp 4687}#))
+                                #{tmp 4685}#)
                               (syntax-violation
                                 #f
                                 "source expression failed to match any pattern"
-                                #{tmp 4674}#)))))))
-                  #{tmp 4666}#)
+                                #{tmp 4684}#)))))))
+                  #{tmp 4676}#)
                 (syntax-violation
                   #f
                   "source expression failed to match any pattern"
-                  #{tmp 4665}#)))))))))
+                  #{tmp 4675}#)))))))))
 
 (define include-from-path
   (make-syntax-transformer
     'include-from-path
     'macro
-    (lambda (#{x 4679}#)
-      (let ((#{tmp 4681}# #{x 4679}#))
-        (let ((#{tmp 4682}#
-                ($sc-dispatch #{tmp 4681}# '(any any))))
-          (if #{tmp 4682}#
+    (lambda (#{x 4689}#)
+      (let ((#{tmp 4691}# #{x 4689}#))
+        (let ((#{tmp 4692}#
+                ($sc-dispatch #{tmp 4691}# '(any any))))
+          (if #{tmp 4692}#
             (@apply
-              (lambda (#{k 4685}# #{filename 4686}#)
+              (lambda (#{k 4695}# #{filename 4696}#)
                 (begin
-                  (let ((#{fn 4688}# (syntax->datum #{filename 4686}#)))
-                    (let ((#{tmp 4690}#
+                  (let ((#{fn 4698}# (syntax->datum #{filename 4696}#)))
+                    (let ((#{tmp 4700}#
                             (datum->syntax
-                              #{filename 4686}#
+                              #{filename 4696}#
                               (begin
-                                (let ((#{t 4695}#
-                                        (%search-load-path #{fn 4688}#)))
-                                  (if #{t 4695}#
-                                    #{t 4695}#
+                                (let ((#{t 4705}#
+                                        (%search-load-path #{fn 4698}#)))
+                                  (if #{t 4705}#
+                                    #{t 4705}#
                                     (syntax-violation
                                       'include-from-path
                                       "file not found in path"
-                                      #{x 4679}#
-                                      #{filename 4686}#)))))))
-                      (let ((#{fn 4692}# #{tmp 4690}#))
+                                      #{x 4689}#
+                                      #{filename 4696}#)))))))
+                      (let ((#{fn 4702}# #{tmp 4700}#))
                         (list '#(syntax-object
                                  include
                                  ((top)
                                   #(ribcage () () ())
-                                  #(ribcage #(fn) #((top)) #("i4691"))
+                                  #(ribcage #(fn) #((top)) #("i4701"))
                                   #(ribcage () () ())
                                   #(ribcage () () ())
-                                  #(ribcage #(fn) #((top)) #("i4687"))
+                                  #(ribcage #(fn) #((top)) #("i4697"))
                                   #(ribcage
                                     #(k filename)
                                     #((top) (top))
-                                    #("i4683" "i4684"))
+                                    #("i4693" "i4694"))
                                   #(ribcage () () ())
-                                  #(ribcage #(x) #((top)) #("i4680")))
+                                  #(ribcage #(x) #((top)) #("i4690")))
                                  (hygiene guile))
-                              #{fn 4692}#))))))
-              #{tmp 4682}#)
+                              #{fn 4702}#))))))
+              #{tmp 4692}#)
             (syntax-violation
               #f
               "source expression failed to match any pattern"
-              #{tmp 4681}#)))))))
+              #{tmp 4691}#)))))))
 
 (define unquote
   (make-syntax-transformer
     'unquote
     'macro
-    (lambda (#{x 4697}#)
+    (lambda (#{x 4707}#)
       (syntax-violation
         'unquote
         "expression not valid outside of quasiquote"
-        #{x 4697}#))))
+        #{x 4707}#))))
 
 (define unquote-splicing
   (make-syntax-transformer
     'unquote-splicing
     'macro
-    (lambda (#{x 4699}#)
+    (lambda (#{x 4709}#)
       (syntax-violation
         'unquote-splicing
         "expression not valid outside of quasiquote"
-        #{x 4699}#))))
+        #{x 4709}#))))
 
 (define case
   (make-syntax-transformer
     'case
     'macro
-    (lambda (#{x 4701}#)
-      (let ((#{tmp 4703}# #{x 4701}#))
-        (let ((#{tmp 4704}#
+    (lambda (#{x 4711}#)
+      (let ((#{tmp 4713}# #{x 4711}#))
+        (let ((#{tmp 4714}#
                 ($sc-dispatch
-                  #{tmp 4703}#
+                  #{tmp 4713}#
                   '(_ any any . each-any))))
-          (if #{tmp 4704}#
+          (if #{tmp 4714}#
             (@apply
-              (lambda (#{e 4708}# #{m1 4709}# #{m2 4710}#)
-                (let ((#{tmp 4712}#
+              (lambda (#{e 4718}# #{m1 4719}# #{m2 4720}#)
+                (let ((#{tmp 4722}#
                         (letrec*
-                          ((#{f 4718}#
-                             (lambda (#{clause 4719}# #{clauses 4720}#)
-                               (if (null? #{clauses 4720}#)
-                                 (let ((#{tmp 4722}# #{clause 4719}#))
-                                   (let ((#{tmp 4723}#
+                          ((#{f 4728}#
+                             (lambda (#{clause 4729}# #{clauses 4730}#)
+                               (if (null? #{clauses 4730}#)
+                                 (let ((#{tmp 4732}# #{clause 4729}#))
+                                   (let ((#{tmp 4733}#
                                            ($sc-dispatch
-                                             #{tmp 4722}#
+                                             #{tmp 4732}#
                                              '(#(free-id
                                                  #(syntax-object
                                                    else
@@ -17433,92 +17536,92 @@
                                                     #(ribcage
                                                       #(f clause clauses)
                                                       #((top) (top) (top))
-                                                      #("i4715"
-                                                        "i4716"
-                                                        "i4717"))
+                                                      #("i4725"
+                                                        "i4726"
+                                                        "i4727"))
                                                     #(ribcage
                                                       #(e m1 m2)
                                                       #((top) (top) (top))
-                                                      #("i4705"
-                                                        "i4706"
-                                                        "i4707"))
+                                                      #("i4715"
+                                                        "i4716"
+                                                        "i4717"))
                                                     #(ribcage () () ())
                                                     #(ribcage
                                                       #(x)
                                                       #((top))
-                                                      #("i4702")))
+                                                      #("i4712")))
                                                    (hygiene guile)))
                                                any
                                                .
                                                each-any))))
-                                     (if #{tmp 4723}#
+                                     (if #{tmp 4733}#
                                        (@apply
-                                         (lambda (#{e1 4726}# #{e2 4727}#)
+                                         (lambda (#{e1 4736}# #{e2 4737}#)
                                            (cons '#(syntax-object
                                                     begin
                                                     ((top)
                                                      #(ribcage
                                                        #(e1 e2)
                                                        #((top) (top))
-                                                       #("i4724" "i4725"))
+                                                       #("i4734" "i4735"))
                                                      #(ribcage () () ())
                                                      #(ribcage
                                                        #(f clause clauses)
                                                        #((top) (top) (top))
-                                                       #("i4715"
-                                                         "i4716"
-                                                         "i4717"))
+                                                       #("i4725"
+                                                         "i4726"
+                                                         "i4727"))
                                                      #(ribcage
                                                        #(e m1 m2)
                                                        #((top) (top) (top))
-                                                       #("i4705"
-                                                         "i4706"
-                                                         "i4707"))
+                                                       #("i4715"
+                                                         "i4716"
+                                                         "i4717"))
                                                      #(ribcage () () ())
                                                      #(ribcage
                                                        #(x)
                                                        #((top))
-                                                       #("i4702")))
+                                                       #("i4712")))
                                                     (hygiene guile))
-                                                 (cons #{e1 4726}#
-                                                       #{e2 4727}#)))
-                                         #{tmp 4723}#)
-                                       (let ((#{tmp 4729}#
+                                                 (cons #{e1 4736}#
+                                                       #{e2 4737}#)))
+                                         #{tmp 4733}#)
+                                       (let ((#{tmp 4739}#
                                                ($sc-dispatch
-                                                 #{tmp 4722}#
+                                                 #{tmp 4732}#
                                                  '(each-any any . each-any))))
-                                         (if #{tmp 4729}#
+                                         (if #{tmp 4739}#
                                            (@apply
-                                             (lambda (#{k 4733}#
-                                                      #{e1 4734}#
-                                                      #{e2 4735}#)
+                                             (lambda (#{k 4743}#
+                                                      #{e1 4744}#
+                                                      #{e2 4745}#)
                                                (list '#(syntax-object
                                                         if
                                                         ((top)
                                                          #(ribcage
                                                            #(k e1 e2)
                                                            #((top) (top) (top))
-                                                           #("i4730"
-                                                             "i4731"
-                                                             "i4732"))
+                                                           #("i4740"
+                                                             "i4741"
+                                                             "i4742"))
                                                          #(ribcage () () ())
                                                          #(ribcage
                                                            #(f clause clauses)
                                                            #((top) (top) (top))
-                                                           #("i4715"
-                                                             "i4716"
-                                                             "i4717"))
+                                                           #("i4725"
+                                                             "i4726"
+                                                             "i4727"))
                                                          #(ribcage
                                                            #(e m1 m2)
                                                            #((top) (top) (top))
-                                                           #("i4705"
-                                                             "i4706"
-                                                             "i4707"))
+                                                           #("i4715"
+                                                             "i4716"
+                                                             "i4717"))
                                                          #(ribcage () () ())
                                                          #(ribcage
                                                            #(x)
                                                            #((top))
-                                                           #("i4702")))
+                                                           #("i4712")))
                                                         (hygiene guile))
                                                      (list '#(syntax-object
                                                               memv
@@ -17528,9 +17631,9 @@
                                                                  #((top)
                                                                    (top)
                                                                    (top))
-                                                                 #("i4730"
-                                                                   "i4731"
-                                                                   "i4732"))
+                                                                 #("i4740"
+                                                                   "i4741"
+                                                                   "i4742"))
                                                                #(ribcage
                                                                  ()
                                                                  ()
@@ -17542,17 +17645,17 @@
                                                                  #((top)
                                                                    (top)
                                                                    (top))
-                                                                 #("i4715"
-                                                                   "i4716"
-                                                                   "i4717"))
+                                                                 #("i4725"
+                                                                   "i4726"
+                                                                   "i4727"))
                                                                #(ribcage
                                                                  #(e m1 m2)
                                                                  #((top)
                                                                    (top)
                                                                    (top))
-                                                                 #("i4705"
-                                                                   "i4706"
-                                                                   "i4707"))
+                                                                 #("i4715"
+                                                                   "i4716"
+                                                                   "i4717"))
                                                                #(ribcage
                                                                  ()
                                                                  ()
@@ -17560,7 +17663,7 @@
                                                                #(ribcage
                                                                  #(x)
                                                                  #((top))
-                                                                 #("i4702")))
+                                                                 #("i4712")))
                                                               (hygiene guile))
                                                            '#(syntax-object
                                                               t
@@ -17570,9 +17673,9 @@
                                                                  #((top)
                                                                    (top)
                                                                    (top))
-                                                                 #("i4730"
-                                                                   "i4731"
-                                                                   "i4732"))
+                                                                 #("i4740"
+                                                                   "i4741"
+                                                                   "i4742"))
                                                                #(ribcage
                                                                  ()
                                                                  ()
@@ -17584,17 +17687,17 @@
                                                                  #((top)
                                                                    (top)
                                                                    (top))
-                                                                 #("i4715"
-                                                                   "i4716"
-                                                                   "i4717"))
+                                                                 #("i4725"
+                                                                   "i4726"
+                                                                   "i4727"))
                                                                #(ribcage
                                                                  #(e m1 m2)
                                                                  #((top)
                                                                    (top)
                                                                    (top))
-                                                                 #("i4705"
-                                                                   "i4706"
-                                                                   "i4707"))
+                                                                 #("i4715"
+                                                                   "i4716"
+                                                                   "i4717"))
                                                                #(ribcage
                                                                  ()
                                                                  ()
@@ -17602,7 +17705,7 @@
                                                                #(ribcage
                                                                  #(x)
                                                                  #((top))
-                                                                 #("i4702")))
+                                                                 #("i4712")))
                                                               (hygiene guile))
                                                            (list 
'#(syntax-object
                                                                     quote
@@ -17614,9 +17717,9 @@
                                                                        #((top)
                                                                          (top)
                                                                          (top))
-                                                                       
#("i4730"
-                                                                         
"i4731"
-                                                                         
"i4732"))
+                                                                       
#("i4740"
+                                                                         
"i4741"
+                                                                         
"i4742"))
                                                                      #(ribcage
                                                                        ()
                                                                        ()
@@ -17628,9 +17731,9 @@
                                                                        #((top)
                                                                          (top)
                                                                          (top))
-                                                                       
#("i4715"
-                                                                         
"i4716"
-                                                                         
"i4717"))
+                                                                       
#("i4725"
+                                                                         
"i4726"
+                                                                         
"i4727"))
                                                                      #(ribcage
                                                                        #(e
                                                                          m1
@@ -17638,9 +17741,9 @@
                                                                        #((top)
                                                                          (top)
                                                                          (top))
-                                                                       
#("i4705"
-                                                                         
"i4706"
-                                                                         
"i4707"))
+                                                                       
#("i4715"
+                                                                         
"i4716"
+                                                                         
"i4717"))
                                                                      #(ribcage
                                                                        ()
                                                                        ()
@@ -17648,10 +17751,10 @@
                                                                      #(ribcage
                                                                        #(x)
                                                                        #((top))
-                                                                       
#("i4702")))
+                                                                       
#("i4712")))
                                                                     (hygiene
                                                                       guile))
-                                                                 #{k 4733}#))
+                                                                 #{k 4743}#))
                                                      (cons '#(syntax-object
                                                               begin
                                                               ((top)
@@ -17660,9 +17763,9 @@
                                                                  #((top)
                                                                    (top)
                                                                    (top))
-                                                                 #("i4730"
-                                                                   "i4731"
-                                                                   "i4732"))
+                                                                 #("i4740"
+                                                                   "i4741"
+                                                                   "i4742"))
                                                                #(ribcage
                                                                  ()
                                                                  ()
@@ -17674,17 +17777,17 @@
                                                                  #((top)
                                                                    (top)
                                                                    (top))
-                                                                 #("i4715"
-                                                                   "i4716"
-                                                                   "i4717"))
+                                                                 #("i4725"
+                                                                   "i4726"
+                                                                   "i4727"))
                                                                #(ribcage
                                                                  #(e m1 m2)
                                                                  #((top)
                                                                    (top)
                                                                    (top))
-                                                                 #("i4705"
-                                                                   "i4706"
-                                                                   "i4707"))
+                                                                 #("i4715"
+                                                                   "i4716"
+                                                                   "i4717"))
                                                                #(ribcage
                                                                  ()
                                                                  ()
@@ -17692,64 +17795,64 @@
                                                                #(ribcage
                                                                  #(x)
                                                                  #((top))
-                                                                 #("i4702")))
+                                                                 #("i4712")))
                                                               (hygiene guile))
-                                                           (cons #{e1 4734}#
-                                                                 #{e2 
4735}#))))
-                                             #{tmp 4729}#)
-                                           (let ((#{_ 4739}# #{tmp 4722}#))
+                                                           (cons #{e1 4744}#
+                                                                 #{e2 
4745}#))))
+                                             #{tmp 4739}#)
+                                           (let ((#{_ 4749}# #{tmp 4732}#))
                                              (syntax-violation
                                                'case
                                                "bad clause"
-                                               #{x 4701}#
-                                               #{clause 4719}#)))))))
-                                 (let ((#{tmp 4741}#
-                                         (#{f 4718}#
-                                           (car #{clauses 4720}#)
-                                           (cdr #{clauses 4720}#))))
-                                   (let ((#{rest 4743}# #{tmp 4741}#))
-                                     (let ((#{tmp 4744}# #{clause 4719}#))
-                                       (let ((#{tmp 4745}#
+                                               #{x 4711}#
+                                               #{clause 4729}#)))))))
+                                 (let ((#{tmp 4751}#
+                                         (#{f 4728}#
+                                           (car #{clauses 4730}#)
+                                           (cdr #{clauses 4730}#))))
+                                   (let ((#{rest 4753}# #{tmp 4751}#))
+                                     (let ((#{tmp 4754}# #{clause 4729}#))
+                                       (let ((#{tmp 4755}#
                                                ($sc-dispatch
-                                                 #{tmp 4744}#
+                                                 #{tmp 4754}#
                                                  '(each-any any . each-any))))
-                                         (if #{tmp 4745}#
+                                         (if #{tmp 4755}#
                                            (@apply
-                                             (lambda (#{k 4749}#
-                                                      #{e1 4750}#
-                                                      #{e2 4751}#)
+                                             (lambda (#{k 4759}#
+                                                      #{e1 4760}#
+                                                      #{e2 4761}#)
                                                (list '#(syntax-object
                                                         if
                                                         ((top)
                                                          #(ribcage
                                                            #(k e1 e2)
                                                            #((top) (top) (top))
-                                                           #("i4746"
-                                                             "i4747"
-                                                             "i4748"))
+                                                           #("i4756"
+                                                             "i4757"
+                                                             "i4758"))
                                                          #(ribcage () () ())
                                                          #(ribcage
                                                            #(rest)
                                                            #((top))
-                                                           #("i4742"))
+                                                           #("i4752"))
                                                          #(ribcage () () ())
                                                          #(ribcage
                                                            #(f clause clauses)
                                                            #((top) (top) (top))
-                                                           #("i4715"
-                                                             "i4716"
-                                                             "i4717"))
+                                                           #("i4725"
+                                                             "i4726"
+                                                             "i4727"))
                                                          #(ribcage
                                                            #(e m1 m2)
                                                            #((top) (top) (top))
-                                                           #("i4705"
-                                                             "i4706"
-                                                             "i4707"))
+                                                           #("i4715"
+                                                             "i4716"
+                                                             "i4717"))
                                                          #(ribcage () () ())
                                                          #(ribcage
                                                            #(x)
                                                            #((top))
-                                                           #("i4702")))
+                                                           #("i4712")))
                                                         (hygiene guile))
                                                      (list '#(syntax-object
                                                               memv
@@ -17759,9 +17862,9 @@
                                                                  #((top)
                                                                    (top)
                                                                    (top))
-                                                                 #("i4746"
-                                                                   "i4747"
-                                                                   "i4748"))
+                                                                 #("i4756"
+                                                                   "i4757"
+                                                                   "i4758"))
                                                                #(ribcage
                                                                  ()
                                                                  ()
@@ -17769,7 +17872,7 @@
                                                                #(ribcage
                                                                  #(rest)
                                                                  #((top))
-                                                                 #("i4742"))
+                                                                 #("i4752"))
                                                                #(ribcage
                                                                  ()
                                                                  ()
@@ -17781,17 +17884,17 @@
                                                                  #((top)
                                                                    (top)
                                                                    (top))
-                                                                 #("i4715"
-                                                                   "i4716"
-                                                                   "i4717"))
+                                                                 #("i4725"
+                                                                   "i4726"
+                                                                   "i4727"))
                                                                #(ribcage
                                                                  #(e m1 m2)
                                                                  #((top)
                                                                    (top)
                                                                    (top))
-                                                                 #("i4705"
-                                                                   "i4706"
-                                                                   "i4707"))
+                                                                 #("i4715"
+                                                                   "i4716"
+                                                                   "i4717"))
                                                                #(ribcage
                                                                  ()
                                                                  ()
@@ -17799,7 +17902,7 @@
                                                                #(ribcage
                                                                  #(x)
                                                                  #((top))
-                                                                 #("i4702")))
+                                                                 #("i4712")))
                                                               (hygiene guile))
                                                            '#(syntax-object
                                                               t
@@ -17809,9 +17912,9 @@
                                                                  #((top)
                                                                    (top)
                                                                    (top))
-                                                                 #("i4746"
-                                                                   "i4747"
-                                                                   "i4748"))
+                                                                 #("i4756"
+                                                                   "i4757"
+                                                                   "i4758"))
                                                                #(ribcage
                                                                  ()
                                                                  ()
@@ -17819,7 +17922,7 @@
                                                                #(ribcage
                                                                  #(rest)
                                                                  #((top))
-                                                                 #("i4742"))
+                                                                 #("i4752"))
                                                                #(ribcage
                                                                  ()
                                                                  ()
@@ -17831,17 +17934,17 @@
                                                                  #((top)
                                                                    (top)
                                                                    (top))
-                                                                 #("i4715"
-                                                                   "i4716"
-                                                                   "i4717"))
+                                                                 #("i4725"
+                                                                   "i4726"
+                                                                   "i4727"))
                                                                #(ribcage
                                                                  #(e m1 m2)
                                                                  #((top)
                                                                    (top)
                                                                    (top))
-                                                                 #("i4705"
-                                                                   "i4706"
-                                                                   "i4707"))
+                                                                 #("i4715"
+                                                                   "i4716"
+                                                                   "i4717"))
                                                                #(ribcage
                                                                  ()
                                                                  ()
@@ -17849,7 +17952,7 @@
                                                                #(ribcage
                                                                  #(x)
                                                                  #((top))
-                                                                 #("i4702")))
+                                                                 #("i4712")))
                                                               (hygiene guile))
                                                            (list 
'#(syntax-object
                                                                     quote
@@ -17861,9 +17964,9 @@
                                                                        #((top)
                                                                          (top)
                                                                          (top))
-                                                                       
#("i4746"
-                                                                         
"i4747"
-                                                                         
"i4748"))
+                                                                       
#("i4756"
+                                                                         
"i4757"
+                                                                         
"i4758"))
                                                                      #(ribcage
                                                                        ()
                                                                        ()
@@ -17871,7 +17974,7 @@
                                                                      #(ribcage
                                                                        #(rest)
                                                                        #((top))
-                                                                       
#("i4742"))
+                                                                       
#("i4752"))
                                                                      #(ribcage
                                                                        ()
                                                                        ()
@@ -17883,9 +17986,9 @@
                                                                        #((top)
                                                                          (top)
                                                                          (top))
-                                                                       
#("i4715"
-                                                                         
"i4716"
-                                                                         
"i4717"))
+                                                                       
#("i4725"
+                                                                         
"i4726"
+                                                                         
"i4727"))
                                                                      #(ribcage
                                                                        #(e
                                                                          m1
@@ -17893,9 +17996,9 @@
                                                                        #((top)
                                                                          (top)
                                                                          (top))
-                                                                       
#("i4705"
-                                                                         
"i4706"
-                                                                         
"i4707"))
+                                                                       
#("i4715"
+                                                                         
"i4716"
+                                                                         
"i4717"))
                                                                      #(ribcage
                                                                        ()
                                                                        ()
@@ -17903,10 +18006,10 @@
                                                                      #(ribcage
                                                                        #(x)
                                                                        #((top))
-                                                                       
#("i4702")))
+                                                                       
#("i4712")))
                                                                     (hygiene
                                                                       guile))
-                                                                 #{k 4749}#))
+                                                                 #{k 4759}#))
                                                      (cons '#(syntax-object
                                                               begin
                                                               ((top)
@@ -17915,9 +18018,9 @@
                                                                  #((top)
                                                                    (top)
                                                                    (top))
-                                                                 #("i4746"
-                                                                   "i4747"
-                                                                   "i4748"))
+                                                                 #("i4756"
+                                                                   "i4757"
+                                                                   "i4758"))
                                                                #(ribcage
                                                                  ()
                                                                  ()
@@ -17925,7 +18028,7 @@
                                                                #(ribcage
                                                                  #(rest)
                                                                  #((top))
-                                                                 #("i4742"))
+                                                                 #("i4752"))
                                                                #(ribcage
                                                                  ()
                                                                  ()
@@ -17937,17 +18040,17 @@
                                                                  #((top)
                                                                    (top)
                                                                    (top))
-                                                                 #("i4715"
-                                                                   "i4716"
-                                                                   "i4717"))
+                                                                 #("i4725"
+                                                                   "i4726"
+                                                                   "i4727"))
                                                                #(ribcage
                                                                  #(e m1 m2)
                                                                  #((top)
                                                                    (top)
                                                                    (top))
-                                                                 #("i4705"
-                                                                   "i4706"
-                                                                   "i4707"))
+                                                                 #("i4715"
+                                                                   "i4716"
+                                                                   "i4717"))
                                                                #(ribcage
                                                                  ()
                                                                  ()
@@ -17955,31 +18058,31 @@
                                                                #(ribcage
                                                                  #(x)
                                                                  #((top))
-                                                                 #("i4702")))
+                                                                 #("i4712")))
                                                               (hygiene guile))
-                                                           (cons #{e1 4750}#
-                                                                 #{e2 4751}#))
-                                                     #{rest 4743}#))
-                                             #{tmp 4745}#)
-                                           (let ((#{_ 4755}# #{tmp 4744}#))
+                                                           (cons #{e1 4760}#
+                                                                 #{e2 4761}#))
+                                                     #{rest 4753}#))
+                                             #{tmp 4755}#)
+                                           (let ((#{_ 4765}# #{tmp 4754}#))
                                              (syntax-violation
                                                'case
                                                "bad clause"
-                                               #{x 4701}#
-                                               #{clause 4719}#)))))))))))
-                          (begin (#{f 4718}# #{m1 4709}# #{m2 4710}#)))))
-                  (let ((#{body 4714}# #{tmp 4712}#))
+                                               #{x 4711}#
+                                               #{clause 4729}#)))))))))))
+                          (begin (#{f 4728}# #{m1 4719}# #{m2 4720}#)))))
+                  (let ((#{body 4724}# #{tmp 4722}#))
                     (list '#(syntax-object
                              let
                              ((top)
                               #(ribcage () () ())
-                              #(ribcage #(body) #((top)) #("i4713"))
+                              #(ribcage #(body) #((top)) #("i4723"))
                               #(ribcage
                                 #(e m1 m2)
                                 #((top) (top) (top))
-                                #("i4705" "i4706" "i4707"))
+                                #("i4715" "i4716" "i4717"))
                               #(ribcage () () ())
-                              #(ribcage #(x) #((top)) #("i4702")))
+                              #(ribcage #(x) #((top)) #("i4712")))
                              (hygiene guile))
                           (list (list '#(syntax-object
                                          t
@@ -17988,176 +18091,176 @@
                                           #(ribcage
                                             #(body)
                                             #((top))
-                                            #("i4713"))
+                                            #("i4723"))
                                           #(ribcage
                                             #(e m1 m2)
                                             #((top) (top) (top))
-                                            #("i4705" "i4706" "i4707"))
+                                            #("i4715" "i4716" "i4717"))
                                           #(ribcage () () ())
-                                          #(ribcage #(x) #((top)) #("i4702")))
+                                          #(ribcage #(x) #((top)) #("i4712")))
                                          (hygiene guile))
-                                      #{e 4708}#))
-                          #{body 4714}#))))
-              #{tmp 4704}#)
+                                      #{e 4718}#))
+                          #{body 4724}#))))
+              #{tmp 4714}#)
             (syntax-violation
               #f
               "source expression failed to match any pattern"
-              #{tmp 4703}#)))))))
+              #{tmp 4713}#)))))))
 
 (define make-variable-transformer
-  (lambda (#{proc 4756}#)
-    (if (procedure? #{proc 4756}#)
+  (lambda (#{proc 4766}#)
+    (if (procedure? #{proc 4766}#)
       (begin
         (letrec*
-          ((#{trans 4759}#
-             (lambda (#{x 4760}#) (#{proc 4756}# #{x 4760}#))))
+          ((#{trans 4769}#
+             (lambda (#{x 4770}#) (#{proc 4766}# #{x 4770}#))))
           (begin
             (set-procedure-property!
-              #{trans 4759}#
+              #{trans 4769}#
               'variable-transformer
               #t)
-            #{trans 4759}#)))
+            #{trans 4769}#)))
       (error "variable transformer not a procedure"
-             #{proc 4756}#))))
+             #{proc 4766}#))))
 
 (define identifier-syntax
   (make-syntax-transformer
     'identifier-syntax
     'macro
-    (lambda (#{x 4762}#)
-      (let ((#{tmp 4764}# #{x 4762}#))
-        (let ((#{tmp 4765}#
-                ($sc-dispatch #{tmp 4764}# '(_ any))))
-          (if #{tmp 4765}#
+    (lambda (#{x 4772}#)
+      (let ((#{tmp 4774}# #{x 4772}#))
+        (let ((#{tmp 4775}#
+                ($sc-dispatch #{tmp 4774}# '(_ any))))
+          (if #{tmp 4775}#
             (@apply
-              (lambda (#{e 4767}#)
+              (lambda (#{e 4777}#)
                 (list '#(syntax-object
                          lambda
                          ((top)
-                          #(ribcage #(e) #((top)) #("i4766"))
+                          #(ribcage #(e) #((top)) #("i4776"))
                           #(ribcage () () ())
-                          #(ribcage #(x) #((top)) #("i4763")))
+                          #(ribcage #(x) #((top)) #("i4773")))
                          (hygiene guile))
                       '(#(syntax-object
                           x
                           ((top)
-                           #(ribcage #(e) #((top)) #("i4766"))
+                           #(ribcage #(e) #((top)) #("i4776"))
                            #(ribcage () () ())
-                           #(ribcage #(x) #((top)) #("i4763")))
+                           #(ribcage #(x) #((top)) #("i4773")))
                           (hygiene guile)))
                       '#((#(syntax-object
                             macro-type
                             ((top)
-                             #(ribcage #(e) #((top)) #("i4766"))
+                             #(ribcage #(e) #((top)) #("i4776"))
                              #(ribcage () () ())
-                             #(ribcage #(x) #((top)) #("i4763")))
+                             #(ribcage #(x) #((top)) #("i4773")))
                             (hygiene guile))
                           .
                           #(syntax-object
                             identifier-syntax
                             ((top)
-                             #(ribcage #(e) #((top)) #("i4766"))
+                             #(ribcage #(e) #((top)) #("i4776"))
                              #(ribcage () () ())
-                             #(ribcage #(x) #((top)) #("i4763")))
+                             #(ribcage #(x) #((top)) #("i4773")))
                             (hygiene guile))))
                       (list '#(syntax-object
                                syntax-case
                                ((top)
-                                #(ribcage #(e) #((top)) #("i4766"))
+                                #(ribcage #(e) #((top)) #("i4776"))
                                 #(ribcage () () ())
-                                #(ribcage #(x) #((top)) #("i4763")))
+                                #(ribcage #(x) #((top)) #("i4773")))
                                (hygiene guile))
                             '#(syntax-object
                                x
                                ((top)
-                                #(ribcage #(e) #((top)) #("i4766"))
+                                #(ribcage #(e) #((top)) #("i4776"))
                                 #(ribcage () () ())
-                                #(ribcage #(x) #((top)) #("i4763")))
+                                #(ribcage #(x) #((top)) #("i4773")))
                                (hygiene guile))
                             '()
                             (list '#(syntax-object
                                      id
                                      ((top)
-                                      #(ribcage #(e) #((top)) #("i4766"))
+                                      #(ribcage #(e) #((top)) #("i4776"))
                                       #(ribcage () () ())
-                                      #(ribcage #(x) #((top)) #("i4763")))
+                                      #(ribcage #(x) #((top)) #("i4773")))
                                      (hygiene guile))
                                   '(#(syntax-object
                                       identifier?
                                       ((top)
-                                       #(ribcage #(e) #((top)) #("i4766"))
+                                       #(ribcage #(e) #((top)) #("i4776"))
                                        #(ribcage () () ())
-                                       #(ribcage #(x) #((top)) #("i4763")))
+                                       #(ribcage #(x) #((top)) #("i4773")))
                                       (hygiene guile))
                                     (#(syntax-object
                                        syntax
                                        ((top)
-                                        #(ribcage #(e) #((top)) #("i4766"))
+                                        #(ribcage #(e) #((top)) #("i4776"))
                                         #(ribcage () () ())
-                                        #(ribcage #(x) #((top)) #("i4763")))
+                                        #(ribcage #(x) #((top)) #("i4773")))
                                        (hygiene guile))
                                      #(syntax-object
                                        id
                                        ((top)
-                                        #(ribcage #(e) #((top)) #("i4766"))
+                                        #(ribcage #(e) #((top)) #("i4776"))
                                         #(ribcage () () ())
-                                        #(ribcage #(x) #((top)) #("i4763")))
+                                        #(ribcage #(x) #((top)) #("i4773")))
                                        (hygiene guile))))
                                   (list '#(syntax-object
                                            syntax
                                            ((top)
-                                            #(ribcage #(e) #((top)) #("i4766"))
+                                            #(ribcage #(e) #((top)) #("i4776"))
                                             #(ribcage () () ())
                                             #(ribcage
                                               #(x)
                                               #((top))
-                                              #("i4763")))
+                                              #("i4773")))
                                            (hygiene guile))
-                                        #{e 4767}#))
+                                        #{e 4777}#))
                             (list '(#(syntax-object
                                       _
                                       ((top)
-                                       #(ribcage #(e) #((top)) #("i4766"))
+                                       #(ribcage #(e) #((top)) #("i4776"))
                                        #(ribcage () () ())
-                                       #(ribcage #(x) #((top)) #("i4763")))
+                                       #(ribcage #(x) #((top)) #("i4773")))
                                       (hygiene guile))
                                     #(syntax-object
                                       x
                                       ((top)
-                                       #(ribcage #(e) #((top)) #("i4766"))
+                                       #(ribcage #(e) #((top)) #("i4776"))
                                        #(ribcage () () ())
-                                       #(ribcage #(x) #((top)) #("i4763")))
+                                       #(ribcage #(x) #((top)) #("i4773")))
                                       (hygiene guile))
                                     #(syntax-object
                                       ...
                                       ((top)
-                                       #(ribcage #(e) #((top)) #("i4766"))
+                                       #(ribcage #(e) #((top)) #("i4776"))
                                        #(ribcage () () ())
-                                       #(ribcage #(x) #((top)) #("i4763")))
+                                       #(ribcage #(x) #((top)) #("i4773")))
                                       (hygiene guile)))
                                   (list '#(syntax-object
                                            syntax
                                            ((top)
-                                            #(ribcage #(e) #((top)) #("i4766"))
+                                            #(ribcage #(e) #((top)) #("i4776"))
                                             #(ribcage () () ())
                                             #(ribcage
                                               #(x)
                                               #((top))
-                                              #("i4763")))
+                                              #("i4773")))
                                            (hygiene guile))
-                                        (cons #{e 4767}#
+                                        (cons #{e 4777}#
                                               '(#(syntax-object
                                                   x
                                                   ((top)
                                                    #(ribcage
                                                      #(e)
                                                      #((top))
-                                                     #("i4766"))
+                                                     #("i4776"))
                                                    #(ribcage () () ())
                                                    #(ribcage
                                                      #(x)
                                                      #((top))
-                                                     #("i4763")))
+                                                     #("i4773")))
                                                   (hygiene guile))
                                                 #(syntax-object
                                                   ...
@@ -18165,55 +18268,55 @@
                                                    #(ribcage
                                                      #(e)
                                                      #((top))
-                                                     #("i4766"))
+                                                     #("i4776"))
                                                    #(ribcage () () ())
                                                    #(ribcage
                                                      #(x)
                                                      #((top))
-                                                     #("i4763")))
+                                                     #("i4773")))
                                                   (hygiene guile)))))))))
-              #{tmp 4765}#)
-            (let ((#{tmp 4768}#
+              #{tmp 4775}#)
+            (let ((#{tmp 4778}#
                     ($sc-dispatch
-                      #{tmp 4764}#
+                      #{tmp 4774}#
                       '(_ (any any)
                           ((#(free-id
                               #(syntax-object
                                 set!
                                 ((top)
                                  #(ribcage () () ())
-                                 #(ribcage #(x) #((top)) #("i4763")))
+                                 #(ribcage #(x) #((top)) #("i4773")))
                                 (hygiene guile)))
                             any
                             any)
                            any)))))
-              (if (if #{tmp 4768}#
+              (if (if #{tmp 4778}#
                     (@apply
-                      (lambda (#{id 4774}#
-                               #{exp1 4775}#
-                               #{var 4776}#
-                               #{val 4777}#
-                               #{exp2 4778}#)
-                        (if (identifier? #{id 4774}#)
-                          (identifier? #{var 4776}#)
+                      (lambda (#{id 4784}#
+                               #{exp1 4785}#
+                               #{var 4786}#
+                               #{val 4787}#
+                               #{exp2 4788}#)
+                        (if (identifier? #{id 4784}#)
+                          (identifier? #{var 4786}#)
                           #f))
-                      #{tmp 4768}#)
+                      #{tmp 4778}#)
                     #f)
                 (@apply
-                  (lambda (#{id 4786}#
-                           #{exp1 4787}#
-                           #{var 4788}#
-                           #{val 4789}#
-                           #{exp2 4790}#)
+                  (lambda (#{id 4796}#
+                           #{exp1 4797}#
+                           #{var 4798}#
+                           #{val 4799}#
+                           #{exp2 4800}#)
                     (list '#(syntax-object
                              make-variable-transformer
                              ((top)
                               #(ribcage
                                 #(id exp1 var val exp2)
                                 #((top) (top) (top) (top) (top))
-                                #("i4781" "i4782" "i4783" "i4784" "i4785"))
+                                #("i4791" "i4792" "i4793" "i4794" "i4795"))
                               #(ribcage () () ())
-                              #(ribcage #(x) #((top)) #("i4763")))
+                              #(ribcage #(x) #((top)) #("i4773")))
                              (hygiene guile))
                           (list '#(syntax-object
                                    lambda
@@ -18221,13 +18324,13 @@
                                     #(ribcage
                                       #(id exp1 var val exp2)
                                       #((top) (top) (top) (top) (top))
-                                      #("i4781"
-                                        "i4782"
-                                        "i4783"
-                                        "i4784"
-                                        "i4785"))
+                                      #("i4791"
+                                        "i4792"
+                                        "i4793"
+                                        "i4794"
+                                        "i4795"))
                                     #(ribcage () () ())
-                                    #(ribcage #(x) #((top)) #("i4763")))
+                                    #(ribcage #(x) #((top)) #("i4773")))
                                    (hygiene guile))
                                 '(#(syntax-object
                                     x
@@ -18235,13 +18338,13 @@
                                      #(ribcage
                                        #(id exp1 var val exp2)
                                        #((top) (top) (top) (top) (top))
-                                       #("i4781"
-                                         "i4782"
-                                         "i4783"
-                                         "i4784"
-                                         "i4785"))
+                                       #("i4791"
+                                         "i4792"
+                                         "i4793"
+                                         "i4794"
+                                         "i4795"))
                                      #(ribcage () () ())
-                                     #(ribcage #(x) #((top)) #("i4763")))
+                                     #(ribcage #(x) #((top)) #("i4773")))
                                     (hygiene guile)))
                                 '#((#(syntax-object
                                       macro-type
@@ -18249,13 +18352,13 @@
                                        #(ribcage
                                          #(id exp1 var val exp2)
                                          #((top) (top) (top) (top) (top))
-                                         #("i4781"
-                                           "i4782"
-                                           "i4783"
-                                           "i4784"
-                                           "i4785"))
+                                         #("i4791"
+                                           "i4792"
+                                           "i4793"
+                                           "i4794"
+                                           "i4795"))
                                        #(ribcage () () ())
-                                       #(ribcage #(x) #((top)) #("i4763")))
+                                       #(ribcage #(x) #((top)) #("i4773")))
                                       (hygiene guile))
                                     .
                                     #(syntax-object
@@ -18264,13 +18367,13 @@
                                        #(ribcage
                                          #(id exp1 var val exp2)
                                          #((top) (top) (top) (top) (top))
-                                         #("i4781"
-                                           "i4782"
-                                           "i4783"
-                                           "i4784"
-                                           "i4785"))
+                                         #("i4791"
+                                           "i4792"
+                                           "i4793"
+                                           "i4794"
+                                           "i4795"))
                                        #(ribcage () () ())
-                                       #(ribcage #(x) #((top)) #("i4763")))
+                                       #(ribcage #(x) #((top)) #("i4773")))
                                       (hygiene guile))))
                                 (list '#(syntax-object
                                          syntax-case
@@ -18278,13 +18381,13 @@
                                           #(ribcage
                                             #(id exp1 var val exp2)
                                             #((top) (top) (top) (top) (top))
-                                            #("i4781"
-                                              "i4782"
-                                              "i4783"
-                                              "i4784"
-                                              "i4785"))
+                                            #("i4791"
+                                              "i4792"
+                                              "i4793"
+                                              "i4794"
+                                              "i4795"))
                                           #(ribcage () () ())
-                                          #(ribcage #(x) #((top)) #("i4763")))
+                                          #(ribcage #(x) #((top)) #("i4773")))
                                          (hygiene guile))
                                       '#(syntax-object
                                          x
@@ -18292,13 +18395,13 @@
                                           #(ribcage
                                             #(id exp1 var val exp2)
                                             #((top) (top) (top) (top) (top))
-                                            #("i4781"
-                                              "i4782"
-                                              "i4783"
-                                              "i4784"
-                                              "i4785"))
+                                            #("i4791"
+                                              "i4792"
+                                              "i4793"
+                                              "i4794"
+                                              "i4795"))
                                           #(ribcage () () ())
-                                          #(ribcage #(x) #((top)) #("i4763")))
+                                          #(ribcage #(x) #((top)) #("i4773")))
                                          (hygiene guile))
                                       '(#(syntax-object
                                           set!
@@ -18306,13 +18409,13 @@
                                            #(ribcage
                                              #(id exp1 var val exp2)
                                              #((top) (top) (top) (top) (top))
-                                             #("i4781"
-                                               "i4782"
-                                               "i4783"
-                                               "i4784"
-                                               "i4785"))
+                                             #("i4791"
+                                               "i4792"
+                                               "i4793"
+                                               "i4794"
+                                               "i4795"))
                                            #(ribcage () () ())
-                                           #(ribcage #(x) #((top)) #("i4763")))
+                                           #(ribcage #(x) #((top)) #("i4773")))
                                           (hygiene guile)))
                                       (list (list '#(syntax-object
                                                      set!
@@ -18324,19 +18427,19 @@
                                                           (top)
                                                           (top)
                                                           (top))
-                                                        #("i4781"
-                                                          "i4782"
-                                                          "i4783"
-                                                          "i4784"
-                                                          "i4785"))
+                                                        #("i4791"
+                                                          "i4792"
+                                                          "i4793"
+                                                          "i4794"
+                                                          "i4795"))
                                                       #(ribcage () () ())
                                                       #(ribcage
                                                         #(x)
                                                         #((top))
-                                                        #("i4763")))
+                                                        #("i4773")))
                                                      (hygiene guile))
-                                                  #{var 4788}#
-                                                  #{val 4789}#)
+                                                  #{var 4798}#
+                                                  #{val 4799}#)
                                             (list '#(syntax-object
                                                      syntax
                                                      ((top)
@@ -18347,19 +18450,19 @@
                                                           (top)
                                                           (top)
                                                           (top))
-                                                        #("i4781"
-                                                          "i4782"
-                                                          "i4783"
-                                                          "i4784"
-                                                          "i4785"))
+                                                        #("i4791"
+                                                          "i4792"
+                                                          "i4793"
+                                                          "i4794"
+                                                          "i4795"))
                                                       #(ribcage () () ())
                                                       #(ribcage
                                                         #(x)
                                                         #((top))
-                                                        #("i4763")))
+                                                        #("i4773")))
                                                      (hygiene guile))
-                                                  #{exp2 4790}#))
-                                      (list (cons #{id 4786}#
+                                                  #{exp2 4800}#))
+                                      (list (cons #{id 4796}#
                                                   '(#(syntax-object
                                                       x
                                                       ((top)
@@ -18374,16 +18477,16 @@
                                                            (top)
                                                            (top)
                                                            (top))
-                                                         #("i4781"
-                                                           "i4782"
-                                                           "i4783"
-                                                           "i4784"
-                                                           "i4785"))
+                                                         #("i4791"
+                                                           "i4792"
+                                                           "i4793"
+                                                           "i4794"
+                                                           "i4795"))
                                                        #(ribcage () () ())
                                                        #(ribcage
                                                          #(x)
                                                          #((top))
-                                                         #("i4763")))
+                                                         #("i4773")))
                                                       (hygiene guile))
                                                     #(syntax-object
                                                       ...
@@ -18399,16 +18502,16 @@
                                                            (top)
                                                            (top)
                                                            (top))
-                                                         #("i4781"
-                                                           "i4782"
-                                                           "i4783"
-                                                           "i4784"
-                                                           "i4785"))
+                                                         #("i4791"
+                                                           "i4792"
+                                                           "i4793"
+                                                           "i4794"
+                                                           "i4795"))
                                                        #(ribcage () () ())
                                                        #(ribcage
                                                          #(x)
                                                          #((top))
-                                                         #("i4763")))
+                                                         #("i4773")))
                                                       (hygiene guile))))
                                             (list '#(syntax-object
                                                      syntax
@@ -18420,18 +18523,18 @@
                                                           (top)
                                                           (top)
                                                           (top))
-                                                        #("i4781"
-                                                          "i4782"
-                                                          "i4783"
-                                                          "i4784"
-                                                          "i4785"))
+                                                        #("i4791"
+                                                          "i4792"
+                                                          "i4793"
+                                                          "i4794"
+                                                          "i4795"))
                                                       #(ribcage () () ())
                                                       #(ribcage
                                                         #(x)
                                                         #((top))
-                                                        #("i4763")))
+                                                        #("i4773")))
                                                      (hygiene guile))
-                                                  (cons #{exp1 4787}#
+                                                  (cons #{exp1 4797}#
                                                         '(#(syntax-object
                                                             x
                                                             ((top)
@@ -18446,11 +18549,11 @@
                                                                  (top)
                                                                  (top)
                                                                  (top))
-                                                               #("i4781"
-                                                                 "i4782"
-                                                                 "i4783"
-                                                                 "i4784"
-                                                                 "i4785"))
+                                                               #("i4791"
+                                                                 "i4792"
+                                                                 "i4793"
+                                                                 "i4794"
+                                                                 "i4795"))
                                                              #(ribcage
                                                                ()
                                                                ()
@@ -18458,7 +18561,7 @@
                                                              #(ribcage
                                                                #(x)
                                                                #((top))
-                                                               #("i4763")))
+                                                               #("i4773")))
                                                             (hygiene guile))
                                                           #(syntax-object
                                                             ...
@@ -18474,11 +18577,11 @@
                                                                  (top)
                                                                  (top)
                                                                  (top))
-                                                               #("i4781"
-                                                                 "i4782"
-                                                                 "i4783"
-                                                                 "i4784"
-                                                                 "i4785"))
+                                                               #("i4791"
+                                                                 "i4792"
+                                                                 "i4793"
+                                                                 "i4794"
+                                                                 "i4795"))
                                                              #(ribcage
                                                                ()
                                                                ()
@@ -18486,10 +18589,10 @@
                                                              #(ribcage
                                                                #(x)
                                                                #((top))
-                                                               #("i4763")))
+                                                               #("i4773")))
                                                             (hygiene
                                                               guile))))))
-                                      (list #{id 4786}#
+                                      (list #{id 4796}#
                                             (list '#(syntax-object
                                                      identifier?
                                                      ((top)
@@ -18500,16 +18603,16 @@
                                                           (top)
                                                           (top)
                                                           (top))
-                                                        #("i4781"
-                                                          "i4782"
-                                                          "i4783"
-                                                          "i4784"
-                                                          "i4785"))
+                                                        #("i4791"
+                                                          "i4792"
+                                                          "i4793"
+                                                          "i4794"
+                                                          "i4795"))
                                                       #(ribcage () () ())
                                                       #(ribcage
                                                         #(x)
                                                         #((top))
-                                                        #("i4763")))
+                                                        #("i4773")))
                                                      (hygiene guile))
                                                   (list '#(syntax-object
                                                            syntax
@@ -18525,18 +18628,18 @@
                                                                 (top)
                                                                 (top)
                                                                 (top))
-                                                              #("i4781"
-                                                                "i4782"
-                                                                "i4783"
-                                                                "i4784"
-                                                                "i4785"))
+                                                              #("i4791"
+                                                                "i4792"
+                                                                "i4793"
+                                                                "i4794"
+                                                                "i4795"))
                                                             #(ribcage () () ())
                                                             #(ribcage
                                                               #(x)
                                                               #((top))
-                                                              #("i4763")))
+                                                              #("i4773")))
                                                            (hygiene guile))
-                                                        #{id 4786}#))
+                                                        #{id 4796}#))
                                             (list '#(syntax-object
                                                      syntax
                                                      ((top)
@@ -18547,69 +18650,69 @@
                                                           (top)
                                                           (top)
                                                           (top))
-                                                        #("i4781"
-                                                          "i4782"
-                                                          "i4783"
-                                                          "i4784"
-                                                          "i4785"))
+                                                        #("i4791"
+                                                          "i4792"
+                                                          "i4793"
+                                                          "i4794"
+                                                          "i4795"))
                                                       #(ribcage () () ())
                                                       #(ribcage
                                                         #(x)
                                                         #((top))
-                                                        #("i4763")))
+                                                        #("i4773")))
                                                      (hygiene guile))
-                                                  #{exp1 4787}#))))))
-                  #{tmp 4768}#)
+                                                  #{exp1 4797}#))))))
+                  #{tmp 4778}#)
                 (syntax-violation
                   #f
                   "source expression failed to match any pattern"
-                  #{tmp 4764}#)))))))))
+                  #{tmp 4774}#)))))))))
 
 (define define*
   (make-syntax-transformer
     'define*
     'macro
-    (lambda (#{x 4791}#)
-      (let ((#{tmp 4793}# #{x 4791}#))
-        (let ((#{tmp 4794}#
+    (lambda (#{x 4801}#)
+      (let ((#{tmp 4803}# #{x 4801}#))
+        (let ((#{tmp 4804}#
                 ($sc-dispatch
-                  #{tmp 4793}#
+                  #{tmp 4803}#
                   '(_ (any . any) any . each-any))))
-          (if #{tmp 4794}#
+          (if #{tmp 4804}#
             (@apply
-              (lambda (#{id 4799}#
-                       #{args 4800}#
-                       #{b0 4801}#
-                       #{b1 4802}#)
+              (lambda (#{id 4809}#
+                       #{args 4810}#
+                       #{b0 4811}#
+                       #{b1 4812}#)
                 (list '#(syntax-object
                          define
                          ((top)
                           #(ribcage
                             #(id args b0 b1)
                             #((top) (top) (top) (top))
-                            #("i4795" "i4796" "i4797" "i4798"))
+                            #("i4805" "i4806" "i4807" "i4808"))
                           #(ribcage () () ())
-                          #(ribcage #(x) #((top)) #("i4792")))
+                          #(ribcage #(x) #((top)) #("i4802")))
                          (hygiene guile))
-                      #{id 4799}#
+                      #{id 4809}#
                       (cons '#(syntax-object
                                lambda*
                                ((top)
                                 #(ribcage
                                   #(id args b0 b1)
                                   #((top) (top) (top) (top))
-                                  #("i4795" "i4796" "i4797" "i4798"))
+                                  #("i4805" "i4806" "i4807" "i4808"))
                                 #(ribcage () () ())
-                                #(ribcage #(x) #((top)) #("i4792")))
+                                #(ribcage #(x) #((top)) #("i4802")))
                                (hygiene guile))
-                            (cons #{args 4800}#
-                                  (cons #{b0 4801}# #{b1 4802}#)))))
-              #{tmp 4794}#)
-            (let ((#{tmp 4804}#
-                    ($sc-dispatch #{tmp 4793}# '(_ any any))))
-              (if (if #{tmp 4804}#
+                            (cons #{args 4810}#
+                                  (cons #{b0 4811}# #{b1 4812}#)))))
+              #{tmp 4804}#)
+            (let ((#{tmp 4814}#
+                    ($sc-dispatch #{tmp 4803}# '(_ any any))))
+              (if (if #{tmp 4814}#
                     (@apply
-                      (lambda (#{id 4807}# #{val 4808}#)
+                      (lambda (#{id 4817}# #{val 4818}#)
                         (identifier?
                           '#(syntax-object
                              x
@@ -18617,29 +18720,29 @@
                               #(ribcage
                                 #(id val)
                                 #((top) (top))
-                                #("i4805" "i4806"))
+                                #("i4815" "i4816"))
                               #(ribcage () () ())
-                              #(ribcage #(x) #((top)) #("i4792")))
+                              #(ribcage #(x) #((top)) #("i4802")))
                              (hygiene guile))))
-                      #{tmp 4804}#)
+                      #{tmp 4814}#)
                     #f)
                 (@apply
-                  (lambda (#{id 4811}# #{val 4812}#)
+                  (lambda (#{id 4821}# #{val 4822}#)
                     (list '#(syntax-object
                              define
                              ((top)
                               #(ribcage
                                 #(id val)
                                 #((top) (top))
-                                #("i4809" "i4810"))
+                                #("i4819" "i4820"))
                               #(ribcage () () ())
-                              #(ribcage #(x) #((top)) #("i4792")))
+                              #(ribcage #(x) #((top)) #("i4802")))
                              (hygiene guile))
-                          #{id 4811}#
-                          #{val 4812}#))
-                  #{tmp 4804}#)
+                          #{id 4821}#
+                          #{val 4822}#))
+                  #{tmp 4814}#)
                 (syntax-violation
                   #f
                   "source expression failed to match any pattern"
-                  #{tmp 4793}#)))))))))
+                  #{tmp 4803}#)))))))))
 
diff --git a/module/ice-9/psyntax.scm b/module/ice-9/psyntax.scm
index 5380ba7..ae9c273 100644
--- a/module/ice-9/psyntax.scm
+++ b/module/ice-9/psyntax.scm
@@ -313,9 +313,9 @@
       (lambda (source)
         (make-void source)))
 
-    (define build-application
+    (define build-call
       (lambda (source fun-exp arg-exps)
-        (make-application source fun-exp arg-exps)))
+        (make-call source fun-exp arg-exps)))
   
     (define build-conditional
       (lambda (source test-exp then-exp else-exp)
@@ -402,12 +402,14 @@
       (lambda (src req opt rest kw inits vars body else-case)
         (make-lambda-case src req opt rest kw inits vars body else-case)))
 
+    (define build-primcall
+      (lambda (src name args)
+        (make-primcall src name args)))
+    
     (define build-primref
       (lambda (src name)
-        (if (equal? (module-name (current-module)) '(guile))
-            (make-toplevel-ref src name)
-            (make-module-ref src '(guile) name #f))))
-
+        (make-primitive-ref src name)))
+    
     (define (build-data src exp)
       (make-const src exp))
 
@@ -415,7 +417,7 @@
       (lambda (src exps)
         (if (null? (cdr exps))
             (car exps)
-            (make-sequence src exps))))
+            (make-seq src (car exps) (build-sequence #f (cdr exps))))))
 
     (define build-let
       (lambda (src ids vars val-exps body-exp)
@@ -436,8 +438,8 @@
             (make-letrec
              src #f
              (list f-name) (list f) (list proc)
-             (build-application src (build-lexical-reference 'fun src f-name f)
-                                val-exps))))))
+             (build-call src (build-lexical-reference 'fun src f-name f)
+                         val-exps))))))
 
     (define build-letrec
       (lambda (src in-order? ids vars val-exps body-exp)
@@ -1038,9 +1040,9 @@
         (build-global-definition
          no-source
          name
-         (build-application
+         (build-primcall
           no-source
-          (build-primref no-source 'make-syntax-transformer)
+          'make-syntax-transformer
           (list (build-data no-source name)
                 (build-data no-source 'macro)
                 e)))))
@@ -1200,7 +1202,7 @@
              (lambda (e r w s mod)
                (chi e r w mod))))
           ((lexical-call)
-           (chi-application
+           (chi-call
             (let ((id (car e)))
               (build-lexical-reference 'fun (source-annotation id)
                                        (if (syntax-object? id)
@@ -1209,7 +1211,7 @@
                                        value))
             e r w s mod))
           ((global-call)
-           (chi-application
+           (chi-call
             (build-global-reference (source-annotation (car e))
                                     (if (syntax-object? value)
                                         (syntax-object-expression value)
@@ -1220,7 +1222,7 @@
             e r w s mod))
           ((constant) (build-data s (strip (source-wrap e w s mod) 
empty-wrap)))
           ((global) (build-global-reference s value mod))
-          ((call) (chi-application (chi (car e) r w mod) e r w s mod))
+          ((call) (chi-call (chi (car e) r w mod) e r w s mod))
           ((begin-form)
            (syntax-case e ()
              ((_ e1 e2 ...) (chi-sequence #'(e1 e2 ...) r w s mod))))
@@ -1245,12 +1247,12 @@
           (else (syntax-violation #f "unexpected syntax"
                                   (source-wrap e w s mod))))))
 
-    (define chi-application
+    (define chi-call
       (lambda (x e r w s mod)
         (syntax-case e ()
           ((e0 e1 ...)
-           (build-application s x
-                              (map (lambda (e) (chi e r w mod)) #'(e1 
...)))))))
+           (build-call s x
+                       (map (lambda (e) (chi e r w mod)) #'(e1 ...)))))))
 
     ;; (What follows is my interpretation of what's going on here -- Andy)
     ;;
@@ -1954,9 +1956,7 @@
                             (if (list? (cadr x))
                                 (build-simple-lambda no-source (cadr x) #f 
(cadr x) '() (regen (caddr x)))
                                 (error "how did we get here" x)))
-                           (else (build-application no-source
-                                                    (build-primref no-source 
(car x))
-                                                    (map regen (cdr x)))))))
+                           (else (build-primcall no-source (car x) (map regen 
(cdr x)))))))
 
                      (lambda (e r w s mod)
                        (let ((e (source-wrap e w s mod)))
@@ -2147,10 +2147,10 @@
                                           (build-global-assignment s 
(syntax->datum #'e)
                                                                    val 
mod)))))))
                               (else
-                               (build-application s
-                                                  (chi #'(setter head) r w mod)
-                                                  (map (lambda (e) (chi e r w 
mod))
-                                                       #'(tail ... val))))))))
+                               (build-call s
+                                           (chi #'(setter head) r w mod)
+                                           (map (lambda (e) (chi e r w mod))
+                                                #'(tail ... val))))))))
                        (_ (syntax-violation 'set! "bad set!" (source-wrap e w 
s mod))))))
 
     (global-extend 'module-ref '@
@@ -2288,20 +2288,21 @@
                        (lambda (pvars exp y r mod)
                          (let ((ids (map car pvars)) (levels (map cdr pvars)))
                            (let ((labels (gen-labels ids)) (new-vars (map 
gen-var ids)))
-                             (build-application no-source
-                                                (build-primref no-source 
'apply)
-                                                (list (build-simple-lambda 
no-source (map syntax->datum ids) #f new-vars '()
-                                                                           
(chi exp
-                                                                               
 (extend-env
-                                                                               
  labels
-                                                                               
  (map (lambda (var level)
-                                                                               
         (make-binding 'syntax `(,var . ,level)))
-                                                                               
       new-vars
-                                                                               
       (map cdr pvars))
-                                                                               
  r)
-                                                                               
 (make-binding-wrap ids labels empty-wrap)
-                                                                               
 mod))
-                                                      y))))))
+                             (build-primcall
+                              no-source
+                              'apply
+                              (list (build-simple-lambda no-source (map 
syntax->datum ids) #f new-vars '()
+                                                         (chi exp
+                                                              (extend-env
+                                                               labels
+                                                               (map (lambda 
(var level)
+                                                                      
(make-binding 'syntax `(,var . ,level)))
+                                                                    new-vars
+                                                                    (map cdr 
pvars))
+                                                               r)
+                                                              
(make-binding-wrap ids labels empty-wrap)
+                                                              mod))
+                                    y))))))
 
                      (define gen-clause
                        (lambda (x keys clauses r pat fender exp mod)
@@ -2316,36 +2317,32 @@
                               (else
                                (let ((y (gen-var 'tmp)))
                                  ;; fat finger binding and references to temp 
variable y
-                                 (build-application no-source
-                                                    (build-simple-lambda 
no-source (list 'tmp) #f (list y) '()
-                                                                         (let 
((y (build-lexical-reference 'value no-source
-                                                                               
                            'tmp y)))
-                                                                           
(build-conditional no-source
-                                                                               
               (syntax-case fender ()
-                                                                               
                 (#t y)
-                                                                               
                 (_ (build-conditional no-source
-                                                                               
                                       y
-                                                                               
                                       (build-dispatch-call pvars fender y r 
mod)
-                                                                               
                                       (build-data no-source #f))))
-                                                                               
               (build-dispatch-call pvars exp y r mod)
-                                                                               
               (gen-syntax-case x keys clauses r mod))))
-                                                    (list (if (eq? p 'any)
-                                                              
(build-application no-source
-                                                                               
  (build-primref no-source 'list)
-                                                                               
  (list x))
-                                                              
(build-application no-source
-                                                                               
  (build-primref no-source '$sc-dispatch)
-                                                                               
  (list x (build-data no-source p)))))))))))))
+                                 (build-call no-source
+                                             (build-simple-lambda no-source 
(list 'tmp) #f (list y) '()
+                                                                  (let ((y 
(build-lexical-reference 'value no-source
+                                                                               
                     'tmp y)))
+                                                                    
(build-conditional no-source
+                                                                               
        (syntax-case fender ()
+                                                                               
          (#t y)
+                                                                               
          (_ (build-conditional no-source
+                                                                               
                                y
+                                                                               
                                (build-dispatch-call pvars fender y r mod)
+                                                                               
                                (build-data no-source #f))))
+                                                                               
        (build-dispatch-call pvars exp y r mod)
+                                                                               
        (gen-syntax-case x keys clauses r mod))))
+                                             (list (if (eq? p 'any)
+                                                       (build-primcall 
no-source 'list (list x))
+                                                       (build-primcall 
no-source '$sc-dispatch
+                                                                       (list x 
(build-data no-source p)))))))))))))
 
                      (define gen-syntax-case
                        (lambda (x keys clauses r mod)
                          (if (null? clauses)
-                             (build-application no-source
-                                                (build-primref no-source 
'syntax-violation)
-                                                (list (build-data no-source #f)
-                                                      (build-data no-source
-                                                                  "source 
expression failed to match any pattern")
-                                                      x))
+                             (build-primcall no-source 'syntax-violation
+                                             (list (build-data no-source #f)
+                                                   (build-data no-source
+                                                               "source 
expression failed to match any pattern")
+                                                   x))
                              (syntax-case (car clauses) ()
                                ((pat exp)
                                 (if (and (id? #'pat)
@@ -2355,18 +2352,18 @@
                                         (chi #'exp r empty-wrap mod)
                                         (let ((labels (list (gen-label)))
                                               (var (gen-var #'pat)))
-                                          (build-application no-source
-                                                             
(build-simple-lambda
-                                                              no-source (list 
(syntax->datum #'pat)) #f (list var)
-                                                              '()
-                                                              (chi #'exp
-                                                                   (extend-env 
labels
-                                                                               
(list (make-binding 'syntax `(,var . 0)))
-                                                                               
r)
-                                                                   
(make-binding-wrap #'(pat)
-                                                                               
       labels empty-wrap)
-                                                                   mod))
-                                                             (list x))))
+                                          (build-call no-source
+                                                      (build-simple-lambda
+                                                       no-source (list 
(syntax->datum #'pat)) #f (list var)
+                                                       '()
+                                                       (chi #'exp
+                                                            (extend-env labels
+                                                                        (list 
(make-binding 'syntax `(,var . 0)))
+                                                                        r)
+                                                            (make-binding-wrap 
#'(pat)
+                                                                               
labels empty-wrap)
+                                                            mod))
+                                                      (list x))))
                                     (gen-clause x keys (cdr clauses) r
                                                 #'pat #t #'exp mod)))
                                ((pat fender exp)
@@ -2383,14 +2380,14 @@
                                          #'(key ...))
                                 (let ((x (gen-var 'tmp)))
                                   ;; fat finger binding and references to temp 
variable x
-                                  (build-application s
-                                                     (build-simple-lambda 
no-source (list 'tmp) #f (list x) '()
-                                                                          
(gen-syntax-case (build-lexical-reference 'value no-source
-                                                                               
                                     'tmp x)
-                                                                               
            #'(key ...) #'(m ...)
-                                                                               
            r
-                                                                               
            mod))
-                                                     (list (chi #'val r 
empty-wrap mod))))
+                                  (build-call s
+                                              (build-simple-lambda no-source 
(list 'tmp) #f (list x) '()
+                                                                   
(gen-syntax-case (build-lexical-reference 'value no-source
+                                                                               
                              'tmp x)
+                                                                               
     #'(key ...) #'(m ...)
+                                                                               
     r
+                                                                               
     mod))
+                                              (list (chi #'val r empty-wrap 
mod))))
                                 (syntax-violation 'syntax-case "invalid 
literals list" e))))))))
 
     ;; The portable macroexpand seeds chi-top's mode m with 'e (for
diff --git a/module/language/brainfuck/compile-tree-il.scm 
b/module/language/brainfuck/compile-tree-il.scm
index 33d5634..f9dd036 100644
--- a/module/language/brainfuck/compile-tree-il.scm
+++ b/module/language/brainfuck/compile-tree-il.scm
@@ -1,6 +1,6 @@
 ;;; Brainfuck for GNU Guile
 
-;; 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
@@ -94,7 +94,7 @@
    (parse-tree-il
     `(let (pointer tape) (pointer tape)
           ((const 0)
-           (apply (primitive make-vector) (const ,tape-size) (const 0)))
+           (call (primitive make-vector) (const ,tape-size) (const 0)))
           ,(compile-body exp)))
    env
    env))
@@ -109,11 +109,11 @@
     (cond
      ((null? in)
       ;; No more input, build our output.
-       (cond
-        ((null? out) '(void)) ; no output
-        ((null? (cdr out)) (car out)) ; single expression
-        (else `(begin ,@(reverse out))))  ; sequence
-       )
+      (cond
+       ((null? out) '(void))             ; no output
+       ((null? (cdr out)) (car out))     ; single expression
+       (else `(begin ,@(reverse out))))  ; sequence
+      )
      (else
       (pmatch (car in)
 
@@ -121,34 +121,34 @@
         ;;   (set! pointer (+ pointer +-1))
         ((<bf-move> ,dir)
          (emit `(set! (lexical pointer)
-                      (apply (primitive +) (lexical pointer) (const ,dir)))))
+                      (call (primitive +) (lexical pointer) (const ,dir)))))
 
         ;; Cell increment +- is done as:
         ;;   (vector-set! tape pointer (+ (vector-ref tape pointer) +-1))
         ((<bf-increment> ,inc) 
-         (emit `(apply (primitive vector-set!) (lexical tape) (lexical pointer)
-                       (apply (primitive +)
-                              (apply (primitive vector-ref)
-                                     (lexical tape) (lexical pointer))
-                              (const ,inc)))))
+         (emit `(call (primitive vector-set!) (lexical tape) (lexical pointer)
+                      (call (primitive +)
+                            (call (primitive vector-ref)
+                                  (lexical tape) (lexical pointer))
+                            (const ,inc)))))
 
         ;; Output . is done by converting the cell's integer value to a
         ;; character first and then printing out this character:
         ;;   (write-char (integer->char (vector-ref tape pointer)))
         ((<bf-print>) 
-         (emit `(apply (primitive write-char)
-                       (apply (primitive integer->char)
-                              (apply (primitive vector-ref)
-                                     (lexical tape) (lexical pointer))))))
+         (emit `(call (primitive write-char)
+                      (call (primitive integer->char)
+                            (call (primitive vector-ref)
+                                  (lexical tape) (lexical pointer))))))
 
         ;; Input , is done similarly, read in a character, get its ASCII
         ;; code and store it into the current cell:
         ;;   (vector-set! tape pointer (char->integer (read-char)))
         ((<bf-read>) 
-         (emit `(apply (primitive vector-set!)
-                       (lexical tape) (lexical pointer)
-                       (apply (primitive char->integer)
-                              (apply (primitive read-char))))))
+         (emit `(call (primitive vector-set!)
+                      (lexical tape) (lexical pointer)
+                      (call (primitive char->integer)
+                            (call (primitive read-char))))))
 
         ;; For loops [...] we use a letrec construction to execute the body 
until
         ;; the current cell gets zero.  The body is compiled via a recursive 
call
@@ -171,14 +171,14 @@
                           ((lambda ()
                              (lambda-case
                               ((() #f #f #f () ())
-                               (if (apply (primitive =)
-                                          (apply (primitive vector-ref)
-                                                 (lexical tape) (lexical 
pointer))
-                                          (const 0))
+                               (if (call (primitive =)
+                                         (call (primitive vector-ref)
+                                               (lexical tape) (lexical 
pointer))
+                                         (const 0))
                                    (void)
                                    (begin ,(compile-body body)
-                                          (apply (lexical ,iterate)))))
+                                          (call (lexical ,iterate)))))
                               #f)))
-                     (apply (lexical ,iterate))))))
+                          (call (lexical ,iterate))))))
 
         (else (error "unknown brainfuck instruction" (car in))))))))
diff --git a/module/language/ecmascript/compile-tree-il.scm 
b/module/language/ecmascript/compile-tree-il.scm
index c46fd62..7a96d07 100644
--- a/module/language/ecmascript/compile-tree-il.scm
+++ b/module/language/ecmascript/compile-tree-il.scm
@@ -38,7 +38,7 @@
 (define-syntax @impl
   (syntax-rules ()
     ((_ sym arg ...)
-     (-> (apply (@implv sym) arg ...)))))
+     (-> (call (@implv sym) arg ...)))))
 
 (define (empty-lexical-environment)
   '())
@@ -103,23 +103,23 @@
       (this
        (@impl get-this))
       ((+ ,a)
-       (-> (apply (-> (primitive '+))
-                  (@impl ->number (comp a e))
-                  (-> (const 0)))))
+       (-> (call (-> (primitive '+))
+                 (@impl ->number (comp a e))
+                 (-> (const 0)))))
       ((- ,a)
-       (-> (apply (-> (primitive '-)) (-> (const 0)) (comp a e))))
+       (-> (call (-> (primitive '-)) (-> (const 0)) (comp a e))))
       ((~ ,a)
        (@impl bitwise-not (comp a e)))
       ((! ,a)
        (@impl logical-not (comp a e)))
       ((+ ,a ,b)
-       (-> (apply (-> (primitive '+)) (comp a e) (comp b e))))
+       (-> (call (-> (primitive '+)) (comp a e) (comp b e))))
       ((- ,a ,b)
-       (-> (apply (-> (primitive '-)) (comp a e) (comp b e))))
+       (-> (call (-> (primitive '-)) (comp a e) (comp b e))))
       ((/ ,a ,b)
-       (-> (apply (-> (primitive '/)) (comp a e) (comp b e))))
+       (-> (call (-> (primitive '/)) (comp a e) (comp b e))))
       ((* ,a ,b)
-       (-> (apply (-> (primitive '*)) (comp a e) (comp b e))))
+       (-> (call (-> (primitive '*)) (comp a e) (comp b e))))
       ((% ,a ,b)
        (@impl mod (comp a e) (comp b e)))
       ((<< ,a ,b)
@@ -127,27 +127,27 @@
       ((>> ,a ,b)
        (@impl shift (comp a e) (comp `(- ,b) e)))
       ((< ,a ,b)
-       (-> (apply (-> (primitive '<)) (comp a e) (comp b e))))
+       (-> (call (-> (primitive '<)) (comp a e) (comp b e))))
       ((<= ,a ,b)
-       (-> (apply (-> (primitive '<=)) (comp a e) (comp b e))))
+       (-> (call (-> (primitive '<=)) (comp a e) (comp b e))))
       ((> ,a ,b)
-       (-> (apply (-> (primitive '>)) (comp a e) (comp b e))))
+       (-> (call (-> (primitive '>)) (comp a e) (comp b e))))
       ((>= ,a ,b)
-       (-> (apply (-> (primitive '>=)) (comp a e) (comp b e))))
+       (-> (call (-> (primitive '>=)) (comp a e) (comp b e))))
       ((in ,a ,b)
        (@impl has-property? (comp a e) (comp b e)))
       ((== ,a ,b)
-       (-> (apply (-> (primitive 'equal?)) (comp a e) (comp b e))))
+       (-> (call (-> (primitive 'equal?)) (comp a e) (comp b e))))
       ((!= ,a ,b)
-       (-> (apply (-> (primitive 'not))
-                  (-> (apply (-> (primitive 'equal?))
-                             (comp a e) (comp b e))))))
+       (-> (call (-> (primitive 'not))
+                 (-> (call (-> (primitive 'equal?))
+                           (comp a e) (comp b e))))))
       ((=== ,a ,b)
-       (-> (apply (-> (primitive 'eqv?)) (comp a e) (comp b e))))
+       (-> (call (-> (primitive 'eqv?)) (comp a e) (comp b e))))
       ((!== ,a ,b)
-       (-> (apply (-> (primitive 'not))
-                  (-> (apply (-> (primitive 'eqv?))
-                             (comp a e) (comp b e))))))
+       (-> (call (-> (primitive 'not))
+                 (-> (call (-> (primitive 'eqv?))
+                           (comp a e) (comp b e))))))
       ((& ,a ,b)
        (@impl band (comp a e) (comp b e)))
       ((^ ,a ,b)
@@ -176,9 +176,9 @@
        (begin1 (comp `(ref ,foo) e)
                (lambda (var)
                  (-> (set! (lookup foo e)
-                           (-> (apply (-> (primitive '+))
-                                      (-> (lexical var var))
-                                      (-> (const 1)))))))))
+                           (-> (call (-> (primitive '+))
+                                     (-> (lexical var var))
+                                     (-> (const 1)))))))))
       ((postinc (pref ,obj ,prop))
        (let1 (comp obj e)
              (lambda (objvar)
@@ -189,9 +189,9 @@
                          (@impl pput
                                 (-> (lexical objvar objvar))
                                 (-> (const prop))
-                                (-> (apply (-> (primitive '+))
-                                           (-> (lexical tmpvar tmpvar))
-                                           (-> (const 1))))))))))
+                                (-> (call (-> (primitive '+))
+                                          (-> (lexical tmpvar tmpvar))
+                                          (-> (const 1))))))))))
       ((postinc (aref ,obj ,prop))
        (let1 (comp obj e)
              (lambda (objvar)
@@ -204,16 +204,16 @@
                                  (@impl pput
                                         (-> (lexical objvar objvar))
                                         (-> (lexical propvar propvar))
-                                        (-> (apply (-> (primitive '+))
-                                                   (-> (lexical tmpvar tmpvar))
-                                                   (-> (const 1))))))))))))
+                                        (-> (call (-> (primitive '+))
+                                                  (-> (lexical tmpvar tmpvar))
+                                                  (-> (const 1))))))))))))
       ((postdec (ref ,foo))
        (begin1 (comp `(ref ,foo) e)
                (lambda (var)
                  (-> (set (lookup foo e)
-                          (-> (apply (-> (primitive '-))
-                                     (-> (lexical var var))
-                                     (-> (const 1)))))))))
+                          (-> (call (-> (primitive '-))
+                                    (-> (lexical var var))
+                                    (-> (const 1)))))))))
       ((postdec (pref ,obj ,prop))
        (let1 (comp obj e)
              (lambda (objvar)
@@ -224,9 +224,9 @@
                          (@impl pput
                                 (-> (lexical objvar objvar))
                                 (-> (const prop))
-                                (-> (apply (-> (primitive '-))
-                                           (-> (lexical tmpvar tmpvar))
-                                           (-> (const 1))))))))))
+                                (-> (call (-> (primitive '-))
+                                          (-> (lexical tmpvar tmpvar))
+                                          (-> (const 1))))))))))
       ((postdec (aref ,obj ,prop))
        (let1 (comp obj e)
              (lambda (objvar)
@@ -246,18 +246,18 @@
        (let ((v (lookup foo e)))
          (-> (begin
                (-> (set! v
-                         (-> (apply (-> (primitive '+))
-                                    v
-                                    (-> (const 1))))))
+                         (-> (call (-> (primitive '+))
+                                   v
+                                   (-> (const 1))))))
                v))))
       ((preinc (pref ,obj ,prop))
        (let1 (comp obj e)
              (lambda (objvar)
-               (begin1 (-> (apply (-> (primitive '+))
-                                  (@impl pget
-                                         (-> (lexical objvar objvar))
-                                         (-> (const prop)))
-                                  (-> (const 1))))
+               (begin1 (-> (call (-> (primitive '+))
+                                 (@impl pget
+                                        (-> (lexical objvar objvar))
+                                        (-> (const prop)))
+                                 (-> (const 1))))
                        (lambda (tmpvar)
                          (@impl pput (-> (lexical objvar objvar))
                                 (-> (const prop))
@@ -267,11 +267,11 @@
              (lambda (objvar)
                (let1 (comp prop e)
                      (lambda (propvar)
-                       (begin1 (-> (apply (-> (primitive '+))
-                                          (@impl pget
-                                                 (-> (lexical objvar objvar))
-                                                 (-> (lexical propvar 
propvar)))
-                                          (-> (const 1))))
+                       (begin1 (-> (call (-> (primitive '+))
+                                         (@impl pget
+                                                (-> (lexical objvar objvar))
+                                                (-> (lexical propvar propvar)))
+                                         (-> (const 1))))
                                (lambda (tmpvar)
                                  (@impl pput
                                         (-> (lexical objvar objvar))
@@ -281,18 +281,18 @@
        (let ((v (lookup foo e)))
          (-> (begin
                (-> (set! v
-                        (-> (apply (-> (primitive '-))
+                         (-> (call (-> (primitive '-))
                                    v
                                    (-> (const 1))))))
                v))))
       ((predec (pref ,obj ,prop))
        (let1 (comp obj e)
              (lambda (objvar)
-               (begin1 (-> (apply (-> (primitive '-))
-                                  (@impl pget
-                                         (-> (lexical objvar objvar))
-                                         (-> (const prop)))
-                                  (-> (const 1))))
+               (begin1 (-> (call (-> (primitive '-))
+                                 (@impl pget
+                                        (-> (lexical objvar objvar))
+                                        (-> (const prop)))
+                                 (-> (const 1))))
                        (lambda (tmpvar)
                          (@impl pput
                                 (-> (lexical objvar objvar))
@@ -303,11 +303,11 @@
              (lambda (objvar)
                (let1 (comp prop e)
                      (lambda (propvar)
-                       (begin1 (-> (apply (-> (primitive '-))
-                                          (@impl pget
-                                                 (-> (lexical objvar objvar))
-                                                 (-> (lexical propvar 
propvar)))
-                                          (-> (const 1))))
+                       (begin1 (-> (call (-> (primitive '-))
+                                         (@impl pget
+                                                (-> (lexical objvar objvar))
+                                                (-> (lexical propvar propvar)))
+                                         (-> (const 1))))
                                (lambda (tmpvar)
                                  (@impl pput
                                         (-> (lexical objvar objvar))
@@ -345,7 +345,7 @@
               (-> (lambda '() 
                     `(lambda-case
                       ((() #f #f #f () ())
-                       (apply ,(@impl pget obj prop) ,@args)))))))
+                       (call ,(@impl pget obj prop) ,@args)))))))
       ((call (pref ,obj ,prop) ,args)
        (comp `(call/this ,(comp obj e)
                          ,(-> (const prop))
@@ -357,25 +357,25 @@
                          ,@(map (lambda (x) (comp x e)) args))
              e))
       ((call ,proc ,args)
-       `(apply ,(comp proc e)                
-               ,@(map (lambda (x) (comp x e)) args)))
+       `(call ,(comp proc e)                
+              ,@(map (lambda (x) (comp x e)) args)))
       ((return ,expr)
-       (-> (apply (-> (primitive 'return))
-                  (comp expr e))))
+       (-> (call (-> (primitive 'return))
+                 (comp expr e))))
       ((array . ,args)
-       `(apply ,(@implv new-array)
-               ,@(map (lambda (x) (comp x e)) args)))
+       `(call ,(@implv new-array)
+              ,@(map (lambda (x) (comp x e)) args)))
       ((object . ,args)
-       `(apply ,(@implv new-object)
-               ,@(map (lambda (x)
-                         (pmatch x
-                                 ((,prop ,val)
-                                  (-> (apply (-> (primitive 'cons))
-                                             (-> (const prop))
-                                             (comp val e))))
-                                 (else
-                                  (error "bad prop-val pair" x))))
-                       args)))
+       `(call ,(@implv new-object)
+              ,@(map (lambda (x)
+                       (pmatch x
+                         ((,prop ,val)
+                          (-> (call (-> (primitive 'cons))
+                                    (-> (const prop))
+                                    (comp val e))))
+                         (else
+                          (error "bad prop-val pair" x))))
+                     args)))
       ((pref ,obj ,prop)
        (@impl pget
               (comp obj e)
@@ -450,14 +450,14 @@
                                         `((() #f #f #f () ())
                                           ,(-> (begin
                                                  (comp statement e)
-                                                 (-> (apply (-> (lexical 
'%continue %continue)))))))))))
+                                                 (-> (call (-> (lexical 
'%continue %continue)))))))))))
                              (-> (lambda '()
                                    (-> (lambda-case
                                         `((() #f #f #f () ())
                                           ,(-> (if (@impl ->boolean (comp test 
e))
-                                                   (-> (apply (-> (lexical 
'%loop %loop))))
+                                                   (-> (call (-> (lexical 
'%loop %loop))))
                                                    (@implv *undefined*)))))))))
-                       (-> (apply (-> (lexical '%loop %loop)))))))))
+                       (-> (call (-> (lexical '%loop %loop)))))))))
       ((while ,test ,statement)
        (let ((%continue (gensym "%continue ")))
          (let ((e (econs '%continue %continue e)))
@@ -467,9 +467,9 @@
                                         `((() #f #f #f () ())
                                           ,(-> (if (@impl ->boolean (comp test 
e))
                                                    (-> (begin (comp statement 
e)
-                                                              (-> (apply (-> 
(lexical '%continue %continue))))))
+                                                              (-> (call (-> 
(lexical '%continue %continue))))))
                                                    (@implv *undefined*)))))))))
-                       (-> (apply (-> (lexical '%continue %continue)))))))))
+                       (-> (call (-> (lexical '%continue %continue)))))))))
       
       ((for ,init ,test ,inc ,statement)
        (let ((%continue (gensym "%continue ")))
@@ -483,10 +483,10 @@
                                                        (comp 'true e))
                                                    (-> (begin (comp statement 
e)
                                                               (comp (or inc 
'(begin)) e)
-                                                              (-> (apply (-> 
(lexical '%continue %continue))))))
+                                                              (-> (call (-> 
(lexical '%continue %continue))))))
                                                    (@implv *undefined*)))))))))
                        (-> (begin (comp (or init '(begin)) e)
-                                  (-> (apply (-> (lexical '%continue 
%continue)))))))))))
+                                  (-> (call (-> (lexical '%continue 
%continue)))))))))))
       
       ((for-in ,var ,object ,statement)
        (let ((%enum (gensym "%enum "))
@@ -506,9 +506,9 @@
                                                                                
   ,(-> (const 'pop))))
                                                               e)
                                                         (comp statement e)
-                                                        (-> (apply (-> 
(lexical '%continue %continue))))))
+                                                        (-> (call (-> (lexical 
'%continue %continue))))))
                                                   (@implv *undefined*)))))))))
-                       (-> (apply (-> (lexical '%continue %continue)))))))))
+                       (-> (call (-> (lexical '%continue %continue)))))))))
       
       ((block ,x)
        (comp x e))
diff --git a/module/language/elisp/compile-tree-il.scm 
b/module/language/elisp/compile-tree-il.scm
index 0df21c7..e1d75ba 100644
--- a/module/language/elisp/compile-tree-il.scm
+++ b/module/language/elisp/compile-tree-il.scm
@@ -1,6 +1,6 @@
 ;;; Guile Emacs Lisp
 
-;; Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+;; Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc.
 
 ;; This program is free software; you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
@@ -109,7 +109,7 @@
 ;;; Build a call to a primitive procedure nicely.
 
 (define (call-primitive loc sym . args)
-  (make-application loc (make-primitive-ref loc sym) args))
+  (make-primcall loc sym args))
 
 ;;; Error reporting routine for syntax/compilation problems or build
 ;;; code for a runtime-error output.
@@ -118,9 +118,8 @@
   (apply error args))
 
 (define (runtime-error loc msg . args)
-  (make-application loc
-                    (make-primitive-ref loc 'error)
-                    (cons (make-const loc msg) args)))
+  (make-primcall loc 'error
+                 (cons (make-const loc msg) args)))
 
 ;;; Generate code to ensure a global symbol is there for further use of
 ;;; a given symbol.  In general during the compilation, those needed are
@@ -129,13 +128,13 @@
 ;;; this routine.
 
 (define (generate-ensure-global loc sym module)
-  (make-application loc
-                    (make-module-ref loc runtime 'ensure-fluid! #t)
-                    (list (make-const loc module)
-                          (make-const loc sym))))
+  (make-call loc
+             (make-module-ref loc runtime 'ensure-fluid! #t)
+             (list (make-const loc module)
+                   (make-const loc sym))))
 
 (define (ensuring-globals loc bindings body)
-  (make-sequence
+  (list->seq
    loc
    `(,@(map-globals-needed (fluid-ref bindings)
                            (lambda (mod sym)
@@ -151,12 +150,11 @@
   (call-primitive
    loc
    'with-fluids*
-   (make-application loc
-                     (make-primitive-ref loc 'list)
-                     (map (lambda (sym)
-                            (make-module-ref loc module sym #t))
-                          syms))
-   (make-application loc (make-primitive-ref loc 'list) vals)
+   (make-primcall loc 'list
+                  (map (lambda (sym)
+                         (make-module-ref loc module sym #t))
+                       syms))
+   (make-primcall loc 'list vals)
    (make-lambda loc
                 '()
                 (make-lambda-case #f '() #f #f #f '() '() body #f))))
@@ -204,7 +202,7 @@
    sym
    module
    (lambda ()
-     (make-application
+     (make-call
       loc
       (make-module-ref loc runtime 'set-variable! #t)
       (list (make-const loc module) (make-const loc sym) value)))
@@ -288,7 +286,7 @@
                              (map (lambda (el) (compile-expr (cdr el)))
                                   for)))
               (make-body (lambda ()
-                           (make-sequence loc (map compile-expr body)))))
+                           (list->seq loc (map compile-expr body)))))
           (if (null? lexical)
               (let-dynamic loc (map car dynamic) module
                            (make-values dynamic) (make-body))
@@ -332,7 +330,7 @@
                 (map car bind))
       (let iterate ((tail bind))
         (if (null? tail)
-            (make-sequence loc (map compile-expr body))
+            (list->seq loc (map compile-expr body))
             (let ((sym (caar tail))
                   (value (compile-expr (cdar tail))))
               (if (bind-lexically? sym module)
@@ -502,36 +500,35 @@
               (map (lambda (x) (nil-value loc)) optional)
               all-syms
               (let ((compiled-body
-                     (make-sequence loc (map compile-expr body))))
-                (make-sequence
+                     (list->seq loc (map compile-expr body))))
+                (make-seq
                  loc
-                 (list
-                  (if rest
-                      (make-conditional
-                       loc
-                       (call-primitive loc
-                                       'null?
-                                       (make-lexical-ref loc
-                                                         rest
-                                                         the-rest-sym))
-                       (make-lexical-set loc
-                                         rest
-                                         the-rest-sym
-                                         (nil-value loc))
-                       (make-void loc))
+                 (if rest
+                     (make-conditional
+                      loc
+                      (call-primitive loc
+                                      'null?
+                                      (make-lexical-ref loc
+                                                        rest
+                                                        the-rest-sym))
+                      (make-lexical-set loc
+                                        rest
+                                        the-rest-sym
+                                        (nil-value loc))
                       (make-void loc))
-                  (if (null? dynamic)
-                      compiled-body
-                      (let-dynamic loc
-                                   dynamic
-                                   value-slot
-                                   (map (lambda (name-sym)
-                                          (make-lexical-ref
-                                           loc
-                                           (car name-sym)
-                                           (cdr name-sym)))
-                                        all-dyn-pairs)
-                                   compiled-body)))))
+                     (make-void loc))
+                 (if (null? dynamic)
+                     compiled-body
+                     (let-dynamic loc
+                                  dynamic
+                                  value-slot
+                                  (map (lambda (name-sym)
+                                         (make-lexical-ref
+                                          loc
+                                          (car name-sym)
+                                          (cdr name-sym)))
+                                       all-dyn-pairs)
+                                  compiled-body))))
               #f)))))))))
 
 ;;; Handle the common part of defconst and defvar, that is, checking for
@@ -623,7 +620,7 @@
       (report-error loc "invalid symbol list" syms))
   (let ((old (fluid-ref fluid))
         (make-body (lambda ()
-                     (make-sequence loc (map compile-expr body)))))
+                     (list->seq loc (map compile-expr body)))))
     (if (eq? old 'all)
         (make-body)
         (let ((new (if (eq? syms 'all)
@@ -635,7 +632,7 @@
 ;;; Special operators
 
 (defspecial progn (loc args)
-  (make-sequence loc (map compile-expr args)))
+  (list->seq loc (map compile-expr args)))
 
 (defspecial if (loc args)
   (pmatch args
@@ -645,53 +642,51 @@
                        (compile-expr then)
                        (if (null? else)
                            (nil-value loc)
-                           (make-sequence loc
-                                          (map compile-expr else)))))))
+                           (list->seq loc (map compile-expr else)))))))
 
 (defspecial defconst (loc args)
   (pmatch args
     ((,sym ,value . ,doc)
      (if (handle-var-def loc sym doc)
-         (make-sequence loc
-                        (list (set-variable! loc
-                                             sym
-                                             value-slot
-                                             (compile-expr value))
-                              (make-const loc sym)))))))
+         (make-seq loc
+                        (set-variable! loc
+                                       sym
+                                       value-slot
+                                       (compile-expr value))
+                        (make-const loc sym))))))
 
 (defspecial defvar (loc args)
   (pmatch args
     ((,sym) (make-const loc sym))
     ((,sym ,value . ,doc)
      (if (handle-var-def loc sym doc)
-         (make-sequence
+         (make-seq
           loc
-          (list
+          (make-conditional
+           loc
            (make-conditional
             loc
-            (make-conditional
+            (call-primitive
              loc
-             (call-primitive
-              loc
-              'module-bound?
-              (call-primitive loc
-                              'resolve-interface
-                              (make-const loc value-slot))
-              (make-const loc sym))
+             'module-bound?
              (call-primitive loc
-                             'fluid-bound?
-                             (make-module-ref loc value-slot sym #t))
-             (make-const loc #f))
-            (make-void loc)
-            (set-variable! loc sym value-slot (compile-expr value)))
-           (make-const loc sym)))))))
+                             'resolve-interface
+                             (make-const loc value-slot))
+             (make-const loc sym))
+            (call-primitive loc
+                            'fluid-bound?
+                            (make-module-ref loc value-slot sym #t))
+            (make-const loc #f))
+           (make-void loc)
+           (set-variable! loc sym value-slot (compile-expr value)))
+          (make-const loc sym))))))
 
 (defspecial setq (loc args)
   (define (car* x) (if (null? x) '() (car x)))
   (define (cdr* x) (if (null? x) '() (cdr x)))
   (define (cadr* x) (car* (cdr* x)))
   (define (cddr* x) (cdr* (cdr* x)))
-  (make-sequence
+  (list->seq
    loc
    (let loop ((args args) (last (nil-value loc)))
      (if (null? args)
@@ -779,13 +774,12 @@
     ((,condition . ,body)
      (let* ((itersym (gensym))
             (compiled-body (map compile-expr body))
-            (iter-call (make-application loc
-                                         (make-lexical-ref loc
-                                                           'iterate
-                                                           itersym)
-                                         (list)))
-            (full-body (make-sequence loc
-                                      `(,@compiled-body ,iter-call)))
+            (iter-call (make-call loc
+                                  (make-lexical-ref loc
+                                                    'iterate
+                                                    itersym)
+                                  (list)))
+            (full-body (list->seq loc `(,@compiled-body ,iter-call)))
             (lambda-body (make-conditional loc
                                            (compile-expr condition)
                                            full-body
@@ -821,19 +815,16 @@
      (if (not (symbol? name))
          (report-error loc "expected symbol as macro name" name)
          (let* ((tree-il
-                 (make-sequence
+                 (make-seq
                   loc
-                  (list
-                   (set-variable!
-                    loc
-                    name
-                    function-slot
-                    (make-application
-                     loc
-                     (make-module-ref loc '(guile) 'cons #t)
-                     (list (make-const loc 'macro)
-                           (compile-lambda loc args body))))
-                   (make-const loc name)))))
+                  (set-variable!
+                   loc
+                   name
+                   function-slot
+                   (make-primcall loc 'cons
+                                  (list (make-const loc 'macro)
+                                        (compile-lambda loc args body))))
+                  (make-const loc name))))
            (compile (ensuring-globals loc bindings-data tree-il)
                     #:from 'tree-il
                     #:to 'value)
@@ -844,14 +835,14 @@
     ((,name ,args . ,body)
      (if (not (symbol? name))
          (report-error loc "expected symbol as function name" name)
-         (make-sequence loc
-                        (list (set-variable! loc
-                                             name
-                                             function-slot
-                                             (compile-lambda loc
-                                                             args
-                                                             body))
-                              (make-const loc name)))))))
+         (make-seq loc
+                   (set-variable! loc
+                                  name
+                                  function-slot
+                                  (compile-lambda loc
+                                                  args
+                                                  body))
+                   (make-const loc name))))))
 
 (defspecial #{`}# (loc args)
   (pmatch args
@@ -876,13 +867,13 @@
       => (lambda (macro-function)
            (compile-expr (apply macro-function arguments))))
      (else
-      (make-application loc
-                        (if (symbol? operator)
-                            (reference-variable loc
-                                                operator
-                                                function-slot)
-                            (compile-expr operator))
-                        (map compile-expr arguments))))))
+      (make-call loc
+                 (if (symbol? operator)
+                     (reference-variable loc
+                                         operator
+                                         function-slot)
+                     (compile-expr operator))
+                 (map compile-expr arguments))))))
 
 ;;; Compile a symbol expression.  This is a variable reference or maybe
 ;;; some special value like nil.
diff --git a/module/language/tree-il.scm b/module/language/tree-il.scm
index 221cf26..ec3c502 100644
--- a/module/language/tree-il.scm
+++ b/module/language/tree-il.scm
@@ -34,8 +34,9 @@
             <toplevel-set> toplevel-set? make-toplevel-set toplevel-set-src 
toplevel-set-name toplevel-set-exp
             <toplevel-define> toplevel-define? make-toplevel-define 
toplevel-define-src toplevel-define-name toplevel-define-exp
             <conditional> conditional? make-conditional conditional-src 
conditional-test conditional-consequent conditional-alternate
-            <application> application? make-application application-src 
application-proc application-args
-            <sequence> sequence? make-sequence sequence-src sequence-exps
+            <call> call? make-call call-src call-proc call-args
+            <primcall> primcall? make-primcall primcall-src primcall-name 
primcall-args
+            <seq> seq? make-seq seq-head seq-tail
             <lambda> lambda? make-lambda lambda-src lambda-meta lambda-body
             <lambda-case> lambda-case? make-lambda-case lambda-case-src
                           lambda-case-req lambda-case-opt lambda-case-rest 
lambda-case-kw
@@ -52,6 +53,8 @@
             <prompt> prompt? make-prompt prompt-src prompt-tag prompt-body 
prompt-handler
             <abort> abort? make-abort abort-src abort-tag abort-args abort-tail
 
+            list->seq
+
             parse-tree-il
             unparse-tree-il
             tree-il->scheme
@@ -118,8 +121,9 @@
   ;; (<toplevel-set> name exp)
   ;; (<toplevel-define> name exp)
   ;; (<conditional> test consequent alternate)
-  ;; (<application> proc args)
-  ;; (<sequence> exps)
+  ;; (<call> proc args)
+  ;; (<primcall> name args)
+  ;; (<seq> head tail)
   ;; (<lambda> meta body)
   ;; (<lambda-case> req opt rest kw inits gensyms body alternate)
   ;; (<let> names gensyms vals body)
@@ -137,6 +141,14 @@
 
 
 
+;; A helper.
+(define (list->seq loc exps)
+  (if (null? (cdr exps))
+      (car exps)
+      (make-seq loc (car exps) (list->seq #f (cdr exps)))))
+
+
+
 (define (location x)
   (and (pair? x)
        (let ((props (source-properties x)))
@@ -149,8 +161,11 @@
      ((void)
       (make-void loc))
 
-     ((apply ,proc . ,args)
-      (make-application loc (retrans proc) (map retrans args)))
+     ((call ,proc . ,args)
+      (make-call loc (retrans proc) (map retrans args)))
+
+     ((primcall ,name . ,args)
+      (make-primcall loc name (map retrans args)))
 
      ((if ,test ,consequent ,alternate)
       (make-conditional loc (retrans test) (retrans consequent) (retrans 
alternate)))
@@ -209,8 +224,12 @@
      ((const ,exp)
       (make-const loc exp))
 
+     ((seq ,head ,tail)
+      (make-seq loc (retrans head) (retrans tail)))
+
+     ;; Convenience.
      ((begin . ,exps)
-      (make-sequence loc (map retrans exps)))
+      (list->seq loc (map retrans exps)))
 
      ((let ,names ,gensyms ,vals ,body)
       (make-let loc names gensyms (map retrans vals) (retrans body)))
@@ -253,8 +272,11 @@
     ((<void>)
      '(void))
 
-    ((<application> proc args)
-     `(apply ,(unparse-tree-il proc) ,@(map unparse-tree-il args)))
+    ((<call> proc args)
+     `(call ,(unparse-tree-il proc) ,@(map unparse-tree-il args)))
+
+    ((<primcall> name args)
+     `(primcall ,name ,@(map unparse-tree-il args)))
 
     ((<conditional> test consequent alternate)
      `(if ,(unparse-tree-il test) ,(unparse-tree-il consequent) 
,(unparse-tree-il alternate)))
@@ -294,9 +316,9 @@
     ((<const> exp)
      `(const ,exp))
 
-    ((<sequence> exps)
-     `(begin ,@(map unparse-tree-il exps)))
-
+    ((<seq> head tail)
+     `(seq ,(unparse-tree-il head) ,(unparse-tree-il tail)))
+    
     ((<let> names gensyms vals body)
      `(let ,names ,gensyms ,(map unparse-tree-il vals) ,(unparse-tree-il 
body)))
 
@@ -336,9 +358,12 @@
     ((<void>)
      '(if #f #f))
 
-    ((<application> proc args)
+    ((<call> proc args)
      `(,(tree-il->scheme proc) ,@(map tree-il->scheme args)))
 
+    ((<primcall> name args)
+     `(,name ,@(map tree-il->scheme args)))
+
     ((<conditional> test consequent alternate)
      (if (void? alternate)
          `(if ,(tree-il->scheme test) ,(tree-il->scheme consequent))
@@ -433,8 +458,13 @@
          exp
          (list 'quote exp)))
 
-    ((<sequence> exps)
-     `(begin ,@(map tree-il->scheme exps)))
+    ((<seq> head tail)
+     `(begin ,(tree-il->scheme head)
+             ,@(unfold (lambda (x) (not (seq? x)))
+                       (lambda (x) (tree-il->scheme (seq-head x)))
+                       seq-tail
+                       tail
+                       tree-il->scheme)))
 
     ((<let> gensyms vals body)
      `(let ,(map list gensyms (map tree-il->scheme vals)) ,(tree-il->scheme 
body)))
@@ -478,7 +508,8 @@
 
 
     ((<abort> tag args tail)
-     `(apply abort ,(tree-il->scheme tag) ,@(map tree-il->scheme args)
+     `(apply abort-to-prompt
+             ,(tree-il->scheme tag) ,@(map tree-il->scheme args)
              ,(tree-il->scheme tail)))))
 
 
@@ -489,7 +520,7 @@ invoked as `(PROC TREE SEED)', where TREE is the sub-tree 
or leaf considered
 and SEED is the current result, intially seeded with SEED.
 
 This is an implementation of `foldts' as described by Andy Wingo in
-``Applications of fold to XML transformation''."
+``Calls of fold to XML transformation''."
   (let loop ((tree   tree)
              (result seed))
     (if (or (null? tree) (pair? tree))
@@ -507,10 +538,12 @@ This is an implementation of `foldts' as described by 
Andy Wingo in
            (up tree (loop alternate
                           (loop consequent
                                 (loop test (down tree result))))))
-          ((<application> proc args)
+          ((<call> proc args)
            (up tree (loop (cons proc args) (down tree result))))
-          ((<sequence> exps)
-           (up tree (loop exps (down tree result))))
+          ((<primcall> name args)
+           (up tree (loop args (down tree result))))
+          ((<seq> head tail)
+           (up tree (loop tail (loop head (down tree result)))))
           ((<lambda> body)
            (up tree (loop body (down tree result))))
           ((<lambda-case> inits body alternate)
@@ -580,11 +613,14 @@ This is an implementation of `foldts' as described by 
Andy Wingo in
                   (let*-values (((seed ...) (foldts test seed ...))
                                 ((seed ...) (foldts consequent seed ...)))
                     (foldts alternate seed ...)))
-                 ((<application> proc args)
+                 ((<call> proc args)
                   (let-values (((seed ...) (foldts proc seed ...)))
                     (fold-values foldts args seed ...)))
-                 ((<sequence> exps)
-                  (fold-values foldts exps 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)
@@ -633,9 +669,12 @@ This is an implementation of `foldts' as described by Andy 
Wingo in
 (define (post-order! f x)
   (let lp ((x x))
     (record-case x
-      ((<application> proc args)
-       (set! (application-proc x) (lp proc))
-       (set! (application-args x) (map lp args)))
+      ((<call> proc args)
+       (set! (call-proc x) (lp proc))
+       (set! (call-args x) (map lp args)))
+
+      ((<primcall> name args)
+       (set! (primcall-args x) (map lp args)))
 
       ((<conditional> test consequent alternate)
        (set! (conditional-test x) (lp test))
@@ -663,9 +702,10 @@ This is an implementation of `foldts' as described by Andy 
Wingo in
        (if alternate
            (set! (lambda-case-alternate x) (lp alternate))))
 
-      ((<sequence> exps)
-       (set! (sequence-exps x) (map lp exps)))
-
+      ((<seq> head tail)
+       (set! (seq-head x) (lp head))
+       (set! (seq-tail x) (lp tail)))
+      
       ((<let> gensyms vals body)
        (set! (let-vals x) (map lp vals))
        (set! (let-body x) (lp body)))
@@ -717,9 +757,12 @@ This is an implementation of `foldts' as described by Andy 
Wingo in
   (let lp ((x x))
     (let ((x (or (f x) x)))
       (record-case x
-        ((<application> proc args)
-         (set! (application-proc x) (lp proc))
-         (set! (application-args x) (map lp args)))
+        ((<call> proc args)
+         (set! (call-proc x) (lp proc))
+         (set! (call-args x) (map lp args)))
+
+        ((<primcall> name args)
+         (set! (primcall-args x) (map lp args)))
 
         ((<conditional> test consequent alternate)
          (set! (conditional-test x) (lp test))
@@ -746,9 +789,10 @@ This is an implementation of `foldts' as described by Andy 
Wingo in
          (set! (lambda-case-body x) (lp body))
          (if alternate (set! (lambda-case-alternate x) (lp alternate))))
 
-        ((<sequence> exps)
-         (set! (sequence-exps x) (map lp exps)))
-
+        ((<seq> head tail)
+         (set! (seq-head x) (lp head))
+         (set! (seq-tail x) (lp tail)))
+        
         ((<let> vals body)
          (set! (let-vals x) (map lp vals))
          (set! (let-body x) (lp body)))
diff --git a/module/language/tree-il/analyze.scm 
b/module/language/tree-il/analyze.scm
index 23eff2c..9e5c685 100644
--- a/module/language/tree-il/analyze.scm
+++ b/module/language/tree-il/analyze.scm
@@ -178,10 +178,13 @@
       (analyze! x new-proc (append labels labels-in-proc) #t #f))
     (define (recur x new-proc) (analyze! x new-proc '() tail? #f))
     (record-case x
-      ((<application> proc args)
+      ((<call> proc args)
        (apply lset-union eq? (step-tail-call proc args)
               (map step args)))
 
+      ((<primcall> args)
+       (apply lset-union eq? (map step args)))
+
       ((<conditional> test consequent alternate)
        (lset-union eq? (step test) (step-tail consequent) (step-tail 
alternate)))
 
@@ -220,13 +223,8 @@
       ((<toplevel-define> exp)
        (step exp))
       
-      ((<sequence> exps)
-       (let lp ((exps exps) (ret '()))
-         (cond ((null? exps) '())
-               ((null? (cdr exps))
-                (lset-union eq? ret (step-tail (car exps))))
-               (else
-                (lp (cdr exps) (lset-union eq? ret (step (car exps))))))))
+      ((<seq> head tail)
+       (lset-union eq? (step head) (step-tail tail)))
       
       ((<lambda> body)
        ;; order is important here
@@ -364,9 +362,12 @@
   (define (allocate! x proc n)
     (define (recur y) (allocate! y proc n))
     (record-case x
-      ((<application> proc args)
+      ((<call> proc args)
        (apply max (recur proc) (map recur args)))
 
+      ((<primcall> args)
+       (apply max n (map recur args)))
+
       ((<conditional> test consequent alternate)
        (max (recur test) (recur consequent) (recur alternate)))
 
@@ -382,8 +383,9 @@
       ((<toplevel-define> exp)
        (recur exp))
       
-      ((<sequence> exps)
-       (apply max (map recur exps)))
+      ((<seq> head tail)
+       (max (recur head)
+            (recur tail)))
       
       ((<lambda> body)
        ;; allocate closure vars in order
@@ -863,7 +865,7 @@ accurate information is missing from a given `tree-il' 
element."
   (defs  toplevel-info-defs)) ;; (VARIABLE-NAME ...)
 
 (define (goops-toplevel-definition proc args env)
-  ;; If application of PROC to ARGS is a GOOPS top-level definition, return
+  ;; If call of PROC to ARGS is a GOOPS top-level definition, return
   ;; 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)
@@ -929,7 +931,7 @@ accurate information is missing from a given `tree-il' 
element."
           (make-toplevel-info (vhash-delq name refs)
                               (vhash-consq name #t defs)))
 
-         ((<application> proc args)
+         ((<call> proc args)
           ;; Check for a dynamic top-level definition, as is
           ;; done by code expanded from GOOPS macros.
           (let ((name (goops-toplevel-definition proc args
@@ -967,12 +969,12 @@ accurate information is missing from a given `tree-il' 
element."
 (define-record-type <arity-info>
   (make-arity-info toplevel-calls lexical-lambdas toplevel-lambdas)
   arity-info?
-  (toplevel-calls   toplevel-procedure-calls) ;; ((NAME . APPLICATION) ...)
+  (toplevel-calls   toplevel-procedure-calls) ;; ((NAME . CALL) ...)
   (lexical-lambdas  lexical-lambdas)          ;; ((GENSYM . DEFINITION) ...)
   (toplevel-lambdas toplevel-lambdas))        ;; ((NAME . DEFINITION) ...)
 
-(define (validate-arity proc application lexical?)
-  ;; Validate the argument count of APPLICATION, a tree-il application of
+(define (validate-arity proc call lexical?)
+  ;; Validate the argument count of CALL, a tree-il call of
   ;; PROC, emitting a warning in case of argument count mismatch.
 
   (define (filter-keyword-args keywords allow-other-keys? args)
@@ -1032,8 +1034,8 @@ accurate information is missing from a given `tree-il' 
element."
                    (else
                     (values #f #f))))))))
 
-  (let ((args (application-args application))
-        (src  (tree-il-src application)))
+  (let ((args (call-args call))
+        (src  (tree-il-src call)))
     (call-with-values (lambda () (arities proc))
       (lambda (name arities)
         (define matches?
@@ -1120,7 +1122,7 @@ accurate information is missing from a given `tree-il' 
element."
          ((<fix> gensyms vals)
           (fold extend info gensyms vals))
 
-         ((<application> proc args src)
+         ((<call> proc args src)
           (record-case proc
             ((<lambda> body)
              (validate-arity proc x #t)
@@ -1180,9 +1182,9 @@ accurate information is missing from a given `tree-il' 
element."
      (let ((toplevel-calls   (toplevel-procedure-calls result))
            (toplevel-lambdas (toplevel-lambdas result)))
        (vlist-for-each
-        (lambda (name+application)
-          (let* ((name        (car name+application))
-                 (application (cdr name+application))
+        (lambda (name+call)
+          (let* ((name (car name+call))
+                 (call (cdr name+call))
                  (proc
                   (or (and=> (vhash-assq name toplevel-lambdas) cdr)
                       (and (module? env)
@@ -1197,7 +1199,7 @@ accurate information is missing from a given `tree-il' 
element."
                               (module-ref env name))))
                       proc)))
             (if (or (lambda? proc*) (procedure? proc*))
-                (validate-arity proc* application (lambda? proc*)))))
+                (validate-arity proc* call (lambda? proc*)))))
         toplevel-calls)))
 
    (make-arity-info vlist-null vlist-null vlist-null)))
@@ -1348,7 +1350,7 @@ accurate information is missing from a given `tree-il' 
element."
   (record-case x
     ((<const> exp)
      exp)
-    ((<application> proc args)
+    ((<call> proc args)
      ;; Gettexted literals, like `(_ "foo")'.
      (and (record-case proc
             ((<toplevel-ref> name) (eq? name '_))
@@ -1412,7 +1414,7 @@ accurate information is missing from a given `tree-il' 
element."
             (false-if-exception (module-ref env name))))
 
      (record-case x
-       ((<application> proc args src)
+       ((<call> proc args src)
         (let ((loc src))
           (record-case proc
             ((<toplevel-ref> name src)
diff --git a/module/language/tree-il/compile-glil.scm 
b/module/language/tree-il/compile-glil.scm
index f193e9d..2cb0806 100644
--- a/module/language/tree-il/compile-glil.scm
+++ b/module/language/tree-il/compile-glil.scm
@@ -246,182 +246,12 @@
           (emit-code src (make-glil-const exp))))
        (maybe-emit-return))
 
-      ;; FIXME: should represent sequence as exps tail
-      ((<sequence> exps)
-       (let lp ((exps exps))
-         (if (null? (cdr exps))
-             (comp-tail (car exps))
-             (begin
-               (comp-drop (car exps))
-               (lp (cdr exps))))))
-
-      ((<application> src proc args)
-       ;; FIXME: need a better pattern-matcher here
+      ((<seq> head tail)
+       (comp-drop head)
+       (comp-tail tail))
+      
+      ((<call> src proc args)
        (cond
-        ((and (primitive-ref? proc)
-              (eq? (primitive-ref-name proc) '@apply)
-              (>= (length args) 1))
-         (let ((proc (car args))
-               (args (cdr args)))
-           (cond
-            ((and (primitive-ref? proc) (eq? (primitive-ref-name proc) 'values)
-                  (not (eq? context 'push)) (not (eq? context 'vals)))
-             ;; tail: (lambda () (apply values '(1 2)))
-             ;; drop: (lambda () (apply values '(1 2)) 3)
-             ;; push: (lambda () (list (apply values '(10 12)) 1))
-             (case context
-               ((drop) (for-each comp-drop args) (maybe-emit-return))
-               ((tail)
-                (for-each comp-push args)
-                (emit-code src (make-glil-call 'return/values* (length 
args))))))
-
-            (else
-             (case context
-               ((tail)
-                (comp-push proc)
-                (for-each comp-push args)
-                (emit-code src (make-glil-call 'tail-apply (1+ (length 
args)))))
-               ((push)
-                (emit-code src (make-glil-call 'new-frame 0))
-                (comp-push proc)
-                (for-each comp-push args)
-                (emit-code src (make-glil-call 'apply (1+ (length args))))
-                (maybe-emit-return))
-               ((vals)
-                (comp-vals
-                 (make-application src (make-primitive-ref #f 'apply)
-                                   (cons proc args))
-                 MVRA)
-                (maybe-emit-return))
-               ((drop)
-                ;; Well, shit. The proc might return any number of
-                ;; values (including 0), since it's in a drop context,
-                ;; yet apply does not create a MV continuation. So we
-                ;; mv-call out to our trampoline instead.
-                (comp-drop
-                 (make-application src (make-primitive-ref #f 'apply)
-                                   (cons proc args)))
-                (maybe-emit-return)))))))
-        
-        ((and (primitive-ref? proc) (eq? (primitive-ref-name proc) 'values)
-              (not (eq? context 'push)))
-         ;; tail: (lambda () (values '(1 2)))
-         ;; drop: (lambda () (values '(1 2)) 3)
-         ;; push: (lambda () (list (values '(10 12)) 1))
-         ;; vals: (let-values (((a b ...) (values 1 2 ...))) ...)
-         (case context
-           ((drop) (for-each comp-drop args) (maybe-emit-return))
-           ((vals)
-            (for-each comp-push args)
-            (emit-code #f (make-glil-const (length args)))
-            (emit-branch src 'br MVRA))
-           ((tail)
-            (for-each comp-push args)
-            (emit-code src (make-glil-call 'return/values (length args))))))
-        
-        ((and (primitive-ref? proc)
-              (eq? (primitive-ref-name proc) '@call-with-values)
-              (= (length args) 2))
-        ;; CONSUMER
-         ;; PRODUCER
-         ;; (mv-call MV)
-         ;; ([tail]-call 1)
-         ;; goto POST
-         ;; MV: [tail-]call/nargs
-         ;; POST: (maybe-drop)
-         (case context
-           ((vals)
-            ;; Fall back.
-            (comp-vals
-             (make-application src (make-primitive-ref #f 'call-with-values)
-                               args)
-             MVRA)
-            (maybe-emit-return))
-           (else
-            (let ((MV (make-label)) (POST (make-label))
-                  (producer (car args)) (consumer (cadr args)))
-              (if (not (eq? context 'tail))
-                  (emit-code src (make-glil-call 'new-frame 0)))
-              (comp-push consumer)
-              (emit-code src (make-glil-call 'new-frame 0))
-              (comp-push producer)
-              (emit-code src (make-glil-mv-call 0 MV))
-              (case context
-                ((tail) (emit-code src (make-glil-call 'tail-call 1)))
-                (else   (emit-code src (make-glil-call 'call 1))
-                        (emit-branch #f 'br POST)))
-              (emit-label MV)
-              (case context
-                ((tail) (emit-code src (make-glil-call 'tail-call/nargs 0)))
-                (else   (emit-code src (make-glil-call 'call/nargs 0))
-                        (emit-label POST)
-                        (if (eq? context 'drop)
-                            (emit-code #f (make-glil-call 'drop 1)))
-                        (maybe-emit-return)))))))
-
-        ((and (primitive-ref? proc)
-              (eq? (primitive-ref-name proc) '@call-with-current-continuation)
-              (= (length args) 1))
-         (case context
-           ((tail)
-            (comp-push (car args))
-            (emit-code src (make-glil-call 'tail-call/cc 1)))
-           ((vals)
-            (comp-vals
-             (make-application
-              src (make-primitive-ref #f 'call-with-current-continuation)
-              args)
-             MVRA)
-            (maybe-emit-return))
-           ((push)
-            (comp-push (car args))
-            (emit-code src (make-glil-call 'call/cc 1))
-            (maybe-emit-return))
-           ((drop)
-            ;; Crap. Just like `apply' in drop context.
-            (comp-drop
-             (make-application
-              src (make-primitive-ref #f 'call-with-current-continuation)
-              args))
-            (maybe-emit-return))))
-
-        ;; A hack for variable-set, the opcode for which takes its args
-        ;; reversed, relative to the variable-set! function
-        ((and (primitive-ref? proc)
-              (eq? (primitive-ref-name proc) 'variable-set!)
-              (= (length args) 2))
-         (comp-push (cadr args))
-         (comp-push (car args))
-         (emit-code src (make-glil-call 'variable-set 2))
-         (case context
-           ((tail push vals) (emit-code #f (make-glil-void))))
-         (maybe-emit-return))
-        
-        ((and (primitive-ref? proc)
-              (or (hash-ref *primcall-ops*
-                            (cons (primitive-ref-name proc) (length args)))
-                  (hash-ref *primcall-ops* (primitive-ref-name proc))))
-         => (lambda (op)
-              (for-each comp-push args)
-              (emit-code src (make-glil-call op (length args)))
-              (case (instruction-pushes op)
-                ((0)
-                 (case context
-                   ((tail push vals) (emit-code #f (make-glil-void))))
-                 (maybe-emit-return))
-                ((1)
-                 (case context
-                   ((drop) (emit-code #f (make-glil-call 'drop 1))))
-                 (maybe-emit-return))
-                ((-1)
-                 ;; A control instruction, like return/values.  Here we
-                 ;; just have to hope that the author of the tree-il
-                 ;; knew what they were doing.
-                 *unspecified*)
-                (else
-                 (error "bad primitive op: too many pushes"
-                        op (instruction-pushes op))))))
-        
         ;; self-call in tail position
         ((and (lexical-ref? proc)
               self-label (eq? (lexical-ref-gensym proc) self-label)
@@ -518,6 +348,141 @@
                            (emit-branch #f 'br RA)
                            (emit-label POST)))))))))
 
+      ((<primcall> src name args)
+       (pmatch (cons name args)
+         ((@apply ,proc . ,args)
+          (cond
+           ((and (primitive-ref? proc) (eq? (primitive-ref-name proc) 'values)
+                 (not (eq? context 'push)) (not (eq? context 'vals)))
+            ;; tail: (lambda () (apply values '(1 2)))
+            ;; drop: (lambda () (apply values '(1 2)) 3)
+            ;; push: (lambda () (list (apply values '(10 12)) 1))
+            (case context
+              ((drop) (for-each comp-drop args) (maybe-emit-return))
+              ((tail)
+               (for-each comp-push args)
+               (emit-code src (make-glil-call 'return/values* (length 
args))))))
+
+           (else
+            (case context
+              ((tail)
+               (comp-push proc)
+               (for-each comp-push args)
+               (emit-code src (make-glil-call 'tail-apply (1+ (length args)))))
+              ((push)
+               (emit-code src (make-glil-call 'new-frame 0))
+               (comp-push proc)
+               (for-each comp-push args)
+               (emit-code src (make-glil-call 'apply (1+ (length args))))
+               (maybe-emit-return))
+              (else
+               (comp-tail (make-primcall src 'apply (cons proc args))))))))
+
+         ((values . _) (guard (not (eq? context 'push)))
+          ;; tail: (lambda () (values '(1 2)))
+          ;; drop: (lambda () (values '(1 2)) 3)
+          ;; push: (lambda () (list (values '(10 12)) 1))
+          ;; vals: (let-values (((a b ...) (values 1 2 ...))) ...)
+          (case context
+            ((drop) (for-each comp-drop args) (maybe-emit-return))
+            ((vals)
+             (for-each comp-push args)
+             (emit-code #f (make-glil-const (length args)))
+             (emit-branch src 'br MVRA))
+            ((tail)
+             (for-each comp-push args)
+             (emit-code src (make-glil-call 'return/values (length args))))))
+        
+         ((@call-with-values ,producer ,consumer)
+          ;; CONSUMER
+          ;; PRODUCER
+          ;; (mv-call MV)
+          ;; ([tail]-call 1)
+          ;; goto POST
+          ;; MV: [tail-]call/nargs
+          ;; POST: (maybe-drop)
+          (case context
+            ((vals)
+             ;; Fall back.
+             (comp-tail (make-primcall src 'call-with-values args)))
+            (else
+             (let ((MV (make-label)) (POST (make-label)))
+               (if (not (eq? context 'tail))
+                   (emit-code src (make-glil-call 'new-frame 0)))
+               (comp-push consumer)
+               (emit-code src (make-glil-call 'new-frame 0))
+               (comp-push producer)
+               (emit-code src (make-glil-mv-call 0 MV))
+               (case context
+                 ((tail) (emit-code src (make-glil-call 'tail-call 1)))
+                 (else   (emit-code src (make-glil-call 'call 1))
+                         (emit-branch #f 'br POST)))
+               (emit-label MV)
+               (case context
+                 ((tail) (emit-code src (make-glil-call 'tail-call/nargs 0)))
+                 (else   (emit-code src (make-glil-call 'call/nargs 0))
+                         (emit-label POST)
+                         (if (eq? context 'drop)
+                             (emit-code #f (make-glil-call 'drop 1)))
+                         (maybe-emit-return)))))))
+
+         ((@call-with-current-continuation ,proc)
+          (case context
+            ((tail)
+             (comp-push proc)
+             (emit-code src (make-glil-call 'tail-call/cc 1)))
+            ((vals)
+             (comp-vals
+              (make-primcall src 'call-with-current-continuation args)
+              MVRA)
+             (maybe-emit-return))
+            ((push)
+             (comp-push proc)
+             (emit-code src (make-glil-call 'call/cc 1))
+             (maybe-emit-return))
+            ((drop)
+             ;; Fall back.
+             (comp-tail
+              (make-primcall src 'call-with-current-continuation args)))))
+         
+        ;; A hack for variable-set, the opcode for which takes its args
+        ;; reversed, relative to the variable-set! function
+        ((variable-set! ,var ,val)
+         (comp-push val)
+         (comp-push var)
+         (emit-code src (make-glil-call 'variable-set 2))
+         (case context
+           ((tail push vals) (emit-code #f (make-glil-void))))
+         (maybe-emit-return))
+        
+        (else
+         (cond
+          ((or (hash-ref *primcall-ops* (cons name (length args)))
+               (hash-ref *primcall-ops* name))
+           => (lambda (op)
+                (for-each comp-push args)
+                (emit-code src (make-glil-call op (length args)))
+                (case (instruction-pushes op)
+                  ((0)
+                   (case context
+                     ((tail push vals) (emit-code #f (make-glil-void))))
+                   (maybe-emit-return))
+                  ((1)
+                   (case context
+                     ((drop) (emit-code #f (make-glil-call 'drop 1))))
+                   (maybe-emit-return))
+                  ((-1)
+                   ;; A control instruction, like return/values.  Here we
+                   ;; just have to hope that the author of the tree-il
+                   ;; knew what they were doing.
+                   *unspecified*)
+                  (else
+                   (error "bad primitive op: too many pushes"
+                          op (instruction-pushes op))))))
+          (else
+           ;; Fall back to the normal compilation strategy.
+           (comp-tail (make-call src (make-primitive-ref #f name) args)))))))
+
       ((<conditional> src test consequent alternate)
        ;;     TEST
        ;;     (br-if-not L1)
@@ -526,54 +491,33 @@
        ;; L1: alternate
        ;; L2:
        (let ((L1 (make-label)) (L2 (make-label)))
-         ;; need a pattern matcher
          (record-case test
-           ((<application> proc args)
-            (record-case proc
-              ((<primitive-ref> name)
-               (let ((len (length args)))
-                 (cond
-
-                  ((and (eq? name 'eq?) (= len 2))
-                   (comp-push (car args))
-                   (comp-push (cadr args))
-                   (emit-branch src 'br-if-not-eq L1))
-
-                  ((and (eq? name 'null?) (= len 1))
-                   (comp-push (car args))
-                   (emit-branch src 'br-if-not-null L1))
-
-                  ((and (eq? name 'not) (= len 1))
-                   (let ((app (car args)))
-                     (record-case app
-                       ((<application> proc args)
-                        (let ((len (length args)))
-                          (record-case proc
-                            ((<primitive-ref> name)
-                             (cond
-
-                              ((and (eq? name 'eq?) (= len 2))
-                               (comp-push (car args))
-                               (comp-push (cadr args))
-                               (emit-branch src 'br-if-eq L1))
-                            
-                              ((and (eq? name 'null?) (= len 1))
-                               (comp-push (car args))
-                               (emit-branch src 'br-if-null L1))
-
-                              (else
-                               (comp-push app)
-                               (emit-branch src 'br-if L1))))
-                            (else
-                             (comp-push app)
-                             (emit-branch src 'br-if L1)))))
-                       (else
-                        (comp-push app)
-                        (emit-branch src 'br-if L1)))))
-                  
-                  (else
-                   (comp-push test)
-                   (emit-branch src 'br-if-not L1)))))
+           ((<primcall> name args)
+            (pmatch (cons name args)
+              ((eq? ,a ,b)
+               (comp-push a)
+               (comp-push b)
+               (emit-branch src 'br-if-not-eq L1))
+              ((null? ,x)
+               (comp-push x)
+               (emit-branch src 'br-if-not-null L1))
+              ((not ,x)
+               (record-case x
+                 ((<primcall> name args)
+                  (pmatch (cons name args)
+                    ((eq? ,a ,b)
+                     (comp-push a)
+                     (comp-push b)
+                     (emit-branch src 'br-if-eq L1))
+                    ((null? ,x)
+                     (comp-push x)
+                     (emit-branch src 'br-if-null L1))
+                    (else
+                     (comp-push x)
+                     (emit-branch src 'br-if L1))))
+                 (else
+                  (comp-push x)
+                  (emit-branch src 'br-if L1))))
               (else
                (comp-push test)
                (emit-branch src 'br-if-not L1))))
@@ -948,7 +892,7 @@
       ((<dynwind> src body winder unwinder)
        (comp-push winder)
        (comp-push unwinder)
-       (comp-drop (make-application src winder '()))
+       (comp-drop (make-call src winder '()))
        (emit-code #f (make-glil-call 'wind 2))
 
        (case context
@@ -957,14 +901,14 @@
             (comp-vals body MV)
             ;; one value: unwind...
             (emit-code #f (make-glil-call 'unwind 0))
-            (comp-drop (make-application src unwinder '()))
+            (comp-drop (make-call src unwinder '()))
             ;; ...and return the val
             (emit-code #f (make-glil-call 'return 1))
             
             (emit-label MV)
             ;; multiple values: unwind...
             (emit-code #f (make-glil-call 'unwind 0))
-            (comp-drop (make-application src unwinder '()))
+            (comp-drop (make-call src unwinder '()))
             ;; and return the values.
             (emit-code #f (make-glil-call 'return/nvalues 1))))
          
@@ -973,7 +917,7 @@
           (comp-push body)
           ;; and unwind, leaving the val on the stack
           (emit-code #f (make-glil-call 'unwind 0))
-          (comp-drop (make-application src unwinder '())))
+          (comp-drop (make-call src unwinder '())))
          
          ((vals)
           (let ((MV (make-label)))
@@ -984,7 +928,7 @@
             (emit-label MV)
             ;; multiple values: unwind...
             (emit-code #f (make-glil-call 'unwind 0))
-            (comp-drop (make-application src unwinder '()))
+            (comp-drop (make-call src unwinder '()))
             ;; and goto the MVRA.
             (emit-branch #f 'br MVRA)))
          
@@ -992,7 +936,7 @@
           ;; compile body, discarding values. then unwind...
           (comp-drop body)
           (emit-code #f (make-glil-call 'unwind 0))
-          (comp-drop (make-application src unwinder '()))
+          (comp-drop (make-call src unwinder '()))
           ;; and fall through, or goto RA if there is one.
           (if RA
               (emit-branch #f 'br RA)))))
diff --git a/module/language/tree-il/fix-letrec.scm 
b/module/language/tree-il/fix-letrec.scm
index 3d7db27..2a18342 100644
--- a/module/language/tree-il/fix-letrec.scm
+++ b/module/language/tree-il/fix-letrec.scm
@@ -41,12 +41,11 @@
      (and (simple-expression? test bound-vars simple-primitive?)
           (simple-expression? consequent bound-vars simple-primitive?)
           (simple-expression? alternate bound-vars simple-primitive?)))
-    ((<sequence> exps)
-     (and-map (lambda (x) (simple-expression? x bound-vars simple-primitive?))
-              exps))
-    ((<application> proc args)
-     (and (primitive-ref? proc)
-          (simple-primitive? (primitive-ref-name proc))
+    ((<seq> head tail)
+     (and (simple-expression? head bound-vars simple-primitive?)
+          (simple-expression? tail bound-vars simple-primitive?)))
+    ((<primcall> name args)
+     (and (simple-primitive? name)
           ;; FIXME: check arity?
           (and-map (lambda (x)
                      (simple-expression? x bound-vars simple-primitive?))
@@ -191,7 +190,7 @@
          ;; expression, called for effect.
          ((<lexical-set> gensym exp)
           (if (memq gensym unref)
-              (make-sequence #f (list exp (make-void #f)))
+              (make-seq #f exp (make-void #f))
               x))
 
          ((<letrec> src in-order? names gensyms vals body)
@@ -219,7 +218,7 @@
                ;; Bind lambdas using the fixpoint operator.
                (make-fix
                 src (map cadr l) (map car l) (map caddr l)
-                (make-sequence
+                (list->seq
                  src
                  (append
                   ;; The right-hand-sides of the unreferenced
@@ -246,7 +245,7 @@
                      (let ((tmps (map (lambda (x) (gensym)) c)))
                        (make-let
                         #f (map cadr c) tmps (map caddr c)
-                        (make-sequence
+                        (list->seq
                          #f
                          (map (lambda (x tmp)
                                 (make-lexical-set
@@ -263,7 +262,7 @@
             (let ((u (lookup unref))
                   (l (lookup lambda*))
                   (c (lookup complex)))
-              (make-sequence
+              (list->seq
                src
                (append
                 ;; unreferenced bindings, called for effect.
diff --git a/module/language/tree-il/inline.scm 
b/module/language/tree-il/inline.scm
index de0cffc..16af52a 100644
--- a/module/language/tree-il/inline.scm
+++ b/module/language/tree-il/inline.scm
@@ -47,44 +47,36 @@
             (else x)))
          (else x)))
       
-      ((<application> src proc args)
-       (record-case proc
-         ;; ((lambda (y ...) x) z ...) => (let ((y z) ...) x)
-         ((<primitive-ref> name)
-          (case name
-            ((memq memv)
-             (pmatch args
-               ((,k ,l) (guard (const? l) (list? (const-exp l)))
-                (cond
-                 ((null? (const-exp l))
-                  (make-const #f #f))
-                 ((const? k)
-                  (make-const #f (->bool ((case name
-                                            ((memq) memq)
-                                            ((memv) memv)
-                                            (else (error "unexpected member 
func" name)))
-                                          (const-exp k) (const-exp l)))))
-                 (else
-                  (let lp ((elts (const-exp l)))
-                    (let ((test (make-application
-                                 #f
-                                 (make-primitive-ref #f (case name
-                                                          ((memq) 'eq?)
-                                                          ((memv) 'eqv?)
-                                                          (else (error 
"what"))))
-                                 (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)))
-
-            (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)
@@ -101,7 +93,7 @@
 (define (inline! x)
   (define (inline1 x)
     (record-case x
-      ((<application> src proc args)
+      ((<call> src proc args)
        (record-case proc
          ;; ((lambda (y ...) x) z ...) => (let ((y z) ...) x)
          ((<lambda> body)
@@ -114,34 +106,29 @@
                           (or (inline1 x) x))
                         (lp alternate)))))))
 
-         ((<primitive-ref> name)
-          (case name
-            ((@call-with-values)
-             (pmatch 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.
-               ((,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-application src producer '())))
-                   (or (inline1 x) x))
-                 (lambda-body consumer)))
-               (else #f)))
-
-            (else #f)))
-
          (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
@@ -178,10 +165,9 @@
          
        (and (not opt) (not kw) rest (not alternate)
             (record-case body
-              ((<application> proc args)
+              ((<primcall> name args)
                ;; (lambda args (apply (lambda ...) args)) => (lambda ...)
-               (and (primitive-ref? proc)
-                    (eq? (primitive-ref-name proc) '@apply)
+               (and (eq? name '@apply)
                     (pair? args)
                     (lambda? (car args))
                     (args-compatible? (cdr args) gensyms)
@@ -189,7 +175,7 @@
               (else #f))))
 
       ;; Actually the opposite of inlining -- if the prompt cannot be proven to
-      ;; be escape-only, ensure that its body is the application of a thunk.
+      ;; 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))
@@ -206,13 +192,13 @@
        (define (make-thunk body)
          (make-lambda #f '() (make-lambda-case #f '() #f #f #f '() '() body 
#f)))
 
-       (if (or (and (application? body)
-                    (lambda? (application-proc body))
-                    (null? (application-args body)))
+       (if (or (and (call? body)
+                    (lambda? (call-proc body))
+                    (null? (call-args body)))
                (escape-only? handler))
            x
            (make-prompt src tag
-                        (make-application #f (make-thunk body) '())
+                        (make-call #f (make-thunk body) '())
                         handler)))
       
       (else #f)))
diff --git a/module/language/tree-il/primitives.scm 
b/module/language/tree-il/primitives.scm
index 316a462..40fc194 100644
--- a/module/language/tree-il/primitives.scm
+++ b/module/language/tree-il/primitives.scm
@@ -1,6 +1,6 @@
 ;;; open-coding primitive procedures
 
-;; 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
@@ -172,6 +172,9 @@
                (and=> (hashq-ref *interesting-primitive-vars*
                                  (module-variable m name))
                       (lambda (name) (make-primitive-ref src name))))))
+       ((<call> src proc args)
+        (and (primitive-ref? proc)
+             (make-primcall src (primitive-ref-name proc) args)))
        (else #f)))
    x))
 
@@ -183,11 +186,9 @@
   (pre-order!
    (lambda (x)
      (record-case x
-       ((<application> src proc args)
-        (and (primitive-ref? proc)
-             (let ((expand (hashq-ref *primitive-expand-table*
-                                      (primitive-ref-name proc))))
-               (and expand (apply expand src args)))))
+       ((<primcall> src name args)
+        (let ((expand (hashq-ref *primitive-expand-table* name)))
+          (and expand (apply expand src args))))
        (else #f)))
    x))
 
@@ -203,8 +204,8 @@
              (lp (cdr in)
                  (cons (if (eq? (caar in) 'quote)
                            `(make-const src ,@(cdar in))
-                           `(make-application src (make-primitive-ref src 
',(caar in))
-                                              ,(inline-args (cdar in))))
+                           `(make-primcall src ',(caar in)
+                                           ,(inline-args (cdar in))))
                        out)))
             ((symbol? (car in))
              ;; assume it's locally bound
@@ -222,8 +223,8 @@
               ,(consequent then)
               ,(consequent else)))
         (else
-         `(make-application src (make-primitive-ref src ',(car exp))
-                            ,(inline-args (cdr exp))))))
+         `(make-primcall src ',(car exp)
+                         ,(inline-args (cdr exp))))))
      ((symbol? exp)
       ;; assume locally bound
       exp)
@@ -412,7 +413,7 @@
                     (make-dynwind
                      src
                      (make-lexical-ref #f 'pre PRE)
-                     (make-application #f thunk '())
+                     (make-call #f thunk '())
                      (make-lexical-ref #f 'post POST)))))
                 (else
                  (let ((PRE (gensym " pre"))
@@ -426,7 +427,7 @@
                     (make-dynwind
                      src
                      (make-lexical-ref #f 'pre PRE)
-                     (make-application #f (make-lexical-ref #f 'thunk THUNK) 
'())
+                     (make-call #f (make-lexical-ref #f 'thunk THUNK) '())
                      (make-lexical-ref #f 'post POST)))))))
               (else #f)))
 
@@ -470,9 +471,9 @@
                   ;; trickery here.
                   (make-lambda-case
                    (tree-il-src handler) '() #f 'args #f '() (list args-sym)
-                   (make-application #f (make-primitive-ref #f 'apply)
-                                     (list handler
-                                           (make-lexical-ref #f 'args 
args-sym)))
+                   (make-primcall #f 'apply
+                                  (list handler
+                                        (make-lexical-ref #f 'args args-sym)))
                    #f))))
               (else #f)))
 
@@ -486,14 +487,14 @@
                 ((lambda? handler)
                  (let ((args-sym (gensym)))
                    (make-prompt
-                    src tag (make-application #f thunk '())
+                    src tag (make-call #f thunk '())
                     ;; If handler itself is a lambda, the inliner can do some
                     ;; trickery here.
                     (make-lambda-case
                      (tree-il-src handler) '() #f 'args #f '() (list args-sym)
-                     (make-application #f (make-primitive-ref #f 'apply)
-                                       (list handler
-                                             (make-lexical-ref #f 'args 
args-sym)))
+                     (make-primcall #f 'apply
+                                    (list handler
+                                          (make-lexical-ref #f 'args 
args-sym)))
                      #f))))
                 (else #f)))
               (else #f)))
diff --git a/module/language/tree-il/spec.scm b/module/language/tree-il/spec.scm
index 38e6d31..1c6611b 100644
--- a/module/language/tree-il/spec.scm
+++ b/module/language/tree-il/spec.scm
@@ -1,6 +1,6 @@
 ;;; Tree Intermediate Language
 
-;; 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
@@ -33,7 +33,9 @@
   (pmatch exps
     (() (make-void #f))
     ((,x) x)
-    (else (make-sequence #f exps))))
+    ((,x . ,rest)
+     (make-seq #f x (join rest env)))
+    (else (error "what!" x rest env))))
 
 (define-language tree-il
   #:title      "Tree Intermediate Language"
diff --git a/module/rnrs/io/ports.scm b/module/rnrs/io/ports.scm
index 4ae01be..246e46b 100644
--- a/module/rnrs/io/ports.scm
+++ b/module/rnrs/io/ports.scm
@@ -311,7 +311,9 @@ read from/written to in @var{port}."
                                (buffer-mode (buffer-mode block))
                                maybe-transcoder)
   (let ((port (with-i/o-filename-conditions filename
-                (lambda () (open filename O_RDONLY)))))
+                (lambda ()
+                  (with-fluids ((%default-port-encoding #f))
+                    (open filename O_RDONLY))))))
     (cond (maybe-transcoder
            (set-port-encoding! port (transcoder-codec maybe-transcoder))))
     port))
@@ -340,7 +342,9 @@ as a string, and a thunk to retrieve the characters 
associated with that port."
                             0
                             O_EXCL)))
          (port (with-i/o-filename-conditions filename
-                 (lambda () (open filename flags)))))
+                 (lambda ()
+                   (with-fluids ((%default-port-encoding #f))
+                     (open filename flags))))))
     (cond (maybe-transcoder
            (set-port-encoding! port (transcoder-codec maybe-transcoder))))
     port))
diff --git a/module/scripts/list.scm b/module/scripts/list.scm
new file mode 100644
index 0000000..046d8f5
--- /dev/null
+++ b/module/scripts/list.scm
@@ -0,0 +1,83 @@
+;;; List --- List scripts that can be invoked by guile-tools  -*- coding: 
iso-8859-1 -*-
+
+;;;;   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
+;;;; 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
+
+;;; Commentary:
+
+;; Usage: list
+;;
+;; List scripts that can be invoked by guile-tools.
+
+;;; Code:
+
+(define-module (scripts list)
+  #:use-module ((srfi srfi-1) #:select (fold append-map))
+  #:export (list-scripts))
+
+
+(define (directory-files dir)
+  (if (and (file-exists? dir) (file-is-directory? dir))
+      (let ((dir-stream (opendir dir)))
+        (let loop ((new (readdir dir-stream))
+                   (acc '()))
+          (if (eof-object? new)
+              (begin
+                (closedir dir-stream)
+                acc)
+              (loop (readdir dir-stream)
+                    (if (or (string=? "."  new)             ; ignore
+                            (string=? ".." new))            ; ignore
+                        acc
+                        (cons new acc))))))
+      '()))
+
+(define (strip-extensions path)
+  (or-map (lambda (ext)
+            (and
+             (string-suffix? ext path)
+             (substring path 0
+                        (- (string-length path) (string-length ext)))))
+          (append %load-compiled-extensions %load-extensions)))
+
+(define (unique l)
+  (cond ((null? l) l)
+        ((null? (cdr l)) l)
+        ((equal? (car l) (cadr l)) (unique (cdr l)))
+        (else (cons (car l) (unique (cdr l))))))
+
+(define (find-submodules head)
+  (let ((shead (map symbol->string head)))
+    (unique
+     (sort
+      (append-map (lambda (path)
+                    (fold (lambda (x rest)
+                            (let ((stripped (strip-extensions x)))
+                              (if stripped (cons stripped rest) rest)))
+                          '()
+                          (directory-files
+                           (fold (lambda (x y) (in-vicinity y x)) path 
shead))))
+                  %load-path)
+      string<?))))
+
+(define (list-scripts . args)
+  (for-each (lambda (x)
+              ;; would be nice to show a summary.
+              (format #t "~A\n" x))
+            (find-submodules '(scripts))))
+
+(define main list-scripts)
diff --git a/test-suite/tests/getopt-long.test 
b/test-suite/tests/getopt-long.test
index d7f5184..4ae6048 100644
--- a/test-suite/tests/getopt-long.test
+++ b/test-suite/tests/getopt-long.test
@@ -252,7 +252,7 @@
 
   )
 
-(with-test-prefix "multiple occurrances"
+(with-test-prefix "multiple occurrences"
 
   (define (test9 . args)
     (equal? (getopt-long (cons "foo" args)
@@ -288,4 +288,15 @@
 
   )
 
+(with-test-prefix "stop-at-first-non-option"
+
+  (pass-if "guile-tools compile example"
+    (equal? (getopt-long '("guile-tools" "compile" "-Wformat" "eval.scm" "-o" 
"eval.go")
+                         '((help (single-char #\h))
+                           (version (single-char #\v)))
+                         #:stop-at-first-non-option #t)
+            '((() "compile" "-Wformat" "eval.scm" "-o" "eval.go"))))
+
+  )
+
 ;;; getopt-long.test ends here
diff --git a/test-suite/tests/r6rs-ports.test b/test-suite/tests/r6rs-ports.test
index 7a382b7..f3e8c2c 100644
--- a/test-suite/tests/r6rs-ports.test
+++ b/test-suite/tests/r6rs-ports.test
@@ -27,12 +27,6 @@
   #:use-module (rnrs exceptions)
   #:use-module (rnrs bytevectors))
 
-;;; All these tests assume Guile 1.8's port system, where characters are
-;;; treated as octets.
-
-;; Set the default encoding of future ports to be Latin-1.
-(fluid-set! %default-port-encoding #f)
-
 (define-syntax pass-if-condition
   (syntax-rules ()
     ((_ name predicate body0 body ...)
@@ -72,6 +66,12 @@
              (lambda () #t)) ;; close-port
      "rw")))
 
+(define (call-with-bytevector-output-port/transcoded transcoder receiver)
+  (call-with-bytevector-output-port
+    (lambda (bv-port)
+      (call-with-port (transcoded-port bv-port transcoder)
+        receiver))))
+
 
 (with-test-prefix "7.2.5 End-of-File Object"
 
@@ -316,6 +316,22 @@
 
 (with-test-prefix "7.2.7 Input Ports"
 
+  (let ((filename (test-file))
+        (contents (string->utf8 "GNU λ")))
+    
+    ;; Create file
+    (call-with-output-file filename
+      (lambda (port) (put-bytevector port contents)))
+  
+    (pass-if "open-file-input-port [opens binary port]"
+      (with-fluids ((%default-port-encoding "UTF-8"))
+          (call-with-port (open-file-input-port filename)
+            (lambda (port)
+              (and (binary-port? port)
+                   (bytevector=? contents (get-bytevector-all port)))))))
+
+    (delete-file filename))
+  
   ;; This section appears here so that it can use the binary input
   ;; primitives.
 
@@ -463,11 +479,12 @@
 (with-test-prefix "8.2.10 Output ports"
 
   (let ((filename (test-file)))
-    (pass-if "open-file-output-port [opens binary port]"
-      (call-with-port (open-file-output-port filename)
-        (lambda (port)
-          (put-bytevector port '#vu8(1 2 3))
-          (binary-port? port))))
+    (with-fluids ((%default-port-encoding "UTF-8"))
+      (pass-if "open-file-output-port [opens binary port]"
+        (call-with-port (open-file-output-port filename)
+          (lambda (port)
+            (put-bytevector port '#vu8(1 2 3))
+            (binary-port? port)))))
     
     (pass-if-condition "open-file-output-port [exception: already-exists]"
         i/o-file-already-exists-error?
@@ -620,11 +637,9 @@
     (let ((s "Hello\nÄÖÜ"))
       (bytevector=?
        (string->utf8 s)
-       (call-with-bytevector-output-port
-         (lambda (bv-port)
-           (call-with-port (transcoded-port bv-port (make-transcoder 
(utf-8-codec)))
-             (lambda (utf8-port)
-               (put-string utf8-port s))))))))
+       (call-with-bytevector-output-port/transcoded (make-transcoder 
(utf-8-codec))
+         (lambda (utf8-port)
+           (put-string utf8-port s))))))
 
   (pass-if "transcoded-port [input]"
     (let ((s "Hello\nÄÖÜ"))
@@ -720,6 +735,11 @@
     (pass-if-condition "get-datum" i/o-read-error?
       (get-datum (make-failing-port)))))
 
+(define (encoding-error-predicate char)
+  (lambda (c)
+    (and (i/o-encoding-error? c)
+         (char=? char (i/o-encoding-error-char c)))))
+
 (with-test-prefix "8.2.12 Textual Output"
   
   (with-test-prefix "write error"
@@ -728,7 +748,22 @@
     (pass-if-condition "put-string" i/o-write-error?
       (put-string (make-failing-port) "Hello World!"))
     (pass-if-condition "put-datum" i/o-write-error?
-      (put-datum (make-failing-port) '(hello world!)))))
+      (put-datum (make-failing-port) '(hello world!))))
+  (with-test-prefix "encoding error"
+    (pass-if-condition "put-char" (encoding-error-predicate #\λ)
+      (call-with-bytevector-output-port/transcoded
+          (make-transcoder (latin-1-codec)
+                           (native-eol-style)
+                           (error-handling-mode raise))
+        (lambda (port)
+          (put-char port #\λ))))
+    (pass-if-condition "put-string" (encoding-error-predicate #\λ)
+      (call-with-bytevector-output-port/transcoded
+          (make-transcoder (latin-1-codec)
+                           (native-eol-style)
+                           (error-handling-mode raise))
+        (lambda (port)
+          (put-string port "FooλBar"))))))
 
 (with-test-prefix "8.3 Simple I/O"
   (with-test-prefix "read error"
diff --git a/test-suite/tests/tree-il.test b/test-suite/tests/tree-il.test
index 1b86b99..a59835e 100644
--- a/test-suite/tests/tree-il.test
+++ b/test-suite/tests/tree-il.test
@@ -63,15 +63,15 @@
    (begin (void) (const 1))
    (program () (std-prelude 0 0 #f) (label _) (const 1) (call return 1)))
   (assert-tree-il->glil
-   (apply (primitive +) (void) (const 1))
+   (primcall + (void) (const 1))
    (program () (std-prelude 0 0 #f) (label _) (void) (call add1 1) (call 
return 1))))
 
 (with-test-prefix "application"
   (assert-tree-il->glil
-   (apply (toplevel foo) (const 1))
+   (call (toplevel foo) (const 1))
    (program () (std-prelude 0 0 #f) (label _) (toplevel ref foo) (const 1) 
(call tail-call 1)))
   (assert-tree-il->glil
-   (begin (apply (toplevel foo) (const 1)) (void))
+   (begin (call (toplevel foo) (const 1)) (void))
    (program () (std-prelude 0 0 #f) (label _) (call new-frame 0) (toplevel ref 
foo) (const 1) (mv-call 1 ,l1)
             (call drop 1) (branch br ,l2)
             (label ,l3) (mv-bind 0 #f)
@@ -79,7 +79,7 @@
             (void) (call return 1))
    (and (eq? l1 l3) (eq? l2 l4)))
   (assert-tree-il->glil
-   (apply (toplevel foo) (apply (toplevel bar)))
+   (call (toplevel foo) (call (toplevel bar)))
    (program ()  (std-prelude 0 0 #f) (label _) (toplevel ref foo) (call 
new-frame 0) (toplevel ref bar) (call call 0)
             (call tail-call 1))))
 
@@ -98,7 +98,7 @@
    (eq? l1 l3) (eq? l2 l4))
 
   (assert-tree-il->glil
-   (apply (primitive null?) (if (toplevel foo) (const 1) (const 2)))
+   (primcall null? (if (toplevel foo) (const 1) (const 2)))
    (program () (std-prelude 0 0 #f) (label _) (toplevel ref foo) (branch 
br-if-not ,l1)
             (const 1) (branch br ,l2)
                     (label ,l3) (const 2) (label ,l4)
@@ -115,7 +115,7 @@
    (program () (std-prelude 0 0 #f) (label _) (const #f) (call return 1)))
 
   (assert-tree-il->glil
-   (apply (primitive null?) (primitive +))
+   (primcall null? (primitive +))
    (program () (std-prelude 0 0 #f) (label _) (toplevel ref +) (call null? 1)
             (call return 1))))
 
@@ -135,7 +135,7 @@
             (unbind)))
 
   (assert-tree-il->glil
-   (let (x) (y) ((const 1)) (apply (primitive null?) (lexical x y)))
+   (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)
             (lexical #t #f ref 0) (call null? 1) (call return 1)
@@ -145,7 +145,7 @@
   (assert-tree-il->glil
    ;; unreferenced sets may be optimized away -- make sure they are ref'd
    (let (x) (y) ((const 1))
-        (set! (lexical x y) (apply (primitive 1+) (lexical x y))))
+        (set! (lexical x y) (primcall 1+ (lexical x y))))
    (program () (std-prelude 0 1 #f) (label _)
             (const 1) (bind (x #t 0)) (lexical #t #t box 0)
             (lexical #t #t ref 0) (call add1 1) (lexical #t #t set 0)
@@ -154,7 +154,7 @@
 
   (assert-tree-il->glil
    (let (x) (y) ((const 1))
-        (begin (set! (lexical x y) (apply (primitive 1+) (lexical x y)))
+        (begin (set! (lexical x y) (primcall 1+ (lexical x y)))
                (lexical x y)))
    (program () (std-prelude 0 1 #f) (label _)
             (const 1) (bind (x #t 0)) (lexical #t #t box 0)
@@ -164,8 +164,8 @@
 
   (assert-tree-il->glil
    (let (x) (y) ((const 1))
-     (apply (primitive null?)
-            (set! (lexical x y) (apply (primitive 1+) (lexical x y)))))
+     (primcall null?
+           (set! (lexical x y) (primcall 1+ (lexical x y)))))
    (program () (std-prelude 0 1 #f) (label _)
             (const 1) (bind (x #t 0)) (lexical #t #t box 0)
             (lexical #t #t ref 0) (call add1 1) (lexical #t #t set 0) (void)
@@ -186,7 +186,7 @@
             (const #f) (call return 1)))
 
   (assert-tree-il->glil
-   (apply (primitive null?) (@ (foo) bar))
+   (primcall null? (@ (foo) bar))
    (program () (std-prelude 0 0 #f) (label _)
             (module public ref (foo) bar)
             (call null? 1) (call return 1)))
@@ -204,7 +204,7 @@
             (const #f) (call return 1)))
 
   (assert-tree-il->glil
-   (apply (primitive null?) (@@ (foo) bar))
+   (primcall null? (@@ (foo) bar))
    (program () (std-prelude 0 0 #f) (label _)
             (module private ref (foo) bar)
             (call null? 1) (call return 1))))
@@ -223,7 +223,7 @@
             (const #f) (call return 1)))
 
   (assert-tree-il->glil
-   (apply (primitive null?) (set! (@ (foo) bar) (const 2)))
+   (primcall null? (set! (@ (foo) bar) (const 2)))
    (program () (std-prelude 0 0 #f) (label _)
             (const 2) (module public set (foo) bar)
             (void) (call null? 1) (call return 1)))
@@ -241,7 +241,7 @@
             (const #f) (call return 1)))
 
   (assert-tree-il->glil
-   (apply (primitive null?) (set! (@@ (foo) bar) (const 2)))
+   (primcall null? (set! (@@ (foo) bar) (const 2)))
    (program () (std-prelude 0 0 #f) (label _)
             (const 2) (module private set (foo) bar)
             (void) (call null? 1) (call return 1))))
@@ -260,7 +260,7 @@
             (const #f) (call return 1)))
 
   (assert-tree-il->glil
-   (apply (primitive null?) (toplevel bar))
+   (primcall null? (toplevel bar))
    (program () (std-prelude 0 0 #f) (label _)
             (toplevel ref bar)
             (call null? 1) (call return 1))))
@@ -279,7 +279,7 @@
             (const #f) (call return 1)))
 
   (assert-tree-il->glil
-   (apply (primitive null?) (set! (toplevel bar) (const 2)))
+   (primcall null? (set! (toplevel bar) (const 2)))
    (program () (std-prelude 0 0 #f) (label _)
             (const 2) (toplevel set bar)
             (void) (call null? 1) (call return 1))))
@@ -298,7 +298,7 @@
             (const #f) (call return 1)))
 
   (assert-tree-il->glil
-   (apply (primitive null?) (define bar (const 2)))
+   (primcall null? (define bar (const 2)))
    (program () (std-prelude 0 0 #f) (label _)
             (const 2) (toplevel define bar)
             (void) (call null? 1) (call return 1))))
@@ -315,7 +315,7 @@
             (const #f) (call return 1)))
 
   (assert-tree-il->glil
-   (apply (primitive null?) (const 2))
+   (primcall null? (const 2))
    (program () (std-prelude 0 0 #f) (label _)
             (const 2) (call null? 1) (call return 1))))
 
@@ -323,7 +323,7 @@
   ;; simple bindings -> let
   (assert-tree-il->glil
    (letrec (x y) (x1 y1) ((const 10) (const 20))
-           (apply (toplevel foo) (lexical x x1) (lexical y y1)))
+           (call (toplevel foo) (lexical x x1) (lexical y y1)))
    (program () (std-prelude 0 2 #f) (label _)
             (const 10) (const 20)
             (bind (x #f 0) (y #f 1))
@@ -335,8 +335,8 @@
 
   ;; complex bindings -> box and set! within let
   (assert-tree-il->glil
-   (letrec (x y) (x1 y1) ((apply (toplevel foo)) (apply (toplevel bar)))
-           (apply (primitive +) (lexical x x1) (lexical y y1)))
+   (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 _)
             (void) (void) ;; what are these?
             (bind (x #t 0) (y #t 1))
@@ -351,8 +351,8 @@
   
   ;; complex bindings in letrec* -> box and set! in order
   (assert-tree-il->glil
-   (letrec* (x y) (x1 y1) ((apply (toplevel foo)) (apply (toplevel bar)))
-            (apply (primitive +) (lexical x x1) (lexical y y1)))
+   (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 _)
             (void) (void) ;; what are these?
             (bind (x #t 0) (y #t 1))
@@ -470,7 +470,7 @@
             (const #t) (call return 1)))
 
   (assert-tree-il->glil
-   (apply (primitive null?) (begin (const #f) (const 2)))
+   (primcall null? (begin (const #f) (const 2)))
    (program () (std-prelude 0 0 #f) (label _)
             (const 2) (call null? 1) (call return 1))))
 
@@ -512,10 +512,10 @@
 
 (with-test-prefix "apply"
   (assert-tree-il->glil
-   (apply (primitive @apply) (toplevel foo) (toplevel bar))
+   (primcall @apply (toplevel foo) (toplevel bar))
    (program () (std-prelude 0 0 #f) (label _) (toplevel ref foo) (toplevel ref 
bar) (call tail-apply 2)))
   (assert-tree-il->glil
-   (begin (apply (primitive @apply) (toplevel foo) (toplevel bar)) (void))
+   (begin (primcall @apply (toplevel foo) (toplevel bar)) (void))
    (program () (std-prelude 0 0 #f) (label _)
             (call new-frame 0) (toplevel ref apply) (toplevel ref foo) 
(toplevel ref bar) (mv-call 2 ,l1)
             (call drop 1) (branch br ,l2) (label ,l3) (mv-bind 0 #f)
@@ -523,7 +523,7 @@
             (void) (call return 1))
    (and (eq? l1 l3) (eq? l2 l4)))
   (assert-tree-il->glil
-   (apply (toplevel foo) (apply (toplevel @apply) (toplevel bar) (toplevel 
baz)))
+   (call (toplevel foo) (call (toplevel @apply) (toplevel bar) (toplevel baz)))
    (program () (std-prelude 0 0 #f) (label _)
             (toplevel ref foo)
             (call new-frame 0) (toplevel ref bar) (toplevel ref baz) (call 
apply 2)
@@ -531,10 +531,10 @@
 
 (with-test-prefix "call/cc"
   (assert-tree-il->glil
-   (apply (primitive @call-with-current-continuation) (toplevel foo))
+   (primcall @call-with-current-continuation (toplevel foo))
    (program () (std-prelude 0 0 #f) (label _) (toplevel ref foo) (call 
tail-call/cc 1)))
   (assert-tree-il->glil
-   (begin (apply (primitive @call-with-current-continuation) (toplevel foo)) 
(void))
+   (begin (primcall @call-with-current-continuation (toplevel foo)) (void))
    (program () (std-prelude 0 0 #f) (label _)
             (call new-frame 0) (toplevel ref call-with-current-continuation) 
(toplevel ref foo) (mv-call 1 ,l1)
             (call drop 1) (branch br ,l2) (label ,l3) (mv-bind 0 #f)
@@ -542,8 +542,8 @@
             (void) (call return 1))
    (and (eq? l1 l3) (eq? l2 l4)))
   (assert-tree-il->glil
-   (apply (toplevel foo)
-          (apply (toplevel @call-with-current-continuation) (toplevel bar)))
+   (call (toplevel foo)
+          (call (toplevel @call-with-current-continuation) (toplevel bar)))
    (program () (std-prelude 0 0 #f) (label _)
             (toplevel ref foo)
             (toplevel ref bar) (call call/cc 1)
@@ -580,9 +580,9 @@
                                   '(lambda ()
                                      (lambda-case
                                       (((x y) #f #f #f () (x1 y1))
-                                       (apply (toplevel +)
-                                              (lexical x x1)
-                                              (lexical y y1)))
+                                       (call (toplevel +)
+                                             (lexical x x1)
+                                             (lexical y y1)))
                                       #f))))))
       (and (equal? (map strip-source leaves)
                    (list (make-lexical-ref #f 'y 'y1)


hooks/post-receive
-- 
GNU Guile



reply via email to

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