[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] GNU Guile branch, master, updated. v2.1.0-88-g840cf0d
From: |
Andy Wingo |
Subject: |
[Guile-commits] GNU Guile branch, master, updated. v2.1.0-88-g840cf0d |
Date: |
Thu, 29 Sep 2011 16:07:10 +0000 |
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Guile".
http://git.savannah.gnu.org/cgit/guile.git/commit/?id=840cf0d1e2bb3b019210958056404f29347042fe
The branch, master has been updated
via 840cf0d1e2bb3b019210958056404f29347042fe (commit)
via ca128245811fab5abcf02756cd7a322a3a40d192 (commit)
via 014de9e25d87b7d3a13566aee4c271c1a11ea0b7 (commit)
via b275fb2691af150cc57e395e65df5a66e315017e (commit)
via df40b969780df2979f9f5e1c9ae8b9d6f09dbd9a (commit)
via 0353a2d817d0d5b3c563af4fa1b5c7c1fe7ce3a6 (commit)
via 40be30c97459e1baf8a9997c1c116a67f153cfef (commit)
via fc283c92cbdb31942f033541b52376fd1bade3f2 (commit)
via b5ae223d129b427e2b5695c82c45f16995f36236 (commit)
via 1cc1c2d7e33bc40ac23e05636e69434d80e90af1 (commit)
via 6c4ffe2b2560eaeb0fe5aedb266183e3bb80dbd8 (commit)
via ea726a53b2180ee4548723f81d9b1be7732ef5d8 (commit)
via fbc9387f68be677663e6756c35afa973a9dc0a1a (commit)
via 58b5a2d4e10d2afb34dfcb086d2550e936800b3f (commit)
via 7a1e193710ff3efa63ddd665a627c682ccec5ce6 (commit)
via 7af1ba2f6c4d4bcd4fbf0214384551f9b8208d4a (commit)
via 153ca1d2391115f1428837b9465bce89c76691de (commit)
via 05c9389e3f869f3158d97289f50a52dc2b3caa26 (commit)
via ef6c0883c3467b0b4b3c3e3cfb94f2b80422d875 (commit)
via 02ebea537fa805c615df44c4228db6a44d74c4b3 (commit)
via cf82943f9f075248d803b31e19ddb8e933ad35ba (commit)
via b839233282686301a5ba762b2dda890b3659ce4d (commit)
via fab137869e67d2f1d76764aa8b2855c88ae95379 (commit)
via 062bf3aa443c33a2f07fe929aba03fcd44d959b1 (commit)
via 8018dfdc023fe3136e96550c9d0dcd1712759917 (commit)
via ded8ad84a781ec792c0796e82568854c5d63ea65 (commit)
via f6123e4fda470a634b6cf0510d0312d162973e75 (commit)
via e43921a982fe207c99695c6eb01abffb0c9a559b (commit)
via b8a2b628e9c663ff58d442a895c4d20541d54b1f (commit)
via 1eb4886ffa9c4c81c946af7fed8fb39020fcde12 (commit)
via 8d06538e821c3e6cdd4861e1d8b1ec25ed930453 (commit)
via e535a37db891323708d375ad9c9c6f2b407261f1 (commit)
via 8f6dfb9ad226eb1b017cc08fda8b03350c9a209a (commit)
via 250991010f08d6a9e16dabad32941c948a8b4ba4 (commit)
via 9e8a5b6637c71b909a0c3ca42e6756d0b2177a05 (commit)
via dd7ab5d8a44a34112b3992a711db2851f503ce00 (commit)
via c829531a4652b2cf4d4aac1eb0af08c3231bdecf (commit)
via a4c7fe5cde907f3bc4cbc5190bfc7e748d6bac45 (commit)
via ec6e09bee7bd85862dbbea8fdefb295b7cc5205f (commit)
via d851e32fdc3d14804108f0389faa75a57599ced4 (commit)
via 40bd6a7e57a779d249f901f710d7368bf26550bb (commit)
via 9581febbb004b24843630adcefb72810624d0300 (commit)
via 2605b6ba2749a90c55a7f49bb91d6f20f256a20e (commit)
via ddbee5c00f438c4dc1dbe2b944b559a3c2de0e6b (commit)
via 5d5e4f399a38e530a5f0081d6fdec80d3eb4736a (commit)
via 4f33b47591e823500d800ee4f9d98c8ae98ceab8 (commit)
via 65a32655253cdfcf4e2caf03a73ac66b05da5f71 (commit)
via 03026d0fb888c4d19b87a995c641cb3e93afd973 (commit)
via d111abd0f6d06308b172cc1fa964eb11ccf5d94a (commit)
via 0c448ef47b752683855753ece53bef52733aee0b (commit)
via 78295f242adc2e308eba69839a8812da6cc1e02e (commit)
via ccb771575a9fc03eab034bef4c77917486bbf8c7 (commit)
via 72b2ca55f6e115927aa4e76401c992f21198681f (commit)
via 239b4b2ac6fda615e117193076df0b6b2bccb5d7 (commit)
via 1e2b4920cac71e6750673a84642db97c404092a7 (commit)
via 2b0b09fed4e446712dde60781ed09a6100e833f3 (commit)
via 2ae0775e405de414e2da4806588b674c07793b8e (commit)
via 3f2d6efc7b61999a4522b1c35d6f4a875a2c74c0 (commit)
via af1c6e424ffb7f37391fc62d788591adc40381e1 (commit)
via 735249513a0a2966f6570ee32cd2988b3bc6524d (commit)
via 61237fa4b96d020e96388cca4fd065ddf43bca60 (commit)
via 1e8ace33d17a3156c184e8121eb291a7c9324ccc (commit)
via 870dfc609b0bf090d38878d7224e65843c355485 (commit)
via 89436781e8758ee4df98f5d720f3ade50c2439fa (commit)
via d5f76917820a00ea94f9904c3fd1dcef1c37bd95 (commit)
via fe1336405062c69ff08fd7ad0d98c3f2aca7766f (commit)
via cb7bcfca3520a147881e4b7f052b68b88a740bf1 (commit)
via 86b4309b7166fe5ec4f55f0cc64501d07b0852f9 (commit)
via a8d7fba8d45220e4d12c57f5aa85bfade9d21100 (commit)
via 73df2c37424e89956df6c0e9a7d777b477423a93 (commit)
via cf14f3011bdb32c303ec1937a245269c100abe95 (commit)
via c8286111e0d149adc30687a27e5f52c9c064291a (commit)
via f9c1b8278dbf1992d83f91f91391ee39e714d364 (commit)
via 11671bbacbdd52039c77978bfe7f24a3316f6019 (commit)
via 16a3b316113b4000a39b92ddfe4c3edc16954d52 (commit)
via 91db4a375cb9adc8f3a47f0355c3e6566b9acebf (commit)
via 8568067836a7f127b18833a00d6bfc0509fa31ef (commit)
via 5fcb7b3cc58464b8895b09d0927e9364c079fe41 (commit)
via d9241a37e8184ac18e5836ff739212139aca91e3 (commit)
via 5f237d6e0e5d16b131c739c8daed3de9b162ec96 (commit)
via df08fc359c87a2c802ab82c4c70db7bda9baaa52 (commit)
via eddd81f4652db72a085f7c8dfe2ca04b7c4de829 (commit)
via cd4171d012f0ef2291274b5a9b26854c0223921b (commit)
via 0c65f52c6d45f60e197fad7162d05c0fce89e817 (commit)
via 1bbe0a631c4e72fffc033cb4f83eba7252ce3c9c (commit)
via dea14eb99bfb70f970db24f72340dfc9b98e0640 (commit)
from 25f4a88032f51cecdf8b0147c8a2d0a4574972fa (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 840cf0d1e2bb3b019210958056404f29347042fe
Author: Andy Wingo <address@hidden>
Date: Thu Sep 29 18:07:02 2011 +0200
regenerate psyntax-pp.scm
* module/ice-9/psyntax-pp.scm: Regenerate.
commit ca128245811fab5abcf02756cd7a322a3a40d192
Merge: 25f4a88 014de9e
Author: Andy Wingo <address@hidden>
Date: Thu Sep 29 18:02:28 2011 +0200
Merge remote-tracking branch 'origin/stable-2.0'
This was a pretty big merge involving a fair amount of porting,
especially to peval and its tests. I did not update psyntax-pp.scm,
that comes in the next commit.
Conflicts:
module/ice-9/boot-9.scm
module/ice-9/psyntax-pp.scm
module/language/ecmascript/compile-tree-il.scm
module/language/tree-il.scm
module/language/tree-il/analyze.scm
module/language/tree-il/inline.scm
test-suite/tests/tree-il.test
-----------------------------------------------------------------------
Summary of changes:
doc/ref/api-compound.texi | 2 +-
doc/ref/api-macros.texi | 27 +-
doc/ref/api-modules.texi | 62 +-
doc/ref/guile-invoke.texi | 6 +
doc/ref/guile.texi | 9 +-
doc/ref/match.texi | 52 +-
libguile/numbers.c | 14 +-
libguile/snarf.h | 2 +-
libguile/strings.c | 8 +-
module/Makefile.am | 6 +-
module/ice-9/boot-9.scm | 132 +-
module/ice-9/command-line.scm | 10 +-
module/ice-9/compile-psyntax.scm | 12 +-
module/ice-9/control.scm | 22 +-
module/ice-9/futures.scm | 8 +-
module/ice-9/match.scm | 43 +-
module/ice-9/match.upstream.scm | 307 +-
module/ice-9/optargs.scm | 12 +-
module/ice-9/poll.scm | 7 +-
module/ice-9/psyntax-pp.scm |35397 +++++++++++----------
module/ice-9/psyntax.scm | 87 +-
module/ice-9/receive.scm | 14 +-
module/ice-9/threads.scm | 56 +-
module/ice-9/vlist.scm | 20 +-
module/language/assembly/compile-bytecode.scm | 18 +-
module/language/ecmascript/compile-tree-il.scm | 36 +-
module/language/glil/compile-assembly.scm | 2 +-
module/language/tree-il.scm | 156 +-
module/language/tree-il/analyze.scm | 70 +-
module/language/tree-il/canonicalize.scm | 76 +
module/language/tree-il/compile-glil.scm | 2 +
module/language/tree-il/inline.scm | 186 +-
module/language/tree-il/optimize.scm | 17 +-
module/language/tree-il/peval.scm | 922 +
module/language/tree-il/primitives.scm | 76 +-
module/oop/goops.scm | 67 +-
module/oop/goops/simple.scm | 8 +-
module/oop/goops/stklos.scm | 8 +-
module/srfi/srfi-1.scm | 8 +-
module/srfi/srfi-35.scm | 32 +-
module/srfi/srfi-39.scm | 12 +-
module/srfi/srfi-45.scm | 13 +-
module/srfi/srfi-67/compare.scm | 189 +-
module/sxml/match.scm | 37 +-
module/system/repl/error-handling.scm | 6 +-
module/system/repl/repl.scm | 16 +-
module/system/vm/inspect.scm | 21 +-
module/texinfo.scm | 20 +-
module/web/http.scm | 28 +-
module/web/server.scm | 8 +-
test-suite/Makefile.am | 1 +
test-suite/standalone/Makefile.am | 7 +
test-suite/standalone/test-scm-to-latin1-string.c | 78 +
test-suite/tests/gc.test | 14 +-
test-suite/tests/match.test | 106 +-
test-suite/tests/match.test.upstream | 168 +
test-suite/tests/statprof.test | 11 +-
test-suite/tests/threads.test | 11 +-
test-suite/tests/tree-il.test | 779 +-
test-suite/tests/web-http.test | 3 +
test-suite/vm/t-match.scm | 2 +-
61 files changed, 22451 insertions(+), 17078 deletions(-)
create mode 100644 module/language/tree-il/canonicalize.scm
create mode 100644 module/language/tree-il/peval.scm
create mode 100644 test-suite/standalone/test-scm-to-latin1-string.c
create mode 100644 test-suite/tests/match.test.upstream
diff --git a/doc/ref/api-compound.texi b/doc/ref/api-compound.texi
index da8813b..c52fed4 100644
--- a/doc/ref/api-compound.texi
+++ b/doc/ref/api-compound.texi
@@ -3207,7 +3207,7 @@ key is typically a constant-time operation.
The VHash programming interface of @code{(ice-9 vlist)} is mostly the same as
that of association lists found in SRFI-1, with procedure names prefixed by
address@hidden instead of @code{vlist-} (@pxref{SRFI-1 Association Lists}).
address@hidden instead of @code{alist-} (@pxref{SRFI-1 Association Lists}).
In addition, vhashes can be manipulated using VList operations:
diff --git a/doc/ref/api-macros.texi b/doc/ref/api-macros.texi
index f0eeb6e..92816ad 100644
--- a/doc/ref/api-macros.texi
+++ b/doc/ref/api-macros.texi
@@ -1,6 +1,6 @@
@c -*-texinfo-*-
@c This is part of the GNU Guile Reference Manual.
address@hidden Copyright (C) 1996, 1997, 2000, 2001, 2002, 2003, 2004, 2009,
2010
address@hidden Copyright (C) 1996, 1997, 2000, 2001, 2002, 2003, 2004, 2009,
2010, 2011
@c Free Software Foundation, Inc.
@c See the file guile.texi for copying conditions.
@@ -24,9 +24,15 @@ macro must appear as the first element, like this:
@end lisp
@cindex macro expansion
address@hidden domain-specific language
address@hidden embedded domain-specific language
address@hidden DSL
address@hidden EDSL
Macro expansion is a separate phase of evaluation, run before code is
interpreted or compiled. A macro is a program that runs on programs,
translating
-an embedded language into core Scheme.
+an embedded language into core address@hidden days such embedded
+languages are often referred to as @dfn{embedded domain-specific
+languages}, or EDSLs.}.
@menu
* Defining Macros:: Binding macros, globally and locally.
@@ -336,6 +342,23 @@ This discussion is mostly relevant in the context of
traditional Lisp macros
(@pxref{Defmacros}), which do not preserve referential transparency. Hygiene
adds to the expressive power of Scheme.
address@hidden Shorthands
+
+One often ends up writing simple one-clause @code{syntax-rules} macros.
+There is a convenient shorthand for this idiom, in the form of
address@hidden
+
address@hidden {Syntax} define-syntax-rule (keyword . pattern) [docstring]
template
+Define @var{keyword} as a new @code{syntax-rules} macro with one clause.
address@hidden deffn
+
+Cast into this form, our @code{when} example is significantly shorter:
+
address@hidden
+(define-syntax-rule (when c e ...)
+ (if c (begin e ...)))
address@hidden example
+
@subsubsection Further Information
For a formal definition of @code{syntax-rules} and its pattern language, see
diff --git a/doc/ref/api-modules.texi b/doc/ref/api-modules.texi
index 3feced4..33c9819 100644
--- a/doc/ref/api-modules.texi
+++ b/doc/ref/api-modules.texi
@@ -919,28 +919,28 @@ can also work with modules from C, but it is more
cumbersome.
The following procedures are available.
address@hidden {C Procedure} SCM scm_current_module ()
address@hidden {C Function} SCM scm_current_module ()
Return the module that is the @emph{current module}.
@end deftypefn
address@hidden {C Procedure} SCM scm_set_current_module (SCM @var{module})
address@hidden {C Function} SCM scm_set_current_module (SCM @var{module})
Set the current module to @var{module} and return the previous current
module.
@end deftypefn
address@hidden {C Procedure} SCM scm_c_call_with_current_module (SCM
@var{module}, SCM (address@hidden)(void *), void address@hidden)
address@hidden {C Function} SCM scm_c_call_with_current_module (SCM
@var{module}, SCM (address@hidden)(void *), void address@hidden)
Call @var{func} and make @var{module} the current module during the
call. The argument @var{data} is passed to @var{func}. The return
value of @code{scm_c_call_with_current_module} is the return value of
@var{func}.
@end deftypefn
address@hidden SCM scm_public_variable (SCM @var{module_name}, SCM @var{name})
address@hidden SCM scm_c_public_variable (const char * @var{module_name}, const
char * @var{name})
address@hidden {C Function} SCM scm_public_variable (SCM @var{module_name}, SCM
@var{name})
address@hidden {C Function} SCM scm_c_public_variable ({const char
address@hidden, {const char address@hidden)
Find a the variable bound to the symbol @var{name} in the public
interface of the module named @var{module_name}.
- @var{module_name} should be a list of symbols, when represented as a
address@hidden should be a list of symbols, when represented as a
Scheme object, or a space-separated string, in the @code{const char *}
case. See @code{scm_c_define_module} below, for more examples.
@@ -948,17 +948,17 @@ Signals an error if no module was found with the given
name. If
@var{name} is not bound in the module, just returns @code{#f}.
@end deftypefn
address@hidden SCM scm_private_variable (SCM @var{module_name}, SCM @var{name})
address@hidden SCM scm_c_private_variable (const char * @var{module_name},
const char * @var{name})
address@hidden {C Function} SCM scm_private_variable (SCM @var{module_name},
SCM @var{name})
address@hidden {C Function} SCM scm_c_private_variable ({const char
address@hidden, {const char address@hidden)
Like @code{scm_public_variable}, but looks in the internals of the
module named @var{module_name} instead of the public interface.
Logically, these procedures should only be called on modules you write.
@end deftypefn
address@hidden SCM scm_public_lookup (SCM @var{module_name}, SCM @var{name})
address@hidden SCM scm_c_public_lookup (const char * @var{module_name}, const
char * @var{name})
address@hidden SCM scm_private_lookup (SCM @var{module_name}, SCM @var{name})
address@hidden SCM scm_c_private_lookup (const char * @var{module_name}, const
char * @var{name})
address@hidden {C Function} SCM scm_public_lookup (SCM @var{module_name}, SCM
@var{name})
address@hidden {C Function} SCM scm_c_public_lookup ({const char
address@hidden, {const char address@hidden)
address@hidden {C Function} SCM scm_private_lookup (SCM @var{module_name}, SCM
@var{name})
address@hidden {C Function} SCM scm_c_private_lookup ({const char
address@hidden, {const char address@hidden)
Like @code{scm_public_variable} or @code{scm_private_variable}, but if
the @var{name} is not bound in the module, signals an error. Returns a
variable, always.
@@ -977,10 +977,10 @@ SCM my_eval_string (SCM str)
@end example
@end deftypefn
address@hidden SCM scm_public_ref (SCM @var{module_name}, SCM @var{name})
address@hidden SCM scm_c_public_ref (const char * @var{module_name}, const char
* @var{name})
address@hidden SCM scm_private_ref (SCM @var{module_name}, SCM @var{name})
address@hidden SCM scm_c_private_ref (const char * @var{module_name}, const
char * @var{name})
address@hidden {C Function} SCM scm_public_ref (SCM @var{module_name}, SCM
@var{name})
address@hidden {C Function} SCM scm_c_public_ref ({const char address@hidden,
{const char address@hidden)
address@hidden {C Function} SCM scm_private_ref (SCM @var{module_name}, SCM
@var{name})
address@hidden {C Function} SCM scm_c_private_ref ({const char address@hidden,
{const char address@hidden)
Like @code{scm_public_lookup} or @code{scm_private_lookup}, but
additionally dereferences the variable. If the variable object is
unbound, signals an error. Returns the value bound to @var{name} in
@@ -991,50 +991,50 @@ In addition, there are a number of other lookup-related
procedures. We
suggest that you use the @code{scm_public_} and @code{scm_private_}
family of procedures instead, if possible.
address@hidden {C Procedure} SCM scm_c_lookup (const char address@hidden)
address@hidden {C Function} SCM scm_c_lookup ({const char address@hidden)
Return the variable bound to the symbol indicated by @var{name} in the
current module. If there is no such binding or the symbol is not
bound to a variable, signal an error.
@end deftypefn
address@hidden {C Procedure} SCM scm_lookup (SCM @var{name})
address@hidden {C Function} SCM scm_lookup (SCM @var{name})
Like @code{scm_c_lookup}, but the symbol is specified directly.
@end deftypefn
address@hidden {C Procedure} SCM scm_c_module_lookup (SCM @var{module}, const
char address@hidden)
address@hidden {C Procedure} SCM scm_module_lookup (SCM @var{module}, SCM
@var{name})
address@hidden {C Function} SCM scm_c_module_lookup (SCM @var{module}, {const
char address@hidden)
address@hidden {C Function} SCM scm_module_lookup (SCM @var{module}, SCM
@var{name})
Like @code{scm_c_lookup} and @code{scm_lookup}, but the specified
module is used instead of the current one.
@end deftypefn
address@hidden {C Procedure} SCM scm_module_variable (SCM @var{module}, SCM
@var{name})
address@hidden {C Function} SCM scm_module_variable (SCM @var{module}, SCM
@var{name})
Like @code{scm_module_lookup}, but if the binding does not exist, just
returns @code{#f} instead of raising an error.
@end deftypefn
To define a value, use @code{scm_define}:
address@hidden {C Procedure} SCM scm_c_define (const char address@hidden, SCM
@var{val})
address@hidden {C Function} SCM scm_c_define ({const char address@hidden, SCM
@var{val})
Bind the symbol indicated by @var{name} to a variable in the current
module and set that variable to @var{val}. When @var{name} is already
bound to a variable, use that. Else create a new variable.
@end deftypefn
address@hidden {C Procedure} SCM scm_define (SCM @var{name}, SCM @var{val})
address@hidden {C Function} SCM scm_define (SCM @var{name}, SCM @var{val})
Like @code{scm_c_define}, but the symbol is specified directly.
@end deftypefn
address@hidden {C Procedure} SCM scm_c_module_define (SCM @var{module}, const
char address@hidden, SCM @var{val})
address@hidden {C Procedure} SCM scm_module_define (SCM @var{module}, SCM
@var{name}, SCM @var{val})
address@hidden {C Function} SCM scm_c_module_define (SCM @var{module}, {const
char address@hidden, SCM @var{val})
address@hidden {C Function} SCM scm_module_define (SCM @var{module}, SCM
@var{name}, SCM @var{val})
Like @code{scm_c_define} and @code{scm_define}, but the specified
module is used instead of the current one.
@end deftypefn
address@hidden {C Procedure} SCM scm_module_reverse_lookup (SCM @var{module},
SCM @var{variable})
address@hidden {C Function} SCM scm_module_reverse_lookup (SCM @var{module},
SCM @var{variable})
Find the symbol that is bound to @var{variable} in @var{module}. When no such
binding is found, return @var{#f}.
@end deftypefn
address@hidden {C Procedure} SCM scm_c_define_module (const char
address@hidden, void (address@hidden)(void *), void address@hidden)
address@hidden {C Function} SCM scm_c_define_module ({const char
address@hidden, void (address@hidden)(void *), void address@hidden)
Define a new module named @var{name} and make it current while
@var{init} is called, passing it @var{data}. Return the module.
@@ -1046,25 +1046,25 @@ When there already exists a module named @var{name}, it
is used
unchanged, otherwise, an empty module is created.
@end deftypefn
address@hidden {C Procedure} SCM scm_c_resolve_module (const char
address@hidden)
address@hidden {C Function} SCM scm_c_resolve_module ({const char
address@hidden)
Find the module name @var{name} and return it. When it has not
already been defined, try to auto-load it. When it can't be found
that way either, create an empty module. The name is interpreted as
for @code{scm_c_define_module}.
@end deftypefn
address@hidden {C Procedure} SCM scm_resolve_module (SCM @var{name})
address@hidden {C Function} SCM scm_resolve_module (SCM @var{name})
Like @code{scm_c_resolve_module}, but the name is given as a real list
of symbols.
@end deftypefn
address@hidden {C Procedure} SCM scm_c_use_module (const char address@hidden)
address@hidden {C Function} SCM scm_c_use_module ({const char address@hidden)
Add the module named @var{name} to the uses list of the current
module, as with @code{(use-modules @var{name})}. The name is
interpreted as for @code{scm_c_define_module}.
@end deftypefn
address@hidden {C Procedure} SCM scm_c_export (const char address@hidden, ...)
address@hidden {C Function} SCM scm_c_export ({const char address@hidden, ...)
Add the bindings designated by @var{name}, ... to the public interface
of the current module. The list of names is terminated by
@code{NULL}.
diff --git a/doc/ref/guile-invoke.texi b/doc/ref/guile-invoke.texi
index 9379a8b..ccb5301 100644
--- a/doc/ref/guile-invoke.texi
+++ b/doc/ref/guile-invoke.texi
@@ -156,6 +156,12 @@ interactive session. When executing a script with
@option{-s} or
Do not use the debugging VM engine, even when entering an interactive
session.
+Note that, despite the name, Guile running with @option{--no-debug}
address@hidden support the usual debugging facilities, such as printing a
+detailed backtrace upon error. The only difference with
address@hidden is lack of support for VM hooks and the facilities that
+build upon it (see above).
+
@item -q
@cindex init file, not loading
@cindex @file{.guile} file, not loading
diff --git a/doc/ref/guile.texi b/doc/ref/guile.texi
index f43cc5a..9581f0c 100644
--- a/doc/ref/guile.texi
+++ b/doc/ref/guile.texi
@@ -17,11 +17,10 @@ Copyright (C) 1996, 1997, 2000, 2001, 2002, 2003, 2004,
2005, 2009,
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
-any later version published by the Free Software Foundation; with
-no Invariant Sections, with the Front-Cover Texts being ``A GNU
-Manual,'' and with the Back-Cover Text ``You are free to copy and
-modify this GNU Manual.''. A copy of the license is included in the
-section entitled ``GNU Free Documentation License''.
+any later version published by the Free Software Foundation; with no
+Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A
+copy of the license is included in the section entitled ``GNU Free
+Documentation License.''
@end copying
diff --git a/doc/ref/match.texi b/doc/ref/match.texi
index 66bb0bf..d1618ce 100644
--- a/doc/ref/match.texi
+++ b/doc/ref/match.texi
@@ -1,6 +1,6 @@
@c -*-texinfo-*-
@c This is part of the GNU Guile Reference Manual.
address@hidden Copyright (C) 2010 Free Software Foundation, Inc.
address@hidden Copyright (C) 2010, 2011 Free Software Foundation, Inc.
@c See the file guile.texi for copying conditions.
@c
@@ -26,7 +26,7 @@ matcher found in many Scheme implementations.
@cindex pattern variable
A pattern matcher can match an object against several patterns and
extract the elements that make it up. Patterns can represent any Scheme
-object: lists, strings, symbols, etc. They can optionally contain
+object: lists, strings, symbols, records, etc. They can optionally contain
@dfn{pattern variables}. When a matching pattern is found, an
expression associated with the pattern is evaluated, optionally with all
pattern variables bound to the corresponding elements of the object:
@@ -43,8 +43,8 @@ In this example, list @var{l} matches the pattern
@code{('hello (who))},
because it is a two-element list whose first element is the symbol
@code{hello} and whose second element is a one-element list. Here
@var{who} is a pattern variable. @code{match}, the pattern matcher,
-locally binds @var{who} to the value contained in this one-element list,
-i.e., the symbol @code{world}.
+locally binds @var{who} to the value contained in this one-element
+list---i.e., the symbol @code{world}.
The same object can be matched against a simpler pattern:
@@ -112,8 +112,8 @@ pat ::= identifier anything, and binds
identifier
| #(pat_1 ... pat_n pat_n+1 ooo) vector of n or more, each element
of remainder must match pat_n+1
| #&pat box
- | ($ struct-name pat_1 ... pat_n) a structure
- | (= field pat) a field of a structure
+ | ($ record-name pat_1 ... pat_n) a record
+ | (= field pat) a ``field'' of an object
| (and pat_1 ... pat_n) if all of pat_1 thru pat_n match
| (or pat_1 ... pat_n) if any of pat_1 thru pat_n match
| (not pat_1 ... pat_n) if all pat_1 thru pat_n don't match
@@ -122,11 +122,13 @@ pat ::= identifier anything, and
binds identifier
| (set! identifier) anything, and binds setter
| (get! identifier) anything, and binds getter
| `qp a quasi-pattern
+ | (identifier *** pat) matches pat in a tree and binds
+ identifier to the path leading
+ to the object that matches pat
ooo ::= ... zero or more
| ___ zero or more
- | ..k k or more
- | __k k or more
+ | ..1 1 or more
quasi-patterns: matches:
@@ -154,6 +156,40 @@ The names @code{quote}, @code{quasiquote}, @code{unquote},
@code{or}, @code{not}, @code{set!}, @code{get!}, @code{...}, and
@code{___} cannot be used as pattern variables.
+Here is a more complex example:
+
address@hidden
+(use-modules (srfi srfi-9))
+
+(let ()
+ (define-record-type person
+ (make-person name friends)
+ person?
+ (name person-name)
+ (friends person-friends))
+
+ (letrec ((alice (make-person "Alice" (delay (list bob))))
+ (bob (make-person "Bob" (delay (list alice)))))
+ (match alice
+ (($ person name (= force (($ person "Bob"))))
+ (list 'friend-of-bob name))
+ (_ #f))))
+
address@hidden (friend-of-bob "Alice")
address@hidden example
+
address@hidden
+Here the @code{$} pattern is used to match a SRFI-9 record of type
address@hidden containing two or more slots. The value of the first slot
+is bound to @var{name}. The @code{=} pattern is used to apply
address@hidden on the second slot, and then checking that the result
+matches the given pattern. In other words, the complete pattern matches
+any @var{person} whose second slot is a promise that evaluates to a
+one-element list containing a @var{person} whose first slot is
address@hidden"Bob"}.
+
+Please refer to the @code{ice-9/match.upstream.scm} file in your Guile
+installation for more details.
Guile also comes with a pattern matcher specifically tailored to SXML
trees, @xref{sxml-match}.
diff --git a/libguile/numbers.c b/libguile/numbers.c
index 235bbbb..a278ed5 100644
--- a/libguile/numbers.c
+++ b/libguile/numbers.c
@@ -5436,6 +5436,9 @@ char_decimal_value (scm_t_uint32 c)
return d;
}
+/* Parse the substring of MEM starting at *P_IDX for an unsigned integer
+ in base RADIX. Upon success, return the unsigned integer and update
+ *P_IDX and *P_EXACTNESS accordingly. Return #f on failure. */
static SCM
mem2uinteger (SCM mem, unsigned int *p_idx,
unsigned int radix, enum t_exactness *p_exactness)
@@ -5707,7 +5710,16 @@ mem2ureal (SCM mem, unsigned int *p_idx,
/* Cobble up the fractional part. We might want to set the
NaN's mantissa from it. */
idx += 4;
- mem2uinteger (mem, &idx, 10, &implicit_x);
+ if (!scm_is_eq (mem2uinteger (mem, &idx, 10, &implicit_x), SCM_INUM0))
+ {
+#if SCM_ENABLE_DEPRECATED == 1
+ scm_c_issue_deprecation_warning
+ ("Non-zero suffixes to `+nan.' are deprecated. Use `+nan.0'.");
+#else
+ return SCM_BOOL_F;
+#endif
+ }
+
*p_idx = idx;
return scm_nan ();
}
diff --git a/libguile/snarf.h b/libguile/snarf.h
index b0800c4..1c072ba 100644
--- a/libguile/snarf.h
+++ b/libguile/snarf.h
@@ -372,7 +372,7 @@ SCM_SNARF_INIT(scm_set_smob_apply((tag), (c_name), (req),
(opt), (rest));)
SCM_PACK (0), \
foreign, \
SCM_BOOL_F, /* the name */ \
- }; \
+ }
#define SCM_STATIC_PROGRAM(c_name, objcode, objtable, freevars) \
static SCM_ALIGNED (8) SCM_UNUSED SCM \
diff --git a/libguile/strings.c b/libguile/strings.c
index dd859c4..2de0035 100644
--- a/libguile/strings.c
+++ b/libguile/strings.c
@@ -1779,14 +1779,16 @@ scm_to_latin1_stringn (SCM str, size_t *lenp)
if (scm_i_is_narrow_string (str))
{
+ size_t len = scm_i_string_length (str);
+
if (lenp)
- *lenp = scm_i_string_length (str);
+ *lenp = len;
- result = scm_strdup (scm_i_string_data (str));
+ result = scm_strndup (scm_i_string_data (str), len);
}
else
result = scm_to_stringn (str, lenp, NULL,
- SCM_FAILED_CONVERSION_ERROR);
+ SCM_FAILED_CONVERSION_ERROR);
return result;
}
diff --git a/module/Makefile.am b/module/Makefile.am
index 0787f20..6b265b6 100644
--- a/module/Makefile.am
+++ b/module/Makefile.am
@@ -91,10 +91,12 @@ SCHEME_LANG_SOURCES =
\
TREE_IL_LANG_SOURCES = \
language/tree-il/primitives.scm \
- language/tree-il/optimize.scm \
- language/tree-il/inline.scm \
+ language/tree-il/peval.scm \
language/tree-il/fix-letrec.scm \
+ language/tree-il/optimize.scm \
+ language/tree-il/canonicalize.scm \
language/tree-il/analyze.scm \
+ language/tree-il/inline.scm \
language/tree-il/compile-glil.scm \
language/tree-il/spec.scm
diff --git a/module/ice-9/boot-9.scm b/module/ice-9/boot-9.scm
index b233a00..639a63c 100644
--- a/module/ice-9/boot-9.scm
+++ b/module/ice-9/boot-9.scm
@@ -410,6 +410,20 @@ If there is no handler at all, Guile prints an error and
then exits."
;; The binding for `macroexpand' has now been overridden, making psyntax the
;; expander now.
+(define-syntax define-syntax-rule
+ (lambda (x)
+ (syntax-case x ()
+ ((_ (name . pattern) template)
+ #'(define-syntax name
+ (syntax-rules ()
+ ((_ . pattern) template))))
+ ((_ (name . pattern) docstring template)
+ (string? (syntax->datum #'docstring))
+ #'(define-syntax name
+ (syntax-rules ()
+ docstring
+ ((_ . pattern) template)))))))
+
(define-syntax and
(syntax-rules ()
((_) #t)
@@ -504,9 +518,8 @@ If there is no handler at all, Guile prints an error and
then exits."
((do "step" x y)
y)))
-(define-syntax delay
- (syntax-rules ()
- ((_ exp) (make-promise (lambda () exp)))))
+(define-syntax-rule (delay exp)
+ (make-promise (lambda () exp)))
(include-from-path "ice-9/quasisyntax")
@@ -517,11 +530,9 @@ If there is no handler at all, Guile prints an error and
then exits."
(with-syntax ((s (datum->syntax x (syntax-source x))))
#''s)))))
-(define-syntax define-once
- (syntax-rules ()
- ((_ sym val)
- (define sym
- (if (module-locally-bound? (current-module) 'sym) sym val)))))
+(define-syntax-rule (define-once sym val)
+ (define sym
+ (if (module-locally-bound? (current-module) 'sym) sym val)))
;;; The real versions of `map' and `for-each', with cycle detection, and
;;; that use reverse! instead of recursion in the case of `map'.
@@ -853,12 +864,10 @@ VALUE."
(define (and=> value procedure) (and value (procedure value)))
(define call/cc call-with-current-continuation)
-(define-syntax false-if-exception
- (syntax-rules ()
- ((_ expr)
- (catch #t
- (lambda () expr)
- (lambda (k . args) #f)))))
+(define-syntax-rule (false-if-exception expr)
+ (catch #t
+ (lambda () expr)
+ (lambda (k . args) #f)))
@@ -877,12 +886,10 @@ VALUE."
;; properties within the object itself.
(define (make-object-property)
- (define-syntax with-mutex
- (syntax-rules ()
- ((_ lock exp)
- (dynamic-wind (lambda () (lock-mutex lock))
- (lambda () exp)
- (lambda () (unlock-mutex lock))))))
+ (define-syntax-rule (with-mutex lock exp)
+ (dynamic-wind (lambda () (lock-mutex lock))
+ (lambda () exp)
+ (lambda () (unlock-mutex lock))))
(let ((prop (make-weak-key-hash-table))
(lock (make-mutex)))
(make-procedure-with-setter
@@ -1380,10 +1387,9 @@ VALUE."
(thunk)))
(lambda (k . args)
(%start-stack tag (lambda () (apply k args)))))))
-(define-syntax start-stack
- (syntax-rules ()
- ((_ tag exp)
- (%start-stack tag (lambda () exp)))))
+
+(define-syntax-rule (start-stack tag exp)
+ (%start-stack tag (lambda () exp)))
@@ -2819,11 +2825,9 @@ module '(ice-9 q) '(make-q q-length))}."
flags)
(interface options)
(interface)))
- (define-syntax option-set!
- (syntax-rules ()
- ((_ opt val)
- (eval-when (eval load compile expand)
- (options (append (options) (list 'opt val)))))))))))
+ (define-syntax-rule (option-set! opt val)
+ (eval-when (eval load compile expand)
+ (options (append (options) (list 'opt val)))))))))
(define-option-interface
(debug-options-interface
@@ -3150,10 +3154,8 @@ module '(ice-9 q) '(make-q q-length))}."
(include-from-path "ice-9/r6rs-libraries")
-(define-syntax define-private
- (syntax-rules ()
- ((_ foo bar)
- (define foo bar))))
+(define-syntax-rule (define-private foo bar)
+ (define foo bar))
(define-syntax define-public
(syntax-rules ()
@@ -3164,18 +3166,14 @@ module '(ice-9 q) '(make-q q-length))}."
(define name val)
(export name)))))
-(define-syntax defmacro-public
- (syntax-rules ()
- ((_ name args . body)
- (begin
- (defmacro name args . body)
- (export-syntax name)))))
+(define-syntax-rule (defmacro-public name args body ...)
+ (begin
+ (defmacro name args body ...)
+ (export-syntax name)))
;; And now for the most important macro.
-(define-syntax λ
- (syntax-rules ()
- ((_ formals body ...)
- (lambda formals body ...))))
+(define-syntax-rule (λ formals body ...)
+ (lambda formals body ...))
;; Export a local variable
@@ -3234,39 +3232,29 @@ module '(ice-9 q) '(make-q q-length))}."
(module-add! public-i external-name var)))))
names)))
-(define-syntax export
- (syntax-rules ()
- ((_ name ...)
- (eval-when (eval load compile expand)
- (call-with-deferred-observers
- (lambda ()
- (module-export! (current-module) '(name ...))))))))
+(define-syntax-rule (export name ...)
+ (eval-when (eval load compile expand)
+ (call-with-deferred-observers
+ (lambda ()
+ (module-export! (current-module) '(name ...))))))
-(define-syntax re-export
- (syntax-rules ()
- ((_ name ...)
- (eval-when (eval load compile expand)
- (call-with-deferred-observers
- (lambda ()
- (module-re-export! (current-module) '(name ...))))))))
+(define-syntax-rule (re-export name ...)
+ (eval-when (eval load compile expand)
+ (call-with-deferred-observers
+ (lambda ()
+ (module-re-export! (current-module) '(name ...))))))
-(define-syntax export!
- (syntax-rules ()
- ((_ name ...)
- (eval-when (eval load compile expand)
- (call-with-deferred-observers
- (lambda ()
- (module-replace! (current-module) '(name ...))))))))
+(define-syntax-rule (export! name ...)
+ (eval-when (eval load compile expand)
+ (call-with-deferred-observers
+ (lambda ()
+ (module-replace! (current-module) '(name ...))))))
-(define-syntax export-syntax
- (syntax-rules ()
- ((_ name ...)
- (export name ...))))
+(define-syntax-rule (export-syntax name ...)
+ (export name ...))
-(define-syntax re-export-syntax
- (syntax-rules ()
- ((_ name ...)
- (re-export name ...))))
+(define-syntax-rule (re-export-syntax name ...)
+ (re-export name ...))
diff --git a/module/ice-9/command-line.scm b/module/ice-9/command-line.scm
index e94336a..8aed74e 100644
--- a/module/ice-9/command-line.scm
+++ b/module/ice-9/command-line.scm
@@ -122,8 +122,8 @@ If FILE begins with `-' the -s switch is mandatory.
-e FUNCTION after reading script, apply FUNCTION to
command line arguments
-ds do -s script at this point
- --debug start with debugging evaluator and backtraces
- --no-debug start with normal evaluator
+ --debug start with the \"debugging\" VM engine
+ --no-debug start with the normal VM engine, which also supports debugging
Default is to enable debugging for interactive
use, but not for `-s' and `-c'.
--auto-compile compile source files automatically
@@ -331,15 +331,15 @@ If FILE begins with `-' the -s switch is mandatory.
(parse
args
(cons
- (let ((where (substring arg 8)))
+ (let ((where (substring arg 9)))
(cond
((string->number where) ; --listen=PORT
=> (lambda (port)
(if (and (integer? port) (exact? port) (>= port 0))
- (error "invalid port for --listen")
`(@@ (system repl server)
(spawn-server
- (make-tcp-server-socket #:port ,port))))))
+ (make-tcp-server-socket #:port ,port)))
+ (error "invalid port for --listen"))))
((string-prefix? "/" where) ; --listen=/PATH/TO/SOCKET
`(@@ (system repl server)
(spawn-server
diff --git a/module/ice-9/compile-psyntax.scm b/module/ice-9/compile-psyntax.scm
index 86b94ac..48bab92 100644
--- a/module/ice-9/compile-psyntax.scm
+++ b/module/ice-9/compile-psyntax.scm
@@ -1,6 +1,6 @@
;;; -*- mode: scheme; coding: utf-8; -*-
;;;
-;;; Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+;;; Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc.
;;;
;;; This library is free software; you can redistribute it and/or
;;; modify it under the terms of the GNU Lesser General Public
@@ -18,6 +18,7 @@
(use-modules (language tree-il)
(language tree-il optimize)
+ (language tree-il canonicalize)
(ice-9 pretty-print))
(let ((source (list-ref (command-line) 1))
@@ -34,10 +35,11 @@
(close-port in))
(begin
(pretty-print (tree-il->scheme
- (optimize!
- (macroexpand x 'c '(compile load eval))
- (current-module)
- '()))
+ (canonicalize!
+ (optimize!
+ (macroexpand x 'c '(compile load eval))
+ (current-module)
+ '())))
out)
(newline out)
(loop (read in))))))
diff --git a/module/ice-9/control.scm b/module/ice-9/control.scm
index 908e0e9..5f25738 100644
--- a/module/ice-9/control.scm
+++ b/module/ice-9/control.scm
@@ -60,20 +60,16 @@
;; http://okmij.org/ftp/Scheme/delim-control-n.scm, which are in the
;; public domain, as noted at the top of http://okmij.org/ftp/.
;;
-(define-syntax reset
- (syntax-rules ()
- ((_ . body)
- (call-with-prompt (default-prompt-tag)
- (lambda () . body)
- (lambda (cont f) (f cont))))))
+(define-syntax-rule (reset . body)
+ (call-with-prompt (default-prompt-tag)
+ (lambda () . body)
+ (lambda (cont f) (f cont))))
-(define-syntax shift
- (syntax-rules ()
- ((_ var . body)
- (abort-to-prompt (default-prompt-tag)
- (lambda (cont)
- ((lambda (var) (reset . body))
- (lambda vals (reset (apply cont vals)))))))))
+(define-syntax-rule (shift var . body)
+ (abort-to-prompt (default-prompt-tag)
+ (lambda (cont)
+ ((lambda (var) (reset . body))
+ (lambda vals (reset (apply cont vals)))))))
(define (reset* thunk)
(reset (thunk)))
diff --git a/module/ice-9/futures.scm b/module/ice-9/futures.scm
index 012ebbf..3c4cd7d 100644
--- a/module/ice-9/futures.scm
+++ b/module/ice-9/futures.scm
@@ -173,8 +173,6 @@ touched."
;;; Syntax.
;;;
-(define-syntax future
- (syntax-rules ()
- "Return a new future for BODY."
- ((_ body)
- (make-future (lambda () body)))))
+(define-syntax-rule (future body)
+ "Return a new future for BODY."
+ (make-future (lambda () body)))
diff --git a/module/ice-9/match.scm b/module/ice-9/match.scm
index 7cedff0..0384f69 100644
--- a/module/ice-9/match.scm
+++ b/module/ice-9/match.scm
@@ -1,6 +1,6 @@
;;; -*- mode: scheme; coding: utf-8; -*-
;;;
-;;; Copyright (C) 2010 Free Software Foundation, Inc.
+;;; Copyright (C) 2010, 2011 Free Software Foundation, Inc.
;;;
;;; This library is free software; you can redistribute it and/or
;;; modify it under the terms of the GNU Lesser General Public
@@ -28,11 +28,50 @@
;; Error procedure for run-time "no matching pattern" errors.
(throw 'match-error "match" msg))
+;; Support for record matching.
+
+(define-syntax slot-ref
+ (syntax-rules ()
+ ((_ rtd rec n)
+ (struct-ref rec n))))
+
+(define-syntax slot-set!
+ (syntax-rules ()
+ ((_ rtd rec n value)
+ (struct-set! rec n value))))
+
+(define-syntax is-a?
+ (syntax-rules ()
+ ((_ rec rtd)
+ (and (struct? rec)
+ (eq? (struct-vtable rec) rtd)))))
+
;; Compared to Andrew K. Wright's `match', this one lacks `match-define',
;; `match:error-control', `match:set-error-control', `match:error',
;; `match:set-error', and all structure-related procedures. Also,
;; `match' doesn't support clauses of the form `(pat => exp)'.
;; Unmodified public domain code by Alex Shinn retrieved from
-;; <http://synthcode.com/scheme/match.scm>.
+;; the Chibi-Scheme repository, commit 833:6daa2971f3fe.
+;;
+;; Note: Make sure to update `match.test.upstream' when updating this
+;; file.
(include-from-path "ice-9/match.upstream.scm")
+
+(define-syntax match
+ (syntax-rules ()
+ ((match)
+ (match-syntax-error "missing match expression"))
+ ((match atom)
+ (match-syntax-error "no match clauses"))
+ ((match (app ...) (pat . body) ...)
+ (let ((v (app ...)))
+ (match-next v ((app ...) (set! (app ...))) (pat . body) ...)))
+ ((match #(vec ...) (pat . body) ...)
+ (let ((v #(vec ...)))
+ (match-next v (v (set! v)) (pat . body) ...)))
+ ((match atom (pat . body) ...)
+ (let ((v atom))
+ (match-next v (atom (set! atom)) (pat . body) ...)))
+ ))
+
diff --git a/module/ice-9/match.upstream.scm b/module/ice-9/match.upstream.scm
index df6b3d9..6fc01a6 100644
--- a/module/ice-9/match.upstream.scm
+++ b/module/ice-9/match.upstream.scm
@@ -1,20 +1,203 @@
;;;; match.scm -- portable hygienic pattern matcher
+;;;; -*- coding: utf-8 -*-
;;
;; This code is written by Alex Shinn and placed in the
;; Public Domain. All warranties are disclaimed.
-;; This is a full superset of the popular MATCH package by Andrew
-;; Wright, written in fully portable SYNTAX-RULES (R5RS only, breaks
-;; in R6RS SYNTAX-RULES), and thus preserving hygiene.
+;;> @example-import[(srfi 9)]
-;; This is a simple generative pattern matcher - each pattern is
-;; expanded into the required tests, calling a failure continuation if
-;; the tests fail. This makes the logic easy to follow and extend,
-;; but produces sub-optimal code in cases where you have many similar
-;; clauses due to repeating the same tests. Nonetheless a smart
-;; compiler should be able to remove the redundant tests. For
-;; MATCH-LET and DESTRUCTURING-BIND type uses there is no performance
-;; hit.
+;;> This is a full superset of the popular @hyperlink[
+;;> "http://www.cs.indiana.edu/scheme-repository/code.match.html"]{match}
+;;> package by Andrew Wright, written in fully portable @scheme{syntax-rules}
+;;> and thus preserving hygiene.
+
+;;> The most notable extensions are the ability to use @emph{non-linear}
+;;> patterns - patterns in which the same identifier occurs multiple
+;;> times, tail patterns after ellipsis, and the experimental tree patterns.
+
+;;> @subsubsection{Patterns}
+
+;;> Patterns are written to look like the printed representation of
+;;> the objects they match. The basic usage is
+
+;;> @scheme{(match expr (pat body ...) ...)}
+
+;;> where the result of @var{expr} is matched against each pattern in
+;;> turn, and the corresponding body is evaluated for the first to
+;;> succeed. Thus, a list of three elements matches a list of three
+;;> elements.
+
+;;> @example{(let ((ls (list 1 2 3))) (match ls ((1 2 3) #t)))}
+
+;;> If no patterns match an error is signalled.
+
+;;> Identifiers will match anything, and make the corresponding
+;;> binding available in the body.
+
+;;> @example{(match (list 1 2 3) ((a b c) b))}
+
+;;> If the same identifier occurs multiple times, the first instance
+;;> will match anything, but subsequent instances must match a value
+;;> which is @scheme{equal?} to the first.
+
+;;> @example{(match (list 1 2 1) ((a a b) 1) ((a b a) 2))}
+
+;;> The special identifier @scheme{_} matches anything, no matter how
+;;> many times it is used, and does not bind the result in the body.
+
+;;> @example{(match (list 1 2 1) ((_ _ b) 1) ((a b a) 2))}
+
+;;> To match a literal identifier (or list or any other literal), use
+;;> @scheme{quote}.
+
+;;> @example{(match 'a ('b 1) ('a 2))}
+
+;;> Analogous to its normal usage in scheme, @scheme{quasiquote} can
+;;> be used to quote a mostly literally matching object with selected
+;;> parts unquoted.
+
+;;> @example|{(match (list 1 2 3) (`(1 ,b ,c) (list b c)))}|
+
+;;> Often you want to match any number of a repeated pattern. Inside
+;;> a list pattern you can append @scheme{...} after an element to
+;;> match zero or more of that pattern (like a regexp Kleene star).
+
+;;> @example{(match (list 1 2) ((1 2 3 ...) #t))}
+;;> @example{(match (list 1 2 3) ((1 2 3 ...) #t))}
+;;> @example{(match (list 1 2 3 3 3) ((1 2 3 ...) #t))}
+
+;;> Pattern variables matched inside the repeated pattern are bound to
+;;> a list of each matching instance in the body.
+
+;;> @example{(match (list 1 2) ((a b c ...) c))}
+;;> @example{(match (list 1 2 3) ((a b c ...) c))}
+;;> @example{(match (list 1 2 3 4 5) ((a b c ...) c))}
+
+;;> More than one @scheme{...} may not be used in the same list, since
+;;> this would require exponential backtracking in the general case.
+;;> However, @scheme{...} need not be the final element in the list,
+;;> and may be succeeded by a fixed number of patterns.
+
+;;> @example{(match (list 1 2 3 4) ((a b c ... d e) c))}
+;;> @example{(match (list 1 2 3 4 5) ((a b c ... d e) c))}
+;;> @example{(match (list 1 2 3 4 5 6 7) ((a b c ... d e) c))}
+
+;;> @scheme{___} is provided as an alias for @scheme{...} when it is
+;;> inconvenient to use the ellipsis (as in a syntax-rules template).
+
+;;> The @scheme{..1} syntax is exactly like the @scheme{...} except
+;;> that it matches one or more repetitions (like a regexp "+").
+
+;;> @example{(match (list 1 2) ((a b c ..1) c))}
+;;> @example{(match (list 1 2 3) ((a b c ..1) c))}
+
+;;> The boolean operators @scheme{and}, @scheme{or} and @scheme{not}
+;;> can be used to group and negate patterns analogously to their
+;;> Scheme counterparts.
+
+;;> The @scheme{and} operator ensures that all subpatterns match.
+;;> This operator is often used with the idiom @scheme{(and x pat)} to
+;;> bind @var{x} to the entire value that matches @var{pat}
+;;> (c.f. "as-patterns" in ML or Haskell). Another common use is in
+;;> conjunction with @scheme{not} patterns to match a general case
+;;> with certain exceptions.
+
+;;> @example{(match 1 ((and) #t))}
+;;> @example{(match 1 ((and x) x))}
+;;> @example{(match 1 ((and x 1) x))}
+
+;;> The @scheme{or} operator ensures that at least one subpattern
+;;> matches. If the same identifier occurs in different subpatterns,
+;;> it is matched independently. All identifiers from all subpatterns
+;;> are bound if the @scheme{or} operator matches, but the binding is
+;;> only defined for identifiers from the subpattern which matched.
+
+;;> @example{(match 1 ((or) #t) (else #f))}
+;;> @example{(match 1 ((or x) x))}
+;;> @example{(match 1 ((or x 2) x))}
+
+;;> The @scheme{not} operator succeeds if the given pattern doesn't
+;;> match. None of the identifiers used are available in the body.
+
+;;> @example{(match 1 ((not 2) #t))}
+
+;;> The more general operator @scheme{?} can be used to provide a
+;;> predicate. The usage is @scheme{(? predicate pat ...)} where
+;;> @var{predicate} is a Scheme expression evaluating to a predicate
+;;> called on the value to match, and any optional patterns after the
+;;> predicate are then matched as in an @scheme{and} pattern.
+
+;;> @example{(match 1 ((? odd? x) x))}
+
+;;> The field operator @scheme{=} is used to extract an arbitrary
+;;> field and match against it. It is useful for more complex or
+;;> conditional destructuring that can't be more directly expressed in
+;;> the pattern syntax. The usage is @scheme{(= field pat)}, where
+;;> @var{field} can be any expression, and should result in a
+;;> procedure of one argument, which is applied to the value to match
+;;> to generate a new value to match against @var{pat}.
+
+;;> Thus the pattern @scheme{(and (= car x) (= cdr y))} is equivalent
+;;> to @scheme{(x . y)}, except it will result in an immediate error
+;;> if the value isn't a pair.
+
+;;> @example{(match '(1 . 2) ((= car x) x))}
+;;> @example{(match 4 ((= sqrt x) x))}
+
+;;> The record operator @scheme{$} is used as a concise way to match
+;;> records defined by SRFI-9 (or SRFI-99). The usage is
+;;> @scheme{($ rtd field ...)}, where @var{rtd} should be the record
+;;> type descriptor specified as the first argument to
+;;> @scheme{define-record-type}, and each @var{field} is a subpattern
+;;> matched against the fields of the record in order. Not all fields
+;;> must be present.
+
+;;> @example{
+;;> (let ()
+;;> (define-record-type employee
+;;> (make-employee name title)
+;;> employee?
+;;> (name get-name)
+;;> (title get-title))
+;;> (match (make-employee "Bob" "Doctor")
+;;> (($ employee n t) (list t n))))
+;;> }
+
+;;> The @scheme{set!} and @scheme{get!} operators are used to bind an
+;;> identifier to the setter and getter of a field, respectively. The
+;;> setter is a procedure of one argument, which mutates the field to
+;;> that argument. The getter is a procedure of no arguments which
+;;> returns the current value of the field.
+
+;;> @example{(let ((x (cons 1 2))) (match x ((1 . (set! s)) (s 3) x)))}
+;;> @example{(match '(1 . 2) ((1 . (get! g)) (g)))}
+
+;;> The new operator @scheme{***} can be used to search a tree for
+;;> subpatterns. A pattern of the form @scheme{(x *** y)} represents
+;;> the subpattern @var{y} located somewhere in a tree where the path
+;;> from the current object to @var{y} can be seen as a list of the
+;;> form @scheme{(x ...)}. @var{y} can immediately match the current
+;;> object in which case the path is the empty list. In a sense it's
+;;> a 2-dimensional version of the @scheme{...} pattern.
+
+;;> As a common case the pattern @scheme{(_ *** y)} can be used to
+;;> search for @var{y} anywhere in a tree, regardless of the path
+;;> used.
+
+;;> @example{(match '(a (a (a b))) ((x *** 'b) x))}
+;;> @example{(match '(a (b) (c (d e) (f g))) ((x *** 'g) x))}
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Notes
+
+;; The implementation is a simple generative pattern matcher - each
+;; pattern is expanded into the required tests, calling a failure
+;; continuation if the tests fail. This makes the logic easy to
+;; follow and extend, but produces sub-optimal code in cases where you
+;; have many similar clauses due to repeating the same tests.
+;; Nonetheless a smart compiler should be able to remove the redundant
+;; tests. For MATCH-LET and DESTRUCTURING-BIND type uses there is no
+;; performance hit.
;; The original version was written on 2006/11/29 and described in the
;; following Usenet post:
@@ -28,6 +211,9 @@
;; performance can be found at
;; http://synthcode.com/scheme/match-cond-expand.scm
;;
+;; 2011/01/27 - fixing bug when matching tail patterns against improper lists
+;; 2010/09/26 - adding `..1' patterns (thanks to Ludovic Courtès)
+;; 2010/09/07 - fixing identifier extraction in some `...' and `***' patterns
;; 2009/11/25 - adding `***' tree search patterns
;; 2008/03/20 - fixing bug where (a ...) matched non-lists
;; 2008/03/15 - removing redundant check in vector patterns
@@ -49,6 +235,21 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;> @subsubsection{Syntax}
+
+;;> @address@hidden(match expr (pattern . body) ...)@br{}
+;;> (match expr (pattern (=> failure) . body) ...)}}
+
+;;> The result of @var{expr} is matched against each @var{pattern} in
+;;> turn, according to the pattern rules described in the previous
+;;> section, until the the first @var{pattern} matches. When a match is
+;;> found, the corresponding @var{body}s are evaluated in order,
+;;> and the result of the last expression is returned as the result
+;;> of the entire @scheme{match}. If a @var{failure} is provided,
+;;> then it is bound to a procedure of no arguments which continues,
+;;> processing at the next @var{pattern}. If no @var{pattern} matches,
+;;> an error is signalled.
+
;; The basic interface. MATCH just performs some basic syntax
;; validation, binds the match expression to a temporary variable `v',
;; and passes it on to MATCH-NEXT. It's a constant throughout the
@@ -165,6 +366,10 @@
(if (pair? v)
(match-one v (p ___) g+s sk fk i)
fk))
+ ((match-two v ($ rec p ...) g+s sk fk i)
+ (if (is-a? v rec)
+ (match-record-refs v rec 0 (p ...) g+s sk fk i)
+ fk))
((match-two v (p . q) g+s sk fk i)
(if (pair? v)
(let ((w (car v)) (x (cdr v)))
@@ -240,6 +445,11 @@
(syntax-rules ()
((_ expr ids ...) expr)))
+(define-syntax match-tuck-ids
+ (syntax-rules ()
+ ((_ (letish args (expr ...)) ids ...)
+ (letish args (expr ... ids ...)))))
+
(define-syntax match-drop-first-arg
(syntax-rules ()
((_ arg expr) expr)))
@@ -309,14 +519,14 @@
r
(let* ((tail-len (length 'r))
(ls v)
- (len (length ls)))
- (if (< len tail-len)
+ (len (and (list? ls) (length ls))))
+ (if (or (not len) (< len tail-len))
fk
(let loop ((ls ls) (n len) (id-ls '()) ...)
(cond
((= n tail-len)
(let ((id (reverse id-ls)) ...)
- (match-one ls r (#f #f) (sk ... i) fk i)))
+ (match-one ls r (#f #f) (sk ...) fk i)))
((pair? ls)
(let ((w (car ls)))
(match-one w p ((car ls) (set-car! ls))
@@ -349,21 +559,7 @@
((_ x sk)
(match-syntax-error "dotted tail not allowed after ellipse" x))))
-;; Matching a tree search pattern is only slightly more complicated.
-;; Here we allow patterns of the form
-;;
-;; (x *** y)
-;;
-;; to represent the pattern y located somewhere in a tree where the
-;; path from the current object to y can be seen as a list of the form
-;; (X ...). Y can immediately match the current object in which case
-;; the path is the empty list. In a sense it's a 2-dimensional
-;; version of the ... pattern.
-;;
-;; As a common case the pattern (_ *** y) can be used to search for Y
-;; anywhere in a tree, regardless of the path used.
-;;
-;; To implement the search, we use two recursive procedures. TRY
+;; To implement the tree search, we use two recursive procedures. TRY
;; attempts to match Y once, and on success it calls the normal SK on
;; the accumulated list ids as in MATCH-GEN-ELLIPSES. On failure, we
;; call NEXT which first checks if the current value is a list
@@ -380,7 +576,7 @@
((match-gen-search v p q g+s sk fk i ((id id-ls) ...))
(letrec ((try (lambda (w fail id-ls ...)
(match-one w q g+s
- (match-drop-ids
+ (match-tuck-ids
(let ((id (reverse id-ls)) ...)
sk))
(next w fail id-ls ...) i)))
@@ -475,6 +671,15 @@
(match-drop-ids (loop (+ j 1) (cons id id-ls) ...))
fk i)))))))
+(define-syntax match-record-refs
+ (syntax-rules ()
+ ((_ v rec n (p . q) g+s sk fk i)
+ (let ((w (slot-ref rec v n)))
+ (match-one w p ((slot-ref rec v n) (slot-set! rec v n))
+ (match-record-refs v rec (+ n 1) q g+s sk fk) fk i)))
+ ((_ v rec n () g+s (sk ...) fk i)
+ (sk ... i))))
+
;; Extract all identifiers in a pattern. A little more complicated
;; than just looking for symbols, we need to ignore special keywords
;; and non-pattern forms (such as the predicate expression in ?
@@ -518,8 +723,8 @@
(match-extract-vars (p ...) . x))
((match-extract-vars _ (k ...) i v) (k ... v))
((match-extract-vars ___ (k ...) i v) (k ... v))
- ((match-extract-vars ..1 (k ...) i v) (k ... v))
((match-extract-vars *** (k ...) i v) (k ... v))
+ ((match-extract-vars ..1 (k ...) i v) (k ... v))
;; This is the main part, the only place where we might add a new
;; var if it's an unbound symbol.
((match-extract-vars p (k ...) (i ...) v)
@@ -527,7 +732,7 @@
((new-sym?
(syntax-rules (i ...)
((new-sym? p sk fk) sk)
- ((new-sym? x sk fk) fk))))
+ ((new-sym? any sk fk) fk))))
(new-sym? random-sym-to-match
(k ... ((p p-ls) . v))
(k ... v))))
@@ -572,24 +777,42 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Gimme some sugar baby.
+;;> Shortcut for @scheme{lambda} + @scheme{match}. Creates a
+;;> procedure of one argument, and matches that argument against each
+;;> clause.
+
(define-syntax match-lambda
(syntax-rules ()
- ((_ clause ...) (lambda (expr) (match expr clause ...)))))
+ ((_ (pattern . body) ...) (lambda (expr) (match expr (pattern . body)
...)))))
+
+;;> Similar to @scheme{match-lambda}. Creates a procedure of any
+;;> number of arguments, and matches the argument list against each
+;;> clause.
(define-syntax match-lambda*
(syntax-rules ()
- ((_ clause ...) (lambda expr (match expr clause ...)))))
+ ((_ (pattern . body) ...) (lambda expr (match expr (pattern . body)
...)))))
+
+;;> Matches each var to the corresponding expression, and evaluates
+;;> the body with all match variables in scope. Raises an error if
+;;> any of the expressions fail to match. Syntax analogous to named
+;;> let can also be used for recursive functions which match on their
+;;> arguments as in @scheme{match-lambda*}.
(define-syntax match-let
(syntax-rules ()
- ((_ (vars ...) . body)
- (match-let/helper let () () (vars ...) . body))
- ((_ loop . rest)
- (match-named-let loop () . rest))))
+ ((_ ((var value) ...) . body)
+ (match-let/helper let () () ((var value) ...) . body))
+ ((_ loop ((var init) ...) . body)
+ (match-named-let loop ((var init) ...) . body))))
+
+;;> Similar to @scheme{match-let}, but analogously to @scheme{letrec}
+;;> matches and binds the variables with all match variables in scope.
(define-syntax match-letrec
(syntax-rules ()
- ((_ vars . body) (match-let/helper letrec () () vars . body))))
+ ((_ ((var value) ...) . body)
+ (match-let/helper letrec () () ((var value) ...) . body))))
(define-syntax match-let/helper
(syntax-rules ()
@@ -617,6 +840,12 @@
((_ loop (v ...) ((pat expr) . rest) . body)
(match-named-let loop (v ... (pat expr tmp)) rest . body))))
+;;> @address@hidden(match-let* ((var value) ...) body ...)}}
+
+;;> Similar to @scheme{match-let}, but analogously to @scheme{let*}
+;;> matches and binds the variables in sequence, with preceding match
+;;> variables in scope.
+
(define-syntax match-let*
(syntax-rules ()
((_ () . body)
diff --git a/module/ice-9/optargs.scm b/module/ice-9/optargs.scm
index 50a8299..dc4ec95 100644
--- a/module/ice-9/optargs.scm
+++ b/module/ice-9/optargs.scm
@@ -1,6 +1,6 @@
;;;; optargs.scm -- support for optional arguments
;;;;
-;;;; Copyright (C) 1997, 1998, 1999, 2001, 2002, 2004, 2006, 2009, 2010 Free
Software Foundation, Inc.
+;;;; Copyright (C) 1997, 1998, 1999, 2001, 2002, 2004, 2006, 2009, 2010,
2011 Free Software Foundation, Inc.
;;;;
;;;; This library is free software; you can redistribute it and/or
;;;; modify it under the terms of the GNU Lesser General Public
@@ -278,12 +278,10 @@
#'(define-macro id doc (lambda* args b0 b1 ...)))
((_ id args b0 b1 ...)
#'(define-macro id #f (lambda* args b0 b1 ...))))))
-(define-syntax defmacro*-public
- (syntax-rules ()
- ((_ id args b0 b1 ...)
- (begin
- (defmacro* id args b0 b1 ...)
- (export-syntax id)))))
+(define-syntax-rule (defmacro*-public id args b0 b1 ...)
+ (begin
+ (defmacro* id args b0 b1 ...)
+ (export-syntax id)))
;;; Support for optional & keyword args with the interpreter.
(define *uninitialized* (list 'uninitialized))
diff --git a/module/ice-9/poll.scm b/module/ice-9/poll.scm
index 26b264b..cf61294 100644
--- a/module/ice-9/poll.scm
+++ b/module/ice-9/poll.scm
@@ -1,6 +1,6 @@
;; poll
-;;;; Copyright (C) 2010 Free Software Foundation, Inc.
+;;;; Copyright (C) 2010, 2011 Free Software Foundation, Inc.
;;;;
;;;; This library is free software; you can redistribute it and/or
;;;; modify it under the terms of the GNU Lesser General Public
@@ -68,9 +68,8 @@
(ports pset-ports set-pset-ports!)
)
-(define-syntax pollfd-offset
- (syntax-rules ()
- ((_ n) (* n 8))))
+(define-syntax-rule (pollfd-offset n)
+ (* n 8))
(define* (make-empty-poll-set #:optional (pre-allocated 4))
(make-poll-set (make-bytevector (pollfd-offset pre-allocated) 0)
diff --git a/module/ice-9/psyntax-pp.scm b/module/ice-9/psyntax-pp.scm
index 40734cf..db6fc8a 100644
--- a/module/ice-9/psyntax-pp.scm
+++ b/module/ice-9/psyntax-pp.scm
@@ -2,14098 +2,16857 @@
(if #f #f)
(letrec*
- ((#{make-void 203}#
- (lambda (#{src 765}#)
+ ((#{make-void 208}#
+ (lambda (#{src 783}#)
(make-struct/no-tail
(vector-ref %expanded-vtables 0)
- #{src 765}#)))
- (#{make-const 205}#
- (lambda (#{src 767}# #{exp 768}#)
+ #{src 783}#)))
+ (#{make-const 210}#
+ (lambda (#{src 785}# #{exp 786}#)
(make-struct/no-tail
(vector-ref %expanded-vtables 1)
- #{src 767}#
- #{exp 768}#)))
- (#{make-primitive-ref 207}#
- (lambda (#{src 771}# #{name 772}#)
- (make-struct/no-tail
- (vector-ref %expanded-vtables 2)
- #{src 771}#
- #{name 772}#)))
- (#{make-lexical-ref 209}#
- (lambda (#{src 775}# #{name 776}# #{gensym 777}#)
+ #{src 785}#
+ #{exp 786}#)))
+ (#{make-lexical-ref 214}#
+ (lambda (#{src 793}# #{name 794}# #{gensym 795}#)
(make-struct/no-tail
(vector-ref %expanded-vtables 3)
- #{src 775}#
- #{name 776}#
- #{gensym 777}#)))
- (#{make-lexical-set 211}#
- (lambda (#{src 781}#
- #{name 782}#
- #{gensym 783}#
- #{exp 784}#)
+ #{src 793}#
+ #{name 794}#
+ #{gensym 795}#)))
+ (#{make-lexical-set 216}#
+ (lambda (#{src 799}#
+ #{name 800}#
+ #{gensym 801}#
+ #{exp 802}#)
(make-struct/no-tail
(vector-ref %expanded-vtables 4)
- #{src 781}#
- #{name 782}#
- #{gensym 783}#
- #{exp 784}#)))
- (#{make-module-ref 213}#
- (lambda (#{src 789}#
- #{mod 790}#
- #{name 791}#
- #{public? 792}#)
+ #{src 799}#
+ #{name 800}#
+ #{gensym 801}#
+ #{exp 802}#)))
+ (#{make-module-ref 218}#
+ (lambda (#{src 807}#
+ #{mod 808}#
+ #{name 809}#
+ #{public? 810}#)
(make-struct/no-tail
(vector-ref %expanded-vtables 5)
- #{src 789}#
- #{mod 790}#
- #{name 791}#
- #{public? 792}#)))
- (#{make-module-set 215}#
- (lambda (#{src 797}#
- #{mod 798}#
- #{name 799}#
- #{public? 800}#
- #{exp 801}#)
+ #{src 807}#
+ #{mod 808}#
+ #{name 809}#
+ #{public? 810}#)))
+ (#{make-module-set 220}#
+ (lambda (#{src 815}#
+ #{mod 816}#
+ #{name 817}#
+ #{public? 818}#
+ #{exp 819}#)
(make-struct/no-tail
(vector-ref %expanded-vtables 6)
- #{src 797}#
- #{mod 798}#
- #{name 799}#
- #{public? 800}#
- #{exp 801}#)))
- (#{make-toplevel-ref 217}#
- (lambda (#{src 807}# #{name 808}#)
+ #{src 815}#
+ #{mod 816}#
+ #{name 817}#
+ #{public? 818}#
+ #{exp 819}#)))
+ (#{make-toplevel-ref 222}#
+ (lambda (#{src 825}# #{name 826}#)
(make-struct/no-tail
(vector-ref %expanded-vtables 7)
- #{src 807}#
- #{name 808}#)))
- (#{make-toplevel-set 219}#
- (lambda (#{src 811}# #{name 812}# #{exp 813}#)
+ #{src 825}#
+ #{name 826}#)))
+ (#{make-toplevel-set 224}#
+ (lambda (#{src 829}# #{name 830}# #{exp 831}#)
(make-struct/no-tail
(vector-ref %expanded-vtables 8)
- #{src 811}#
- #{name 812}#
- #{exp 813}#)))
- (#{make-toplevel-define 221}#
- (lambda (#{src 817}# #{name 818}# #{exp 819}#)
+ #{src 829}#
+ #{name 830}#
+ #{exp 831}#)))
+ (#{make-toplevel-define 226}#
+ (lambda (#{src 835}# #{name 836}# #{exp 837}#)
(make-struct/no-tail
(vector-ref %expanded-vtables 9)
- #{src 817}#
- #{name 818}#
- #{exp 819}#)))
- (#{make-conditional 223}#
- (lambda (#{src 823}#
- #{test 824}#
- #{consequent 825}#
- #{alternate 826}#)
+ #{src 835}#
+ #{name 836}#
+ #{exp 837}#)))
+ (#{make-conditional 228}#
+ (lambda (#{src 841}#
+ #{test 842}#
+ #{consequent 843}#
+ #{alternate 844}#)
(make-struct/no-tail
(vector-ref %expanded-vtables 10)
- #{src 823}#
- #{test 824}#
- #{consequent 825}#
- #{alternate 826}#)))
- (#{make-call 225}#
- (lambda (#{src 831}# #{proc 832}# #{args 833}#)
+ #{src 841}#
+ #{test 842}#
+ #{consequent 843}#
+ #{alternate 844}#)))
+ (#{make-call 230}#
+ (lambda (#{src 849}# #{proc 850}# #{args 851}#)
(make-struct/no-tail
(vector-ref %expanded-vtables 11)
- #{src 831}#
- #{proc 832}#
- #{args 833}#)))
- (#{make-primcall 227}#
- (lambda (#{src 837}# #{name 838}# #{args 839}#)
+ #{src 849}#
+ #{proc 850}#
+ #{args 851}#)))
+ (#{make-primcall 232}#
+ (lambda (#{src 855}# #{name 856}# #{args 857}#)
(make-struct/no-tail
(vector-ref %expanded-vtables 12)
- #{src 837}#
- #{name 838}#
- #{args 839}#)))
- (#{make-seq 229}#
- (lambda (#{src 843}# #{head 844}# #{tail 845}#)
+ #{src 855}#
+ #{name 856}#
+ #{args 857}#)))
+ (#{make-seq 234}#
+ (lambda (#{src 861}# #{head 862}# #{tail 863}#)
(make-struct/no-tail
(vector-ref %expanded-vtables 13)
- #{src 843}#
- #{head 844}#
- #{tail 845}#)))
- (#{make-lambda 231}#
- (lambda (#{src 849}# #{meta 850}# #{body 851}#)
+ #{src 861}#
+ #{head 862}#
+ #{tail 863}#)))
+ (#{make-lambda 236}#
+ (lambda (#{src 867}# #{meta 868}# #{body 869}#)
(make-struct/no-tail
(vector-ref %expanded-vtables 14)
- #{src 849}#
- #{meta 850}#
- #{body 851}#)))
- (#{make-lambda-case 233}#
- (lambda (#{src 855}#
- #{req 856}#
- #{opt 857}#
- #{rest 858}#
- #{kw 859}#
- #{inits 860}#
- #{gensyms 861}#
- #{body 862}#
- #{alternate 863}#)
+ #{src 867}#
+ #{meta 868}#
+ #{body 869}#)))
+ (#{make-lambda-case 238}#
+ (lambda (#{src 873}#
+ #{req 874}#
+ #{opt 875}#
+ #{rest 876}#
+ #{kw 877}#
+ #{inits 878}#
+ #{gensyms 879}#
+ #{body 880}#
+ #{alternate 881}#)
(make-struct/no-tail
(vector-ref %expanded-vtables 15)
- #{src 855}#
- #{req 856}#
- #{opt 857}#
- #{rest 858}#
- #{kw 859}#
- #{inits 860}#
- #{gensyms 861}#
- #{body 862}#
- #{alternate 863}#)))
- (#{make-let 235}#
- (lambda (#{src 873}#
- #{names 874}#
- #{gensyms 875}#
- #{vals 876}#
- #{body 877}#)
+ #{src 873}#
+ #{req 874}#
+ #{opt 875}#
+ #{rest 876}#
+ #{kw 877}#
+ #{inits 878}#
+ #{gensyms 879}#
+ #{body 880}#
+ #{alternate 881}#)))
+ (#{make-let 240}#
+ (lambda (#{src 891}#
+ #{names 892}#
+ #{gensyms 893}#
+ #{vals 894}#
+ #{body 895}#)
(make-struct/no-tail
(vector-ref %expanded-vtables 16)
- #{src 873}#
- #{names 874}#
- #{gensyms 875}#
- #{vals 876}#
- #{body 877}#)))
- (#{make-letrec 237}#
- (lambda (#{src 883}#
- #{in-order? 884}#
- #{names 885}#
- #{gensyms 886}#
- #{vals 887}#
- #{body 888}#)
+ #{src 891}#
+ #{names 892}#
+ #{gensyms 893}#
+ #{vals 894}#
+ #{body 895}#)))
+ (#{make-letrec 242}#
+ (lambda (#{src 901}#
+ #{in-order? 902}#
+ #{names 903}#
+ #{gensyms 904}#
+ #{vals 905}#
+ #{body 906}#)
(make-struct/no-tail
(vector-ref %expanded-vtables 17)
- #{src 883}#
- #{in-order? 884}#
- #{names 885}#
- #{gensyms 886}#
- #{vals 887}#
- #{body 888}#)))
- (#{make-dynlet 239}#
- (lambda (#{src 895}#
- #{fluids 896}#
- #{vals 897}#
- #{body 898}#)
+ #{src 901}#
+ #{in-order? 902}#
+ #{names 903}#
+ #{gensyms 904}#
+ #{vals 905}#
+ #{body 906}#)))
+ (#{make-dynlet 244}#
+ (lambda (#{src 913}#
+ #{fluids 914}#
+ #{vals 915}#
+ #{body 916}#)
(make-struct/no-tail
(vector-ref %expanded-vtables 18)
- #{src 895}#
- #{fluids 896}#
- #{vals 897}#
- #{body 898}#)))
- (#{lambda? 242}#
- (lambda (#{x 903}#)
- (if (struct? #{x 903}#)
- (eq? (struct-vtable #{x 903}#)
+ #{src 913}#
+ #{fluids 914}#
+ #{vals 915}#
+ #{body 916}#)))
+ (#{lambda? 247}#
+ (lambda (#{x 921}#)
+ (if (struct? #{x 921}#)
+ (eq? (struct-vtable #{x 921}#)
(vector-ref %expanded-vtables 14))
#f)))
- (#{lambda-meta 244}#
- (lambda (#{x 907}#) (struct-ref #{x 907}# 1)))
- (#{set-lambda-meta! 246}#
- (lambda (#{x 909}# #{v 910}#)
- (struct-set! #{x 909}# 1 #{v 910}#)))
- (#{top-level-eval-hook 252}#
- (lambda (#{x 913}# #{mod 914}#)
- (primitive-eval #{x 913}#)))
- (#{local-eval-hook 254}#
- (lambda (#{x 917}# #{mod 918}#)
- (primitive-eval #{x 917}#)))
- (#{put-global-definition-hook 257}#
- (lambda (#{symbol 921}# #{type 922}# #{val 923}#)
+ (#{lambda-meta 249}#
+ (lambda (#{x 925}#) (struct-ref #{x 925}# 1)))
+ (#{set-lambda-meta! 251}#
+ (lambda (#{x 927}# #{v 928}#)
+ (struct-set! #{x 927}# 1 #{v 928}#)))
+ (#{top-level-eval-hook 257}#
+ (lambda (#{x 931}# #{mod 932}#)
+ (primitive-eval #{x 931}#)))
+ (#{local-eval-hook 259}#
+ (lambda (#{x 935}# #{mod 936}#)
+ (primitive-eval #{x 935}#)))
+ (#{put-global-definition-hook 263}#
+ (lambda (#{symbol 939}# #{type 940}# #{val 941}#)
(module-define!
(current-module)
- #{symbol 921}#
+ #{symbol 939}#
(make-syntax-transformer
- #{symbol 921}#
- #{type 922}#
- #{val 923}#))))
- (#{get-global-definition-hook 259}#
- (lambda (#{symbol 927}# #{module 928}#)
+ #{symbol 939}#
+ #{type 940}#
+ #{val 941}#))))
+ (#{get-global-definition-hook 265}#
+ (lambda (#{symbol 945}# #{module 946}#)
(begin
- (if (if (not #{module 928}#) (current-module) #f)
+ (if (if (not #{module 946}#) (current-module) #f)
(warn "module system is booted, we should have a module"
- #{symbol 927}#))
- (let ((#{v 934}# (module-variable
- (if #{module 928}#
- (resolve-module (cdr #{module 928}#))
+ #{symbol 945}#))
+ (let ((#{v 952}# (module-variable
+ (if #{module 946}#
+ (resolve-module (cdr #{module 946}#))
(current-module))
- #{symbol 927}#)))
- (if #{v 934}#
- (if (variable-bound? #{v 934}#)
- (let ((#{val 939}# (variable-ref #{v 934}#)))
- (if (macro? #{val 939}#)
- (if (macro-type #{val 939}#)
- (cons (macro-type #{val 939}#)
- (macro-binding #{val 939}#))
+ #{symbol 945}#)))
+ (if #{v 952}#
+ (if (variable-bound? #{v 952}#)
+ (let ((#{val 957}# (variable-ref #{v 952}#)))
+ (if (macro? #{val 957}#)
+ (if (macro-type #{val 957}#)
+ (cons (macro-type #{val 957}#)
+ (macro-binding #{val 957}#))
#f)
#f))
#f)
#f)))))
- (#{decorate-source 261}#
- (lambda (#{e 943}# #{s 944}#)
- (begin
- (if (if (pair? #{e 943}#) #{s 944}# #f)
- (set-source-properties! #{e 943}# #{s 944}#))
- #{e 943}#)))
- (#{maybe-name-value! 263}#
- (lambda (#{name 949}# #{val 950}#)
- (if (#{lambda? 242}# #{val 950}#)
- (let ((#{meta 954}# (#{lambda-meta 244}# #{val 950}#)))
- (if (not (assq 'name #{meta 954}#))
- (#{set-lambda-meta! 246}#
- #{val 950}#
- (cons (cons 'name #{name 949}#) #{meta 954}#)))))))
- (#{build-void 265}#
- (lambda (#{source 955}#)
- (#{make-void 203}# #{source 955}#)))
- (#{build-call 267}#
- (lambda (#{source 957}# #{fun-exp 958}# #{arg-exps 959}#)
- (#{make-call 225}#
- #{source 957}#
- #{fun-exp 958}#
- #{arg-exps 959}#)))
- (#{build-conditional 269}#
- (lambda (#{source 963}#
- #{test-exp 964}#
- #{then-exp 965}#
- #{else-exp 966}#)
- (#{make-conditional 223}#
- #{source 963}#
- #{test-exp 964}#
- #{then-exp 965}#
- #{else-exp 966}#)))
- (#{build-dynlet 271}#
- (lambda (#{source 971}#
- #{fluids 972}#
- #{vals 973}#
- #{body 974}#)
- (#{make-dynlet 239}#
- #{source 971}#
- #{fluids 972}#
- #{vals 973}#
- #{body 974}#)))
- (#{build-lexical-reference 273}#
- (lambda (#{type 979}#
- #{source 980}#
- #{name 981}#
- #{var 982}#)
- (#{make-lexical-ref 209}#
- #{source 980}#
- #{name 981}#
- #{var 982}#)))
- (#{build-lexical-assignment 275}#
- (lambda (#{source 987}#
- #{name 988}#
- #{var 989}#
- #{exp 990}#)
+ (#{decorate-source 267}#
+ (lambda (#{e 961}# #{s 962}#)
(begin
- (#{maybe-name-value! 263}#
- #{name 988}#
- #{exp 990}#)
- (#{make-lexical-set 211}#
- #{source 987}#
- #{name 988}#
- #{var 989}#
- #{exp 990}#))))
- (#{analyze-variable 277}#
- (lambda (#{mod 995}#
- #{var 996}#
- #{modref-cont 997}#
- #{bare-cont 998}#)
- (if (not #{mod 995}#)
- (#{bare-cont 998}# #{var 996}#)
- (let ((#{kind 1005}# (car #{mod 995}#))
- (#{mod 1006}# (cdr #{mod 995}#)))
- (if (memv #{kind 1005}# '(public))
- (#{modref-cont 997}# #{mod 1006}# #{var 996}# #t)
- (if (memv #{kind 1005}# '(private))
+ (if (if (pair? #{e 961}#) #{s 962}# #f)
+ (set-source-properties! #{e 961}# #{s 962}#))
+ #{e 961}#)))
+ (#{maybe-name-value! 269}#
+ (lambda (#{name 967}# #{val 968}#)
+ (if (#{lambda? 247}# #{val 968}#)
+ (let ((#{meta 972}# (#{lambda-meta 249}# #{val 968}#)))
+ (if (not (assq 'name #{meta 972}#))
+ (#{set-lambda-meta! 251}#
+ #{val 968}#
+ (cons (cons 'name #{name 967}#) #{meta 972}#)))))))
+ (#{build-void 271}#
+ (lambda (#{source 973}#)
+ (#{make-void 208}# #{source 973}#)))
+ (#{build-call 273}#
+ (lambda (#{source 975}# #{fun-exp 976}# #{arg-exps 977}#)
+ (#{make-call 230}#
+ #{source 975}#
+ #{fun-exp 976}#
+ #{arg-exps 977}#)))
+ (#{build-conditional 275}#
+ (lambda (#{source 981}#
+ #{test-exp 982}#
+ #{then-exp 983}#
+ #{else-exp 984}#)
+ (#{make-conditional 228}#
+ #{source 981}#
+ #{test-exp 982}#
+ #{then-exp 983}#
+ #{else-exp 984}#)))
+ (#{build-lexical-reference 279}#
+ (lambda (#{type 997}#
+ #{source 998}#
+ #{name 999}#
+ #{var 1000}#)
+ (#{make-lexical-ref 214}#
+ #{source 998}#
+ #{name 999}#
+ #{var 1000}#)))
+ (#{analyze-variable 283}#
+ (lambda (#{mod 1013}#
+ #{var 1014}#
+ #{modref-cont 1015}#
+ #{bare-cont 1016}#)
+ (if (not #{mod 1013}#)
+ (#{bare-cont 1016}# #{var 1014}#)
+ (let ((#{kind 1023}# (car #{mod 1013}#))
+ (#{mod 1024}# (cdr #{mod 1013}#)))
+ (if (memv #{kind 1023}# '(public))
+ (#{modref-cont 1015}#
+ #{mod 1024}#
+ #{var 1014}#
+ #t)
+ (if (memv #{kind 1023}# '(private))
(if (not (equal?
- #{mod 1006}#
+ #{mod 1024}#
(module-name (current-module))))
- (#{modref-cont 997}# #{mod 1006}# #{var 996}# #f)
- (#{bare-cont 998}# #{var 996}#))
- (if (memv #{kind 1005}# '(bare))
- (#{bare-cont 998}# #{var 996}#)
- (if (memv #{kind 1005}# '(hygiene))
+ (#{modref-cont 1015}#
+ #{mod 1024}#
+ #{var 1014}#
+ #f)
+ (#{bare-cont 1016}# #{var 1014}#))
+ (if (memv #{kind 1023}# '(bare))
+ (#{bare-cont 1016}# #{var 1014}#)
+ (if (memv #{kind 1023}# '(hygiene))
(if (if (not (equal?
- #{mod 1006}#
+ #{mod 1024}#
(module-name (current-module))))
(module-variable
- (resolve-module #{mod 1006}#)
- #{var 996}#)
+ (resolve-module #{mod 1024}#)
+ #{var 1014}#)
#f)
- (#{modref-cont 997}# #{mod 1006}# #{var 996}# #f)
- (#{bare-cont 998}# #{var 996}#))
+ (#{modref-cont 1015}#
+ #{mod 1024}#
+ #{var 1014}#
+ #f)
+ (#{bare-cont 1016}# #{var 1014}#))
(syntax-violation
#f
"bad module kind"
- #{var 996}#
- #{mod 1006}#)))))))))
- (#{build-global-reference 279}#
- (lambda (#{source 1014}# #{var 1015}# #{mod 1016}#)
- (#{analyze-variable 277}#
- #{mod 1016}#
- #{var 1015}#
- (lambda (#{mod 1020}# #{var 1021}# #{public? 1022}#)
- (#{make-module-ref 213}#
- #{source 1014}#
- #{mod 1020}#
- #{var 1021}#
- #{public? 1022}#))
- (lambda (#{var 1026}#)
- (#{make-toplevel-ref 217}#
- #{source 1014}#
- #{var 1026}#)))))
- (#{build-global-assignment 281}#
- (lambda (#{source 1028}#
- #{var 1029}#
- #{exp 1030}#
- #{mod 1031}#)
+ #{var 1014}#
+ #{mod 1024}#)))))))))
+ (#{build-global-reference 285}#
+ (lambda (#{source 1032}# #{var 1033}# #{mod 1034}#)
+ (#{analyze-variable 283}#
+ #{mod 1034}#
+ #{var 1033}#
+ (lambda (#{mod 1038}# #{var 1039}# #{public? 1040}#)
+ (#{make-module-ref 218}#
+ #{source 1032}#
+ #{mod 1038}#
+ #{var 1039}#
+ #{public? 1040}#))
+ (lambda (#{var 1044}#)
+ (#{make-toplevel-ref 222}#
+ #{source 1032}#
+ #{var 1044}#)))))
+ (#{build-global-assignment 287}#
+ (lambda (#{source 1046}#
+ #{var 1047}#
+ #{exp 1048}#
+ #{mod 1049}#)
(begin
- (#{maybe-name-value! 263}#
- #{var 1029}#
- #{exp 1030}#)
- (#{analyze-variable 277}#
- #{mod 1031}#
- #{var 1029}#
- (lambda (#{mod 1036}# #{var 1037}# #{public? 1038}#)
- (#{make-module-set 215}#
- #{source 1028}#
- #{mod 1036}#
- #{var 1037}#
- #{public? 1038}#
- #{exp 1030}#))
- (lambda (#{var 1042}#)
- (#{make-toplevel-set 219}#
- #{source 1028}#
- #{var 1042}#
- #{exp 1030}#))))))
- (#{build-global-definition 283}#
- (lambda (#{source 1044}# #{var 1045}# #{exp 1046}#)
+ (#{maybe-name-value! 269}#
+ #{var 1047}#
+ #{exp 1048}#)
+ (#{analyze-variable 283}#
+ #{mod 1049}#
+ #{var 1047}#
+ (lambda (#{mod 1054}# #{var 1055}# #{public? 1056}#)
+ (#{make-module-set 220}#
+ #{source 1046}#
+ #{mod 1054}#
+ #{var 1055}#
+ #{public? 1056}#
+ #{exp 1048}#))
+ (lambda (#{var 1060}#)
+ (#{make-toplevel-set 224}#
+ #{source 1046}#
+ #{var 1060}#
+ #{exp 1048}#))))))
+ (#{build-global-definition 289}#
+ (lambda (#{source 1062}# #{var 1063}# #{exp 1064}#)
(begin
- (#{maybe-name-value! 263}#
- #{var 1045}#
- #{exp 1046}#)
- (#{make-toplevel-define 221}#
- #{source 1044}#
- #{var 1045}#
- #{exp 1046}#))))
- (#{build-simple-lambda 285}#
- (lambda (#{src 1050}#
- #{req 1051}#
- #{rest 1052}#
- #{vars 1053}#
- #{meta 1054}#
- #{exp 1055}#)
- (#{make-lambda 231}#
- #{src 1050}#
- #{meta 1054}#
- (#{make-lambda-case 233}#
- #{src 1050}#
- #{req 1051}#
+ (#{maybe-name-value! 269}#
+ #{var 1063}#
+ #{exp 1064}#)
+ (#{make-toplevel-define 226}#
+ #{source 1062}#
+ #{var 1063}#
+ #{exp 1064}#))))
+ (#{build-simple-lambda 291}#
+ (lambda (#{src 1068}#
+ #{req 1069}#
+ #{rest 1070}#
+ #{vars 1071}#
+ #{meta 1072}#
+ #{exp 1073}#)
+ (#{make-lambda 236}#
+ #{src 1068}#
+ #{meta 1072}#
+ (#{make-lambda-case 238}#
+ #{src 1068}#
+ #{req 1069}#
#f
- #{rest 1052}#
+ #{rest 1070}#
#f
'()
- #{vars 1053}#
- #{exp 1055}#
+ #{vars 1071}#
+ #{exp 1073}#
#f))))
- (#{build-case-lambda 287}#
- (lambda (#{src 1062}# #{meta 1063}# #{body 1064}#)
- (#{make-lambda 231}#
- #{src 1062}#
- #{meta 1063}#
- #{body 1064}#)))
- (#{build-lambda-case 289}#
- (lambda (#{src 1068}#
- #{req 1069}#
- #{opt 1070}#
- #{rest 1071}#
- #{kw 1072}#
- #{inits 1073}#
- #{vars 1074}#
- #{body 1075}#
- #{else-case 1076}#)
- (#{make-lambda-case 233}#
- #{src 1068}#
- #{req 1069}#
- #{opt 1070}#
- #{rest 1071}#
- #{kw 1072}#
- #{inits 1073}#
- #{vars 1074}#
- #{body 1075}#
- #{else-case 1076}#)))
- (#{build-primcall 291}#
- (lambda (#{src 1086}# #{name 1087}# #{args 1088}#)
- (#{make-primcall 227}#
+ (#{build-lambda-case 295}#
+ (lambda (#{src 1086}#
+ #{req 1087}#
+ #{opt 1088}#
+ #{rest 1089}#
+ #{kw 1090}#
+ #{inits 1091}#
+ #{vars 1092}#
+ #{body 1093}#
+ #{else-case 1094}#)
+ (#{make-lambda-case 238}#
#{src 1086}#
- #{name 1087}#
- #{args 1088}#)))
- (#{build-primref 293}#
- (lambda (#{src 1092}# #{name 1093}#)
- (#{make-primitive-ref 207}#
- #{src 1092}#
- #{name 1093}#)))
- (#{build-data 295}#
- (lambda (#{src 1096}# #{exp 1097}#)
- (#{make-const 205}# #{src 1096}# #{exp 1097}#)))
- (#{build-sequence 297}#
- (lambda (#{src 1100}# #{exps 1101}#)
- (if (null? (cdr #{exps 1101}#))
- (car #{exps 1101}#)
- (#{make-seq 229}#
- #{src 1100}#
- (car #{exps 1101}#)
- (#{build-sequence 297}# #f (cdr #{exps 1101}#))))))
- (#{build-let 299}#
- (lambda (#{src 1104}#
- #{ids 1105}#
- #{vars 1106}#
- #{val-exps 1107}#
- #{body-exp 1108}#)
- (begin
- (for-each
- #{maybe-name-value! 263}#
- #{ids 1105}#
- #{val-exps 1107}#)
- (if (null? #{vars 1106}#)
- #{body-exp 1108}#
- (#{make-let 235}#
- #{src 1104}#
- #{ids 1105}#
- #{vars 1106}#
- #{val-exps 1107}#
- #{body-exp 1108}#)))))
- (#{build-named-let 301}#
- (lambda (#{src 1114}#
- #{ids 1115}#
- #{vars 1116}#
- #{val-exps 1117}#
- #{body-exp 1118}#)
- (let ((#{f 1128}# (car #{vars 1116}#))
- (#{f-name 1129}# (car #{ids 1115}#))
- (#{vars 1130}# (cdr #{vars 1116}#))
- (#{ids 1131}# (cdr #{ids 1115}#)))
- (let ((#{proc 1133}#
- (#{build-simple-lambda 285}#
- #{src 1114}#
- #{ids 1131}#
- #f
- #{vars 1130}#
- '()
- #{body-exp 1118}#)))
- (begin
- (#{maybe-name-value! 263}#
- #{f-name 1129}#
- #{proc 1133}#)
- (for-each
- #{maybe-name-value! 263}#
- #{ids 1131}#
- #{val-exps 1117}#)
- (#{make-letrec 237}#
- #{src 1114}#
- #f
- (list #{f-name 1129}#)
- (list #{f 1128}#)
- (list #{proc 1133}#)
- (#{build-call 267}#
- #{src 1114}#
- (#{build-lexical-reference 273}#
- 'fun
- #{src 1114}#
- #{f-name 1129}#
- #{f 1128}#)
- #{val-exps 1117}#)))))))
- (#{build-letrec 303}#
- (lambda (#{src 1134}#
- #{in-order? 1135}#
- #{ids 1136}#
- #{vars 1137}#
- #{val-exps 1138}#
- #{body-exp 1139}#)
- (if (null? #{vars 1137}#)
- #{body-exp 1139}#
+ #{req 1087}#
+ #{opt 1088}#
+ #{rest 1089}#
+ #{kw 1090}#
+ #{inits 1091}#
+ #{vars 1092}#
+ #{body 1093}#
+ #{else-case 1094}#)))
+ (#{build-primcall 297}#
+ (lambda (#{src 1104}# #{name 1105}# #{args 1106}#)
+ (#{make-primcall 232}#
+ #{src 1104}#
+ #{name 1105}#
+ #{args 1106}#)))
+ (#{build-data 301}#
+ (lambda (#{src 1114}# #{exp 1115}#)
+ (#{make-const 210}# #{src 1114}# #{exp 1115}#)))
+ (#{build-sequence 303}#
+ (lambda (#{src 1118}# #{exps 1119}#)
+ (if (null? (cdr #{exps 1119}#))
+ (car #{exps 1119}#)
+ (#{make-seq 234}#
+ #{src 1118}#
+ (car #{exps 1119}#)
+ (#{build-sequence 303}# #f (cdr #{exps 1119}#))))))
+ (#{build-letrec 309}#
+ (lambda (#{src 1152}#
+ #{in-order? 1153}#
+ #{ids 1154}#
+ #{vars 1155}#
+ #{val-exps 1156}#
+ #{body-exp 1157}#)
+ (if (null? #{vars 1155}#)
+ #{body-exp 1157}#
(begin
(for-each
- #{maybe-name-value! 263}#
- #{ids 1136}#
- #{val-exps 1138}#)
- (#{make-letrec 237}#
- #{src 1134}#
- #{in-order? 1135}#
- #{ids 1136}#
- #{vars 1137}#
- #{val-exps 1138}#
- #{body-exp 1139}#)))))
- (#{make-syntax-object 307}#
- (lambda (#{expression 1146}#
- #{wrap 1147}#
- #{module 1148}#)
+ #{maybe-name-value! 269}#
+ #{ids 1154}#
+ #{val-exps 1156}#)
+ (#{make-letrec 242}#
+ #{src 1152}#
+ #{in-order? 1153}#
+ #{ids 1154}#
+ #{vars 1155}#
+ #{val-exps 1156}#
+ #{body-exp 1157}#)))))
+ (#{make-syntax-object 314}#
+ (lambda (#{expression 1164}#
+ #{wrap 1165}#
+ #{module 1166}#)
(vector
'syntax-object
- #{expression 1146}#
- #{wrap 1147}#
- #{module 1148}#)))
- (#{syntax-object? 309}#
- (lambda (#{x 1152}#)
- (if (vector? #{x 1152}#)
- (if (= (vector-length #{x 1152}#) 4)
- (eq? (vector-ref #{x 1152}# 0) 'syntax-object)
+ #{expression 1164}#
+ #{wrap 1165}#
+ #{module 1166}#)))
+ (#{syntax-object? 316}#
+ (lambda (#{x 1170}#)
+ (if (vector? #{x 1170}#)
+ (if (= (vector-length #{x 1170}#) 4)
+ (eq? (vector-ref #{x 1170}# 0) 'syntax-object)
#f)
#f)))
- (#{syntax-object-expression 311}#
- (lambda (#{x 1157}#) (vector-ref #{x 1157}# 1)))
- (#{syntax-object-wrap 313}#
- (lambda (#{x 1159}#) (vector-ref #{x 1159}# 2)))
- (#{syntax-object-module 315}#
- (lambda (#{x 1161}#) (vector-ref #{x 1161}# 3)))
- (#{source-annotation 324}#
- (lambda (#{x 1175}#)
- (if (#{syntax-object? 309}# #{x 1175}#)
- (#{source-annotation 324}#
- (#{syntax-object-expression 311}# #{x 1175}#))
- (if (pair? #{x 1175}#)
- (let ((#{props 1182}# (source-properties #{x 1175}#)))
- (if (pair? #{props 1182}#) #{props 1182}# #f))
+ (#{syntax-object-expression 318}#
+ (lambda (#{x 1175}#) (vector-ref #{x 1175}# 1)))
+ (#{syntax-object-wrap 320}#
+ (lambda (#{x 1177}#) (vector-ref #{x 1177}# 2)))
+ (#{syntax-object-module 322}#
+ (lambda (#{x 1179}#) (vector-ref #{x 1179}# 3)))
+ (#{source-annotation 331}#
+ (lambda (#{x 1193}#)
+ (if (#{syntax-object? 316}# #{x 1193}#)
+ (#{source-annotation 331}#
+ (#{syntax-object-expression 318}# #{x 1193}#))
+ (if (pair? #{x 1193}#)
+ (let ((#{props 1200}# (source-properties #{x 1193}#)))
+ (if (pair? #{props 1200}#) #{props 1200}# #f))
#f))))
- (#{extend-env 331}#
- (lambda (#{labels 1184}# #{bindings 1185}# #{r 1186}#)
- (if (null? #{labels 1184}#)
- #{r 1186}#
- (#{extend-env 331}#
- (cdr #{labels 1184}#)
- (cdr #{bindings 1185}#)
- (cons (cons (car #{labels 1184}#)
- (car #{bindings 1185}#))
- #{r 1186}#)))))
- (#{extend-var-env 333}#
- (lambda (#{labels 1190}# #{vars 1191}# #{r 1192}#)
- (if (null? #{labels 1190}#)
- #{r 1192}#
- (#{extend-var-env 333}#
- (cdr #{labels 1190}#)
- (cdr #{vars 1191}#)
- (cons (cons (car #{labels 1190}#)
- (cons 'lexical (car #{vars 1191}#)))
- #{r 1192}#)))))
- (#{macros-only-env 335}#
- (lambda (#{r 1197}#)
- (if (null? #{r 1197}#)
+ (#{extend-env 341}#
+ (lambda (#{labels 1202}# #{bindings 1203}# #{r 1204}#)
+ (if (null? #{labels 1202}#)
+ #{r 1204}#
+ (#{extend-env 341}#
+ (cdr #{labels 1202}#)
+ (cdr #{bindings 1203}#)
+ (cons (cons (car #{labels 1202}#)
+ (car #{bindings 1203}#))
+ #{r 1204}#)))))
+ (#{extend-var-env 343}#
+ (lambda (#{labels 1208}# #{vars 1209}# #{r 1210}#)
+ (if (null? #{labels 1208}#)
+ #{r 1210}#
+ (#{extend-var-env 343}#
+ (cdr #{labels 1208}#)
+ (cdr #{vars 1209}#)
+ (cons (cons (car #{labels 1208}#)
+ (cons 'lexical (car #{vars 1209}#)))
+ #{r 1210}#)))))
+ (#{macros-only-env 345}#
+ (lambda (#{r 1215}#)
+ (if (null? #{r 1215}#)
'()
- (let ((#{a 1200}# (car #{r 1197}#)))
- (if (eq? (car (cdr #{a 1200}#)) 'macro)
- (cons #{a 1200}#
- (#{macros-only-env 335}# (cdr #{r 1197}#)))
- (#{macros-only-env 335}# (cdr #{r 1197}#)))))))
- (#{lookup 337}#
- (lambda (#{x 1201}# #{r 1202}# #{mod 1203}#)
- (let ((#{t 1209}# (assq #{x 1201}# #{r 1202}#)))
- (if #{t 1209}#
- (cdr #{t 1209}#)
- (if (symbol? #{x 1201}#)
- (let ((#{t 1215}#
- (#{get-global-definition-hook 259}#
- #{x 1201}#
- #{mod 1203}#)))
- (if #{t 1215}# #{t 1215}# '(global)))
+ (let ((#{a 1218}# (car #{r 1215}#)))
+ (if (eq? (car (cdr #{a 1218}#)) 'macro)
+ (cons #{a 1218}#
+ (#{macros-only-env 345}# (cdr #{r 1215}#)))
+ (#{macros-only-env 345}# (cdr #{r 1215}#)))))))
+ (#{lookup 347}#
+ (lambda (#{x 1219}# #{r 1220}# #{mod 1221}#)
+ (let ((#{t 1227}# (assq #{x 1219}# #{r 1220}#)))
+ (if #{t 1227}#
+ (cdr #{t 1227}#)
+ (if (symbol? #{x 1219}#)
+ (let ((#{t 1233}#
+ (#{get-global-definition-hook 265}#
+ #{x 1219}#
+ #{mod 1221}#)))
+ (if #{t 1233}# #{t 1233}# '(global)))
'(displaced-lexical))))))
- (#{global-extend 339}#
- (lambda (#{type 1220}# #{sym 1221}# #{val 1222}#)
- (#{put-global-definition-hook 257}#
- #{sym 1221}#
- #{type 1220}#
- #{val 1222}#)))
- (#{nonsymbol-id? 341}#
- (lambda (#{x 1226}#)
- (if (#{syntax-object? 309}# #{x 1226}#)
+ (#{global-extend 349}#
+ (lambda (#{type 1238}# #{sym 1239}# #{val 1240}#)
+ (#{put-global-definition-hook 263}#
+ #{sym 1239}#
+ #{type 1238}#
+ #{val 1240}#)))
+ (#{nonsymbol-id? 351}#
+ (lambda (#{x 1244}#)
+ (if (#{syntax-object? 316}# #{x 1244}#)
(symbol?
- (#{syntax-object-expression 311}# #{x 1226}#))
+ (#{syntax-object-expression 318}# #{x 1244}#))
#f)))
- (#{id? 343}#
- (lambda (#{x 1230}#)
- (if (symbol? #{x 1230}#)
+ (#{id? 353}#
+ (lambda (#{x 1248}#)
+ (if (symbol? #{x 1248}#)
#t
- (if (#{syntax-object? 309}# #{x 1230}#)
+ (if (#{syntax-object? 316}# #{x 1248}#)
(symbol?
- (#{syntax-object-expression 311}# #{x 1230}#))
+ (#{syntax-object-expression 318}# #{x 1248}#))
#f))))
- (#{id-sym-name&marks 346}#
- (lambda (#{x 1237}# #{w 1238}#)
- (if (#{syntax-object? 309}# #{x 1237}#)
+ (#{id-sym-name&marks 357}#
+ (lambda (#{x 1255}# #{w 1256}#)
+ (if (#{syntax-object? 316}# #{x 1255}#)
(values
- (#{syntax-object-expression 311}# #{x 1237}#)
- (#{join-marks 393}#
- (car #{w 1238}#)
- (car (#{syntax-object-wrap 313}# #{x 1237}#))))
- (values #{x 1237}# (car #{w 1238}#)))))
- (#{gen-label 356}#
+ (#{syntax-object-expression 318}# #{x 1255}#)
+ (#{join-marks 411}#
+ (car #{w 1256}#)
+ (car (#{syntax-object-wrap 320}# #{x 1255}#))))
+ (values #{x 1255}# (car #{w 1256}#)))))
+ (#{gen-label 371}#
(lambda () (symbol->string (gensym "i"))))
- (#{gen-labels 358}#
- (lambda (#{ls 1244}#)
- (if (null? #{ls 1244}#)
+ (#{gen-labels 373}#
+ (lambda (#{ls 1262}#)
+ (if (null? #{ls 1262}#)
'()
- (cons (#{gen-label 356}#)
- (#{gen-labels 358}# (cdr #{ls 1244}#))))))
- (#{make-ribcage 361}#
- (lambda (#{symnames 1246}#
- #{marks 1247}#
- #{labels 1248}#)
+ (cons (#{gen-label 371}#)
+ (#{gen-labels 373}# (cdr #{ls 1262}#))))))
+ (#{make-ribcage 376}#
+ (lambda (#{symnames 1264}#
+ #{marks 1265}#
+ #{labels 1266}#)
(vector
'ribcage
- #{symnames 1246}#
- #{marks 1247}#
- #{labels 1248}#)))
- (#{ribcage-symnames 365}#
- (lambda (#{x 1257}#) (vector-ref #{x 1257}# 1)))
- (#{ribcage-marks 367}#
- (lambda (#{x 1259}#) (vector-ref #{x 1259}# 2)))
- (#{ribcage-labels 369}#
- (lambda (#{x 1261}#) (vector-ref #{x 1261}# 3)))
- (#{set-ribcage-symnames! 371}#
- (lambda (#{x 1263}# #{update 1264}#)
- (vector-set! #{x 1263}# 1 #{update 1264}#)))
- (#{set-ribcage-marks! 373}#
- (lambda (#{x 1267}# #{update 1268}#)
- (vector-set! #{x 1267}# 2 #{update 1268}#)))
- (#{set-ribcage-labels! 375}#
- (lambda (#{x 1271}# #{update 1272}#)
- (vector-set! #{x 1271}# 3 #{update 1272}#)))
- (#{anti-mark 381}#
- (lambda (#{w 1275}#)
- (cons (cons #f (car #{w 1275}#))
- (cons 'shift (cdr #{w 1275}#)))))
- (#{extend-ribcage! 385}#
- (lambda (#{ribcage 1281}# #{id 1282}# #{label 1283}#)
+ #{symnames 1264}#
+ #{marks 1265}#
+ #{labels 1266}#)))
+ (#{ribcage-symnames 380}#
+ (lambda (#{x 1275}#) (vector-ref #{x 1275}# 1)))
+ (#{ribcage-marks 382}#
+ (lambda (#{x 1277}#) (vector-ref #{x 1277}# 2)))
+ (#{ribcage-labels 384}#
+ (lambda (#{x 1279}#) (vector-ref #{x 1279}# 3)))
+ (#{set-ribcage-symnames! 386}#
+ (lambda (#{x 1281}# #{update 1282}#)
+ (vector-set! #{x 1281}# 1 #{update 1282}#)))
+ (#{set-ribcage-marks! 388}#
+ (lambda (#{x 1285}# #{update 1286}#)
+ (vector-set! #{x 1285}# 2 #{update 1286}#)))
+ (#{set-ribcage-labels! 390}#
+ (lambda (#{x 1289}# #{update 1290}#)
+ (vector-set! #{x 1289}# 3 #{update 1290}#)))
+ (#{anti-mark 397}#
+ (lambda (#{w 1293}#)
+ (cons (cons #f (car #{w 1293}#))
+ (cons 'shift (cdr #{w 1293}#)))))
+ (#{extend-ribcage! 403}#
+ (lambda (#{ribcage 1299}# #{id 1300}# #{label 1301}#)
(begin
- (#{set-ribcage-symnames! 371}#
- #{ribcage 1281}#
- (cons (#{syntax-object-expression 311}# #{id 1282}#)
- (#{ribcage-symnames 365}# #{ribcage 1281}#)))
- (#{set-ribcage-marks! 373}#
- #{ribcage 1281}#
- (cons (car (#{syntax-object-wrap 313}# #{id 1282}#))
- (#{ribcage-marks 367}# #{ribcage 1281}#)))
- (#{set-ribcage-labels! 375}#
- #{ribcage 1281}#
- (cons #{label 1283}#
- (#{ribcage-labels 369}# #{ribcage 1281}#))))))
- (#{make-binding-wrap 387}#
- (lambda (#{ids 1288}# #{labels 1289}# #{w 1290}#)
- (if (null? #{ids 1288}#)
- #{w 1290}#
- (cons (car #{w 1290}#)
- (cons (let ((#{labelvec 1297}#
- (list->vector #{labels 1289}#)))
- (let ((#{n 1299}# (vector-length #{labelvec 1297}#)))
- (let ((#{symnamevec 1302}# (make-vector #{n 1299}#))
- (#{marksvec 1303}# (make-vector #{n 1299}#)))
+ (#{set-ribcage-symnames! 386}#
+ #{ribcage 1299}#
+ (cons (#{syntax-object-expression 318}# #{id 1300}#)
+ (#{ribcage-symnames 380}# #{ribcage 1299}#)))
+ (#{set-ribcage-marks! 388}#
+ #{ribcage 1299}#
+ (cons (car (#{syntax-object-wrap 320}# #{id 1300}#))
+ (#{ribcage-marks 382}# #{ribcage 1299}#)))
+ (#{set-ribcage-labels! 390}#
+ #{ribcage 1299}#
+ (cons #{label 1301}#
+ (#{ribcage-labels 384}# #{ribcage 1299}#))))))
+ (#{make-binding-wrap 405}#
+ (lambda (#{ids 1306}# #{labels 1307}# #{w 1308}#)
+ (if (null? #{ids 1306}#)
+ #{w 1308}#
+ (cons (car #{w 1308}#)
+ (cons (let ((#{labelvec 1315}#
+ (list->vector #{labels 1307}#)))
+ (let ((#{n 1317}# (vector-length #{labelvec 1315}#)))
+ (let ((#{symnamevec 1320}# (make-vector #{n 1317}#))
+ (#{marksvec 1321}# (make-vector #{n 1317}#)))
(begin
(letrec*
- ((#{f 1307}#
- (lambda (#{ids 1308}# #{i 1309}#)
- (if (not (null? #{ids 1308}#))
+ ((#{f 1325}#
+ (lambda (#{ids 1326}# #{i 1327}#)
+ (if (not (null? #{ids 1326}#))
(call-with-values
(lambda ()
- (#{id-sym-name&marks 346}#
- (car #{ids 1308}#)
- #{w 1290}#))
- (lambda (#{symname 1310}#
- #{marks 1311}#)
+ (#{id-sym-name&marks 357}#
+ (car #{ids 1326}#)
+ #{w 1308}#))
+ (lambda (#{symname 1328}#
+ #{marks 1329}#)
(begin
(vector-set!
- #{symnamevec 1302}#
- #{i 1309}#
- #{symname 1310}#)
+ #{symnamevec 1320}#
+ #{i 1327}#
+ #{symname 1328}#)
(vector-set!
- #{marksvec 1303}#
- #{i 1309}#
- #{marks 1311}#)
- (#{f 1307}#
- (cdr #{ids 1308}#)
- (#{1+}# #{i 1309}#)))))))))
- (#{f 1307}# #{ids 1288}# 0))
- (#{make-ribcage 361}#
- #{symnamevec 1302}#
- #{marksvec 1303}#
- #{labelvec 1297}#)))))
- (cdr #{w 1290}#))))))
- (#{smart-append 389}#
- (lambda (#{m1 1316}# #{m2 1317}#)
- (if (null? #{m2 1317}#)
- #{m1 1316}#
- (append #{m1 1316}# #{m2 1317}#))))
- (#{join-wraps 391}#
- (lambda (#{w1 1320}# #{w2 1321}#)
- (let ((#{m1 1326}# (car #{w1 1320}#))
- (#{s1 1327}# (cdr #{w1 1320}#)))
- (if (null? #{m1 1326}#)
- (if (null? #{s1 1327}#)
- #{w2 1321}#
- (cons (car #{w2 1321}#)
- (#{smart-append 389}#
- #{s1 1327}#
- (cdr #{w2 1321}#))))
- (cons (#{smart-append 389}#
- #{m1 1326}#
- (car #{w2 1321}#))
- (#{smart-append 389}#
- #{s1 1327}#
- (cdr #{w2 1321}#)))))))
- (#{join-marks 393}#
- (lambda (#{m1 1336}# #{m2 1337}#)
- (#{smart-append 389}# #{m1 1336}# #{m2 1337}#)))
- (#{same-marks? 395}#
- (lambda (#{x 1340}# #{y 1341}#)
- (let ((#{t 1346}# (eq? #{x 1340}# #{y 1341}#)))
- (if #{t 1346}#
- #{t 1346}#
- (if (not (null? #{x 1340}#))
- (if (not (null? #{y 1341}#))
- (if (eq? (car #{x 1340}#) (car #{y 1341}#))
- (#{same-marks? 395}#
- (cdr #{x 1340}#)
- (cdr #{y 1341}#))
- #f)
+ #{marksvec 1321}#
+ #{i 1327}#
+ #{marks 1329}#)
+ (#{f 1325}#
+ (cdr #{ids 1326}#)
+ (#{1+}# #{i 1327}#)))))))))
+ (#{f 1325}# #{ids 1306}# 0))
+ (#{make-ribcage 376}#
+ #{symnamevec 1320}#
+ #{marksvec 1321}#
+ #{labelvec 1315}#)))))
+ (cdr #{w 1308}#))))))
+ (#{smart-append 407}#
+ (lambda (#{m1 1334}# #{m2 1335}#)
+ (if (null? #{m2 1335}#)
+ #{m1 1334}#
+ (append #{m1 1334}# #{m2 1335}#))))
+ (#{join-wraps 409}#
+ (lambda (#{w1 1338}# #{w2 1339}#)
+ (let ((#{m1 1344}# (car #{w1 1338}#))
+ (#{s1 1345}# (cdr #{w1 1338}#)))
+ (if (null? #{m1 1344}#)
+ (if (null? #{s1 1345}#)
+ #{w2 1339}#
+ (cons (car #{w2 1339}#)
+ (#{smart-append 407}#
+ #{s1 1345}#
+ (cdr #{w2 1339}#))))
+ (cons (#{smart-append 407}#
+ #{m1 1344}#
+ (car #{w2 1339}#))
+ (#{smart-append 407}#
+ #{s1 1345}#
+ (cdr #{w2 1339}#)))))))
+ (#{join-marks 411}#
+ (lambda (#{m1 1354}# #{m2 1355}#)
+ (#{smart-append 407}# #{m1 1354}# #{m2 1355}#)))
+ (#{same-marks? 413}#
+ (lambda (#{x 1358}# #{y 1359}#)
+ (if (eq? #{x 1358}# #{y 1359}#)
+ (eq? #{x 1358}# #{y 1359}#)
+ (if (not (null? #{x 1358}#))
+ (if (not (null? #{y 1359}#))
+ (if (eq? (car #{x 1358}#) (car #{y 1359}#))
+ (#{same-marks? 413}#
+ (cdr #{x 1358}#)
+ (cdr #{y 1359}#))
#f)
- #f)))))
- (#{id-var-name 397}#
- (lambda (#{id 1352}# #{w 1353}#)
+ #f)
+ #f))))
+ (#{id-var-name 415}#
+ (lambda (#{id 1370}# #{w 1371}#)
(letrec*
- ((#{search 1358}#
- (lambda (#{sym 1374}# #{subst 1375}# #{marks 1376}#)
- (if (null? #{subst 1375}#)
- (values #f #{marks 1376}#)
- (let ((#{fst 1381}# (car #{subst 1375}#)))
- (if (eq? #{fst 1381}# 'shift)
- (#{search 1358}#
- #{sym 1374}#
- (cdr #{subst 1375}#)
- (cdr #{marks 1376}#))
- (let ((#{symnames 1383}#
- (#{ribcage-symnames 365}# #{fst 1381}#)))
- (if (vector? #{symnames 1383}#)
- (#{search-vector-rib 1362}#
- #{sym 1374}#
- #{subst 1375}#
- #{marks 1376}#
- #{symnames 1383}#
- #{fst 1381}#)
- (#{search-list-rib 1360}#
- #{sym 1374}#
- #{subst 1375}#
- #{marks 1376}#
- #{symnames 1383}#
- #{fst 1381}#))))))))
- (#{search-list-rib 1360}#
- (lambda (#{sym 1384}#
- #{subst 1385}#
- #{marks 1386}#
- #{symnames 1387}#
- #{ribcage 1388}#)
+ ((#{search 1377}#
+ (lambda (#{sym 1393}# #{subst 1394}# #{marks 1395}#)
+ (if (null? #{subst 1394}#)
+ (values #f #{marks 1395}#)
+ (let ((#{fst 1400}# (car #{subst 1394}#)))
+ (if (eq? #{fst 1400}# 'shift)
+ (#{search 1377}#
+ #{sym 1393}#
+ (cdr #{subst 1394}#)
+ (cdr #{marks 1395}#))
+ (let ((#{symnames 1402}#
+ (#{ribcage-symnames 380}# #{fst 1400}#)))
+ (if (vector? #{symnames 1402}#)
+ (#{search-vector-rib 1381}#
+ #{sym 1393}#
+ #{subst 1394}#
+ #{marks 1395}#
+ #{symnames 1402}#
+ #{fst 1400}#)
+ (#{search-list-rib 1379}#
+ #{sym 1393}#
+ #{subst 1394}#
+ #{marks 1395}#
+ #{symnames 1402}#
+ #{fst 1400}#))))))))
+ (#{search-list-rib 1379}#
+ (lambda (#{sym 1403}#
+ #{subst 1404}#
+ #{marks 1405}#
+ #{symnames 1406}#
+ #{ribcage 1407}#)
(letrec*
- ((#{f 1397}#
- (lambda (#{symnames 1398}# #{i 1399}#)
- (if (null? #{symnames 1398}#)
- (#{search 1358}#
- #{sym 1384}#
- (cdr #{subst 1385}#)
- #{marks 1386}#)
- (if (if (eq? (car #{symnames 1398}#) #{sym 1384}#)
- (#{same-marks? 395}#
- #{marks 1386}#
+ ((#{f 1416}#
+ (lambda (#{symnames 1417}# #{i 1418}#)
+ (if (null? #{symnames 1417}#)
+ (#{search 1377}#
+ #{sym 1403}#
+ (cdr #{subst 1404}#)
+ #{marks 1405}#)
+ (if (if (eq? (car #{symnames 1417}#) #{sym 1403}#)
+ (#{same-marks? 413}#
+ #{marks 1405}#
(list-ref
- (#{ribcage-marks 367}# #{ribcage 1388}#)
- #{i 1399}#))
+ (#{ribcage-marks 382}# #{ribcage 1407}#)
+ #{i 1418}#))
#f)
(values
(list-ref
- (#{ribcage-labels 369}# #{ribcage 1388}#)
- #{i 1399}#)
- #{marks 1386}#)
- (#{f 1397}#
- (cdr #{symnames 1398}#)
- (#{1+}# #{i 1399}#)))))))
- (#{f 1397}# #{symnames 1387}# 0))))
- (#{search-vector-rib 1362}#
- (lambda (#{sym 1408}#
- #{subst 1409}#
- #{marks 1410}#
- #{symnames 1411}#
- #{ribcage 1412}#)
- (let ((#{n 1419}# (vector-length #{symnames 1411}#)))
+ (#{ribcage-labels 384}# #{ribcage 1407}#)
+ #{i 1418}#)
+ #{marks 1405}#)
+ (#{f 1416}#
+ (cdr #{symnames 1417}#)
+ (#{1+}# #{i 1418}#)))))))
+ (#{f 1416}# #{symnames 1406}# 0))))
+ (#{search-vector-rib 1381}#
+ (lambda (#{sym 1427}#
+ #{subst 1428}#
+ #{marks 1429}#
+ #{symnames 1430}#
+ #{ribcage 1431}#)
+ (let ((#{n 1438}# (vector-length #{symnames 1430}#)))
(letrec*
- ((#{f 1422}#
- (lambda (#{i 1423}#)
- (if (= #{i 1423}# #{n 1419}#)
- (#{search 1358}#
- #{sym 1408}#
- (cdr #{subst 1409}#)
- #{marks 1410}#)
- (if (if (eq? (vector-ref #{symnames 1411}# #{i 1423}#)
- #{sym 1408}#)
- (#{same-marks? 395}#
- #{marks 1410}#
+ ((#{f 1441}#
+ (lambda (#{i 1442}#)
+ (if (= #{i 1442}# #{n 1438}#)
+ (#{search 1377}#
+ #{sym 1427}#
+ (cdr #{subst 1428}#)
+ #{marks 1429}#)
+ (if (if (eq? (vector-ref #{symnames 1430}# #{i 1442}#)
+ #{sym 1427}#)
+ (#{same-marks? 413}#
+ #{marks 1429}#
(vector-ref
- (#{ribcage-marks 367}# #{ribcage 1412}#)
- #{i 1423}#))
+ (#{ribcage-marks 382}# #{ribcage 1431}#)
+ #{i 1442}#))
#f)
(values
(vector-ref
- (#{ribcage-labels 369}# #{ribcage 1412}#)
- #{i 1423}#)
- #{marks 1410}#)
- (#{f 1422}# (#{1+}# #{i 1423}#)))))))
- (#{f 1422}# 0))))))
- (if (symbol? #{id 1352}#)
- (let ((#{t 1435}#
- (#{search 1358}#
- #{id 1352}#
- (cdr #{w 1353}#)
- (car #{w 1353}#))))
- (if #{t 1435}# #{t 1435}# #{id 1352}#))
- (if (#{syntax-object? 309}# #{id 1352}#)
- (let ((#{id 1444}#
- (#{syntax-object-expression 311}# #{id 1352}#))
- (#{w1 1445}#
- (#{syntax-object-wrap 313}# #{id 1352}#)))
- (let ((#{marks 1447}#
- (#{join-marks 393}#
- (car #{w 1353}#)
- (car #{w1 1445}#))))
+ (#{ribcage-labels 384}# #{ribcage 1431}#)
+ #{i 1442}#)
+ #{marks 1429}#)
+ (#{f 1441}# (#{1+}# #{i 1442}#)))))))
+ (#{f 1441}# 0))))))
+ (if (symbol? #{id 1370}#)
+ (let ((#{t 1454}#
+ (#{search 1377}#
+ #{id 1370}#
+ (cdr #{w 1371}#)
+ (car #{w 1371}#))))
+ (if #{t 1454}# #{t 1454}# #{id 1370}#))
+ (if (#{syntax-object? 316}# #{id 1370}#)
+ (let ((#{id 1463}#
+ (#{syntax-object-expression 318}# #{id 1370}#))
+ (#{w1 1464}#
+ (#{syntax-object-wrap 320}# #{id 1370}#)))
+ (let ((#{marks 1466}#
+ (#{join-marks 411}#
+ (car #{w 1371}#)
+ (car #{w1 1464}#))))
(call-with-values
(lambda ()
- (#{search 1358}#
- #{id 1444}#
- (cdr #{w 1353}#)
- #{marks 1447}#))
- (lambda (#{new-id 1451}# #{marks 1452}#)
- (let ((#{t 1457}# #{new-id 1451}#))
- (if #{t 1457}#
- #{t 1457}#
- (let ((#{t 1460}#
- (#{search 1358}#
- #{id 1444}#
- (cdr #{w1 1445}#)
- #{marks 1452}#)))
- (if #{t 1460}# #{t 1460}# #{id 1444}#))))))))
+ (#{search 1377}#
+ #{id 1463}#
+ (cdr #{w 1371}#)
+ #{marks 1466}#))
+ (lambda (#{new-id 1470}# #{marks 1471}#)
+ (if #{new-id 1470}#
+ #{new-id 1470}#
+ (let ((#{t 1479}#
+ (#{search 1377}#
+ #{id 1463}#
+ (cdr #{w1 1464}#)
+ #{marks 1471}#)))
+ (if #{t 1479}# #{t 1479}# #{id 1463}#)))))))
(syntax-violation
'id-var-name
"invalid id"
- #{id 1352}#))))))
- (#{free-id=? 399}#
- (lambda (#{i 1465}# #{j 1466}#)
- (let ((#{ni 1471}#
- (#{id-var-name 397}# #{i 1465}# '(())))
- (#{nj 1472}#
- (#{id-var-name 397}# #{j 1466}# '(()))))
- (letrec*
- ((#{id-module-binding 1476}#
- (lambda (#{id 1477}#)
- (let ((#{mod 1480}#
- (if (#{syntax-object? 309}# #{id 1477}#)
- (#{syntax-object-module 315}# #{id 1477}#)
- #f)))
- (module-variable
- (if #{mod 1480}#
- (resolve-module (cdr #{mod 1480}#))
- (current-module))
- (let ((#{x 1485}# #{id 1477}#))
- (if (#{syntax-object? 309}# #{x 1485}#)
- (#{syntax-object-expression 311}# #{x 1485}#)
- #{x 1485}#)))))))
- (if (eq? #{ni 1471}#
- (let ((#{x 1488}# #{i 1465}#))
- (if (#{syntax-object? 309}# #{x 1488}#)
- (#{syntax-object-expression 311}# #{x 1488}#)
- #{x 1488}#)))
- (if (eq? #{nj 1472}#
- (let ((#{x 1492}# #{j 1466}#))
- (if (#{syntax-object? 309}# #{x 1492}#)
- (#{syntax-object-expression 311}# #{x 1492}#)
- #{x 1492}#)))
- (if (let ((#{bi 1495}#
- (#{id-module-binding 1476}# #{i 1465}#)))
- (if #{bi 1495}#
- (eq? #{bi 1495}#
- (#{id-module-binding 1476}# #{j 1466}#))
- (if (not (#{id-module-binding 1476}# #{j 1466}#))
- (eq? #{ni 1471}# #{nj 1472}#)
- #f)))
- (eq? (#{id-module-binding 1476}# #{i 1465}#)
- (#{id-module-binding 1476}# #{j 1466}#))
- #f)
+ #{id 1370}#))))))
+ (#{free-id=? 417}#
+ (lambda (#{i 1484}# #{j 1485}#)
+ (let ((#{ni 1490}#
+ (#{id-var-name 415}# #{i 1484}# '(())))
+ (#{nj 1491}#
+ (#{id-var-name 415}# #{j 1485}# '(()))))
+ (if (eq? #{ni 1490}#
+ (if (#{syntax-object? 316}# #{i 1484}#)
+ (#{syntax-object-expression 318}# #{i 1484}#)
+ #{i 1484}#))
+ (if (eq? #{nj 1491}#
+ (if (#{syntax-object? 316}# #{j 1485}#)
+ (#{syntax-object-expression 318}# #{j 1485}#)
+ #{j 1485}#))
+ (if (let ((#{bi 1514}#
+ (let ((#{mod 4428}#
+ (if (#{syntax-object? 316}# #{i 1484}#)
+ (#{syntax-object-module 322}# #{i 1484}#)
+ #f)))
+ (module-variable
+ (if #{mod 4428}#
+ (resolve-module (cdr #{mod 4428}#))
+ (current-module))
+ (if (#{syntax-object? 316}# #{i 1484}#)
+ (#{syntax-object-expression 318}# #{i 1484}#)
+ #{i 1484}#)))))
+ (if #{bi 1514}#
+ (eq? #{bi 1514}#
+ (let ((#{mod 4432}#
+ (if (#{syntax-object? 316}# #{j 1485}#)
+ (#{syntax-object-module 322}# #{j 1485}#)
+ #f)))
+ (module-variable
+ (if #{mod 4432}#
+ (resolve-module (cdr #{mod 4432}#))
+ (current-module))
+ (if (#{syntax-object? 316}# #{j 1485}#)
+ (#{syntax-object-expression 318}# #{j 1485}#)
+ #{j 1485}#))))
+ (if (not (let ((#{mod 4436}#
+ (if (#{syntax-object? 316}# #{j 1485}#)
+ (#{syntax-object-module 322}#
+ #{j 1485}#)
+ #f)))
+ (module-variable
+ (if #{mod 4436}#
+ (resolve-module (cdr #{mod 4436}#))
+ (current-module))
+ (if (#{syntax-object? 316}# #{j 1485}#)
+ (#{syntax-object-expression 318}#
+ #{j 1485}#)
+ #{j 1485}#))))
+ (eq? #{ni 1490}# #{nj 1491}#)
+ #f)))
+ (eq? (let ((#{mod 4440}#
+ (if (#{syntax-object? 316}# #{i 1484}#)
+ (#{syntax-object-module 322}# #{i 1484}#)
+ #f)))
+ (module-variable
+ (if #{mod 4440}#
+ (resolve-module (cdr #{mod 4440}#))
+ (current-module))
+ (if (#{syntax-object? 316}# #{i 1484}#)
+ (#{syntax-object-expression 318}# #{i 1484}#)
+ #{i 1484}#)))
+ (let ((#{mod 4444}#
+ (if (#{syntax-object? 316}# #{j 1485}#)
+ (#{syntax-object-module 322}# #{j 1485}#)
+ #f)))
+ (module-variable
+ (if #{mod 4444}#
+ (resolve-module (cdr #{mod 4444}#))
+ (current-module))
+ (if (#{syntax-object? 316}# #{j 1485}#)
+ (#{syntax-object-expression 318}# #{j 1485}#)
+ #{j 1485}#))))
#f)
- (if (eq? #{ni 1471}# #{nj 1472}#)
- (not (eq? #{nj 1472}#
- (let ((#{x 1503}# #{j 1466}#))
- (if (#{syntax-object? 309}# #{x 1503}#)
- (#{syntax-object-expression 311}# #{x 1503}#)
- #{x 1503}#))))
- #f))))))
- (#{bound-id=? 401}#
- (lambda (#{i 1504}# #{j 1505}#)
- (if (if (#{syntax-object? 309}# #{i 1504}#)
- (#{syntax-object? 309}# #{j 1505}#)
#f)
- (if (eq? (#{syntax-object-expression 311}# #{i 1504}#)
- (#{syntax-object-expression 311}# #{j 1505}#))
- (#{same-marks? 395}#
- (car (#{syntax-object-wrap 313}# #{i 1504}#))
- (car (#{syntax-object-wrap 313}# #{j 1505}#)))
+ (if (eq? #{ni 1490}# #{nj 1491}#)
+ (not (eq? #{nj 1491}#
+ (if (#{syntax-object? 316}# #{j 1485}#)
+ (#{syntax-object-expression 318}# #{j 1485}#)
+ #{j 1485}#)))
+ #f)))))
+ (#{bound-id=? 419}#
+ (lambda (#{i 1523}# #{j 1524}#)
+ (if (if (#{syntax-object? 316}# #{i 1523}#)
+ (#{syntax-object? 316}# #{j 1524}#)
+ #f)
+ (if (eq? (#{syntax-object-expression 318}# #{i 1523}#)
+ (#{syntax-object-expression 318}# #{j 1524}#))
+ (#{same-marks? 413}#
+ (car (#{syntax-object-wrap 320}# #{i 1523}#))
+ (car (#{syntax-object-wrap 320}# #{j 1524}#)))
#f)
- (eq? #{i 1504}# #{j 1505}#))))
- (#{valid-bound-ids? 403}#
- (lambda (#{ids 1514}#)
+ (eq? #{i 1523}# #{j 1524}#))))
+ (#{valid-bound-ids? 421}#
+ (lambda (#{ids 1533}#)
(if (letrec*
- ((#{all-ids? 1519}#
- (lambda (#{ids 1520}#)
- (let ((#{t 1523}# (null? #{ids 1520}#)))
- (if #{t 1523}#
- #{t 1523}#
- (if (#{id? 343}# (car #{ids 1520}#))
- (#{all-ids? 1519}# (cdr #{ids 1520}#))
- #f))))))
- (#{all-ids? 1519}# #{ids 1514}#))
- (#{distinct-bound-ids? 405}# #{ids 1514}#)
+ ((#{all-ids? 1538}#
+ (lambda (#{ids 1539}#)
+ (if (null? #{ids 1539}#)
+ (null? #{ids 1539}#)
+ (if (#{id? 353}# (car #{ids 1539}#))
+ (#{all-ids? 1538}# (cdr #{ids 1539}#))
+ #f)))))
+ (#{all-ids? 1538}# #{ids 1533}#))
+ (#{distinct-bound-ids? 423}# #{ids 1533}#)
#f)))
- (#{distinct-bound-ids? 405}#
- (lambda (#{ids 1528}#)
+ (#{distinct-bound-ids? 423}#
+ (lambda (#{ids 1547}#)
(letrec*
- ((#{distinct? 1532}#
- (lambda (#{ids 1533}#)
- (let ((#{t 1536}# (null? #{ids 1533}#)))
- (if #{t 1536}#
- #{t 1536}#
- (if (not (#{bound-id-member? 407}#
- (car #{ids 1533}#)
- (cdr #{ids 1533}#)))
- (#{distinct? 1532}# (cdr #{ids 1533}#))
- #f))))))
- (#{distinct? 1532}# #{ids 1528}#))))
- (#{bound-id-member? 407}#
- (lambda (#{x 1540}# #{list 1541}#)
- (if (not (null? #{list 1541}#))
- (let ((#{t 1548}#
- (#{bound-id=? 401}#
- #{x 1540}#
- (car #{list 1541}#))))
- (if #{t 1548}#
- #{t 1548}#
- (#{bound-id-member? 407}#
- #{x 1540}#
- (cdr #{list 1541}#))))
+ ((#{distinct? 1551}#
+ (lambda (#{ids 1552}#)
+ (if (null? #{ids 1552}#)
+ (null? #{ids 1552}#)
+ (if (not (#{bound-id-member? 425}#
+ (car #{ids 1552}#)
+ (cdr #{ids 1552}#)))
+ (#{distinct? 1551}# (cdr #{ids 1552}#))
+ #f)))))
+ (#{distinct? 1551}# #{ids 1547}#))))
+ (#{bound-id-member? 425}#
+ (lambda (#{x 1559}# #{list 1560}#)
+ (if (not (null? #{list 1560}#))
+ (let ((#{t 1567}#
+ (#{bound-id=? 419}#
+ #{x 1559}#
+ (car #{list 1560}#))))
+ (if #{t 1567}#
+ #{t 1567}#
+ (#{bound-id-member? 425}#
+ #{x 1559}#
+ (cdr #{list 1560}#))))
#f)))
- (#{wrap 409}#
- (lambda (#{x 1550}# #{w 1551}# #{defmod 1552}#)
- (if (if (null? (car #{w 1551}#))
- (null? (cdr #{w 1551}#))
+ (#{wrap 427}#
+ (lambda (#{x 1569}# #{w 1570}# #{defmod 1571}#)
+ (if (if (null? (car #{w 1570}#))
+ (null? (cdr #{w 1570}#))
#f)
- #{x 1550}#
- (if (#{syntax-object? 309}# #{x 1550}#)
- (#{make-syntax-object 307}#
- (#{syntax-object-expression 311}# #{x 1550}#)
- (#{join-wraps 391}#
- #{w 1551}#
- (#{syntax-object-wrap 313}# #{x 1550}#))
- (#{syntax-object-module 315}# #{x 1550}#))
- (if (null? #{x 1550}#)
- #{x 1550}#
- (#{make-syntax-object 307}#
- #{x 1550}#
- #{w 1551}#
- #{defmod 1552}#))))))
- (#{source-wrap 411}#
- (lambda (#{x 1567}#
- #{w 1568}#
- #{s 1569}#
- #{defmod 1570}#)
- (#{wrap 409}#
- (#{decorate-source 261}# #{x 1567}# #{s 1569}#)
- #{w 1568}#
- #{defmod 1570}#)))
- (#{chi-sequence 413}#
- (lambda (#{body 1575}#
- #{r 1576}#
- #{w 1577}#
- #{s 1578}#
- #{mod 1579}#)
- (#{build-sequence 297}#
- #{s 1578}#
+ #{x 1569}#
+ (if (#{syntax-object? 316}# #{x 1569}#)
+ (#{make-syntax-object 314}#
+ (#{syntax-object-expression 318}# #{x 1569}#)
+ (#{join-wraps 409}#
+ #{w 1570}#
+ (#{syntax-object-wrap 320}# #{x 1569}#))
+ (#{syntax-object-module 322}# #{x 1569}#))
+ (if (null? #{x 1569}#)
+ #{x 1569}#
+ (#{make-syntax-object 314}#
+ #{x 1569}#
+ #{w 1570}#
+ #{defmod 1571}#))))))
+ (#{source-wrap 429}#
+ (lambda (#{x 1586}#
+ #{w 1587}#
+ #{s 1588}#
+ #{defmod 1589}#)
+ (#{wrap 427}#
+ (#{decorate-source 267}# #{x 1586}# #{s 1588}#)
+ #{w 1587}#
+ #{defmod 1589}#)))
+ (#{chi-sequence 431}#
+ (lambda (#{body 1594}#
+ #{r 1595}#
+ #{w 1596}#
+ #{s 1597}#
+ #{mod 1598}#)
+ (#{build-sequence 303}#
+ #{s 1597}#
(letrec*
- ((#{dobody 1590}#
- (lambda (#{body 1591}#
- #{r 1592}#
- #{w 1593}#
- #{mod 1594}#)
- (if (null? #{body 1591}#)
+ ((#{dobody 1609}#
+ (lambda (#{body 1610}#
+ #{r 1611}#
+ #{w 1612}#
+ #{mod 1613}#)
+ (if (null? #{body 1610}#)
'()
- (let ((#{first 1596}#
- (#{chi 423}#
- (car #{body 1591}#)
- #{r 1592}#
- #{w 1593}#
- #{mod 1594}#)))
- (cons #{first 1596}#
- (#{dobody 1590}#
- (cdr #{body 1591}#)
- #{r 1592}#
- #{w 1593}#
- #{mod 1594}#)))))))
- (#{dobody 1590}#
- #{body 1575}#
- #{r 1576}#
- #{w 1577}#
- #{mod 1579}#)))))
- (#{chi-top-sequence 415}#
- (lambda (#{body 1597}#
- #{r 1598}#
- #{w 1599}#
- #{s 1600}#
- #{m 1601}#
- #{esew 1602}#
- #{mod 1603}#)
+ (let ((#{first 1615}#
+ (#{chi 441}#
+ (car #{body 1610}#)
+ #{r 1611}#
+ #{w 1612}#
+ #{mod 1613}#)))
+ (cons #{first 1615}#
+ (#{dobody 1609}#
+ (cdr #{body 1610}#)
+ #{r 1611}#
+ #{w 1612}#
+ #{mod 1613}#)))))))
+ (#{dobody 1609}#
+ #{body 1594}#
+ #{r 1595}#
+ #{w 1596}#
+ #{mod 1598}#)))))
+ (#{chi-top-sequence 433}#
+ (lambda (#{body 1616}#
+ #{r 1617}#
+ #{w 1618}#
+ #{s 1619}#
+ #{m 1620}#
+ #{esew 1621}#
+ #{mod 1622}#)
(letrec*
- ((#{scan 1612}#
- (lambda (#{body 1613}#
- #{r 1614}#
- #{w 1615}#
- #{s 1616}#
- #{m 1617}#
- #{esew 1618}#
- #{mod 1619}#
- #{exps 1620}#)
- (if (null? #{body 1613}#)
- #{exps 1620}#
+ ((#{scan 1631}#
+ (lambda (#{body 1632}#
+ #{r 1633}#
+ #{w 1634}#
+ #{s 1635}#
+ #{m 1636}#
+ #{esew 1637}#
+ #{mod 1638}#
+ #{exps 1639}#)
+ (if (null? #{body 1632}#)
+ #{exps 1639}#
(call-with-values
(lambda ()
(call-with-values
(lambda ()
- (let ((#{e 1633}# (car #{body 1613}#)))
- (#{syntax-type 421}#
- #{e 1633}#
- #{r 1614}#
- #{w 1615}#
- (let ((#{t 1636}#
- (#{source-annotation 324}# #{e 1633}#)))
- (if #{t 1636}# #{t 1636}# #{s 1616}#))
+ (let ((#{e 1652}# (car #{body 1632}#)))
+ (#{syntax-type 439}#
+ #{e 1652}#
+ #{r 1633}#
+ #{w 1634}#
+ (let ((#{t 1655}#
+ (#{source-annotation 331}# #{e 1652}#)))
+ (if #{t 1655}# #{t 1655}# #{s 1635}#))
#f
- #{mod 1619}#
+ #{mod 1638}#
#f)))
- (lambda (#{type 1638}#
- #{value 1639}#
- #{e 1640}#
- #{w 1641}#
- #{s 1642}#
- #{mod 1643}#)
- (if (memv #{type 1638}# '(begin-form))
- (let ((#{tmp 1651}# #{e 1640}#))
- (let ((#{tmp 1652}#
- ($sc-dispatch #{tmp 1651}# '(_))))
- (if #{tmp 1652}#
- (@apply (lambda () #{exps 1620}#) #{tmp 1652}#)
- (let ((#{tmp 1653}#
- ($sc-dispatch
- #{tmp 1651}#
- '(_ any . each-any))))
- (if #{tmp 1653}#
- (@apply
- (lambda (#{e1 1656}# #{e2 1657}#)
- (#{scan 1612}#
- (cons #{e1 1656}# #{e2 1657}#)
- #{r 1614}#
- #{w 1641}#
- #{s 1642}#
- #{m 1617}#
- #{esew 1618}#
- #{mod 1643}#
- #{exps 1620}#))
- #{tmp 1653}#)
- (syntax-violation
- #f
- "source expression failed to match any
pattern"
- #{tmp 1651}#))))))
- (if (memv #{type 1638}# '(local-syntax-form))
- (#{chi-local-syntax 433}#
- #{value 1639}#
- #{e 1640}#
- #{r 1614}#
- #{w 1641}#
- #{s 1642}#
- #{mod 1643}#
- (lambda (#{body 1660}#
- #{r 1661}#
- #{w 1662}#
- #{s 1663}#
- #{mod 1664}#)
- (#{scan 1612}#
- #{body 1660}#
- #{r 1661}#
- #{w 1662}#
- #{s 1663}#
- #{m 1617}#
- #{esew 1618}#
- #{mod 1664}#
- #{exps 1620}#)))
- (if (memv #{type 1638}# '(eval-when-form))
- (let ((#{tmp 1671}# #{e 1640}#))
- (let ((#{tmp 1672}#
- ($sc-dispatch
- #{tmp 1671}#
- '(_ each-any any . each-any))))
- (if #{tmp 1672}#
- (@apply
- (lambda (#{x 1676}#
- #{e1 1677}#
- #{e2 1678}#)
- (let ((#{when-list 1681}#
- (#{chi-when-list 419}#
- #{e 1640}#
- #{x 1676}#
- #{w 1641}#))
- (#{body 1682}#
- (cons #{e1 1677}#
- #{e2 1678}#)))
- (if (eq? #{m 1617}# 'e)
- (if (memq 'eval #{when-list 1681}#)
- (#{scan 1612}#
- #{body 1682}#
- #{r 1614}#
- #{w 1641}#
- #{s 1642}#
- (if (memq 'expand
- #{when-list 1681}#)
- 'c&e
- 'e)
- '(eval)
- #{mod 1643}#
- #{exps 1620}#)
+ (lambda (#{type 1657}#
+ #{value 1658}#
+ #{e 1659}#
+ #{w 1660}#
+ #{s 1661}#
+ #{mod 1662}#)
+ (if (memv #{type 1657}# '(begin-form))
+ (let ((#{tmp 1671}# ($sc-dispatch #{e 1659}# '(_))))
+ (if #{tmp 1671}#
+ (@apply (lambda () #{exps 1639}#) #{tmp 1671}#)
+ (let ((#{tmp 1672}#
+ ($sc-dispatch
+ #{e 1659}#
+ '(_ any . each-any))))
+ (if #{tmp 1672}#
+ (@apply
+ (lambda (#{e1 1675}# #{e2 1676}#)
+ (#{scan 1631}#
+ (cons #{e1 1675}# #{e2 1676}#)
+ #{r 1633}#
+ #{w 1660}#
+ #{s 1661}#
+ #{m 1636}#
+ #{esew 1637}#
+ #{mod 1662}#
+ #{exps 1639}#))
+ #{tmp 1672}#)
+ (syntax-violation
+ #f
+ "source expression failed to match any
pattern"
+ #{e 1659}#)))))
+ (if (memv #{type 1657}# '(local-syntax-form))
+ (#{chi-local-syntax 451}#
+ #{value 1658}#
+ #{e 1659}#
+ #{r 1633}#
+ #{w 1660}#
+ #{s 1661}#
+ #{mod 1662}#
+ (lambda (#{body 1679}#
+ #{r 1680}#
+ #{w 1681}#
+ #{s 1682}#
+ #{mod 1683}#)
+ (#{scan 1631}#
+ #{body 1679}#
+ #{r 1680}#
+ #{w 1681}#
+ #{s 1682}#
+ #{m 1636}#
+ #{esew 1637}#
+ #{mod 1683}#
+ #{exps 1639}#)))
+ (if (memv #{type 1657}# '(eval-when-form))
+ (let ((#{tmp 1691}#
+ ($sc-dispatch
+ #{e 1659}#
+ '(_ each-any any . each-any))))
+ (if #{tmp 1691}#
+ (@apply
+ (lambda (#{x 1695}#
+ #{e1 1696}#
+ #{e2 1697}#)
+ (let ((#{when-list 1700}#
+ (#{chi-when-list 437}#
+ #{e 1659}#
+ #{x 1695}#
+ #{w 1660}#))
+ (#{body 1701}#
+ (cons #{e1 1696}# #{e2 1697}#)))
+ (if (eq? #{m 1636}# 'e)
+ (if (memq 'eval #{when-list 1700}#)
+ (#{scan 1631}#
+ #{body 1701}#
+ #{r 1633}#
+ #{w 1660}#
+ #{s 1661}#
+ (if (memq 'expand
+ #{when-list 1700}#)
+ 'c&e
+ 'e)
+ '(eval)
+ #{mod 1662}#
+ #{exps 1639}#)
+ (begin
+ (if (memq 'expand
+ #{when-list 1700}#)
+ (#{top-level-eval-hook 257}#
+ (#{chi-top-sequence 433}#
+ #{body 1701}#
+ #{r 1633}#
+ #{w 1660}#
+ #{s 1661}#
+ 'e
+ '(eval)
+ #{mod 1662}#)
+ #{mod 1662}#))
+ (values #{exps 1639}#)))
+ (if (memq 'load #{when-list 1700}#)
+ (if (let ((#{t 1710}#
+ (memq 'compile
+ #{when-list
1700}#)))
+ (if #{t 1710}#
+ #{t 1710}#
+ (let ((#{t 1713}#
+ (memq 'expand
+ #{when-list
1700}#)))
+ (if #{t 1713}#
+ #{t 1713}#
+ (if (eq? #{m 1636}#
+ 'c&e)
+ (memq 'eval
+ #{when-list
1700}#)
+ #f)))))
+ (#{scan 1631}#
+ #{body 1701}#
+ #{r 1633}#
+ #{w 1660}#
+ #{s 1661}#
+ 'c&e
+ '(compile load)
+ #{mod 1662}#
+ #{exps 1639}#)
+ (if (memq #{m 1636}# '(c c&e))
+ (#{scan 1631}#
+ #{body 1701}#
+ #{r 1633}#
+ #{w 1660}#
+ #{s 1661}#
+ 'c
+ '(load)
+ #{mod 1662}#
+ #{exps 1639}#)
+ (values #{exps 1639}#)))
+ (if (let ((#{t 1721}#
+ (memq 'compile
+ #{when-list
1700}#)))
+ (if #{t 1721}#
+ #{t 1721}#
+ (let ((#{t 1724}#
+ (memq 'expand
+ #{when-list
1700}#)))
+ (if #{t 1724}#
+ #{t 1724}#
+ (if (eq? #{m 1636}#
+ 'c&e)
+ (memq 'eval
+ #{when-list
1700}#)
+ #f)))))
(begin
- (if (memq 'expand
- #{when-list 1681}#)
- (#{top-level-eval-hook 252}#
- (#{chi-top-sequence 415}#
- #{body 1682}#
- #{r 1614}#
- #{w 1641}#
- #{s 1642}#
- 'e
- '(eval)
- #{mod 1643}#)
- #{mod 1643}#))
- (values #{exps 1620}#)))
- (if (memq 'load #{when-list 1681}#)
- (if (let ((#{t 1691}#
- (memq 'compile
- #{when-list
1681}#)))
- (if #{t 1691}#
- #{t 1691}#
- (let ((#{t 1694}#
- (memq 'expand
-
#{when-list 1681}#)))
- (if #{t 1694}#
- #{t 1694}#
- (if (eq? #{m 1617}#
- 'c&e)
- (memq 'eval
- #{when-list
1681}#)
- #f)))))
- (#{scan 1612}#
- #{body 1682}#
- #{r 1614}#
- #{w 1641}#
- #{s 1642}#
- 'c&e
- '(compile load)
- #{mod 1643}#
- #{exps 1620}#)
- (if (memq #{m 1617}# '(c c&e))
- (#{scan 1612}#
- #{body 1682}#
- #{r 1614}#
- #{w 1641}#
- #{s 1642}#
- 'c
- '(load)
- #{mod 1643}#
- #{exps 1620}#)
- (values #{exps 1620}#)))
- (if (let ((#{t 1702}#
- (memq 'compile
- #{when-list
1681}#)))
- (if #{t 1702}#
- #{t 1702}#
- (let ((#{t 1705}#
- (memq 'expand
-
#{when-list 1681}#)))
- (if #{t 1705}#
- #{t 1705}#
- (if (eq? #{m 1617}#
- 'c&e)
- (memq 'eval
- #{when-list
1681}#)
- #f)))))
- (begin
- (#{top-level-eval-hook 252}#
- (#{chi-top-sequence 415}#
- #{body 1682}#
- #{r 1614}#
- #{w 1641}#
- #{s 1642}#
- 'e
- '(eval)
- #{mod 1643}#)
- #{mod 1643}#)
- (values #{exps 1620}#))
- (values #{exps 1620}#))))))
- #{tmp 1672}#)
- (syntax-violation
- #f
- "source expression failed to match any
pattern"
- #{tmp 1671}#))))
- (if (memv #{type 1638}# '(define-syntax-form))
- (let ((#{n 1713}#
- (#{id-var-name 397}#
- #{value 1639}#
- #{w 1641}#))
- (#{r 1714}#
- (#{macros-only-env 335}# #{r 1614}#)))
- (if (memv #{m 1617}# '(c))
- (if (memq 'compile #{esew 1618}#)
- (let ((#{e 1717}#
- (#{chi-install-global 417}#
- #{n 1713}#
- (#{chi 423}#
- #{e 1640}#
- #{r 1714}#
- #{w 1641}#
- #{mod 1643}#))))
+ (#{top-level-eval-hook 257}#
+ (#{chi-top-sequence 433}#
+ #{body 1701}#
+ #{r 1633}#
+ #{w 1660}#
+ #{s 1661}#
+ 'e
+ '(eval)
+ #{mod 1662}#)
+ #{mod 1662}#)
+ (values #{exps 1639}#))
+ (values #{exps 1639}#))))))
+ #{tmp 1691}#)
+ (syntax-violation
+ #f
+ "source expression failed to match any
pattern"
+ #{e 1659}#)))
+ (if (memv #{type 1657}# '(define-syntax-form))
+ (let ((#{n 1732}#
+ (#{id-var-name 415}#
+ #{value 1658}#
+ #{w 1660}#))
+ (#{r 1733}#
+ (#{macros-only-env 345}# #{r 1633}#)))
+ (if (memv #{m 1636}# '(c))
+ (if (memq 'compile #{esew 1637}#)
+ (let ((#{e 1736}#
+ (#{chi-install-global 435}#
+ #{n 1732}#
+ (#{chi 441}#
+ #{e 1659}#
+ #{r 1733}#
+ #{w 1660}#
+ #{mod 1662}#))))
(begin
- (#{top-level-eval-hook 252}#
- #{e 1717}#
- #{mod 1643}#)
- (if (memq 'load #{esew 1618}#)
+ (#{top-level-eval-hook 257}#
+ #{e 1736}#
+ #{mod 1662}#)
+ (if (memq 'load #{esew 1637}#)
(values
- (cons #{e 1717}# #{exps 1620}#))
- (values #{exps 1620}#))))
- (if (memq 'load #{esew 1618}#)
+ (cons #{e 1736}# #{exps 1639}#))
+ (values #{exps 1639}#))))
+ (if (memq 'load #{esew 1637}#)
(values
- (cons (#{chi-install-global 417}#
- #{n 1713}#
- (#{chi 423}#
- #{e 1640}#
- #{r 1714}#
- #{w 1641}#
- #{mod 1643}#))
- #{exps 1620}#))
- (values #{exps 1620}#)))
- (if (memv #{m 1617}# '(c&e))
- (let ((#{e 1720}#
- (#{chi-install-global 417}#
- #{n 1713}#
- (#{chi 423}#
- #{e 1640}#
- #{r 1714}#
- #{w 1641}#
- #{mod 1643}#))))
+ (cons (#{chi-install-global 435}#
+ #{n 1732}#
+ (#{chi 441}#
+ #{e 1659}#
+ #{r 1733}#
+ #{w 1660}#
+ #{mod 1662}#))
+ #{exps 1639}#))
+ (values #{exps 1639}#)))
+ (if (memv #{m 1636}# '(c&e))
+ (let ((#{e 1739}#
+ (#{chi-install-global 435}#
+ #{n 1732}#
+ (#{chi 441}#
+ #{e 1659}#
+ #{r 1733}#
+ #{w 1660}#
+ #{mod 1662}#))))
(begin
- (#{top-level-eval-hook 252}#
- #{e 1720}#
- #{mod 1643}#)
+ (#{top-level-eval-hook 257}#
+ #{e 1739}#
+ #{mod 1662}#)
(values
- (cons #{e 1720}# #{exps 1620}#))))
+ (cons #{e 1739}# #{exps 1639}#))))
(begin
- (if (memq 'eval #{esew 1618}#)
- (#{top-level-eval-hook 252}#
- (#{chi-install-global 417}#
- #{n 1713}#
- (#{chi 423}#
- #{e 1640}#
- #{r 1714}#
- #{w 1641}#
- #{mod 1643}#))
- #{mod 1643}#))
- (values #{exps 1620}#)))))
- (if (memv #{type 1638}# '(define-form))
- (let ((#{n 1725}#
- (#{id-var-name 397}#
- #{value 1639}#
- #{w 1641}#)))
- (let ((#{type 1727}#
- (car (#{lookup 337}#
- #{n 1725}#
- #{r 1614}#
- #{mod 1643}#))))
- (if (memv #{type 1727}#
+ (if (memq 'eval #{esew 1637}#)
+ (#{top-level-eval-hook 257}#
+ (#{chi-install-global 435}#
+ #{n 1732}#
+ (#{chi 441}#
+ #{e 1659}#
+ #{r 1733}#
+ #{w 1660}#
+ #{mod 1662}#))
+ #{mod 1662}#))
+ (values #{exps 1639}#)))))
+ (if (memv #{type 1657}# '(define-form))
+ (let ((#{n 1744}#
+ (#{id-var-name 415}#
+ #{value 1658}#
+ #{w 1660}#)))
+ (let ((#{type 1746}#
+ (car (#{lookup 347}#
+ #{n 1744}#
+ #{r 1633}#
+ #{mod 1662}#))))
+ (if (memv #{type 1746}#
'(global
core
macro
module-ref))
(begin
- (if (if (memq #{m 1617}# '(c c&e))
+ (if (if (memq #{m 1636}# '(c c&e))
(if (not (module-local-variable
(current-module)
- #{n 1725}#))
+ #{n 1744}#))
(current-module)
#f)
#f)
- (let ((#{old 1734}#
+ (let ((#{old 1753}#
(module-variable
(current-module)
- #{n 1725}#)))
- (if (if (variable? #{old 1734}#)
+ #{n 1744}#)))
+ (if (if (variable? #{old 1753}#)
(variable-bound?
- #{old 1734}#)
+ #{old 1753}#)
#f)
(module-define!
(current-module)
- #{n 1725}#
- (variable-ref #{old 1734}#))
+ #{n 1744}#
+ (variable-ref #{old 1753}#))
(module-add!
(current-module)
- #{n 1725}#
+ #{n 1744}#
(make-undefined-variable)))))
(values
- (cons (if (eq? #{m 1617}# 'c&e)
- (let ((#{x 1738}#
-
(#{build-global-definition 283}#
- #{s 1642}#
- #{n 1725}#
- (#{chi 423}#
- #{e 1640}#
- #{r 1614}#
- #{w 1641}#
- #{mod
1643}#))))
+ (cons (if (eq? #{m 1636}# 'c&e)
+ (let ((#{x 1757}#
+
(#{build-global-definition 289}#
+ #{s 1661}#
+ #{n 1744}#
+ (#{chi 441}#
+ #{e 1659}#
+ #{r 1633}#
+ #{w 1660}#
+ #{mod
1662}#))))
(begin
- (#{top-level-eval-hook
252}#
- #{x 1738}#
- #{mod 1643}#)
- #{x 1738}#))
+ (#{top-level-eval-hook
257}#
+ #{x 1757}#
+ #{mod 1662}#)
+ #{x 1757}#))
(lambda ()
-
(#{build-global-definition 283}#
- #{s 1642}#
- #{n 1725}#
- (#{chi 423}#
- #{e 1640}#
- #{r 1614}#
- #{w 1641}#
- #{mod 1643}#))))
- #{exps 1620}#)))
- (if (memv #{type 1727}#
+
(#{build-global-definition 289}#
+ #{s 1661}#
+ #{n 1744}#
+ (#{chi 441}#
+ #{e 1659}#
+ #{r 1633}#
+ #{w 1660}#
+ #{mod 1662}#))))
+ #{exps 1639}#)))
+ (if (memv #{type 1746}#
'(displaced-lexical))
(syntax-violation
#f
"identifier out of context"
- #{e 1640}#
- (#{wrap 409}#
- #{value 1639}#
- #{w 1641}#
- #{mod 1643}#))
+ #{e 1659}#
+ (#{wrap 427}#
+ #{value 1658}#
+ #{w 1660}#
+ #{mod 1662}#))
(syntax-violation
#f
"cannot define keyword at top
level"
- #{e 1640}#
- (#{wrap 409}#
- #{value 1639}#
- #{w 1641}#
- #{mod 1643}#))))))
+ #{e 1659}#
+ (#{wrap 427}#
+ #{value 1658}#
+ #{w 1660}#
+ #{mod 1662}#))))))
(values
- (cons (if (eq? #{m 1617}# 'c&e)
- (let ((#{x 1743}#
- (#{chi-expr 425}#
- #{type 1638}#
- #{value 1639}#
- #{e 1640}#
- #{r 1614}#
- #{w 1641}#
- #{s 1642}#
- #{mod 1643}#)))
+ (cons (if (eq? #{m 1636}# 'c&e)
+ (let ((#{x 1762}#
+ (#{chi-expr 443}#
+ #{type 1657}#
+ #{value 1658}#
+ #{e 1659}#
+ #{r 1633}#
+ #{w 1660}#
+ #{s 1661}#
+ #{mod 1662}#)))
(begin
- (#{top-level-eval-hook 252}#
- #{x 1743}#
- #{mod 1643}#)
- #{x 1743}#))
+ (#{top-level-eval-hook 257}#
+ #{x 1762}#
+ #{mod 1662}#)
+ #{x 1762}#))
(lambda ()
- (#{chi-expr 425}#
- #{type 1638}#
- #{value 1639}#
- #{e 1640}#
- #{r 1614}#
- #{w 1641}#
- #{s 1642}#
- #{mod 1643}#)))
- #{exps 1620}#))))))))))
- (lambda (#{exps 1744}#)
- (#{scan 1612}#
- (cdr #{body 1613}#)
- #{r 1614}#
- #{w 1615}#
- #{s 1616}#
- #{m 1617}#
- #{esew 1618}#
- #{mod 1619}#
- #{exps 1744}#)))))))
+ (#{chi-expr 443}#
+ #{type 1657}#
+ #{value 1658}#
+ #{e 1659}#
+ #{r 1633}#
+ #{w 1660}#
+ #{s 1661}#
+ #{mod 1662}#)))
+ #{exps 1639}#))))))))))
+ (lambda (#{exps 1763}#)
+ (#{scan 1631}#
+ (cdr #{body 1632}#)
+ #{r 1633}#
+ #{w 1634}#
+ #{s 1635}#
+ #{m 1636}#
+ #{esew 1637}#
+ #{mod 1638}#
+ #{exps 1763}#)))))))
(call-with-values
(lambda ()
- (#{scan 1612}#
- #{body 1597}#
- #{r 1598}#
- #{w 1599}#
- #{s 1600}#
- #{m 1601}#
- #{esew 1602}#
- #{mod 1603}#
+ (#{scan 1631}#
+ #{body 1616}#
+ #{r 1617}#
+ #{w 1618}#
+ #{s 1619}#
+ #{m 1620}#
+ #{esew 1621}#
+ #{mod 1622}#
'()))
- (lambda (#{exps 1746}#)
- (if (null? #{exps 1746}#)
- (#{build-void 265}# #{s 1600}#)
- (#{build-sequence 297}#
- #{s 1600}#
+ (lambda (#{exps 1765}#)
+ (if (null? #{exps 1765}#)
+ (#{build-void 271}# #{s 1619}#)
+ (#{build-sequence 303}#
+ #{s 1619}#
(letrec*
- ((#{lp 1751}#
- (lambda (#{in 1752}# #{out 1753}#)
- (if (null? #{in 1752}#)
- #{out 1753}#
- (let ((#{e 1755}# (car #{in 1752}#)))
- (#{lp 1751}#
- (cdr #{in 1752}#)
- (cons (if (procedure? #{e 1755}#)
- (#{e 1755}#)
- #{e 1755}#)
- #{out 1753}#)))))))
- (#{lp 1751}# #{exps 1746}# '())))))))))
- (#{chi-install-global 417}#
- (lambda (#{name 1756}# #{e 1757}#)
- (#{build-global-definition 283}#
+ ((#{lp 1770}#
+ (lambda (#{in 1771}# #{out 1772}#)
+ (if (null? #{in 1771}#)
+ #{out 1772}#
+ (let ((#{e 1774}# (car #{in 1771}#)))
+ (#{lp 1770}#
+ (cdr #{in 1771}#)
+ (cons (if (procedure? #{e 1774}#)
+ (#{e 1774}#)
+ #{e 1774}#)
+ #{out 1772}#)))))))
+ (#{lp 1770}# #{exps 1765}# '())))))))))
+ (#{chi-install-global 435}#
+ (lambda (#{name 1775}# #{e 1776}#)
+ (#{build-global-definition 289}#
#f
- #{name 1756}#
- (#{build-primcall 291}#
+ #{name 1775}#
+ (#{build-primcall 297}#
#f
'make-syntax-transformer
- (list (#{build-data 295}# #f #{name 1756}#)
- (#{build-data 295}# #f 'macro)
- #{e 1757}#)))))
- (#{chi-when-list 419}#
- (lambda (#{e 1764}# #{when-list 1765}# #{w 1766}#)
+ (list (#{build-data 301}# #f #{name 1775}#)
+ (#{build-data 301}# #f 'macro)
+ #{e 1776}#)))))
+ (#{chi-when-list 437}#
+ (lambda (#{e 1783}# #{when-list 1784}# #{w 1785}#)
(letrec*
- ((#{f 1773}#
- (lambda (#{when-list 1774}# #{situations 1775}#)
- (if (null? #{when-list 1774}#)
- #{situations 1775}#
- (#{f 1773}#
- (cdr #{when-list 1774}#)
- (cons (let ((#{x 1777}#
- (syntax->datum (car #{when-list 1774}#))))
- (if (memq #{x 1777}# '(compile load eval expand))
- #{x 1777}#
+ ((#{f 1792}#
+ (lambda (#{when-list 1793}# #{situations 1794}#)
+ (if (null? #{when-list 1793}#)
+ #{situations 1794}#
+ (#{f 1792}#
+ (cdr #{when-list 1793}#)
+ (cons (let ((#{x 1796}#
+ (syntax->datum (car #{when-list 1793}#))))
+ (if (memq #{x 1796}# '(compile load eval expand))
+ #{x 1796}#
(syntax-violation
'eval-when
"invalid situation"
- #{e 1764}#
- (#{wrap 409}#
- (car #{when-list 1774}#)
- #{w 1766}#
+ #{e 1783}#
+ (#{wrap 427}#
+ (car #{when-list 1793}#)
+ #{w 1785}#
#f))))
- #{situations 1775}#))))))
- (#{f 1773}# #{when-list 1765}# '()))))
- (#{syntax-type 421}#
- (lambda (#{e 1778}#
- #{r 1779}#
- #{w 1780}#
- #{s 1781}#
- #{rib 1782}#
- #{mod 1783}#
- #{for-car? 1784}#)
- (if (symbol? #{e 1778}#)
- (let ((#{n 1796}#
- (#{id-var-name 397}# #{e 1778}# #{w 1780}#)))
- (let ((#{b 1798}#
- (#{lookup 337}#
- #{n 1796}#
- #{r 1779}#
- #{mod 1783}#)))
- (let ((#{type 1800}# (car #{b 1798}#)))
- (if (memv #{type 1800}# '(lexical))
+ #{situations 1794}#))))))
+ (#{f 1792}# #{when-list 1784}# '()))))
+ (#{syntax-type 439}#
+ (lambda (#{e 1797}#
+ #{r 1798}#
+ #{w 1799}#
+ #{s 1800}#
+ #{rib 1801}#
+ #{mod 1802}#
+ #{for-car? 1803}#)
+ (if (symbol? #{e 1797}#)
+ (let ((#{n 1815}#
+ (#{id-var-name 415}# #{e 1797}# #{w 1799}#)))
+ (let ((#{b 1817}#
+ (#{lookup 347}#
+ #{n 1815}#
+ #{r 1798}#
+ #{mod 1802}#)))
+ (let ((#{type 1819}# (car #{b 1817}#)))
+ (if (memv #{type 1819}# '(lexical))
(values
- #{type 1800}#
- (cdr #{b 1798}#)
- #{e 1778}#
- #{w 1780}#
- #{s 1781}#
- #{mod 1783}#)
- (if (memv #{type 1800}# '(global))
+ #{type 1819}#
+ (cdr #{b 1817}#)
+ #{e 1797}#
+ #{w 1799}#
+ #{s 1800}#
+ #{mod 1802}#)
+ (if (memv #{type 1819}# '(global))
(values
- #{type 1800}#
- #{n 1796}#
- #{e 1778}#
- #{w 1780}#
- #{s 1781}#
- #{mod 1783}#)
- (if (memv #{type 1800}# '(macro))
- (if #{for-car? 1784}#
+ #{type 1819}#
+ #{n 1815}#
+ #{e 1797}#
+ #{w 1799}#
+ #{s 1800}#
+ #{mod 1802}#)
+ (if (memv #{type 1819}# '(macro))
+ (if #{for-car? 1803}#
(values
- #{type 1800}#
- (cdr #{b 1798}#)
- #{e 1778}#
- #{w 1780}#
- #{s 1781}#
- #{mod 1783}#)
- (#{syntax-type 421}#
- (#{chi-macro 429}#
- (cdr #{b 1798}#)
- #{e 1778}#
- #{r 1779}#
- #{w 1780}#
- #{s 1781}#
- #{rib 1782}#
- #{mod 1783}#)
- #{r 1779}#
+ #{type 1819}#
+ (cdr #{b 1817}#)
+ #{e 1797}#
+ #{w 1799}#
+ #{s 1800}#
+ #{mod 1802}#)
+ (#{syntax-type 439}#
+ (#{chi-macro 447}#
+ (cdr #{b 1817}#)
+ #{e 1797}#
+ #{r 1798}#
+ #{w 1799}#
+ #{s 1800}#
+ #{rib 1801}#
+ #{mod 1802}#)
+ #{r 1798}#
'(())
- #{s 1781}#
- #{rib 1782}#
- #{mod 1783}#
+ #{s 1800}#
+ #{rib 1801}#
+ #{mod 1802}#
#f))
(values
- #{type 1800}#
- (cdr #{b 1798}#)
- #{e 1778}#
- #{w 1780}#
- #{s 1781}#
- #{mod 1783}#)))))))
- (if (pair? #{e 1778}#)
- (let ((#{first 1814}# (car #{e 1778}#)))
+ #{type 1819}#
+ (cdr #{b 1817}#)
+ #{e 1797}#
+ #{w 1799}#
+ #{s 1800}#
+ #{mod 1802}#)))))))
+ (if (pair? #{e 1797}#)
+ (let ((#{first 1833}# (car #{e 1797}#)))
(call-with-values
(lambda ()
- (#{syntax-type 421}#
- #{first 1814}#
- #{r 1779}#
- #{w 1780}#
- #{s 1781}#
- #{rib 1782}#
- #{mod 1783}#
+ (#{syntax-type 439}#
+ #{first 1833}#
+ #{r 1798}#
+ #{w 1799}#
+ #{s 1800}#
+ #{rib 1801}#
+ #{mod 1802}#
#t))
- (lambda (#{ftype 1815}#
- #{fval 1816}#
- #{fe 1817}#
- #{fw 1818}#
- #{fs 1819}#
- #{fmod 1820}#)
- (if (memv #{ftype 1815}# '(lexical))
+ (lambda (#{ftype 1834}#
+ #{fval 1835}#
+ #{fe 1836}#
+ #{fw 1837}#
+ #{fs 1838}#
+ #{fmod 1839}#)
+ (if (memv #{ftype 1834}# '(lexical))
(values
'lexical-call
- #{fval 1816}#
- #{e 1778}#
- #{w 1780}#
- #{s 1781}#
- #{mod 1783}#)
- (if (memv #{ftype 1815}# '(global))
+ #{fval 1835}#
+ #{e 1797}#
+ #{w 1799}#
+ #{s 1800}#
+ #{mod 1802}#)
+ (if (memv #{ftype 1834}# '(global))
(values
'global-call
- (#{make-syntax-object 307}#
- #{fval 1816}#
- #{w 1780}#
- #{fmod 1820}#)
- #{e 1778}#
- #{w 1780}#
- #{s 1781}#
- #{mod 1783}#)
- (if (memv #{ftype 1815}# '(macro))
- (#{syntax-type 421}#
- (#{chi-macro 429}#
- #{fval 1816}#
- #{e 1778}#
- #{r 1779}#
- #{w 1780}#
- #{s 1781}#
- #{rib 1782}#
- #{mod 1783}#)
- #{r 1779}#
+ (#{make-syntax-object 314}#
+ #{fval 1835}#
+ #{w 1799}#
+ #{fmod 1839}#)
+ #{e 1797}#
+ #{w 1799}#
+ #{s 1800}#
+ #{mod 1802}#)
+ (if (memv #{ftype 1834}# '(macro))
+ (#{syntax-type 439}#
+ (#{chi-macro 447}#
+ #{fval 1835}#
+ #{e 1797}#
+ #{r 1798}#
+ #{w 1799}#
+ #{s 1800}#
+ #{rib 1801}#
+ #{mod 1802}#)
+ #{r 1798}#
'(())
- #{s 1781}#
- #{rib 1782}#
- #{mod 1783}#
- #{for-car? 1784}#)
- (if (memv #{ftype 1815}# '(module-ref))
+ #{s 1800}#
+ #{rib 1801}#
+ #{mod 1802}#
+ #{for-car? 1803}#)
+ (if (memv #{ftype 1834}# '(module-ref))
(call-with-values
(lambda ()
- (#{fval 1816}# #{e 1778}# #{r 1779}# #{w 1780}#))
- (lambda (#{e 1832}#
- #{r 1833}#
- #{w 1834}#
- #{s 1835}#
- #{mod 1836}#)
- (#{syntax-type 421}#
- #{e 1832}#
- #{r 1833}#
- #{w 1834}#
- #{s 1835}#
- #{rib 1782}#
- #{mod 1836}#
- #{for-car? 1784}#)))
- (if (memv #{ftype 1815}# '(core))
+ (#{fval 1835}# #{e 1797}# #{r 1798}# #{w 1799}#))
+ (lambda (#{e 1851}#
+ #{r 1852}#
+ #{w 1853}#
+ #{s 1854}#
+ #{mod 1855}#)
+ (#{syntax-type 439}#
+ #{e 1851}#
+ #{r 1852}#
+ #{w 1853}#
+ #{s 1854}#
+ #{rib 1801}#
+ #{mod 1855}#
+ #{for-car? 1803}#)))
+ (if (memv #{ftype 1834}# '(core))
(values
'core-form
- #{fval 1816}#
- #{e 1778}#
- #{w 1780}#
- #{s 1781}#
- #{mod 1783}#)
- (if (memv #{ftype 1815}# '(local-syntax))
+ #{fval 1835}#
+ #{e 1797}#
+ #{w 1799}#
+ #{s 1800}#
+ #{mod 1802}#)
+ (if (memv #{ftype 1834}# '(local-syntax))
(values
'local-syntax-form
- #{fval 1816}#
- #{e 1778}#
- #{w 1780}#
- #{s 1781}#
- #{mod 1783}#)
- (if (memv #{ftype 1815}# '(begin))
+ #{fval 1835}#
+ #{e 1797}#
+ #{w 1799}#
+ #{s 1800}#
+ #{mod 1802}#)
+ (if (memv #{ftype 1834}# '(begin))
(values
'begin-form
#f
- #{e 1778}#
- #{w 1780}#
- #{s 1781}#
- #{mod 1783}#)
- (if (memv #{ftype 1815}# '(eval-when))
+ #{e 1797}#
+ #{w 1799}#
+ #{s 1800}#
+ #{mod 1802}#)
+ (if (memv #{ftype 1834}# '(eval-when))
(values
'eval-when-form
#f
- #{e 1778}#
- #{w 1780}#
- #{s 1781}#
- #{mod 1783}#)
- (if (memv #{ftype 1815}# '(define))
- (let ((#{tmp 1847}# #{e 1778}#))
- (let ((#{tmp 1848}#
- ($sc-dispatch
- #{tmp 1847}#
- '(_ any any))))
- (if (if #{tmp 1848}#
- (@apply
- (lambda (#{name 1851}#
- #{val 1852}#)
- (#{id? 343}# #{name 1851}#))
- #{tmp 1848}#)
- #f)
- (@apply
- (lambda (#{name 1855}# #{val 1856}#)
- (values
- 'define-form
- #{name 1855}#
- #{val 1856}#
- #{w 1780}#
- #{s 1781}#
- #{mod 1783}#))
- #{tmp 1848}#)
- (let ((#{tmp 1857}#
- ($sc-dispatch
- #{tmp 1847}#
- '(_ (any . any)
- any
- .
- each-any))))
- (if (if #{tmp 1857}#
- (@apply
- (lambda (#{name 1862}#
- #{args 1863}#
- #{e1 1864}#
- #{e2 1865}#)
- (if (#{id? 343}#
- #{name 1862}#)
- (#{valid-bound-ids?
403}#
- (#{lambda-var-list
453}#
- #{args 1863}#))
- #f))
- #{tmp 1857}#)
- #f)
- (@apply
- (lambda (#{name 1872}#
- #{args 1873}#
- #{e1 1874}#
- #{e2 1875}#)
- (values
- 'define-form
- (#{wrap 409}#
- #{name 1872}#
- #{w 1780}#
- #{mod 1783}#)
- (#{decorate-source 261}#
- (cons '#(syntax-object
- lambda
- ((top)
- #(ribcage
- #(name
- args
- e1
- e2)
- #((top)
- (top)
- (top)
- (top))
- #("i1868"
- "i1869"
- "i1870"
- "i1871"))
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(ftype
- fval
- fe
- fw
- fs
- fmod)
- #((top)
- (top)
- (top)
- (top)
- (top)
- (top))
- #("i1821"
- "i1822"
- "i1823"
- "i1824"
- "i1825"
- "i1826"))
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(first)
- #((top))
- #("i1813"))
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(e
- r
- w
- s
- rib
- mod
- for-car?)
- #((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- #("i1785"
- "i1786"
- "i1787"
- "i1788"
- "i1789"
- "i1790"
- "i1791"))
- #(ribcage
-
(lambda-var-list
- gen-var
- strip
-
chi-lambda-case
-
lambda*-formals
-
chi-simple-lambda
-
lambda-formals
- ellipsis?
- chi-void
-
eval-local-transformer
-
chi-local-syntax
- chi-body
- chi-macro
- chi-call
- chi-expr
- chi
- syntax-type
-
chi-when-list
-
chi-install-global
-
chi-top-sequence
- chi-sequence
- source-wrap
- wrap
-
bound-id-member?
-
distinct-bound-ids?
-
valid-bound-ids?
- bound-id=?
- free-id=?
- id-var-name
- same-marks?
- join-marks
- join-wraps
- smart-append
-
make-binding-wrap
-
extend-ribcage!
-
make-empty-ribcage
- new-mark
- anti-mark
-
the-anti-mark
- top-marked?
- top-wrap
- empty-wrap
-
set-ribcage-labels!
-
set-ribcage-marks!
-
set-ribcage-symnames!
-
ribcage-labels
-
ribcage-marks
-
ribcage-symnames
- ribcage?
- make-ribcage
- gen-labels
- gen-label
- make-rename
- rename-marks
- rename-new
- rename-old
-
subst-rename?
- wrap-subst
- wrap-marks
- make-wrap
-
id-sym-name&marks
- id-sym-name
- id?
-
nonsymbol-id?
-
global-extend
- lookup
-
macros-only-env
-
extend-var-env
- extend-env
- null-env
-
binding-value
- binding-type
- make-binding
- arg-check
-
source-annotation
- no-source
-
set-syntax-object-module!
-
set-syntax-object-wrap!
-
set-syntax-object-expression!
-
syntax-object-module
-
syntax-object-wrap
-
syntax-object-expression
-
syntax-object?
-
make-syntax-object
-
build-lexical-var
- build-letrec
-
build-named-let
- build-let
-
build-sequence
- build-data
-
build-primref
-
build-primcall
-
build-lambda-case
-
build-case-lambda
-
build-simple-lambda
-
build-global-definition
-
build-global-assignment
-
build-global-reference
-
analyze-variable
-
build-lexical-assignment
-
build-lexical-reference
- build-dynlet
-
build-conditional
- build-call
- build-void
-
maybe-name-value!
-
decorate-source
-
get-global-definition-hook
-
put-global-definition-hook
- gensym-hook
-
local-eval-hook
-
top-level-eval-hook
- fx<
- fx=
- fx-
- fx+
-
set-lambda-meta!
- lambda-meta
- lambda?
- make-dynlet
- make-letrec
- make-let
-
make-lambda-case
- make-lambda
- make-seq
-
make-primcall
- make-call
-
make-conditional
-
make-toplevel-define
-
make-toplevel-set
-
make-toplevel-ref
-
make-module-set
-
make-module-ref
-
make-lexical-set
-
make-lexical-ref
-
make-primitive-ref
- make-const
- make-void)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("i452"
- "i450"
- "i448"
- "i446"
- "i444"
- "i442"
- "i440"
- "i438"
- "i436"
- "i434"
- "i432"
- "i430"
- "i428"
- "i426"
- "i424"
- "i422"
- "i420"
- "i418"
- "i416"
- "i414"
- "i412"
- "i410"
- "i408"
- "i406"
- "i404"
- "i402"
- "i400"
- "i398"
- "i396"
- "i394"
- "i392"
- "i390"
- "i388"
- "i386"
- "i384"
- "i383"
- "i382"
- "i380"
- "i379"
- "i378"
- "i377"
- "i376"
- "i374"
- "i372"
- "i370"
- "i368"
- "i366"
- "i364"
- "i362"
- "i360"
- "i357"
- "i355"
- "i354"
- "i353"
- "i352"
- "i351"
- "i350"
- "i349"
- "i348"
- "i347"
- "i345"
- "i344"
- "i342"
- "i340"
- "i338"
- "i336"
- "i334"
- "i332"
- "i330"
- "i329"
- "i328"
- "i327"
- "i326"
- "i325"
- "i323"
- "i322"
- "i320"
- "i318"
- "i316"
- "i314"
- "i312"
- "i310"
- "i308"
- "i306"
- "i304"
- "i302"
- "i300"
- "i298"
- "i296"
- "i294"
- "i292"
- "i290"
- "i288"
- "i286"
- "i284"
- "i282"
- "i280"
- "i278"
- "i276"
- "i274"
- "i272"
- "i270"
- "i268"
- "i266"
- "i264"
- "i262"
- "i260"
- "i258"
- "i256"
- "i255"
- "i253"
- "i251"
- "i250"
- "i249"
- "i248"
- "i247"
- "i245"
- "i243"
- "i241"
- "i238"
- "i236"
- "i234"
- "i232"
- "i230"
- "i228"
- "i226"
- "i224"
- "i222"
- "i220"
- "i218"
- "i216"
- "i214"
- "i212"
- "i210"
- "i208"
- "i206"
- "i204"
- "i202"))
- #(ribcage
-
(define-structure
-
define-expansion-accessors
-
define-expansion-constructors)
- ((top)
- (top)
- (top))
- ("i40"
- "i39"
- "i38")))
- (hygiene guile))
- (#{wrap 409}#
- (cons #{args
1873}#
- (cons #{e1
1874}#
- #{e2
1875}#))
- #{w 1780}#
- #{mod 1783}#))
- #{s 1781}#)
- '(())
- #{s 1781}#
- #{mod 1783}#))
- #{tmp 1857}#)
- (let ((#{tmp 1878}#
- ($sc-dispatch
- #{tmp 1847}#
- '(_ any))))
- (if (if #{tmp 1878}#
- (@apply
- (lambda (#{name 1880}#)
- (#{id? 343}#
- #{name 1880}#))
- #{tmp 1878}#)
- #f)
- (@apply
- (lambda (#{name 1882}#)
- (values
- 'define-form
- (#{wrap 409}#
- #{name 1882}#
- #{w 1780}#
- #{mod 1783}#)
- '(#(syntax-object
- if
- ((top)
- #(ribcage
- #(name)
- #((top))
- #("i1881"))
- #(ribcage () () ())
- #(ribcage () () ())
- #(ribcage
- #(ftype
- fval
- fe
- fw
- fs
- fmod)
- #((top)
+ #{e 1797}#
+ #{w 1799}#
+ #{s 1800}#
+ #{mod 1802}#)
+ (if (memv #{ftype 1834}# '(define))
+ (let ((#{tmp 1867}#
+ ($sc-dispatch
+ #{e 1797}#
+ '(_ any any))))
+ (if (if #{tmp 1867}#
+ (@apply
+ (lambda (#{name 1870}#
+ #{val 1871}#)
+ (#{id? 353}# #{name 1870}#))
+ #{tmp 1867}#)
+ #f)
+ (@apply
+ (lambda (#{name 1874}# #{val 1875}#)
+ (values
+ 'define-form
+ #{name 1874}#
+ #{val 1875}#
+ #{w 1799}#
+ #{s 1800}#
+ #{mod 1802}#))
+ #{tmp 1867}#)
+ (let ((#{tmp 1876}#
+ ($sc-dispatch
+ #{e 1797}#
+ '(_ (any . any)
+ any
+ .
+ each-any))))
+ (if (if #{tmp 1876}#
+ (@apply
+ (lambda (#{name 1881}#
+ #{args 1882}#
+ #{e1 1883}#
+ #{e2 1884}#)
+ (if (#{id? 353}#
+ #{name 1881}#)
+ (#{valid-bound-ids? 421}#
+ (#{lambda-var-list 471}#
+ #{args 1882}#))
+ #f))
+ #{tmp 1876}#)
+ #f)
+ (@apply
+ (lambda (#{name 1891}#
+ #{args 1892}#
+ #{e1 1893}#
+ #{e2 1894}#)
+ (values
+ 'define-form
+ (#{wrap 427}#
+ #{name 1891}#
+ #{w 1799}#
+ #{mod 1802}#)
+ (#{decorate-source 267}#
+ (cons '#(syntax-object
+ lambda
+ ((top)
+ #(ribcage
+ #(name
+ args
+ e1
+ e2)
+ #((top)
+ (top)
+ (top)
+ (top))
+ #("i1887"
+ "i1888"
+ "i1889"
+ "i1890"))
+ #(ribcage
+ ()
+ ()
+ ())
+ #(ribcage
+ ()
+ ()
+ ())
+ #(ribcage
+ #(ftype
+ fval
+ fe
+ fw
+ fs
+ fmod)
+ #((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ #("i1840"
+ "i1841"
+ "i1842"
+ "i1843"
+ "i1844"
+ "i1845"))
+ #(ribcage
+ ()
+ ()
+ ())
+ #(ribcage
+ #(first)
+ #((top))
+ #("i1832"))
+ #(ribcage
+ ()
+ ()
+ ())
+ #(ribcage
+ ()
+ ()
+ ())
+ #(ribcage
+ ()
+ ()
+ ())
+ #(ribcage
+ #(e
+ r
+ w
+ s
+ rib
+ mod
+ for-car?)
+ #((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ #("i1804"
+ "i1805"
+ "i1806"
+ "i1807"
+ "i1808"
+ "i1809"
+ "i1810"))
+ #(ribcage
+ (lambda-var-list
+ gen-var
+ strip
+
chi-lambda-case
+
lambda*-formals
+
chi-simple-lambda
+ lambda-formals
+ ellipsis?
+ chi-void
+
eval-local-transformer
+
chi-local-syntax
+ chi-body
+ chi-macro
+ chi-call
+ chi-expr
+ chi
+ syntax-type
+ chi-when-list
+
chi-install-global
+
chi-top-sequence
+ chi-sequence
+ source-wrap
+ wrap
+
bound-id-member?
+
distinct-bound-ids?
+
valid-bound-ids?
+ bound-id=?
+ free-id=?
+ id-var-name
+ same-marks?
+ join-marks
+ join-wraps
+ smart-append
+
make-binding-wrap
+
extend-ribcage!
+
make-empty-ribcage
+ new-mark
+ anti-mark
+ the-anti-mark
+ top-marked?
+ top-wrap
+ empty-wrap
+
set-ribcage-labels!
+
set-ribcage-marks!
+
set-ribcage-symnames!
+ ribcage-labels
+ ribcage-marks
+
ribcage-symnames
+ ribcage?
+ make-ribcage
+ gen-labels
+ gen-label
+ make-rename
+ rename-marks
+ rename-new
+ rename-old
+ subst-rename?
+ wrap-subst
+ wrap-marks
+ make-wrap
+
id-sym-name&marks
+ id-sym-name
+ id?
+ nonsymbol-id?
+ global-extend
+ lookup
+
macros-only-env
+ extend-var-env
+ extend-env
+ null-env
+ binding-value
+ binding-type
+ make-binding
+ arg-check
+
source-annotation
+ no-source
+
set-syntax-object-module!
+
set-syntax-object-wrap!
+
set-syntax-object-expression!
+
syntax-object-module
+
syntax-object-wrap
+
syntax-object-expression
+ syntax-object?
+
make-syntax-object
+
build-lexical-var
+ build-letrec
+
build-named-let
+ build-let
+ build-sequence
+ build-data
+ build-primref
+ build-primcall
+
build-lambda-case
+
build-case-lambda
+
build-simple-lambda
+
build-global-definition
+
build-global-assignment
+
build-global-reference
+
analyze-variable
+
build-lexical-assignment
+
build-lexical-reference
+ build-dynlet
+
build-conditional
+ build-call
+ build-void
+
maybe-name-value!
+
decorate-source
+
get-global-definition-hook
+
put-global-definition-hook
+ gensym-hook
+
local-eval-hook
+
top-level-eval-hook
+ fx<
+ fx=
+ fx-
+ fx+
+
set-lambda-meta!
+ lambda-meta
+ lambda?
+ make-dynlet
+ make-letrec
+ make-let
+
make-lambda-case
+ make-lambda
+ make-seq
+ make-primcall
+ make-call
+
make-conditional
+
make-toplevel-define
+
make-toplevel-set
+
make-toplevel-ref
+
make-module-set
+
make-module-ref
+
make-lexical-set
+
make-lexical-ref
+
make-primitive-ref
+ make-const
+ make-void)
+ ((top)
(top)
(top)
(top)
(top)
- (top))
- #("i1821"
- "i1822"
- "i1823"
- "i1824"
- "i1825"
- "i1826"))
- #(ribcage () () ())
- #(ribcage
- #(first)
- #((top))
- #("i1813"))
- #(ribcage () () ())
- #(ribcage () () ())
- #(ribcage () () ())
- #(ribcage
- #(e
- r
- w
- s
- rib
- mod
- for-car?)
- #((top)
(top)
(top)
(top)
(top)
(top)
- (top))
- #("i1785"
- "i1786"
- "i1787"
- "i1788"
- "i1789"
- "i1790"
- "i1791"))
- #(ribcage
- (lambda-var-list
- gen-var
- strip
- chi-lambda-case
- lambda*-formals
-
chi-simple-lambda
- lambda-formals
- ellipsis?
- chi-void
-
eval-local-transformer
-
chi-local-syntax
- chi-body
- chi-macro
- chi-call
- chi-expr
- chi
- syntax-type
- chi-when-list
-
chi-install-global
-
chi-top-sequence
- chi-sequence
- source-wrap
- wrap
-
bound-id-member?
-
distinct-bound-ids?
-
valid-bound-ids?
- bound-id=?
- free-id=?
- id-var-name
- same-marks?
- join-marks
- join-wraps
- smart-append
-
make-binding-wrap
- extend-ribcage!
-
make-empty-ribcage
- new-mark
- anti-mark
- the-anti-mark
- top-marked?
- top-wrap
- empty-wrap
-
set-ribcage-labels!
-
set-ribcage-marks!
-
set-ribcage-symnames!
- ribcage-labels
- ribcage-marks
-
ribcage-symnames
- ribcage?
- make-ribcage
- gen-labels
- gen-label
- make-rename
- rename-marks
- rename-new
- rename-old
- subst-rename?
- wrap-subst
- wrap-marks
- make-wrap
-
id-sym-name&marks
- id-sym-name
- id?
- nonsymbol-id?
- global-extend
- lookup
- macros-only-env
- extend-var-env
- extend-env
- null-env
- binding-value
- binding-type
- make-binding
- arg-check
-
source-annotation
- no-source
-
set-syntax-object-module!
-
set-syntax-object-wrap!
-
set-syntax-object-expression!
-
syntax-object-module
-
syntax-object-wrap
-
syntax-object-expression
- syntax-object?
-
make-syntax-object
-
build-lexical-var
- build-letrec
- build-named-let
- build-let
- build-sequence
- build-data
- build-primref
- build-primcall
-
build-lambda-case
-
build-case-lambda
-
build-simple-lambda
-
build-global-definition
-
build-global-assignment
-
build-global-reference
-
analyze-variable
-
build-lexical-assignment
-
build-lexical-reference
- build-dynlet
-
build-conditional
- build-call
- build-void
-
maybe-name-value!
- decorate-source
-
get-global-definition-hook
-
put-global-definition-hook
- gensym-hook
- local-eval-hook
-
top-level-eval-hook
- fx<
- fx=
- fx-
- fx+
-
set-lambda-meta!
- lambda-meta
- lambda?
- make-dynlet
- make-letrec
- make-let
-
make-lambda-case
- make-lambda
- make-seq
- make-primcall
- make-call
-
make-conditional
-
make-toplevel-define
-
make-toplevel-set
-
make-toplevel-ref
- make-module-set
- make-module-ref
-
make-lexical-set
-
make-lexical-ref
-
make-primitive-ref
- make-const
- make-void)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("i452"
- "i450"
- "i448"
- "i446"
- "i444"
- "i442"
- "i440"
- "i438"
- "i436"
- "i434"
- "i432"
- "i430"
- "i428"
- "i426"
- "i424"
- "i422"
- "i420"
- "i418"
- "i416"
- "i414"
- "i412"
- "i410"
- "i408"
- "i406"
- "i404"
- "i402"
- "i400"
- "i398"
- "i396"
- "i394"
- "i392"
- "i390"
- "i388"
- "i386"
- "i384"
- "i383"
- "i382"
- "i380"
- "i379"
- "i378"
- "i377"
- "i376"
- "i374"
- "i372"
- "i370"
- "i368"
- "i366"
- "i364"
- "i362"
- "i360"
- "i357"
- "i355"
- "i354"
- "i353"
- "i352"
- "i351"
- "i350"
- "i349"
- "i348"
- "i347"
- "i345"
- "i344"
- "i342"
- "i340"
- "i338"
- "i336"
- "i334"
- "i332"
- "i330"
- "i329"
- "i328"
- "i327"
- "i326"
- "i325"
- "i323"
- "i322"
- "i320"
- "i318"
- "i316"
- "i314"
- "i312"
- "i310"
- "i308"
- "i306"
- "i304"
- "i302"
- "i300"
- "i298"
- "i296"
- "i294"
- "i292"
- "i290"
- "i288"
- "i286"
- "i284"
- "i282"
- "i280"
- "i278"
- "i276"
- "i274"
- "i272"
- "i270"
- "i268"
- "i266"
- "i264"
- "i262"
- "i260"
- "i258"
- "i256"
- "i255"
- "i253"
- "i251"
- "i250"
- "i249"
- "i248"
- "i247"
- "i245"
- "i243"
- "i241"
- "i238"
- "i236"
- "i234"
- "i232"
- "i230"
- "i228"
- "i226"
- "i224"
- "i222"
- "i220"
- "i218"
- "i216"
- "i214"
- "i212"
- "i210"
- "i208"
- "i206"
- "i204"
- "i202"))
- #(ribcage
- (define-structure
-
define-expansion-accessors
-
define-expansion-constructors)
- ((top)
- (top)
- (top))
- ("i40"
- "i39"
- "i38")))
- (hygiene guile))
- #(syntax-object
- #f
- ((top)
- #(ribcage
- #(name)
- #((top))
- #("i1881"))
- #(ribcage () () ())
- #(ribcage () () ())
- #(ribcage
- #(ftype
- fval
- fe
- fw
- fs
- fmod)
- #((top)
(top)
(top)
(top)
(top)
- (top))
- #("i1821"
- "i1822"
- "i1823"
- "i1824"
- "i1825"
- "i1826"))
- #(ribcage () () ())
- #(ribcage
- #(first)
- #((top))
- #("i1813"))
- #(ribcage () () ())
- #(ribcage () () ())
- #(ribcage () () ())
- #(ribcage
- #(e
- r
- w
- s
- rib
- mod
- for-car?)
- #((top)
(top)
(top)
(top)
(top)
(top)
- (top))
- #("i1785"
- "i1786"
- "i1787"
- "i1788"
- "i1789"
- "i1790"
- "i1791"))
- #(ribcage
- (lambda-var-list
- gen-var
- strip
- chi-lambda-case
- lambda*-formals
-
chi-simple-lambda
- lambda-formals
- ellipsis?
- chi-void
-
eval-local-transformer
-
chi-local-syntax
- chi-body
- chi-macro
- chi-call
- chi-expr
- chi
- syntax-type
- chi-when-list
-
chi-install-global
-
chi-top-sequence
- chi-sequence
- source-wrap
- wrap
-
bound-id-member?
-
distinct-bound-ids?
-
valid-bound-ids?
- bound-id=?
- free-id=?
- id-var-name
- same-marks?
- join-marks
- join-wraps
- smart-append
-
make-binding-wrap
- extend-ribcage!
-
make-empty-ribcage
- new-mark
- anti-mark
- the-anti-mark
- top-marked?
- top-wrap
- empty-wrap
-
set-ribcage-labels!
-
set-ribcage-marks!
-
set-ribcage-symnames!
- ribcage-labels
- ribcage-marks
-
ribcage-symnames
- ribcage?
- make-ribcage
- gen-labels
- gen-label
- make-rename
- rename-marks
- rename-new
- rename-old
- subst-rename?
- wrap-subst
- wrap-marks
- make-wrap
-
id-sym-name&marks
- id-sym-name
- id?
- nonsymbol-id?
- global-extend
- lookup
- macros-only-env
- extend-var-env
- extend-env
- null-env
- binding-value
- binding-type
- make-binding
- arg-check
-
source-annotation
- no-source
-
set-syntax-object-module!
-
set-syntax-object-wrap!
-
set-syntax-object-expression!
-
syntax-object-module
-
syntax-object-wrap
-
syntax-object-expression
- syntax-object?
-
make-syntax-object
-
build-lexical-var
- build-letrec
- build-named-let
- build-let
- build-sequence
- build-data
- build-primref
- build-primcall
-
build-lambda-case
-
build-case-lambda
-
build-simple-lambda
-
build-global-definition
-
build-global-assignment
-
build-global-reference
-
analyze-variable
-
build-lexical-assignment
-
build-lexical-reference
- build-dynlet
-
build-conditional
- build-call
- build-void
-
maybe-name-value!
- decorate-source
-
get-global-definition-hook
-
put-global-definition-hook
- gensym-hook
- local-eval-hook
-
top-level-eval-hook
- fx<
- fx=
- fx-
- fx+
-
set-lambda-meta!
- lambda-meta
- lambda?
- make-dynlet
- make-letrec
- make-let
-
make-lambda-case
- make-lambda
- make-seq
- make-primcall
- make-call
-
make-conditional
-
make-toplevel-define
-
make-toplevel-set
-
make-toplevel-ref
- make-module-set
- make-module-ref
-
make-lexical-set
-
make-lexical-ref
-
make-primitive-ref
- make-const
- make-void)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("i452"
- "i450"
- "i448"
- "i446"
- "i444"
- "i442"
- "i440"
- "i438"
- "i436"
- "i434"
- "i432"
- "i430"
- "i428"
- "i426"
- "i424"
- "i422"
- "i420"
- "i418"
- "i416"
- "i414"
- "i412"
- "i410"
- "i408"
- "i406"
- "i404"
- "i402"
- "i400"
- "i398"
- "i396"
- "i394"
- "i392"
- "i390"
- "i388"
- "i386"
- "i384"
- "i383"
- "i382"
- "i380"
- "i379"
- "i378"
- "i377"
- "i376"
- "i374"
- "i372"
- "i370"
- "i368"
- "i366"
- "i364"
- "i362"
- "i360"
- "i357"
- "i355"
- "i354"
- "i353"
- "i352"
- "i351"
- "i350"
- "i349"
- "i348"
- "i347"
- "i345"
- "i344"
- "i342"
- "i340"
- "i338"
- "i336"
- "i334"
- "i332"
- "i330"
- "i329"
- "i328"
- "i327"
- "i326"
- "i325"
- "i323"
- "i322"
- "i320"
- "i318"
- "i316"
- "i314"
- "i312"
- "i310"
- "i308"
- "i306"
- "i304"
- "i302"
- "i300"
- "i298"
- "i296"
- "i294"
- "i292"
- "i290"
- "i288"
- "i286"
- "i284"
- "i282"
- "i280"
- "i278"
- "i276"
- "i274"
- "i272"
- "i270"
- "i268"
- "i266"
- "i264"
- "i262"
- "i260"
- "i258"
- "i256"
- "i255"
- "i253"
- "i251"
- "i250"
- "i249"
- "i248"
- "i247"
- "i245"
- "i243"
- "i241"
- "i238"
- "i236"
- "i234"
- "i232"
- "i230"
- "i228"
- "i226"
- "i224"
- "i222"
- "i220"
- "i218"
- "i216"
- "i214"
- "i212"
- "i210"
- "i208"
- "i206"
- "i204"
- "i202"))
- #(ribcage
- (define-structure
-
define-expansion-accessors
-
define-expansion-constructors)
- ((top)
- (top)
- (top))
- ("i40"
- "i39"
- "i38")))
- (hygiene guile))
- #(syntax-object
- #f
- ((top)
- #(ribcage
- #(name)
- #((top))
- #("i1881"))
- #(ribcage () () ())
- #(ribcage () () ())
- #(ribcage
- #(ftype
- fval
- fe
- fw
- fs
- fmod)
- #((top)
(top)
(top)
(top)
(top)
- (top))
- #("i1821"
- "i1822"
- "i1823"
- "i1824"
- "i1825"
- "i1826"))
- #(ribcage () () ())
- #(ribcage
- #(first)
- #((top))
- #("i1813"))
- #(ribcage () () ())
- #(ribcage () () ())
- #(ribcage () () ())
- #(ribcage
- #(e
- r
- w
- s
- rib
- mod
- for-car?)
- #((top)
(top)
(top)
(top)
(top)
(top)
- (top))
- #("i1785"
- "i1786"
- "i1787"
- "i1788"
- "i1789"
- "i1790"
- "i1791"))
- #(ribcage
- (lambda-var-list
- gen-var
- strip
- chi-lambda-case
- lambda*-formals
-
chi-simple-lambda
- lambda-formals
- ellipsis?
- chi-void
-
eval-local-transformer
-
chi-local-syntax
- chi-body
- chi-macro
- chi-call
- chi-expr
- chi
- syntax-type
- chi-when-list
-
chi-install-global
-
chi-top-sequence
- chi-sequence
- source-wrap
- wrap
-
bound-id-member?
-
distinct-bound-ids?
-
valid-bound-ids?
- bound-id=?
- free-id=?
- id-var-name
- same-marks?
- join-marks
- join-wraps
- smart-append
-
make-binding-wrap
- extend-ribcage!
-
make-empty-ribcage
- new-mark
- anti-mark
- the-anti-mark
- top-marked?
- top-wrap
- empty-wrap
-
set-ribcage-labels!
-
set-ribcage-marks!
-
set-ribcage-symnames!
- ribcage-labels
- ribcage-marks
-
ribcage-symnames
- ribcage?
- make-ribcage
- gen-labels
- gen-label
- make-rename
- rename-marks
- rename-new
- rename-old
- subst-rename?
- wrap-subst
- wrap-marks
- make-wrap
-
id-sym-name&marks
- id-sym-name
- id?
- nonsymbol-id?
- global-extend
- lookup
- macros-only-env
- extend-var-env
- extend-env
- null-env
- binding-value
- binding-type
- make-binding
- arg-check
-
source-annotation
- no-source
-
set-syntax-object-module!
-
set-syntax-object-wrap!
-
set-syntax-object-expression!
-
syntax-object-module
-
syntax-object-wrap
-
syntax-object-expression
- syntax-object?
-
make-syntax-object
-
build-lexical-var
- build-letrec
- build-named-let
- build-let
- build-sequence
- build-data
- build-primref
- build-primcall
-
build-lambda-case
-
build-case-lambda
-
build-simple-lambda
-
build-global-definition
-
build-global-assignment
-
build-global-reference
-
analyze-variable
-
build-lexical-assignment
-
build-lexical-reference
- build-dynlet
-
build-conditional
- build-call
- build-void
-
maybe-name-value!
- decorate-source
-
get-global-definition-hook
-
put-global-definition-hook
- gensym-hook
- local-eval-hook
-
top-level-eval-hook
- fx<
- fx=
- fx-
- fx+
-
set-lambda-meta!
- lambda-meta
- lambda?
- make-dynlet
- make-letrec
- make-let
-
make-lambda-case
- make-lambda
- make-seq
- make-primcall
- make-call
-
make-conditional
-
make-toplevel-define
-
make-toplevel-set
-
make-toplevel-ref
- make-module-set
- make-module-ref
-
make-lexical-set
-
make-lexical-ref
-
make-primitive-ref
- make-const
- make-void)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("i452"
- "i450"
- "i448"
- "i446"
- "i444"
- "i442"
- "i440"
- "i438"
- "i436"
- "i434"
- "i432"
- "i430"
- "i428"
- "i426"
- "i424"
- "i422"
- "i420"
- "i418"
- "i416"
- "i414"
- "i412"
- "i410"
- "i408"
- "i406"
- "i404"
- "i402"
- "i400"
- "i398"
- "i396"
- "i394"
- "i392"
- "i390"
- "i388"
- "i386"
- "i384"
- "i383"
- "i382"
- "i380"
- "i379"
- "i378"
- "i377"
- "i376"
- "i374"
- "i372"
- "i370"
- "i368"
- "i366"
- "i364"
- "i362"
- "i360"
- "i357"
- "i355"
- "i354"
- "i353"
- "i352"
- "i351"
- "i350"
- "i349"
- "i348"
- "i347"
- "i345"
- "i344"
- "i342"
- "i340"
- "i338"
- "i336"
- "i334"
- "i332"
- "i330"
- "i329"
- "i328"
- "i327"
- "i326"
- "i325"
- "i323"
- "i322"
- "i320"
- "i318"
- "i316"
- "i314"
- "i312"
- "i310"
- "i308"
- "i306"
- "i304"
- "i302"
- "i300"
- "i298"
- "i296"
- "i294"
- "i292"
- "i290"
- "i288"
- "i286"
- "i284"
- "i282"
- "i280"
- "i278"
- "i276"
- "i274"
- "i272"
- "i270"
- "i268"
- "i266"
- "i264"
- "i262"
- "i260"
- "i258"
- "i256"
- "i255"
- "i253"
- "i251"
- "i250"
- "i249"
- "i248"
- "i247"
- "i245"
- "i243"
- "i241"
- "i238"
- "i236"
- "i234"
- "i232"
- "i230"
- "i228"
- "i226"
- "i224"
- "i222"
- "i220"
- "i218"
- "i216"
- "i214"
- "i212"
- "i210"
- "i208"
- "i206"
- "i204"
- "i202"))
- #(ribcage
- (define-structure
-
define-expansion-accessors
-
define-expansion-constructors)
- ((top)
- (top)
- (top))
- ("i40"
- "i39"
- "i38")))
- (hygiene guile)))
- '(())
- #{s 1781}#
- #{mod 1783}#))
- #{tmp 1878}#)
- (syntax-violation
- #f
- "source expression failed
to match any pattern"
- #{tmp 1847}#))))))))
- (if (memv #{ftype 1815}# '(define-syntax))
- (let ((#{tmp 1885}# #{e 1778}#))
- (let ((#{tmp 1886}#
- ($sc-dispatch
- #{tmp 1885}#
- '(_ any any))))
- (if (if #{tmp 1886}#
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ ("i470"
+ "i468"
+ "i466"
+ "i464"
+ "i462"
+ "i460"
+ "i458"
+ "i456"
+ "i454"
+ "i452"
+ "i450"
+ "i448"
+ "i446"
+ "i444"
+ "i442"
+ "i440"
+ "i438"
+ "i436"
+ "i434"
+ "i432"
+ "i430"
+ "i428"
+ "i426"
+ "i424"
+ "i422"
+ "i420"
+ "i418"
+ "i416"
+ "i414"
+ "i412"
+ "i410"
+ "i408"
+ "i406"
+ "i404"
+ "i402"
+ "i401"
+ "i399"
+ "i396"
+ "i395"
+ "i394"
+ "i392"
+ "i391"
+ "i389"
+ "i387"
+ "i385"
+ "i383"
+ "i381"
+ "i379"
+ "i377"
+ "i375"
+ "i372"
+ "i370"
+ "i369"
+ "i367"
+ "i365"
+ "i363"
+ "i361"
+ "i360"
+ "i359"
+ "i358"
+ "i356"
+ "i355"
+ "i352"
+ "i350"
+ "i348"
+ "i346"
+ "i344"
+ "i342"
+ "i340"
+ "i339"
+ "i338"
+ "i336"
+ "i334"
+ "i333"
+ "i330"
+ "i329"
+ "i327"
+ "i325"
+ "i323"
+ "i321"
+ "i319"
+ "i317"
+ "i315"
+ "i313"
+ "i311"
+ "i308"
+ "i306"
+ "i304"
+ "i302"
+ "i300"
+ "i298"
+ "i296"
+ "i294"
+ "i292"
+ "i290"
+ "i288"
+ "i286"
+ "i284"
+ "i282"
+ "i280"
+ "i278"
+ "i276"
+ "i274"
+ "i272"
+ "i270"
+ "i268"
+ "i266"
+ "i264"
+ "i262"
+ "i261"
+ "i258"
+ "i256"
+ "i255"
+ "i254"
+ "i253"
+ "i252"
+ "i250"
+ "i248"
+ "i246"
+ "i243"
+ "i241"
+ "i239"
+ "i237"
+ "i235"
+ "i233"
+ "i231"
+ "i229"
+ "i227"
+ "i225"
+ "i223"
+ "i221"
+ "i219"
+ "i217"
+ "i215"
+ "i213"
+ "i211"
+ "i209"
+ "i207"))
+ #(ribcage
+
(define-structure
+
define-expansion-accessors
+
define-expansion-constructors)
+ ((top)
+ (top)
+ (top))
+ ("i45"
+ "i44"
+ "i43")))
+ (hygiene guile))
+ (#{wrap 427}#
+ (cons #{args 1892}#
+ (cons #{e1
1893}#
+ #{e2
1894}#))
+ #{w 1799}#
+ #{mod 1802}#))
+ #{s 1800}#)
+ '(())
+ #{s 1800}#
+ #{mod 1802}#))
+ #{tmp 1876}#)
+ (let ((#{tmp 1897}#
+ ($sc-dispatch
+ #{e 1797}#
+ '(_ any))))
+ (if (if #{tmp 1897}#
+ (@apply
+ (lambda (#{name 1899}#)
+ (#{id? 353}#
+ #{name 1899}#))
+ #{tmp 1897}#)
+ #f)
(@apply
- (lambda (#{name 1889}#
- #{val 1890}#)
- (#{id? 343}# #{name 1889}#))
- #{tmp 1886}#)
- #f)
- (@apply
- (lambda (#{name 1893}#
- #{val 1894}#)
- (values
- 'define-syntax-form
- #{name 1893}#
- #{val 1894}#
- #{w 1780}#
- #{s 1781}#
- #{mod 1783}#))
- #{tmp 1886}#)
- (syntax-violation
- #f
- "source expression failed to
match any pattern"
- #{tmp 1885}#))))
- (values
- 'call
- #f
- #{e 1778}#
- #{w 1780}#
- #{s 1781}#
- #{mod 1783}#))))))))))))))
- (if (#{syntax-object? 309}# #{e 1778}#)
- (#{syntax-type 421}#
- (#{syntax-object-expression 311}# #{e 1778}#)
- #{r 1779}#
- (#{join-wraps 391}#
- #{w 1780}#
- (#{syntax-object-wrap 313}# #{e 1778}#))
- (let ((#{t 1900}#
- (#{source-annotation 324}# #{e 1778}#)))
- (if #{t 1900}# #{t 1900}# #{s 1781}#))
- #{rib 1782}#
- (let ((#{t 1904}#
- (#{syntax-object-module 315}# #{e 1778}#)))
- (if #{t 1904}# #{t 1904}# #{mod 1783}#))
- #{for-car? 1784}#)
- (if (self-evaluating? #{e 1778}#)
- (values
- 'constant
- #f
- #{e 1778}#
- #{w 1780}#
- #{s 1781}#
- #{mod 1783}#)
- (values
- 'other
- #f
- #{e 1778}#
- #{w 1780}#
- #{s 1781}#
- #{mod 1783}#)))))))
- (#{chi 423}#
- (lambda (#{e 1909}# #{r 1910}# #{w 1911}# #{mod 1912}#)
- (call-with-values
- (lambda ()
- (#{syntax-type 421}#
- #{e 1909}#
- #{r 1910}#
- #{w 1911}#
- (#{source-annotation 324}# #{e 1909}#)
- #f
- #{mod 1912}#
- #f))
- (lambda (#{type 1917}#
- #{value 1918}#
- #{e 1919}#
- #{w 1920}#
- #{s 1921}#
- #{mod 1922}#)
- (#{chi-expr 425}#
- #{type 1917}#
- #{value 1918}#
- #{e 1919}#
- #{r 1910}#
- #{w 1920}#
- #{s 1921}#
- #{mod 1922}#)))))
- (#{chi-expr 425}#
- (lambda (#{type 1929}#
- #{value 1930}#
- #{e 1931}#
- #{r 1932}#
- #{w 1933}#
- #{s 1934}#
- #{mod 1935}#)
- (if (memv #{type 1929}# '(lexical))
- (#{build-lexical-reference 273}#
- 'value
- #{s 1934}#
- #{e 1931}#
- #{value 1930}#)
- (if (memv #{type 1929}# '(core core-form))
- (#{value 1930}#
- #{e 1931}#
- #{r 1932}#
- #{w 1933}#
- #{s 1934}#
- #{mod 1935}#)
- (if (memv #{type 1929}# '(module-ref))
- (call-with-values
- (lambda ()
- (#{value 1930}# #{e 1931}# #{r 1932}# #{w 1933}#))
- (lambda (#{e 1946}#
- #{r 1947}#
- #{w 1948}#
- #{s 1949}#
- #{mod 1950}#)
- (#{chi 423}#
- #{e 1946}#
- #{r 1947}#
- #{w 1948}#
- #{mod 1950}#)))
- (if (memv #{type 1929}# '(lexical-call))
- (#{chi-call 427}#
- (let ((#{id 1958}# (car #{e 1931}#)))
- (#{build-lexical-reference 273}#
- 'fun
- (#{source-annotation 324}# #{id 1958}#)
- (if (#{syntax-object? 309}# #{id 1958}#)
- (syntax->datum #{id 1958}#)
- #{id 1958}#)
- #{value 1930}#))
- #{e 1931}#
- #{r 1932}#
- #{w 1933}#
- #{s 1934}#
- #{mod 1935}#)
- (if (memv #{type 1929}# '(global-call))
- (#{chi-call 427}#
- (#{build-global-reference 279}#
- (#{source-annotation 324}# (car #{e 1931}#))
- (if (#{syntax-object? 309}# #{value 1930}#)
- (#{syntax-object-expression 311}# #{value 1930}#)
- #{value 1930}#)
- (if (#{syntax-object? 309}# #{value 1930}#)
- (#{syntax-object-module 315}# #{value 1930}#)
- #{mod 1935}#))
- #{e 1931}#
- #{r 1932}#
- #{w 1933}#
- #{s 1934}#
- #{mod 1935}#)
- (if (memv #{type 1929}# '(constant))
- (#{build-data 295}#
- #{s 1934}#
- (#{strip 449}#
- (#{source-wrap 411}#
- #{e 1931}#
- #{w 1933}#
- #{s 1934}#
- #{mod 1935}#)
- '(())))
- (if (memv #{type 1929}# '(global))
- (#{build-global-reference 279}#
- #{s 1934}#
- #{value 1930}#
- #{mod 1935}#)
- (if (memv #{type 1929}# '(call))
- (#{chi-call 427}#
- (#{chi 423}#
- (car #{e 1931}#)
- #{r 1932}#
- #{w 1933}#
- #{mod 1935}#)
- #{e 1931}#
- #{r 1932}#
- #{w 1933}#
- #{s 1934}#
- #{mod 1935}#)
- (if (memv #{type 1929}# '(begin-form))
- (let ((#{tmp 1965}# #{e 1931}#))
- (let ((#{tmp 1966}#
- ($sc-dispatch
- #{tmp 1965}#
- '(_ any . each-any))))
- (if #{tmp 1966}#
- (@apply
- (lambda (#{e1 1969}# #{e2 1970}#)
- (#{chi-sequence 413}#
- (cons #{e1 1969}# #{e2 1970}#)
- #{r 1932}#
- #{w 1933}#
- #{s 1934}#
- #{mod 1935}#))
- #{tmp 1966}#)
- (syntax-violation
- #f
- "source expression failed to match any
pattern"
- #{tmp 1965}#))))
- (if (memv #{type 1929}# '(local-syntax-form))
- (#{chi-local-syntax 433}#
- #{value 1930}#
- #{e 1931}#
- #{r 1932}#
- #{w 1933}#
- #{s 1934}#
- #{mod 1935}#
- #{chi-sequence 413}#)
- (if (memv #{type 1929}# '(eval-when-form))
- (let ((#{tmp 1974}# #{e 1931}#))
- (let ((#{tmp 1975}#
- ($sc-dispatch
- #{tmp 1974}#
- '(_ each-any any . each-any))))
- (if #{tmp 1975}#
- (@apply
- (lambda (#{x 1979}#
- #{e1 1980}#
- #{e2 1981}#)
- (let ((#{when-list 1983}#
- (#{chi-when-list 419}#
- #{e 1931}#
- #{x 1979}#
- #{w 1933}#)))
- (if (memq 'eval #{when-list 1983}#)
- (#{chi-sequence 413}#
- (cons #{e1 1980}# #{e2 1981}#)
- #{r 1932}#
- #{w 1933}#
- #{s 1934}#
- #{mod 1935}#)
- (#{chi-void 437}#))))
- #{tmp 1975}#)
- (syntax-violation
- #f
- "source expression failed to match any
pattern"
- #{tmp 1974}#))))
- (if (memv #{type 1929}#
- '(define-form define-syntax-form))
- (syntax-violation
- #f
- "definition in expression context"
- #{e 1931}#
- (#{wrap 409}#
- #{value 1930}#
- #{w 1933}#
- #{mod 1935}#))
- (if (memv #{type 1929}# '(syntax))
- (syntax-violation
- #f
- "reference to pattern variable outside
syntax form"
- (#{source-wrap 411}#
- #{e 1931}#
- #{w 1933}#
- #{s 1934}#
- #{mod 1935}#))
- (if (memv #{type 1929}# '(displaced-lexical))
- (syntax-violation
- #f
- "reference to identifier outside its
scope"
- (#{source-wrap 411}#
- #{e 1931}#
- #{w 1933}#
- #{s 1934}#
- #{mod 1935}#))
- (syntax-violation
- #f
- "unexpected syntax"
- (#{source-wrap 411}#
- #{e 1931}#
- #{w 1933}#
- #{s 1934}#
- #{mod 1935}#))))))))))))))))))
- (#{chi-call 427}#
- (lambda (#{x 1990}#
- #{e 1991}#
- #{r 1992}#
- #{w 1993}#
- #{s 1994}#
- #{mod 1995}#)
- (let ((#{tmp 2002}# #{e 1991}#))
- (let ((#{tmp 2003}#
- ($sc-dispatch #{tmp 2002}# '(any . each-any))))
- (if #{tmp 2003}#
- (@apply
- (lambda (#{e0 2006}# #{e1 2007}#)
- (#{build-call 267}#
- #{s 1994}#
- #{x 1990}#
- (map (lambda (#{e 2008}#)
- (#{chi 423}#
- #{e 2008}#
- #{r 1992}#
- #{w 1993}#
- #{mod 1995}#))
- #{e1 2007}#)))
- #{tmp 2003}#)
- (syntax-violation
- #f
- "source expression failed to match any pattern"
- #{tmp 2002}#))))))
- (#{chi-macro 429}#
- (lambda (#{p 2011}#
- #{e 2012}#
- #{r 2013}#
- #{w 2014}#
- #{s 2015}#
- #{rib 2016}#
- #{mod 2017}#)
- (letrec*
- ((#{rebuild-macro-output 2026}#
- (lambda (#{x 2027}# #{m 2028}#)
- (if (pair? #{x 2027}#)
- (#{decorate-source 261}#
- (cons (#{rebuild-macro-output 2026}#
- (car #{x 2027}#)
- #{m 2028}#)
- (#{rebuild-macro-output 2026}#
- (cdr #{x 2027}#)
- #{m 2028}#))
- #{s 2015}#)
- (if (#{syntax-object? 309}# #{x 2027}#)
- (let ((#{w 2036}#
- (#{syntax-object-wrap 313}# #{x 2027}#)))
- (let ((#{ms 2039}# (car #{w 2036}#))
- (#{s 2040}# (cdr #{w 2036}#)))
- (if (if (pair? #{ms 2039}#)
- (eq? (car #{ms 2039}#) #f)
- #f)
- (#{make-syntax-object 307}#
- (#{syntax-object-expression 311}# #{x 2027}#)
- (cons (cdr #{ms 2039}#)
- (if #{rib 2016}#
- (cons #{rib 2016}# (cdr #{s 2040}#))
- (cdr #{s 2040}#)))
- (#{syntax-object-module 315}# #{x 2027}#))
- (#{make-syntax-object 307}#
- (#{decorate-source 261}#
- (#{syntax-object-expression 311}# #{x 2027}#)
- #{s 2040}#)
- (cons (cons #{m 2028}# #{ms 2039}#)
- (if #{rib 2016}#
- (cons #{rib 2016}# (cons 'shift #{s 2040}#))
- (cons 'shift #{s 2040}#)))
- (#{syntax-object-module 315}# #{x 2027}#)))))
- (if (vector? #{x 2027}#)
- (let ((#{n 2052}# (vector-length #{x 2027}#)))
- (let ((#{v 2054}#
- (#{decorate-source 261}#
- (make-vector #{n 2052}#)
- #{x 2027}#)))
- (letrec*
- ((#{loop 2057}#
- (lambda (#{i 2058}#)
- (if (= #{i 2058}# #{n 2052}#)
- (begin (if #f #f) #{v 2054}#)
- (begin
- (vector-set!
- #{v 2054}#
- #{i 2058}#
- (#{rebuild-macro-output 2026}#
- (vector-ref #{x 2027}# #{i 2058}#)
- #{m 2028}#))
- (#{loop 2057}# (#{1+}# #{i 2058}#)))))))
- (#{loop 2057}# 0))))
- (if (symbol? #{x 2027}#)
- (syntax-violation
- #f
- "encountered raw symbol in macro output"
- (#{source-wrap 411}#
- #{e 2012}#
- #{w 2014}#
- (cdr #{w 2014}#)
- #{mod 2017}#)
- #{x 2027}#)
- (#{decorate-source 261}# #{x 2027}# #{s 2015}#))))))))
- (#{rebuild-macro-output 2026}#
- (#{p 2011}#
- (#{source-wrap 411}#
- #{e 2012}#
- (#{anti-mark 381}# #{w 2014}#)
- #{s 2015}#
- #{mod 2017}#))
- (gensym "m")))))
- (#{chi-body 431}#
- (lambda (#{body 2068}#
- #{outer-form 2069}#
- #{r 2070}#
- #{w 2071}#
- #{mod 2072}#)
- (let ((#{r 2080}#
- (cons '("placeholder" placeholder) #{r 2070}#)))
- (let ((#{ribcage 2082}#
- (#{make-ribcage 361}# '() '() '())))
- (let ((#{w 2085}#
- (cons (car #{w 2071}#)
- (cons #{ribcage 2082}# (cdr #{w 2071}#)))))
- (letrec*
- ((#{parse 2097}#
- (lambda (#{body 2098}#
- #{ids 2099}#
- #{labels 2100}#
- #{var-ids 2101}#
- #{vars 2102}#
- #{vals 2103}#
- #{bindings 2104}#)
- (if (null? #{body 2098}#)
- (syntax-violation
- #f
- "no expressions in body"
- #{outer-form 2069}#)
- (let ((#{e 2109}# (cdr (car #{body 2098}#)))
- (#{er 2110}# (car (car #{body 2098}#))))
- (call-with-values
- (lambda ()
- (#{syntax-type 421}#
- #{e 2109}#
- #{er 2110}#
- '(())
- (#{source-annotation 324}# #{er 2110}#)
- #{ribcage 2082}#
- #{mod 2072}#
- #f))
- (lambda (#{type 2112}#
- #{value 2113}#
- #{e 2114}#
- #{w 2115}#
- #{s 2116}#
- #{mod 2117}#)
- (if (memv #{type 2112}# '(define-form))
- (let ((#{id 2127}#
- (#{wrap 409}#
- #{value 2113}#
- #{w 2115}#
- #{mod 2117}#))
- (#{label 2128}# (#{gen-label 356}#)))
- (let ((#{var 2130}#
- (#{gen-var 451}# #{id 2127}#)))
- (begin
- (#{extend-ribcage! 385}#
- #{ribcage 2082}#
- #{id 2127}#
- #{label 2128}#)
- (#{parse 2097}#
- (cdr #{body 2098}#)
- (cons #{id 2127}# #{ids 2099}#)
- (cons #{label 2128}# #{labels 2100}#)
- (cons #{id 2127}# #{var-ids 2101}#)
- (cons #{var 2130}# #{vars 2102}#)
- (cons (cons #{er 2110}#
- (#{wrap 409}#
- #{e 2114}#
- #{w 2115}#
- #{mod 2117}#))
- #{vals 2103}#)
- (cons (cons 'lexical #{var 2130}#)
- #{bindings 2104}#)))))
- (if (memv #{type 2112}# '(define-syntax-form))
- (let ((#{id 2135}#
- (#{wrap 409}#
- #{value 2113}#
- #{w 2115}#
- #{mod 2117}#))
- (#{label 2136}# (#{gen-label 356}#)))
- (begin
- (#{extend-ribcage! 385}#
- #{ribcage 2082}#
- #{id 2135}#
- #{label 2136}#)
- (#{parse 2097}#
- (cdr #{body 2098}#)
- (cons #{id 2135}# #{ids 2099}#)
- (cons #{label 2136}# #{labels 2100}#)
- #{var-ids 2101}#
- #{vars 2102}#
- #{vals 2103}#
- (cons (cons 'macro
- (cons #{er 2110}#
- (#{wrap 409}#
- #{e 2114}#
- #{w 2115}#
- #{mod 2117}#)))
- #{bindings 2104}#))))
- (if (memv #{type 2112}# '(begin-form))
- (let ((#{tmp 2139}# #{e 2114}#))
- (let ((#{tmp 2140}#
- ($sc-dispatch
- #{tmp 2139}#
- '(_ . each-any))))
- (if #{tmp 2140}#
- (@apply
- (lambda (#{e1 2142}#)
- (#{parse 2097}#
- (letrec*
- ((#{f 2145}#
- (lambda (#{forms 2146}#)
- (if (null? #{forms 2146}#)
- (cdr #{body 2098}#)
- (cons (cons #{er 2110}#
- (#{wrap
409}#
- (car
#{forms 2146}#)
- #{w 2115}#
- #{mod
2117}#))
- (#{f 2145}#
- (cdr #{forms
2146}#)))))))
- (#{f 2145}# #{e1 2142}#))
- #{ids 2099}#
- #{labels 2100}#
- #{var-ids 2101}#
- #{vars 2102}#
- #{vals 2103}#
- #{bindings 2104}#))
- #{tmp 2140}#)
- (syntax-violation
- #f
- "source expression failed to match
any pattern"
- #{tmp 2139}#))))
- (if (memv #{type 2112}# '(local-syntax-form))
- (#{chi-local-syntax 433}#
- #{value 2113}#
- #{e 2114}#
- #{er 2110}#
- #{w 2115}#
- #{s 2116}#
- #{mod 2117}#
- (lambda (#{forms 2149}#
- #{er 2150}#
- #{w 2151}#
- #{s 2152}#
- #{mod 2153}#)
- (#{parse 2097}#
- (letrec*
- ((#{f 2161}#
- (lambda (#{forms 2162}#)
- (if (null? #{forms 2162}#)
- (cdr #{body 2098}#)
- (cons (cons #{er 2150}#
- (#{wrap 409}#
- (car #{forms
2162}#)
- #{w 2151}#
- #{mod 2153}#))
- (#{f 2161}#
- (cdr #{forms
2162}#)))))))
- (#{f 2161}# #{forms 2149}#))
- #{ids 2099}#
- #{labels 2100}#
- #{var-ids 2101}#
- #{vars 2102}#
- #{vals 2103}#
- #{bindings 2104}#)))
- (if (null? #{ids 2099}#)
- (#{build-sequence 297}#
- #f
- (map (lambda (#{x 2165}#)
- (#{chi 423}#
- (cdr #{x 2165}#)
- (car #{x 2165}#)
- '(())
- #{mod 2117}#))
- (cons (cons #{er 2110}#
- (#{source-wrap 411}#
- #{e 2114}#
- #{w 2115}#
- #{s 2116}#
- #{mod 2117}#))
- (cdr #{body 2098}#))))
- (begin
- (if (not (#{valid-bound-ids? 403}#
- #{ids 2099}#))
- (syntax-violation
- #f
- "invalid or duplicate identifier
in definition"
- #{outer-form 2069}#))
- (letrec*
- ((#{loop 2172}#
- (lambda (#{bs 2173}#
- #{er-cache 2174}#
- #{r-cache 2175}#)
- (if (not (null? #{bs 2173}#))
- (let ((#{b 2178}#
- (car #{bs 2173}#)))
- (if (eq? (car #{b 2178}#)
- 'macro)
- (let ((#{er 2181}#
- (car (cdr #{b
2178}#))))
- (let ((#{r-cache 2183}#
- (if (eq? #{er
2181}#
-
#{er-cache 2174}#)
- #{r-cache
2175}#
-
(#{macros-only-env 335}#
- #{er
2181}#))))
- (begin
- (set-cdr!
- #{b 2178}#
-
(#{eval-local-transformer 435}#
- (#{chi 423}#
- (cdr (cdr #{b
2178}#))
- #{r-cache
2183}#
- '(())
- #{mod 2117}#)
- #{mod 2117}#))
- (#{loop 2172}#
- (cdr #{bs 2173}#)
- #{er 2181}#
- #{r-cache
2183}#))))
- (#{loop 2172}#
- (cdr #{bs 2173}#)
- #{er-cache 2174}#
- #{r-cache 2175}#)))))))
- (#{loop 2172}#
- #{bindings 2104}#
- #f
- #f))
- (set-cdr!
- #{r 2080}#
- (#{extend-env 331}#
- #{labels 2100}#
- #{bindings 2104}#
- (cdr #{r 2080}#)))
- (#{build-letrec 303}#
- #f
- #t
- (reverse
- (map syntax->datum
- #{var-ids 2101}#))
- (reverse #{vars 2102}#)
- (map (lambda (#{x 2186}#)
- (#{chi 423}#
- (cdr #{x 2186}#)
- (car #{x 2186}#)
- '(())
- #{mod 2117}#))
- (reverse #{vals 2103}#))
- (#{build-sequence 297}#
- #f
- (map (lambda (#{x 2190}#)
- (#{chi 423}#
- (cdr #{x 2190}#)
- (car #{x 2190}#)
- '(())
- #{mod 2117}#))
- (cons (cons #{er 2110}#
- (#{source-wrap
411}#
- #{e 2114}#
- #{w 2115}#
- #{s 2116}#
- #{mod 2117}#))
- (cdr #{body
2098}#))))))))))))))))))
- (#{parse 2097}#
- (map (lambda (#{x 2105}#)
- (cons #{r 2080}#
- (#{wrap 409}#
- #{x 2105}#
- #{w 2085}#
- #{mod 2072}#)))
- #{body 2068}#)
- '()
- '()
- '()
- '()
- '()
- '())))))))
- (#{chi-local-syntax 433}#
- (lambda (#{rec? 2193}#
- #{e 2194}#
- #{r 2195}#
- #{w 2196}#
- #{s 2197}#
- #{mod 2198}#
- #{k 2199}#)
- (let ((#{tmp 2207}# #{e 2194}#))
- (let ((#{tmp 2208}#
- ($sc-dispatch
- #{tmp 2207}#
- '(_ #(each (any any)) any . each-any))))
- (if #{tmp 2208}#
- (@apply
- (lambda (#{id 2213}#
- #{val 2214}#
- #{e1 2215}#
- #{e2 2216}#)
- (let ((#{ids 2218}# #{id 2213}#))
- (if (not (#{valid-bound-ids? 403}# #{ids 2218}#))
- (syntax-violation
- #f
- "duplicate bound keyword"
- #{e 2194}#)
- (let ((#{labels 2221}#
- (#{gen-labels 358}# #{ids 2218}#)))
- (let ((#{new-w 2223}#
- (#{make-binding-wrap 387}#
- #{ids 2218}#
- #{labels 2221}#
- #{w 2196}#)))
- (#{k 2199}#
- (cons #{e1 2215}# #{e2 2216}#)
- (#{extend-env 331}#
- #{labels 2221}#
- (let ((#{w 2227}#
- (if #{rec? 2193}#
- #{new-w 2223}#
- #{w 2196}#))
- (#{trans-r 2228}#
- (#{macros-only-env 335}# #{r 2195}#)))
- (map (lambda (#{x 2229}#)
- (cons 'macro
- (#{eval-local-transformer 435}#
- (#{chi 423}#
- #{x 2229}#
- #{trans-r 2228}#
- #{w 2227}#
- #{mod 2198}#)
- #{mod 2198}#)))
- #{val 2214}#))
- #{r 2195}#)
- #{new-w 2223}#
- #{s 2197}#
- #{mod 2198}#))))))
- #{tmp 2208}#)
- (let ((#{_ 2234}# #{tmp 2207}#))
- (syntax-violation
- #f
- "bad local syntax definition"
- (#{source-wrap 411}#
- #{e 2194}#
- #{w 2196}#
- #{s 2197}#
- #{mod 2198}#))))))))
- (#{eval-local-transformer 435}#
- (lambda (#{expanded 2235}# #{mod 2236}#)
- (let ((#{p 2240}#
- (#{local-eval-hook 254}#
- #{expanded 2235}#
- #{mod 2236}#)))
- (if (procedure? #{p 2240}#)
- #{p 2240}#
- (syntax-violation
- #f
- "nonprocedure transformer"
- #{p 2240}#)))))
- (#{chi-void 437}#
- (lambda () (#{build-void 265}# #f)))
- (#{ellipsis? 439}#
- (lambda (#{x 2242}#)
- (if (#{nonsymbol-id? 341}# #{x 2242}#)
- (#{free-id=? 399}#
- #{x 2242}#
- '#(syntax-object
- ...
- ((top)
- #(ribcage () () ())
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("i2243"))
- #(ribcage
- (lambda-var-list
- gen-var
- strip
- chi-lambda-case
- lambda*-formals
- chi-simple-lambda
- lambda-formals
- ellipsis?
- chi-void
- eval-local-transformer
- chi-local-syntax
- chi-body
- chi-macro
- chi-call
- chi-expr
- chi
- syntax-type
- chi-when-list
- chi-install-global
- chi-top-sequence
- chi-sequence
- source-wrap
- wrap
- bound-id-member?
- distinct-bound-ids?
- valid-bound-ids?
- bound-id=?
- free-id=?
- id-var-name
- same-marks?
- join-marks
- join-wraps
- smart-append
- make-binding-wrap
- extend-ribcage!
- make-empty-ribcage
- new-mark
- anti-mark
- the-anti-mark
- top-marked?
- top-wrap
- empty-wrap
- set-ribcage-labels!
- set-ribcage-marks!
- set-ribcage-symnames!
- ribcage-labels
- ribcage-marks
- ribcage-symnames
- ribcage?
- make-ribcage
- gen-labels
- gen-label
- make-rename
- rename-marks
- rename-new
- rename-old
- subst-rename?
- wrap-subst
- wrap-marks
- make-wrap
- id-sym-name&marks
- id-sym-name
- id?
- nonsymbol-id?
- global-extend
- lookup
- macros-only-env
- extend-var-env
- extend-env
- null-env
- binding-value
- binding-type
- make-binding
- arg-check
- source-annotation
- no-source
- set-syntax-object-module!
- set-syntax-object-wrap!
- set-syntax-object-expression!
- syntax-object-module
- syntax-object-wrap
- syntax-object-expression
- syntax-object?
- make-syntax-object
- build-lexical-var
- build-letrec
- build-named-let
- build-let
- build-sequence
- build-data
- build-primref
- build-primcall
- build-lambda-case
- build-case-lambda
- build-simple-lambda
- build-global-definition
- build-global-assignment
- build-global-reference
- analyze-variable
- build-lexical-assignment
- build-lexical-reference
- build-dynlet
- build-conditional
- build-call
- build-void
- maybe-name-value!
- decorate-source
- get-global-definition-hook
- put-global-definition-hook
- gensym-hook
- local-eval-hook
- top-level-eval-hook
- fx<
- fx=
- fx-
- fx+
- set-lambda-meta!
- lambda-meta
- lambda?
- make-dynlet
- make-letrec
- make-let
- make-lambda-case
- make-lambda
- make-seq
- make-primcall
- make-call
- make-conditional
- make-toplevel-define
- make-toplevel-set
- make-toplevel-ref
- make-module-set
- make-module-ref
- make-lexical-set
- make-lexical-ref
- make-primitive-ref
- make-const
- make-void)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("i452"
- "i450"
- "i448"
- "i446"
- "i444"
- "i442"
- "i440"
- "i438"
- "i436"
- "i434"
- "i432"
- "i430"
- "i428"
- "i426"
- "i424"
- "i422"
- "i420"
- "i418"
- "i416"
- "i414"
- "i412"
- "i410"
- "i408"
- "i406"
- "i404"
- "i402"
- "i400"
- "i398"
- "i396"
- "i394"
- "i392"
- "i390"
- "i388"
- "i386"
- "i384"
- "i383"
- "i382"
- "i380"
- "i379"
- "i378"
- "i377"
- "i376"
- "i374"
- "i372"
- "i370"
- "i368"
- "i366"
- "i364"
- "i362"
- "i360"
- "i357"
- "i355"
- "i354"
- "i353"
- "i352"
- "i351"
- "i350"
- "i349"
- "i348"
- "i347"
- "i345"
- "i344"
- "i342"
- "i340"
- "i338"
- "i336"
- "i334"
- "i332"
- "i330"
- "i329"
- "i328"
- "i327"
- "i326"
- "i325"
- "i323"
- "i322"
- "i320"
- "i318"
- "i316"
- "i314"
- "i312"
- "i310"
- "i308"
- "i306"
- "i304"
- "i302"
- "i300"
- "i298"
- "i296"
- "i294"
- "i292"
- "i290"
- "i288"
- "i286"
- "i284"
- "i282"
- "i280"
- "i278"
- "i276"
- "i274"
- "i272"
- "i270"
- "i268"
- "i266"
- "i264"
- "i262"
- "i260"
- "i258"
- "i256"
- "i255"
- "i253"
- "i251"
- "i250"
- "i249"
- "i248"
- "i247"
- "i245"
- "i243"
- "i241"
- "i238"
- "i236"
- "i234"
- "i232"
- "i230"
- "i228"
- "i226"
- "i224"
- "i222"
- "i220"
- "i218"
- "i216"
- "i214"
- "i212"
- "i210"
- "i208"
- "i206"
- "i204"
- "i202"))
- #(ribcage
- (define-structure
- define-expansion-accessors
- define-expansion-constructors)
- ((top) (top) (top))
- ("i40" "i39" "i38")))
- (hygiene guile)))
- #f)))
- (#{lambda-formals 441}#
- (lambda (#{orig-args 2246}#)
- (letrec*
- ((#{req 2249}#
- (lambda (#{args 2252}# #{rreq 2253}#)
- (let ((#{tmp 2256}# #{args 2252}#))
- (let ((#{tmp 2257}# ($sc-dispatch #{tmp 2256}# '())))
- (if #{tmp 2257}#
- (@apply
- (lambda ()
- (#{check 2251}# (reverse #{rreq 2253}#) #f))
- #{tmp 2257}#)
- (let ((#{tmp 2258}#
- ($sc-dispatch #{tmp 2256}# '(any . any))))
- (if (if #{tmp 2258}#
- (@apply
- (lambda (#{a 2261}# #{b 2262}#)
- (#{id? 343}# #{a 2261}#))
- #{tmp 2258}#)
- #f)
- (@apply
- (lambda (#{a 2265}# #{b 2266}#)
- (#{req 2249}#
- #{b 2266}#
- (cons #{a 2265}# #{rreq 2253}#)))
- #{tmp 2258}#)
- (let ((#{tmp 2267}# (list #{tmp 2256}#)))
- (if (if #{tmp 2267}#
- (@apply
- (lambda (#{r 2269}#)
- (#{id? 343}# #{r 2269}#))
- #{tmp 2267}#)
- #f)
- (@apply
- (lambda (#{r 2271}#)
- (#{check 2251}#
- (reverse #{rreq 2253}#)
- #{r 2271}#))
- #{tmp 2267}#)
- (let ((#{else 2273}# #{tmp 2256}#))
- (syntax-violation
- 'lambda
- "invalid argument list"
- #{orig-args 2246}#
- #{args 2252}#)))))))))))
- (#{check 2251}#
- (lambda (#{req 2274}# #{rest 2275}#)
- (if (#{distinct-bound-ids? 405}#
- (if #{rest 2275}#
- (cons #{rest 2275}# #{req 2274}#)
- #{req 2274}#))
- (values #{req 2274}# #f #{rest 2275}# #f)
- (syntax-violation
- 'lambda
- "duplicate identifier in argument list"
- #{orig-args 2246}#)))))
- (#{req 2249}# #{orig-args 2246}# '()))))
- (#{chi-simple-lambda 443}#
- (lambda (#{e 2281}#
- #{r 2282}#
- #{w 2283}#
- #{s 2284}#
- #{mod 2285}#
- #{req 2286}#
- #{rest 2287}#
- #{meta 2288}#
- #{body 2289}#)
- (let ((#{ids 2301}#
- (if #{rest 2287}#
- (append #{req 2286}# (list #{rest 2287}#))
- #{req 2286}#)))
- (let ((#{vars 2303}#
- (map #{gen-var 451}# #{ids 2301}#)))
- (let ((#{labels 2305}#
- (#{gen-labels 358}# #{ids 2301}#)))
- (#{build-simple-lambda 285}#
- #{s 2284}#
- (map syntax->datum #{req 2286}#)
- (if #{rest 2287}#
- (syntax->datum #{rest 2287}#)
- #f)
- #{vars 2303}#
- #{meta 2288}#
- (#{chi-body 431}#
- #{body 2289}#
- (#{source-wrap 411}#
- #{e 2281}#
- #{w 2283}#
- #{s 2284}#
- #{mod 2285}#)
- (#{extend-var-env 333}#
- #{labels 2305}#
- #{vars 2303}#
- #{r 2282}#)
- (#{make-binding-wrap 387}#
- #{ids 2301}#
- #{labels 2305}#
- #{w 2283}#)
- #{mod 2285}#)))))))
- (#{lambda*-formals 445}#
- (lambda (#{orig-args 2308}#)
- (letrec*
- ((#{req 2311}#
- (lambda (#{args 2320}# #{rreq 2321}#)
- (let ((#{tmp 2324}# #{args 2320}#))
- (let ((#{tmp 2325}# ($sc-dispatch #{tmp 2324}# '())))
- (if #{tmp 2325}#
- (@apply
- (lambda ()
- (#{check 2319}#
- (reverse #{rreq 2321}#)
- '()
- #f
- '()))
- #{tmp 2325}#)
- (let ((#{tmp 2326}#
- ($sc-dispatch #{tmp 2324}# '(any . any))))
- (if (if #{tmp 2326}#
- (@apply
- (lambda (#{a 2329}# #{b 2330}#)
- (#{id? 343}# #{a 2329}#))
- #{tmp 2326}#)
- #f)
- (@apply
- (lambda (#{a 2333}# #{b 2334}#)
- (#{req 2311}#
- #{b 2334}#
- (cons #{a 2333}# #{rreq 2321}#)))
- #{tmp 2326}#)
- (let ((#{tmp 2335}#
- ($sc-dispatch #{tmp 2324}# '(any . any))))
- (if (if #{tmp 2335}#
- (@apply
- (lambda (#{a 2338}# #{b 2339}#)
- (eq? (syntax->datum #{a 2338}#)
- #:optional))
- #{tmp 2335}#)
- #f)
- (@apply
- (lambda (#{a 2342}# #{b 2343}#)
- (#{opt 2313}#
- #{b 2343}#
- (reverse #{rreq 2321}#)
- '()))
- #{tmp 2335}#)
- (let ((#{tmp 2344}#
- ($sc-dispatch #{tmp 2324}# '(any . any))))
- (if (if #{tmp 2344}#
- (@apply
- (lambda (#{a 2347}# #{b 2348}#)
- (eq? (syntax->datum #{a 2347}#) #:key))
- #{tmp 2344}#)
- #f)
- (@apply
- (lambda (#{a 2351}# #{b 2352}#)
- (#{key 2315}#
- #{b 2352}#
- (reverse #{rreq 2321}#)
- '()
- '()))
- #{tmp 2344}#)
- (let ((#{tmp 2353}#
- ($sc-dispatch
- #{tmp 2324}#
- '(any any))))
- (if (if #{tmp 2353}#
- (@apply
- (lambda (#{a 2356}# #{b 2357}#)
- (eq? (syntax->datum #{a 2356}#)
- #:rest))
- #{tmp 2353}#)
- #f)
- (@apply
- (lambda (#{a 2360}# #{b 2361}#)
- (#{rest 2317}#
- #{b 2361}#
- (reverse #{rreq 2321}#)
- '()
- '()))
- #{tmp 2353}#)
- (let ((#{tmp 2362}# (list #{tmp 2324}#)))
- (if (if #{tmp 2362}#
- (@apply
- (lambda (#{r 2364}#)
- (#{id? 343}# #{r 2364}#))
- #{tmp 2362}#)
- #f)
- (@apply
- (lambda (#{r 2366}#)
- (#{rest 2317}#
- #{r 2366}#
- (reverse #{rreq 2321}#)
- '()
- '()))
- #{tmp 2362}#)
- (let ((#{else 2368}# #{tmp 2324}#))
- (syntax-violation
- 'lambda*
- "invalid argument list"
- #{orig-args 2308}#
- #{args 2320}#)))))))))))))))))
- (#{opt 2313}#
- (lambda (#{args 2369}# #{req 2370}# #{ropt 2371}#)
- (let ((#{tmp 2375}# #{args 2369}#))
- (let ((#{tmp 2376}# ($sc-dispatch #{tmp 2375}# '())))
- (if #{tmp 2376}#
- (@apply
- (lambda ()
- (#{check 2319}#
- #{req 2370}#
- (reverse #{ropt 2371}#)
- #f
- '()))
- #{tmp 2376}#)
- (let ((#{tmp 2377}#
- ($sc-dispatch #{tmp 2375}# '(any . any))))
- (if (if #{tmp 2377}#
- (@apply
- (lambda (#{a 2380}# #{b 2381}#)
- (#{id? 343}# #{a 2380}#))
- #{tmp 2377}#)
- #f)
- (@apply
- (lambda (#{a 2384}# #{b 2385}#)
- (#{opt 2313}#
- #{b 2385}#
- #{req 2370}#
- (cons (cons #{a 2384}#
- '(#(syntax-object
- #f
- ((top)
- #(ribcage
- #(a b)
- #((top) (top))
- #("i2382" "i2383"))
- #(ribcage () () ())
- #(ribcage
- #(args req ropt)
- #((top) (top) (top))
- #("i2372" "i2373" "i2374"))
- #(ribcage
- (check rest key opt req)
- ((top)
- (top)
- (top)
- (top)
- (top))
- ("i2318"
- "i2316"
- "i2314"
- "i2312"
- "i2310"))
- #(ribcage
- #(orig-args)
- #((top))
- #("i2309"))
- #(ribcage
- (lambda-var-list
- gen-var
- strip
- chi-lambda-case
- lambda*-formals
- chi-simple-lambda
- lambda-formals
- ellipsis?
- chi-void
- eval-local-transformer
- chi-local-syntax
- chi-body
- chi-macro
- chi-call
- chi-expr
- chi
- syntax-type
- chi-when-list
- chi-install-global
- chi-top-sequence
- chi-sequence
- source-wrap
- wrap
- bound-id-member?
- distinct-bound-ids?
- valid-bound-ids?
- bound-id=?
- free-id=?
- id-var-name
- same-marks?
- join-marks
- join-wraps
- smart-append
- make-binding-wrap
- extend-ribcage!
- make-empty-ribcage
- new-mark
- anti-mark
- the-anti-mark
- top-marked?
- top-wrap
- empty-wrap
- set-ribcage-labels!
- set-ribcage-marks!
- set-ribcage-symnames!
- ribcage-labels
- ribcage-marks
- ribcage-symnames
- ribcage?
- make-ribcage
- gen-labels
- gen-label
- make-rename
- rename-marks
- rename-new
- rename-old
- subst-rename?
- wrap-subst
- wrap-marks
- make-wrap
- id-sym-name&marks
- id-sym-name
- id?
- nonsymbol-id?
- global-extend
- lookup
- macros-only-env
- extend-var-env
- extend-env
- null-env
- binding-value
- binding-type
- make-binding
- arg-check
- source-annotation
- no-source
- set-syntax-object-module!
- set-syntax-object-wrap!
-
set-syntax-object-expression!
- syntax-object-module
- syntax-object-wrap
- syntax-object-expression
- syntax-object?
- make-syntax-object
- build-lexical-var
- build-letrec
- build-named-let
- build-let
- build-sequence
- build-data
- build-primref
- build-primcall
- build-lambda-case
- build-case-lambda
- build-simple-lambda
- build-global-definition
- build-global-assignment
- build-global-reference
- analyze-variable
- build-lexical-assignment
- build-lexical-reference
- build-dynlet
- build-conditional
- build-call
- build-void
- maybe-name-value!
- decorate-source
- get-global-definition-hook
- put-global-definition-hook
- gensym-hook
- local-eval-hook
- top-level-eval-hook
- fx<
- fx=
- fx-
- fx+
- set-lambda-meta!
- lambda-meta
- lambda?
- make-dynlet
- make-letrec
- make-let
- make-lambda-case
- make-lambda
- make-seq
- make-primcall
- make-call
- make-conditional
- make-toplevel-define
- make-toplevel-set
- make-toplevel-ref
- make-module-set
- make-module-ref
- make-lexical-set
- make-lexical-ref
- make-primitive-ref
- make-const
- make-void)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("i452"
- "i450"
- "i448"
- "i446"
- "i444"
- "i442"
- "i440"
- "i438"
- "i436"
- "i434"
- "i432"
- "i430"
- "i428"
- "i426"
- "i424"
- "i422"
- "i420"
- "i418"
- "i416"
- "i414"
- "i412"
- "i410"
- "i408"
- "i406"
- "i404"
- "i402"
- "i400"
- "i398"
- "i396"
- "i394"
- "i392"
- "i390"
- "i388"
- "i386"
- "i384"
- "i383"
- "i382"
- "i380"
- "i379"
- "i378"
- "i377"
- "i376"
- "i374"
- "i372"
- "i370"
- "i368"
- "i366"
- "i364"
- "i362"
- "i360"
- "i357"
- "i355"
- "i354"
- "i353"
- "i352"
- "i351"
- "i350"
- "i349"
- "i348"
- "i347"
- "i345"
- "i344"
- "i342"
- "i340"
- "i338"
- "i336"
- "i334"
- "i332"
- "i330"
- "i329"
- "i328"
- "i327"
- "i326"
- "i325"
- "i323"
- "i322"
- "i320"
- "i318"
- "i316"
- "i314"
- "i312"
- "i310"
- "i308"
- "i306"
- "i304"
- "i302"
- "i300"
- "i298"
- "i296"
- "i294"
- "i292"
- "i290"
- "i288"
- "i286"
- "i284"
- "i282"
- "i280"
- "i278"
- "i276"
- "i274"
- "i272"
- "i270"
- "i268"
- "i266"
- "i264"
- "i262"
- "i260"
- "i258"
- "i256"
- "i255"
- "i253"
- "i251"
- "i250"
- "i249"
- "i248"
- "i247"
- "i245"
- "i243"
- "i241"
- "i238"
- "i236"
- "i234"
- "i232"
- "i230"
- "i228"
- "i226"
- "i224"
- "i222"
- "i220"
- "i218"
- "i216"
- "i214"
- "i212"
- "i210"
- "i208"
- "i206"
- "i204"
- "i202"))
- #(ribcage
- (define-structure
- define-expansion-accessors
-
define-expansion-constructors)
- ((top) (top) (top))
- ("i40" "i39" "i38")))
- (hygiene guile))))
- #{ropt 2371}#)))
- #{tmp 2377}#)
- (let ((#{tmp 2386}#
- ($sc-dispatch
- #{tmp 2375}#
- '((any any) . any))))
- (if (if #{tmp 2386}#
- (@apply
- (lambda (#{a 2390}# #{init 2391}# #{b 2392}#)
- (#{id? 343}# #{a 2390}#))
- #{tmp 2386}#)
- #f)
- (@apply
- (lambda (#{a 2396}# #{init 2397}# #{b 2398}#)
- (#{opt 2313}#
- #{b 2398}#
- #{req 2370}#
- (cons (list #{a 2396}# #{init 2397}#)
- #{ropt 2371}#)))
- #{tmp 2386}#)
- (let ((#{tmp 2399}#
- ($sc-dispatch #{tmp 2375}# '(any . any))))
- (if (if #{tmp 2399}#
- (@apply
- (lambda (#{a 2402}# #{b 2403}#)
- (eq? (syntax->datum #{a 2402}#) #:key))
- #{tmp 2399}#)
- #f)
- (@apply
- (lambda (#{a 2406}# #{b 2407}#)
- (#{key 2315}#
- #{b 2407}#
- #{req 2370}#
- (reverse #{ropt 2371}#)
- '()))
- #{tmp 2399}#)
- (let ((#{tmp 2408}#
- ($sc-dispatch
- #{tmp 2375}#
- '(any any))))
- (if (if #{tmp 2408}#
- (@apply
- (lambda (#{a 2411}# #{b 2412}#)
- (eq? (syntax->datum #{a 2411}#)
- #:rest))
- #{tmp 2408}#)
- #f)
- (@apply
- (lambda (#{a 2415}# #{b 2416}#)
- (#{rest 2317}#
- #{b 2416}#
- #{req 2370}#
- (reverse #{ropt 2371}#)
- '()))
- #{tmp 2408}#)
- (let ((#{tmp 2417}# (list #{tmp 2375}#)))
- (if (if #{tmp 2417}#
- (@apply
- (lambda (#{r 2419}#)
- (#{id? 343}# #{r 2419}#))
- #{tmp 2417}#)
- #f)
- (@apply
- (lambda (#{r 2421}#)
- (#{rest 2317}#
- #{r 2421}#
- #{req 2370}#
- (reverse #{ropt 2371}#)
- '()))
- #{tmp 2417}#)
- (let ((#{else 2423}# #{tmp 2375}#))
- (syntax-violation
- 'lambda*
- "invalid optional argument list"
- #{orig-args 2308}#
- #{args 2369}#)))))))))))))))))
- (#{key 2315}#
- (lambda (#{args 2424}#
- #{req 2425}#
- #{opt 2426}#
- #{rkey 2427}#)
- (let ((#{tmp 2432}# #{args 2424}#))
- (let ((#{tmp 2433}# ($sc-dispatch #{tmp 2432}# '())))
- (if #{tmp 2433}#
- (@apply
- (lambda ()
- (#{check 2319}#
- #{req 2425}#
- #{opt 2426}#
- #f
- (cons #f (reverse #{rkey 2427}#))))
- #{tmp 2433}#)
- (let ((#{tmp 2434}#
- ($sc-dispatch #{tmp 2432}# '(any . any))))
- (if (if #{tmp 2434}#
- (@apply
- (lambda (#{a 2437}# #{b 2438}#)
- (#{id? 343}# #{a 2437}#))
- #{tmp 2434}#)
- #f)
- (@apply
- (lambda (#{a 2441}# #{b 2442}#)
- (let ((#{tmp 2444}#
- (symbol->keyword
- (syntax->datum #{a 2441}#))))
- (let ((#{k 2446}# #{tmp 2444}#))
- (#{key 2315}#
- #{b 2442}#
- #{req 2425}#
- #{opt 2426}#
- (cons (cons #{k 2446}#
- (cons #{a 2441}#
- '(#(syntax-object
- #f
- ((top)
- #(ribcage () () ())
- #(ribcage
- #(k)
- #((top))
- #("i2445"))
- #(ribcage
- #(a b)
- #((top) (top))
- #("i2439" "i2440"))
- #(ribcage () () ())
- #(ribcage
- #(args req opt rkey)
- #((top)
- (top)
- (top)
- (top))
- #("i2428"
- "i2429"
- "i2430"
- "i2431"))
- #(ribcage
- (check rest
- key
- opt
- req)
- ((top)
- (top)
- (top)
- (top)
- (top))
- ("i2318"
- "i2316"
- "i2314"
- "i2312"
- "i2310"))
- #(ribcage
- #(orig-args)
- #((top))
- #("i2309"))
- #(ribcage
- (lambda-var-list
- gen-var
- strip
- chi-lambda-case
- lambda*-formals
- chi-simple-lambda
- lambda-formals
- ellipsis?
- chi-void
-
eval-local-transformer
- chi-local-syntax
- chi-body
- chi-macro
- chi-call
- chi-expr
- chi
- syntax-type
- chi-when-list
- chi-install-global
- chi-top-sequence
- chi-sequence
- source-wrap
- wrap
- bound-id-member?
-
distinct-bound-ids?
- valid-bound-ids?
- bound-id=?
- free-id=?
- id-var-name
- same-marks?
- join-marks
- join-wraps
- smart-append
- make-binding-wrap
- extend-ribcage!
- make-empty-ribcage
- new-mark
- anti-mark
- the-anti-mark
- top-marked?
- top-wrap
- empty-wrap
-
set-ribcage-labels!
- set-ribcage-marks!
-
set-ribcage-symnames!
- ribcage-labels
- ribcage-marks
- ribcage-symnames
- ribcage?
- make-ribcage
- gen-labels
- gen-label
- make-rename
- rename-marks
- rename-new
- rename-old
- subst-rename?
- wrap-subst
- wrap-marks
- make-wrap
- id-sym-name&marks
- id-sym-name
- id?
- nonsymbol-id?
- global-extend
- lookup
- macros-only-env
- extend-var-env
- extend-env
- null-env
- binding-value
- binding-type
- make-binding
- arg-check
- source-annotation
- no-source
-
set-syntax-object-module!
-
set-syntax-object-wrap!
-
set-syntax-object-expression!
-
syntax-object-module
- syntax-object-wrap
-
syntax-object-expression
- syntax-object?
- make-syntax-object
- build-lexical-var
- build-letrec
- build-named-let
- build-let
- build-sequence
- build-data
- build-primref
- build-primcall
- build-lambda-case
- build-case-lambda
-
build-simple-lambda
-
build-global-definition
-
build-global-assignment
-
build-global-reference
- analyze-variable
-
build-lexical-assignment
-
build-lexical-reference
- build-dynlet
- build-conditional
- build-call
- build-void
- maybe-name-value!
- decorate-source
-
get-global-definition-hook
-
put-global-definition-hook
- gensym-hook
- local-eval-hook
-
top-level-eval-hook
- fx<
- fx=
- fx-
- fx+
- set-lambda-meta!
- lambda-meta
- lambda?
- make-dynlet
- make-letrec
- make-let
- make-lambda-case
- make-lambda
- make-seq
- make-primcall
- make-call
- make-conditional
-
make-toplevel-define
- make-toplevel-set
- make-toplevel-ref
- make-module-set
- make-module-ref
- make-lexical-set
- make-lexical-ref
- make-primitive-ref
- make-const
- make-void)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("i452"
- "i450"
- "i448"
- "i446"
- "i444"
- "i442"
- "i440"
- "i438"
- "i436"
- "i434"
- "i432"
- "i430"
- "i428"
- "i426"
- "i424"
- "i422"
- "i420"
- "i418"
- "i416"
- "i414"
- "i412"
- "i410"
- "i408"
- "i406"
- "i404"
- "i402"
- "i400"
- "i398"
- "i396"
- "i394"
- "i392"
- "i390"
- "i388"
- "i386"
- "i384"
- "i383"
- "i382"
- "i380"
- "i379"
- "i378"
- "i377"
- "i376"
- "i374"
- "i372"
- "i370"
- "i368"
- "i366"
- "i364"
- "i362"
- "i360"
- "i357"
- "i355"
- "i354"
- "i353"
- "i352"
- "i351"
- "i350"
- "i349"
- "i348"
- "i347"
- "i345"
- "i344"
- "i342"
- "i340"
- "i338"
- "i336"
- "i334"
- "i332"
- "i330"
- "i329"
- "i328"
- "i327"
- "i326"
- "i325"
- "i323"
- "i322"
- "i320"
- "i318"
- "i316"
- "i314"
- "i312"
- "i310"
- "i308"
- "i306"
- "i304"
- "i302"
- "i300"
- "i298"
- "i296"
- "i294"
- "i292"
- "i290"
- "i288"
- "i286"
- "i284"
- "i282"
- "i280"
- "i278"
- "i276"
- "i274"
- "i272"
- "i270"
- "i268"
- "i266"
- "i264"
- "i262"
- "i260"
- "i258"
- "i256"
- "i255"
- "i253"
- "i251"
- "i250"
- "i249"
- "i248"
- "i247"
- "i245"
- "i243"
- "i241"
- "i238"
- "i236"
- "i234"
- "i232"
- "i230"
- "i228"
- "i226"
- "i224"
- "i222"
- "i220"
- "i218"
- "i216"
- "i214"
- "i212"
- "i210"
- "i208"
- "i206"
- "i204"
- "i202"))
- #(ribcage
- (define-structure
-
define-expansion-accessors
-
define-expansion-constructors)
- ((top) (top) (top))
- ("i40"
- "i39"
- "i38")))
- (hygiene guile)))))
- #{rkey 2427}#)))))
- #{tmp 2434}#)
- (let ((#{tmp 2447}#
- ($sc-dispatch
- #{tmp 2432}#
- '((any any) . any))))
- (if (if #{tmp 2447}#
- (@apply
- (lambda (#{a 2451}# #{init 2452}# #{b 2453}#)
- (#{id? 343}# #{a 2451}#))
- #{tmp 2447}#)
- #f)
- (@apply
- (lambda (#{a 2457}# #{init 2458}# #{b 2459}#)
- (let ((#{tmp 2461}#
- (symbol->keyword
- (syntax->datum #{a 2457}#))))
- (let ((#{k 2463}# #{tmp 2461}#))
- (#{key 2315}#
- #{b 2459}#
- #{req 2425}#
- #{opt 2426}#
- (cons (list #{k 2463}#
- #{a 2457}#
- #{init 2458}#)
- #{rkey 2427}#)))))
- #{tmp 2447}#)
- (let ((#{tmp 2464}#
- ($sc-dispatch
- #{tmp 2432}#
- '((any any any) . any))))
- (if (if #{tmp 2464}#
- (@apply
- (lambda (#{a 2469}#
- #{init 2470}#
- #{k 2471}#
- #{b 2472}#)
- (if (#{id? 343}# #{a 2469}#)
- (keyword? (syntax->datum #{k 2471}#))
- #f))
- #{tmp 2464}#)
- #f)
- (@apply
- (lambda (#{a 2479}#
- #{init 2480}#
- #{k 2481}#
- #{b 2482}#)
- (#{key 2315}#
- #{b 2482}#
- #{req 2425}#
- #{opt 2426}#
- (cons (list #{k 2481}#
- #{a 2479}#
- #{init 2480}#)
- #{rkey 2427}#)))
- #{tmp 2464}#)
- (let ((#{tmp 2483}#
- ($sc-dispatch #{tmp 2432}# '(any))))
- (if (if #{tmp 2483}#
- (@apply
- (lambda (#{aok 2485}#)
- (eq? (syntax->datum #{aok 2485}#)
- #:allow-other-keys))
- #{tmp 2483}#)
- #f)
- (@apply
- (lambda (#{aok 2487}#)
- (#{check 2319}#
- #{req 2425}#
- #{opt 2426}#
- #f
- (cons #t (reverse #{rkey 2427}#))))
- #{tmp 2483}#)
- (let ((#{tmp 2488}#
- ($sc-dispatch
- #{tmp 2432}#
- '(any any any))))
- (if (if #{tmp 2488}#
- (@apply
- (lambda (#{aok 2492}#
- #{a 2493}#
- #{b 2494}#)
- (if (eq? (syntax->datum
- #{aok 2492}#)
- #:allow-other-keys)
- (eq? (syntax->datum
- #{a 2493}#)
- #:rest)
- #f))
- #{tmp 2488}#)
- #f)
- (@apply
- (lambda (#{aok 2500}#
- #{a 2501}#
- #{b 2502}#)
- (#{rest 2317}#
- #{b 2502}#
- #{req 2425}#
- #{opt 2426}#
- (cons #t
- (reverse #{rkey 2427}#))))
- #{tmp 2488}#)
- (let ((#{tmp 2503}#
- ($sc-dispatch
- #{tmp 2432}#
- '(any . any))))
- (if (if #{tmp 2503}#
- (@apply
- (lambda (#{aok 2506}#
- #{r 2507}#)
- (if (eq? (syntax->datum
- #{aok 2506}#)
-
#:allow-other-keys)
- (#{id? 343}# #{r 2507}#)
- #f))
- #{tmp 2503}#)
- #f)
- (@apply
- (lambda (#{aok 2512}# #{r 2513}#)
- (#{rest 2317}#
- #{r 2513}#
- #{req 2425}#
- #{opt 2426}#
- (cons #t
- (reverse
- #{rkey 2427}#))))
- #{tmp 2503}#)
- (let ((#{tmp 2514}#
- ($sc-dispatch
- #{tmp 2432}#
- '(any any))))
- (if (if #{tmp 2514}#
- (@apply
- (lambda (#{a 2517}#
- #{b 2518}#)
- (eq? (syntax->datum
- #{a 2517}#)
- #:rest))
- #{tmp 2514}#)
- #f)
- (@apply
- (lambda (#{a 2521}#
- #{b 2522}#)
- (#{rest 2317}#
- #{b 2522}#
- #{req 2425}#
- #{opt 2426}#
- (cons #f
- (reverse
- #{rkey 2427}#))))
- #{tmp 2514}#)
- (let ((#{tmp 2523}#
- (list #{tmp 2432}#)))
- (if (if #{tmp 2523}#
- (@apply
- (lambda (#{r 2525}#)
- (#{id? 343}#
- #{r 2525}#))
- #{tmp 2523}#)
- #f)
- (@apply
- (lambda (#{r 2527}#)
- (#{rest 2317}#
- #{r 2527}#
- #{req 2425}#
- #{opt 2426}#
- (cons #f
- (reverse
- #{rkey
2427}#))))
- #{tmp 2523}#)
- (let ((#{else 2529}#
- #{tmp 2432}#))
- (syntax-violation
- 'lambda*
- "invalid keyword
argument list"
- #{orig-args 2308}#
- #{args
2424}#)))))))))))))))))))))))
- (#{rest 2317}#
- (lambda (#{args 2530}#
- #{req 2531}#
- #{opt 2532}#
- #{kw 2533}#)
- (let ((#{tmp 2538}# #{args 2530}#))
- (let ((#{tmp 2539}# (list #{tmp 2538}#)))
- (if (if #{tmp 2539}#
- (@apply
- (lambda (#{r 2541}#) (#{id? 343}# #{r 2541}#))
- #{tmp 2539}#)
- #f)
- (@apply
- (lambda (#{r 2543}#)
- (#{check 2319}#
- #{req 2531}#
- #{opt 2532}#
- #{r 2543}#
- #{kw 2533}#))
- #{tmp 2539}#)
- (let ((#{else 2545}# #{tmp 2538}#))
- (syntax-violation
- 'lambda*
- "invalid rest argument"
- #{orig-args 2308}#
- #{args 2530}#)))))))
- (#{check 2319}#
- (lambda (#{req 2546}#
- #{opt 2547}#
- #{rest 2548}#
- #{kw 2549}#)
- (if (#{distinct-bound-ids? 405}#
- (append
- #{req 2546}#
- (map car #{opt 2547}#)
- (if #{rest 2548}# (list #{rest 2548}#) '())
- (if (pair? #{kw 2549}#)
- (map cadr (cdr #{kw 2549}#))
- '())))
- (values
- #{req 2546}#
- #{opt 2547}#
- #{rest 2548}#
- #{kw 2549}#)
- (syntax-violation
- 'lambda*
- "duplicate identifier in argument list"
- #{orig-args 2308}#)))))
- (#{req 2311}# #{orig-args 2308}# '()))))
- (#{chi-lambda-case 447}#
- (lambda (#{e 2557}#
- #{r 2558}#
- #{w 2559}#
- #{s 2560}#
- #{mod 2561}#
- #{get-formals 2562}#
- #{clauses 2563}#)
- (letrec*
- ((#{expand-req 2572}#
- (lambda (#{req 2579}#
- #{opt 2580}#
- #{rest 2581}#
- #{kw 2582}#
- #{body 2583}#)
- (let ((#{vars 2591}#
- (map #{gen-var 451}# #{req 2579}#))
- (#{labels 2592}#
- (#{gen-labels 358}# #{req 2579}#)))
- (let ((#{r* 2595}#
- (#{extend-var-env 333}#
- #{labels 2592}#
- #{vars 2591}#
- #{r 2558}#))
- (#{w* 2596}#
- (#{make-binding-wrap 387}#
- #{req 2579}#
- #{labels 2592}#
- #{w 2559}#)))
- (#{expand-opt 2574}#
- (map syntax->datum #{req 2579}#)
- #{opt 2580}#
- #{rest 2581}#
- #{kw 2582}#
- #{body 2583}#
- (reverse #{vars 2591}#)
- #{r* 2595}#
- #{w* 2596}#
- '()
- '())))))
- (#{expand-opt 2574}#
- (lambda (#{req 2597}#
- #{opt 2598}#
- #{rest 2599}#
- #{kw 2600}#
- #{body 2601}#
- #{vars 2602}#
- #{r* 2603}#
- #{w* 2604}#
- #{out 2605}#
- #{inits 2606}#)
- (if (pair? #{opt 2598}#)
- (let ((#{tmp 2619}# (car #{opt 2598}#)))
- (let ((#{tmp 2620}#
- ($sc-dispatch #{tmp 2619}# '(any any))))
- (if #{tmp 2620}#
- (@apply
- (lambda (#{id 2623}# #{i 2624}#)
- (let ((#{v 2627}# (#{gen-var 451}# #{id 2623}#)))
- (let ((#{l 2629}#
- (#{gen-labels 358}# (list #{v 2627}#))))
- (let ((#{r** 2631}#
- (#{extend-var-env 333}#
- #{l 2629}#
- (list #{v 2627}#)
- #{r* 2603}#)))
- (let ((#{w** 2633}#
- (#{make-binding-wrap 387}#
- (list #{id 2623}#)
- #{l 2629}#
- #{w* 2604}#)))
- (#{expand-opt 2574}#
- #{req 2597}#
- (cdr #{opt 2598}#)
- #{rest 2599}#
- #{kw 2600}#
- #{body 2601}#
- (cons #{v 2627}# #{vars 2602}#)
- #{r** 2631}#
- #{w** 2633}#
- (cons (syntax->datum #{id 2623}#)
- #{out 2605}#)
- (cons (#{chi 423}#
- #{i 2624}#
- #{r* 2603}#
- #{w* 2604}#
- #{mod 2561}#)
- #{inits 2606}#)))))))
- #{tmp 2620}#)
- (syntax-violation
- #f
- "source expression failed to match any pattern"
- #{tmp 2619}#))))
- (if #{rest 2599}#
- (let ((#{v 2638}# (#{gen-var 451}# #{rest 2599}#)))
- (let ((#{l 2640}#
- (#{gen-labels 358}# (list #{v 2638}#))))
- (let ((#{r* 2642}#
- (#{extend-var-env 333}#
- #{l 2640}#
- (list #{v 2638}#)
- #{r* 2603}#)))
- (let ((#{w* 2644}#
- (#{make-binding-wrap 387}#
- (list #{rest 2599}#)
- #{l 2640}#
- #{w* 2604}#)))
- (#{expand-kw 2576}#
- #{req 2597}#
- (if (pair? #{out 2605}#)
- (reverse #{out 2605}#)
- #f)
- (syntax->datum #{rest 2599}#)
- (if (pair? #{kw 2600}#)
- (cdr #{kw 2600}#)
- #{kw 2600}#)
- #{body 2601}#
- (cons #{v 2638}# #{vars 2602}#)
- #{r* 2642}#
- #{w* 2644}#
- (if (pair? #{kw 2600}#) (car #{kw 2600}#) #f)
- '()
- #{inits 2606}#)))))
- (#{expand-kw 2576}#
- #{req 2597}#
- (if (pair? #{out 2605}#)
- (reverse #{out 2605}#)
- #f)
- #f
- (if (pair? #{kw 2600}#)
- (cdr #{kw 2600}#)
- #{kw 2600}#)
- #{body 2601}#
- #{vars 2602}#
- #{r* 2603}#
- #{w* 2604}#
- (if (pair? #{kw 2600}#) (car #{kw 2600}#) #f)
- '()
- #{inits 2606}#)))))
- (#{expand-kw 2576}#
- (lambda (#{req 2646}#
- #{opt 2647}#
- #{rest 2648}#
- #{kw 2649}#
- #{body 2650}#
- #{vars 2651}#
- #{r* 2652}#
- #{w* 2653}#
- #{aok 2654}#
- #{out 2655}#
- #{inits 2656}#)
- (if (pair? #{kw 2649}#)
- (let ((#{tmp 2670}# (car #{kw 2649}#)))
- (let ((#{tmp 2671}#
- ($sc-dispatch #{tmp 2670}# '(any any any))))
- (if #{tmp 2671}#
- (@apply
- (lambda (#{k 2675}# #{id 2676}# #{i 2677}#)
- (let ((#{v 2680}# (#{gen-var 451}# #{id 2676}#)))
- (let ((#{l 2682}#
- (#{gen-labels 358}# (list #{v 2680}#))))
- (let ((#{r** 2684}#
- (#{extend-var-env 333}#
- #{l 2682}#
- (list #{v 2680}#)
- #{r* 2652}#)))
- (let ((#{w** 2686}#
- (#{make-binding-wrap 387}#
- (list #{id 2676}#)
- #{l 2682}#
- #{w* 2653}#)))
- (#{expand-kw 2576}#
- #{req 2646}#
- #{opt 2647}#
- #{rest 2648}#
- (cdr #{kw 2649}#)
- #{body 2650}#
- (cons #{v 2680}# #{vars 2651}#)
- #{r** 2684}#
- #{w** 2686}#
- #{aok 2654}#
- (cons (list (syntax->datum #{k 2675}#)
- (syntax->datum #{id 2676}#)
- #{v 2680}#)
- #{out 2655}#)
- (cons (#{chi 423}#
- #{i 2677}#
- #{r* 2652}#
- #{w* 2653}#
- #{mod 2561}#)
- #{inits 2656}#)))))))
- #{tmp 2671}#)
- (syntax-violation
- #f
- "source expression failed to match any pattern"
- #{tmp 2670}#))))
- (#{expand-body 2578}#
- #{req 2646}#
- #{opt 2647}#
- #{rest 2648}#
- (if (let ((#{t 2690}# #{aok 2654}#))
- (if #{t 2690}# #{t 2690}# (pair? #{out 2655}#)))
- (cons #{aok 2654}# (reverse #{out 2655}#))
- #f)
- #{body 2650}#
- (reverse #{vars 2651}#)
- #{r* 2652}#
- #{w* 2653}#
- (reverse #{inits 2656}#)
- '()))))
- (#{expand-body 2578}#
- (lambda (#{req 2692}#
- #{opt 2693}#
- #{rest 2694}#
- #{kw 2695}#
- #{body 2696}#
- #{vars 2697}#
- #{r* 2698}#
- #{w* 2699}#
- #{inits 2700}#
- #{meta 2701}#)
- (let ((#{tmp 2712}# #{body 2696}#))
- (let ((#{tmp 2713}#
- ($sc-dispatch #{tmp 2712}# '(any any . each-any))))
- (if (if #{tmp 2713}#
- (@apply
- (lambda (#{docstring 2717}# #{e1 2718}# #{e2 2719}#)
- (string? (syntax->datum #{docstring 2717}#)))
- #{tmp 2713}#)
- #f)
- (@apply
- (lambda (#{docstring 2723}# #{e1 2724}# #{e2 2725}#)
- (#{expand-body 2578}#
- #{req 2692}#
- #{opt 2693}#
- #{rest 2694}#
- #{kw 2695}#
- (cons #{e1 2724}# #{e2 2725}#)
- #{vars 2697}#
- #{r* 2698}#
- #{w* 2699}#
- #{inits 2700}#
- (append
- #{meta 2701}#
- (list (cons 'documentation
- (syntax->datum #{docstring 2723}#))))))
- #{tmp 2713}#)
- (let ((#{tmp 2728}#
- ($sc-dispatch
- #{tmp 2712}#
- '(#(vector #(each (any . any)))
- any
- .
- each-any))))
- (if #{tmp 2728}#
- (@apply
- (lambda (#{k 2733}#
- #{v 2734}#
- #{e1 2735}#
- #{e2 2736}#)
- (#{expand-body 2578}#
- #{req 2692}#
- #{opt 2693}#
- #{rest 2694}#
- #{kw 2695}#
- (cons #{e1 2735}# #{e2 2736}#)
- #{vars 2697}#
- #{r* 2698}#
- #{w* 2699}#
- #{inits 2700}#
- (append
- #{meta 2701}#
- (syntax->datum
- (map cons #{k 2733}# #{v 2734}#)))))
- #{tmp 2728}#)
- (let ((#{tmp 2740}#
- ($sc-dispatch #{tmp 2712}# '(any . each-any))))
- (if #{tmp 2740}#
- (@apply
- (lambda (#{e1 2743}# #{e2 2744}#)
- (values
- #{meta 2701}#
- #{req 2692}#
- #{opt 2693}#
- #{rest 2694}#
- #{kw 2695}#
- #{inits 2700}#
- #{vars 2697}#
- (#{chi-body 431}#
- (cons #{e1 2743}# #{e2 2744}#)
- (#{source-wrap 411}#
- #{e 2557}#
- #{w 2559}#
- #{s 2560}#
- #{mod 2561}#)
- #{r* 2698}#
- #{w* 2699}#
- #{mod 2561}#)))
- #{tmp 2740}#)
- (syntax-violation
- #f
- "source expression failed to match any pattern"
- #{tmp 2712}#)))))))))))
- (let ((#{tmp 2746}# #{clauses 2563}#))
- (let ((#{tmp 2747}# ($sc-dispatch #{tmp 2746}# '())))
- (if #{tmp 2747}#
- (@apply (lambda () (values '() #f)) #{tmp 2747}#)
- (let ((#{tmp 2748}#
- ($sc-dispatch
- #{tmp 2746}#
- '((any any . each-any)
- .
- #(each (any any . each-any))))))
- (if #{tmp 2748}#
- (@apply
- (lambda (#{args 2755}#
- #{e1 2756}#
- #{e2 2757}#
- #{args* 2758}#
- #{e1* 2759}#
- #{e2* 2760}#)
- (call-with-values
- (lambda () (#{get-formals 2562}# #{args 2755}#))
- (lambda (#{req 2761}#
- #{opt 2762}#
- #{rest 2763}#
- #{kw 2764}#)
- (call-with-values
- (lambda ()
- (#{expand-req 2572}#
- #{req 2761}#
- #{opt 2762}#
- #{rest 2763}#
- #{kw 2764}#
- (cons #{e1 2756}# #{e2 2757}#)))
- (lambda (#{meta 2770}#
- #{req 2771}#
- #{opt 2772}#
- #{rest 2773}#
- #{kw 2774}#
- #{inits 2775}#
- #{vars 2776}#
- #{body 2777}#)
- (call-with-values
- (lambda ()
- (#{chi-lambda-case 447}#
- #{e 2557}#
- #{r 2558}#
- #{w 2559}#
- #{s 2560}#
- #{mod 2561}#
- #{get-formals 2562}#
- (map (lambda (#{tmp 2788}#
- #{tmp 2787}#
- #{tmp 2786}#)
- (cons #{tmp 2786}#
- (cons #{tmp 2787}#
- #{tmp 2788}#)))
- #{e2* 2760}#
- #{e1* 2759}#
- #{args* 2758}#)))
- (lambda (#{meta* 2790}# #{else* 2791}#)
- (values
- (append #{meta 2770}# #{meta* 2790}#)
- (#{build-lambda-case 289}#
- #{s 2560}#
- #{req 2771}#
- #{opt 2772}#
- #{rest 2773}#
- #{kw 2774}#
- #{inits 2775}#
- #{vars 2776}#
- #{body 2777}#
- #{else* 2791}#)))))))))
- #{tmp 2748}#)
- (syntax-violation
- #f
- "source expression failed to match any pattern"
- #{tmp 2746}#)))))))))
- (#{strip 449}#
- (lambda (#{x 2794}# #{w 2795}#)
- (if (memq 'top (car #{w 2795}#))
- #{x 2794}#
- (letrec*
- ((#{f 2802}#
- (lambda (#{x 2803}#)
- (if (#{syntax-object? 309}# #{x 2803}#)
- (#{strip 449}#
- (#{syntax-object-expression 311}# #{x 2803}#)
- (#{syntax-object-wrap 313}# #{x 2803}#))
- (if (pair? #{x 2803}#)
- (let ((#{a 2810}# (#{f 2802}# (car #{x 2803}#)))
- (#{d 2811}# (#{f 2802}# (cdr #{x 2803}#))))
- (if (if (eq? #{a 2810}# (car #{x 2803}#))
- (eq? #{d 2811}# (cdr #{x 2803}#))
- #f)
- #{x 2803}#
- (cons #{a 2810}# #{d 2811}#)))
- (if (vector? #{x 2803}#)
- (let ((#{old 2817}# (vector->list #{x 2803}#)))
- (let ((#{new 2819}# (map #{f 2802}# #{old 2817}#)))
- (letrec*
- ((#{lp 2823}#
- (lambda (#{l1 2824}# #{l2 2825}#)
- (if (null? #{l1 2824}#)
- #{x 2803}#
- (if (eq? (car #{l1 2824}#)
- (car #{l2 2825}#))
- (#{lp 2823}#
- (cdr #{l1 2824}#)
- (cdr #{l2 2825}#))
- (list->vector #{new 2819}#))))))
- (#{lp 2823}# #{old 2817}# #{new 2819}#))))
- #{x 2803}#))))))
- (#{f 2802}# #{x 2794}#)))))
- (#{gen-var 451}#
- (lambda (#{id 2827}#)
- (let ((#{id 2830}#
- (if (#{syntax-object? 309}# #{id 2827}#)
- (#{syntax-object-expression 311}# #{id 2827}#)
- #{id 2827}#)))
- (gensym
- (string-append (symbol->string #{id 2830}#) " ")))))
- (#{lambda-var-list 453}#
- (lambda (#{vars 2832}#)
- (letrec*
- ((#{lvl 2838}#
- (lambda (#{vars 2839}# #{ls 2840}# #{w 2841}#)
- (if (pair? #{vars 2839}#)
- (#{lvl 2838}#
- (cdr #{vars 2839}#)
- (cons (#{wrap 409}# (car #{vars 2839}#) #{w 2841}# #f)
- #{ls 2840}#)
- #{w 2841}#)
- (if (#{id? 343}# #{vars 2839}#)
- (cons (#{wrap 409}# #{vars 2839}# #{w 2841}# #f)
- #{ls 2840}#)
- (if (null? #{vars 2839}#)
- #{ls 2840}#
- (if (#{syntax-object? 309}# #{vars 2839}#)
- (#{lvl 2838}#
- (#{syntax-object-expression 311}# #{vars 2839}#)
- #{ls 2840}#
- (#{join-wraps 391}#
- #{w 2841}#
- (#{syntax-object-wrap 313}# #{vars 2839}#)))
- (cons #{vars 2839}# #{ls 2840}#))))))))
- (#{lvl 2838}# #{vars 2832}# '() '(()))))))
- (begin
- (lambda (#{x 1163}# #{update 1164}#)
- (vector-set! #{x 1163}# 1 #{update 1164}#))
- (lambda (#{x 1167}# #{update 1168}#)
- (vector-set! #{x 1167}# 2 #{update 1168}#))
- (lambda (#{x 1171}# #{update 1172}#)
- (vector-set! #{x 1171}# 3 #{update 1172}#))
- (lambda (#{x 1252}#)
- (if (vector? #{x 1252}#)
- (if (= (vector-length #{x 1252}#) 4)
- (eq? (vector-ref #{x 1252}# 0) 'ribcage)
- #f)
- #f))
- (#{global-extend 339}#
- 'local-syntax
- 'letrec-syntax
- #t)
- (#{global-extend 339}#
- 'local-syntax
- 'let-syntax
- #f)
- (#{global-extend 339}#
- 'core
- 'fluid-let-syntax
- (lambda (#{e 2852}#
- #{r 2853}#
- #{w 2854}#
- #{s 2855}#
- #{mod 2856}#)
- (let ((#{tmp 2862}# #{e 2852}#))
- (let ((#{tmp 2863}#
- ($sc-dispatch
- #{tmp 2862}#
- '(_ #(each (any any)) any . each-any))))
- (if (if #{tmp 2863}#
- (@apply
- (lambda (#{var 2868}#
- #{val 2869}#
- #{e1 2870}#
- #{e2 2871}#)
- (#{valid-bound-ids? 403}# #{var 2868}#))
- #{tmp 2863}#)
- #f)
- (@apply
- (lambda (#{var 2877}#
- #{val 2878}#
- #{e1 2879}#
- #{e2 2880}#)
- (let ((#{names 2882}#
- (map (lambda (#{x 2883}#)
- (#{id-var-name 397}# #{x 2883}# #{w 2854}#))
- #{var 2877}#)))
- (begin
- (for-each
- (lambda (#{id 2886}# #{n 2887}#)
- (let ((#{atom-key 2892}#
- (car (#{lookup 337}#
- #{n 2887}#
- #{r 2853}#
- #{mod 2856}#))))
- (if (memv #{atom-key 2892}# '(displaced-lexical))
- (syntax-violation
- 'fluid-let-syntax
- "identifier out of context"
- #{e 2852}#
- (#{source-wrap 411}#
- #{id 2886}#
- #{w 2854}#
- #{s 2855}#
- #{mod 2856}#)))))
- #{var 2877}#
- #{names 2882}#)
- (#{chi-body 431}#
- (cons #{e1 2879}# #{e2 2880}#)
- (#{source-wrap 411}#
- #{e 2852}#
- #{w 2854}#
- #{s 2855}#
- #{mod 2856}#)
- (#{extend-env 331}#
- #{names 2882}#
- (let ((#{trans-r 2898}#
- (#{macros-only-env 335}# #{r 2853}#)))
- (map (lambda (#{x 2899}#)
- (cons 'macro
- (#{eval-local-transformer 435}#
- (#{chi 423}#
- #{x 2899}#
- #{trans-r 2898}#
- #{w 2854}#
- #{mod 2856}#)
- #{mod 2856}#)))
- #{val 2878}#))
- #{r 2853}#)
- #{w 2854}#
- #{mod 2856}#))))
- #{tmp 2863}#)
- (let ((#{_ 2904}# #{tmp 2862}#))
- (syntax-violation
- 'fluid-let-syntax
- "bad syntax"
- (#{source-wrap 411}#
- #{e 2852}#
- #{w 2854}#
- #{s 2855}#
- #{mod 2856}#))))))))
- (#{global-extend 339}#
- 'core
- 'quote
- (lambda (#{e 2905}#
- #{r 2906}#
- #{w 2907}#
- #{s 2908}#
- #{mod 2909}#)
- (let ((#{tmp 2915}# #{e 2905}#))
- (let ((#{tmp 2916}#
- ($sc-dispatch #{tmp 2915}# '(_ any))))
- (if #{tmp 2916}#
- (@apply
- (lambda (#{e 2918}#)
- (#{build-data 295}#
- #{s 2908}#
- (#{strip 449}# #{e 2918}# #{w 2907}#)))
- #{tmp 2916}#)
- (let ((#{_ 2920}# #{tmp 2915}#))
- (syntax-violation
- 'quote
- "bad syntax"
- (#{source-wrap 411}#
- #{e 2905}#
- #{w 2907}#
- #{s 2908}#
- #{mod 2909}#))))))))
- (#{global-extend 339}#
- 'core
- 'syntax
- (letrec*
- ((#{gen-syntax 2922}#
- (lambda (#{src 2937}#
- #{e 2938}#
- #{r 2939}#
- #{maps 2940}#
- #{ellipsis? 2941}#
- #{mod 2942}#)
- (if (#{id? 343}# #{e 2938}#)
- (let ((#{label 2950}#
- (#{id-var-name 397}# #{e 2938}# '(()))))
- (let ((#{b 2953}#
- (#{lookup 337}#
- #{label 2950}#
- #{r 2939}#
- #{mod 2942}#)))
- (if (eq? (car #{b 2953}#) 'syntax)
- (call-with-values
- (lambda ()
- (let ((#{var.lev 2956}# (cdr #{b 2953}#)))
- (#{gen-ref 2924}#
- #{src 2937}#
- (car #{var.lev 2956}#)
- (cdr #{var.lev 2956}#)
- #{maps 2940}#)))
- (lambda (#{var 2958}# #{maps 2959}#)
- (values (list 'ref #{var 2958}#) #{maps 2959}#)))
- (if (#{ellipsis? 2941}# #{e 2938}#)
- (syntax-violation
- 'syntax
- "misplaced ellipsis"
- #{src 2937}#)
- (values (list 'quote #{e 2938}#) #{maps 2940}#)))))
- (let ((#{tmp 2964}# #{e 2938}#))
- (let ((#{tmp 2965}#
- ($sc-dispatch #{tmp 2964}# '(any any))))
- (if (if #{tmp 2965}#
- (@apply
- (lambda (#{dots 2968}# #{e 2969}#)
- (#{ellipsis? 2941}# #{dots 2968}#))
- #{tmp 2965}#)
- #f)
- (@apply
- (lambda (#{dots 2972}# #{e 2973}#)
- (#{gen-syntax 2922}#
- #{src 2937}#
- #{e 2973}#
- #{r 2939}#
- #{maps 2940}#
- (lambda (#{x 2974}#) #f)
- #{mod 2942}#))
- #{tmp 2965}#)
- (let ((#{tmp 2976}#
- ($sc-dispatch #{tmp 2964}# '(any any . any))))
- (if (if #{tmp 2976}#
- (@apply
- (lambda (#{x 2980}# #{dots 2981}# #{y 2982}#)
- (#{ellipsis? 2941}# #{dots 2981}#))
- #{tmp 2976}#)
- #f)
- (@apply
- (lambda (#{x 2986}# #{dots 2987}# #{y 2988}#)
- (letrec*
- ((#{f 2992}#
- (lambda (#{y 2993}# #{k 2994}#)
- (let ((#{tmp 3001}# #{y 2993}#))
- (let ((#{tmp 3002}#
- ($sc-dispatch
- #{tmp 3001}#
- '(any . any))))
- (if (if #{tmp 3002}#
- (@apply
- (lambda (#{dots 3005}#
- #{y 3006}#)
- (#{ellipsis? 2941}#
- #{dots 3005}#))
- #{tmp 3002}#)
- #f)
- (@apply
- (lambda (#{dots 3009}# #{y 3010}#)
- (#{f 2992}#
- #{y 3010}#
- (lambda (#{maps 3011}#)
- (call-with-values
- (lambda ()
- (#{k 2994}#
- (cons '()
- #{maps 3011}#)))
- (lambda (#{x 3013}#
- #{maps 3014}#)
- (if (null? (car #{maps
3014}#))
- (syntax-violation
- 'syntax
- "extra ellipsis"
- #{src 2937}#)
- (values
- (#{gen-mappend 2926}#
- #{x 3013}#
- (car #{maps
3014}#))
- (cdr #{maps
3014}#))))))))
- #{tmp 3002}#)
- (let ((#{_ 3018}# #{tmp 3001}#))
- (call-with-values
- (lambda ()
- (#{gen-syntax 2922}#
- #{src 2937}#
- #{y 2993}#
- #{r 2939}#
- #{maps 2940}#
- #{ellipsis? 2941}#
- #{mod 2942}#))
- (lambda (#{y 3019}#
- #{maps 3020}#)
- (call-with-values
- (lambda ()
- (#{k 2994}# #{maps 3020}#))
- (lambda (#{x 3023}#
- #{maps 3024}#)
- (values
- (#{gen-append 2932}#
- #{x 3023}#
- #{y 3019}#)
- #{maps 3024}#))))))))))))
- (#{f 2992}#
- #{y 2988}#
- (lambda (#{maps 2995}#)
- (call-with-values
- (lambda ()
- (#{gen-syntax 2922}#
- #{src 2937}#
- #{x 2986}#
- #{r 2939}#
- (cons '() #{maps 2995}#)
- #{ellipsis? 2941}#
- #{mod 2942}#))
- (lambda (#{x 2997}# #{maps 2998}#)
- (if (null? (car #{maps 2998}#))
- (syntax-violation
- 'syntax
- "extra ellipsis"
- #{src 2937}#)
- (values
- (#{gen-map 2928}#
- #{x 2997}#
- (car #{maps 2998}#))
- (cdr #{maps 2998}#)))))))))
- #{tmp 2976}#)
- (let ((#{tmp 3027}#
- ($sc-dispatch #{tmp 2964}# '(any . any))))
- (if #{tmp 3027}#
- (@apply
- (lambda (#{x 3030}# #{y 3031}#)
- (call-with-values
- (lambda ()
- (#{gen-syntax 2922}#
- #{src 2937}#
- #{x 3030}#
- #{r 2939}#
- #{maps 2940}#
- #{ellipsis? 2941}#
- #{mod 2942}#))
- (lambda (#{x 3032}# #{maps 3033}#)
- (call-with-values
- (lambda ()
- (#{gen-syntax 2922}#
- #{src 2937}#
- #{y 3031}#
- #{r 2939}#
- #{maps 3033}#
- #{ellipsis? 2941}#
- #{mod 2942}#))
- (lambda (#{y 3036}# #{maps 3037}#)
- (values
- (#{gen-cons 2930}#
- #{x 3032}#
- #{y 3036}#)
- #{maps 3037}#))))))
- #{tmp 3027}#)
- (let ((#{tmp 3040}#
- ($sc-dispatch
- #{tmp 2964}#
- '#(vector (any . each-any)))))
- (if #{tmp 3040}#
- (@apply
- (lambda (#{e1 3043}# #{e2 3044}#)
- (call-with-values
- (lambda ()
- (#{gen-syntax 2922}#
- #{src 2937}#
- (cons #{e1 3043}# #{e2 3044}#)
- #{r 2939}#
- #{maps 2940}#
- #{ellipsis? 2941}#
- #{mod 2942}#))
- (lambda (#{e 3046}# #{maps 3047}#)
- (values
- (#{gen-vector 2934}# #{e 3046}#)
- #{maps 3047}#))))
- #{tmp 3040}#)
- (let ((#{_ 3051}# #{tmp 2964}#))
- (values
- (list 'quote #{e 2938}#)
- #{maps 2940}#))))))))))))))
- (#{gen-ref 2924}#
- (lambda (#{src 3053}#
- #{var 3054}#
- #{level 3055}#
- #{maps 3056}#)
- (if (= #{level 3055}# 0)
- (values #{var 3054}# #{maps 3056}#)
- (if (null? #{maps 3056}#)
- (syntax-violation
- 'syntax
- "missing ellipsis"
- #{src 3053}#)
- (call-with-values
- (lambda ()
- (#{gen-ref 2924}#
- #{src 3053}#
- #{var 3054}#
- (#{1-}# #{level 3055}#)
- (cdr #{maps 3056}#)))
- (lambda (#{outer-var 3063}# #{outer-maps 3064}#)
- (let ((#{b 3068}#
- (assq #{outer-var 3063}# (car #{maps 3056}#))))
- (if #{b 3068}#
- (values (cdr #{b 3068}#) #{maps 3056}#)
- (let ((#{inner-var 3070}# (#{gen-var 451}# 'tmp)))
- (values
- #{inner-var 3070}#
- (cons (cons (cons #{outer-var 3063}#
- #{inner-var 3070}#)
- (car #{maps 3056}#))
- #{outer-maps 3064}#)))))))))))
- (#{gen-mappend 2926}#
- (lambda (#{e 3071}# #{map-env 3072}#)
- (list 'apply
- '(primitive append)
- (#{gen-map 2928}# #{e 3071}# #{map-env 3072}#))))
- (#{gen-map 2928}#
- (lambda (#{e 3076}# #{map-env 3077}#)
- (let ((#{formals 3082}# (map cdr #{map-env 3077}#))
- (#{actuals 3083}#
- (map (lambda (#{x 3084}#)
- (list 'ref (car #{x 3084}#)))
- #{map-env 3077}#)))
- (if (eq? (car #{e 3076}#) 'ref)
- (car #{actuals 3083}#)
- (if (and-map
- (lambda (#{x 3091}#)
- (if (eq? (car #{x 3091}#) 'ref)
- (memq (car (cdr #{x 3091}#)) #{formals 3082}#)
- #f))
- (cdr #{e 3076}#))
- (cons 'map
- (cons (list 'primitive (car #{e 3076}#))
- (map (let ((#{r 3097}#
- (map cons
- #{formals 3082}#
- #{actuals 3083}#)))
- (lambda (#{x 3098}#)
- (cdr (assq (car (cdr #{x 3098}#))
- #{r 3097}#))))
- (cdr #{e 3076}#))))
- (cons 'map
- (cons (list 'lambda #{formals 3082}# #{e 3076}#)
- #{actuals 3083}#)))))))
- (#{gen-cons 2930}#
- (lambda (#{x 3102}# #{y 3103}#)
- (let ((#{atom-key 3108}# (car #{y 3103}#)))
- (if (memv #{atom-key 3108}# '(quote))
- (if (eq? (car #{x 3102}#) 'quote)
- (list 'quote
- (cons (car (cdr #{x 3102}#))
- (car (cdr #{y 3103}#))))
- (if (eq? (car (cdr #{y 3103}#)) '())
- (list 'list #{x 3102}#)
- (list 'cons #{x 3102}# #{y 3103}#)))
- (if (memv #{atom-key 3108}# '(list))
- (cons 'list (cons #{x 3102}# (cdr #{y 3103}#)))
- (list 'cons #{x 3102}# #{y 3103}#))))))
- (#{gen-append 2932}#
- (lambda (#{x 3117}# #{y 3118}#)
- (if (equal? #{y 3118}# ''())
- #{x 3117}#
- (list 'append #{x 3117}# #{y 3118}#))))
- (#{gen-vector 2934}#
- (lambda (#{x 3122}#)
- (if (eq? (car #{x 3122}#) 'list)
- (cons 'vector (cdr #{x 3122}#))
- (if (eq? (car #{x 3122}#) 'quote)
- (list 'quote
- (list->vector (car (cdr #{x 3122}#))))
- (list 'list->vector #{x 3122}#)))))
- (#{regen 2936}#
- (lambda (#{x 3132}#)
- (let ((#{atom-key 3136}# (car #{x 3132}#)))
- (if (memv #{atom-key 3136}# '(ref))
- (#{build-lexical-reference 273}#
- 'value
- #f
- (car (cdr #{x 3132}#))
- (car (cdr #{x 3132}#)))
- (if (memv #{atom-key 3136}# '(primitive))
- (#{build-primref 293}# #f (car (cdr #{x 3132}#)))
- (if (memv #{atom-key 3136}# '(quote))
- (#{build-data 295}# #f (car (cdr #{x 3132}#)))
- (if (memv #{atom-key 3136}# '(lambda))
- (if (list? (car (cdr #{x 3132}#)))
- (#{build-simple-lambda 285}#
- #f
- (car (cdr #{x 3132}#))
- #f
- (car (cdr #{x 3132}#))
- '()
- (#{regen 2936}# (car (cdr (cdr #{x 3132}#)))))
- (error "how did we get here" #{x 3132}#))
- (#{build-primcall 291}#
- #f
- (car #{x 3132}#)
- (map #{regen 2936}# (cdr #{x 3132}#)))))))))))
- (lambda (#{e 3147}#
- #{r 3148}#
- #{w 3149}#
- #{s 3150}#
- #{mod 3151}#)
- (let ((#{e 3158}#
- (#{source-wrap 411}#
- #{e 3147}#
- #{w 3149}#
- #{s 3150}#
- #{mod 3151}#)))
- (let ((#{tmp 3159}# #{e 3158}#))
- (let ((#{tmp 3160}#
- ($sc-dispatch #{tmp 3159}# '(_ any))))
- (if #{tmp 3160}#
- (@apply
- (lambda (#{x 3162}#)
- (call-with-values
- (lambda ()
- (#{gen-syntax 2922}#
- #{e 3158}#
- #{x 3162}#
- #{r 3148}#
- '()
- #{ellipsis? 439}#
- #{mod 3151}#))
- (lambda (#{e 3163}# #{maps 3164}#)
- (#{regen 2936}# #{e 3163}#))))
- #{tmp 3160}#)
- (let ((#{_ 3168}# #{tmp 3159}#))
- (syntax-violation
- 'syntax
- "bad `syntax' form"
- #{e 3158}#)))))))))
- (#{global-extend 339}#
- 'core
- 'lambda
- (lambda (#{e 3169}#
- #{r 3170}#
- #{w 3171}#
- #{s 3172}#
- #{mod 3173}#)
- (let ((#{tmp 3179}# #{e 3169}#))
- (let ((#{tmp 3180}#
- ($sc-dispatch
- #{tmp 3179}#
- '(_ any any . each-any))))
- (if #{tmp 3180}#
- (@apply
- (lambda (#{args 3184}# #{e1 3185}# #{e2 3186}#)
- (call-with-values
- (lambda ()
- (#{lambda-formals 441}# #{args 3184}#))
- (lambda (#{req 3187}#
- #{opt 3188}#
- #{rest 3189}#
- #{kw 3190}#)
- (letrec*
- ((#{lp 3198}#
- (lambda (#{body 3199}# #{meta 3200}#)
- (let ((#{tmp 3202}# #{body 3199}#))
- (let ((#{tmp 3203}#
- ($sc-dispatch
- #{tmp 3202}#
- '(any any . each-any))))
- (if (if #{tmp 3203}#
- (@apply
- (lambda (#{docstring 3207}#
- #{e1 3208}#
- #{e2 3209}#)
- (string?
- (syntax->datum
- #{docstring 3207}#)))
- #{tmp 3203}#)
- #f)
- (@apply
- (lambda (#{docstring 3213}#
- #{e1 3214}#
- #{e2 3215}#)
- (#{lp 3198}#
- (cons #{e1 3214}# #{e2 3215}#)
- (append
- #{meta 3200}#
- (list (cons 'documentation
- (syntax->datum
- #{docstring
3213}#))))))
- #{tmp 3203}#)
- (let ((#{tmp 3218}#
- ($sc-dispatch
- #{tmp 3202}#
- '(#(vector #(each (any . any)))
- any
- .
- each-any))))
- (if #{tmp 3218}#
- (@apply
- (lambda (#{k 3223}#
- #{v 3224}#
- #{e1 3225}#
- #{e2 3226}#)
- (#{lp 3198}#
- (cons #{e1 3225}# #{e2 3226}#)
- (append
- #{meta 3200}#
- (syntax->datum
- (map cons
- #{k 3223}#
- #{v 3224}#)))))
- #{tmp 3218}#)
- (let ((#{_ 3231}# #{tmp 3202}#))
- (#{chi-simple-lambda 443}#
- #{e 3169}#
- #{r 3170}#
- #{w 3171}#
- #{s 3172}#
- #{mod 3173}#
- #{req 3187}#
- #{rest 3189}#
- #{meta 3200}#
- #{body 3199}#))))))))))
- (#{lp 3198}# (cons #{e1 3185}# #{e2 3186}#) '())))))
- #{tmp 3180}#)
- (let ((#{_ 3233}# #{tmp 3179}#))
- (syntax-violation
- 'lambda
- "bad lambda"
- #{e 3169}#)))))))
- (#{global-extend 339}#
- 'core
- 'lambda*
- (lambda (#{e 3234}#
- #{r 3235}#
- #{w 3236}#
- #{s 3237}#
- #{mod 3238}#)
- (let ((#{tmp 3244}# #{e 3234}#))
- (let ((#{tmp 3245}#
- ($sc-dispatch
- #{tmp 3244}#
- '(_ any any . each-any))))
- (if #{tmp 3245}#
- (@apply
- (lambda (#{args 3249}# #{e1 3250}# #{e2 3251}#)
- (call-with-values
- (lambda ()
- (#{chi-lambda-case 447}#
- #{e 3234}#
- #{r 3235}#
- #{w 3236}#
- #{s 3237}#
- #{mod 3238}#
- #{lambda*-formals 445}#
- (list (cons #{args 3249}#
- (cons #{e1 3250}# #{e2 3251}#)))))
- (lambda (#{meta 3253}# #{lcase 3254}#)
- (#{build-case-lambda 287}#
- #{s 3237}#
- #{meta 3253}#
- #{lcase 3254}#))))
- #{tmp 3245}#)
- (let ((#{_ 3258}# #{tmp 3244}#))
- (syntax-violation
- 'lambda
- "bad lambda*"
- #{e 3234}#)))))))
- (#{global-extend 339}#
- 'core
- 'case-lambda
- (lambda (#{e 3259}#
- #{r 3260}#
- #{w 3261}#
- #{s 3262}#
- #{mod 3263}#)
- (let ((#{tmp 3269}# #{e 3259}#))
- (let ((#{tmp 3270}#
- ($sc-dispatch
- #{tmp 3269}#
- '(_ (any any . each-any)
- .
- #(each (any any . each-any))))))
- (if #{tmp 3270}#
- (@apply
- (lambda (#{args 3277}#
- #{e1 3278}#
- #{e2 3279}#
- #{args* 3280}#
- #{e1* 3281}#
- #{e2* 3282}#)
- (call-with-values
- (lambda ()
- (#{chi-lambda-case 447}#
- #{e 3259}#
- #{r 3260}#
- #{w 3261}#
- #{s 3262}#
- #{mod 3263}#
- #{lambda-formals 441}#
- (cons (cons #{args 3277}#
- (cons #{e1 3278}# #{e2 3279}#))
- (map (lambda (#{tmp 3286}#
- #{tmp 3285}#
- #{tmp 3284}#)
- (cons #{tmp 3284}#
- (cons #{tmp 3285}# #{tmp 3286}#)))
- #{e2* 3282}#
- #{e1* 3281}#
- #{args* 3280}#))))
- (lambda (#{meta 3288}# #{lcase 3289}#)
- (#{build-case-lambda 287}#
- #{s 3262}#
- #{meta 3288}#
- #{lcase 3289}#))))
- #{tmp 3270}#)
- (let ((#{_ 3293}# #{tmp 3269}#))
- (syntax-violation
- 'case-lambda
- "bad case-lambda"
- #{e 3259}#)))))))
- (#{global-extend 339}#
- 'core
- 'case-lambda*
- (lambda (#{e 3294}#
- #{r 3295}#
- #{w 3296}#
- #{s 3297}#
- #{mod 3298}#)
- (let ((#{tmp 3304}# #{e 3294}#))
- (let ((#{tmp 3305}#
- ($sc-dispatch
- #{tmp 3304}#
- '(_ (any any . each-any)
- .
- #(each (any any . each-any))))))
- (if #{tmp 3305}#
- (@apply
- (lambda (#{args 3312}#
- #{e1 3313}#
- #{e2 3314}#
- #{args* 3315}#
- #{e1* 3316}#
- #{e2* 3317}#)
- (call-with-values
- (lambda ()
- (#{chi-lambda-case 447}#
- #{e 3294}#
- #{r 3295}#
- #{w 3296}#
- #{s 3297}#
- #{mod 3298}#
- #{lambda*-formals 445}#
- (cons (cons #{args 3312}#
- (cons #{e1 3313}# #{e2 3314}#))
- (map (lambda (#{tmp 3321}#
- #{tmp 3320}#
- #{tmp 3319}#)
- (cons #{tmp 3319}#
- (cons #{tmp 3320}# #{tmp 3321}#)))
- #{e2* 3317}#
- #{e1* 3316}#
- #{args* 3315}#))))
- (lambda (#{meta 3323}# #{lcase 3324}#)
- (#{build-case-lambda 287}#
- #{s 3297}#
- #{meta 3323}#
- #{lcase 3324}#))))
- #{tmp 3305}#)
- (let ((#{_ 3328}# #{tmp 3304}#))
- (syntax-violation
- 'case-lambda
- "bad case-lambda*"
- #{e 3294}#)))))))
- (#{global-extend 339}#
- 'core
- 'let
- (letrec*
- ((#{chi-let 3330}#
- (lambda (#{e 3331}#
- #{r 3332}#
- #{w 3333}#
- #{s 3334}#
- #{mod 3335}#
- #{constructor 3336}#
- #{ids 3337}#
- #{vals 3338}#
- #{exps 3339}#)
- (if (not (#{valid-bound-ids? 403}# #{ids 3337}#))
- (syntax-violation
- 'let
- "duplicate bound variable"
- #{e 3331}#)
- (let ((#{labels 3351}#
- (#{gen-labels 358}# #{ids 3337}#))
- (#{new-vars 3352}#
- (map #{gen-var 451}# #{ids 3337}#)))
- (let ((#{nw 3355}#
- (#{make-binding-wrap 387}#
- #{ids 3337}#
- #{labels 3351}#
- #{w 3333}#))
- (#{nr 3356}#
- (#{extend-var-env 333}#
- #{labels 3351}#
- #{new-vars 3352}#
- #{r 3332}#)))
- (#{constructor 3336}#
- #{s 3334}#
- (map syntax->datum #{ids 3337}#)
- #{new-vars 3352}#
- (map (lambda (#{x 3357}#)
- (#{chi 423}#
- #{x 3357}#
- #{r 3332}#
- #{w 3333}#
- #{mod 3335}#))
- #{vals 3338}#)
- (#{chi-body 431}#
- #{exps 3339}#
- (#{source-wrap 411}#
- #{e 3331}#
- #{nw 3355}#
- #{s 3334}#
- #{mod 3335}#)
- #{nr 3356}#
- #{nw 3355}#
- #{mod 3335}#))))))))
- (lambda (#{e 3359}#
- #{r 3360}#
- #{w 3361}#
- #{s 3362}#
- #{mod 3363}#)
- (let ((#{tmp 3369}# #{e 3359}#))
- (let ((#{tmp 3370}#
- ($sc-dispatch
- #{tmp 3369}#
- '(_ #(each (any any)) any . each-any))))
- (if (if #{tmp 3370}#
- (@apply
- (lambda (#{id 3375}#
- #{val 3376}#
- #{e1 3377}#
- #{e2 3378}#)
- (and-map #{id? 343}# #{id 3375}#))
- #{tmp 3370}#)
- #f)
- (@apply
- (lambda (#{id 3384}#
- #{val 3385}#
- #{e1 3386}#
- #{e2 3387}#)
- (#{chi-let 3330}#
- #{e 3359}#
- #{r 3360}#
- #{w 3361}#
- #{s 3362}#
- #{mod 3363}#
- #{build-let 299}#
- #{id 3384}#
- #{val 3385}#
- (cons #{e1 3386}# #{e2 3387}#)))
- #{tmp 3370}#)
- (let ((#{tmp 3391}#
- ($sc-dispatch
- #{tmp 3369}#
- '(_ any #(each (any any)) any . each-any))))
- (if (if #{tmp 3391}#
- (@apply
- (lambda (#{f 3397}#
- #{id 3398}#
- #{val 3399}#
- #{e1 3400}#
- #{e2 3401}#)
- (if (#{id? 343}# #{f 3397}#)
- (and-map #{id? 343}# #{id 3398}#)
- #f))
- #{tmp 3391}#)
- #f)
- (@apply
- (lambda (#{f 3410}#
- #{id 3411}#
- #{val 3412}#
- #{e1 3413}#
- #{e2 3414}#)
- (#{chi-let 3330}#
- #{e 3359}#
- #{r 3360}#
- #{w 3361}#
- #{s 3362}#
- #{mod 3363}#
- #{build-named-let 301}#
- (cons #{f 3410}# #{id 3411}#)
- #{val 3412}#
- (cons #{e1 3413}# #{e2 3414}#)))
- #{tmp 3391}#)
- (let ((#{_ 3419}# #{tmp 3369}#))
- (syntax-violation
- 'let
- "bad let"
- (#{source-wrap 411}#
- #{e 3359}#
- #{w 3361}#
- #{s 3362}#
- #{mod 3363}#)))))))))))
- (#{global-extend 339}#
- 'core
- 'letrec
- (lambda (#{e 3420}#
- #{r 3421}#
- #{w 3422}#
- #{s 3423}#
- #{mod 3424}#)
- (let ((#{tmp 3430}# #{e 3420}#))
- (let ((#{tmp 3431}#
- ($sc-dispatch
- #{tmp 3430}#
- '(_ #(each (any any)) any . each-any))))
- (if (if #{tmp 3431}#
- (@apply
- (lambda (#{id 3436}#
- #{val 3437}#
- #{e1 3438}#
- #{e2 3439}#)
- (and-map #{id? 343}# #{id 3436}#))
- #{tmp 3431}#)
- #f)
- (@apply
- (lambda (#{id 3445}#
- #{val 3446}#
- #{e1 3447}#
- #{e2 3448}#)
- (let ((#{ids 3450}# #{id 3445}#))
- (if (not (#{valid-bound-ids? 403}# #{ids 3450}#))
- (syntax-violation
- 'letrec
- "duplicate bound variable"
- #{e 3420}#)
- (let ((#{labels 3454}#
- (#{gen-labels 358}# #{ids 3450}#))
- (#{new-vars 3455}#
- (map #{gen-var 451}# #{ids 3450}#)))
- (let ((#{w 3458}#
- (#{make-binding-wrap 387}#
- #{ids 3450}#
- #{labels 3454}#
- #{w 3422}#))
- (#{r 3459}#
- (#{extend-var-env 333}#
- #{labels 3454}#
- #{new-vars 3455}#
- #{r 3421}#)))
- (#{build-letrec 303}#
- #{s 3423}#
- #f
- (map syntax->datum #{ids 3450}#)
- #{new-vars 3455}#
- (map (lambda (#{x 3460}#)
- (#{chi 423}#
- #{x 3460}#
- #{r 3459}#
- #{w 3458}#
- #{mod 3424}#))
- #{val 3446}#)
- (#{chi-body 431}#
- (cons #{e1 3447}# #{e2 3448}#)
- (#{source-wrap 411}#
- #{e 3420}#
- #{w 3458}#
- #{s 3423}#
- #{mod 3424}#)
- #{r 3459}#
- #{w 3458}#
- #{mod 3424}#)))))))
- #{tmp 3431}#)
- (let ((#{_ 3465}# #{tmp 3430}#))
- (syntax-violation
- 'letrec
- "bad letrec"
- (#{source-wrap 411}#
- #{e 3420}#
- #{w 3422}#
- #{s 3423}#
- #{mod 3424}#))))))))
- (#{global-extend 339}#
- 'core
- 'letrec*
- (lambda (#{e 3466}#
- #{r 3467}#
- #{w 3468}#
- #{s 3469}#
- #{mod 3470}#)
- (let ((#{tmp 3476}# #{e 3466}#))
- (let ((#{tmp 3477}#
- ($sc-dispatch
- #{tmp 3476}#
- '(_ #(each (any any)) any . each-any))))
- (if (if #{tmp 3477}#
- (@apply
- (lambda (#{id 3482}#
- #{val 3483}#
- #{e1 3484}#
- #{e2 3485}#)
- (and-map #{id? 343}# #{id 3482}#))
- #{tmp 3477}#)
- #f)
- (@apply
- (lambda (#{id 3491}#
- #{val 3492}#
- #{e1 3493}#
- #{e2 3494}#)
- (let ((#{ids 3496}# #{id 3491}#))
- (if (not (#{valid-bound-ids? 403}# #{ids 3496}#))
- (syntax-violation
- 'letrec*
- "duplicate bound variable"
- #{e 3466}#)
- (let ((#{labels 3500}#
- (#{gen-labels 358}# #{ids 3496}#))
- (#{new-vars 3501}#
- (map #{gen-var 451}# #{ids 3496}#)))
- (let ((#{w 3504}#
- (#{make-binding-wrap 387}#
- #{ids 3496}#
- #{labels 3500}#
- #{w 3468}#))
- (#{r 3505}#
- (#{extend-var-env 333}#
- #{labels 3500}#
- #{new-vars 3501}#
- #{r 3467}#)))
- (#{build-letrec 303}#
- #{s 3469}#
- #t
- (map syntax->datum #{ids 3496}#)
- #{new-vars 3501}#
- (map (lambda (#{x 3506}#)
- (#{chi 423}#
- #{x 3506}#
- #{r 3505}#
- #{w 3504}#
- #{mod 3470}#))
- #{val 3492}#)
- (#{chi-body 431}#
- (cons #{e1 3493}# #{e2 3494}#)
- (#{source-wrap 411}#
- #{e 3466}#
- #{w 3504}#
- #{s 3469}#
- #{mod 3470}#)
- #{r 3505}#
- #{w 3504}#
- #{mod 3470}#)))))))
- #{tmp 3477}#)
- (let ((#{_ 3511}# #{tmp 3476}#))
- (syntax-violation
- 'letrec*
- "bad letrec*"
- (#{source-wrap 411}#
- #{e 3466}#
- #{w 3468}#
- #{s 3469}#
- #{mod 3470}#))))))))
- (#{global-extend 339}#
- 'core
- 'set!
- (lambda (#{e 3512}#
- #{r 3513}#
- #{w 3514}#
- #{s 3515}#
- #{mod 3516}#)
- (let ((#{tmp 3522}# #{e 3512}#))
- (let ((#{tmp 3523}#
- ($sc-dispatch #{tmp 3522}# '(_ any any))))
- (if (if #{tmp 3523}#
- (@apply
- (lambda (#{id 3526}# #{val 3527}#)
- (#{id? 343}# #{id 3526}#))
- #{tmp 3523}#)
- #f)
- (@apply
- (lambda (#{id 3530}# #{val 3531}#)
- (let ((#{n 3534}#
- (#{id-var-name 397}# #{id 3530}# #{w 3514}#))
- (#{id-mod 3535}#
- (if (#{syntax-object? 309}# #{id 3530}#)
- (#{syntax-object-module 315}# #{id 3530}#)
- #{mod 3516}#)))
- (let ((#{b 3537}#
- (#{lookup 337}#
- #{n 3534}#
- #{r 3513}#
- #{id-mod 3535}#)))
- (let ((#{atom-key 3540}# (car #{b 3537}#)))
- (if (memv #{atom-key 3540}# '(lexical))
- (#{build-lexical-assignment 275}#
- #{s 3515}#
- (syntax->datum #{id 3530}#)
- (cdr #{b 3537}#)
- (#{chi 423}#
- #{val 3531}#
- #{r 3513}#
- #{w 3514}#
- #{mod 3516}#))
- (if (memv #{atom-key 3540}# '(global))
- (#{build-global-assignment 281}#
- #{s 3515}#
- #{n 3534}#
- (#{chi 423}#
- #{val 3531}#
- #{r 3513}#
- #{w 3514}#
- #{mod 3516}#)
- #{id-mod 3535}#)
- (if (memv #{atom-key 3540}# '(macro))
- (let ((#{p 3547}# (cdr #{b 3537}#)))
- (if (procedure-property
- #{p 3547}#
- 'variable-transformer)
- (#{chi 423}#
- (#{chi-macro 429}#
- #{p 3547}#
- #{e 3512}#
- #{r 3513}#
- #{w 3514}#
- #{s 3515}#
- #f
- #{mod 3516}#)
- #{r 3513}#
- '(())
- #{mod 3516}#)
- (syntax-violation
- 'set!
- "not a variable transformer"
- (#{wrap 409}#
- #{e 3512}#
- #{w 3514}#
- #{mod 3516}#)
- (#{wrap 409}#
- #{id 3530}#
- #{w 3514}#
- #{id-mod 3535}#))))
- (if (memv #{atom-key 3540}# '(displaced-lexical))
- (syntax-violation
- 'set!
- "identifier out of context"
- (#{wrap 409}#
- #{id 3530}#
- #{w 3514}#
- #{mod 3516}#))
- (syntax-violation
- 'set!
- "bad set!"
- (#{source-wrap 411}#
- #{e 3512}#
- #{w 3514}#
- #{s 3515}#
- #{mod 3516}#))))))))))
- #{tmp 3523}#)
- (let ((#{tmp 3552}#
- ($sc-dispatch
- #{tmp 3522}#
- '(_ (any . each-any) any))))
- (if #{tmp 3552}#
- (@apply
- (lambda (#{head 3556}# #{tail 3557}# #{val 3558}#)
- (call-with-values
- (lambda ()
- (#{syntax-type 421}#
- #{head 3556}#
- #{r 3513}#
- '(())
- #f
- #f
- #{mod 3516}#
- #t))
- (lambda (#{type 3561}#
- #{value 3562}#
- #{ee 3563}#
- #{ww 3564}#
- #{ss 3565}#
- #{modmod 3566}#)
- (if (memv #{type 3561}# '(module-ref))
- (let ((#{val 3575}#
- (#{chi 423}#
- #{val 3558}#
- #{r 3513}#
- #{w 3514}#
- #{mod 3516}#)))
- (call-with-values
- (lambda ()
- (#{value 3562}#
- (cons #{head 3556}# #{tail 3557}#)
- #{r 3513}#
- #{w 3514}#))
- (lambda (#{e 3577}#
- #{r 3578}#
- #{w 3579}#
- #{s* 3580}#
- #{mod 3581}#)
- (let ((#{tmp 3587}# #{e 3577}#))
- (let ((#{tmp 3588}# (list #{tmp 3587}#)))
- (if (if #{tmp 3588}#
- (@apply
- (lambda (#{e 3590}#)
- (#{id? 343}# #{e 3590}#))
- #{tmp 3588}#)
- #f)
- (@apply
- (lambda (#{e 3592}#)
- (#{build-global-assignment 281}#
- #{s 3515}#
- (syntax->datum #{e 3592}#)
- #{val 3575}#
- #{mod 3581}#))
- #{tmp 3588}#)
- (syntax-violation
- #f
- "source expression failed to match
any pattern"
- #{tmp 3587}#)))))))
- (#{build-call 267}#
- #{s 3515}#
- (#{chi 423}#
- (list '#(syntax-object
- setter
- ((top)
- #(ribcage () () ())
- #(ribcage () () ())
- #(ribcage
- #(type value ee ww ss modmod)
- #((top)
- (top)
- (top)
- (top)
- (top)
- (top))
- #("i3567"
- "i3568"
- "i3569"
- "i3570"
- "i3571"
- "i3572"))
- #(ribcage
- #(head tail val)
- #((top) (top) (top))
- #("i3553" "i3554" "i3555"))
- #(ribcage () () ())
- #(ribcage
- #(e r w s mod)
- #((top) (top) (top) (top) (top))
- #("i3517"
- "i3518"
- "i3519"
- "i3520"
- "i3521"))
- #(ribcage
- (lambda-var-list
- gen-var
- strip
- chi-lambda-case
- lambda*-formals
- chi-simple-lambda
- lambda-formals
- ellipsis?
- chi-void
- eval-local-transformer
- chi-local-syntax
- chi-body
- chi-macro
- chi-call
- chi-expr
- chi
- syntax-type
- chi-when-list
- chi-install-global
- chi-top-sequence
- chi-sequence
- source-wrap
- wrap
- bound-id-member?
- distinct-bound-ids?
- valid-bound-ids?
- bound-id=?
- free-id=?
- id-var-name
- same-marks?
- join-marks
- join-wraps
- smart-append
- make-binding-wrap
- extend-ribcage!
- make-empty-ribcage
- new-mark
- anti-mark
- the-anti-mark
- top-marked?
- top-wrap
- empty-wrap
- set-ribcage-labels!
- set-ribcage-marks!
- set-ribcage-symnames!
- ribcage-labels
- ribcage-marks
- ribcage-symnames
- ribcage?
- make-ribcage
- gen-labels
- gen-label
- make-rename
- rename-marks
- rename-new
- rename-old
- subst-rename?
- wrap-subst
- wrap-marks
- make-wrap
- id-sym-name&marks
- id-sym-name
- id?
- nonsymbol-id?
- global-extend
- lookup
- macros-only-env
- extend-var-env
- extend-env
- null-env
- binding-value
- binding-type
- make-binding
- arg-check
- source-annotation
- no-source
- set-syntax-object-module!
- set-syntax-object-wrap!
- set-syntax-object-expression!
- syntax-object-module
- syntax-object-wrap
- syntax-object-expression
- syntax-object?
- make-syntax-object
- build-lexical-var
- build-letrec
- build-named-let
- build-let
- build-sequence
- build-data
- build-primref
- build-primcall
- build-lambda-case
- build-case-lambda
- build-simple-lambda
- build-global-definition
- build-global-assignment
- build-global-reference
- analyze-variable
- build-lexical-assignment
- build-lexical-reference
- build-dynlet
- build-conditional
- build-call
- build-void
- maybe-name-value!
- decorate-source
- get-global-definition-hook
- put-global-definition-hook
- gensym-hook
- local-eval-hook
- top-level-eval-hook
- fx<
- fx=
- fx-
- fx+
- set-lambda-meta!
- lambda-meta
- lambda?
- make-dynlet
- make-letrec
- make-let
- make-lambda-case
- make-lambda
- make-seq
- make-primcall
- make-call
- make-conditional
- make-toplevel-define
- make-toplevel-set
- make-toplevel-ref
- make-module-set
- make-module-ref
- make-lexical-set
- make-lexical-ref
- make-primitive-ref
- make-const
- make-void)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("i452"
- "i450"
- "i448"
- "i446"
- "i444"
- "i442"
- "i440"
- "i438"
- "i436"
- "i434"
- "i432"
- "i430"
- "i428"
- "i426"
- "i424"
- "i422"
- "i420"
- "i418"
- "i416"
- "i414"
- "i412"
- "i410"
- "i408"
- "i406"
- "i404"
- "i402"
- "i400"
- "i398"
- "i396"
- "i394"
- "i392"
- "i390"
- "i388"
- "i386"
- "i384"
- "i383"
- "i382"
- "i380"
- "i379"
- "i378"
- "i377"
- "i376"
- "i374"
- "i372"
- "i370"
- "i368"
- "i366"
- "i364"
- "i362"
- "i360"
- "i357"
- "i355"
- "i354"
- "i353"
- "i352"
- "i351"
- "i350"
- "i349"
- "i348"
- "i347"
- "i345"
- "i344"
- "i342"
- "i340"
- "i338"
- "i336"
- "i334"
- "i332"
- "i330"
- "i329"
- "i328"
- "i327"
- "i326"
- "i325"
- "i323"
- "i322"
- "i320"
- "i318"
- "i316"
- "i314"
- "i312"
- "i310"
- "i308"
- "i306"
- "i304"
- "i302"
- "i300"
- "i298"
- "i296"
- "i294"
- "i292"
- "i290"
- "i288"
- "i286"
- "i284"
- "i282"
- "i280"
- "i278"
- "i276"
- "i274"
- "i272"
- "i270"
- "i268"
- "i266"
- "i264"
- "i262"
- "i260"
- "i258"
- "i256"
- "i255"
- "i253"
- "i251"
- "i250"
- "i249"
- "i248"
- "i247"
- "i245"
- "i243"
- "i241"
- "i238"
- "i236"
- "i234"
- "i232"
- "i230"
- "i228"
- "i226"
- "i224"
- "i222"
- "i220"
- "i218"
- "i216"
- "i214"
- "i212"
- "i210"
- "i208"
- "i206"
- "i204"
- "i202"))
- #(ribcage
- (define-structure
- define-expansion-accessors
- define-expansion-constructors)
- ((top) (top) (top))
- ("i40" "i39" "i38")))
- (hygiene guile))
- #{head 3556}#)
- #{r 3513}#
- #{w 3514}#
- #{mod 3516}#)
- (map (lambda (#{e 3594}#)
- (#{chi 423}#
- #{e 3594}#
- #{r 3513}#
- #{w 3514}#
- #{mod 3516}#))
- (append
- #{tail 3557}#
- (list #{val 3558}#))))))))
- #{tmp 3552}#)
- (let ((#{_ 3598}# #{tmp 3522}#))
- (syntax-violation
- 'set!
- "bad set!"
- (#{source-wrap 411}#
- #{e 3512}#
- #{w 3514}#
- #{s 3515}#
- #{mod 3516}#))))))))))
- (#{global-extend 339}#
- 'module-ref
- '@
- (lambda (#{e 3599}# #{r 3600}# #{w 3601}#)
- (let ((#{tmp 3605}# #{e 3599}#))
- (let ((#{tmp 3606}#
- ($sc-dispatch #{tmp 3605}# '(_ each-any any))))
- (if (if #{tmp 3606}#
- (@apply
- (lambda (#{mod 3609}# #{id 3610}#)
- (if (and-map #{id? 343}# #{mod 3609}#)
- (#{id? 343}# #{id 3610}#)
- #f))
- #{tmp 3606}#)
- #f)
- (@apply
- (lambda (#{mod 3616}# #{id 3617}#)
- (values
- (syntax->datum #{id 3617}#)
- #{r 3600}#
- #{w 3601}#
- #f
- (syntax->datum
- (cons '#(syntax-object
- public
- ((top)
- #(ribcage
- #(mod id)
- #((top) (top))
- #("i3614" "i3615"))
- #(ribcage () () ())
- #(ribcage
- #(e r w)
- #((top) (top) (top))
- #("i3602" "i3603" "i3604"))
- #(ribcage
- (lambda-var-list
- gen-var
- strip
- chi-lambda-case
- lambda*-formals
- chi-simple-lambda
- lambda-formals
- ellipsis?
- chi-void
- eval-local-transformer
- chi-local-syntax
- chi-body
- chi-macro
- chi-call
- chi-expr
- chi
- syntax-type
- chi-when-list
- chi-install-global
- chi-top-sequence
- chi-sequence
- source-wrap
- wrap
- bound-id-member?
- distinct-bound-ids?
- valid-bound-ids?
- bound-id=?
- free-id=?
- id-var-name
- same-marks?
- join-marks
- join-wraps
- smart-append
- make-binding-wrap
- extend-ribcage!
- make-empty-ribcage
- new-mark
- anti-mark
- the-anti-mark
- top-marked?
- top-wrap
- empty-wrap
- set-ribcage-labels!
- set-ribcage-marks!
- set-ribcage-symnames!
- ribcage-labels
- ribcage-marks
- ribcage-symnames
- ribcage?
- make-ribcage
- gen-labels
- gen-label
- make-rename
- rename-marks
- rename-new
- rename-old
- subst-rename?
- wrap-subst
- wrap-marks
- make-wrap
- id-sym-name&marks
- id-sym-name
- id?
- nonsymbol-id?
- global-extend
- lookup
- macros-only-env
- extend-var-env
- extend-env
- null-env
- binding-value
- binding-type
- make-binding
- arg-check
- source-annotation
- no-source
- set-syntax-object-module!
- set-syntax-object-wrap!
- set-syntax-object-expression!
- syntax-object-module
- syntax-object-wrap
- syntax-object-expression
- syntax-object?
- make-syntax-object
- build-lexical-var
- build-letrec
- build-named-let
- build-let
- build-sequence
- build-data
- build-primref
- build-primcall
- build-lambda-case
- build-case-lambda
- build-simple-lambda
- build-global-definition
- build-global-assignment
- build-global-reference
- analyze-variable
- build-lexical-assignment
- build-lexical-reference
- build-dynlet
- build-conditional
- build-call
- build-void
- maybe-name-value!
- decorate-source
- get-global-definition-hook
- put-global-definition-hook
- gensym-hook
- local-eval-hook
- top-level-eval-hook
- fx<
- fx=
- fx-
- fx+
- set-lambda-meta!
- lambda-meta
- lambda?
- make-dynlet
- make-letrec
- make-let
- make-lambda-case
- make-lambda
- make-seq
- make-primcall
- make-call
- make-conditional
- make-toplevel-define
- make-toplevel-set
- make-toplevel-ref
- make-module-set
- make-module-ref
- make-lexical-set
- make-lexical-ref
- make-primitive-ref
- make-const
- make-void)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("i452"
- "i450"
- "i448"
- "i446"
- "i444"
- "i442"
- "i440"
- "i438"
- "i436"
- "i434"
- "i432"
- "i430"
- "i428"
- "i426"
- "i424"
- "i422"
- "i420"
- "i418"
- "i416"
- "i414"
- "i412"
- "i410"
- "i408"
- "i406"
- "i404"
- "i402"
- "i400"
- "i398"
- "i396"
- "i394"
- "i392"
- "i390"
- "i388"
- "i386"
- "i384"
- "i383"
- "i382"
- "i380"
- "i379"
- "i378"
- "i377"
- "i376"
- "i374"
- "i372"
- "i370"
- "i368"
- "i366"
- "i364"
- "i362"
- "i360"
- "i357"
- "i355"
- "i354"
- "i353"
- "i352"
- "i351"
- "i350"
- "i349"
- "i348"
- "i347"
- "i345"
- "i344"
- "i342"
- "i340"
- "i338"
- "i336"
- "i334"
- "i332"
- "i330"
- "i329"
- "i328"
- "i327"
- "i326"
- "i325"
- "i323"
- "i322"
- "i320"
- "i318"
- "i316"
- "i314"
- "i312"
- "i310"
- "i308"
- "i306"
- "i304"
- "i302"
- "i300"
- "i298"
- "i296"
- "i294"
- "i292"
- "i290"
- "i288"
- "i286"
- "i284"
- "i282"
- "i280"
- "i278"
- "i276"
- "i274"
- "i272"
- "i270"
- "i268"
- "i266"
- "i264"
- "i262"
- "i260"
- "i258"
- "i256"
- "i255"
- "i253"
- "i251"
- "i250"
- "i249"
- "i248"
- "i247"
- "i245"
- "i243"
- "i241"
- "i238"
- "i236"
- "i234"
- "i232"
- "i230"
- "i228"
- "i226"
- "i224"
- "i222"
- "i220"
- "i218"
- "i216"
- "i214"
- "i212"
- "i210"
- "i208"
- "i206"
- "i204"
- "i202"))
- #(ribcage
- (define-structure
- define-expansion-accessors
- define-expansion-constructors)
- ((top) (top) (top))
- ("i40" "i39" "i38")))
- (hygiene guile))
- #{mod 3616}#))))
- #{tmp 3606}#)
- (syntax-violation
- #f
- "source expression failed to match any pattern"
- #{tmp 3605}#))))))
- (#{global-extend 339}#
- 'module-ref
- '@@
- (lambda (#{e 3619}# #{r 3620}# #{w 3621}#)
- (letrec*
- ((#{remodulate 3626}#
- (lambda (#{x 3627}# #{mod 3628}#)
- (if (pair? #{x 3627}#)
- (cons (#{remodulate 3626}#
- (car #{x 3627}#)
- #{mod 3628}#)
- (#{remodulate 3626}#
- (cdr #{x 3627}#)
- #{mod 3628}#))
- (if (#{syntax-object? 309}# #{x 3627}#)
- (#{make-syntax-object 307}#
- (#{remodulate 3626}#
- (#{syntax-object-expression 311}# #{x 3627}#)
- #{mod 3628}#)
- (#{syntax-object-wrap 313}# #{x 3627}#)
- #{mod 3628}#)
- (if (vector? #{x 3627}#)
- (let ((#{n 3639}# (vector-length #{x 3627}#)))
- (let ((#{v 3641}# (make-vector #{n 3639}#)))
- (letrec*
- ((#{loop 3644}#
- (lambda (#{i 3645}#)
- (if (= #{i 3645}# #{n 3639}#)
- (begin (if #f #f) #{v 3641}#)
- (begin
- (vector-set!
- #{v 3641}#
- #{i 3645}#
- (#{remodulate 3626}#
- (vector-ref #{x 3627}# #{i 3645}#)
- #{mod 3628}#))
- (#{loop 3644}# (#{1+}# #{i 3645}#)))))))
- (#{loop 3644}# 0))))
- #{x 3627}#))))))
- (let ((#{tmp 3651}# #{e 3619}#))
- (let ((#{tmp 3652}#
- ($sc-dispatch #{tmp 3651}# '(_ each-any any))))
- (if (if #{tmp 3652}#
- (@apply
- (lambda (#{mod 3655}# #{exp 3656}#)
- (and-map #{id? 343}# #{mod 3655}#))
- #{tmp 3652}#)
- #f)
- (@apply
- (lambda (#{mod 3660}# #{exp 3661}#)
- (let ((#{mod 3663}#
- (syntax->datum
- (cons '#(syntax-object
- private
- ((top)
- #(ribcage
- #(mod exp)
- #((top) (top))
- #("i3658" "i3659"))
- #(ribcage
- (remodulate)
- ((top))
- ("i3625"))
- #(ribcage
- #(e r w)
- #((top) (top) (top))
- #("i3622" "i3623" "i3624"))
- #(ribcage
- (lambda-var-list
- gen-var
- strip
- chi-lambda-case
- lambda*-formals
- chi-simple-lambda
- lambda-formals
- ellipsis?
- chi-void
- eval-local-transformer
- chi-local-syntax
- chi-body
- chi-macro
- chi-call
- chi-expr
- chi
- syntax-type
- chi-when-list
- chi-install-global
- chi-top-sequence
- chi-sequence
- source-wrap
- wrap
- bound-id-member?
- distinct-bound-ids?
- valid-bound-ids?
- bound-id=?
- free-id=?
- id-var-name
- same-marks?
- join-marks
- join-wraps
- smart-append
- make-binding-wrap
- extend-ribcage!
- make-empty-ribcage
- new-mark
- anti-mark
- the-anti-mark
- top-marked?
- top-wrap
- empty-wrap
- set-ribcage-labels!
- set-ribcage-marks!
- set-ribcage-symnames!
- ribcage-labels
- ribcage-marks
- ribcage-symnames
- ribcage?
- make-ribcage
- gen-labels
- gen-label
- make-rename
- rename-marks
- rename-new
- rename-old
- subst-rename?
- wrap-subst
- wrap-marks
- make-wrap
- id-sym-name&marks
- id-sym-name
- id?
- nonsymbol-id?
- global-extend
- lookup
- macros-only-env
- extend-var-env
- extend-env
- null-env
- binding-value
- binding-type
- make-binding
- arg-check
- source-annotation
- no-source
- set-syntax-object-module!
- set-syntax-object-wrap!
- set-syntax-object-expression!
- syntax-object-module
- syntax-object-wrap
- syntax-object-expression
- syntax-object?
- make-syntax-object
- build-lexical-var
- build-letrec
- build-named-let
- build-let
- build-sequence
- build-data
- build-primref
- build-primcall
- build-lambda-case
- build-case-lambda
- build-simple-lambda
- build-global-definition
- build-global-assignment
- build-global-reference
- analyze-variable
- build-lexical-assignment
- build-lexical-reference
- build-dynlet
- build-conditional
- build-call
- build-void
- maybe-name-value!
- decorate-source
- get-global-definition-hook
- put-global-definition-hook
- gensym-hook
- local-eval-hook
- top-level-eval-hook
- fx<
- fx=
- fx-
- fx+
- set-lambda-meta!
- lambda-meta
- lambda?
- make-dynlet
- make-letrec
- make-let
- make-lambda-case
- make-lambda
- make-seq
- make-primcall
- make-call
- make-conditional
- make-toplevel-define
- make-toplevel-set
- make-toplevel-ref
- make-module-set
- make-module-ref
- make-lexical-set
- make-lexical-ref
- make-primitive-ref
- make-const
- make-void)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("i452"
- "i450"
- "i448"
- "i446"
- "i444"
- "i442"
- "i440"
- "i438"
- "i436"
- "i434"
- "i432"
- "i430"
- "i428"
- "i426"
- "i424"
- "i422"
- "i420"
- "i418"
- "i416"
- "i414"
- "i412"
- "i410"
- "i408"
- "i406"
- "i404"
- "i402"
- "i400"
- "i398"
- "i396"
- "i394"
- "i392"
- "i390"
- "i388"
- "i386"
- "i384"
- "i383"
- "i382"
- "i380"
- "i379"
- "i378"
- "i377"
- "i376"
- "i374"
- "i372"
- "i370"
- "i368"
- "i366"
- "i364"
- "i362"
- "i360"
- "i357"
- "i355"
- "i354"
- "i353"
- "i352"
- "i351"
- "i350"
- "i349"
- "i348"
- "i347"
- "i345"
- "i344"
- "i342"
- "i340"
- "i338"
- "i336"
- "i334"
- "i332"
- "i330"
- "i329"
- "i328"
- "i327"
- "i326"
- "i325"
- "i323"
- "i322"
- "i320"
- "i318"
- "i316"
- "i314"
- "i312"
- "i310"
- "i308"
- "i306"
- "i304"
- "i302"
- "i300"
- "i298"
- "i296"
- "i294"
- "i292"
- "i290"
- "i288"
- "i286"
- "i284"
- "i282"
- "i280"
- "i278"
- "i276"
- "i274"
- "i272"
- "i270"
- "i268"
- "i266"
- "i264"
- "i262"
- "i260"
- "i258"
- "i256"
- "i255"
- "i253"
- "i251"
- "i250"
- "i249"
- "i248"
- "i247"
- "i245"
- "i243"
- "i241"
- "i238"
- "i236"
- "i234"
- "i232"
- "i230"
- "i228"
- "i226"
- "i224"
- "i222"
- "i220"
- "i218"
- "i216"
- "i214"
- "i212"
- "i210"
- "i208"
- "i206"
- "i204"
- "i202"))
- #(ribcage
- (define-structure
- define-expansion-accessors
- define-expansion-constructors)
- ((top) (top) (top))
- ("i40" "i39" "i38")))
- (hygiene guile))
- #{mod 3660}#))))
- (values
- (#{remodulate 3626}# #{exp 3661}# #{mod 3663}#)
- #{r 3620}#
- #{w 3621}#
- (#{source-annotation 324}# #{exp 3661}#)
- #{mod 3663}#)))
- #{tmp 3652}#)
- (syntax-violation
- #f
- "source expression failed to match any pattern"
- #{tmp 3651}#)))))))
- (#{global-extend 339}#
- 'core
- 'if
- (lambda (#{e 3665}#
- #{r 3666}#
- #{w 3667}#
- #{s 3668}#
- #{mod 3669}#)
- (let ((#{tmp 3675}# #{e 3665}#))
- (let ((#{tmp 3676}#
- ($sc-dispatch #{tmp 3675}# '(_ any any))))
- (if #{tmp 3676}#
- (@apply
- (lambda (#{test 3679}# #{then 3680}#)
- (#{build-conditional 269}#
- #{s 3668}#
- (#{chi 423}#
- #{test 3679}#
- #{r 3666}#
- #{w 3667}#
- #{mod 3669}#)
- (#{chi 423}#
- #{then 3680}#
- #{r 3666}#
- #{w 3667}#
- #{mod 3669}#)
- (#{build-void 265}# #f)))
- #{tmp 3676}#)
- (let ((#{tmp 3682}#
- ($sc-dispatch #{tmp 3675}# '(_ any any any))))
- (if #{tmp 3682}#
- (@apply
- (lambda (#{test 3686}# #{then 3687}# #{else 3688}#)
- (#{build-conditional 269}#
- #{s 3668}#
- (#{chi 423}#
- #{test 3686}#
- #{r 3666}#
- #{w 3667}#
- #{mod 3669}#)
- (#{chi 423}#
- #{then 3687}#
- #{r 3666}#
- #{w 3667}#
- #{mod 3669}#)
- (#{chi 423}#
- #{else 3688}#
- #{r 3666}#
- #{w 3667}#
- #{mod 3669}#)))
- #{tmp 3682}#)
- (syntax-violation
- #f
- "source expression failed to match any pattern"
- #{tmp 3675}#))))))))
- (#{global-extend 339}#
- 'core
- 'with-fluids
- (lambda (#{e 3689}#
- #{r 3690}#
- #{w 3691}#
- #{s 3692}#
- #{mod 3693}#)
- (let ((#{tmp 3699}# #{e 3689}#))
- (let ((#{tmp 3700}#
- ($sc-dispatch
- #{tmp 3699}#
- '(_ #(each (any any)) any . each-any))))
- (if #{tmp 3700}#
- (@apply
- (lambda (#{fluid 3705}#
- #{val 3706}#
- #{b 3707}#
- #{b* 3708}#)
- (#{build-dynlet 271}#
- #{s 3692}#
- (map (lambda (#{x 3709}#)
- (#{chi 423}#
- #{x 3709}#
- #{r 3690}#
- #{w 3691}#
- #{mod 3693}#))
- #{fluid 3705}#)
- (map (lambda (#{x 3712}#)
- (#{chi 423}#
- #{x 3712}#
- #{r 3690}#
- #{w 3691}#
- #{mod 3693}#))
- #{val 3706}#)
- (#{chi-body 431}#
- (cons #{b 3707}# #{b* 3708}#)
- (#{source-wrap 411}#
- #{e 3689}#
- #{w 3691}#
- #{s 3692}#
- #{mod 3693}#)
- #{r 3690}#
- #{w 3691}#
- #{mod 3693}#)))
- #{tmp 3700}#)
- (syntax-violation
- #f
- "source expression failed to match any pattern"
- #{tmp 3699}#))))))
- (#{global-extend 339}# 'begin 'begin '())
- (#{global-extend 339}# 'define 'define '())
- (#{global-extend 339}#
- 'define-syntax
- 'define-syntax
- '())
- (#{global-extend 339}# 'eval-when 'eval-when '())
- (#{global-extend 339}#
- 'core
- 'syntax-case
- (letrec*
- ((#{convert-pattern 3717}#
- (lambda (#{pattern 3724}# #{keys 3725}#)
- (letrec*
- ((#{cvt* 3729}#
- (lambda (#{p* 3734}# #{n 3735}# #{ids 3736}#)
- (if (not (pair? #{p* 3734}#))
- (#{cvt 3733}#
- #{p* 3734}#
- #{n 3735}#
- #{ids 3736}#)
- (call-with-values
- (lambda ()
- (#{cvt* 3729}#
- (cdr #{p* 3734}#)
- #{n 3735}#
- #{ids 3736}#))
- (lambda (#{y 3740}# #{ids 3741}#)
- (call-with-values
- (lambda ()
- (#{cvt 3733}#
- (car #{p* 3734}#)
- #{n 3735}#
- #{ids 3741}#))
- (lambda (#{x 3744}# #{ids 3745}#)
- (values
- (cons #{x 3744}# #{y 3740}#)
- #{ids 3745}#))))))))
- (#{v-reverse 3731}#
- (lambda (#{x 3748}#)
- (letrec*
- ((#{loop 3753}#
- (lambda (#{r 3754}# #{x 3755}#)
- (if (not (pair? #{x 3755}#))
- (values #{r 3754}# #{x 3755}#)
- (#{loop 3753}#
- (cons (car #{x 3755}#) #{r 3754}#)
- (cdr #{x 3755}#))))))
- (#{loop 3753}# '() #{x 3748}#))))
- (#{cvt 3733}#
- (lambda (#{p 3756}# #{n 3757}# #{ids 3758}#)
- (if (#{id? 343}# #{p 3756}#)
- (if (#{bound-id-member? 407}#
- #{p 3756}#
- #{keys 3725}#)
- (values
- (vector 'free-id #{p 3756}#)
- #{ids 3758}#)
- (if (#{free-id=? 399}#
- #{p 3756}#
- '#(syntax-object
- _
- ((top)
- #(ribcage () () ())
- #(ribcage
- #(p n ids)
- #((top) (top) (top))
- #("i3759" "i3760" "i3761"))
- #(ribcage
- (cvt v-reverse cvt*)
- ((top) (top) (top))
- ("i3732" "i3730" "i3728"))
- #(ribcage
- #(pattern keys)
- #((top) (top))
- #("i3726" "i3727"))
- #(ribcage
- (gen-syntax-case
- gen-clause
- build-dispatch-call
- convert-pattern)
- ((top) (top) (top) (top))
- ("i3722" "i3720" "i3718" "i3716"))
- #(ribcage
- (lambda-var-list
- gen-var
- strip
- chi-lambda-case
- lambda*-formals
- chi-simple-lambda
- lambda-formals
- ellipsis?
- chi-void
- eval-local-transformer
- chi-local-syntax
- chi-body
- chi-macro
- chi-call
- chi-expr
- chi
- syntax-type
- chi-when-list
- chi-install-global
- chi-top-sequence
- chi-sequence
- source-wrap
- wrap
- bound-id-member?
- distinct-bound-ids?
- valid-bound-ids?
- bound-id=?
- free-id=?
- id-var-name
- same-marks?
- join-marks
- join-wraps
- smart-append
- make-binding-wrap
- extend-ribcage!
- make-empty-ribcage
- new-mark
- anti-mark
- the-anti-mark
- top-marked?
- top-wrap
- empty-wrap
- set-ribcage-labels!
- set-ribcage-marks!
- set-ribcage-symnames!
- ribcage-labels
- ribcage-marks
- ribcage-symnames
- ribcage?
- make-ribcage
- gen-labels
- gen-label
- make-rename
- rename-marks
- rename-new
- rename-old
- subst-rename?
- wrap-subst
- wrap-marks
- make-wrap
- id-sym-name&marks
- id-sym-name
- id?
- nonsymbol-id?
- global-extend
- lookup
- macros-only-env
- extend-var-env
- extend-env
- null-env
- binding-value
- binding-type
- make-binding
- arg-check
- source-annotation
- no-source
- set-syntax-object-module!
- set-syntax-object-wrap!
- set-syntax-object-expression!
- syntax-object-module
- syntax-object-wrap
- syntax-object-expression
- syntax-object?
- make-syntax-object
- build-lexical-var
- build-letrec
- build-named-let
- build-let
- build-sequence
- build-data
- build-primref
- build-primcall
- build-lambda-case
- build-case-lambda
- build-simple-lambda
- build-global-definition
- build-global-assignment
- build-global-reference
- analyze-variable
- build-lexical-assignment
- build-lexical-reference
- build-dynlet
- build-conditional
- build-call
- build-void
- maybe-name-value!
- decorate-source
- get-global-definition-hook
- put-global-definition-hook
- gensym-hook
- local-eval-hook
- top-level-eval-hook
- fx<
- fx=
- fx-
- fx+
- set-lambda-meta!
- lambda-meta
- lambda?
- make-dynlet
- make-letrec
- make-let
- make-lambda-case
- make-lambda
- make-seq
- make-primcall
- make-call
- make-conditional
- make-toplevel-define
- make-toplevel-set
- make-toplevel-ref
- make-module-set
- make-module-ref
- make-lexical-set
- make-lexical-ref
- make-primitive-ref
- make-const
- make-void)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("i452"
- "i450"
- "i448"
- "i446"
- "i444"
- "i442"
- "i440"
- "i438"
- "i436"
- "i434"
- "i432"
- "i430"
- "i428"
- "i426"
- "i424"
- "i422"
- "i420"
- "i418"
- "i416"
- "i414"
- "i412"
- "i410"
- "i408"
- "i406"
- "i404"
- "i402"
- "i400"
- "i398"
- "i396"
- "i394"
- "i392"
- "i390"
- "i388"
- "i386"
- "i384"
- "i383"
- "i382"
- "i380"
- "i379"
- "i378"
- "i377"
- "i376"
- "i374"
- "i372"
- "i370"
- "i368"
- "i366"
- "i364"
- "i362"
- "i360"
- "i357"
- "i355"
- "i354"
- "i353"
- "i352"
- "i351"
- "i350"
- "i349"
- "i348"
- "i347"
- "i345"
- "i344"
- "i342"
- "i340"
- "i338"
- "i336"
- "i334"
- "i332"
- "i330"
- "i329"
- "i328"
- "i327"
- "i326"
- "i325"
- "i323"
- "i322"
- "i320"
- "i318"
- "i316"
- "i314"
- "i312"
- "i310"
- "i308"
- "i306"
- "i304"
- "i302"
- "i300"
- "i298"
- "i296"
- "i294"
- "i292"
- "i290"
- "i288"
- "i286"
- "i284"
- "i282"
- "i280"
- "i278"
- "i276"
- "i274"
- "i272"
- "i270"
- "i268"
- "i266"
- "i264"
- "i262"
- "i260"
- "i258"
- "i256"
- "i255"
- "i253"
- "i251"
- "i250"
- "i249"
- "i248"
- "i247"
- "i245"
- "i243"
- "i241"
- "i238"
- "i236"
- "i234"
- "i232"
- "i230"
- "i228"
- "i226"
- "i224"
- "i222"
- "i220"
- "i218"
- "i216"
- "i214"
- "i212"
- "i210"
- "i208"
- "i206"
- "i204"
- "i202"))
- #(ribcage
- (define-structure
- define-expansion-accessors
- define-expansion-constructors)
- ((top) (top) (top))
- ("i40" "i39" "i38")))
- (hygiene guile)))
- (values '_ #{ids 3758}#)
- (values
- 'any
- (cons (cons #{p 3756}# #{n 3757}#) #{ids 3758}#))))
- (let ((#{tmp 3767}# #{p 3756}#))
- (let ((#{tmp 3768}#
- ($sc-dispatch #{tmp 3767}# '(any any))))
- (if (if #{tmp 3768}#
- (@apply
- (lambda (#{x 3771}# #{dots 3772}#)
- (#{ellipsis? 439}# #{dots 3772}#))
- #{tmp 3768}#)
- #f)
- (@apply
- (lambda (#{x 3775}# #{dots 3776}#)
- (call-with-values
- (lambda ()
- (#{cvt 3733}#
- #{x 3775}#
- (#{1+}# #{n 3757}#)
- #{ids 3758}#))
- (lambda (#{p 3778}# #{ids 3779}#)
- (values
- (if (eq? #{p 3778}# 'any)
- 'each-any
- (vector 'each #{p 3778}#))
- #{ids 3779}#))))
- #{tmp 3768}#)
- (let ((#{tmp 3782}#
- ($sc-dispatch
- #{tmp 3767}#
- '(any any . any))))
- (if (if #{tmp 3782}#
- (@apply
- (lambda (#{x 3786}#
- #{dots 3787}#
- #{ys 3788}#)
- (#{ellipsis? 439}# #{dots 3787}#))
- #{tmp 3782}#)
- #f)
- (@apply
- (lambda (#{x 3792}#
- #{dots 3793}#
- #{ys 3794}#)
- (call-with-values
- (lambda ()
- (#{cvt* 3729}#
- #{ys 3794}#
- #{n 3757}#
- #{ids 3758}#))
- (lambda (#{ys 3795}# #{ids 3796}#)
- (call-with-values
- (lambda ()
- (#{cvt 3733}#
- #{x 3792}#
- (#{1+}# #{n 3757}#)
- #{ids 3796}#))
- (lambda (#{x 3799}# #{ids 3800}#)
- (call-with-values
- (lambda ()
- (#{v-reverse 3731}#
- #{ys 3795}#))
- (lambda (#{ys 3803}# #{e 3804}#)
- (values
- (vector
- 'each+
- #{x 3799}#
- #{ys 3803}#
- #{e 3804}#)
- #{ids 3800}#))))))))
- #{tmp 3782}#)
- (let ((#{tmp 3808}#
- ($sc-dispatch
- #{tmp 3767}#
- '(any . any))))
- (if #{tmp 3808}#
- (@apply
- (lambda (#{x 3811}# #{y 3812}#)
- (call-with-values
- (lambda ()
- (#{cvt 3733}#
- #{y 3812}#
- #{n 3757}#
- #{ids 3758}#))
- (lambda (#{y 3813}# #{ids 3814}#)
- (call-with-values
- (lambda ()
- (#{cvt 3733}#
- #{x 3811}#
- #{n 3757}#
- #{ids 3814}#))
- (lambda (#{x 3817}# #{ids 3818}#)
- (values
- (cons #{x 3817}# #{y 3813}#)
- #{ids 3818}#))))))
- #{tmp 3808}#)
- (let ((#{tmp 3821}#
- ($sc-dispatch #{tmp 3767}# '())))
- (if #{tmp 3821}#
- (@apply
- (lambda () (values '() #{ids 3758}#))
- #{tmp 3821}#)
- (let ((#{tmp 3822}#
- ($sc-dispatch
- #{tmp 3767}#
- '#(vector each-any))))
- (if #{tmp 3822}#
- (@apply
- (lambda (#{x 3824}#)
- (call-with-values
- (lambda ()
- (#{cvt 3733}#
- #{x 3824}#
- #{n 3757}#
- #{ids 3758}#))
- (lambda (#{p 3826}#
- #{ids 3827}#)
- (values
- (vector
- 'vector
- #{p 3826}#)
- #{ids 3827}#))))
- #{tmp 3822}#)
- (let ((#{x 3831}# #{tmp 3767}#))
- (values
- (vector
- 'atom
- (#{strip 449}#
- #{p 3756}#
- '(())))
- #{ids 3758}#)))))))))))))))))
- (#{cvt 3733}# #{pattern 3724}# 0 '()))))
- (#{build-dispatch-call 3719}#
- (lambda (#{pvars 3833}#
- #{exp 3834}#
- #{y 3835}#
- #{r 3836}#
- #{mod 3837}#)
- (begin
- (map cdr #{pvars 3833}#)
- (let ((#{ids 3845}# (map car #{pvars 3833}#)))
- (let ((#{labels 3849}#
- (#{gen-labels 358}# #{ids 3845}#))
- (#{new-vars 3850}#
- (map #{gen-var 451}# #{ids 3845}#)))
- (#{build-primcall 291}#
- #f
- 'apply
- (list (#{build-simple-lambda 285}#
- #f
- (map syntax->datum #{ids 3845}#)
- #f
- #{new-vars 3850}#
- '()
- (#{chi 423}#
- #{exp 3834}#
- (#{extend-env 331}#
- #{labels 3849}#
- (map (lambda (#{var 3853}# #{level 3854}#)
- (cons 'syntax
- (cons #{var 3853}#
- #{level 3854}#)))
- #{new-vars 3850}#
- (map cdr #{pvars 3833}#))
- #{r 3836}#)
- (#{make-binding-wrap 387}#
- #{ids 3845}#
- #{labels 3849}#
- '(()))
- #{mod 3837}#))
- #{y 3835}#)))))))
- (#{gen-clause 3721}#
- (lambda (#{x 3860}#
- #{keys 3861}#
- #{clauses 3862}#
- #{r 3863}#
- #{pat 3864}#
- #{fender 3865}#
- #{exp 3866}#
- #{mod 3867}#)
- (call-with-values
- (lambda ()
- (#{convert-pattern 3717}#
- #{pat 3864}#
- #{keys 3861}#))
- (lambda (#{p 3876}# #{pvars 3877}#)
- (if (not (#{distinct-bound-ids? 405}#
- (map car #{pvars 3877}#)))
- (syntax-violation
- 'syntax-case
- "duplicate pattern variable"
- #{pat 3864}#)
- (if (not (and-map
- (lambda (#{x 3884}#)
- (not (#{ellipsis? 439}# (car #{x 3884}#))))
- #{pvars 3877}#))
- (syntax-violation
- 'syntax-case
- "misplaced ellipsis"
- #{pat 3864}#)
- (let ((#{y 3888}# (#{gen-var 451}# 'tmp)))
- (#{build-call 267}#
- #f
- (#{build-simple-lambda 285}#
- #f
- (list 'tmp)
- #f
- (list #{y 3888}#)
- '()
- (let ((#{y 3892}#
- (#{build-lexical-reference 273}#
- 'value
- #f
- 'tmp
- #{y 3888}#)))
- (#{build-conditional 269}#
- #f
- (let ((#{tmp 3895}# #{fender 3865}#))
- (let ((#{tmp 3896}#
- ($sc-dispatch
- #{tmp 3895}#
- '#(atom #t))))
- (if #{tmp 3896}#
- (@apply
- (lambda () #{y 3892}#)
- #{tmp 3896}#)
- (let ((#{_ 3898}# #{tmp 3895}#))
- (#{build-conditional 269}#
- #f
- #{y 3892}#
- (#{build-dispatch-call 3719}#
- #{pvars 3877}#
- #{fender 3865}#
- #{y 3892}#
- #{r 3863}#
- #{mod 3867}#)
- (#{build-data 295}# #f #f))))))
- (#{build-dispatch-call 3719}#
- #{pvars 3877}#
- #{exp 3866}#
- #{y 3892}#
- #{r 3863}#
- #{mod 3867}#)
- (#{gen-syntax-case 3723}#
- #{x 3860}#
- #{keys 3861}#
- #{clauses 3862}#
- #{r 3863}#
- #{mod 3867}#))))
- (list (if (eq? #{p 3876}# 'any)
- (#{build-primcall 291}#
- #f
- 'list
- (list #{x 3860}#))
- (#{build-primcall 291}#
- #f
- '$sc-dispatch
- (list #{x 3860}#
- (#{build-data 295}#
- #f
- #{p 3876}#)))))))))))))
- (#{gen-syntax-case 3723}#
- (lambda (#{x 3904}#
- #{keys 3905}#
- #{clauses 3906}#
- #{r 3907}#
- #{mod 3908}#)
- (if (null? #{clauses 3906}#)
- (#{build-primcall 291}#
- #f
- 'syntax-violation
- (list (#{build-data 295}# #f #f)
- (#{build-data 295}#
- #f
- "source expression failed to match any pattern")
- #{x 3904}#))
- (let ((#{tmp 3917}# (car #{clauses 3906}#)))
- (let ((#{tmp 3918}#
- ($sc-dispatch #{tmp 3917}# '(any any))))
- (if #{tmp 3918}#
- (@apply
- (lambda (#{pat 3921}# #{exp 3922}#)
- (if (if (#{id? 343}# #{pat 3921}#)
- (and-map
- (lambda (#{x 3925}#)
- (not (#{free-id=? 399}#
- #{pat 3921}#
- #{x 3925}#)))
- (cons '#(syntax-object
- ...
- ((top)
- #(ribcage
- #(pat exp)
- #((top) (top))
- #("i3919" "i3920"))
- #(ribcage () () ())
- #(ribcage
- #(x keys clauses r mod)
- #((top) (top) (top) (top) (top))
- #("i3909"
- "i3910"
- "i3911"
- "i3912"
- "i3913"))
- #(ribcage
- (gen-syntax-case
- gen-clause
- build-dispatch-call
- convert-pattern)
- ((top) (top) (top) (top))
- ("i3722" "i3720" "i3718" "i3716"))
- #(ribcage
- (lambda-var-list
- gen-var
- strip
- chi-lambda-case
- lambda*-formals
- chi-simple-lambda
- lambda-formals
- ellipsis?
- chi-void
- eval-local-transformer
- chi-local-syntax
- chi-body
- chi-macro
- chi-call
- chi-expr
- chi
- syntax-type
- chi-when-list
- chi-install-global
- chi-top-sequence
- chi-sequence
- source-wrap
- wrap
- bound-id-member?
- distinct-bound-ids?
- valid-bound-ids?
- bound-id=?
- free-id=?
- id-var-name
- same-marks?
- join-marks
- join-wraps
- smart-append
- make-binding-wrap
- extend-ribcage!
- make-empty-ribcage
- new-mark
- anti-mark
- the-anti-mark
- top-marked?
- top-wrap
- empty-wrap
- set-ribcage-labels!
- set-ribcage-marks!
- set-ribcage-symnames!
- ribcage-labels
- ribcage-marks
- ribcage-symnames
- ribcage?
- make-ribcage
- gen-labels
- gen-label
- make-rename
- rename-marks
- rename-new
- rename-old
- subst-rename?
- wrap-subst
- wrap-marks
- make-wrap
- id-sym-name&marks
- id-sym-name
- id?
- nonsymbol-id?
- global-extend
- lookup
- macros-only-env
- extend-var-env
- extend-env
- null-env
- binding-value
- binding-type
- make-binding
- arg-check
- source-annotation
- no-source
- set-syntax-object-module!
- set-syntax-object-wrap!
- set-syntax-object-expression!
- syntax-object-module
- syntax-object-wrap
- syntax-object-expression
- syntax-object?
- make-syntax-object
- build-lexical-var
- build-letrec
- build-named-let
- build-let
- build-sequence
- build-data
- build-primref
- build-primcall
- build-lambda-case
- build-case-lambda
- build-simple-lambda
- build-global-definition
- build-global-assignment
- build-global-reference
- analyze-variable
- build-lexical-assignment
- build-lexical-reference
- build-dynlet
- build-conditional
- build-call
- build-void
- maybe-name-value!
- decorate-source
- get-global-definition-hook
- put-global-definition-hook
- gensym-hook
- local-eval-hook
- top-level-eval-hook
- fx<
- fx=
- fx-
- fx+
- set-lambda-meta!
- lambda-meta
- lambda?
- make-dynlet
- make-letrec
- make-let
- make-lambda-case
- make-lambda
- make-seq
- make-primcall
- make-call
- make-conditional
- make-toplevel-define
- make-toplevel-set
- make-toplevel-ref
- make-module-set
- make-module-ref
- make-lexical-set
- make-lexical-ref
- make-primitive-ref
- make-const
- make-void)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("i452"
- "i450"
- "i448"
- "i446"
- "i444"
- "i442"
- "i440"
- "i438"
- "i436"
- "i434"
- "i432"
- "i430"
- "i428"
- "i426"
- "i424"
- "i422"
- "i420"
- "i418"
- "i416"
- "i414"
- "i412"
- "i410"
- "i408"
- "i406"
- "i404"
- "i402"
- "i400"
- "i398"
- "i396"
- "i394"
- "i392"
- "i390"
- "i388"
- "i386"
- "i384"
- "i383"
- "i382"
- "i380"
- "i379"
- "i378"
- "i377"
- "i376"
- "i374"
- "i372"
- "i370"
- "i368"
- "i366"
- "i364"
- "i362"
- "i360"
- "i357"
- "i355"
- "i354"
- "i353"
- "i352"
- "i351"
- "i350"
- "i349"
- "i348"
- "i347"
- "i345"
- "i344"
- "i342"
- "i340"
- "i338"
- "i336"
- "i334"
- "i332"
- "i330"
- "i329"
- "i328"
- "i327"
- "i326"
- "i325"
- "i323"
- "i322"
- "i320"
- "i318"
- "i316"
- "i314"
- "i312"
- "i310"
- "i308"
- "i306"
- "i304"
- "i302"
- "i300"
- "i298"
- "i296"
- "i294"
- "i292"
- "i290"
- "i288"
- "i286"
- "i284"
- "i282"
- "i280"
- "i278"
- "i276"
- "i274"
- "i272"
- "i270"
- "i268"
- "i266"
- "i264"
- "i262"
- "i260"
- "i258"
- "i256"
- "i255"
- "i253"
- "i251"
- "i250"
- "i249"
- "i248"
- "i247"
- "i245"
- "i243"
- "i241"
- "i238"
- "i236"
- "i234"
- "i232"
- "i230"
- "i228"
- "i226"
- "i224"
- "i222"
- "i220"
- "i218"
- "i216"
- "i214"
- "i212"
- "i210"
- "i208"
- "i206"
- "i204"
- "i202"))
- #(ribcage
- (define-structure
- define-expansion-accessors
- define-expansion-constructors)
- ((top) (top) (top))
- ("i40" "i39" "i38")))
- (hygiene guile))
- #{keys 3905}#))
- #f)
- (if (#{free-id=? 399}#
- '#(syntax-object
- pad
- ((top)
- #(ribcage
- #(pat exp)
- #((top) (top))
- #("i3919" "i3920"))
- #(ribcage () () ())
- #(ribcage
- #(x keys clauses r mod)
- #((top) (top) (top) (top) (top))
- #("i3909"
- "i3910"
- "i3911"
- "i3912"
- "i3913"))
- #(ribcage
- (gen-syntax-case
- gen-clause
- build-dispatch-call
- convert-pattern)
- ((top) (top) (top) (top))
- ("i3722" "i3720" "i3718" "i3716"))
- #(ribcage
- (lambda-var-list
- gen-var
- strip
- chi-lambda-case
- lambda*-formals
- chi-simple-lambda
- lambda-formals
- ellipsis?
- chi-void
- eval-local-transformer
- chi-local-syntax
- chi-body
- chi-macro
- chi-call
- chi-expr
- chi
- syntax-type
- chi-when-list
- chi-install-global
- chi-top-sequence
- chi-sequence
- source-wrap
- wrap
- bound-id-member?
- distinct-bound-ids?
- valid-bound-ids?
- bound-id=?
- free-id=?
- id-var-name
- same-marks?
- join-marks
- join-wraps
- smart-append
- make-binding-wrap
- extend-ribcage!
- make-empty-ribcage
- new-mark
- anti-mark
- the-anti-mark
- top-marked?
- top-wrap
- empty-wrap
- set-ribcage-labels!
- set-ribcage-marks!
- set-ribcage-symnames!
- ribcage-labels
- ribcage-marks
- ribcage-symnames
- ribcage?
- make-ribcage
- gen-labels
- gen-label
- make-rename
- rename-marks
- rename-new
- rename-old
- subst-rename?
- wrap-subst
- wrap-marks
- make-wrap
- id-sym-name&marks
- id-sym-name
- id?
- nonsymbol-id?
- global-extend
- lookup
- macros-only-env
- extend-var-env
- extend-env
- null-env
- binding-value
- binding-type
- make-binding
- arg-check
- source-annotation
- no-source
- set-syntax-object-module!
- set-syntax-object-wrap!
- set-syntax-object-expression!
- syntax-object-module
- syntax-object-wrap
- syntax-object-expression
- syntax-object?
- make-syntax-object
- build-lexical-var
- build-letrec
- build-named-let
- build-let
- build-sequence
- build-data
- build-primref
- build-primcall
- build-lambda-case
- build-case-lambda
- build-simple-lambda
- build-global-definition
- build-global-assignment
- build-global-reference
- analyze-variable
- build-lexical-assignment
- build-lexical-reference
- build-dynlet
- build-conditional
- build-call
- build-void
- maybe-name-value!
- decorate-source
- get-global-definition-hook
- put-global-definition-hook
- gensym-hook
- local-eval-hook
- top-level-eval-hook
- fx<
- fx=
- fx-
- fx+
- set-lambda-meta!
- lambda-meta
- lambda?
- make-dynlet
- make-letrec
- make-let
- make-lambda-case
- make-lambda
- make-seq
- make-primcall
- make-call
- make-conditional
- make-toplevel-define
- make-toplevel-set
- make-toplevel-ref
- make-module-set
- make-module-ref
- make-lexical-set
- make-lexical-ref
- make-primitive-ref
- make-const
- make-void)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("i452"
- "i450"
- "i448"
- "i446"
- "i444"
- "i442"
- "i440"
- "i438"
- "i436"
- "i434"
- "i432"
- "i430"
- "i428"
- "i426"
- "i424"
- "i422"
- "i420"
- "i418"
- "i416"
- "i414"
- "i412"
- "i410"
- "i408"
- "i406"
- "i404"
- "i402"
- "i400"
- "i398"
- "i396"
- "i394"
- "i392"
- "i390"
- "i388"
- "i386"
- "i384"
- "i383"
- "i382"
- "i380"
- "i379"
- "i378"
- "i377"
- "i376"
- "i374"
- "i372"
- "i370"
- "i368"
- "i366"
- "i364"
- "i362"
- "i360"
- "i357"
- "i355"
- "i354"
- "i353"
- "i352"
- "i351"
- "i350"
- "i349"
- "i348"
- "i347"
- "i345"
- "i344"
- "i342"
- "i340"
- "i338"
- "i336"
- "i334"
- "i332"
- "i330"
- "i329"
- "i328"
- "i327"
- "i326"
- "i325"
- "i323"
- "i322"
- "i320"
- "i318"
- "i316"
- "i314"
- "i312"
- "i310"
- "i308"
- "i306"
- "i304"
- "i302"
- "i300"
- "i298"
- "i296"
- "i294"
- "i292"
- "i290"
- "i288"
- "i286"
- "i284"
- "i282"
- "i280"
- "i278"
- "i276"
- "i274"
- "i272"
- "i270"
- "i268"
- "i266"
- "i264"
- "i262"
- "i260"
- "i258"
- "i256"
- "i255"
- "i253"
- "i251"
- "i250"
- "i249"
- "i248"
- "i247"
- "i245"
- "i243"
- "i241"
- "i238"
- "i236"
- "i234"
- "i232"
- "i230"
- "i228"
- "i226"
- "i224"
- "i222"
- "i220"
- "i218"
- "i216"
- "i214"
- "i212"
- "i210"
- "i208"
- "i206"
- "i204"
- "i202"))
- #(ribcage
- (define-structure
- define-expansion-accessors
- define-expansion-constructors)
- ((top) (top) (top))
- ("i40" "i39" "i38")))
- (hygiene guile))
- '#(syntax-object
- _
- ((top)
- #(ribcage
- #(pat exp)
- #((top) (top))
- #("i3919" "i3920"))
- #(ribcage () () ())
- #(ribcage
- #(x keys clauses r mod)
- #((top) (top) (top) (top) (top))
- #("i3909"
- "i3910"
- "i3911"
- "i3912"
- "i3913"))
- #(ribcage
- (gen-syntax-case
- gen-clause
- build-dispatch-call
- convert-pattern)
- ((top) (top) (top) (top))
- ("i3722" "i3720" "i3718" "i3716"))
- #(ribcage
- (lambda-var-list
- gen-var
- strip
- chi-lambda-case
- lambda*-formals
- chi-simple-lambda
- lambda-formals
- ellipsis?
- chi-void
- eval-local-transformer
- chi-local-syntax
- chi-body
- chi-macro
- chi-call
- chi-expr
- chi
- syntax-type
- chi-when-list
- chi-install-global
- chi-top-sequence
- chi-sequence
- source-wrap
- wrap
- bound-id-member?
- distinct-bound-ids?
- valid-bound-ids?
- bound-id=?
- free-id=?
- id-var-name
- same-marks?
- join-marks
- join-wraps
- smart-append
- make-binding-wrap
- extend-ribcage!
- make-empty-ribcage
- new-mark
- anti-mark
- the-anti-mark
- top-marked?
- top-wrap
- empty-wrap
- set-ribcage-labels!
- set-ribcage-marks!
- set-ribcage-symnames!
- ribcage-labels
- ribcage-marks
- ribcage-symnames
- ribcage?
- make-ribcage
- gen-labels
- gen-label
- make-rename
- rename-marks
- rename-new
- rename-old
- subst-rename?
- wrap-subst
- wrap-marks
- make-wrap
- id-sym-name&marks
- id-sym-name
- id?
- nonsymbol-id?
- global-extend
- lookup
- macros-only-env
- extend-var-env
- extend-env
- null-env
- binding-value
- binding-type
- make-binding
- arg-check
- source-annotation
- no-source
- set-syntax-object-module!
- set-syntax-object-wrap!
- set-syntax-object-expression!
- syntax-object-module
- syntax-object-wrap
- syntax-object-expression
- syntax-object?
- make-syntax-object
- build-lexical-var
- build-letrec
- build-named-let
- build-let
- build-sequence
- build-data
- build-primref
- build-primcall
- build-lambda-case
- build-case-lambda
- build-simple-lambda
- build-global-definition
- build-global-assignment
- build-global-reference
- analyze-variable
- build-lexical-assignment
- build-lexical-reference
- build-dynlet
- build-conditional
- build-call
- build-void
- maybe-name-value!
- decorate-source
- get-global-definition-hook
- put-global-definition-hook
- gensym-hook
- local-eval-hook
- top-level-eval-hook
- fx<
- fx=
- fx-
- fx+
- set-lambda-meta!
- lambda-meta
- lambda?
- make-dynlet
- make-letrec
- make-let
- make-lambda-case
- make-lambda
- make-seq
- make-primcall
- make-call
- make-conditional
- make-toplevel-define
- make-toplevel-set
- make-toplevel-ref
- make-module-set
- make-module-ref
- make-lexical-set
- make-lexical-ref
- make-primitive-ref
- make-const
- make-void)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("i452"
- "i450"
- "i448"
- "i446"
- "i444"
- "i442"
- "i440"
- "i438"
- "i436"
- "i434"
- "i432"
- "i430"
- "i428"
- "i426"
- "i424"
- "i422"
- "i420"
- "i418"
- "i416"
- "i414"
- "i412"
- "i410"
- "i408"
- "i406"
- "i404"
- "i402"
- "i400"
- "i398"
- "i396"
- "i394"
- "i392"
- "i390"
- "i388"
- "i386"
- "i384"
- "i383"
- "i382"
- "i380"
- "i379"
- "i378"
- "i377"
- "i376"
- "i374"
- "i372"
- "i370"
- "i368"
- "i366"
- "i364"
- "i362"
- "i360"
- "i357"
- "i355"
- "i354"
- "i353"
- "i352"
- "i351"
- "i350"
- "i349"
- "i348"
- "i347"
- "i345"
- "i344"
- "i342"
- "i340"
- "i338"
- "i336"
- "i334"
- "i332"
- "i330"
- "i329"
- "i328"
- "i327"
- "i326"
- "i325"
- "i323"
- "i322"
- "i320"
- "i318"
- "i316"
- "i314"
- "i312"
- "i310"
- "i308"
- "i306"
- "i304"
- "i302"
- "i300"
- "i298"
- "i296"
- "i294"
- "i292"
- "i290"
- "i288"
- "i286"
- "i284"
- "i282"
- "i280"
- "i278"
- "i276"
- "i274"
- "i272"
- "i270"
- "i268"
- "i266"
- "i264"
- "i262"
- "i260"
- "i258"
- "i256"
- "i255"
- "i253"
- "i251"
- "i250"
- "i249"
- "i248"
- "i247"
- "i245"
- "i243"
- "i241"
- "i238"
- "i236"
- "i234"
- "i232"
- "i230"
- "i228"
- "i226"
- "i224"
- "i222"
- "i220"
- "i218"
- "i216"
- "i214"
- "i212"
- "i210"
- "i208"
- "i206"
- "i204"
- "i202"))
- #(ribcage
- (define-structure
- define-expansion-accessors
- define-expansion-constructors)
- ((top) (top) (top))
- ("i40" "i39" "i38")))
- (hygiene guile)))
- (#{chi 423}#
- #{exp 3922}#
- #{r 3907}#
- '(())
- #{mod 3908}#)
- (let ((#{labels 3930}# (list (#{gen-label 356}#)))
- (#{var 3931}#
- (#{gen-var 451}# #{pat 3921}#)))
- (#{build-call 267}#
- #f
- (#{build-simple-lambda 285}#
+ (lambda (#{name 1901}#)
+ (values
+ 'define-form
+ (#{wrap 427}#
+ #{name 1901}#
+ #{w 1799}#
+ #{mod 1802}#)
+ '(#(syntax-object
+ if
+ ((top)
+ #(ribcage
+ #(name)
+ #((top))
+ #("i1900"))
+ #(ribcage () () ())
+ #(ribcage () () ())
+ #(ribcage
+ #(ftype
+ fval
+ fe
+ fw
+ fs
+ fmod)
+ #((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ #("i1840"
+ "i1841"
+ "i1842"
+ "i1843"
+ "i1844"
+ "i1845"))
+ #(ribcage () () ())
+ #(ribcage
+ #(first)
+ #((top))
+ #("i1832"))
+ #(ribcage () () ())
+ #(ribcage () () ())
+ #(ribcage () () ())
+ #(ribcage
+ #(e
+ r
+ w
+ s
+ rib
+ mod
+ for-car?)
+ #((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ #("i1804"
+ "i1805"
+ "i1806"
+ "i1807"
+ "i1808"
+ "i1809"
+ "i1810"))
+ #(ribcage
+ (lambda-var-list
+ gen-var
+ strip
+ chi-lambda-case
+ lambda*-formals
+ chi-simple-lambda
+ lambda-formals
+ ellipsis?
+ chi-void
+
eval-local-transformer
+ chi-local-syntax
+ chi-body
+ chi-macro
+ chi-call
+ chi-expr
+ chi
+ syntax-type
+ chi-when-list
+
chi-install-global
+ chi-top-sequence
+ chi-sequence
+ source-wrap
+ wrap
+ bound-id-member?
+
distinct-bound-ids?
+ valid-bound-ids?
+ bound-id=?
+ free-id=?
+ id-var-name
+ same-marks?
+ join-marks
+ join-wraps
+ smart-append
+ make-binding-wrap
+ extend-ribcage!
+
make-empty-ribcage
+ new-mark
+ anti-mark
+ the-anti-mark
+ top-marked?
+ top-wrap
+ empty-wrap
+
set-ribcage-labels!
+
set-ribcage-marks!
+
set-ribcage-symnames!
+ ribcage-labels
+ ribcage-marks
+ ribcage-symnames
+ ribcage?
+ make-ribcage
+ gen-labels
+ gen-label
+ make-rename
+ rename-marks
+ rename-new
+ rename-old
+ subst-rename?
+ wrap-subst
+ wrap-marks
+ make-wrap
+ id-sym-name&marks
+ id-sym-name
+ id?
+ nonsymbol-id?
+ global-extend
+ lookup
+ macros-only-env
+ extend-var-env
+ extend-env
+ null-env
+ binding-value
+ binding-type
+ make-binding
+ arg-check
+ source-annotation
+ no-source
+
set-syntax-object-module!
+
set-syntax-object-wrap!
+
set-syntax-object-expression!
+
syntax-object-module
+
syntax-object-wrap
+
syntax-object-expression
+ syntax-object?
+
make-syntax-object
+ build-lexical-var
+ build-letrec
+ build-named-let
+ build-let
+ build-sequence
+ build-data
+ build-primref
+ build-primcall
+ build-lambda-case
+ build-case-lambda
+
build-simple-lambda
+
build-global-definition
+
build-global-assignment
+
build-global-reference
+ analyze-variable
+
build-lexical-assignment
+
build-lexical-reference
+ build-dynlet
+ build-conditional
+ build-call
+ build-void
+ maybe-name-value!
+ decorate-source
+
get-global-definition-hook
+
put-global-definition-hook
+ gensym-hook
+ local-eval-hook
+
top-level-eval-hook
+ fx<
+ fx=
+ fx-
+ fx+
+ set-lambda-meta!
+ lambda-meta
+ lambda?
+ make-dynlet
+ make-letrec
+ make-let
+ make-lambda-case
+ make-lambda
+ make-seq
+ make-primcall
+ make-call
+ make-conditional
+
make-toplevel-define
+ make-toplevel-set
+ make-toplevel-ref
+ make-module-set
+ make-module-ref
+ make-lexical-set
+ make-lexical-ref
+
make-primitive-ref
+ make-const
+ make-void)
+ ((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ ("i470"
+ "i468"
+ "i466"
+ "i464"
+ "i462"
+ "i460"
+ "i458"
+ "i456"
+ "i454"
+ "i452"
+ "i450"
+ "i448"
+ "i446"
+ "i444"
+ "i442"
+ "i440"
+ "i438"
+ "i436"
+ "i434"
+ "i432"
+ "i430"
+ "i428"
+ "i426"
+ "i424"
+ "i422"
+ "i420"
+ "i418"
+ "i416"
+ "i414"
+ "i412"
+ "i410"
+ "i408"
+ "i406"
+ "i404"
+ "i402"
+ "i401"
+ "i399"
+ "i396"
+ "i395"
+ "i394"
+ "i392"
+ "i391"
+ "i389"
+ "i387"
+ "i385"
+ "i383"
+ "i381"
+ "i379"
+ "i377"
+ "i375"
+ "i372"
+ "i370"
+ "i369"
+ "i367"
+ "i365"
+ "i363"
+ "i361"
+ "i360"
+ "i359"
+ "i358"
+ "i356"
+ "i355"
+ "i352"
+ "i350"
+ "i348"
+ "i346"
+ "i344"
+ "i342"
+ "i340"
+ "i339"
+ "i338"
+ "i336"
+ "i334"
+ "i333"
+ "i330"
+ "i329"
+ "i327"
+ "i325"
+ "i323"
+ "i321"
+ "i319"
+ "i317"
+ "i315"
+ "i313"
+ "i311"
+ "i308"
+ "i306"
+ "i304"
+ "i302"
+ "i300"
+ "i298"
+ "i296"
+ "i294"
+ "i292"
+ "i290"
+ "i288"
+ "i286"
+ "i284"
+ "i282"
+ "i280"
+ "i278"
+ "i276"
+ "i274"
+ "i272"
+ "i270"
+ "i268"
+ "i266"
+ "i264"
+ "i262"
+ "i261"
+ "i258"
+ "i256"
+ "i255"
+ "i254"
+ "i253"
+ "i252"
+ "i250"
+ "i248"
+ "i246"
+ "i243"
+ "i241"
+ "i239"
+ "i237"
+ "i235"
+ "i233"
+ "i231"
+ "i229"
+ "i227"
+ "i225"
+ "i223"
+ "i221"
+ "i219"
+ "i217"
+ "i215"
+ "i213"
+ "i211"
+ "i209"
+ "i207"))
+ #(ribcage
+ (define-structure
+
define-expansion-accessors
+
define-expansion-constructors)
+ ((top) (top) (top))
+ ("i45"
+ "i44"
+ "i43")))
+ (hygiene guile))
+ #(syntax-object
+ #f
+ ((top)
+ #(ribcage
+ #(name)
+ #((top))
+ #("i1900"))
+ #(ribcage () () ())
+ #(ribcage () () ())
+ #(ribcage
+ #(ftype
+ fval
+ fe
+ fw
+ fs
+ fmod)
+ #((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ #("i1840"
+ "i1841"
+ "i1842"
+ "i1843"
+ "i1844"
+ "i1845"))
+ #(ribcage () () ())
+ #(ribcage
+ #(first)
+ #((top))
+ #("i1832"))
+ #(ribcage () () ())
+ #(ribcage () () ())
+ #(ribcage () () ())
+ #(ribcage
+ #(e
+ r
+ w
+ s
+ rib
+ mod
+ for-car?)
+ #((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ #("i1804"
+ "i1805"
+ "i1806"
+ "i1807"
+ "i1808"
+ "i1809"
+ "i1810"))
+ #(ribcage
+ (lambda-var-list
+ gen-var
+ strip
+ chi-lambda-case
+ lambda*-formals
+ chi-simple-lambda
+ lambda-formals
+ ellipsis?
+ chi-void
+
eval-local-transformer
+ chi-local-syntax
+ chi-body
+ chi-macro
+ chi-call
+ chi-expr
+ chi
+ syntax-type
+ chi-when-list
+
chi-install-global
+ chi-top-sequence
+ chi-sequence
+ source-wrap
+ wrap
+ bound-id-member?
+
distinct-bound-ids?
+ valid-bound-ids?
+ bound-id=?
+ free-id=?
+ id-var-name
+ same-marks?
+ join-marks
+ join-wraps
+ smart-append
+ make-binding-wrap
+ extend-ribcage!
+
make-empty-ribcage
+ new-mark
+ anti-mark
+ the-anti-mark
+ top-marked?
+ top-wrap
+ empty-wrap
+
set-ribcage-labels!
+
set-ribcage-marks!
+
set-ribcage-symnames!
+ ribcage-labels
+ ribcage-marks
+ ribcage-symnames
+ ribcage?
+ make-ribcage
+ gen-labels
+ gen-label
+ make-rename
+ rename-marks
+ rename-new
+ rename-old
+ subst-rename?
+ wrap-subst
+ wrap-marks
+ make-wrap
+ id-sym-name&marks
+ id-sym-name
+ id?
+ nonsymbol-id?
+ global-extend
+ lookup
+ macros-only-env
+ extend-var-env
+ extend-env
+ null-env
+ binding-value
+ binding-type
+ make-binding
+ arg-check
+ source-annotation
+ no-source
+
set-syntax-object-module!
+
set-syntax-object-wrap!
+
set-syntax-object-expression!
+
syntax-object-module
+
syntax-object-wrap
+
syntax-object-expression
+ syntax-object?
+
make-syntax-object
+ build-lexical-var
+ build-letrec
+ build-named-let
+ build-let
+ build-sequence
+ build-data
+ build-primref
+ build-primcall
+ build-lambda-case
+ build-case-lambda
+
build-simple-lambda
+
build-global-definition
+
build-global-assignment
+
build-global-reference
+ analyze-variable
+
build-lexical-assignment
+
build-lexical-reference
+ build-dynlet
+ build-conditional
+ build-call
+ build-void
+ maybe-name-value!
+ decorate-source
+
get-global-definition-hook
+
put-global-definition-hook
+ gensym-hook
+ local-eval-hook
+
top-level-eval-hook
+ fx<
+ fx=
+ fx-
+ fx+
+ set-lambda-meta!
+ lambda-meta
+ lambda?
+ make-dynlet
+ make-letrec
+ make-let
+ make-lambda-case
+ make-lambda
+ make-seq
+ make-primcall
+ make-call
+ make-conditional
+
make-toplevel-define
+ make-toplevel-set
+ make-toplevel-ref
+ make-module-set
+ make-module-ref
+ make-lexical-set
+ make-lexical-ref
+
make-primitive-ref
+ make-const
+ make-void)
+ ((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ ("i470"
+ "i468"
+ "i466"
+ "i464"
+ "i462"
+ "i460"
+ "i458"
+ "i456"
+ "i454"
+ "i452"
+ "i450"
+ "i448"
+ "i446"
+ "i444"
+ "i442"
+ "i440"
+ "i438"
+ "i436"
+ "i434"
+ "i432"
+ "i430"
+ "i428"
+ "i426"
+ "i424"
+ "i422"
+ "i420"
+ "i418"
+ "i416"
+ "i414"
+ "i412"
+ "i410"
+ "i408"
+ "i406"
+ "i404"
+ "i402"
+ "i401"
+ "i399"
+ "i396"
+ "i395"
+ "i394"
+ "i392"
+ "i391"
+ "i389"
+ "i387"
+ "i385"
+ "i383"
+ "i381"
+ "i379"
+ "i377"
+ "i375"
+ "i372"
+ "i370"
+ "i369"
+ "i367"
+ "i365"
+ "i363"
+ "i361"
+ "i360"
+ "i359"
+ "i358"
+ "i356"
+ "i355"
+ "i352"
+ "i350"
+ "i348"
+ "i346"
+ "i344"
+ "i342"
+ "i340"
+ "i339"
+ "i338"
+ "i336"
+ "i334"
+ "i333"
+ "i330"
+ "i329"
+ "i327"
+ "i325"
+ "i323"
+ "i321"
+ "i319"
+ "i317"
+ "i315"
+ "i313"
+ "i311"
+ "i308"
+ "i306"
+ "i304"
+ "i302"
+ "i300"
+ "i298"
+ "i296"
+ "i294"
+ "i292"
+ "i290"
+ "i288"
+ "i286"
+ "i284"
+ "i282"
+ "i280"
+ "i278"
+ "i276"
+ "i274"
+ "i272"
+ "i270"
+ "i268"
+ "i266"
+ "i264"
+ "i262"
+ "i261"
+ "i258"
+ "i256"
+ "i255"
+ "i254"
+ "i253"
+ "i252"
+ "i250"
+ "i248"
+ "i246"
+ "i243"
+ "i241"
+ "i239"
+ "i237"
+ "i235"
+ "i233"
+ "i231"
+ "i229"
+ "i227"
+ "i225"
+ "i223"
+ "i221"
+ "i219"
+ "i217"
+ "i215"
+ "i213"
+ "i211"
+ "i209"
+ "i207"))
+ #(ribcage
+ (define-structure
+
define-expansion-accessors
+
define-expansion-constructors)
+ ((top) (top) (top))
+ ("i45"
+ "i44"
+ "i43")))
+ (hygiene guile))
+ #(syntax-object
+ #f
+ ((top)
+ #(ribcage
+ #(name)
+ #((top))
+ #("i1900"))
+ #(ribcage () () ())
+ #(ribcage () () ())
+ #(ribcage
+ #(ftype
+ fval
+ fe
+ fw
+ fs
+ fmod)
+ #((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ #("i1840"
+ "i1841"
+ "i1842"
+ "i1843"
+ "i1844"
+ "i1845"))
+ #(ribcage () () ())
+ #(ribcage
+ #(first)
+ #((top))
+ #("i1832"))
+ #(ribcage () () ())
+ #(ribcage () () ())
+ #(ribcage () () ())
+ #(ribcage
+ #(e
+ r
+ w
+ s
+ rib
+ mod
+ for-car?)
+ #((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ #("i1804"
+ "i1805"
+ "i1806"
+ "i1807"
+ "i1808"
+ "i1809"
+ "i1810"))
+ #(ribcage
+ (lambda-var-list
+ gen-var
+ strip
+ chi-lambda-case
+ lambda*-formals
+ chi-simple-lambda
+ lambda-formals
+ ellipsis?
+ chi-void
+
eval-local-transformer
+ chi-local-syntax
+ chi-body
+ chi-macro
+ chi-call
+ chi-expr
+ chi
+ syntax-type
+ chi-when-list
+
chi-install-global
+ chi-top-sequence
+ chi-sequence
+ source-wrap
+ wrap
+ bound-id-member?
+
distinct-bound-ids?
+ valid-bound-ids?
+ bound-id=?
+ free-id=?
+ id-var-name
+ same-marks?
+ join-marks
+ join-wraps
+ smart-append
+ make-binding-wrap
+ extend-ribcage!
+
make-empty-ribcage
+ new-mark
+ anti-mark
+ the-anti-mark
+ top-marked?
+ top-wrap
+ empty-wrap
+
set-ribcage-labels!
+
set-ribcage-marks!
+
set-ribcage-symnames!
+ ribcage-labels
+ ribcage-marks
+ ribcage-symnames
+ ribcage?
+ make-ribcage
+ gen-labels
+ gen-label
+ make-rename
+ rename-marks
+ rename-new
+ rename-old
+ subst-rename?
+ wrap-subst
+ wrap-marks
+ make-wrap
+ id-sym-name&marks
+ id-sym-name
+ id?
+ nonsymbol-id?
+ global-extend
+ lookup
+ macros-only-env
+ extend-var-env
+ extend-env
+ null-env
+ binding-value
+ binding-type
+ make-binding
+ arg-check
+ source-annotation
+ no-source
+
set-syntax-object-module!
+
set-syntax-object-wrap!
+
set-syntax-object-expression!
+
syntax-object-module
+
syntax-object-wrap
+
syntax-object-expression
+ syntax-object?
+
make-syntax-object
+ build-lexical-var
+ build-letrec
+ build-named-let
+ build-let
+ build-sequence
+ build-data
+ build-primref
+ build-primcall
+ build-lambda-case
+ build-case-lambda
+
build-simple-lambda
+
build-global-definition
+
build-global-assignment
+
build-global-reference
+ analyze-variable
+
build-lexical-assignment
+
build-lexical-reference
+ build-dynlet
+ build-conditional
+ build-call
+ build-void
+ maybe-name-value!
+ decorate-source
+
get-global-definition-hook
+
put-global-definition-hook
+ gensym-hook
+ local-eval-hook
+
top-level-eval-hook
+ fx<
+ fx=
+ fx-
+ fx+
+ set-lambda-meta!
+ lambda-meta
+ lambda?
+ make-dynlet
+ make-letrec
+ make-let
+ make-lambda-case
+ make-lambda
+ make-seq
+ make-primcall
+ make-call
+ make-conditional
+
make-toplevel-define
+ make-toplevel-set
+ make-toplevel-ref
+ make-module-set
+ make-module-ref
+ make-lexical-set
+ make-lexical-ref
+
make-primitive-ref
+ make-const
+ make-void)
+ ((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ ("i470"
+ "i468"
+ "i466"
+ "i464"
+ "i462"
+ "i460"
+ "i458"
+ "i456"
+ "i454"
+ "i452"
+ "i450"
+ "i448"
+ "i446"
+ "i444"
+ "i442"
+ "i440"
+ "i438"
+ "i436"
+ "i434"
+ "i432"
+ "i430"
+ "i428"
+ "i426"
+ "i424"
+ "i422"
+ "i420"
+ "i418"
+ "i416"
+ "i414"
+ "i412"
+ "i410"
+ "i408"
+ "i406"
+ "i404"
+ "i402"
+ "i401"
+ "i399"
+ "i396"
+ "i395"
+ "i394"
+ "i392"
+ "i391"
+ "i389"
+ "i387"
+ "i385"
+ "i383"
+ "i381"
+ "i379"
+ "i377"
+ "i375"
+ "i372"
+ "i370"
+ "i369"
+ "i367"
+ "i365"
+ "i363"
+ "i361"
+ "i360"
+ "i359"
+ "i358"
+ "i356"
+ "i355"
+ "i352"
+ "i350"
+ "i348"
+ "i346"
+ "i344"
+ "i342"
+ "i340"
+ "i339"
+ "i338"
+ "i336"
+ "i334"
+ "i333"
+ "i330"
+ "i329"
+ "i327"
+ "i325"
+ "i323"
+ "i321"
+ "i319"
+ "i317"
+ "i315"
+ "i313"
+ "i311"
+ "i308"
+ "i306"
+ "i304"
+ "i302"
+ "i300"
+ "i298"
+ "i296"
+ "i294"
+ "i292"
+ "i290"
+ "i288"
+ "i286"
+ "i284"
+ "i282"
+ "i280"
+ "i278"
+ "i276"
+ "i274"
+ "i272"
+ "i270"
+ "i268"
+ "i266"
+ "i264"
+ "i262"
+ "i261"
+ "i258"
+ "i256"
+ "i255"
+ "i254"
+ "i253"
+ "i252"
+ "i250"
+ "i248"
+ "i246"
+ "i243"
+ "i241"
+ "i239"
+ "i237"
+ "i235"
+ "i233"
+ "i231"
+ "i229"
+ "i227"
+ "i225"
+ "i223"
+ "i221"
+ "i219"
+ "i217"
+ "i215"
+ "i213"
+ "i211"
+ "i209"
+ "i207"))
+ #(ribcage
+ (define-structure
+
define-expansion-accessors
+
define-expansion-constructors)
+ ((top) (top) (top))
+ ("i45"
+ "i44"
+ "i43")))
+ (hygiene guile)))
+ '(())
+ #{s 1800}#
+ #{mod 1802}#))
+ #{tmp 1897}#)
+ (syntax-violation
+ #f
+ "source expression failed to
match any pattern"
+ #{e 1797}#)))))))
+ (if (memv #{ftype 1834}# '(define-syntax))
+ (let ((#{tmp 1905}#
+ ($sc-dispatch
+ #{e 1797}#
+ '(_ any any))))
+ (if (if #{tmp 1905}#
+ (@apply
+ (lambda (#{name 1908}#
+ #{val 1909}#)
+ (#{id? 353}# #{name 1908}#))
+ #{tmp 1905}#)
+ #f)
+ (@apply
+ (lambda (#{name 1912}# #{val 1913}#)
+ (values
+ 'define-syntax-form
+ #{name 1912}#
+ #{val 1913}#
+ #{w 1799}#
+ #{s 1800}#
+ #{mod 1802}#))
+ #{tmp 1905}#)
+ (syntax-violation
+ #f
+ "source expression failed to match
any pattern"
+ #{e 1797}#)))
+ (values
+ 'call
+ #f
+ #{e 1797}#
+ #{w 1799}#
+ #{s 1800}#
+ #{mod 1802}#))))))))))))))
+ (if (#{syntax-object? 316}# #{e 1797}#)
+ (#{syntax-type 439}#
+ (#{syntax-object-expression 318}# #{e 1797}#)
+ #{r 1798}#
+ (#{join-wraps 409}#
+ #{w 1799}#
+ (#{syntax-object-wrap 320}# #{e 1797}#))
+ (let ((#{t 1919}#
+ (#{source-annotation 331}# #{e 1797}#)))
+ (if #{t 1919}# #{t 1919}# #{s 1800}#))
+ #{rib 1801}#
+ (let ((#{t 1923}#
+ (#{syntax-object-module 322}# #{e 1797}#)))
+ (if #{t 1923}# #{t 1923}# #{mod 1802}#))
+ #{for-car? 1803}#)
+ (if (self-evaluating? #{e 1797}#)
+ (values
+ 'constant
+ #f
+ #{e 1797}#
+ #{w 1799}#
+ #{s 1800}#
+ #{mod 1802}#)
+ (values
+ 'other
+ #f
+ #{e 1797}#
+ #{w 1799}#
+ #{s 1800}#
+ #{mod 1802}#)))))))
+ (#{chi 441}#
+ (lambda (#{e 1928}# #{r 1929}# #{w 1930}# #{mod 1931}#)
+ (call-with-values
+ (lambda ()
+ (#{syntax-type 439}#
+ #{e 1928}#
+ #{r 1929}#
+ #{w 1930}#
+ (#{source-annotation 331}# #{e 1928}#)
+ #f
+ #{mod 1931}#
+ #f))
+ (lambda (#{type 1936}#
+ #{value 1937}#
+ #{e 1938}#
+ #{w 1939}#
+ #{s 1940}#
+ #{mod 1941}#)
+ (#{chi-expr 443}#
+ #{type 1936}#
+ #{value 1937}#
+ #{e 1938}#
+ #{r 1929}#
+ #{w 1939}#
+ #{s 1940}#
+ #{mod 1941}#)))))
+ (#{chi-expr 443}#
+ (lambda (#{type 1948}#
+ #{value 1949}#
+ #{e 1950}#
+ #{r 1951}#
+ #{w 1952}#
+ #{s 1953}#
+ #{mod 1954}#)
+ (if (memv #{type 1948}# '(lexical))
+ (#{build-lexical-reference 279}#
+ 'value
+ #{s 1953}#
+ #{e 1950}#
+ #{value 1949}#)
+ (if (memv #{type 1948}# '(core core-form))
+ (#{value 1949}#
+ #{e 1950}#
+ #{r 1951}#
+ #{w 1952}#
+ #{s 1953}#
+ #{mod 1954}#)
+ (if (memv #{type 1948}# '(module-ref))
+ (call-with-values
+ (lambda ()
+ (#{value 1949}# #{e 1950}# #{r 1951}# #{w 1952}#))
+ (lambda (#{e 1965}#
+ #{r 1966}#
+ #{w 1967}#
+ #{s 1968}#
+ #{mod 1969}#)
+ (#{chi 441}#
+ #{e 1965}#
+ #{r 1966}#
+ #{w 1967}#
+ #{mod 1969}#)))
+ (if (memv #{type 1948}# '(lexical-call))
+ (#{chi-call 445}#
+ (let ((#{id 1977}# (car #{e 1950}#)))
+ (#{build-lexical-reference 279}#
+ 'fun
+ (#{source-annotation 331}# #{id 1977}#)
+ (if (#{syntax-object? 316}# #{id 1977}#)
+ (syntax->datum #{id 1977}#)
+ #{id 1977}#)
+ #{value 1949}#))
+ #{e 1950}#
+ #{r 1951}#
+ #{w 1952}#
+ #{s 1953}#
+ #{mod 1954}#)
+ (if (memv #{type 1948}# '(global-call))
+ (#{chi-call 445}#
+ (#{build-global-reference 285}#
+ (#{source-annotation 331}# (car #{e 1950}#))
+ (if (#{syntax-object? 316}# #{value 1949}#)
+ (#{syntax-object-expression 318}# #{value 1949}#)
+ #{value 1949}#)
+ (if (#{syntax-object? 316}# #{value 1949}#)
+ (#{syntax-object-module 322}# #{value 1949}#)
+ #{mod 1954}#))
+ #{e 1950}#
+ #{r 1951}#
+ #{w 1952}#
+ #{s 1953}#
+ #{mod 1954}#)
+ (if (memv #{type 1948}# '(constant))
+ (#{build-data 301}#
+ #{s 1953}#
+ (#{strip 467}#
+ (#{source-wrap 429}#
+ #{e 1950}#
+ #{w 1952}#
+ #{s 1953}#
+ #{mod 1954}#)
+ '(())))
+ (if (memv #{type 1948}# '(global))
+ (#{build-global-reference 285}#
+ #{s 1953}#
+ #{value 1949}#
+ #{mod 1954}#)
+ (if (memv #{type 1948}# '(call))
+ (#{chi-call 445}#
+ (#{chi 441}#
+ (car #{e 1950}#)
+ #{r 1951}#
+ #{w 1952}#
+ #{mod 1954}#)
+ #{e 1950}#
+ #{r 1951}#
+ #{w 1952}#
+ #{s 1953}#
+ #{mod 1954}#)
+ (if (memv #{type 1948}# '(begin-form))
+ (let ((#{tmp 1985}#
+ ($sc-dispatch
+ #{e 1950}#
+ '(_ any . each-any))))
+ (if #{tmp 1985}#
+ (@apply
+ (lambda (#{e1 1988}# #{e2 1989}#)
+ (#{chi-sequence 431}#
+ (cons #{e1 1988}# #{e2 1989}#)
+ #{r 1951}#
+ #{w 1952}#
+ #{s 1953}#
+ #{mod 1954}#))
+ #{tmp 1985}#)
+ (syntax-violation
+ #f
+ "source expression failed to match any pattern"
+ #{e 1950}#)))
+ (if (memv #{type 1948}# '(local-syntax-form))
+ (#{chi-local-syntax 451}#
+ #{value 1949}#
+ #{e 1950}#
+ #{r 1951}#
+ #{w 1952}#
+ #{s 1953}#
+ #{mod 1954}#
+ #{chi-sequence 431}#)
+ (if (memv #{type 1948}# '(eval-when-form))
+ (let ((#{tmp 1994}#
+ ($sc-dispatch
+ #{e 1950}#
+ '(_ each-any any . each-any))))
+ (if #{tmp 1994}#
+ (@apply
+ (lambda (#{x 1998}# #{e1 1999}# #{e2 2000}#)
+ (let ((#{when-list 2002}#
+ (#{chi-when-list 437}#
+ #{e 1950}#
+ #{x 1998}#
+ #{w 1952}#)))
+ (if (memq 'eval #{when-list 2002}#)
+ (#{chi-sequence 431}#
+ (cons #{e1 1999}# #{e2 2000}#)
+ #{r 1951}#
+ #{w 1952}#
+ #{s 1953}#
+ #{mod 1954}#)
+ (#{chi-void 455}#))))
+ #{tmp 1994}#)
+ (syntax-violation
#f
- (list (syntax->datum #{pat 3921}#))
+ "source expression failed to match any
pattern"
+ #{e 1950}#)))
+ (if (memv #{type 1948}#
+ '(define-form define-syntax-form))
+ (syntax-violation
+ #f
+ "definition in expression context"
+ #{e 1950}#
+ (#{wrap 427}#
+ #{value 1949}#
+ #{w 1952}#
+ #{mod 1954}#))
+ (if (memv #{type 1948}# '(syntax))
+ (syntax-violation
#f
- (list #{var 3931}#)
- '()
- (#{chi 423}#
- #{exp 3922}#
- (#{extend-env 331}#
- #{labels 3930}#
- (list (cons 'syntax
- (cons #{var 3931}# 0)))
- #{r 3907}#)
- (#{make-binding-wrap 387}#
- (list #{pat 3921}#)
- #{labels 3930}#
- '(()))
- #{mod 3908}#))
- (list #{x 3904}#))))
- (#{gen-clause 3721}#
- #{x 3904}#
- #{keys 3905}#
- (cdr #{clauses 3906}#)
- #{r 3907}#
- #{pat 3921}#
- #t
- #{exp 3922}#
- #{mod 3908}#)))
- #{tmp 3918}#)
- (let ((#{tmp 3937}#
- ($sc-dispatch #{tmp 3917}# '(any any any))))
- (if #{tmp 3937}#
- (@apply
- (lambda (#{pat 3941}# #{fender 3942}# #{exp 3943}#)
- (#{gen-clause 3721}#
- #{x 3904}#
- #{keys 3905}#
- (cdr #{clauses 3906}#)
- #{r 3907}#
- #{pat 3941}#
- #{fender 3942}#
- #{exp 3943}#
- #{mod 3908}#))
- #{tmp 3937}#)
- (let ((#{_ 3945}# #{tmp 3917}#))
- (syntax-violation
- 'syntax-case
- "invalid clause"
- (car #{clauses 3906}#))))))))))))
- (lambda (#{e 3946}#
- #{r 3947}#
- #{w 3948}#
- #{s 3949}#
- #{mod 3950}#)
- (let ((#{e 3957}#
- (#{source-wrap 411}#
- #{e 3946}#
- #{w 3948}#
- #{s 3949}#
- #{mod 3950}#)))
- (let ((#{tmp 3958}# #{e 3957}#))
- (let ((#{tmp 3959}#
+ "reference to pattern variable outside
syntax form"
+ (#{source-wrap 429}#
+ #{e 1950}#
+ #{w 1952}#
+ #{s 1953}#
+ #{mod 1954}#))
+ (if (memv #{type 1948}# '(displaced-lexical))
+ (syntax-violation
+ #f
+ "reference to identifier outside its
scope"
+ (#{source-wrap 429}#
+ #{e 1950}#
+ #{w 1952}#
+ #{s 1953}#
+ #{mod 1954}#))
+ (syntax-violation
+ #f
+ "unexpected syntax"
+ (#{source-wrap 429}#
+ #{e 1950}#
+ #{w 1952}#
+ #{s 1953}#
+ #{mod 1954}#))))))))))))))))))
+ (#{chi-call 445}#
+ (lambda (#{x 2009}#
+ #{e 2010}#
+ #{r 2011}#
+ #{w 2012}#
+ #{s 2013}#
+ #{mod 2014}#)
+ (let ((#{tmp 2022}#
+ ($sc-dispatch #{e 2010}# '(any . each-any))))
+ (if #{tmp 2022}#
+ (@apply
+ (lambda (#{e0 2025}# #{e1 2026}#)
+ (#{build-call 273}#
+ #{s 2013}#
+ #{x 2009}#
+ (map (lambda (#{e 2027}#)
+ (#{chi 441}#
+ #{e 2027}#
+ #{r 2011}#
+ #{w 2012}#
+ #{mod 2014}#))
+ #{e1 2026}#)))
+ #{tmp 2022}#)
+ (syntax-violation
+ #f
+ "source expression failed to match any pattern"
+ #{e 2010}#)))))
+ (#{chi-macro 447}#
+ (lambda (#{p 2030}#
+ #{e 2031}#
+ #{r 2032}#
+ #{w 2033}#
+ #{s 2034}#
+ #{rib 2035}#
+ #{mod 2036}#)
+ (letrec*
+ ((#{rebuild-macro-output 2045}#
+ (lambda (#{x 2046}# #{m 2047}#)
+ (if (pair? #{x 2046}#)
+ (#{decorate-source 267}#
+ (cons (#{rebuild-macro-output 2045}#
+ (car #{x 2046}#)
+ #{m 2047}#)
+ (#{rebuild-macro-output 2045}#
+ (cdr #{x 2046}#)
+ #{m 2047}#))
+ #{s 2034}#)
+ (if (#{syntax-object? 316}# #{x 2046}#)
+ (let ((#{w 2055}#
+ (#{syntax-object-wrap 320}# #{x 2046}#)))
+ (let ((#{ms 2058}# (car #{w 2055}#))
+ (#{s 2059}# (cdr #{w 2055}#)))
+ (if (if (pair? #{ms 2058}#)
+ (eq? (car #{ms 2058}#) #f)
+ #f)
+ (#{make-syntax-object 314}#
+ (#{syntax-object-expression 318}# #{x 2046}#)
+ (cons (cdr #{ms 2058}#)
+ (if #{rib 2035}#
+ (cons #{rib 2035}# (cdr #{s 2059}#))
+ (cdr #{s 2059}#)))
+ (#{syntax-object-module 322}# #{x 2046}#))
+ (#{make-syntax-object 314}#
+ (#{decorate-source 267}#
+ (#{syntax-object-expression 318}# #{x 2046}#)
+ #{s 2059}#)
+ (cons (cons #{m 2047}# #{ms 2058}#)
+ (if #{rib 2035}#
+ (cons #{rib 2035}# (cons 'shift #{s 2059}#))
+ (cons 'shift #{s 2059}#)))
+ (#{syntax-object-module 322}# #{x 2046}#)))))
+ (if (vector? #{x 2046}#)
+ (let ((#{n 2071}# (vector-length #{x 2046}#)))
+ (let ((#{v 2073}#
+ (#{decorate-source 267}#
+ (make-vector #{n 2071}#)
+ #{x 2046}#)))
+ (letrec*
+ ((#{loop 2076}#
+ (lambda (#{i 2077}#)
+ (if (= #{i 2077}# #{n 2071}#)
+ #{v 2073}#
+ (begin
+ (vector-set!
+ #{v 2073}#
+ #{i 2077}#
+ (#{rebuild-macro-output 2045}#
+ (vector-ref #{x 2046}# #{i 2077}#)
+ #{m 2047}#))
+ (#{loop 2076}# (#{1+}# #{i 2077}#)))))))
+ (#{loop 2076}# 0))))
+ (if (symbol? #{x 2046}#)
+ (syntax-violation
+ #f
+ "encountered raw symbol in macro output"
+ (#{source-wrap 429}#
+ #{e 2031}#
+ #{w 2033}#
+ (cdr #{w 2033}#)
+ #{mod 2036}#)
+ #{x 2046}#)
+ (#{decorate-source 267}# #{x 2046}# #{s 2034}#))))))))
+ (#{rebuild-macro-output 2045}#
+ (#{p 2030}#
+ (#{source-wrap 429}#
+ #{e 2031}#
+ (#{anti-mark 397}# #{w 2033}#)
+ #{s 2034}#
+ #{mod 2036}#))
+ (gensym "m")))))
+ (#{chi-body 449}#
+ (lambda (#{body 2087}#
+ #{outer-form 2088}#
+ #{r 2089}#
+ #{w 2090}#
+ #{mod 2091}#)
+ (let ((#{r 2099}#
+ (cons '("placeholder" placeholder) #{r 2089}#)))
+ (let ((#{ribcage 2101}#
+ (#{make-ribcage 376}# '() '() '())))
+ (let ((#{w 2104}#
+ (cons (car #{w 2090}#)
+ (cons #{ribcage 2101}# (cdr #{w 2090}#)))))
+ (letrec*
+ ((#{parse 2116}#
+ (lambda (#{body 2117}#
+ #{ids 2118}#
+ #{labels 2119}#
+ #{var-ids 2120}#
+ #{vars 2121}#
+ #{vals 2122}#
+ #{bindings 2123}#)
+ (if (null? #{body 2117}#)
+ (syntax-violation
+ #f
+ "no expressions in body"
+ #{outer-form 2088}#)
+ (let ((#{e 2128}# (cdr (car #{body 2117}#)))
+ (#{er 2129}# (car (car #{body 2117}#))))
+ (call-with-values
+ (lambda ()
+ (#{syntax-type 439}#
+ #{e 2128}#
+ #{er 2129}#
+ '(())
+ (#{source-annotation 331}# #{er 2129}#)
+ #{ribcage 2101}#
+ #{mod 2091}#
+ #f))
+ (lambda (#{type 2131}#
+ #{value 2132}#
+ #{e 2133}#
+ #{w 2134}#
+ #{s 2135}#
+ #{mod 2136}#)
+ (if (memv #{type 2131}# '(define-form))
+ (let ((#{id 2146}#
+ (#{wrap 427}#
+ #{value 2132}#
+ #{w 2134}#
+ #{mod 2136}#))
+ (#{label 2147}# (#{gen-label 371}#)))
+ (let ((#{var 2149}#
+ (#{gen-var 469}# #{id 2146}#)))
+ (begin
+ (#{extend-ribcage! 403}#
+ #{ribcage 2101}#
+ #{id 2146}#
+ #{label 2147}#)
+ (#{parse 2116}#
+ (cdr #{body 2117}#)
+ (cons #{id 2146}# #{ids 2118}#)
+ (cons #{label 2147}# #{labels 2119}#)
+ (cons #{id 2146}# #{var-ids 2120}#)
+ (cons #{var 2149}# #{vars 2121}#)
+ (cons (cons #{er 2129}#
+ (#{wrap 427}#
+ #{e 2133}#
+ #{w 2134}#
+ #{mod 2136}#))
+ #{vals 2122}#)
+ (cons (cons 'lexical #{var 2149}#)
+ #{bindings 2123}#)))))
+ (if (memv #{type 2131}# '(define-syntax-form))
+ (let ((#{id 2154}#
+ (#{wrap 427}#
+ #{value 2132}#
+ #{w 2134}#
+ #{mod 2136}#))
+ (#{label 2155}# (#{gen-label 371}#)))
+ (begin
+ (#{extend-ribcage! 403}#
+ #{ribcage 2101}#
+ #{id 2154}#
+ #{label 2155}#)
+ (#{parse 2116}#
+ (cdr #{body 2117}#)
+ (cons #{id 2154}# #{ids 2118}#)
+ (cons #{label 2155}# #{labels 2119}#)
+ #{var-ids 2120}#
+ #{vars 2121}#
+ #{vals 2122}#
+ (cons (cons 'macro
+ (cons #{er 2129}#
+ (#{wrap 427}#
+ #{e 2133}#
+ #{w 2134}#
+ #{mod 2136}#)))
+ #{bindings 2123}#))))
+ (if (memv #{type 2131}# '(begin-form))
+ (let ((#{tmp 2159}#
+ ($sc-dispatch
+ #{e 2133}#
+ '(_ . each-any))))
+ (if #{tmp 2159}#
+ (@apply
+ (lambda (#{e1 2161}#)
+ (#{parse 2116}#
+ (letrec*
+ ((#{f 2164}#
+ (lambda (#{forms 2165}#)
+ (if (null? #{forms 2165}#)
+ (cdr #{body 2117}#)
+ (cons (cons #{er 2129}#
+ (#{wrap 427}#
+ (car
#{forms 2165}#)
+ #{w 2134}#
+ #{mod
2136}#))
+ (#{f 2164}#
+ (cdr #{forms
2165}#)))))))
+ (#{f 2164}# #{e1 2161}#))
+ #{ids 2118}#
+ #{labels 2119}#
+ #{var-ids 2120}#
+ #{vars 2121}#
+ #{vals 2122}#
+ #{bindings 2123}#))
+ #{tmp 2159}#)
+ (syntax-violation
+ #f
+ "source expression failed to match any
pattern"
+ #{e 2133}#)))
+ (if (memv #{type 2131}# '(local-syntax-form))
+ (#{chi-local-syntax 451}#
+ #{value 2132}#
+ #{e 2133}#
+ #{er 2129}#
+ #{w 2134}#
+ #{s 2135}#
+ #{mod 2136}#
+ (lambda (#{forms 2168}#
+ #{er 2169}#
+ #{w 2170}#
+ #{s 2171}#
+ #{mod 2172}#)
+ (#{parse 2116}#
+ (letrec*
+ ((#{f 2180}#
+ (lambda (#{forms 2181}#)
+ (if (null? #{forms 2181}#)
+ (cdr #{body 2117}#)
+ (cons (cons #{er 2169}#
+ (#{wrap 427}#
+ (car #{forms
2181}#)
+ #{w 2170}#
+ #{mod 2172}#))
+ (#{f 2180}#
+ (cdr #{forms
2181}#)))))))
+ (#{f 2180}# #{forms 2168}#))
+ #{ids 2118}#
+ #{labels 2119}#
+ #{var-ids 2120}#
+ #{vars 2121}#
+ #{vals 2122}#
+ #{bindings 2123}#)))
+ (if (null? #{ids 2118}#)
+ (#{build-sequence 303}#
+ #f
+ (map (lambda (#{x 2184}#)
+ (#{chi 441}#
+ (cdr #{x 2184}#)
+ (car #{x 2184}#)
+ '(())
+ #{mod 2136}#))
+ (cons (cons #{er 2129}#
+ (#{source-wrap 429}#
+ #{e 2133}#
+ #{w 2134}#
+ #{s 2135}#
+ #{mod 2136}#))
+ (cdr #{body 2117}#))))
+ (begin
+ (if (not (#{valid-bound-ids? 421}#
+ #{ids 2118}#))
+ (syntax-violation
+ #f
+ "invalid or duplicate identifier
in definition"
+ #{outer-form 2088}#))
+ (letrec*
+ ((#{loop 2191}#
+ (lambda (#{bs 2192}#
+ #{er-cache 2193}#
+ #{r-cache 2194}#)
+ (if (not (null? #{bs 2192}#))
+ (let ((#{b 2197}#
+ (car #{bs 2192}#)))
+ (if (eq? (car #{b 2197}#)
+ 'macro)
+ (let ((#{er 2200}#
+ (car (cdr #{b
2197}#))))
+ (let ((#{r-cache 2202}#
+ (if (eq? #{er
2200}#
+
#{er-cache 2193}#)
+ #{r-cache
2194}#
+
(#{macros-only-env 345}#
+ #{er
2200}#))))
+ (begin
+ (set-cdr!
+ #{b 2197}#
+
(#{eval-local-transformer 453}#
+ (#{chi 441}#
+ (cdr (cdr #{b
2197}#))
+ #{r-cache
2202}#
+ '(())
+ #{mod 2136}#)
+ #{mod 2136}#))
+ (#{loop 2191}#
+ (cdr #{bs 2192}#)
+ #{er 2200}#
+ #{r-cache
2202}#))))
+ (#{loop 2191}#
+ (cdr #{bs 2192}#)
+ #{er-cache 2193}#
+ #{r-cache 2194}#)))))))
+ (#{loop 2191}#
+ #{bindings 2123}#
+ #f
+ #f))
+ (set-cdr!
+ #{r 2099}#
+ (#{extend-env 341}#
+ #{labels 2119}#
+ #{bindings 2123}#
+ (cdr #{r 2099}#)))
+ (#{build-letrec 309}#
+ #f
+ #t
+ (reverse
+ (map syntax->datum
+ #{var-ids 2120}#))
+ (reverse #{vars 2121}#)
+ (map (lambda (#{x 2205}#)
+ (#{chi 441}#
+ (cdr #{x 2205}#)
+ (car #{x 2205}#)
+ '(())
+ #{mod 2136}#))
+ (reverse #{vals 2122}#))
+ (#{build-sequence 303}#
+ #f
+ (map (lambda (#{x 2209}#)
+ (#{chi 441}#
+ (cdr #{x 2209}#)
+ (car #{x 2209}#)
+ '(())
+ #{mod 2136}#))
+ (cons (cons #{er 2129}#
+ (#{source-wrap
429}#
+ #{e 2133}#
+ #{w 2134}#
+ #{s 2135}#
+ #{mod 2136}#))
+ (cdr #{body
2117}#))))))))))))))))))
+ (#{parse 2116}#
+ (map (lambda (#{x 2124}#)
+ (cons #{r 2099}#
+ (#{wrap 427}#
+ #{x 2124}#
+ #{w 2104}#
+ #{mod 2091}#)))
+ #{body 2087}#)
+ '()
+ '()
+ '()
+ '()
+ '()
+ '())))))))
+ (#{chi-local-syntax 451}#
+ (lambda (#{rec? 2212}#
+ #{e 2213}#
+ #{r 2214}#
+ #{w 2215}#
+ #{s 2216}#
+ #{mod 2217}#
+ #{k 2218}#)
+ (let ((#{tmp 2227}#
+ ($sc-dispatch
+ #{e 2213}#
+ '(_ #(each (any any)) any . each-any))))
+ (if #{tmp 2227}#
+ (@apply
+ (lambda (#{id 2232}#
+ #{val 2233}#
+ #{e1 2234}#
+ #{e2 2235}#)
+ (if (not (#{valid-bound-ids? 421}# #{id 2232}#))
+ (syntax-violation
+ #f
+ "duplicate bound keyword"
+ #{e 2213}#)
+ (let ((#{labels 2240}#
+ (#{gen-labels 373}# #{id 2232}#)))
+ (let ((#{new-w 2242}#
+ (#{make-binding-wrap 405}#
+ #{id 2232}#
+ #{labels 2240}#
+ #{w 2215}#)))
+ (#{k 2218}#
+ (cons #{e1 2234}# #{e2 2235}#)
+ (#{extend-env 341}#
+ #{labels 2240}#
+ (let ((#{trans-r 2247}#
+ (#{macros-only-env 345}# #{r 2214}#)))
+ (begin
+ (if #{rec? 2212}# (if #f #f))
+ (map (lambda (#{x 2248}#)
+ (cons 'macro
+ (#{eval-local-transformer 453}#
+ (#{chi 441}#
+ #{x 2248}#
+ #{trans-r 2247}#
+ (if #{rec? 2212}#
+ #{new-w 2242}#
+ #{w 2215}#)
+ #{mod 2217}#)
+ #{mod 2217}#)))
+ #{val 2233}#)))
+ #{r 2214}#)
+ #{new-w 2242}#
+ #{s 2216}#
+ #{mod 2217}#)))))
+ #{tmp 2227}#)
+ (syntax-violation
+ #f
+ "bad local syntax definition"
+ (#{source-wrap 429}#
+ #{e 2213}#
+ #{w 2215}#
+ #{s 2216}#
+ #{mod 2217}#))))))
+ (#{eval-local-transformer 453}#
+ (lambda (#{expanded 2254}# #{mod 2255}#)
+ (let ((#{p 2259}#
+ (#{local-eval-hook 259}#
+ #{expanded 2254}#
+ #{mod 2255}#)))
+ (if (procedure? #{p 2259}#)
+ #{p 2259}#
+ (syntax-violation
+ #f
+ "nonprocedure transformer"
+ #{p 2259}#)))))
+ (#{chi-void 455}#
+ (lambda () (#{build-void 271}# #f)))
+ (#{ellipsis? 457}#
+ (lambda (#{x 2261}#)
+ (if (#{nonsymbol-id? 351}# #{x 2261}#)
+ (#{free-id=? 417}#
+ #{x 2261}#
+ '#(syntax-object
+ ...
+ ((top)
+ #(ribcage () () ())
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i2262"))
+ #(ribcage
+ (lambda-var-list
+ gen-var
+ strip
+ chi-lambda-case
+ lambda*-formals
+ chi-simple-lambda
+ lambda-formals
+ ellipsis?
+ chi-void
+ eval-local-transformer
+ chi-local-syntax
+ chi-body
+ chi-macro
+ chi-call
+ chi-expr
+ chi
+ syntax-type
+ chi-when-list
+ chi-install-global
+ chi-top-sequence
+ chi-sequence
+ source-wrap
+ wrap
+ bound-id-member?
+ distinct-bound-ids?
+ valid-bound-ids?
+ bound-id=?
+ free-id=?
+ id-var-name
+ same-marks?
+ join-marks
+ join-wraps
+ smart-append
+ make-binding-wrap
+ extend-ribcage!
+ make-empty-ribcage
+ new-mark
+ anti-mark
+ the-anti-mark
+ top-marked?
+ top-wrap
+ empty-wrap
+ set-ribcage-labels!
+ set-ribcage-marks!
+ set-ribcage-symnames!
+ ribcage-labels
+ ribcage-marks
+ ribcage-symnames
+ ribcage?
+ make-ribcage
+ gen-labels
+ gen-label
+ make-rename
+ rename-marks
+ rename-new
+ rename-old
+ subst-rename?
+ wrap-subst
+ wrap-marks
+ make-wrap
+ id-sym-name&marks
+ id-sym-name
+ id?
+ nonsymbol-id?
+ global-extend
+ lookup
+ macros-only-env
+ extend-var-env
+ extend-env
+ null-env
+ binding-value
+ binding-type
+ make-binding
+ arg-check
+ source-annotation
+ no-source
+ set-syntax-object-module!
+ set-syntax-object-wrap!
+ set-syntax-object-expression!
+ syntax-object-module
+ syntax-object-wrap
+ syntax-object-expression
+ syntax-object?
+ make-syntax-object
+ build-lexical-var
+ build-letrec
+ build-named-let
+ build-let
+ build-sequence
+ build-data
+ build-primref
+ build-primcall
+ build-lambda-case
+ build-case-lambda
+ build-simple-lambda
+ build-global-definition
+ build-global-assignment
+ build-global-reference
+ analyze-variable
+ build-lexical-assignment
+ build-lexical-reference
+ build-dynlet
+ build-conditional
+ build-call
+ build-void
+ maybe-name-value!
+ decorate-source
+ get-global-definition-hook
+ put-global-definition-hook
+ gensym-hook
+ local-eval-hook
+ top-level-eval-hook
+ fx<
+ fx=
+ fx-
+ fx+
+ set-lambda-meta!
+ lambda-meta
+ lambda?
+ make-dynlet
+ make-letrec
+ make-let
+ make-lambda-case
+ make-lambda
+ make-seq
+ make-primcall
+ make-call
+ make-conditional
+ make-toplevel-define
+ make-toplevel-set
+ make-toplevel-ref
+ make-module-set
+ make-module-ref
+ make-lexical-set
+ make-lexical-ref
+ make-primitive-ref
+ make-const
+ make-void)
+ ((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ ("i470"
+ "i468"
+ "i466"
+ "i464"
+ "i462"
+ "i460"
+ "i458"
+ "i456"
+ "i454"
+ "i452"
+ "i450"
+ "i448"
+ "i446"
+ "i444"
+ "i442"
+ "i440"
+ "i438"
+ "i436"
+ "i434"
+ "i432"
+ "i430"
+ "i428"
+ "i426"
+ "i424"
+ "i422"
+ "i420"
+ "i418"
+ "i416"
+ "i414"
+ "i412"
+ "i410"
+ "i408"
+ "i406"
+ "i404"
+ "i402"
+ "i401"
+ "i399"
+ "i396"
+ "i395"
+ "i394"
+ "i392"
+ "i391"
+ "i389"
+ "i387"
+ "i385"
+ "i383"
+ "i381"
+ "i379"
+ "i377"
+ "i375"
+ "i372"
+ "i370"
+ "i369"
+ "i367"
+ "i365"
+ "i363"
+ "i361"
+ "i360"
+ "i359"
+ "i358"
+ "i356"
+ "i355"
+ "i352"
+ "i350"
+ "i348"
+ "i346"
+ "i344"
+ "i342"
+ "i340"
+ "i339"
+ "i338"
+ "i336"
+ "i334"
+ "i333"
+ "i330"
+ "i329"
+ "i327"
+ "i325"
+ "i323"
+ "i321"
+ "i319"
+ "i317"
+ "i315"
+ "i313"
+ "i311"
+ "i308"
+ "i306"
+ "i304"
+ "i302"
+ "i300"
+ "i298"
+ "i296"
+ "i294"
+ "i292"
+ "i290"
+ "i288"
+ "i286"
+ "i284"
+ "i282"
+ "i280"
+ "i278"
+ "i276"
+ "i274"
+ "i272"
+ "i270"
+ "i268"
+ "i266"
+ "i264"
+ "i262"
+ "i261"
+ "i258"
+ "i256"
+ "i255"
+ "i254"
+ "i253"
+ "i252"
+ "i250"
+ "i248"
+ "i246"
+ "i243"
+ "i241"
+ "i239"
+ "i237"
+ "i235"
+ "i233"
+ "i231"
+ "i229"
+ "i227"
+ "i225"
+ "i223"
+ "i221"
+ "i219"
+ "i217"
+ "i215"
+ "i213"
+ "i211"
+ "i209"
+ "i207"))
+ #(ribcage
+ (define-structure
+ define-expansion-accessors
+ define-expansion-constructors)
+ ((top) (top) (top))
+ ("i45" "i44" "i43")))
+ (hygiene guile)))
+ #f)))
+ (#{lambda-formals 459}#
+ (lambda (#{orig-args 2265}#)
+ (letrec*
+ ((#{req 2268}#
+ (lambda (#{args 2271}# #{rreq 2272}#)
+ (let ((#{tmp 2276}# ($sc-dispatch #{args 2271}# '())))
+ (if #{tmp 2276}#
+ (@apply
+ (lambda ()
+ (#{check 2270}# (reverse #{rreq 2272}#) #f))
+ #{tmp 2276}#)
+ (let ((#{tmp 2277}#
+ ($sc-dispatch #{args 2271}# '(any . any))))
+ (if (if #{tmp 2277}#
+ (@apply
+ (lambda (#{a 2280}# #{b 2281}#)
+ (#{id? 353}# #{a 2280}#))
+ #{tmp 2277}#)
+ #f)
+ (@apply
+ (lambda (#{a 2284}# #{b 2285}#)
+ (#{req 2268}#
+ #{b 2285}#
+ (cons #{a 2284}# #{rreq 2272}#)))
+ #{tmp 2277}#)
+ (let ((#{tmp 2286}# (list #{args 2271}#)))
+ (if (if #{tmp 2286}#
+ (@apply
+ (lambda (#{r 2288}#) (#{id? 353}# #{r 2288}#))
+ #{tmp 2286}#)
+ #f)
+ (@apply
+ (lambda (#{r 2290}#)
+ (#{check 2270}#
+ (reverse #{rreq 2272}#)
+ #{r 2290}#))
+ #{tmp 2286}#)
+ (syntax-violation
+ 'lambda
+ "invalid argument list"
+ #{orig-args 2265}#
+ #{args 2271}#)))))))))
+ (#{check 2270}#
+ (lambda (#{req 2293}# #{rest 2294}#)
+ (if (#{distinct-bound-ids? 423}#
+ (if #{rest 2294}#
+ (cons #{rest 2294}# #{req 2293}#)
+ #{req 2293}#))
+ (values #{req 2293}# #f #{rest 2294}# #f)
+ (syntax-violation
+ 'lambda
+ "duplicate identifier in argument list"
+ #{orig-args 2265}#)))))
+ (#{req 2268}# #{orig-args 2265}# '()))))
+ (#{lambda*-formals 463}#
+ (lambda (#{orig-args 2327}#)
+ (letrec*
+ ((#{req 2330}#
+ (lambda (#{args 2339}# #{rreq 2340}#)
+ (let ((#{tmp 2344}# ($sc-dispatch #{args 2339}# '())))
+ (if #{tmp 2344}#
+ (@apply
+ (lambda ()
+ (#{check 2338}#
+ (reverse #{rreq 2340}#)
+ '()
+ #f
+ '()))
+ #{tmp 2344}#)
+ (let ((#{tmp 2345}#
+ ($sc-dispatch #{args 2339}# '(any . any))))
+ (if (if #{tmp 2345}#
+ (@apply
+ (lambda (#{a 2348}# #{b 2349}#)
+ (#{id? 353}# #{a 2348}#))
+ #{tmp 2345}#)
+ #f)
+ (@apply
+ (lambda (#{a 2352}# #{b 2353}#)
+ (#{req 2330}#
+ #{b 2353}#
+ (cons #{a 2352}# #{rreq 2340}#)))
+ #{tmp 2345}#)
+ (let ((#{tmp 2354}#
+ ($sc-dispatch #{args 2339}# '(any . any))))
+ (if (if #{tmp 2354}#
+ (@apply
+ (lambda (#{a 2357}# #{b 2358}#)
+ (eq? (syntax->datum #{a 2357}#) #:optional))
+ #{tmp 2354}#)
+ #f)
+ (@apply
+ (lambda (#{a 2361}# #{b 2362}#)
+ (#{opt 2332}#
+ #{b 2362}#
+ (reverse #{rreq 2340}#)
+ '()))
+ #{tmp 2354}#)
+ (let ((#{tmp 2363}#
+ ($sc-dispatch #{args 2339}# '(any . any))))
+ (if (if #{tmp 2363}#
+ (@apply
+ (lambda (#{a 2366}# #{b 2367}#)
+ (eq? (syntax->datum #{a 2366}#) #:key))
+ #{tmp 2363}#)
+ #f)
+ (@apply
+ (lambda (#{a 2370}# #{b 2371}#)
+ (#{key 2334}#
+ #{b 2371}#
+ (reverse #{rreq 2340}#)
+ '()
+ '()))
+ #{tmp 2363}#)
+ (let ((#{tmp 2372}#
+ ($sc-dispatch #{args 2339}# '(any any))))
+ (if (if #{tmp 2372}#
+ (@apply
+ (lambda (#{a 2375}# #{b 2376}#)
+ (eq? (syntax->datum #{a 2375}#)
+ #:rest))
+ #{tmp 2372}#)
+ #f)
+ (@apply
+ (lambda (#{a 2379}# #{b 2380}#)
+ (#{rest 2336}#
+ #{b 2380}#
+ (reverse #{rreq 2340}#)
+ '()
+ '()))
+ #{tmp 2372}#)
+ (let ((#{tmp 2381}# (list #{args 2339}#)))
+ (if (if #{tmp 2381}#
+ (@apply
+ (lambda (#{r 2383}#)
+ (#{id? 353}# #{r 2383}#))
+ #{tmp 2381}#)
+ #f)
+ (@apply
+ (lambda (#{r 2385}#)
+ (#{rest 2336}#
+ #{r 2385}#
+ (reverse #{rreq 2340}#)
+ '()
+ '()))
+ #{tmp 2381}#)
+ (syntax-violation
+ 'lambda*
+ "invalid argument list"
+ #{orig-args 2327}#
+ #{args 2339}#)))))))))))))))
+ (#{opt 2332}#
+ (lambda (#{args 2388}# #{req 2389}# #{ropt 2390}#)
+ (let ((#{tmp 2395}# ($sc-dispatch #{args 2388}# '())))
+ (if #{tmp 2395}#
+ (@apply
+ (lambda ()
+ (#{check 2338}#
+ #{req 2389}#
+ (reverse #{ropt 2390}#)
+ #f
+ '()))
+ #{tmp 2395}#)
+ (let ((#{tmp 2396}#
+ ($sc-dispatch #{args 2388}# '(any . any))))
+ (if (if #{tmp 2396}#
+ (@apply
+ (lambda (#{a 2399}# #{b 2400}#)
+ (#{id? 353}# #{a 2399}#))
+ #{tmp 2396}#)
+ #f)
+ (@apply
+ (lambda (#{a 2403}# #{b 2404}#)
+ (#{opt 2332}#
+ #{b 2404}#
+ #{req 2389}#
+ (cons (cons #{a 2403}#
+ '(#(syntax-object
+ #f
+ ((top)
+ #(ribcage
+ #(a b)
+ #((top) (top))
+ #("i2401" "i2402"))
+ #(ribcage () () ())
+ #(ribcage
+ #(args req ropt)
+ #((top) (top) (top))
+ #("i2391" "i2392" "i2393"))
+ #(ribcage
+ (check rest key opt req)
+ ((top) (top) (top) (top) (top))
+ ("i2337"
+ "i2335"
+ "i2333"
+ "i2331"
+ "i2329"))
+ #(ribcage
+ #(orig-args)
+ #((top))
+ #("i2328"))
+ #(ribcage
+ (lambda-var-list
+ gen-var
+ strip
+ chi-lambda-case
+ lambda*-formals
+ chi-simple-lambda
+ lambda-formals
+ ellipsis?
+ chi-void
+ eval-local-transformer
+ chi-local-syntax
+ chi-body
+ chi-macro
+ chi-call
+ chi-expr
+ chi
+ syntax-type
+ chi-when-list
+ chi-install-global
+ chi-top-sequence
+ chi-sequence
+ source-wrap
+ wrap
+ bound-id-member?
+ distinct-bound-ids?
+ valid-bound-ids?
+ bound-id=?
+ free-id=?
+ id-var-name
+ same-marks?
+ join-marks
+ join-wraps
+ smart-append
+ make-binding-wrap
+ extend-ribcage!
+ make-empty-ribcage
+ new-mark
+ anti-mark
+ the-anti-mark
+ top-marked?
+ top-wrap
+ empty-wrap
+ set-ribcage-labels!
+ set-ribcage-marks!
+ set-ribcage-symnames!
+ ribcage-labels
+ ribcage-marks
+ ribcage-symnames
+ ribcage?
+ make-ribcage
+ gen-labels
+ gen-label
+ make-rename
+ rename-marks
+ rename-new
+ rename-old
+ subst-rename?
+ wrap-subst
+ wrap-marks
+ make-wrap
+ id-sym-name&marks
+ id-sym-name
+ id?
+ nonsymbol-id?
+ global-extend
+ lookup
+ macros-only-env
+ extend-var-env
+ extend-env
+ null-env
+ binding-value
+ binding-type
+ make-binding
+ arg-check
+ source-annotation
+ no-source
+ set-syntax-object-module!
+ set-syntax-object-wrap!
+ set-syntax-object-expression!
+ syntax-object-module
+ syntax-object-wrap
+ syntax-object-expression
+ syntax-object?
+ make-syntax-object
+ build-lexical-var
+ build-letrec
+ build-named-let
+ build-let
+ build-sequence
+ build-data
+ build-primref
+ build-primcall
+ build-lambda-case
+ build-case-lambda
+ build-simple-lambda
+ build-global-definition
+ build-global-assignment
+ build-global-reference
+ analyze-variable
+ build-lexical-assignment
+ build-lexical-reference
+ build-dynlet
+ build-conditional
+ build-call
+ build-void
+ maybe-name-value!
+ decorate-source
+ get-global-definition-hook
+ put-global-definition-hook
+ gensym-hook
+ local-eval-hook
+ top-level-eval-hook
+ fx<
+ fx=
+ fx-
+ fx+
+ set-lambda-meta!
+ lambda-meta
+ lambda?
+ make-dynlet
+ make-letrec
+ make-let
+ make-lambda-case
+ make-lambda
+ make-seq
+ make-primcall
+ make-call
+ make-conditional
+ make-toplevel-define
+ make-toplevel-set
+ make-toplevel-ref
+ make-module-set
+ make-module-ref
+ make-lexical-set
+ make-lexical-ref
+ make-primitive-ref
+ make-const
+ make-void)
+ ((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ ("i470"
+ "i468"
+ "i466"
+ "i464"
+ "i462"
+ "i460"
+ "i458"
+ "i456"
+ "i454"
+ "i452"
+ "i450"
+ "i448"
+ "i446"
+ "i444"
+ "i442"
+ "i440"
+ "i438"
+ "i436"
+ "i434"
+ "i432"
+ "i430"
+ "i428"
+ "i426"
+ "i424"
+ "i422"
+ "i420"
+ "i418"
+ "i416"
+ "i414"
+ "i412"
+ "i410"
+ "i408"
+ "i406"
+ "i404"
+ "i402"
+ "i401"
+ "i399"
+ "i396"
+ "i395"
+ "i394"
+ "i392"
+ "i391"
+ "i389"
+ "i387"
+ "i385"
+ "i383"
+ "i381"
+ "i379"
+ "i377"
+ "i375"
+ "i372"
+ "i370"
+ "i369"
+ "i367"
+ "i365"
+ "i363"
+ "i361"
+ "i360"
+ "i359"
+ "i358"
+ "i356"
+ "i355"
+ "i352"
+ "i350"
+ "i348"
+ "i346"
+ "i344"
+ "i342"
+ "i340"
+ "i339"
+ "i338"
+ "i336"
+ "i334"
+ "i333"
+ "i330"
+ "i329"
+ "i327"
+ "i325"
+ "i323"
+ "i321"
+ "i319"
+ "i317"
+ "i315"
+ "i313"
+ "i311"
+ "i308"
+ "i306"
+ "i304"
+ "i302"
+ "i300"
+ "i298"
+ "i296"
+ "i294"
+ "i292"
+ "i290"
+ "i288"
+ "i286"
+ "i284"
+ "i282"
+ "i280"
+ "i278"
+ "i276"
+ "i274"
+ "i272"
+ "i270"
+ "i268"
+ "i266"
+ "i264"
+ "i262"
+ "i261"
+ "i258"
+ "i256"
+ "i255"
+ "i254"
+ "i253"
+ "i252"
+ "i250"
+ "i248"
+ "i246"
+ "i243"
+ "i241"
+ "i239"
+ "i237"
+ "i235"
+ "i233"
+ "i231"
+ "i229"
+ "i227"
+ "i225"
+ "i223"
+ "i221"
+ "i219"
+ "i217"
+ "i215"
+ "i213"
+ "i211"
+ "i209"
+ "i207"))
+ #(ribcage
+ (define-structure
+ define-expansion-accessors
+ define-expansion-constructors)
+ ((top) (top) (top))
+ ("i45" "i44" "i43")))
+ (hygiene guile))))
+ #{ropt 2390}#)))
+ #{tmp 2396}#)
+ (let ((#{tmp 2405}#
+ ($sc-dispatch #{args 2388}# '((any any) . any))))
+ (if (if #{tmp 2405}#
+ (@apply
+ (lambda (#{a 2409}# #{init 2410}# #{b 2411}#)
+ (#{id? 353}# #{a 2409}#))
+ #{tmp 2405}#)
+ #f)
+ (@apply
+ (lambda (#{a 2415}# #{init 2416}# #{b 2417}#)
+ (#{opt 2332}#
+ #{b 2417}#
+ #{req 2389}#
+ (cons (list #{a 2415}# #{init 2416}#)
+ #{ropt 2390}#)))
+ #{tmp 2405}#)
+ (let ((#{tmp 2418}#
+ ($sc-dispatch #{args 2388}# '(any . any))))
+ (if (if #{tmp 2418}#
+ (@apply
+ (lambda (#{a 2421}# #{b 2422}#)
+ (eq? (syntax->datum #{a 2421}#) #:key))
+ #{tmp 2418}#)
+ #f)
+ (@apply
+ (lambda (#{a 2425}# #{b 2426}#)
+ (#{key 2334}#
+ #{b 2426}#
+ #{req 2389}#
+ (reverse #{ropt 2390}#)
+ '()))
+ #{tmp 2418}#)
+ (let ((#{tmp 2427}#
+ ($sc-dispatch #{args 2388}# '(any any))))
+ (if (if #{tmp 2427}#
+ (@apply
+ (lambda (#{a 2430}# #{b 2431}#)
+ (eq? (syntax->datum #{a 2430}#)
+ #:rest))
+ #{tmp 2427}#)
+ #f)
+ (@apply
+ (lambda (#{a 2434}# #{b 2435}#)
+ (#{rest 2336}#
+ #{b 2435}#
+ #{req 2389}#
+ (reverse #{ropt 2390}#)
+ '()))
+ #{tmp 2427}#)
+ (let ((#{tmp 2436}# (list #{args 2388}#)))
+ (if (if #{tmp 2436}#
+ (@apply
+ (lambda (#{r 2438}#)
+ (#{id? 353}# #{r 2438}#))
+ #{tmp 2436}#)
+ #f)
+ (@apply
+ (lambda (#{r 2440}#)
+ (#{rest 2336}#
+ #{r 2440}#
+ #{req 2389}#
+ (reverse #{ropt 2390}#)
+ '()))
+ #{tmp 2436}#)
+ (syntax-violation
+ 'lambda*
+ "invalid optional argument list"
+ #{orig-args 2327}#
+ #{args 2388}#)))))))))))))))
+ (#{key 2334}#
+ (lambda (#{args 2443}#
+ #{req 2444}#
+ #{opt 2445}#
+ #{rkey 2446}#)
+ (let ((#{tmp 2452}# ($sc-dispatch #{args 2443}# '())))
+ (if #{tmp 2452}#
+ (@apply
+ (lambda ()
+ (#{check 2338}#
+ #{req 2444}#
+ #{opt 2445}#
+ #f
+ (cons #f (reverse #{rkey 2446}#))))
+ #{tmp 2452}#)
+ (let ((#{tmp 2453}#
+ ($sc-dispatch #{args 2443}# '(any . any))))
+ (if (if #{tmp 2453}#
+ (@apply
+ (lambda (#{a 2456}# #{b 2457}#)
+ (#{id? 353}# #{a 2456}#))
+ #{tmp 2453}#)
+ #f)
+ (@apply
+ (lambda (#{a 2460}# #{b 2461}#)
+ (let ((#{tmp 2463}#
+ (symbol->keyword
+ (syntax->datum #{a 2460}#))))
+ (#{key 2334}#
+ #{b 2461}#
+ #{req 2444}#
+ #{opt 2445}#
+ (cons (cons #{tmp 2463}#
+ (cons #{a 2460}#
+ '(#(syntax-object
+ #f
+ ((top)
+ #(ribcage () () ())
+ #(ribcage
+ #(k)
+ #((top))
+ #("i2464"))
+ #(ribcage
+ #(a b)
+ #((top) (top))
+ #("i2458" "i2459"))
+ #(ribcage () () ())
+ #(ribcage
+ #(args req opt rkey)
+ #((top)
+ (top)
+ (top)
+ (top))
+ #("i2447"
+ "i2448"
+ "i2449"
+ "i2450"))
+ #(ribcage
+ (check rest key opt req)
+ ((top)
+ (top)
+ (top)
+ (top)
+ (top))
+ ("i2337"
+ "i2335"
+ "i2333"
+ "i2331"
+ "i2329"))
+ #(ribcage
+ #(orig-args)
+ #((top))
+ #("i2328"))
+ #(ribcage
+ (lambda-var-list
+ gen-var
+ strip
+ chi-lambda-case
+ lambda*-formals
+ chi-simple-lambda
+ lambda-formals
+ ellipsis?
+ chi-void
+ eval-local-transformer
+ chi-local-syntax
+ chi-body
+ chi-macro
+ chi-call
+ chi-expr
+ chi
+ syntax-type
+ chi-when-list
+ chi-install-global
+ chi-top-sequence
+ chi-sequence
+ source-wrap
+ wrap
+ bound-id-member?
+ distinct-bound-ids?
+ valid-bound-ids?
+ bound-id=?
+ free-id=?
+ id-var-name
+ same-marks?
+ join-marks
+ join-wraps
+ smart-append
+ make-binding-wrap
+ extend-ribcage!
+ make-empty-ribcage
+ new-mark
+ anti-mark
+ the-anti-mark
+ top-marked?
+ top-wrap
+ empty-wrap
+ set-ribcage-labels!
+ set-ribcage-marks!
+ set-ribcage-symnames!
+ ribcage-labels
+ ribcage-marks
+ ribcage-symnames
+ ribcage?
+ make-ribcage
+ gen-labels
+ gen-label
+ make-rename
+ rename-marks
+ rename-new
+ rename-old
+ subst-rename?
+ wrap-subst
+ wrap-marks
+ make-wrap
+ id-sym-name&marks
+ id-sym-name
+ id?
+ nonsymbol-id?
+ global-extend
+ lookup
+ macros-only-env
+ extend-var-env
+ extend-env
+ null-env
+ binding-value
+ binding-type
+ make-binding
+ arg-check
+ source-annotation
+ no-source
+
set-syntax-object-module!
+
set-syntax-object-wrap!
+
set-syntax-object-expression!
+ syntax-object-module
+ syntax-object-wrap
+
syntax-object-expression
+ syntax-object?
+ make-syntax-object
+ build-lexical-var
+ build-letrec
+ build-named-let
+ build-let
+ build-sequence
+ build-data
+ build-primref
+ build-primcall
+ build-lambda-case
+ build-case-lambda
+ build-simple-lambda
+
build-global-definition
+
build-global-assignment
+ build-global-reference
+ analyze-variable
+
build-lexical-assignment
+
build-lexical-reference
+ build-dynlet
+ build-conditional
+ build-call
+ build-void
+ maybe-name-value!
+ decorate-source
+
get-global-definition-hook
+
put-global-definition-hook
+ gensym-hook
+ local-eval-hook
+ top-level-eval-hook
+ fx<
+ fx=
+ fx-
+ fx+
+ set-lambda-meta!
+ lambda-meta
+ lambda?
+ make-dynlet
+ make-letrec
+ make-let
+ make-lambda-case
+ make-lambda
+ make-seq
+ make-primcall
+ make-call
+ make-conditional
+ make-toplevel-define
+ make-toplevel-set
+ make-toplevel-ref
+ make-module-set
+ make-module-ref
+ make-lexical-set
+ make-lexical-ref
+ make-primitive-ref
+ make-const
+ make-void)
+ ((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ ("i470"
+ "i468"
+ "i466"
+ "i464"
+ "i462"
+ "i460"
+ "i458"
+ "i456"
+ "i454"
+ "i452"
+ "i450"
+ "i448"
+ "i446"
+ "i444"
+ "i442"
+ "i440"
+ "i438"
+ "i436"
+ "i434"
+ "i432"
+ "i430"
+ "i428"
+ "i426"
+ "i424"
+ "i422"
+ "i420"
+ "i418"
+ "i416"
+ "i414"
+ "i412"
+ "i410"
+ "i408"
+ "i406"
+ "i404"
+ "i402"
+ "i401"
+ "i399"
+ "i396"
+ "i395"
+ "i394"
+ "i392"
+ "i391"
+ "i389"
+ "i387"
+ "i385"
+ "i383"
+ "i381"
+ "i379"
+ "i377"
+ "i375"
+ "i372"
+ "i370"
+ "i369"
+ "i367"
+ "i365"
+ "i363"
+ "i361"
+ "i360"
+ "i359"
+ "i358"
+ "i356"
+ "i355"
+ "i352"
+ "i350"
+ "i348"
+ "i346"
+ "i344"
+ "i342"
+ "i340"
+ "i339"
+ "i338"
+ "i336"
+ "i334"
+ "i333"
+ "i330"
+ "i329"
+ "i327"
+ "i325"
+ "i323"
+ "i321"
+ "i319"
+ "i317"
+ "i315"
+ "i313"
+ "i311"
+ "i308"
+ "i306"
+ "i304"
+ "i302"
+ "i300"
+ "i298"
+ "i296"
+ "i294"
+ "i292"
+ "i290"
+ "i288"
+ "i286"
+ "i284"
+ "i282"
+ "i280"
+ "i278"
+ "i276"
+ "i274"
+ "i272"
+ "i270"
+ "i268"
+ "i266"
+ "i264"
+ "i262"
+ "i261"
+ "i258"
+ "i256"
+ "i255"
+ "i254"
+ "i253"
+ "i252"
+ "i250"
+ "i248"
+ "i246"
+ "i243"
+ "i241"
+ "i239"
+ "i237"
+ "i235"
+ "i233"
+ "i231"
+ "i229"
+ "i227"
+ "i225"
+ "i223"
+ "i221"
+ "i219"
+ "i217"
+ "i215"
+ "i213"
+ "i211"
+ "i209"
+ "i207"))
+ #(ribcage
+ (define-structure
+
define-expansion-accessors
+
define-expansion-constructors)
+ ((top) (top) (top))
+ ("i45" "i44" "i43")))
+ (hygiene guile)))))
+ #{rkey 2446}#))))
+ #{tmp 2453}#)
+ (let ((#{tmp 2466}#
+ ($sc-dispatch #{args 2443}# '((any any) . any))))
+ (if (if #{tmp 2466}#
+ (@apply
+ (lambda (#{a 2470}# #{init 2471}# #{b 2472}#)
+ (#{id? 353}# #{a 2470}#))
+ #{tmp 2466}#)
+ #f)
+ (@apply
+ (lambda (#{a 2476}# #{init 2477}# #{b 2478}#)
+ (let ((#{tmp 2480}#
+ (symbol->keyword
+ (syntax->datum #{a 2476}#))))
+ (#{key 2334}#
+ #{b 2478}#
+ #{req 2444}#
+ #{opt 2445}#
+ (cons (list #{tmp 2480}#
+ #{a 2476}#
+ #{init 2477}#)
+ #{rkey 2446}#))))
+ #{tmp 2466}#)
+ (let ((#{tmp 2483}#
+ ($sc-dispatch
+ #{args 2443}#
+ '((any any any) . any))))
+ (if (if #{tmp 2483}#
+ (@apply
+ (lambda (#{a 2488}#
+ #{init 2489}#
+ #{k 2490}#
+ #{b 2491}#)
+ (if (#{id? 353}# #{a 2488}#)
+ (keyword? (syntax->datum #{k 2490}#))
+ #f))
+ #{tmp 2483}#)
+ #f)
+ (@apply
+ (lambda (#{a 2498}#
+ #{init 2499}#
+ #{k 2500}#
+ #{b 2501}#)
+ (#{key 2334}#
+ #{b 2501}#
+ #{req 2444}#
+ #{opt 2445}#
+ (cons (list #{k 2500}#
+ #{a 2498}#
+ #{init 2499}#)
+ #{rkey 2446}#)))
+ #{tmp 2483}#)
+ (let ((#{tmp 2502}#
+ ($sc-dispatch #{args 2443}# '(any))))
+ (if (if #{tmp 2502}#
+ (@apply
+ (lambda (#{aok 2504}#)
+ (eq? (syntax->datum #{aok 2504}#)
+ #:allow-other-keys))
+ #{tmp 2502}#)
+ #f)
+ (@apply
+ (lambda (#{aok 2506}#)
+ (#{check 2338}#
+ #{req 2444}#
+ #{opt 2445}#
+ #f
+ (cons #t (reverse #{rkey 2446}#))))
+ #{tmp 2502}#)
+ (let ((#{tmp 2507}#
+ ($sc-dispatch
+ #{args 2443}#
+ '(any any any))))
+ (if (if #{tmp 2507}#
+ (@apply
+ (lambda (#{aok 2511}#
+ #{a 2512}#
+ #{b 2513}#)
+ (if (eq? (syntax->datum
+ #{aok 2511}#)
+ #:allow-other-keys)
+ (eq? (syntax->datum #{a 2512}#)
+ #:rest)
+ #f))
+ #{tmp 2507}#)
+ #f)
+ (@apply
+ (lambda (#{aok 2519}#
+ #{a 2520}#
+ #{b 2521}#)
+ (#{rest 2336}#
+ #{b 2521}#
+ #{req 2444}#
+ #{opt 2445}#
+ (cons #t (reverse #{rkey 2446}#))))
+ #{tmp 2507}#)
+ (let ((#{tmp 2522}#
+ ($sc-dispatch
+ #{args 2443}#
+ '(any . any))))
+ (if (if #{tmp 2522}#
+ (@apply
+ (lambda (#{aok 2525}#
+ #{r 2526}#)
+ (if (eq? (syntax->datum
+ #{aok 2525}#)
+ #:allow-other-keys)
+ (#{id? 353}# #{r 2526}#)
+ #f))
+ #{tmp 2522}#)
+ #f)
+ (@apply
+ (lambda (#{aok 2531}# #{r 2532}#)
+ (#{rest 2336}#
+ #{r 2532}#
+ #{req 2444}#
+ #{opt 2445}#
+ (cons #t
+ (reverse
+ #{rkey 2446}#))))
+ #{tmp 2522}#)
+ (let ((#{tmp 2533}#
+ ($sc-dispatch
+ #{args 2443}#
+ '(any any))))
+ (if (if #{tmp 2533}#
+ (@apply
+ (lambda (#{a 2536}#
+ #{b 2537}#)
+ (eq? (syntax->datum
+ #{a 2536}#)
+ #:rest))
+ #{tmp 2533}#)
+ #f)
+ (@apply
+ (lambda (#{a 2540}# #{b 2541}#)
+ (#{rest 2336}#
+ #{b 2541}#
+ #{req 2444}#
+ #{opt 2445}#
+ (cons #f
+ (reverse
+ #{rkey 2446}#))))
+ #{tmp 2533}#)
+ (let ((#{tmp 2542}#
+ (list #{args 2443}#)))
+ (if (if #{tmp 2542}#
+ (@apply
+ (lambda (#{r 2544}#)
+ (#{id? 353}#
+ #{r 2544}#))
+ #{tmp 2542}#)
+ #f)
+ (@apply
+ (lambda (#{r 2546}#)
+ (#{rest 2336}#
+ #{r 2546}#
+ #{req 2444}#
+ #{opt 2445}#
+ (cons #f
+ (reverse
+ #{rkey
2446}#))))
+ #{tmp 2542}#)
+ (syntax-violation
+ 'lambda*
+ "invalid keyword argument
list"
+ #{orig-args 2327}#
+ #{args
2443}#)))))))))))))))))))))
+ (#{rest 2336}#
+ (lambda (#{args 2549}#
+ #{req 2550}#
+ #{opt 2551}#
+ #{kw 2552}#)
+ (let ((#{tmp 2558}# (list #{args 2549}#)))
+ (if (if #{tmp 2558}#
+ (@apply
+ (lambda (#{r 2560}#) (#{id? 353}# #{r 2560}#))
+ #{tmp 2558}#)
+ #f)
+ (@apply
+ (lambda (#{r 2562}#)
+ (#{check 2338}#
+ #{req 2550}#
+ #{opt 2551}#
+ #{r 2562}#
+ #{kw 2552}#))
+ #{tmp 2558}#)
+ (syntax-violation
+ 'lambda*
+ "invalid rest argument"
+ #{orig-args 2327}#
+ #{args 2549}#)))))
+ (#{check 2338}#
+ (lambda (#{req 2565}#
+ #{opt 2566}#
+ #{rest 2567}#
+ #{kw 2568}#)
+ (if (#{distinct-bound-ids? 423}#
+ (append
+ #{req 2565}#
+ (map car #{opt 2566}#)
+ (if #{rest 2567}# (list #{rest 2567}#) '())
+ (if (pair? #{kw 2568}#)
+ (map cadr (cdr #{kw 2568}#))
+ '())))
+ (values
+ #{req 2565}#
+ #{opt 2566}#
+ #{rest 2567}#
+ #{kw 2568}#)
+ (syntax-violation
+ 'lambda*
+ "duplicate identifier in argument list"
+ #{orig-args 2327}#)))))
+ (#{req 2330}# #{orig-args 2327}# '()))))
+ (#{chi-lambda-case 465}#
+ (lambda (#{e 2576}#
+ #{r 2577}#
+ #{w 2578}#
+ #{s 2579}#
+ #{mod 2580}#
+ #{get-formals 2581}#
+ #{clauses 2582}#)
+ (letrec*
+ ((#{expand-opt 2593}#
+ (lambda (#{req 2616}#
+ #{opt 2617}#
+ #{rest 2618}#
+ #{kw 2619}#
+ #{body 2620}#
+ #{vars 2621}#
+ #{r* 2622}#
+ #{w* 2623}#
+ #{out 2624}#
+ #{inits 2625}#)
+ (if (pair? #{opt 2617}#)
+ (let ((#{tmp 2638}# (car #{opt 2617}#)))
+ (let ((#{tmp 2639}#
+ ($sc-dispatch #{tmp 2638}# '(any any))))
+ (if #{tmp 2639}#
+ (@apply
+ (lambda (#{id 2642}# #{i 2643}#)
+ (let ((#{v 2646}# (#{gen-var 469}# #{id 2642}#)))
+ (let ((#{l 2648}#
+ (#{gen-labels 373}# (list #{v 2646}#))))
+ (let ((#{r** 2650}#
+ (#{extend-var-env 343}#
+ #{l 2648}#
+ (list #{v 2646}#)
+ #{r* 2622}#)))
+ (let ((#{w** 2652}#
+ (#{make-binding-wrap 405}#
+ (list #{id 2642}#)
+ #{l 2648}#
+ #{w* 2623}#)))
+ (#{expand-opt 2593}#
+ #{req 2616}#
+ (cdr #{opt 2617}#)
+ #{rest 2618}#
+ #{kw 2619}#
+ #{body 2620}#
+ (cons #{v 2646}# #{vars 2621}#)
+ #{r** 2650}#
+ #{w** 2652}#
+ (cons (syntax->datum #{id 2642}#)
+ #{out 2624}#)
+ (cons (#{chi 441}#
+ #{i 2643}#
+ #{r* 2622}#
+ #{w* 2623}#
+ #{mod 2580}#)
+ #{inits 2625}#)))))))
+ #{tmp 2639}#)
+ (syntax-violation
+ #f
+ "source expression failed to match any pattern"
+ #{tmp 2638}#))))
+ (if #{rest 2618}#
+ (let ((#{v 2657}# (#{gen-var 469}# #{rest 2618}#)))
+ (let ((#{l 2659}#
+ (#{gen-labels 373}# (list #{v 2657}#))))
+ (let ((#{r* 2661}#
+ (#{extend-var-env 343}#
+ #{l 2659}#
+ (list #{v 2657}#)
+ #{r* 2622}#)))
+ (let ((#{w* 2663}#
+ (#{make-binding-wrap 405}#
+ (list #{rest 2618}#)
+ #{l 2659}#
+ #{w* 2623}#)))
+ (#{expand-kw 2595}#
+ #{req 2616}#
+ (if (pair? #{out 2624}#)
+ (reverse #{out 2624}#)
+ #f)
+ (syntax->datum #{rest 2618}#)
+ (if (pair? #{kw 2619}#)
+ (cdr #{kw 2619}#)
+ #{kw 2619}#)
+ #{body 2620}#
+ (cons #{v 2657}# #{vars 2621}#)
+ #{r* 2661}#
+ #{w* 2663}#
+ (if (pair? #{kw 2619}#) (car #{kw 2619}#) #f)
+ '()
+ #{inits 2625}#)))))
+ (#{expand-kw 2595}#
+ #{req 2616}#
+ (if (pair? #{out 2624}#)
+ (reverse #{out 2624}#)
+ #f)
+ #f
+ (if (pair? #{kw 2619}#)
+ (cdr #{kw 2619}#)
+ #{kw 2619}#)
+ #{body 2620}#
+ #{vars 2621}#
+ #{r* 2622}#
+ #{w* 2623}#
+ (if (pair? #{kw 2619}#) (car #{kw 2619}#) #f)
+ '()
+ #{inits 2625}#)))))
+ (#{expand-kw 2595}#
+ (lambda (#{req 2665}#
+ #{opt 2666}#
+ #{rest 2667}#
+ #{kw 2668}#
+ #{body 2669}#
+ #{vars 2670}#
+ #{r* 2671}#
+ #{w* 2672}#
+ #{aok 2673}#
+ #{out 2674}#
+ #{inits 2675}#)
+ (if (pair? #{kw 2668}#)
+ (let ((#{tmp 2689}# (car #{kw 2668}#)))
+ (let ((#{tmp 2690}#
+ ($sc-dispatch #{tmp 2689}# '(any any any))))
+ (if #{tmp 2690}#
+ (@apply
+ (lambda (#{k 2694}# #{id 2695}# #{i 2696}#)
+ (let ((#{v 2699}# (#{gen-var 469}# #{id 2695}#)))
+ (let ((#{l 2701}#
+ (#{gen-labels 373}# (list #{v 2699}#))))
+ (let ((#{r** 2703}#
+ (#{extend-var-env 343}#
+ #{l 2701}#
+ (list #{v 2699}#)
+ #{r* 2671}#)))
+ (let ((#{w** 2705}#
+ (#{make-binding-wrap 405}#
+ (list #{id 2695}#)
+ #{l 2701}#
+ #{w* 2672}#)))
+ (#{expand-kw 2595}#
+ #{req 2665}#
+ #{opt 2666}#
+ #{rest 2667}#
+ (cdr #{kw 2668}#)
+ #{body 2669}#
+ (cons #{v 2699}# #{vars 2670}#)
+ #{r** 2703}#
+ #{w** 2705}#
+ #{aok 2673}#
+ (cons (list (syntax->datum #{k 2694}#)
+ (syntax->datum #{id 2695}#)
+ #{v 2699}#)
+ #{out 2674}#)
+ (cons (#{chi 441}#
+ #{i 2696}#
+ #{r* 2671}#
+ #{w* 2672}#
+ #{mod 2580}#)
+ #{inits 2675}#)))))))
+ #{tmp 2690}#)
+ (syntax-violation
+ #f
+ "source expression failed to match any pattern"
+ #{tmp 2689}#))))
+ (#{expand-body 2597}#
+ #{req 2665}#
+ #{opt 2666}#
+ #{rest 2667}#
+ (if (if #{aok 2673}#
+ #{aok 2673}#
+ (pair? #{out 2674}#))
+ (cons #{aok 2673}# (reverse #{out 2674}#))
+ #f)
+ #{body 2669}#
+ (reverse #{vars 2670}#)
+ #{r* 2671}#
+ #{w* 2672}#
+ (reverse #{inits 2675}#)
+ '()))))
+ (#{expand-body 2597}#
+ (lambda (#{req 2711}#
+ #{opt 2712}#
+ #{rest 2713}#
+ #{kw 2714}#
+ #{body 2715}#
+ #{vars 2716}#
+ #{r* 2717}#
+ #{w* 2718}#
+ #{inits 2719}#
+ #{meta 2720}#)
+ (let ((#{tmp 2732}#
+ ($sc-dispatch
+ #{body 2715}#
+ '(any any . each-any))))
+ (if (if #{tmp 2732}#
+ (@apply
+ (lambda (#{docstring 2736}# #{e1 2737}# #{e2 2738}#)
+ (string? (syntax->datum #{docstring 2736}#)))
+ #{tmp 2732}#)
+ #f)
+ (@apply
+ (lambda (#{docstring 2742}# #{e1 2743}# #{e2 2744}#)
+ (#{expand-body 2597}#
+ #{req 2711}#
+ #{opt 2712}#
+ #{rest 2713}#
+ #{kw 2714}#
+ (cons #{e1 2743}# #{e2 2744}#)
+ #{vars 2716}#
+ #{r* 2717}#
+ #{w* 2718}#
+ #{inits 2719}#
+ (append
+ #{meta 2720}#
+ (list (cons 'documentation
+ (syntax->datum #{docstring 2742}#))))))
+ #{tmp 2732}#)
+ (let ((#{tmp 2747}#
+ ($sc-dispatch
+ #{body 2715}#
+ '(#(vector #(each (any . any))) any . each-any))))
+ (if #{tmp 2747}#
+ (@apply
+ (lambda (#{k 2752}# #{v 2753}# #{e1 2754}# #{e2 2755}#)
+ (#{expand-body 2597}#
+ #{req 2711}#
+ #{opt 2712}#
+ #{rest 2713}#
+ #{kw 2714}#
+ (cons #{e1 2754}# #{e2 2755}#)
+ #{vars 2716}#
+ #{r* 2717}#
+ #{w* 2718}#
+ #{inits 2719}#
+ (append
+ #{meta 2720}#
+ (syntax->datum
+ (map cons #{k 2752}# #{v 2753}#)))))
+ #{tmp 2747}#)
+ (let ((#{tmp 2759}#
+ ($sc-dispatch #{body 2715}# '(any . each-any))))
+ (if #{tmp 2759}#
+ (@apply
+ (lambda (#{e1 2762}# #{e2 2763}#)
+ (values
+ #{meta 2720}#
+ #{req 2711}#
+ #{opt 2712}#
+ #{rest 2713}#
+ #{kw 2714}#
+ #{inits 2719}#
+ #{vars 2716}#
+ (#{chi-body 449}#
+ (cons #{e1 2762}# #{e2 2763}#)
+ (#{source-wrap 429}#
+ #{e 2576}#
+ #{w 2578}#
+ #{s 2579}#
+ #{mod 2580}#)
+ #{r* 2717}#
+ #{w* 2718}#
+ #{mod 2580}#)))
+ #{tmp 2759}#)
+ (syntax-violation
+ #f
+ "source expression failed to match any pattern"
+ #{body 2715}#))))))))))
+ (let ((#{tmp 2766}#
+ ($sc-dispatch #{clauses 2582}# '())))
+ (if #{tmp 2766}#
+ (@apply (lambda () (values '() #f)) #{tmp 2766}#)
+ (let ((#{tmp 2767}#
+ ($sc-dispatch
+ #{clauses 2582}#
+ '((any any . each-any)
+ .
+ #(each (any any . each-any))))))
+ (if #{tmp 2767}#
+ (@apply
+ (lambda (#{args 2774}#
+ #{e1 2775}#
+ #{e2 2776}#
+ #{args* 2777}#
+ #{e1* 2778}#
+ #{e2* 2779}#)
+ (call-with-values
+ (lambda () (#{get-formals 2581}# #{args 2774}#))
+ (lambda (#{req 2780}#
+ #{opt 2781}#
+ #{rest 2782}#
+ #{kw 2783}#)
+ (call-with-values
+ (lambda ()
+ (let ((#{body 5051}#
+ (cons #{e1 2775}# #{e2 2776}#)))
+ (let ((#{vars 5052}#
+ (map #{gen-var 469}# #{req 2780}#))
+ (#{labels 5053}#
+ (#{gen-labels 373}# #{req 2780}#)))
+ (let ((#{r* 5054}#
+ (#{extend-var-env 343}#
+ #{labels 5053}#
+ #{vars 5052}#
+ #{r 2577}#))
+ (#{w* 5055}#
+ (#{make-binding-wrap 405}#
+ #{req 2780}#
+ #{labels 5053}#
+ #{w 2578}#)))
+ (#{expand-opt 2593}#
+ (map syntax->datum #{req 2780}#)
+ #{opt 2781}#
+ #{rest 2782}#
+ #{kw 2783}#
+ #{body 5051}#
+ (reverse #{vars 5052}#)
+ #{r* 5054}#
+ #{w* 5055}#
+ '()
+ '())))))
+ (lambda (#{meta 2789}#
+ #{req 2790}#
+ #{opt 2791}#
+ #{rest 2792}#
+ #{kw 2793}#
+ #{inits 2794}#
+ #{vars 2795}#
+ #{body 2796}#)
+ (call-with-values
+ (lambda ()
+ (#{chi-lambda-case 465}#
+ #{e 2576}#
+ #{r 2577}#
+ #{w 2578}#
+ #{s 2579}#
+ #{mod 2580}#
+ #{get-formals 2581}#
+ (map (lambda (#{tmp 2807}#
+ #{tmp 2806}#
+ #{tmp 2805}#)
+ (cons #{tmp 2805}#
+ (cons #{tmp 2806}#
+ #{tmp 2807}#)))
+ #{e2* 2779}#
+ #{e1* 2778}#
+ #{args* 2777}#)))
+ (lambda (#{meta* 2809}# #{else* 2810}#)
+ (values
+ (append #{meta 2789}# #{meta* 2809}#)
+ (#{build-lambda-case 295}#
+ #{s 2579}#
+ #{req 2790}#
+ #{opt 2791}#
+ #{rest 2792}#
+ #{kw 2793}#
+ #{inits 2794}#
+ #{vars 2795}#
+ #{body 2796}#
+ #{else* 2810}#)))))))))
+ #{tmp 2767}#)
+ (syntax-violation
+ #f
+ "source expression failed to match any pattern"
+ #{clauses 2582}#))))))))
+ (#{strip 467}#
+ (lambda (#{x 2813}# #{w 2814}#)
+ (if (memq 'top (car #{w 2814}#))
+ #{x 2813}#
+ (letrec*
+ ((#{f 2821}#
+ (lambda (#{x 2822}#)
+ (if (#{syntax-object? 316}# #{x 2822}#)
+ (#{strip 467}#
+ (#{syntax-object-expression 318}# #{x 2822}#)
+ (#{syntax-object-wrap 320}# #{x 2822}#))
+ (if (pair? #{x 2822}#)
+ (let ((#{a 2829}# (#{f 2821}# (car #{x 2822}#)))
+ (#{d 2830}# (#{f 2821}# (cdr #{x 2822}#))))
+ (if (if (eq? #{a 2829}# (car #{x 2822}#))
+ (eq? #{d 2830}# (cdr #{x 2822}#))
+ #f)
+ #{x 2822}#
+ (cons #{a 2829}# #{d 2830}#)))
+ (if (vector? #{x 2822}#)
+ (let ((#{old 2836}# (vector->list #{x 2822}#)))
+ (let ((#{new 2838}# (map #{f 2821}# #{old 2836}#)))
+ (letrec*
+ ((#{lp 2842}#
+ (lambda (#{l1 2843}# #{l2 2844}#)
+ (if (null? #{l1 2843}#)
+ #{x 2822}#
+ (if (eq? (car #{l1 2843}#)
+ (car #{l2 2844}#))
+ (#{lp 2842}#
+ (cdr #{l1 2843}#)
+ (cdr #{l2 2844}#))
+ (list->vector #{new 2838}#))))))
+ (#{lp 2842}# #{old 2836}# #{new 2838}#))))
+ #{x 2822}#))))))
+ (#{f 2821}# #{x 2813}#)))))
+ (#{gen-var 469}#
+ (lambda (#{id 2846}#)
+ (let ((#{id 2849}#
+ (if (#{syntax-object? 316}# #{id 2846}#)
+ (#{syntax-object-expression 318}# #{id 2846}#)
+ #{id 2846}#)))
+ (gensym
+ (string-append (symbol->string #{id 2849}#) " ")))))
+ (#{lambda-var-list 471}#
+ (lambda (#{vars 2851}#)
+ (letrec*
+ ((#{lvl 2857}#
+ (lambda (#{vars 2858}# #{ls 2859}# #{w 2860}#)
+ (if (pair? #{vars 2858}#)
+ (#{lvl 2857}#
+ (cdr #{vars 2858}#)
+ (cons (#{wrap 427}# (car #{vars 2858}#) #{w 2860}# #f)
+ #{ls 2859}#)
+ #{w 2860}#)
+ (if (#{id? 353}# #{vars 2858}#)
+ (cons (#{wrap 427}# #{vars 2858}# #{w 2860}# #f)
+ #{ls 2859}#)
+ (if (null? #{vars 2858}#)
+ #{ls 2859}#
+ (if (#{syntax-object? 316}# #{vars 2858}#)
+ (#{lvl 2857}#
+ (#{syntax-object-expression 318}# #{vars 2858}#)
+ #{ls 2859}#
+ (#{join-wraps 409}#
+ #{w 2860}#
+ (#{syntax-object-wrap 320}# #{vars 2858}#)))
+ (cons #{vars 2858}# #{ls 2859}#))))))))
+ (#{lvl 2857}# #{vars 2851}# '() '(()))))))
+ (begin
+ (lambda (#{src 789}# #{name 790}#)
+ (make-struct/no-tail
+ (vector-ref %expanded-vtables 2)
+ #{src 789}#
+ #{name 790}#))
+ (module-define!
+ (current-module)
+ 'letrec-syntax
+ (make-syntax-transformer
+ 'letrec-syntax
+ 'local-syntax
+ #t))
+ (module-define!
+ (current-module)
+ 'let-syntax
+ (make-syntax-transformer
+ 'let-syntax
+ 'local-syntax
+ #f))
+ (#{global-extend 349}#
+ 'core
+ 'fluid-let-syntax
+ (lambda (#{e 2871}#
+ #{r 2872}#
+ #{w 2873}#
+ #{s 2874}#
+ #{mod 2875}#)
+ (let ((#{tmp 2882}#
+ ($sc-dispatch
+ #{e 2871}#
+ '(_ #(each (any any)) any . each-any))))
+ (if (if #{tmp 2882}#
+ (@apply
+ (lambda (#{var 2887}#
+ #{val 2888}#
+ #{e1 2889}#
+ #{e2 2890}#)
+ (#{valid-bound-ids? 421}# #{var 2887}#))
+ #{tmp 2882}#)
+ #f)
+ (@apply
+ (lambda (#{var 2896}#
+ #{val 2897}#
+ #{e1 2898}#
+ #{e2 2899}#)
+ (let ((#{names 2901}#
+ (map (lambda (#{x 2902}#)
+ (#{id-var-name 415}# #{x 2902}# #{w 2873}#))
+ #{var 2896}#)))
+ (begin
+ (for-each
+ (lambda (#{id 2905}# #{n 2906}#)
+ (let ((#{atom-key 2911}#
+ (car (let ((#{t 5313}#
+ (assq #{n 2906}# #{r 2872}#)))
+ (if #{t 5313}#
+ (cdr #{t 5313}#)
+ (if (symbol? #{n 2906}#)
+ (let ((#{t 5314}#
+
(#{get-global-definition-hook 265}#
+ #{n 2906}#
+ #{mod 2875}#)))
+ (if #{t 5314}#
+ #{t 5314}#
+ '(global)))
+ '(displaced-lexical)))))))
+ (if (memv #{atom-key 2911}# '(displaced-lexical))
+ (syntax-violation
+ 'fluid-let-syntax
+ "identifier out of context"
+ #{e 2871}#
+ (let ((#{x 5324}#
+ (begin
+ (if (if (pair? #{id 2905}#)
+ #{s 2874}#
+ #f)
+ (set-source-properties!
+ #{id 2905}#
+ #{s 2874}#))
+ #{id 2905}#)))
+ (if (if (null? (car #{w 2873}#))
+ (null? (cdr #{w 2873}#))
+ #f)
+ #{x 5324}#
+ (if (if (vector? #{x 5324}#)
+ (if (= (vector-length #{x 5324}#) 4)
+ (eq? (vector-ref #{x 5324}# 0)
+ 'syntax-object)
+ #f)
+ #f)
+ (let ((#{expression 5336}#
+ (vector-ref #{x 5324}# 1))
+ (#{wrap 5337}#
+ (let ((#{w2 5345}#
+ (vector-ref #{x 5324}# 2)))
+ (let ((#{m1 5346}#
+ (car #{w 2873}#))
+ (#{s1 5347}#
+ (cdr #{w 2873}#)))
+ (if (null? #{m1 5346}#)
+ (if (null? #{s1 5347}#)
+ #{w2 5345}#
+ (cons (car #{w2 5345}#)
+ (let ((#{m2 5354}#
+ (cdr #{w2
5345}#)))
+ (if (null? #{m2
5354}#)
+ #{s1 5347}#
+ (append
+ #{s1 5347}#
+ #{m2
5354}#)))))
+ (cons (let ((#{m2 5358}#
+ (car #{w2
5345}#)))
+ (if (null? #{m2
5358}#)
+ #{m1 5346}#
+ (append
+ #{m1 5346}#
+ #{m2 5358}#)))
+ (let ((#{m2 5362}#
+ (cdr #{w2
5345}#)))
+ (if (null? #{m2
5362}#)
+ #{s1 5347}#
+ (append
+ #{s1 5347}#
+ #{m2
5362}#))))))))
+ (#{module 5338}#
+ (vector-ref #{x 5324}# 3)))
+ (vector
+ 'syntax-object
+ #{expression 5336}#
+ #{wrap 5337}#
+ #{module 5338}#))
+ (if (null? #{x 5324}#)
+ #{x 5324}#
+ (vector
+ 'syntax-object
+ #{x 5324}#
+ #{w 2873}#
+ #{mod 2875}#)))))))))
+ #{var 2896}#
+ #{names 2901}#)
+ (#{chi-body 449}#
+ (cons #{e1 2898}# #{e2 2899}#)
+ (let ((#{x 5380}#
+ (begin
+ (if (if (pair? #{e 2871}#) #{s 2874}# #f)
+ (set-source-properties!
+ #{e 2871}#
+ #{s 2874}#))
+ #{e 2871}#)))
+ (if (if (null? (car #{w 2873}#))
+ (null? (cdr #{w 2873}#))
+ #f)
+ #{x 5380}#
+ (if (if (vector? #{x 5380}#)
+ (if (= (vector-length #{x 5380}#) 4)
+ (eq? (vector-ref #{x 5380}# 0)
+ 'syntax-object)
+ #f)
+ #f)
+ (let ((#{expression 5392}#
+ (vector-ref #{x 5380}# 1))
+ (#{wrap 5393}#
+ (let ((#{w2 5401}#
+ (vector-ref #{x 5380}# 2)))
+ (let ((#{m1 5402}# (car #{w 2873}#))
+ (#{s1 5403}# (cdr #{w 2873}#)))
+ (if (null? #{m1 5402}#)
+ (if (null? #{s1 5403}#)
+ #{w2 5401}#
+ (cons (car #{w2 5401}#)
+ (let ((#{m2 5410}#
+ (cdr #{w2 5401}#)))
+ (if (null? #{m2 5410}#)
+ #{s1 5403}#
+ (append
+ #{s1 5403}#
+ #{m2 5410}#)))))
+ (cons (let ((#{m2 5414}#
+ (car #{w2 5401}#)))
+ (if (null? #{m2 5414}#)
+ #{m1 5402}#
+ (append
+ #{m1 5402}#
+ #{m2 5414}#)))
+ (let ((#{m2 5418}#
+ (cdr #{w2 5401}#)))
+ (if (null? #{m2 5418}#)
+ #{s1 5403}#
+ (append
+ #{s1 5403}#
+ #{m2 5418}#))))))))
+ (#{module 5394}# (vector-ref #{x 5380}# 3)))
+ (vector
+ 'syntax-object
+ #{expression 5392}#
+ #{wrap 5393}#
+ #{module 5394}#))
+ (if (null? #{x 5380}#)
+ #{x 5380}#
+ (vector
+ 'syntax-object
+ #{x 5380}#
+ #{w 2873}#
+ #{mod 2875}#)))))
+ (#{extend-env 341}#
+ #{names 2901}#
+ (let ((#{trans-r 2917}#
+ (#{macros-only-env 345}# #{r 2872}#)))
+ (map (lambda (#{x 2918}#)
+ (cons 'macro
+ (#{eval-local-transformer 453}#
+ (#{chi 441}#
+ #{x 2918}#
+ #{trans-r 2917}#
+ #{w 2873}#
+ #{mod 2875}#)
+ #{mod 2875}#)))
+ #{val 2897}#))
+ #{r 2872}#)
+ #{w 2873}#
+ #{mod 2875}#))))
+ #{tmp 2882}#)
+ (syntax-violation
+ 'fluid-let-syntax
+ "bad syntax"
+ (let ((#{x 5641}#
+ (begin
+ (if (if (pair? #{e 2871}#) #{s 2874}# #f)
+ (set-source-properties! #{e 2871}# #{s 2874}#))
+ #{e 2871}#)))
+ (if (if (null? (car #{w 2873}#))
+ (null? (cdr #{w 2873}#))
+ #f)
+ #{x 5641}#
+ (if (if (vector? #{x 5641}#)
+ (if (= (vector-length #{x 5641}#) 4)
+ (eq? (vector-ref #{x 5641}# 0) 'syntax-object)
+ #f)
+ #f)
+ (let ((#{expression 5653}# (vector-ref #{x 5641}# 1))
+ (#{wrap 5654}#
+ (let ((#{w2 5662}# (vector-ref #{x 5641}# 2)))
+ (let ((#{m1 5663}# (car #{w 2873}#))
+ (#{s1 5664}# (cdr #{w 2873}#)))
+ (if (null? #{m1 5663}#)
+ (if (null? #{s1 5664}#)
+ #{w2 5662}#
+ (cons (car #{w2 5662}#)
+ (let ((#{m2 5671}#
+ (cdr #{w2 5662}#)))
+ (if (null? #{m2 5671}#)
+ #{s1 5664}#
+ (append
+ #{s1 5664}#
+ #{m2 5671}#)))))
+ (cons (let ((#{m2 5675}# (car #{w2 5662}#)))
+ (if (null? #{m2 5675}#)
+ #{m1 5663}#
+ (append #{m1 5663}# #{m2 5675}#)))
+ (let ((#{m2 5679}# (cdr #{w2 5662}#)))
+ (if (null? #{m2 5679}#)
+ #{s1 5664}#
+ (append
+ #{s1 5664}#
+ #{m2 5679}#))))))))
+ (#{module 5655}# (vector-ref #{x 5641}# 3)))
+ (vector
+ 'syntax-object
+ #{expression 5653}#
+ #{wrap 5654}#
+ #{module 5655}#))
+ (if (null? #{x 5641}#)
+ #{x 5641}#
+ (vector
+ 'syntax-object
+ #{x 5641}#
+ #{w 2873}#
+ #{mod 2875}#))))))))))
+ (module-define!
+ (current-module)
+ 'quote
+ (make-syntax-transformer
+ 'quote
+ 'core
+ (lambda (#{e 2924}#
+ #{r 2925}#
+ #{w 2926}#
+ #{s 2927}#
+ #{mod 2928}#)
+ (let ((#{tmp 2935}# ($sc-dispatch #{e 2924}# '(_ any))))
+ (if #{tmp 2935}#
+ (@apply
+ (lambda (#{e 2937}#)
+ (let ((#{exp 5696}#
+ (#{strip 467}# #{e 2937}# #{w 2926}#)))
+ (make-struct/no-tail
+ (vector-ref %expanded-vtables 1)
+ #{s 2927}#
+ #{exp 5696}#)))
+ #{tmp 2935}#)
+ (syntax-violation
+ 'quote
+ "bad syntax"
+ (let ((#{x 5710}#
+ (begin
+ (if (if (pair? #{e 2924}#) #{s 2927}# #f)
+ (set-source-properties! #{e 2924}# #{s 2927}#))
+ #{e 2924}#)))
+ (if (if (null? (car #{w 2926}#))
+ (null? (cdr #{w 2926}#))
+ #f)
+ #{x 5710}#
+ (if (if (vector? #{x 5710}#)
+ (if (= (vector-length #{x 5710}#) 4)
+ (eq? (vector-ref #{x 5710}# 0) 'syntax-object)
+ #f)
+ #f)
+ (let ((#{expression 5722}# (vector-ref #{x 5710}# 1))
+ (#{wrap 5723}#
+ (let ((#{w2 5731}# (vector-ref #{x 5710}# 2)))
+ (let ((#{m1 5732}# (car #{w 2926}#))
+ (#{s1 5733}# (cdr #{w 2926}#)))
+ (if (null? #{m1 5732}#)
+ (if (null? #{s1 5733}#)
+ #{w2 5731}#
+ (cons (car #{w2 5731}#)
+ (let ((#{m2 5740}#
+ (cdr #{w2 5731}#)))
+ (if (null? #{m2 5740}#)
+ #{s1 5733}#
+ (append
+ #{s1 5733}#
+ #{m2 5740}#)))))
+ (cons (let ((#{m2 5744}#
+ (car #{w2 5731}#)))
+ (if (null? #{m2 5744}#)
+ #{m1 5732}#
+ (append
+ #{m1 5732}#
+ #{m2 5744}#)))
+ (let ((#{m2 5748}#
+ (cdr #{w2 5731}#)))
+ (if (null? #{m2 5748}#)
+ #{s1 5733}#
+ (append
+ #{s1 5733}#
+ #{m2 5748}#))))))))
+ (#{module 5724}# (vector-ref #{x 5710}# 3)))
+ (vector
+ 'syntax-object
+ #{expression 5722}#
+ #{wrap 5723}#
+ #{module 5724}#))
+ (if (null? #{x 5710}#)
+ #{x 5710}#
+ (vector
+ 'syntax-object
+ #{x 5710}#
+ #{w 2926}#
+ #{mod 2928}#)))))))))))
+ (#{global-extend 349}#
+ 'core
+ 'syntax
+ (letrec*
+ ((#{gen-syntax 2941}#
+ (lambda (#{src 2956}#
+ #{e 2957}#
+ #{r 2958}#
+ #{maps 2959}#
+ #{ellipsis? 2960}#
+ #{mod 2961}#)
+ (if (if (symbol? #{e 2957}#)
+ #t
+ (if (if (vector? #{e 2957}#)
+ (if (= (vector-length #{e 2957}#) 4)
+ (eq? (vector-ref #{e 2957}# 0) 'syntax-object)
+ #f)
+ #f)
+ (symbol? (vector-ref #{e 2957}# 1))
+ #f))
+ (let ((#{label 2969}#
+ (#{id-var-name 415}# #{e 2957}# '(()))))
+ (let ((#{b 2972}#
+ (let ((#{t 5811}# (assq #{label 2969}# #{r 2958}#)))
+ (if #{t 5811}#
+ (cdr #{t 5811}#)
+ (if (symbol? #{label 2969}#)
+ (let ((#{t 5812}#
+ (#{get-global-definition-hook 265}#
+ #{label 2969}#
+ #{mod 2961}#)))
+ (if #{t 5812}# #{t 5812}# '(global)))
+ '(displaced-lexical))))))
+ (if (eq? (car #{b 2972}#) 'syntax)
+ (call-with-values
+ (lambda ()
+ (let ((#{var.lev 2975}# (cdr #{b 2972}#)))
+ (#{gen-ref 2943}#
+ #{src 2956}#
+ (car #{var.lev 2975}#)
+ (cdr #{var.lev 2975}#)
+ #{maps 2959}#)))
+ (lambda (#{var 2977}# #{maps 2978}#)
+ (values (list 'ref #{var 2977}#) #{maps 2978}#)))
+ (if (#{ellipsis? 2960}# #{e 2957}#)
+ (syntax-violation
+ 'syntax
+ "misplaced ellipsis"
+ #{src 2956}#)
+ (values (list 'quote #{e 2957}#) #{maps 2959}#)))))
+ (let ((#{tmp 2984}#
+ ($sc-dispatch #{e 2957}# '(any any))))
+ (if (if #{tmp 2984}#
+ (@apply
+ (lambda (#{dots 2987}# #{e 2988}#)
+ (#{ellipsis? 2960}# #{dots 2987}#))
+ #{tmp 2984}#)
+ #f)
+ (@apply
+ (lambda (#{dots 2991}# #{e 2992}#)
+ (#{gen-syntax 2941}#
+ #{src 2956}#
+ #{e 2992}#
+ #{r 2958}#
+ #{maps 2959}#
+ (lambda (#{x 2993}#) #f)
+ #{mod 2961}#))
+ #{tmp 2984}#)
+ (let ((#{tmp 2995}#
+ ($sc-dispatch #{e 2957}# '(any any . any))))
+ (if (if #{tmp 2995}#
+ (@apply
+ (lambda (#{x 2999}# #{dots 3000}# #{y 3001}#)
+ (#{ellipsis? 2960}# #{dots 3000}#))
+ #{tmp 2995}#)
+ #f)
+ (@apply
+ (lambda (#{x 3005}# #{dots 3006}# #{y 3007}#)
+ (letrec*
+ ((#{f 3011}#
+ (lambda (#{y 3012}# #{k 3013}#)
+ (let ((#{tmp 3021}#
+ ($sc-dispatch
+ #{y 3012}#
+ '(any . any))))
+ (if (if #{tmp 3021}#
+ (@apply
+ (lambda (#{dots 3024}# #{y 3025}#)
+ (#{ellipsis? 2960}#
+ #{dots 3024}#))
+ #{tmp 3021}#)
+ #f)
+ (@apply
+ (lambda (#{dots 3028}# #{y 3029}#)
+ (#{f 3011}#
+ #{y 3029}#
+ (lambda (#{maps 3030}#)
+ (call-with-values
+ (lambda ()
+ (#{k 3013}#
+ (cons '() #{maps 3030}#)))
+ (lambda (#{x 3032}#
+ #{maps 3033}#)
+ (if (null? (car #{maps
3033}#))
+ (syntax-violation
+ 'syntax
+ "extra ellipsis"
+ #{src 2956}#)
+ (values
+ (#{gen-mappend 2945}#
+ #{x 3032}#
+ (car #{maps 3033}#))
+ (cdr #{maps
3033}#))))))))
+ #{tmp 3021}#)
+ (call-with-values
+ (lambda ()
+ (#{gen-syntax 2941}#
+ #{src 2956}#
+ #{y 3012}#
+ #{r 2958}#
+ #{maps 2959}#
+ #{ellipsis? 2960}#
+ #{mod 2961}#))
+ (lambda (#{y 3038}# #{maps 3039}#)
+ (call-with-values
+ (lambda ()
+ (#{k 3013}# #{maps 3039}#))
+ (lambda (#{x 3042}# #{maps 3043}#)
+ (values
+ (#{gen-append 2951}#
+ #{x 3042}#
+ #{y 3038}#)
+ #{maps 3043}#))))))))))
+ (#{f 3011}#
+ #{y 3007}#
+ (lambda (#{maps 3014}#)
+ (call-with-values
+ (lambda ()
+ (#{gen-syntax 2941}#
+ #{src 2956}#
+ #{x 3005}#
+ #{r 2958}#
+ (cons '() #{maps 3014}#)
+ #{ellipsis? 2960}#
+ #{mod 2961}#))
+ (lambda (#{x 3016}# #{maps 3017}#)
+ (if (null? (car #{maps 3017}#))
+ (syntax-violation
+ 'syntax
+ "extra ellipsis"
+ #{src 2956}#)
+ (values
+ (#{gen-map 2947}#
+ #{x 3016}#
+ (car #{maps 3017}#))
+ (cdr #{maps 3017}#)))))))))
+ #{tmp 2995}#)
+ (let ((#{tmp 3046}#
+ ($sc-dispatch #{e 2957}# '(any . any))))
+ (if #{tmp 3046}#
+ (@apply
+ (lambda (#{x 3049}# #{y 3050}#)
+ (call-with-values
+ (lambda ()
+ (#{gen-syntax 2941}#
+ #{src 2956}#
+ #{x 3049}#
+ #{r 2958}#
+ #{maps 2959}#
+ #{ellipsis? 2960}#
+ #{mod 2961}#))
+ (lambda (#{x 3051}# #{maps 3052}#)
+ (call-with-values
+ (lambda ()
+ (#{gen-syntax 2941}#
+ #{src 2956}#
+ #{y 3050}#
+ #{r 2958}#
+ #{maps 3052}#
+ #{ellipsis? 2960}#
+ #{mod 2961}#))
+ (lambda (#{y 3055}# #{maps 3056}#)
+ (values
+ (#{gen-cons 2949}#
+ #{x 3051}#
+ #{y 3055}#)
+ #{maps 3056}#))))))
+ #{tmp 3046}#)
+ (let ((#{tmp 3059}#
+ ($sc-dispatch
+ #{e 2957}#
+ '#(vector (any . each-any)))))
+ (if #{tmp 3059}#
+ (@apply
+ (lambda (#{e1 3062}# #{e2 3063}#)
+ (call-with-values
+ (lambda ()
+ (#{gen-syntax 2941}#
+ #{src 2956}#
+ (cons #{e1 3062}# #{e2 3063}#)
+ #{r 2958}#
+ #{maps 2959}#
+ #{ellipsis? 2960}#
+ #{mod 2961}#))
+ (lambda (#{e 3065}# #{maps 3066}#)
+ (values
+ (#{gen-vector 2953}# #{e 3065}#)
+ #{maps 3066}#))))
+ #{tmp 3059}#)
+ (values
+ (list 'quote #{e 2957}#)
+ #{maps 2959}#))))))))))))
+ (#{gen-ref 2943}#
+ (lambda (#{src 3072}#
+ #{var 3073}#
+ #{level 3074}#
+ #{maps 3075}#)
+ (if (= #{level 3074}# 0)
+ (values #{var 3073}# #{maps 3075}#)
+ (if (null? #{maps 3075}#)
+ (syntax-violation
+ 'syntax
+ "missing ellipsis"
+ #{src 3072}#)
+ (call-with-values
+ (lambda ()
+ (#{gen-ref 2943}#
+ #{src 3072}#
+ #{var 3073}#
+ (#{1-}# #{level 3074}#)
+ (cdr #{maps 3075}#)))
+ (lambda (#{outer-var 3082}# #{outer-maps 3083}#)
+ (let ((#{b 3087}#
+ (assq #{outer-var 3082}# (car #{maps 3075}#))))
+ (if #{b 3087}#
+ (values (cdr #{b 3087}#) #{maps 3075}#)
+ (let ((#{inner-var 3089}#
+ (gensym
+ (string-append (symbol->string 'tmp) " "))))
+ (values
+ #{inner-var 3089}#
+ (cons (cons (cons #{outer-var 3082}#
+ #{inner-var 3089}#)
+ (car #{maps 3075}#))
+ #{outer-maps 3083}#)))))))))))
+ (#{gen-mappend 2945}#
+ (lambda (#{e 3090}# #{map-env 3091}#)
+ (list 'apply
+ '(primitive append)
+ (#{gen-map 2947}# #{e 3090}# #{map-env 3091}#))))
+ (#{gen-map 2947}#
+ (lambda (#{e 3095}# #{map-env 3096}#)
+ (let ((#{formals 3101}# (map cdr #{map-env 3096}#))
+ (#{actuals 3102}#
+ (map (lambda (#{x 3103}#)
+ (list 'ref (car #{x 3103}#)))
+ #{map-env 3096}#)))
+ (if (eq? (car #{e 3095}#) 'ref)
+ (car #{actuals 3102}#)
+ (if (and-map
+ (lambda (#{x 3110}#)
+ (if (eq? (car #{x 3110}#) 'ref)
+ (memq (car (cdr #{x 3110}#)) #{formals 3101}#)
+ #f))
+ (cdr #{e 3095}#))
+ (cons 'map
+ (cons (list 'primitive (car #{e 3095}#))
+ (map (let ((#{r 3116}#
+ (map cons
+ #{formals 3101}#
+ #{actuals 3102}#)))
+ (lambda (#{x 3117}#)
+ (cdr (assq (car (cdr #{x 3117}#))
+ #{r 3116}#))))
+ (cdr #{e 3095}#))))
+ (cons 'map
+ (cons (list 'lambda #{formals 3101}# #{e 3095}#)
+ #{actuals 3102}#)))))))
+ (#{gen-cons 2949}#
+ (lambda (#{x 3121}# #{y 3122}#)
+ (let ((#{atom-key 3127}# (car #{y 3122}#)))
+ (if (memv #{atom-key 3127}# '(quote))
+ (if (eq? (car #{x 3121}#) 'quote)
+ (list 'quote
+ (cons (car (cdr #{x 3121}#))
+ (car (cdr #{y 3122}#))))
+ (if (eq? (car (cdr #{y 3122}#)) '())
+ (list 'list #{x 3121}#)
+ (list 'cons #{x 3121}# #{y 3122}#)))
+ (if (memv #{atom-key 3127}# '(list))
+ (cons 'list (cons #{x 3121}# (cdr #{y 3122}#)))
+ (list 'cons #{x 3121}# #{y 3122}#))))))
+ (#{gen-append 2951}#
+ (lambda (#{x 3136}# #{y 3137}#)
+ (if (equal? #{y 3137}# ''())
+ #{x 3136}#
+ (list 'append #{x 3136}# #{y 3137}#))))
+ (#{gen-vector 2953}#
+ (lambda (#{x 3141}#)
+ (if (eq? (car #{x 3141}#) 'list)
+ (cons 'vector (cdr #{x 3141}#))
+ (if (eq? (car #{x 3141}#) 'quote)
+ (list 'quote
+ (list->vector (car (cdr #{x 3141}#))))
+ (list 'list->vector #{x 3141}#)))))
+ (#{regen 2955}#
+ (lambda (#{x 3151}#)
+ (let ((#{atom-key 3155}# (car #{x 3151}#)))
+ (if (memv #{atom-key 3155}# '(ref))
+ (let ((#{name 5827}# (car (cdr #{x 3151}#)))
+ (#{var 5828}# (car (cdr #{x 3151}#))))
+ (make-struct/no-tail
+ (vector-ref %expanded-vtables 3)
+ #f
+ #{name 5827}#
+ #{var 5828}#))
+ (if (memv #{atom-key 3155}# '(primitive))
+ (let ((#{name 5836}# (car (cdr #{x 3151}#))))
+ (make-struct/no-tail
+ (vector-ref %expanded-vtables 2)
+ #f
+ #{name 5836}#))
+ (if (memv #{atom-key 3155}# '(quote))
+ (let ((#{exp 5844}# (car (cdr #{x 3151}#))))
+ (make-struct/no-tail
+ (vector-ref %expanded-vtables 1)
+ #f
+ #{exp 5844}#))
+ (if (memv #{atom-key 3155}# '(lambda))
+ (if (list? (car (cdr #{x 3151}#)))
+ (let ((#{req 5852}# (car (cdr #{x 3151}#)))
+ (#{vars 5854}# (car (cdr #{x 3151}#)))
+ (#{exp 5856}#
+ (#{regen 2955}#
+ (car (cdr (cdr #{x 3151}#))))))
+ (let ((#{body 5861}#
+ (make-struct/no-tail
+ (vector-ref %expanded-vtables 15)
+ #f
+ #{req 5852}#
+ #f
+ #f
+ #f
+ '()
+ #{vars 5854}#
+ #{exp 5856}#
+ #f)))
+ (make-struct/no-tail
+ (vector-ref %expanded-vtables 14)
+ #f
+ '()
+ #{body 5861}#)))
+ (error "how did we get here" #{x 3151}#))
+ (let ((#{name 5876}# (car #{x 3151}#))
+ (#{args 5877}#
+ (map #{regen 2955}# (cdr #{x 3151}#))))
+ (make-struct/no-tail
+ (vector-ref %expanded-vtables 12)
+ #f
+ #{name 5876}#
+ #{args 5877}#))))))))))
+ (lambda (#{e 3166}#
+ #{r 3167}#
+ #{w 3168}#
+ #{s 3169}#
+ #{mod 3170}#)
+ (let ((#{e 3177}#
+ (let ((#{x 5891}#
+ (begin
+ (if (if (pair? #{e 3166}#) #{s 3169}# #f)
+ (set-source-properties! #{e 3166}# #{s 3169}#))
+ #{e 3166}#)))
+ (if (if (null? (car #{w 3168}#))
+ (null? (cdr #{w 3168}#))
+ #f)
+ #{x 5891}#
+ (if (if (vector? #{x 5891}#)
+ (if (= (vector-length #{x 5891}#) 4)
+ (eq? (vector-ref #{x 5891}# 0) 'syntax-object)
+ #f)
+ #f)
+ (let ((#{expression 5903}# (vector-ref #{x 5891}# 1))
+ (#{wrap 5904}#
+ (let ((#{w2 5912}# (vector-ref #{x 5891}# 2)))
+ (let ((#{m1 5913}# (car #{w 3168}#))
+ (#{s1 5914}# (cdr #{w 3168}#)))
+ (if (null? #{m1 5913}#)
+ (if (null? #{s1 5914}#)
+ #{w2 5912}#
+ (cons (car #{w2 5912}#)
+ (let ((#{m2 5921}#
+ (cdr #{w2 5912}#)))
+ (if (null? #{m2 5921}#)
+ #{s1 5914}#
+ (append
+ #{s1 5914}#
+ #{m2 5921}#)))))
+ (cons (let ((#{m2 5925}#
+ (car #{w2 5912}#)))
+ (if (null? #{m2 5925}#)
+ #{m1 5913}#
+ (append
+ #{m1 5913}#
+ #{m2 5925}#)))
+ (let ((#{m2 5929}#
+ (cdr #{w2 5912}#)))
+ (if (null? #{m2 5929}#)
+ #{s1 5914}#
+ (append
+ #{s1 5914}#
+ #{m2 5929}#))))))))
+ (#{module 5905}# (vector-ref #{x 5891}# 3)))
+ (vector
+ 'syntax-object
+ #{expression 5903}#
+ #{wrap 5904}#
+ #{module 5905}#))
+ (if (null? #{x 5891}#)
+ #{x 5891}#
+ (vector
+ 'syntax-object
+ #{x 5891}#
+ #{w 3168}#
+ #{mod 3170}#)))))))
+ (let ((#{tmp 3179}# ($sc-dispatch #{e 3177}# '(_ any))))
+ (if #{tmp 3179}#
+ (@apply
+ (lambda (#{x 3181}#)
+ (call-with-values
+ (lambda ()
+ (#{gen-syntax 2941}#
+ #{e 3177}#
+ #{x 3181}#
+ #{r 3167}#
+ '()
+ #{ellipsis? 457}#
+ #{mod 3170}#))
+ (lambda (#{e 3182}# #{maps 3183}#)
+ (#{regen 2955}# #{e 3182}#))))
+ #{tmp 3179}#)
+ (syntax-violation
+ 'syntax
+ "bad `syntax' form"
+ #{e 3177}#)))))))
+ (#{global-extend 349}#
+ 'core
+ 'lambda
+ (lambda (#{e 3188}#
+ #{r 3189}#
+ #{w 3190}#
+ #{s 3191}#
+ #{mod 3192}#)
+ (let ((#{tmp 3199}#
+ ($sc-dispatch #{e 3188}# '(_ any any . each-any))))
+ (if #{tmp 3199}#
+ (@apply
+ (lambda (#{args 3203}# #{e1 3204}# #{e2 3205}#)
+ (call-with-values
+ (lambda ()
+ (#{lambda-formals 459}# #{args 3203}#))
+ (lambda (#{req 3206}#
+ #{opt 3207}#
+ #{rest 3208}#
+ #{kw 3209}#)
+ (letrec*
+ ((#{lp 3217}#
+ (lambda (#{body 3218}# #{meta 3219}#)
+ (let ((#{tmp 3222}#
+ ($sc-dispatch
+ #{body 3218}#
+ '(any any . each-any))))
+ (if (if #{tmp 3222}#
+ (@apply
+ (lambda (#{docstring 3226}#
+ #{e1 3227}#
+ #{e2 3228}#)
+ (string?
+ (syntax->datum #{docstring 3226}#)))
+ #{tmp 3222}#)
+ #f)
+ (@apply
+ (lambda (#{docstring 3232}#
+ #{e1 3233}#
+ #{e2 3234}#)
+ (#{lp 3217}#
+ (cons #{e1 3233}# #{e2 3234}#)
+ (append
+ #{meta 3219}#
+ (list (cons 'documentation
+ (syntax->datum
+ #{docstring 3232}#))))))
+ #{tmp 3222}#)
+ (let ((#{tmp 3237}#
+ ($sc-dispatch
+ #{body 3218}#
+ '(#(vector #(each (any . any)))
+ any
+ .
+ each-any))))
+ (if #{tmp 3237}#
+ (@apply
+ (lambda (#{k 3242}#
+ #{v 3243}#
+ #{e1 3244}#
+ #{e2 3245}#)
+ (#{lp 3217}#
+ (cons #{e1 3244}# #{e2 3245}#)
+ (append
+ #{meta 3219}#
+ (syntax->datum
+ (map cons
+ #{k 3242}#
+ #{v 3243}#)))))
+ #{tmp 3237}#)
+ ((lambda (#{e 2300}#
+ #{r 2301}#
+ #{w 2302}#
+ #{s 2303}#
+ #{mod 2304}#
+ #{req 2305}#
+ #{rest 2306}#
+ #{meta 2307}#
+ #{body 2308}#)
+ (let ((#{ids 2320}#
+ (if #{rest 2306}#
+ (append
+ #{req 2305}#
+ (list #{rest 2306}#))
+ #{req 2305}#)))
+ (let ((#{vars 2322}#
+ (map #{gen-var 469}#
+ #{ids 2320}#)))
+ (let ((#{labels 2324}#
+ (#{gen-labels 373}#
+ #{ids 2320}#)))
+ (#{build-simple-lambda 291}#
+ #{s 2303}#
+ (map syntax->datum #{req 2305}#)
+ (if #{rest 2306}#
+ (syntax->datum #{rest 2306}#)
+ #f)
+ #{vars 2322}#
+ #{meta 2307}#
+ (#{chi-body 449}#
+ #{body 2308}#
+ (#{source-wrap 429}#
+ #{e 2300}#
+ #{w 2302}#
+ #{s 2303}#
+ #{mod 2304}#)
+ (#{extend-var-env 343}#
+ #{labels 2324}#
+ #{vars 2322}#
+ #{r 2301}#)
+ (#{make-binding-wrap 405}#
+ #{ids 2320}#
+ #{labels 2324}#
+ #{w 2302}#)
+ #{mod 2304}#))))))
+ #{e 3188}#
+ #{r 3189}#
+ #{w 3190}#
+ #{s 3191}#
+ #{mod 3192}#
+ #{req 3206}#
+ #{rest 3208}#
+ #{meta 3219}#
+ #{body 3218}#))))))))
+ (#{lp 3217}# (cons #{e1 3204}# #{e2 3205}#) '())))))
+ #{tmp 3199}#)
+ (syntax-violation
+ 'lambda
+ "bad lambda"
+ #{e 3188}#)))))
+ (module-define!
+ (current-module)
+ 'lambda*
+ (make-syntax-transformer
+ 'lambda*
+ 'core
+ (lambda (#{e 3253}#
+ #{r 3254}#
+ #{w 3255}#
+ #{s 3256}#
+ #{mod 3257}#)
+ (let ((#{tmp 3264}#
+ ($sc-dispatch #{e 3253}# '(_ any any . each-any))))
+ (if #{tmp 3264}#
+ (@apply
+ (lambda (#{args 3268}# #{e1 3269}# #{e2 3270}#)
+ (call-with-values
+ (lambda ()
+ (#{chi-lambda-case 465}#
+ #{e 3253}#
+ #{r 3254}#
+ #{w 3255}#
+ #{s 3256}#
+ #{mod 3257}#
+ #{lambda*-formals 463}#
+ (list (cons #{args 3268}#
+ (cons #{e1 3269}# #{e2 3270}#)))))
+ (lambda (#{meta 3272}# #{lcase 3273}#)
+ (make-struct/no-tail
+ (vector-ref %expanded-vtables 14)
+ #{s 3256}#
+ #{meta 3272}#
+ #{lcase 3273}#))))
+ #{tmp 3264}#)
+ (syntax-violation
+ 'lambda
+ "bad lambda*"
+ #{e 3253}#))))))
+ (module-define!
+ (current-module)
+ 'case-lambda
+ (make-syntax-transformer
+ 'case-lambda
+ 'core
+ (lambda (#{e 3278}#
+ #{r 3279}#
+ #{w 3280}#
+ #{s 3281}#
+ #{mod 3282}#)
+ (let ((#{tmp 3289}#
+ ($sc-dispatch
+ #{e 3278}#
+ '(_ (any any . each-any)
+ .
+ #(each (any any . each-any))))))
+ (if #{tmp 3289}#
+ (@apply
+ (lambda (#{args 3296}#
+ #{e1 3297}#
+ #{e2 3298}#
+ #{args* 3299}#
+ #{e1* 3300}#
+ #{e2* 3301}#)
+ (call-with-values
+ (lambda ()
+ (#{chi-lambda-case 465}#
+ #{e 3278}#
+ #{r 3279}#
+ #{w 3280}#
+ #{s 3281}#
+ #{mod 3282}#
+ #{lambda-formals 459}#
+ (cons (cons #{args 3296}#
+ (cons #{e1 3297}# #{e2 3298}#))
+ (map (lambda (#{tmp 3305}#
+ #{tmp 3304}#
+ #{tmp 3303}#)
+ (cons #{tmp 3303}#
+ (cons #{tmp 3304}# #{tmp 3305}#)))
+ #{e2* 3301}#
+ #{e1* 3300}#
+ #{args* 3299}#))))
+ (lambda (#{meta 3307}# #{lcase 3308}#)
+ (make-struct/no-tail
+ (vector-ref %expanded-vtables 14)
+ #{s 3281}#
+ #{meta 3307}#
+ #{lcase 3308}#))))
+ #{tmp 3289}#)
+ (syntax-violation
+ 'case-lambda
+ "bad case-lambda"
+ #{e 3278}#))))))
+ (module-define!
+ (current-module)
+ 'case-lambda*
+ (make-syntax-transformer
+ 'case-lambda*
+ 'core
+ (lambda (#{e 3313}#
+ #{r 3314}#
+ #{w 3315}#
+ #{s 3316}#
+ #{mod 3317}#)
+ (let ((#{tmp 3324}#
+ ($sc-dispatch
+ #{e 3313}#
+ '(_ (any any . each-any)
+ .
+ #(each (any any . each-any))))))
+ (if #{tmp 3324}#
+ (@apply
+ (lambda (#{args 3331}#
+ #{e1 3332}#
+ #{e2 3333}#
+ #{args* 3334}#
+ #{e1* 3335}#
+ #{e2* 3336}#)
+ (call-with-values
+ (lambda ()
+ (#{chi-lambda-case 465}#
+ #{e 3313}#
+ #{r 3314}#
+ #{w 3315}#
+ #{s 3316}#
+ #{mod 3317}#
+ #{lambda*-formals 463}#
+ (cons (cons #{args 3331}#
+ (cons #{e1 3332}# #{e2 3333}#))
+ (map (lambda (#{tmp 3340}#
+ #{tmp 3339}#
+ #{tmp 3338}#)
+ (cons #{tmp 3338}#
+ (cons #{tmp 3339}# #{tmp 3340}#)))
+ #{e2* 3336}#
+ #{e1* 3335}#
+ #{args* 3334}#))))
+ (lambda (#{meta 3342}# #{lcase 3343}#)
+ (make-struct/no-tail
+ (vector-ref %expanded-vtables 14)
+ #{s 3316}#
+ #{meta 3342}#
+ #{lcase 3343}#))))
+ #{tmp 3324}#)
+ (syntax-violation
+ 'case-lambda
+ "bad case-lambda*"
+ #{e 3313}#))))))
+ (#{global-extend 349}#
+ 'core
+ 'let
+ (letrec*
+ ((#{chi-let 3349}#
+ (lambda (#{e 3350}#
+ #{r 3351}#
+ #{w 3352}#
+ #{s 3353}#
+ #{mod 3354}#
+ #{constructor 3355}#
+ #{ids 3356}#
+ #{vals 3357}#
+ #{exps 3358}#)
+ (if (not (#{valid-bound-ids? 421}# #{ids 3356}#))
+ (syntax-violation
+ 'let
+ "duplicate bound variable"
+ #{e 3350}#)
+ (let ((#{labels 3370}#
+ (#{gen-labels 373}# #{ids 3356}#))
+ (#{new-vars 3371}#
+ (map #{gen-var 469}# #{ids 3356}#)))
+ (let ((#{nw 3374}#
+ (#{make-binding-wrap 405}#
+ #{ids 3356}#
+ #{labels 3370}#
+ #{w 3352}#))
+ (#{nr 3375}#
+ (#{extend-var-env 343}#
+ #{labels 3370}#
+ #{new-vars 3371}#
+ #{r 3351}#)))
+ (#{constructor 3355}#
+ #{s 3353}#
+ (map syntax->datum #{ids 3356}#)
+ #{new-vars 3371}#
+ (map (lambda (#{x 3376}#)
+ (#{chi 441}#
+ #{x 3376}#
+ #{r 3351}#
+ #{w 3352}#
+ #{mod 3354}#))
+ #{vals 3357}#)
+ (#{chi-body 449}#
+ #{exps 3358}#
+ (let ((#{x 6517}#
+ (begin
+ (if (if (pair? #{e 3350}#) #{s 3353}# #f)
+ (set-source-properties!
+ #{e 3350}#
+ #{s 3353}#))
+ #{e 3350}#)))
+ (if (if (null? (car #{nw 3374}#))
+ (null? (cdr #{nw 3374}#))
+ #f)
+ #{x 6517}#
+ (if (if (vector? #{x 6517}#)
+ (if (= (vector-length #{x 6517}#) 4)
+ (eq? (vector-ref #{x 6517}# 0)
+ 'syntax-object)
+ #f)
+ #f)
+ (let ((#{expression 6529}#
+ (vector-ref #{x 6517}# 1))
+ (#{wrap 6530}#
+ (let ((#{w2 6538}#
+ (vector-ref #{x 6517}# 2)))
+ (let ((#{m1 6539}# (car #{nw 3374}#))
+ (#{s1 6540}# (cdr #{nw 3374}#)))
+ (if (null? #{m1 6539}#)
+ (if (null? #{s1 6540}#)
+ #{w2 6538}#
+ (cons (car #{w2 6538}#)
+ (let ((#{m2 6547}#
+ (cdr #{w2 6538}#)))
+ (if (null? #{m2 6547}#)
+ #{s1 6540}#
+ (append
+ #{s1 6540}#
+ #{m2 6547}#)))))
+ (cons (let ((#{m2 6551}#
+ (car #{w2 6538}#)))
+ (if (null? #{m2 6551}#)
+ #{m1 6539}#
+ (append
+ #{m1 6539}#
+ #{m2 6551}#)))
+ (let ((#{m2 6555}#
+ (cdr #{w2 6538}#)))
+ (if (null? #{m2 6555}#)
+ #{s1 6540}#
+ (append
+ #{s1 6540}#
+ #{m2 6555}#))))))))
+ (#{module 6531}# (vector-ref #{x 6517}# 3)))
+ (vector
+ 'syntax-object
+ #{expression 6529}#
+ #{wrap 6530}#
+ #{module 6531}#))
+ (if (null? #{x 6517}#)
+ #{x 6517}#
+ (vector
+ 'syntax-object
+ #{x 6517}#
+ #{nw 3374}#
+ #{mod 3354}#)))))
+ #{nr 3375}#
+ #{nw 3374}#
+ #{mod 3354}#))))))))
+ (lambda (#{e 3378}#
+ #{r 3379}#
+ #{w 3380}#
+ #{s 3381}#
+ #{mod 3382}#)
+ (let ((#{tmp 3389}#
+ ($sc-dispatch
+ #{e 3378}#
+ '(_ #(each (any any)) any . each-any))))
+ (if (if #{tmp 3389}#
+ (@apply
+ (lambda (#{id 3394}#
+ #{val 3395}#
+ #{e1 3396}#
+ #{e2 3397}#)
+ (and-map #{id? 353}# #{id 3394}#))
+ #{tmp 3389}#)
+ #f)
+ (@apply
+ (lambda (#{id 3403}#
+ #{val 3404}#
+ #{e1 3405}#
+ #{e2 3406}#)
+ (#{chi-let 3349}#
+ #{e 3378}#
+ #{r 3379}#
+ #{w 3380}#
+ #{s 3381}#
+ #{mod 3382}#
+ (lambda (#{src 1122}#
+ #{ids 1123}#
+ #{vars 1124}#
+ #{val-exps 1125}#
+ #{body-exp 1126}#)
+ (begin
+ (for-each
+ #{maybe-name-value! 269}#
+ #{ids 1123}#
+ #{val-exps 1125}#)
+ (if (null? #{vars 1124}#)
+ #{body-exp 1126}#
+ (#{make-let 240}#
+ #{src 1122}#
+ #{ids 1123}#
+ #{vars 1124}#
+ #{val-exps 1125}#
+ #{body-exp 1126}#))))
+ #{id 3403}#
+ #{val 3404}#
+ (cons #{e1 3405}# #{e2 3406}#)))
+ #{tmp 3389}#)
+ (let ((#{tmp 3410}#
($sc-dispatch
- #{tmp 3958}#
- '(_ any each-any . each-any))))
- (if #{tmp 3959}#
+ #{e 3378}#
+ '(_ any #(each (any any)) any . each-any))))
+ (if (if #{tmp 3410}#
+ (@apply
+ (lambda (#{f 3416}#
+ #{id 3417}#
+ #{val 3418}#
+ #{e1 3419}#
+ #{e2 3420}#)
+ (if (if (symbol? #{f 3416}#)
+ #t
+ (if (if (vector? #{f 3416}#)
+ (if (= (vector-length #{f 3416}#) 4)
+ (eq? (vector-ref #{f 3416}# 0)
+ 'syntax-object)
+ #f)
+ #f)
+ (symbol? (vector-ref #{f 3416}# 1))
+ #f))
+ (and-map #{id? 353}# #{id 3417}#)
+ #f))
+ #{tmp 3410}#)
+ #f)
+ (@apply
+ (lambda (#{f 3429}#
+ #{id 3430}#
+ #{val 3431}#
+ #{e1 3432}#
+ #{e2 3433}#)
+ (#{chi-let 3349}#
+ #{e 3378}#
+ #{r 3379}#
+ #{w 3380}#
+ #{s 3381}#
+ #{mod 3382}#
+ (lambda (#{src 1132}#
+ #{ids 1133}#
+ #{vars 1134}#
+ #{val-exps 1135}#
+ #{body-exp 1136}#)
+ (let ((#{f 1146}# (car #{vars 1134}#))
+ (#{f-name 1147}# (car #{ids 1133}#))
+ (#{vars 1148}# (cdr #{vars 1134}#))
+ (#{ids 1149}# (cdr #{ids 1133}#)))
+ (let ((#{proc 1151}#
+ (#{build-simple-lambda 291}#
+ #{src 1132}#
+ #{ids 1149}#
+ #f
+ #{vars 1148}#
+ '()
+ #{body-exp 1136}#)))
+ (begin
+ (#{maybe-name-value! 269}#
+ #{f-name 1147}#
+ #{proc 1151}#)
+ (for-each
+ #{maybe-name-value! 269}#
+ #{ids 1149}#
+ #{val-exps 1135}#)
+ (#{make-letrec 242}#
+ #{src 1132}#
+ #f
+ (list #{f-name 1147}#)
+ (list #{f 1146}#)
+ (list #{proc 1151}#)
+ (#{build-call 273}#
+ #{src 1132}#
+ (#{build-lexical-reference 279}#
+ 'fun
+ #{src 1132}#
+ #{f-name 1147}#
+ #{f 1146}#)
+ #{val-exps 1135}#))))))
+ (cons #{f 3429}# #{id 3430}#)
+ #{val 3431}#
+ (cons #{e1 3432}# #{e2 3433}#)))
+ #{tmp 3410}#)
+ (syntax-violation
+ 'let
+ "bad let"
+ (let ((#{x 6585}#
+ (begin
+ (if (if (pair? #{e 3378}#) #{s 3381}# #f)
+ (set-source-properties! #{e 3378}# #{s 3381}#))
+ #{e 3378}#)))
+ (if (if (null? (car #{w 3380}#))
+ (null? (cdr #{w 3380}#))
+ #f)
+ #{x 6585}#
+ (if (if (vector? #{x 6585}#)
+ (if (= (vector-length #{x 6585}#) 4)
+ (eq? (vector-ref #{x 6585}# 0) 'syntax-object)
+ #f)
+ #f)
+ (let ((#{expression 6597}# (vector-ref #{x 6585}# 1))
+ (#{wrap 6598}#
+ (let ((#{w2 6606}#
+ (vector-ref #{x 6585}# 2)))
+ (let ((#{m1 6607}# (car #{w 3380}#))
+ (#{s1 6608}# (cdr #{w 3380}#)))
+ (if (null? #{m1 6607}#)
+ (if (null? #{s1 6608}#)
+ #{w2 6606}#
+ (cons (car #{w2 6606}#)
+ (let ((#{m2 6615}#
+ (cdr #{w2 6606}#)))
+ (if (null? #{m2 6615}#)
+ #{s1 6608}#
+ (append
+ #{s1 6608}#
+ #{m2 6615}#)))))
+ (cons (let ((#{m2 6619}#
+ (car #{w2 6606}#)))
+ (if (null? #{m2 6619}#)
+ #{m1 6607}#
+ (append
+ #{m1 6607}#
+ #{m2 6619}#)))
+ (let ((#{m2 6623}#
+ (cdr #{w2 6606}#)))
+ (if (null? #{m2 6623}#)
+ #{s1 6608}#
+ (append
+ #{s1 6608}#
+ #{m2 6623}#))))))))
+ (#{module 6599}# (vector-ref #{x 6585}# 3)))
+ (vector
+ 'syntax-object
+ #{expression 6597}#
+ #{wrap 6598}#
+ #{module 6599}#))
+ (if (null? #{x 6585}#)
+ #{x 6585}#
+ (vector
+ 'syntax-object
+ #{x 6585}#
+ #{w 3380}#
+ #{mod 3382}#)))))))))))))
+ (#{global-extend 349}#
+ 'core
+ 'letrec
+ (lambda (#{e 3439}#
+ #{r 3440}#
+ #{w 3441}#
+ #{s 3442}#
+ #{mod 3443}#)
+ (let ((#{tmp 3450}#
+ ($sc-dispatch
+ #{e 3439}#
+ '(_ #(each (any any)) any . each-any))))
+ (if (if #{tmp 3450}#
+ (@apply
+ (lambda (#{id 3455}#
+ #{val 3456}#
+ #{e1 3457}#
+ #{e2 3458}#)
+ (and-map #{id? 353}# #{id 3455}#))
+ #{tmp 3450}#)
+ #f)
+ (@apply
+ (lambda (#{id 3464}#
+ #{val 3465}#
+ #{e1 3466}#
+ #{e2 3467}#)
+ (if (not (#{valid-bound-ids? 421}# #{id 3464}#))
+ (syntax-violation
+ 'letrec
+ "duplicate bound variable"
+ #{e 3439}#)
+ (let ((#{labels 3473}#
+ (#{gen-labels 373}# #{id 3464}#))
+ (#{new-vars 3474}#
+ (map #{gen-var 469}# #{id 3464}#)))
+ (let ((#{w 3477}#
+ (#{make-binding-wrap 405}#
+ #{id 3464}#
+ #{labels 3473}#
+ #{w 3441}#))
+ (#{r 3478}#
+ (#{extend-var-env 343}#
+ #{labels 3473}#
+ #{new-vars 3474}#
+ #{r 3440}#)))
+ (#{build-letrec 309}#
+ #{s 3442}#
+ #f
+ (map syntax->datum #{id 3464}#)
+ #{new-vars 3474}#
+ (map (lambda (#{x 3479}#)
+ (#{chi 441}#
+ #{x 3479}#
+ #{r 3478}#
+ #{w 3477}#
+ #{mod 3443}#))
+ #{val 3465}#)
+ (#{chi-body 449}#
+ (cons #{e1 3466}# #{e2 3467}#)
+ (let ((#{x 7107}#
+ (begin
+ (if (if (pair? #{e 3439}#) #{s 3442}# #f)
+ (set-source-properties!
+ #{e 3439}#
+ #{s 3442}#))
+ #{e 3439}#)))
+ (if (if (null? (car #{w 3477}#))
+ (null? (cdr #{w 3477}#))
+ #f)
+ #{x 7107}#
+ (if (if (vector? #{x 7107}#)
+ (if (= (vector-length #{x 7107}#) 4)
+ (eq? (vector-ref #{x 7107}# 0)
+ 'syntax-object)
+ #f)
+ #f)
+ (let ((#{expression 7119}#
+ (vector-ref #{x 7107}# 1))
+ (#{wrap 7120}#
+ (let ((#{w2 7128}#
+ (vector-ref #{x 7107}# 2)))
+ (let ((#{m1 7129}# (car #{w 3477}#))
+ (#{s1 7130}# (cdr #{w 3477}#)))
+ (if (null? #{m1 7129}#)
+ (if (null? #{s1 7130}#)
+ #{w2 7128}#
+ (cons (car #{w2 7128}#)
+ (let ((#{m2 7137}#
+ (cdr #{w2
7128}#)))
+ (if (null? #{m2 7137}#)
+ #{s1 7130}#
+ (append
+ #{s1 7130}#
+ #{m2 7137}#)))))
+ (cons (let ((#{m2 7141}#
+ (car #{w2 7128}#)))
+ (if (null? #{m2 7141}#)
+ #{m1 7129}#
+ (append
+ #{m1 7129}#
+ #{m2 7141}#)))
+ (let ((#{m2 7145}#
+ (cdr #{w2 7128}#)))
+ (if (null? #{m2 7145}#)
+ #{s1 7130}#
+ (append
+ #{s1 7130}#
+ #{m2 7145}#))))))))
+ (#{module 7121}#
+ (vector-ref #{x 7107}# 3)))
+ (vector
+ 'syntax-object
+ #{expression 7119}#
+ #{wrap 7120}#
+ #{module 7121}#))
+ (if (null? #{x 7107}#)
+ #{x 7107}#
+ (vector
+ 'syntax-object
+ #{x 7107}#
+ #{w 3477}#
+ #{mod 3443}#)))))
+ #{r 3478}#
+ #{w 3477}#
+ #{mod 3443}#))))))
+ #{tmp 3450}#)
+ (syntax-violation
+ 'letrec
+ "bad letrec"
+ (let ((#{x 7162}#
+ (begin
+ (if (if (pair? #{e 3439}#) #{s 3442}# #f)
+ (set-source-properties! #{e 3439}# #{s 3442}#))
+ #{e 3439}#)))
+ (if (if (null? (car #{w 3441}#))
+ (null? (cdr #{w 3441}#))
+ #f)
+ #{x 7162}#
+ (if (if (vector? #{x 7162}#)
+ (if (= (vector-length #{x 7162}#) 4)
+ (eq? (vector-ref #{x 7162}# 0) 'syntax-object)
+ #f)
+ #f)
+ (let ((#{expression 7174}# (vector-ref #{x 7162}# 1))
+ (#{wrap 7175}#
+ (let ((#{w2 7183}# (vector-ref #{x 7162}# 2)))
+ (let ((#{m1 7184}# (car #{w 3441}#))
+ (#{s1 7185}# (cdr #{w 3441}#)))
+ (if (null? #{m1 7184}#)
+ (if (null? #{s1 7185}#)
+ #{w2 7183}#
+ (cons (car #{w2 7183}#)
+ (let ((#{m2 7192}#
+ (cdr #{w2 7183}#)))
+ (if (null? #{m2 7192}#)
+ #{s1 7185}#
+ (append
+ #{s1 7185}#
+ #{m2 7192}#)))))
+ (cons (let ((#{m2 7196}# (car #{w2 7183}#)))
+ (if (null? #{m2 7196}#)
+ #{m1 7184}#
+ (append #{m1 7184}# #{m2 7196}#)))
+ (let ((#{m2 7200}# (cdr #{w2 7183}#)))
+ (if (null? #{m2 7200}#)
+ #{s1 7185}#
+ (append
+ #{s1 7185}#
+ #{m2 7200}#))))))))
+ (#{module 7176}# (vector-ref #{x 7162}# 3)))
+ (vector
+ 'syntax-object
+ #{expression 7174}#
+ #{wrap 7175}#
+ #{module 7176}#))
+ (if (null? #{x 7162}#)
+ #{x 7162}#
+ (vector
+ 'syntax-object
+ #{x 7162}#
+ #{w 3441}#
+ #{mod 3443}#))))))))))
+ (#{global-extend 349}#
+ 'core
+ 'letrec*
+ (lambda (#{e 3485}#
+ #{r 3486}#
+ #{w 3487}#
+ #{s 3488}#
+ #{mod 3489}#)
+ (let ((#{tmp 3496}#
+ ($sc-dispatch
+ #{e 3485}#
+ '(_ #(each (any any)) any . each-any))))
+ (if (if #{tmp 3496}#
+ (@apply
+ (lambda (#{id 3501}#
+ #{val 3502}#
+ #{e1 3503}#
+ #{e2 3504}#)
+ (and-map #{id? 353}# #{id 3501}#))
+ #{tmp 3496}#)
+ #f)
+ (@apply
+ (lambda (#{id 3510}#
+ #{val 3511}#
+ #{e1 3512}#
+ #{e2 3513}#)
+ (if (not (#{valid-bound-ids? 421}# #{id 3510}#))
+ (syntax-violation
+ 'letrec*
+ "duplicate bound variable"
+ #{e 3485}#)
+ (let ((#{labels 3519}#
+ (#{gen-labels 373}# #{id 3510}#))
+ (#{new-vars 3520}#
+ (map #{gen-var 469}# #{id 3510}#)))
+ (let ((#{w 3523}#
+ (#{make-binding-wrap 405}#
+ #{id 3510}#
+ #{labels 3519}#
+ #{w 3487}#))
+ (#{r 3524}#
+ (#{extend-var-env 343}#
+ #{labels 3519}#
+ #{new-vars 3520}#
+ #{r 3486}#)))
+ (#{build-letrec 309}#
+ #{s 3488}#
+ #t
+ (map syntax->datum #{id 3510}#)
+ #{new-vars 3520}#
+ (map (lambda (#{x 3525}#)
+ (#{chi 441}#
+ #{x 3525}#
+ #{r 3524}#
+ #{w 3523}#
+ #{mod 3489}#))
+ #{val 3511}#)
+ (#{chi-body 449}#
+ (cons #{e1 3512}# #{e2 3513}#)
+ (let ((#{x 7684}#
+ (begin
+ (if (if (pair? #{e 3485}#) #{s 3488}# #f)
+ (set-source-properties!
+ #{e 3485}#
+ #{s 3488}#))
+ #{e 3485}#)))
+ (if (if (null? (car #{w 3523}#))
+ (null? (cdr #{w 3523}#))
+ #f)
+ #{x 7684}#
+ (if (if (vector? #{x 7684}#)
+ (if (= (vector-length #{x 7684}#) 4)
+ (eq? (vector-ref #{x 7684}# 0)
+ 'syntax-object)
+ #f)
+ #f)
+ (let ((#{expression 7696}#
+ (vector-ref #{x 7684}# 1))
+ (#{wrap 7697}#
+ (let ((#{w2 7705}#
+ (vector-ref #{x 7684}# 2)))
+ (let ((#{m1 7706}# (car #{w 3523}#))
+ (#{s1 7707}# (cdr #{w 3523}#)))
+ (if (null? #{m1 7706}#)
+ (if (null? #{s1 7707}#)
+ #{w2 7705}#
+ (cons (car #{w2 7705}#)
+ (let ((#{m2 7714}#
+ (cdr #{w2
7705}#)))
+ (if (null? #{m2 7714}#)
+ #{s1 7707}#
+ (append
+ #{s1 7707}#
+ #{m2 7714}#)))))
+ (cons (let ((#{m2 7718}#
+ (car #{w2 7705}#)))
+ (if (null? #{m2 7718}#)
+ #{m1 7706}#
+ (append
+ #{m1 7706}#
+ #{m2 7718}#)))
+ (let ((#{m2 7722}#
+ (cdr #{w2 7705}#)))
+ (if (null? #{m2 7722}#)
+ #{s1 7707}#
+ (append
+ #{s1 7707}#
+ #{m2 7722}#))))))))
+ (#{module 7698}#
+ (vector-ref #{x 7684}# 3)))
+ (vector
+ 'syntax-object
+ #{expression 7696}#
+ #{wrap 7697}#
+ #{module 7698}#))
+ (if (null? #{x 7684}#)
+ #{x 7684}#
+ (vector
+ 'syntax-object
+ #{x 7684}#
+ #{w 3523}#
+ #{mod 3489}#)))))
+ #{r 3524}#
+ #{w 3523}#
+ #{mod 3489}#))))))
+ #{tmp 3496}#)
+ (syntax-violation
+ 'letrec*
+ "bad letrec*"
+ (let ((#{x 7739}#
+ (begin
+ (if (if (pair? #{e 3485}#) #{s 3488}# #f)
+ (set-source-properties! #{e 3485}# #{s 3488}#))
+ #{e 3485}#)))
+ (if (if (null? (car #{w 3487}#))
+ (null? (cdr #{w 3487}#))
+ #f)
+ #{x 7739}#
+ (if (if (vector? #{x 7739}#)
+ (if (= (vector-length #{x 7739}#) 4)
+ (eq? (vector-ref #{x 7739}# 0) 'syntax-object)
+ #f)
+ #f)
+ (let ((#{expression 7751}# (vector-ref #{x 7739}# 1))
+ (#{wrap 7752}#
+ (let ((#{w2 7760}# (vector-ref #{x 7739}# 2)))
+ (let ((#{m1 7761}# (car #{w 3487}#))
+ (#{s1 7762}# (cdr #{w 3487}#)))
+ (if (null? #{m1 7761}#)
+ (if (null? #{s1 7762}#)
+ #{w2 7760}#
+ (cons (car #{w2 7760}#)
+ (let ((#{m2 7769}#
+ (cdr #{w2 7760}#)))
+ (if (null? #{m2 7769}#)
+ #{s1 7762}#
+ (append
+ #{s1 7762}#
+ #{m2 7769}#)))))
+ (cons (let ((#{m2 7773}# (car #{w2 7760}#)))
+ (if (null? #{m2 7773}#)
+ #{m1 7761}#
+ (append #{m1 7761}# #{m2 7773}#)))
+ (let ((#{m2 7777}# (cdr #{w2 7760}#)))
+ (if (null? #{m2 7777}#)
+ #{s1 7762}#
+ (append
+ #{s1 7762}#
+ #{m2 7777}#))))))))
+ (#{module 7753}# (vector-ref #{x 7739}# 3)))
+ (vector
+ 'syntax-object
+ #{expression 7751}#
+ #{wrap 7752}#
+ #{module 7753}#))
+ (if (null? #{x 7739}#)
+ #{x 7739}#
+ (vector
+ 'syntax-object
+ #{x 7739}#
+ #{w 3487}#
+ #{mod 3489}#))))))))))
+ (#{global-extend 349}#
+ 'core
+ 'set!
+ (lambda (#{e 3531}#
+ #{r 3532}#
+ #{w 3533}#
+ #{s 3534}#
+ #{mod 3535}#)
+ (let ((#{tmp 3542}#
+ ($sc-dispatch #{e 3531}# '(_ any any))))
+ (if (if #{tmp 3542}#
+ (@apply
+ (lambda (#{id 3545}# #{val 3546}#)
+ (if (symbol? #{id 3545}#)
+ #t
+ (if (if (vector? #{id 3545}#)
+ (if (= (vector-length #{id 3545}#) 4)
+ (eq? (vector-ref #{id 3545}# 0) 'syntax-object)
+ #f)
+ #f)
+ (symbol? (vector-ref #{id 3545}# 1))
+ #f)))
+ #{tmp 3542}#)
+ #f)
+ (@apply
+ (lambda (#{id 3549}# #{val 3550}#)
+ (let ((#{n 3553}#
+ (#{id-var-name 415}# #{id 3549}# #{w 3533}#))
+ (#{id-mod 3554}#
+ (if (if (vector? #{id 3549}#)
+ (if (= (vector-length #{id 3549}#) 4)
+ (eq? (vector-ref #{id 3549}# 0) 'syntax-object)
+ #f)
+ #f)
+ (vector-ref #{id 3549}# 3)
+ #{mod 3535}#)))
+ (let ((#{b 3556}#
+ (let ((#{t 7891}# (assq #{n 3553}# #{r 3532}#)))
+ (if #{t 7891}#
+ (cdr #{t 7891}#)
+ (if (symbol? #{n 3553}#)
+ (let ((#{t 7892}#
+ (#{get-global-definition-hook 265}#
+ #{n 3553}#
+ #{id-mod 3554}#)))
+ (if #{t 7892}# #{t 7892}# '(global)))
+ '(displaced-lexical))))))
+ (let ((#{atom-key 3559}# (car #{b 3556}#)))
+ (if (memv #{atom-key 3559}# '(lexical))
+ ((lambda (#{source 1005}#
+ #{name 1006}#
+ #{var 1007}#
+ #{exp 1008}#)
+ (begin
+ (#{maybe-name-value! 269}#
+ #{name 1006}#
+ #{exp 1008}#)
+ (#{make-lexical-set 216}#
+ #{source 1005}#
+ #{name 1006}#
+ #{var 1007}#
+ #{exp 1008}#)))
+ #{s 3534}#
+ (syntax->datum #{id 3549}#)
+ (cdr #{b 3556}#)
+ (#{chi 441}#
+ #{val 3550}#
+ #{r 3532}#
+ #{w 3533}#
+ #{mod 3535}#))
+ (if (memv #{atom-key 3559}# '(global))
+ (#{build-global-assignment 287}#
+ #{s 3534}#
+ #{n 3553}#
+ (#{chi 441}#
+ #{val 3550}#
+ #{r 3532}#
+ #{w 3533}#
+ #{mod 3535}#)
+ #{id-mod 3554}#)
+ (if (memv #{atom-key 3559}# '(macro))
+ (let ((#{p 3566}# (cdr #{b 3556}#)))
+ (if (procedure-property
+ #{p 3566}#
+ 'variable-transformer)
+ (#{chi 441}#
+ (#{chi-macro 447}#
+ #{p 3566}#
+ #{e 3531}#
+ #{r 3532}#
+ #{w 3533}#
+ #{s 3534}#
+ #f
+ #{mod 3535}#)
+ #{r 3532}#
+ '(())
+ #{mod 3535}#)
+ (syntax-violation
+ 'set!
+ "not a variable transformer"
+ (if (if (null? (car #{w 3533}#))
+ (null? (cdr #{w 3533}#))
+ #f)
+ #{e 3531}#
+ (if (if (vector? #{e 3531}#)
+ (if (= (vector-length #{e 3531}#) 4)
+ (eq? (vector-ref #{e 3531}# 0)
+ 'syntax-object)
+ #f)
+ #f)
+ (let ((#{expression 8165}#
+ (vector-ref #{e 3531}# 1))
+ (#{wrap 8166}#
+ (let ((#{w2 8174}#
+ (vector-ref
+ #{e 3531}#
+ 2)))
+ (let ((#{m1 8175}#
+ (car #{w 3533}#))
+ (#{s1 8176}#
+ (cdr #{w 3533}#)))
+ (if (null? #{m1 8175}#)
+ (if (null? #{s1 8176}#)
+ #{w2 8174}#
+ (cons (car #{w2 8174}#)
+ (let ((#{m2 8183}#
+ (cdr #{w2
8174}#)))
+ (if (null? #{m2
8183}#)
+ #{s1 8176}#
+ (append
+ #{s1 8176}#
+ #{m2
8183}#)))))
+ (cons (let ((#{m2 8187}#
+ (car #{w2
8174}#)))
+ (if (null? #{m2
8187}#)
+ #{m1 8175}#
+ (append
+ #{m1 8175}#
+ #{m2 8187}#)))
+ (let ((#{m2 8191}#
+ (cdr #{w2
8174}#)))
+ (if (null? #{m2
8191}#)
+ #{s1 8176}#
+ (append
+ #{s1 8176}#
+ #{m2
8191}#))))))))
+ (#{module 8167}#
+ (vector-ref #{e 3531}# 3)))
+ (vector
+ 'syntax-object
+ #{expression 8165}#
+ #{wrap 8166}#
+ #{module 8167}#))
+ (if (null? #{e 3531}#)
+ #{e 3531}#
+ (vector
+ 'syntax-object
+ #{e 3531}#
+ #{w 3533}#
+ #{mod 3535}#))))
+ (if (if (null? (car #{w 3533}#))
+ (null? (cdr #{w 3533}#))
+ #f)
+ #{id 3549}#
+ (if (if (vector? #{id 3549}#)
+ (if (= (vector-length #{id 3549}#) 4)
+ (eq? (vector-ref #{id 3549}# 0)
+ 'syntax-object)
+ #f)
+ #f)
+ (let ((#{expression 8210}#
+ (vector-ref #{id 3549}# 1))
+ (#{wrap 8211}#
+ (let ((#{w2 8219}#
+ (vector-ref
+ #{id 3549}#
+ 2)))
+ (let ((#{m1 8220}#
+ (car #{w 3533}#))
+ (#{s1 8221}#
+ (cdr #{w 3533}#)))
+ (if (null? #{m1 8220}#)
+ (if (null? #{s1 8221}#)
+ #{w2 8219}#
+ (cons (car #{w2 8219}#)
+ (let ((#{m2 8228}#
+ (cdr #{w2
8219}#)))
+ (if (null? #{m2
8228}#)
+ #{s1 8221}#
+ (append
+ #{s1 8221}#
+ #{m2
8228}#)))))
+ (cons (let ((#{m2 8232}#
+ (car #{w2
8219}#)))
+ (if (null? #{m2
8232}#)
+ #{m1 8220}#
+ (append
+ #{m1 8220}#
+ #{m2 8232}#)))
+ (let ((#{m2 8236}#
+ (cdr #{w2
8219}#)))
+ (if (null? #{m2
8236}#)
+ #{s1 8221}#
+ (append
+ #{s1 8221}#
+ #{m2
8236}#))))))))
+ (#{module 8212}#
+ (vector-ref #{id 3549}# 3)))
+ (vector
+ 'syntax-object
+ #{expression 8210}#
+ #{wrap 8211}#
+ #{module 8212}#))
+ (if (null? #{id 3549}#)
+ #{id 3549}#
+ (vector
+ 'syntax-object
+ #{id 3549}#
+ #{w 3533}#
+ #{id-mod 3554}#)))))))
+ (if (memv #{atom-key 3559}# '(displaced-lexical))
+ (syntax-violation
+ 'set!
+ "identifier out of context"
+ (if (if (null? (car #{w 3533}#))
+ (null? (cdr #{w 3533}#))
+ #f)
+ #{id 3549}#
+ (if (if (vector? #{id 3549}#)
+ (if (= (vector-length #{id 3549}#) 4)
+ (eq? (vector-ref #{id 3549}# 0)
+ 'syntax-object)
+ #f)
+ #f)
+ (let ((#{expression 8255}#
+ (vector-ref #{id 3549}# 1))
+ (#{wrap 8256}#
+ (let ((#{w2 8264}#
+ (vector-ref
+ #{id 3549}#
+ 2)))
+ (let ((#{m1 8265}#
+ (car #{w 3533}#))
+ (#{s1 8266}#
+ (cdr #{w 3533}#)))
+ (if (null? #{m1 8265}#)
+ (if (null? #{s1 8266}#)
+ #{w2 8264}#
+ (cons (car #{w2 8264}#)
+ (let ((#{m2 8273}#
+ (cdr #{w2
8264}#)))
+ (if (null? #{m2
8273}#)
+ #{s1 8266}#
+ (append
+ #{s1 8266}#
+ #{m2
8273}#)))))
+ (cons (let ((#{m2 8277}#
+ (car #{w2
8264}#)))
+ (if (null? #{m2
8277}#)
+ #{m1 8265}#
+ (append
+ #{m1 8265}#
+ #{m2 8277}#)))
+ (let ((#{m2 8281}#
+ (cdr #{w2
8264}#)))
+ (if (null? #{m2
8281}#)
+ #{s1 8266}#
+ (append
+ #{s1 8266}#
+ #{m2
8281}#))))))))
+ (#{module 8257}#
+ (vector-ref #{id 3549}# 3)))
+ (vector
+ 'syntax-object
+ #{expression 8255}#
+ #{wrap 8256}#
+ #{module 8257}#))
+ (if (null? #{id 3549}#)
+ #{id 3549}#
+ (vector
+ 'syntax-object
+ #{id 3549}#
+ #{w 3533}#
+ #{mod 3535}#)))))
+ (syntax-violation
+ 'set!
+ "bad set!"
+ (let ((#{x 8298}#
+ (begin
+ (if (if (pair? #{e 3531}#)
+ #{s 3534}#
+ #f)
+ (set-source-properties!
+ #{e 3531}#
+ #{s 3534}#))
+ #{e 3531}#)))
+ (if (if (null? (car #{w 3533}#))
+ (null? (cdr #{w 3533}#))
+ #f)
+ #{x 8298}#
+ (if (if (vector? #{x 8298}#)
+ (if (= (vector-length #{x 8298}#) 4)
+ (eq? (vector-ref #{x 8298}# 0)
+ 'syntax-object)
+ #f)
+ #f)
+ (let ((#{expression 8310}#
+ (vector-ref #{x 8298}# 1))
+ (#{wrap 8311}#
+ (let ((#{w2 8319}#
+ (vector-ref
+ #{x 8298}#
+ 2)))
+ (let ((#{m1 8320}#
+ (car #{w 3533}#))
+ (#{s1 8321}#
+ (cdr #{w 3533}#)))
+ (if (null? #{m1 8320}#)
+ (if (null? #{s1 8321}#)
+ #{w2 8319}#
+ (cons (car #{w2 8319}#)
+ (let ((#{m2 8328}#
+ (cdr #{w2
8319}#)))
+ (if (null? #{m2
8328}#)
+ #{s1 8321}#
+ (append
+ #{s1 8321}#
+ #{m2
8328}#)))))
+ (cons (let ((#{m2 8332}#
+ (car #{w2
8319}#)))
+ (if (null? #{m2
8332}#)
+ #{m1 8320}#
+ (append
+ #{m1 8320}#
+ #{m2 8332}#)))
+ (let ((#{m2 8336}#
+ (cdr #{w2
8319}#)))
+ (if (null? #{m2
8336}#)
+ #{s1 8321}#
+ (append
+ #{s1 8321}#
+ #{m2
8336}#))))))))
+ (#{module 8312}#
+ (vector-ref #{x 8298}# 3)))
+ (vector
+ 'syntax-object
+ #{expression 8310}#
+ #{wrap 8311}#
+ #{module 8312}#))
+ (if (null? #{x 8298}#)
+ #{x 8298}#
+ (vector
+ 'syntax-object
+ #{x 8298}#
+ #{w 3533}#
+ #{mod 3535}#))))))))))))))
+ #{tmp 3542}#)
+ (let ((#{tmp 3571}#
+ ($sc-dispatch
+ #{e 3531}#
+ '(_ (any . each-any) any))))
+ (if #{tmp 3571}#
+ (@apply
+ (lambda (#{head 3575}# #{tail 3576}# #{val 3577}#)
+ (call-with-values
+ (lambda ()
+ (#{syntax-type 439}#
+ #{head 3575}#
+ #{r 3532}#
+ '(())
+ #f
+ #f
+ #{mod 3535}#
+ #t))
+ (lambda (#{type 3580}#
+ #{value 3581}#
+ #{ee 3582}#
+ #{ww 3583}#
+ #{ss 3584}#
+ #{modmod 3585}#)
+ (if (memv #{type 3580}# '(module-ref))
+ (let ((#{val 3594}#
+ (#{chi 441}#
+ #{val 3577}#
+ #{r 3532}#
+ #{w 3533}#
+ #{mod 3535}#)))
+ (call-with-values
+ (lambda ()
+ (#{value 3581}#
+ (cons #{head 3575}# #{tail 3576}#)
+ #{r 3532}#
+ #{w 3533}#))
+ (lambda (#{e 3596}#
+ #{r 3597}#
+ #{w 3598}#
+ #{s* 3599}#
+ #{mod 3600}#)
+ (let ((#{tmp 3607}# (list #{e 3596}#)))
+ (if (if #{tmp 3607}#
+ (@apply
+ (lambda (#{e 3609}#)
+ (if (symbol? #{e 3609}#)
+ #t
+ (if (if (vector? #{e 3609}#)
+ (if (= (vector-length
+ #{e 3609}#)
+ 4)
+ (eq? (vector-ref
+ #{e 3609}#
+ 0)
+ 'syntax-object)
+ #f)
+ #f)
+ (symbol?
+ (vector-ref #{e 3609}# 1))
+ #f)))
+ #{tmp 3607}#)
+ #f)
+ (@apply
+ (lambda (#{e 3611}#)
+ (let ((#{var 8407}#
+ (syntax->datum #{e 3611}#)))
+ (begin
+ (if (if (struct? #{val 3594}#)
+ (eq? (struct-vtable
+ #{val 3594}#)
+ (vector-ref
+ %expanded-vtables
+ 14))
+ #f)
+ (let ((#{meta 8418}#
+ (struct-ref
+ #{val 3594}#
+ 1)))
+ (if (not (assq 'name
+ #{meta 8418}#))
+ (let ((#{v 8428}#
+ (cons (cons 'name
+ #{var
8407}#)
+ #{meta
8418}#)))
+ (struct-set!
+ #{val 3594}#
+ 1
+ #{v 8428}#)))))
+ (#{analyze-variable 283}#
+ #{mod 3600}#
+ #{var 8407}#
+ (lambda (#{mod 8410}#
+ #{var 8411}#
+ #{public? 8412}#)
+ (make-struct/no-tail
+ (vector-ref
+ %expanded-vtables
+ 6)
+ #{s 3534}#
+ #{mod 8410}#
+ #{var 8411}#
+ #{public? 8412}#
+ #{val 3594}#))
+ (lambda (#{var 8413}#)
+ (make-struct/no-tail
+ (vector-ref
+ %expanded-vtables
+ 8)
+ #{s 3534}#
+ #{var 8413}#
+ #{val 3594}#))))))
+ #{tmp 3607}#)
+ (syntax-violation
+ #f
+ "source expression failed to match any
pattern"
+ #{e 3596}#))))))
+ (#{build-call 273}#
+ #{s 3534}#
+ (#{chi 441}#
+ (list '#(syntax-object
+ setter
+ ((top)
+ #(ribcage () () ())
+ #(ribcage () () ())
+ #(ribcage
+ #(type value ee ww ss modmod)
+ #((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ #("i3586"
+ "i3587"
+ "i3588"
+ "i3589"
+ "i3590"
+ "i3591"))
+ #(ribcage
+ #(head tail val)
+ #((top) (top) (top))
+ #("i3572" "i3573" "i3574"))
+ #(ribcage () () ())
+ #(ribcage
+ #(e r w s mod)
+ #((top) (top) (top) (top) (top))
+ #("i3536"
+ "i3537"
+ "i3538"
+ "i3539"
+ "i3540"))
+ #(ribcage
+ (lambda-var-list
+ gen-var
+ strip
+ chi-lambda-case
+ lambda*-formals
+ chi-simple-lambda
+ lambda-formals
+ ellipsis?
+ chi-void
+ eval-local-transformer
+ chi-local-syntax
+ chi-body
+ chi-macro
+ chi-call
+ chi-expr
+ chi
+ syntax-type
+ chi-when-list
+ chi-install-global
+ chi-top-sequence
+ chi-sequence
+ source-wrap
+ wrap
+ bound-id-member?
+ distinct-bound-ids?
+ valid-bound-ids?
+ bound-id=?
+ free-id=?
+ id-var-name
+ same-marks?
+ join-marks
+ join-wraps
+ smart-append
+ make-binding-wrap
+ extend-ribcage!
+ make-empty-ribcage
+ new-mark
+ anti-mark
+ the-anti-mark
+ top-marked?
+ top-wrap
+ empty-wrap
+ set-ribcage-labels!
+ set-ribcage-marks!
+ set-ribcage-symnames!
+ ribcage-labels
+ ribcage-marks
+ ribcage-symnames
+ ribcage?
+ make-ribcage
+ gen-labels
+ gen-label
+ make-rename
+ rename-marks
+ rename-new
+ rename-old
+ subst-rename?
+ wrap-subst
+ wrap-marks
+ make-wrap
+ id-sym-name&marks
+ id-sym-name
+ id?
+ nonsymbol-id?
+ global-extend
+ lookup
+ macros-only-env
+ extend-var-env
+ extend-env
+ null-env
+ binding-value
+ binding-type
+ make-binding
+ arg-check
+ source-annotation
+ no-source
+ set-syntax-object-module!
+ set-syntax-object-wrap!
+ set-syntax-object-expression!
+ syntax-object-module
+ syntax-object-wrap
+ syntax-object-expression
+ syntax-object?
+ make-syntax-object
+ build-lexical-var
+ build-letrec
+ build-named-let
+ build-let
+ build-sequence
+ build-data
+ build-primref
+ build-primcall
+ build-lambda-case
+ build-case-lambda
+ build-simple-lambda
+ build-global-definition
+ build-global-assignment
+ build-global-reference
+ analyze-variable
+ build-lexical-assignment
+ build-lexical-reference
+ build-dynlet
+ build-conditional
+ build-call
+ build-void
+ maybe-name-value!
+ decorate-source
+ get-global-definition-hook
+ put-global-definition-hook
+ gensym-hook
+ local-eval-hook
+ top-level-eval-hook
+ fx<
+ fx=
+ fx-
+ fx+
+ set-lambda-meta!
+ lambda-meta
+ lambda?
+ make-dynlet
+ make-letrec
+ make-let
+ make-lambda-case
+ make-lambda
+ make-seq
+ make-primcall
+ make-call
+ make-conditional
+ make-toplevel-define
+ make-toplevel-set
+ make-toplevel-ref
+ make-module-set
+ make-module-ref
+ make-lexical-set
+ make-lexical-ref
+ make-primitive-ref
+ make-const
+ make-void)
+ ((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ ("i470"
+ "i468"
+ "i466"
+ "i464"
+ "i462"
+ "i460"
+ "i458"
+ "i456"
+ "i454"
+ "i452"
+ "i450"
+ "i448"
+ "i446"
+ "i444"
+ "i442"
+ "i440"
+ "i438"
+ "i436"
+ "i434"
+ "i432"
+ "i430"
+ "i428"
+ "i426"
+ "i424"
+ "i422"
+ "i420"
+ "i418"
+ "i416"
+ "i414"
+ "i412"
+ "i410"
+ "i408"
+ "i406"
+ "i404"
+ "i402"
+ "i401"
+ "i399"
+ "i396"
+ "i395"
+ "i394"
+ "i392"
+ "i391"
+ "i389"
+ "i387"
+ "i385"
+ "i383"
+ "i381"
+ "i379"
+ "i377"
+ "i375"
+ "i372"
+ "i370"
+ "i369"
+ "i367"
+ "i365"
+ "i363"
+ "i361"
+ "i360"
+ "i359"
+ "i358"
+ "i356"
+ "i355"
+ "i352"
+ "i350"
+ "i348"
+ "i346"
+ "i344"
+ "i342"
+ "i340"
+ "i339"
+ "i338"
+ "i336"
+ "i334"
+ "i333"
+ "i330"
+ "i329"
+ "i327"
+ "i325"
+ "i323"
+ "i321"
+ "i319"
+ "i317"
+ "i315"
+ "i313"
+ "i311"
+ "i308"
+ "i306"
+ "i304"
+ "i302"
+ "i300"
+ "i298"
+ "i296"
+ "i294"
+ "i292"
+ "i290"
+ "i288"
+ "i286"
+ "i284"
+ "i282"
+ "i280"
+ "i278"
+ "i276"
+ "i274"
+ "i272"
+ "i270"
+ "i268"
+ "i266"
+ "i264"
+ "i262"
+ "i261"
+ "i258"
+ "i256"
+ "i255"
+ "i254"
+ "i253"
+ "i252"
+ "i250"
+ "i248"
+ "i246"
+ "i243"
+ "i241"
+ "i239"
+ "i237"
+ "i235"
+ "i233"
+ "i231"
+ "i229"
+ "i227"
+ "i225"
+ "i223"
+ "i221"
+ "i219"
+ "i217"
+ "i215"
+ "i213"
+ "i211"
+ "i209"
+ "i207"))
+ #(ribcage
+ (define-structure
+ define-expansion-accessors
+ define-expansion-constructors)
+ ((top) (top) (top))
+ ("i45" "i44" "i43")))
+ (hygiene guile))
+ #{head 3575}#)
+ #{r 3532}#
+ #{w 3533}#
+ #{mod 3535}#)
+ (map (lambda (#{e 3613}#)
+ (#{chi 441}#
+ #{e 3613}#
+ #{r 3532}#
+ #{w 3533}#
+ #{mod 3535}#))
+ (append
+ #{tail 3576}#
+ (list #{val 3577}#))))))))
+ #{tmp 3571}#)
+ (syntax-violation
+ 'set!
+ "bad set!"
+ (let ((#{x 8603}#
+ (begin
+ (if (if (pair? #{e 3531}#) #{s 3534}# #f)
+ (set-source-properties! #{e 3531}# #{s 3534}#))
+ #{e 3531}#)))
+ (if (if (null? (car #{w 3533}#))
+ (null? (cdr #{w 3533}#))
+ #f)
+ #{x 8603}#
+ (if (if (vector? #{x 8603}#)
+ (if (= (vector-length #{x 8603}#) 4)
+ (eq? (vector-ref #{x 8603}# 0) 'syntax-object)
+ #f)
+ #f)
+ (let ((#{expression 8615}# (vector-ref #{x 8603}# 1))
+ (#{wrap 8616}#
+ (let ((#{w2 8624}# (vector-ref #{x 8603}# 2)))
+ (let ((#{m1 8625}# (car #{w 3533}#))
+ (#{s1 8626}# (cdr #{w 3533}#)))
+ (if (null? #{m1 8625}#)
+ (if (null? #{s1 8626}#)
+ #{w2 8624}#
+ (cons (car #{w2 8624}#)
+ (let ((#{m2 8633}#
+ (cdr #{w2 8624}#)))
+ (if (null? #{m2 8633}#)
+ #{s1 8626}#
+ (append
+ #{s1 8626}#
+ #{m2 8633}#)))))
+ (cons (let ((#{m2 8637}#
+ (car #{w2 8624}#)))
+ (if (null? #{m2 8637}#)
+ #{m1 8625}#
+ (append
+ #{m1 8625}#
+ #{m2 8637}#)))
+ (let ((#{m2 8641}#
+ (cdr #{w2 8624}#)))
+ (if (null? #{m2 8641}#)
+ #{s1 8626}#
+ (append
+ #{s1 8626}#
+ #{m2 8641}#))))))))
+ (#{module 8617}# (vector-ref #{x 8603}# 3)))
+ (vector
+ 'syntax-object
+ #{expression 8615}#
+ #{wrap 8616}#
+ #{module 8617}#))
+ (if (null? #{x 8603}#)
+ #{x 8603}#
+ (vector
+ 'syntax-object
+ #{x 8603}#
+ #{w 3533}#
+ #{mod 3535}#))))))))))))
+ (module-define!
+ (current-module)
+ '@
+ (make-syntax-transformer
+ '@
+ 'module-ref
+ (lambda (#{e 3618}# #{r 3619}# #{w 3620}#)
+ (let ((#{tmp 3625}#
+ ($sc-dispatch #{e 3618}# '(_ each-any any))))
+ (if (if #{tmp 3625}#
(@apply
- (lambda (#{val 3963}# #{key 3964}# #{m 3965}#)
- (if (and-map
- (lambda (#{x 3966}#)
- (if (#{id? 343}# #{x 3966}#)
- (not (#{ellipsis? 439}# #{x 3966}#))
- #f))
- #{key 3964}#)
- (let ((#{x 3972}# (#{gen-var 451}# 'tmp)))
- (#{build-call 267}#
- #{s 3949}#
- (#{build-simple-lambda 285}#
- #f
- (list 'tmp)
- #f
- (list #{x 3972}#)
- '()
- (#{gen-syntax-case 3723}#
- (#{build-lexical-reference 273}#
- 'value
- #f
- 'tmp
- #{x 3972}#)
- #{key 3964}#
- #{m 3965}#
- #{r 3947}#
- #{mod 3950}#))
- (list (#{chi 423}#
- #{val 3963}#
- #{r 3947}#
- '(())
- #{mod 3950}#))))
- (syntax-violation
- 'syntax-case
- "invalid literals list"
- #{e 3957}#)))
- #{tmp 3959}#)
- (syntax-violation
+ (lambda (#{mod 3628}# #{id 3629}#)
+ (if (and-map #{id? 353}# #{mod 3628}#)
+ (if (symbol? #{id 3629}#)
+ #t
+ (if (if (vector? #{id 3629}#)
+ (if (= (vector-length #{id 3629}#) 4)
+ (eq? (vector-ref #{id 3629}# 0)
+ 'syntax-object)
+ #f)
+ #f)
+ (symbol? (vector-ref #{id 3629}# 1))
+ #f))
+ #f))
+ #{tmp 3625}#)
+ #f)
+ (@apply
+ (lambda (#{mod 3635}# #{id 3636}#)
+ (values
+ (syntax->datum #{id 3636}#)
+ #{r 3619}#
+ #{w 3620}#
#f
- "source expression failed to match any pattern"
- #{tmp 3958}#))))))))
- (set! macroexpand
- (lambda*
- (#{x 3978}#
- #:optional
- (#{m 3980}# 'e)
- (#{esew 3982}# '(eval)))
- (#{chi-top-sequence 415}#
- (list #{x 3978}#)
- '()
- '((top))
- #f
- #{m 3980}#
- #{esew 3982}#
- (cons 'hygiene (module-name (current-module))))))
- (set! identifier?
- (lambda (#{x 3986}#)
- (#{nonsymbol-id? 341}# #{x 3986}#)))
- (set! datum->syntax
- (lambda (#{id 3988}# #{datum 3989}#)
- (#{make-syntax-object 307}#
- #{datum 3989}#
- (#{syntax-object-wrap 313}# #{id 3988}#)
- (#{syntax-object-module 315}# #{id 3988}#))))
- (set! syntax->datum
- (lambda (#{x 3992}#)
- (#{strip 449}# #{x 3992}# '(()))))
- (set! syntax-source
- (lambda (#{x 3995}#)
- (#{source-annotation 324}# #{x 3995}#)))
- (set! generate-temporaries
- (lambda (#{ls 3997}#)
- (begin
- (let ((#{x 4001}# #{ls 3997}#))
- (if (not (list? #{x 4001}#))
- (syntax-violation
- 'generate-temporaries
- "invalid argument"
- #{x 4001}#)))
- (let ((#{mod 4003}#
- (cons 'hygiene (module-name (current-module)))))
- (map (lambda (#{x 4004}#)
- (#{wrap 409}# (gensym) '((top)) #{mod 4003}#))
- #{ls 3997}#)))))
- (set! free-identifier=?
- (lambda (#{x 4008}# #{y 4009}#)
- (begin
- (let ((#{x 4014}# #{x 4008}#))
- (if (not (#{nonsymbol-id? 341}# #{x 4014}#))
- (syntax-violation
- 'free-identifier=?
- "invalid argument"
- #{x 4014}#)))
- (let ((#{x 4017}# #{y 4009}#))
- (if (not (#{nonsymbol-id? 341}# #{x 4017}#))
- (syntax-violation
- 'free-identifier=?
- "invalid argument"
- #{x 4017}#)))
- (#{free-id=? 399}# #{x 4008}# #{y 4009}#))))
- (set! bound-identifier=?
- (lambda (#{x 4018}# #{y 4019}#)
- (begin
- (let ((#{x 4024}# #{x 4018}#))
- (if (not (#{nonsymbol-id? 341}# #{x 4024}#))
- (syntax-violation
- 'bound-identifier=?
- "invalid argument"
- #{x 4024}#)))
- (let ((#{x 4027}# #{y 4019}#))
- (if (not (#{nonsymbol-id? 341}# #{x 4027}#))
- (syntax-violation
- 'bound-identifier=?
- "invalid argument"
- #{x 4027}#)))
- (#{bound-id=? 401}# #{x 4018}# #{y 4019}#))))
- (set! syntax-violation
- (lambda*
- (#{who 4028}#
- #{message 4029}#
- #{form 4030}#
- #:optional
- (#{subform 4034}# #f))
- (begin
- (let ((#{x 4038}# #{who 4028}#))
- (if (not (let ((#{x 4039}# #{x 4038}#))
- (let ((#{t 4043}# (not #{x 4039}#)))
- (if #{t 4043}#
- #{t 4043}#
- (let ((#{t 4046}# (string? #{x 4039}#)))
- (if #{t 4046}#
- #{t 4046}#
- (symbol? #{x 4039}#)))))))
+ (syntax->datum
+ (cons '#(syntax-object
+ public
+ ((top)
+ #(ribcage
+ #(mod id)
+ #((top) (top))
+ #("i3633" "i3634"))
+ #(ribcage () () ())
+ #(ribcage
+ #(e r w)
+ #((top) (top) (top))
+ #("i3621" "i3622" "i3623"))
+ #(ribcage
+ (lambda-var-list
+ gen-var
+ strip
+ chi-lambda-case
+ lambda*-formals
+ chi-simple-lambda
+ lambda-formals
+ ellipsis?
+ chi-void
+ eval-local-transformer
+ chi-local-syntax
+ chi-body
+ chi-macro
+ chi-call
+ chi-expr
+ chi
+ syntax-type
+ chi-when-list
+ chi-install-global
+ chi-top-sequence
+ chi-sequence
+ source-wrap
+ wrap
+ bound-id-member?
+ distinct-bound-ids?
+ valid-bound-ids?
+ bound-id=?
+ free-id=?
+ id-var-name
+ same-marks?
+ join-marks
+ join-wraps
+ smart-append
+ make-binding-wrap
+ extend-ribcage!
+ make-empty-ribcage
+ new-mark
+ anti-mark
+ the-anti-mark
+ top-marked?
+ top-wrap
+ empty-wrap
+ set-ribcage-labels!
+ set-ribcage-marks!
+ set-ribcage-symnames!
+ ribcage-labels
+ ribcage-marks
+ ribcage-symnames
+ ribcage?
+ make-ribcage
+ gen-labels
+ gen-label
+ make-rename
+ rename-marks
+ rename-new
+ rename-old
+ subst-rename?
+ wrap-subst
+ wrap-marks
+ make-wrap
+ id-sym-name&marks
+ id-sym-name
+ id?
+ nonsymbol-id?
+ global-extend
+ lookup
+ macros-only-env
+ extend-var-env
+ extend-env
+ null-env
+ binding-value
+ binding-type
+ make-binding
+ arg-check
+ source-annotation
+ no-source
+ set-syntax-object-module!
+ set-syntax-object-wrap!
+ set-syntax-object-expression!
+ syntax-object-module
+ syntax-object-wrap
+ syntax-object-expression
+ syntax-object?
+ make-syntax-object
+ build-lexical-var
+ build-letrec
+ build-named-let
+ build-let
+ build-sequence
+ build-data
+ build-primref
+ build-primcall
+ build-lambda-case
+ build-case-lambda
+ build-simple-lambda
+ build-global-definition
+ build-global-assignment
+ build-global-reference
+ analyze-variable
+ build-lexical-assignment
+ build-lexical-reference
+ build-dynlet
+ build-conditional
+ build-call
+ build-void
+ maybe-name-value!
+ decorate-source
+ get-global-definition-hook
+ put-global-definition-hook
+ gensym-hook
+ local-eval-hook
+ top-level-eval-hook
+ fx<
+ fx=
+ fx-
+ fx+
+ set-lambda-meta!
+ lambda-meta
+ lambda?
+ make-dynlet
+ make-letrec
+ make-let
+ make-lambda-case
+ make-lambda
+ make-seq
+ make-primcall
+ make-call
+ make-conditional
+ make-toplevel-define
+ make-toplevel-set
+ make-toplevel-ref
+ make-module-set
+ make-module-ref
+ make-lexical-set
+ make-lexical-ref
+ make-primitive-ref
+ make-const
+ make-void)
+ ((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ ("i470"
+ "i468"
+ "i466"
+ "i464"
+ "i462"
+ "i460"
+ "i458"
+ "i456"
+ "i454"
+ "i452"
+ "i450"
+ "i448"
+ "i446"
+ "i444"
+ "i442"
+ "i440"
+ "i438"
+ "i436"
+ "i434"
+ "i432"
+ "i430"
+ "i428"
+ "i426"
+ "i424"
+ "i422"
+ "i420"
+ "i418"
+ "i416"
+ "i414"
+ "i412"
+ "i410"
+ "i408"
+ "i406"
+ "i404"
+ "i402"
+ "i401"
+ "i399"
+ "i396"
+ "i395"
+ "i394"
+ "i392"
+ "i391"
+ "i389"
+ "i387"
+ "i385"
+ "i383"
+ "i381"
+ "i379"
+ "i377"
+ "i375"
+ "i372"
+ "i370"
+ "i369"
+ "i367"
+ "i365"
+ "i363"
+ "i361"
+ "i360"
+ "i359"
+ "i358"
+ "i356"
+ "i355"
+ "i352"
+ "i350"
+ "i348"
+ "i346"
+ "i344"
+ "i342"
+ "i340"
+ "i339"
+ "i338"
+ "i336"
+ "i334"
+ "i333"
+ "i330"
+ "i329"
+ "i327"
+ "i325"
+ "i323"
+ "i321"
+ "i319"
+ "i317"
+ "i315"
+ "i313"
+ "i311"
+ "i308"
+ "i306"
+ "i304"
+ "i302"
+ "i300"
+ "i298"
+ "i296"
+ "i294"
+ "i292"
+ "i290"
+ "i288"
+ "i286"
+ "i284"
+ "i282"
+ "i280"
+ "i278"
+ "i276"
+ "i274"
+ "i272"
+ "i270"
+ "i268"
+ "i266"
+ "i264"
+ "i262"
+ "i261"
+ "i258"
+ "i256"
+ "i255"
+ "i254"
+ "i253"
+ "i252"
+ "i250"
+ "i248"
+ "i246"
+ "i243"
+ "i241"
+ "i239"
+ "i237"
+ "i235"
+ "i233"
+ "i231"
+ "i229"
+ "i227"
+ "i225"
+ "i223"
+ "i221"
+ "i219"
+ "i217"
+ "i215"
+ "i213"
+ "i211"
+ "i209"
+ "i207"))
+ #(ribcage
+ (define-structure
+ define-expansion-accessors
+ define-expansion-constructors)
+ ((top) (top) (top))
+ ("i45" "i44" "i43")))
+ (hygiene guile))
+ #{mod 3635}#))))
+ #{tmp 3625}#)
(syntax-violation
- 'syntax-violation
- "invalid argument"
- #{x 4038}#)))
- (let ((#{x 4050}# #{message 4029}#))
- (if (not (string? #{x 4050}#))
+ #f
+ "source expression failed to match any pattern"
+ #{e 3618}#))))))
+ (#{global-extend 349}#
+ 'module-ref
+ '@@
+ (lambda (#{e 3638}# #{r 3639}# #{w 3640}#)
+ (letrec*
+ ((#{remodulate 3645}#
+ (lambda (#{x 3646}# #{mod 3647}#)
+ (if (pair? #{x 3646}#)
+ (cons (#{remodulate 3645}#
+ (car #{x 3646}#)
+ #{mod 3647}#)
+ (#{remodulate 3645}#
+ (cdr #{x 3646}#)
+ #{mod 3647}#))
+ (if (if (vector? #{x 3646}#)
+ (if (= (vector-length #{x 3646}#) 4)
+ (eq? (vector-ref #{x 3646}# 0) 'syntax-object)
+ #f)
+ #f)
+ (let ((#{expression 8715}#
+ (#{remodulate 3645}#
+ (vector-ref #{x 3646}# 1)
+ #{mod 3647}#))
+ (#{wrap 8716}# (vector-ref #{x 3646}# 2)))
+ (vector
+ 'syntax-object
+ #{expression 8715}#
+ #{wrap 8716}#
+ #{mod 3647}#))
+ (if (vector? #{x 3646}#)
+ (let ((#{n 3658}# (vector-length #{x 3646}#)))
+ (let ((#{v 3660}# (make-vector #{n 3658}#)))
+ (letrec*
+ ((#{loop 3663}#
+ (lambda (#{i 3664}#)
+ (if (= #{i 3664}# #{n 3658}#)
+ #{v 3660}#
+ (begin
+ (vector-set!
+ #{v 3660}#
+ #{i 3664}#
+ (#{remodulate 3645}#
+ (vector-ref #{x 3646}# #{i 3664}#)
+ #{mod 3647}#))
+ (#{loop 3663}# (#{1+}# #{i 3664}#)))))))
+ (#{loop 3663}# 0))))
+ #{x 3646}#))))))
+ (let ((#{tmp 3671}#
+ ($sc-dispatch #{e 3638}# '(_ each-any any))))
+ (if (if #{tmp 3671}#
+ (@apply
+ (lambda (#{mod 3674}# #{exp 3675}#)
+ (and-map #{id? 353}# #{mod 3674}#))
+ #{tmp 3671}#)
+ #f)
+ (@apply
+ (lambda (#{mod 3679}# #{exp 3680}#)
+ (let ((#{mod 3682}#
+ (syntax->datum
+ (cons '#(syntax-object
+ private
+ ((top)
+ #(ribcage
+ #(mod exp)
+ #((top) (top))
+ #("i3677" "i3678"))
+ #(ribcage (remodulate) ((top)) ("i3644"))
+ #(ribcage
+ #(e r w)
+ #((top) (top) (top))
+ #("i3641" "i3642" "i3643"))
+ #(ribcage
+ (lambda-var-list
+ gen-var
+ strip
+ chi-lambda-case
+ lambda*-formals
+ chi-simple-lambda
+ lambda-formals
+ ellipsis?
+ chi-void
+ eval-local-transformer
+ chi-local-syntax
+ chi-body
+ chi-macro
+ chi-call
+ chi-expr
+ chi
+ syntax-type
+ chi-when-list
+ chi-install-global
+ chi-top-sequence
+ chi-sequence
+ source-wrap
+ wrap
+ bound-id-member?
+ distinct-bound-ids?
+ valid-bound-ids?
+ bound-id=?
+ free-id=?
+ id-var-name
+ same-marks?
+ join-marks
+ join-wraps
+ smart-append
+ make-binding-wrap
+ extend-ribcage!
+ make-empty-ribcage
+ new-mark
+ anti-mark
+ the-anti-mark
+ top-marked?
+ top-wrap
+ empty-wrap
+ set-ribcage-labels!
+ set-ribcage-marks!
+ set-ribcage-symnames!
+ ribcage-labels
+ ribcage-marks
+ ribcage-symnames
+ ribcage?
+ make-ribcage
+ gen-labels
+ gen-label
+ make-rename
+ rename-marks
+ rename-new
+ rename-old
+ subst-rename?
+ wrap-subst
+ wrap-marks
+ make-wrap
+ id-sym-name&marks
+ id-sym-name
+ id?
+ nonsymbol-id?
+ global-extend
+ lookup
+ macros-only-env
+ extend-var-env
+ extend-env
+ null-env
+ binding-value
+ binding-type
+ make-binding
+ arg-check
+ source-annotation
+ no-source
+ set-syntax-object-module!
+ set-syntax-object-wrap!
+ set-syntax-object-expression!
+ syntax-object-module
+ syntax-object-wrap
+ syntax-object-expression
+ syntax-object?
+ make-syntax-object
+ build-lexical-var
+ build-letrec
+ build-named-let
+ build-let
+ build-sequence
+ build-data
+ build-primref
+ build-primcall
+ build-lambda-case
+ build-case-lambda
+ build-simple-lambda
+ build-global-definition
+ build-global-assignment
+ build-global-reference
+ analyze-variable
+ build-lexical-assignment
+ build-lexical-reference
+ build-dynlet
+ build-conditional
+ build-call
+ build-void
+ maybe-name-value!
+ decorate-source
+ get-global-definition-hook
+ put-global-definition-hook
+ gensym-hook
+ local-eval-hook
+ top-level-eval-hook
+ fx<
+ fx=
+ fx-
+ fx+
+ set-lambda-meta!
+ lambda-meta
+ lambda?
+ make-dynlet
+ make-letrec
+ make-let
+ make-lambda-case
+ make-lambda
+ make-seq
+ make-primcall
+ make-call
+ make-conditional
+ make-toplevel-define
+ make-toplevel-set
+ make-toplevel-ref
+ make-module-set
+ make-module-ref
+ make-lexical-set
+ make-lexical-ref
+ make-primitive-ref
+ make-const
+ make-void)
+ ((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ ("i470"
+ "i468"
+ "i466"
+ "i464"
+ "i462"
+ "i460"
+ "i458"
+ "i456"
+ "i454"
+ "i452"
+ "i450"
+ "i448"
+ "i446"
+ "i444"
+ "i442"
+ "i440"
+ "i438"
+ "i436"
+ "i434"
+ "i432"
+ "i430"
+ "i428"
+ "i426"
+ "i424"
+ "i422"
+ "i420"
+ "i418"
+ "i416"
+ "i414"
+ "i412"
+ "i410"
+ "i408"
+ "i406"
+ "i404"
+ "i402"
+ "i401"
+ "i399"
+ "i396"
+ "i395"
+ "i394"
+ "i392"
+ "i391"
+ "i389"
+ "i387"
+ "i385"
+ "i383"
+ "i381"
+ "i379"
+ "i377"
+ "i375"
+ "i372"
+ "i370"
+ "i369"
+ "i367"
+ "i365"
+ "i363"
+ "i361"
+ "i360"
+ "i359"
+ "i358"
+ "i356"
+ "i355"
+ "i352"
+ "i350"
+ "i348"
+ "i346"
+ "i344"
+ "i342"
+ "i340"
+ "i339"
+ "i338"
+ "i336"
+ "i334"
+ "i333"
+ "i330"
+ "i329"
+ "i327"
+ "i325"
+ "i323"
+ "i321"
+ "i319"
+ "i317"
+ "i315"
+ "i313"
+ "i311"
+ "i308"
+ "i306"
+ "i304"
+ "i302"
+ "i300"
+ "i298"
+ "i296"
+ "i294"
+ "i292"
+ "i290"
+ "i288"
+ "i286"
+ "i284"
+ "i282"
+ "i280"
+ "i278"
+ "i276"
+ "i274"
+ "i272"
+ "i270"
+ "i268"
+ "i266"
+ "i264"
+ "i262"
+ "i261"
+ "i258"
+ "i256"
+ "i255"
+ "i254"
+ "i253"
+ "i252"
+ "i250"
+ "i248"
+ "i246"
+ "i243"
+ "i241"
+ "i239"
+ "i237"
+ "i235"
+ "i233"
+ "i231"
+ "i229"
+ "i227"
+ "i225"
+ "i223"
+ "i221"
+ "i219"
+ "i217"
+ "i215"
+ "i213"
+ "i211"
+ "i209"
+ "i207"))
+ #(ribcage
+ (define-structure
+ define-expansion-accessors
+ define-expansion-constructors)
+ ((top) (top) (top))
+ ("i45" "i44" "i43")))
+ (hygiene guile))
+ #{mod 3679}#))))
+ (values
+ (#{remodulate 3645}# #{exp 3680}# #{mod 3682}#)
+ #{r 3639}#
+ #{w 3640}#
+ (#{source-annotation 331}# #{exp 3680}#)
+ #{mod 3682}#)))
+ #{tmp 3671}#)
(syntax-violation
- 'syntax-violation
- "invalid argument"
- #{x 4050}#)))
- (throw 'syntax-error
- #{who 4028}#
- #{message 4029}#
- (#{source-annotation 324}#
- (let ((#{t 4053}# #{form 4030}#))
- (if #{t 4053}# #{t 4053}# #{subform 4034}#)))
- (#{strip 449}# #{form 4030}# '(()))
- (if #{subform 4034}#
- (#{strip 449}# #{subform 4034}# '(()))
- #f)))))
- (letrec*
- ((#{match-each 4060}#
- (lambda (#{e 4073}# #{p 4074}# #{w 4075}# #{mod 4076}#)
- (if (pair? #{e 4073}#)
- (let ((#{first 4084}#
- (#{match 4072}#
- (car #{e 4073}#)
- #{p 4074}#
- #{w 4075}#
- '()
- #{mod 4076}#)))
- (if #{first 4084}#
- (let ((#{rest 4088}#
- (#{match-each 4060}#
- (cdr #{e 4073}#)
- #{p 4074}#
- #{w 4075}#
- #{mod 4076}#)))
- (if #{rest 4088}#
- (cons #{first 4084}# #{rest 4088}#)
- #f))
- #f))
- (if (null? #{e 4073}#)
- '()
- (if (#{syntax-object? 309}# #{e 4073}#)
- (#{match-each 4060}#
- (#{syntax-object-expression 311}# #{e 4073}#)
- #{p 4074}#
- (#{join-wraps 391}#
- #{w 4075}#
- (#{syntax-object-wrap 313}# #{e 4073}#))
- (#{syntax-object-module 315}# #{e 4073}#))
- #f)))))
- (#{match-each+ 4062}#
- (lambda (#{e 4096}#
- #{x-pat 4097}#
- #{y-pat 4098}#
- #{z-pat 4099}#
- #{w 4100}#
- #{r 4101}#
- #{mod 4102}#)
- (letrec*
- ((#{f 4113}#
- (lambda (#{e 4114}# #{w 4115}#)
- (if (pair? #{e 4114}#)
- (call-with-values
- (lambda ()
- (#{f 4113}# (cdr #{e 4114}#) #{w 4115}#))
- (lambda (#{xr* 4118}# #{y-pat 4119}# #{r 4120}#)
- (if #{r 4120}#
- (if (null? #{y-pat 4119}#)
- (let ((#{xr 4125}#
- (#{match 4072}#
- (car #{e 4114}#)
- #{x-pat 4097}#
- #{w 4115}#
- '()
- #{mod 4102}#)))
- (if #{xr 4125}#
- (values
- (cons #{xr 4125}# #{xr* 4118}#)
- #{y-pat 4119}#
- #{r 4120}#)
- (values #f #f #f)))
- (values
- '()
- (cdr #{y-pat 4119}#)
- (#{match 4072}#
- (car #{e 4114}#)
- (car #{y-pat 4119}#)
- #{w 4115}#
- #{r 4120}#
- #{mod 4102}#)))
- (values #f #f #f))))
- (if (#{syntax-object? 309}# #{e 4114}#)
- (#{f 4113}#
- (#{syntax-object-expression 311}# #{e 4114}#)
- (#{join-wraps 391}# #{w 4115}# #{e 4114}#))
- (values
- '()
- #{y-pat 4098}#
- (#{match 4072}#
- #{e 4114}#
- #{z-pat 4099}#
- #{w 4115}#
- #{r 4101}#
- #{mod 4102}#)))))))
- (#{f 4113}# #{e 4096}# #{w 4100}#))))
- (#{match-each-any 4064}#
- (lambda (#{e 4129}# #{w 4130}# #{mod 4131}#)
- (if (pair? #{e 4129}#)
- (let ((#{l 4138}#
- (#{match-each-any 4064}#
- (cdr #{e 4129}#)
- #{w 4130}#
- #{mod 4131}#)))
- (if #{l 4138}#
- (cons (#{wrap 409}#
- (car #{e 4129}#)
- #{w 4130}#
- #{mod 4131}#)
- #{l 4138}#)
- #f))
- (if (null? #{e 4129}#)
- '()
- (if (#{syntax-object? 309}# #{e 4129}#)
- (#{match-each-any 4064}#
- (#{syntax-object-expression 311}# #{e 4129}#)
- (#{join-wraps 391}#
- #{w 4130}#
- (#{syntax-object-wrap 313}# #{e 4129}#))
- #{mod 4131}#)
- #f)))))
- (#{match-empty 4066}#
- (lambda (#{p 4146}# #{r 4147}#)
- (if (null? #{p 4146}#)
- #{r 4147}#
- (if (eq? #{p 4146}# '_)
- #{r 4147}#
- (if (eq? #{p 4146}# 'any)
- (cons '() #{r 4147}#)
- (if (pair? #{p 4146}#)
- (#{match-empty 4066}#
- (car #{p 4146}#)
- (#{match-empty 4066}#
- (cdr #{p 4146}#)
- #{r 4147}#))
- (if (eq? #{p 4146}# 'each-any)
- (cons '() #{r 4147}#)
- (let ((#{atom-key 4163}# (vector-ref #{p 4146}# 0)))
- (if (memv #{atom-key 4163}# '(each))
- (#{match-empty 4066}#
- (vector-ref #{p 4146}# 1)
- #{r 4147}#)
- (if (memv #{atom-key 4163}# '(each+))
- (#{match-empty 4066}#
- (vector-ref #{p 4146}# 1)
- (#{match-empty 4066}#
- (reverse (vector-ref #{p 4146}# 2))
- (#{match-empty 4066}#
- (vector-ref #{p 4146}# 3)
- #{r 4147}#)))
- (if (memv #{atom-key 4163}# '(free-id atom))
- #{r 4147}#
- (if (memv #{atom-key 4163}# '(vector))
- (#{match-empty 4066}#
- (vector-ref #{p 4146}# 1)
- #{r 4147}#)))))))))))))
- (#{combine 4068}#
- (lambda (#{r* 4168}# #{r 4169}#)
- (if (null? (car #{r* 4168}#))
- #{r 4169}#
- (cons (map car #{r* 4168}#)
- (#{combine 4068}#
- (map cdr #{r* 4168}#)
- #{r 4169}#)))))
- (#{match* 4070}#
- (lambda (#{e 4172}#
- #{p 4173}#
- #{w 4174}#
- #{r 4175}#
- #{mod 4176}#)
- (if (null? #{p 4173}#)
- (if (null? #{e 4172}#) #{r 4175}# #f)
- (if (pair? #{p 4173}#)
- (if (pair? #{e 4172}#)
- (#{match 4072}#
- (car #{e 4172}#)
- (car #{p 4173}#)
- #{w 4174}#
- (#{match 4072}#
- (cdr #{e 4172}#)
- (cdr #{p 4173}#)
- #{w 4174}#
- #{r 4175}#
- #{mod 4176}#)
- #{mod 4176}#)
- #f)
- (if (eq? #{p 4173}# 'each-any)
- (let ((#{l 4193}#
- (#{match-each-any 4064}#
- #{e 4172}#
- #{w 4174}#
- #{mod 4176}#)))
- (if #{l 4193}# (cons #{l 4193}# #{r 4175}#) #f))
- (let ((#{atom-key 4199}# (vector-ref #{p 4173}# 0)))
- (if (memv #{atom-key 4199}# '(each))
- (if (null? #{e 4172}#)
- (#{match-empty 4066}#
- (vector-ref #{p 4173}# 1)
- #{r 4175}#)
- (let ((#{l 4202}#
- (#{match-each 4060}#
- #{e 4172}#
- (vector-ref #{p 4173}# 1)
- #{w 4174}#
- #{mod 4176}#)))
- (if #{l 4202}#
- (letrec*
- ((#{collect 4207}#
- (lambda (#{l 4208}#)
- (if (null? (car #{l 4208}#))
- #{r 4175}#
- (cons (map car #{l 4208}#)
- (#{collect 4207}#
- (map cdr #{l 4208}#)))))))
- (#{collect 4207}# #{l 4202}#))
- #f)))
- (if (memv #{atom-key 4199}# '(each+))
- (call-with-values
- (lambda ()
- (#{match-each+ 4062}#
- #{e 4172}#
- (vector-ref #{p 4173}# 1)
- (vector-ref #{p 4173}# 2)
- (vector-ref #{p 4173}# 3)
- #{w 4174}#
- #{r 4175}#
- #{mod 4176}#))
- (lambda (#{xr* 4210}# #{y-pat 4211}# #{r 4212}#)
- (if #{r 4212}#
- (if (null? #{y-pat 4211}#)
- (if (null? #{xr* 4210}#)
- (#{match-empty 4066}#
- (vector-ref #{p 4173}# 1)
- #{r 4212}#)
- (#{combine 4068}# #{xr* 4210}# #{r 4212}#))
+ #f
+ "source expression failed to match any pattern"
+ #{e 3638}#))))))
+ (#{global-extend 349}#
+ 'core
+ 'if
+ (lambda (#{e 3684}#
+ #{r 3685}#
+ #{w 3686}#
+ #{s 3687}#
+ #{mod 3688}#)
+ (let ((#{tmp 3695}#
+ ($sc-dispatch #{e 3684}# '(_ any any))))
+ (if #{tmp 3695}#
+ (@apply
+ (lambda (#{test 3698}# #{then 3699}#)
+ (#{build-conditional 275}#
+ #{s 3687}#
+ (#{chi 441}#
+ #{test 3698}#
+ #{r 3685}#
+ #{w 3686}#
+ #{mod 3688}#)
+ (#{chi 441}#
+ #{then 3699}#
+ #{r 3685}#
+ #{w 3686}#
+ #{mod 3688}#)
+ (make-struct/no-tail
+ (vector-ref %expanded-vtables 0)
+ #f)))
+ #{tmp 3695}#)
+ (let ((#{tmp 3701}#
+ ($sc-dispatch #{e 3684}# '(_ any any any))))
+ (if #{tmp 3701}#
+ (@apply
+ (lambda (#{test 3705}# #{then 3706}# #{else 3707}#)
+ (#{build-conditional 275}#
+ #{s 3687}#
+ (#{chi 441}#
+ #{test 3705}#
+ #{r 3685}#
+ #{w 3686}#
+ #{mod 3688}#)
+ (#{chi 441}#
+ #{then 3706}#
+ #{r 3685}#
+ #{w 3686}#
+ #{mod 3688}#)
+ (#{chi 441}#
+ #{else 3707}#
+ #{r 3685}#
+ #{w 3686}#
+ #{mod 3688}#)))
+ #{tmp 3701}#)
+ (syntax-violation
+ #f
+ "source expression failed to match any pattern"
+ #{e 3684}#)))))))
+ (#{global-extend 349}#
+ 'core
+ 'with-fluids
+ (lambda (#{e 3708}#
+ #{r 3709}#
+ #{w 3710}#
+ #{s 3711}#
+ #{mod 3712}#)
+ (let ((#{tmp 3719}#
+ ($sc-dispatch
+ #{e 3708}#
+ '(_ #(each (any any)) any . each-any))))
+ (if #{tmp 3719}#
+ (@apply
+ (lambda (#{fluid 3724}#
+ #{val 3725}#
+ #{b 3726}#
+ #{b* 3727}#)
+ ((lambda (#{source 989}#
+ #{fluids 990}#
+ #{vals 991}#
+ #{body 992}#)
+ (#{make-dynlet 244}#
+ #{source 989}#
+ #{fluids 990}#
+ #{vals 991}#
+ #{body 992}#))
+ #{s 3711}#
+ (map (lambda (#{x 3728}#)
+ (#{chi 441}#
+ #{x 3728}#
+ #{r 3709}#
+ #{w 3710}#
+ #{mod 3712}#))
+ #{fluid 3724}#)
+ (map (lambda (#{x 3731}#)
+ (#{chi 441}#
+ #{x 3731}#
+ #{r 3709}#
+ #{w 3710}#
+ #{mod 3712}#))
+ #{val 3725}#)
+ (#{chi-body 449}#
+ (cons #{b 3726}# #{b* 3727}#)
+ (let ((#{x 9559}#
+ (begin
+ (if (if (pair? #{e 3708}#) #{s 3711}# #f)
+ (set-source-properties! #{e 3708}# #{s 3711}#))
+ #{e 3708}#)))
+ (if (if (null? (car #{w 3710}#))
+ (null? (cdr #{w 3710}#))
+ #f)
+ #{x 9559}#
+ (if (if (vector? #{x 9559}#)
+ (if (= (vector-length #{x 9559}#) 4)
+ (eq? (vector-ref #{x 9559}# 0) 'syntax-object)
+ #f)
+ #f)
+ (let ((#{expression 9571}# (vector-ref #{x 9559}# 1))
+ (#{wrap 9572}#
+ (let ((#{w2 9580}# (vector-ref #{x 9559}# 2)))
+ (let ((#{m1 9581}# (car #{w 3710}#))
+ (#{s1 9582}# (cdr #{w 3710}#)))
+ (if (null? #{m1 9581}#)
+ (if (null? #{s1 9582}#)
+ #{w2 9580}#
+ (cons (car #{w2 9580}#)
+ (let ((#{m2 9589}#
+ (cdr #{w2 9580}#)))
+ (if (null? #{m2 9589}#)
+ #{s1 9582}#
+ (append
+ #{s1 9582}#
+ #{m2 9589}#)))))
+ (cons (let ((#{m2 9593}#
+ (car #{w2 9580}#)))
+ (if (null? #{m2 9593}#)
+ #{m1 9581}#
+ (append
+ #{m1 9581}#
+ #{m2 9593}#)))
+ (let ((#{m2 9597}#
+ (cdr #{w2 9580}#)))
+ (if (null? #{m2 9597}#)
+ #{s1 9582}#
+ (append
+ #{s1 9582}#
+ #{m2 9597}#))))))))
+ (#{module 9573}# (vector-ref #{x 9559}# 3)))
+ (vector
+ 'syntax-object
+ #{expression 9571}#
+ #{wrap 9572}#
+ #{module 9573}#))
+ (if (null? #{x 9559}#)
+ #{x 9559}#
+ (vector
+ 'syntax-object
+ #{x 9559}#
+ #{w 3710}#
+ #{mod 3712}#)))))
+ #{r 3709}#
+ #{w 3710}#
+ #{mod 3712}#)))
+ #{tmp 3719}#)
+ (syntax-violation
+ #f
+ "source expression failed to match any pattern"
+ #{e 3708}#)))))
+ (module-define!
+ (current-module)
+ 'begin
+ (make-syntax-transformer 'begin 'begin '()))
+ (module-define!
+ (current-module)
+ 'define
+ (make-syntax-transformer 'define 'define '()))
+ (module-define!
+ (current-module)
+ 'define-syntax
+ (make-syntax-transformer
+ 'define-syntax
+ 'define-syntax
+ '()))
+ (module-define!
+ (current-module)
+ 'eval-when
+ (make-syntax-transformer
+ 'eval-when
+ 'eval-when
+ '()))
+ (#{global-extend 349}#
+ 'core
+ 'syntax-case
+ (letrec*
+ ((#{convert-pattern 3736}#
+ (lambda (#{pattern 3743}# #{keys 3744}#)
+ (letrec*
+ ((#{cvt* 3748}#
+ (lambda (#{p* 3753}# #{n 3754}# #{ids 3755}#)
+ (if (not (pair? #{p* 3753}#))
+ (#{cvt 3752}#
+ #{p* 3753}#
+ #{n 3754}#
+ #{ids 3755}#)
+ (call-with-values
+ (lambda ()
+ (#{cvt* 3748}#
+ (cdr #{p* 3753}#)
+ #{n 3754}#
+ #{ids 3755}#))
+ (lambda (#{y 3759}# #{ids 3760}#)
+ (call-with-values
+ (lambda ()
+ (#{cvt 3752}#
+ (car #{p* 3753}#)
+ #{n 3754}#
+ #{ids 3760}#))
+ (lambda (#{x 3763}# #{ids 3764}#)
+ (values
+ (cons #{x 3763}# #{y 3759}#)
+ #{ids 3764}#))))))))
+ (#{v-reverse 3750}#
+ (lambda (#{x 3767}#)
+ (letrec*
+ ((#{loop 3772}#
+ (lambda (#{r 3773}# #{x 3774}#)
+ (if (not (pair? #{x 3774}#))
+ (values #{r 3773}# #{x 3774}#)
+ (#{loop 3772}#
+ (cons (car #{x 3774}#) #{r 3773}#)
+ (cdr #{x 3774}#))))))
+ (#{loop 3772}# '() #{x 3767}#))))
+ (#{cvt 3752}#
+ (lambda (#{p 3775}# #{n 3776}# #{ids 3777}#)
+ (if (if (symbol? #{p 3775}#)
+ #t
+ (if (if (vector? #{p 3775}#)
+ (if (= (vector-length #{p 3775}#) 4)
+ (eq? (vector-ref #{p 3775}# 0)
+ 'syntax-object)
+ #f)
+ #f)
+ (symbol? (vector-ref #{p 3775}# 1))
+ #f))
+ (if (#{bound-id-member? 425}#
+ #{p 3775}#
+ #{keys 3744}#)
+ (values
+ (vector 'free-id #{p 3775}#)
+ #{ids 3777}#)
+ (if (#{free-id=? 417}#
+ #{p 3775}#
+ '#(syntax-object
+ _
+ ((top)
+ #(ribcage () () ())
+ #(ribcage
+ #(p n ids)
+ #((top) (top) (top))
+ #("i3778" "i3779" "i3780"))
+ #(ribcage
+ (cvt v-reverse cvt*)
+ ((top) (top) (top))
+ ("i3751" "i3749" "i3747"))
+ #(ribcage
+ #(pattern keys)
+ #((top) (top))
+ #("i3745" "i3746"))
+ #(ribcage
+ (gen-syntax-case
+ gen-clause
+ build-dispatch-call
+ convert-pattern)
+ ((top) (top) (top) (top))
+ ("i3741" "i3739" "i3737" "i3735"))
+ #(ribcage
+ (lambda-var-list
+ gen-var
+ strip
+ chi-lambda-case
+ lambda*-formals
+ chi-simple-lambda
+ lambda-formals
+ ellipsis?
+ chi-void
+ eval-local-transformer
+ chi-local-syntax
+ chi-body
+ chi-macro
+ chi-call
+ chi-expr
+ chi
+ syntax-type
+ chi-when-list
+ chi-install-global
+ chi-top-sequence
+ chi-sequence
+ source-wrap
+ wrap
+ bound-id-member?
+ distinct-bound-ids?
+ valid-bound-ids?
+ bound-id=?
+ free-id=?
+ id-var-name
+ same-marks?
+ join-marks
+ join-wraps
+ smart-append
+ make-binding-wrap
+ extend-ribcage!
+ make-empty-ribcage
+ new-mark
+ anti-mark
+ the-anti-mark
+ top-marked?
+ top-wrap
+ empty-wrap
+ set-ribcage-labels!
+ set-ribcage-marks!
+ set-ribcage-symnames!
+ ribcage-labels
+ ribcage-marks
+ ribcage-symnames
+ ribcage?
+ make-ribcage
+ gen-labels
+ gen-label
+ make-rename
+ rename-marks
+ rename-new
+ rename-old
+ subst-rename?
+ wrap-subst
+ wrap-marks
+ make-wrap
+ id-sym-name&marks
+ id-sym-name
+ id?
+ nonsymbol-id?
+ global-extend
+ lookup
+ macros-only-env
+ extend-var-env
+ extend-env
+ null-env
+ binding-value
+ binding-type
+ make-binding
+ arg-check
+ source-annotation
+ no-source
+ set-syntax-object-module!
+ set-syntax-object-wrap!
+ set-syntax-object-expression!
+ syntax-object-module
+ syntax-object-wrap
+ syntax-object-expression
+ syntax-object?
+ make-syntax-object
+ build-lexical-var
+ build-letrec
+ build-named-let
+ build-let
+ build-sequence
+ build-data
+ build-primref
+ build-primcall
+ build-lambda-case
+ build-case-lambda
+ build-simple-lambda
+ build-global-definition
+ build-global-assignment
+ build-global-reference
+ analyze-variable
+ build-lexical-assignment
+ build-lexical-reference
+ build-dynlet
+ build-conditional
+ build-call
+ build-void
+ maybe-name-value!
+ decorate-source
+ get-global-definition-hook
+ put-global-definition-hook
+ gensym-hook
+ local-eval-hook
+ top-level-eval-hook
+ fx<
+ fx=
+ fx-
+ fx+
+ set-lambda-meta!
+ lambda-meta
+ lambda?
+ make-dynlet
+ make-letrec
+ make-let
+ make-lambda-case
+ make-lambda
+ make-seq
+ make-primcall
+ make-call
+ make-conditional
+ make-toplevel-define
+ make-toplevel-set
+ make-toplevel-ref
+ make-module-set
+ make-module-ref
+ make-lexical-set
+ make-lexical-ref
+ make-primitive-ref
+ make-const
+ make-void)
+ ((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ ("i470"
+ "i468"
+ "i466"
+ "i464"
+ "i462"
+ "i460"
+ "i458"
+ "i456"
+ "i454"
+ "i452"
+ "i450"
+ "i448"
+ "i446"
+ "i444"
+ "i442"
+ "i440"
+ "i438"
+ "i436"
+ "i434"
+ "i432"
+ "i430"
+ "i428"
+ "i426"
+ "i424"
+ "i422"
+ "i420"
+ "i418"
+ "i416"
+ "i414"
+ "i412"
+ "i410"
+ "i408"
+ "i406"
+ "i404"
+ "i402"
+ "i401"
+ "i399"
+ "i396"
+ "i395"
+ "i394"
+ "i392"
+ "i391"
+ "i389"
+ "i387"
+ "i385"
+ "i383"
+ "i381"
+ "i379"
+ "i377"
+ "i375"
+ "i372"
+ "i370"
+ "i369"
+ "i367"
+ "i365"
+ "i363"
+ "i361"
+ "i360"
+ "i359"
+ "i358"
+ "i356"
+ "i355"
+ "i352"
+ "i350"
+ "i348"
+ "i346"
+ "i344"
+ "i342"
+ "i340"
+ "i339"
+ "i338"
+ "i336"
+ "i334"
+ "i333"
+ "i330"
+ "i329"
+ "i327"
+ "i325"
+ "i323"
+ "i321"
+ "i319"
+ "i317"
+ "i315"
+ "i313"
+ "i311"
+ "i308"
+ "i306"
+ "i304"
+ "i302"
+ "i300"
+ "i298"
+ "i296"
+ "i294"
+ "i292"
+ "i290"
+ "i288"
+ "i286"
+ "i284"
+ "i282"
+ "i280"
+ "i278"
+ "i276"
+ "i274"
+ "i272"
+ "i270"
+ "i268"
+ "i266"
+ "i264"
+ "i262"
+ "i261"
+ "i258"
+ "i256"
+ "i255"
+ "i254"
+ "i253"
+ "i252"
+ "i250"
+ "i248"
+ "i246"
+ "i243"
+ "i241"
+ "i239"
+ "i237"
+ "i235"
+ "i233"
+ "i231"
+ "i229"
+ "i227"
+ "i225"
+ "i223"
+ "i221"
+ "i219"
+ "i217"
+ "i215"
+ "i213"
+ "i211"
+ "i209"
+ "i207"))
+ #(ribcage
+ (define-structure
+ define-expansion-accessors
+ define-expansion-constructors)
+ ((top) (top) (top))
+ ("i45" "i44" "i43")))
+ (hygiene guile)))
+ (values '_ #{ids 3777}#)
+ (values
+ 'any
+ (cons (cons #{p 3775}# #{n 3776}#) #{ids 3777}#))))
+ (let ((#{tmp 3787}#
+ ($sc-dispatch #{p 3775}# '(any any))))
+ (if (if #{tmp 3787}#
+ (@apply
+ (lambda (#{x 3790}# #{dots 3791}#)
+ (if (if (if (vector? #{dots 3791}#)
+ (if (= (vector-length
+ #{dots 3791}#)
+ 4)
+ (eq? (vector-ref #{dots 3791}# 0)
+ 'syntax-object)
+ #f)
+ #f)
+ (symbol? (vector-ref #{dots 3791}# 1))
+ #f)
+ (#{free-id=? 417}#
+ #{dots 3791}#
+ '#(syntax-object
+ ...
+ ((top)
+ #(ribcage () () ())
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i2262"))
+ #(ribcage
+ (lambda-var-list
+ gen-var
+ strip
+ chi-lambda-case
+ lambda*-formals
+ chi-simple-lambda
+ lambda-formals
+ ellipsis?
+ chi-void
+ eval-local-transformer
+ chi-local-syntax
+ chi-body
+ chi-macro
+ chi-call
+ chi-expr
+ chi
+ syntax-type
+ chi-when-list
+ chi-install-global
+ chi-top-sequence
+ chi-sequence
+ source-wrap
+ wrap
+ bound-id-member?
+ distinct-bound-ids?
+ valid-bound-ids?
+ bound-id=?
+ free-id=?
+ id-var-name
+ same-marks?
+ join-marks
+ join-wraps
+ smart-append
+ make-binding-wrap
+ extend-ribcage!
+ make-empty-ribcage
+ new-mark
+ anti-mark
+ the-anti-mark
+ top-marked?
+ top-wrap
+ empty-wrap
+ set-ribcage-labels!
+ set-ribcage-marks!
+ set-ribcage-symnames!
+ ribcage-labels
+ ribcage-marks
+ ribcage-symnames
+ ribcage?
+ make-ribcage
+ gen-labels
+ gen-label
+ make-rename
+ rename-marks
+ rename-new
+ rename-old
+ subst-rename?
+ wrap-subst
+ wrap-marks
+ make-wrap
+ id-sym-name&marks
+ id-sym-name
+ id?
+ nonsymbol-id?
+ global-extend
+ lookup
+ macros-only-env
+ extend-var-env
+ extend-env
+ null-env
+ binding-value
+ binding-type
+ make-binding
+ arg-check
+ source-annotation
+ no-source
+ set-syntax-object-module!
+ set-syntax-object-wrap!
+ set-syntax-object-expression!
+ syntax-object-module
+ syntax-object-wrap
+ syntax-object-expression
+ syntax-object?
+ make-syntax-object
+ build-lexical-var
+ build-letrec
+ build-named-let
+ build-let
+ build-sequence
+ build-data
+ build-primref
+ build-primcall
+ build-lambda-case
+ build-case-lambda
+ build-simple-lambda
+ build-global-definition
+ build-global-assignment
+ build-global-reference
+ analyze-variable
+ build-lexical-assignment
+ build-lexical-reference
+ build-dynlet
+ build-conditional
+ build-call
+ build-void
+ maybe-name-value!
+ decorate-source
+ get-global-definition-hook
+ put-global-definition-hook
+ gensym-hook
+ local-eval-hook
+ top-level-eval-hook
+ fx<
+ fx=
+ fx-
+ fx+
+ set-lambda-meta!
+ lambda-meta
+ lambda?
+ make-dynlet
+ make-letrec
+ make-let
+ make-lambda-case
+ make-lambda
+ make-seq
+ make-primcall
+ make-call
+ make-conditional
+ make-toplevel-define
+ make-toplevel-set
+ make-toplevel-ref
+ make-module-set
+ make-module-ref
+ make-lexical-set
+ make-lexical-ref
+ make-primitive-ref
+ make-const
+ make-void)
+ ((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ ("i470"
+ "i468"
+ "i466"
+ "i464"
+ "i462"
+ "i460"
+ "i458"
+ "i456"
+ "i454"
+ "i452"
+ "i450"
+ "i448"
+ "i446"
+ "i444"
+ "i442"
+ "i440"
+ "i438"
+ "i436"
+ "i434"
+ "i432"
+ "i430"
+ "i428"
+ "i426"
+ "i424"
+ "i422"
+ "i420"
+ "i418"
+ "i416"
+ "i414"
+ "i412"
+ "i410"
+ "i408"
+ "i406"
+ "i404"
+ "i402"
+ "i401"
+ "i399"
+ "i396"
+ "i395"
+ "i394"
+ "i392"
+ "i391"
+ "i389"
+ "i387"
+ "i385"
+ "i383"
+ "i381"
+ "i379"
+ "i377"
+ "i375"
+ "i372"
+ "i370"
+ "i369"
+ "i367"
+ "i365"
+ "i363"
+ "i361"
+ "i360"
+ "i359"
+ "i358"
+ "i356"
+ "i355"
+ "i352"
+ "i350"
+ "i348"
+ "i346"
+ "i344"
+ "i342"
+ "i340"
+ "i339"
+ "i338"
+ "i336"
+ "i334"
+ "i333"
+ "i330"
+ "i329"
+ "i327"
+ "i325"
+ "i323"
+ "i321"
+ "i319"
+ "i317"
+ "i315"
+ "i313"
+ "i311"
+ "i308"
+ "i306"
+ "i304"
+ "i302"
+ "i300"
+ "i298"
+ "i296"
+ "i294"
+ "i292"
+ "i290"
+ "i288"
+ "i286"
+ "i284"
+ "i282"
+ "i280"
+ "i278"
+ "i276"
+ "i274"
+ "i272"
+ "i270"
+ "i268"
+ "i266"
+ "i264"
+ "i262"
+ "i261"
+ "i258"
+ "i256"
+ "i255"
+ "i254"
+ "i253"
+ "i252"
+ "i250"
+ "i248"
+ "i246"
+ "i243"
+ "i241"
+ "i239"
+ "i237"
+ "i235"
+ "i233"
+ "i231"
+ "i229"
+ "i227"
+ "i225"
+ "i223"
+ "i221"
+ "i219"
+ "i217"
+ "i215"
+ "i213"
+ "i211"
+ "i209"
+ "i207"))
+ #(ribcage
+ (define-structure
+ define-expansion-accessors
+ define-expansion-constructors)
+ ((top) (top) (top))
+ ("i45" "i44" "i43")))
+ (hygiene guile)))
+ #f))
+ #{tmp 3787}#)
+ #f)
+ (@apply
+ (lambda (#{x 3794}# #{dots 3795}#)
+ (call-with-values
+ (lambda ()
+ (#{cvt 3752}#
+ #{x 3794}#
+ (#{1+}# #{n 3776}#)
+ #{ids 3777}#))
+ (lambda (#{p 3797}# #{ids 3798}#)
+ (values
+ (if (eq? #{p 3797}# 'any)
+ 'each-any
+ (vector 'each #{p 3797}#))
+ #{ids 3798}#))))
+ #{tmp 3787}#)
+ (let ((#{tmp 3801}#
+ ($sc-dispatch #{p 3775}# '(any any . any))))
+ (if (if #{tmp 3801}#
+ (@apply
+ (lambda (#{x 3805}#
+ #{dots 3806}#
+ #{ys 3807}#)
+ (if (if (if (vector? #{dots 3806}#)
+ (if (= (vector-length
+ #{dots 3806}#)
+ 4)
+ (eq? (vector-ref
+ #{dots 3806}#
+ 0)
+ 'syntax-object)
+ #f)
+ #f)
+ (symbol?
+ (vector-ref #{dots 3806}# 1))
+ #f)
+ (#{free-id=? 417}#
+ #{dots 3806}#
+ '#(syntax-object
+ ...
+ ((top)
+ #(ribcage () () ())
+ #(ribcage () () ())
+ #(ribcage
+ #(x)
+ #((top))
+ #("i2262"))
+ #(ribcage
+ (lambda-var-list
+ gen-var
+ strip
+ chi-lambda-case
+ lambda*-formals
+ chi-simple-lambda
+ lambda-formals
+ ellipsis?
+ chi-void
+ eval-local-transformer
+ chi-local-syntax
+ chi-body
+ chi-macro
+ chi-call
+ chi-expr
+ chi
+ syntax-type
+ chi-when-list
+ chi-install-global
+ chi-top-sequence
+ chi-sequence
+ source-wrap
+ wrap
+ bound-id-member?
+ distinct-bound-ids?
+ valid-bound-ids?
+ bound-id=?
+ free-id=?
+ id-var-name
+ same-marks?
+ join-marks
+ join-wraps
+ smart-append
+ make-binding-wrap
+ extend-ribcage!
+ make-empty-ribcage
+ new-mark
+ anti-mark
+ the-anti-mark
+ top-marked?
+ top-wrap
+ empty-wrap
+ set-ribcage-labels!
+ set-ribcage-marks!
+ set-ribcage-symnames!
+ ribcage-labels
+ ribcage-marks
+ ribcage-symnames
+ ribcage?
+ make-ribcage
+ gen-labels
+ gen-label
+ make-rename
+ rename-marks
+ rename-new
+ rename-old
+ subst-rename?
+ wrap-subst
+ wrap-marks
+ make-wrap
+ id-sym-name&marks
+ id-sym-name
+ id?
+ nonsymbol-id?
+ global-extend
+ lookup
+ macros-only-env
+ extend-var-env
+ extend-env
+ null-env
+ binding-value
+ binding-type
+ make-binding
+ arg-check
+ source-annotation
+ no-source
+ set-syntax-object-module!
+ set-syntax-object-wrap!
+ set-syntax-object-expression!
+ syntax-object-module
+ syntax-object-wrap
+ syntax-object-expression
+ syntax-object?
+ make-syntax-object
+ build-lexical-var
+ build-letrec
+ build-named-let
+ build-let
+ build-sequence
+ build-data
+ build-primref
+ build-primcall
+ build-lambda-case
+ build-case-lambda
+ build-simple-lambda
+ build-global-definition
+ build-global-assignment
+ build-global-reference
+ analyze-variable
+ build-lexical-assignment
+ build-lexical-reference
+ build-dynlet
+ build-conditional
+ build-call
+ build-void
+ maybe-name-value!
+ decorate-source
+ get-global-definition-hook
+ put-global-definition-hook
+ gensym-hook
+ local-eval-hook
+ top-level-eval-hook
+ fx<
+ fx=
+ fx-
+ fx+
+ set-lambda-meta!
+ lambda-meta
+ lambda?
+ make-dynlet
+ make-letrec
+ make-let
+ make-lambda-case
+ make-lambda
+ make-seq
+ make-primcall
+ make-call
+ make-conditional
+ make-toplevel-define
+ make-toplevel-set
+ make-toplevel-ref
+ make-module-set
+ make-module-ref
+ make-lexical-set
+ make-lexical-ref
+ make-primitive-ref
+ make-const
+ make-void)
+ ((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ ("i470"
+ "i468"
+ "i466"
+ "i464"
+ "i462"
+ "i460"
+ "i458"
+ "i456"
+ "i454"
+ "i452"
+ "i450"
+ "i448"
+ "i446"
+ "i444"
+ "i442"
+ "i440"
+ "i438"
+ "i436"
+ "i434"
+ "i432"
+ "i430"
+ "i428"
+ "i426"
+ "i424"
+ "i422"
+ "i420"
+ "i418"
+ "i416"
+ "i414"
+ "i412"
+ "i410"
+ "i408"
+ "i406"
+ "i404"
+ "i402"
+ "i401"
+ "i399"
+ "i396"
+ "i395"
+ "i394"
+ "i392"
+ "i391"
+ "i389"
+ "i387"
+ "i385"
+ "i383"
+ "i381"
+ "i379"
+ "i377"
+ "i375"
+ "i372"
+ "i370"
+ "i369"
+ "i367"
+ "i365"
+ "i363"
+ "i361"
+ "i360"
+ "i359"
+ "i358"
+ "i356"
+ "i355"
+ "i352"
+ "i350"
+ "i348"
+ "i346"
+ "i344"
+ "i342"
+ "i340"
+ "i339"
+ "i338"
+ "i336"
+ "i334"
+ "i333"
+ "i330"
+ "i329"
+ "i327"
+ "i325"
+ "i323"
+ "i321"
+ "i319"
+ "i317"
+ "i315"
+ "i313"
+ "i311"
+ "i308"
+ "i306"
+ "i304"
+ "i302"
+ "i300"
+ "i298"
+ "i296"
+ "i294"
+ "i292"
+ "i290"
+ "i288"
+ "i286"
+ "i284"
+ "i282"
+ "i280"
+ "i278"
+ "i276"
+ "i274"
+ "i272"
+ "i270"
+ "i268"
+ "i266"
+ "i264"
+ "i262"
+ "i261"
+ "i258"
+ "i256"
+ "i255"
+ "i254"
+ "i253"
+ "i252"
+ "i250"
+ "i248"
+ "i246"
+ "i243"
+ "i241"
+ "i239"
+ "i237"
+ "i235"
+ "i233"
+ "i231"
+ "i229"
+ "i227"
+ "i225"
+ "i223"
+ "i221"
+ "i219"
+ "i217"
+ "i215"
+ "i213"
+ "i211"
+ "i209"
+ "i207"))
+ #(ribcage
+ (define-structure
+ define-expansion-accessors
+
define-expansion-constructors)
+ ((top) (top) (top))
+ ("i45" "i44" "i43")))
+ (hygiene guile)))
+ #f))
+ #{tmp 3801}#)
+ #f)
+ (@apply
+ (lambda (#{x 3811}# #{dots 3812}# #{ys 3813}#)
+ (call-with-values
+ (lambda ()
+ (#{cvt* 3748}#
+ #{ys 3813}#
+ #{n 3776}#
+ #{ids 3777}#))
+ (lambda (#{ys 3814}# #{ids 3815}#)
+ (call-with-values
+ (lambda ()
+ (#{cvt 3752}#
+ #{x 3811}#
+ (#{1+}# #{n 3776}#)
+ #{ids 3815}#))
+ (lambda (#{x 3818}# #{ids 3819}#)
+ (call-with-values
+ (lambda ()
+ (#{v-reverse 3750}# #{ys 3814}#))
+ (lambda (#{ys 3822}# #{e 3823}#)
+ (values
+ (vector
+ 'each+
+ #{x 3818}#
+ #{ys 3822}#
+ #{e 3823}#)
+ #{ids 3819}#))))))))
+ #{tmp 3801}#)
+ (let ((#{tmp 3827}#
+ ($sc-dispatch #{p 3775}# '(any . any))))
+ (if #{tmp 3827}#
+ (@apply
+ (lambda (#{x 3830}# #{y 3831}#)
+ (call-with-values
+ (lambda ()
+ (#{cvt 3752}#
+ #{y 3831}#
+ #{n 3776}#
+ #{ids 3777}#))
+ (lambda (#{y 3832}# #{ids 3833}#)
+ (call-with-values
+ (lambda ()
+ (#{cvt 3752}#
+ #{x 3830}#
+ #{n 3776}#
+ #{ids 3833}#))
+ (lambda (#{x 3836}# #{ids 3837}#)
+ (values
+ (cons #{x 3836}# #{y 3832}#)
+ #{ids 3837}#))))))
+ #{tmp 3827}#)
+ (let ((#{tmp 3840}#
+ ($sc-dispatch #{p 3775}# '())))
+ (if #{tmp 3840}#
+ (@apply
+ (lambda () (values '() #{ids 3777}#))
+ #{tmp 3840}#)
+ (let ((#{tmp 3841}#
+ ($sc-dispatch
+ #{p 3775}#
+ '#(vector each-any))))
+ (if #{tmp 3841}#
+ (@apply
+ (lambda (#{x 3843}#)
+ (call-with-values
+ (lambda ()
+ (#{cvt 3752}#
+ #{x 3843}#
+ #{n 3776}#
+ #{ids 3777}#))
+ (lambda (#{p 3845}#
+ #{ids 3846}#)
+ (values
+ (vector 'vector #{p 3845}#)
+ #{ids 3846}#))))
+ #{tmp 3841}#)
+ (values
+ (vector
+ 'atom
+ (#{strip 467}# #{p 3775}# '(())))
+ #{ids 3777}#)))))))))))))))
+ (#{cvt 3752}# #{pattern 3743}# 0 '()))))
+ (#{build-dispatch-call 3738}#
+ (lambda (#{pvars 3852}#
+ #{exp 3853}#
+ #{y 3854}#
+ #{r 3855}#
+ #{mod 3856}#)
+ (let ((#{ids 3864}# (map car #{pvars 3852}#)))
+ (begin
+ (map cdr #{pvars 3852}#)
+ (let ((#{labels 3868}#
+ (#{gen-labels 373}# #{ids 3864}#))
+ (#{new-vars 3869}#
+ (map #{gen-var 469}# #{ids 3864}#)))
+ (#{build-primcall 297}#
+ #f
+ 'apply
+ (list (#{build-simple-lambda 291}#
+ #f
+ (map syntax->datum #{ids 3864}#)
+ #f
+ #{new-vars 3869}#
+ '()
+ (#{chi 441}#
+ #{exp 3853}#
+ (#{extend-env 341}#
+ #{labels 3868}#
+ (map (lambda (#{var 3872}# #{level 3873}#)
+ (cons 'syntax
+ (cons #{var 3872}#
+ #{level 3873}#)))
+ #{new-vars 3869}#
+ (map cdr #{pvars 3852}#))
+ #{r 3855}#)
+ (#{make-binding-wrap 405}#
+ #{ids 3864}#
+ #{labels 3868}#
+ '(()))
+ #{mod 3856}#))
+ #{y 3854}#)))))))
+ (#{gen-clause 3740}#
+ (lambda (#{x 3879}#
+ #{keys 3880}#
+ #{clauses 3881}#
+ #{r 3882}#
+ #{pat 3883}#
+ #{fender 3884}#
+ #{exp 3885}#
+ #{mod 3886}#)
+ (call-with-values
+ (lambda ()
+ (#{convert-pattern 3736}#
+ #{pat 3883}#
+ #{keys 3880}#))
+ (lambda (#{p 3895}# #{pvars 3896}#)
+ (if (not (#{distinct-bound-ids? 423}#
+ (map car #{pvars 3896}#)))
+ (syntax-violation
+ 'syntax-case
+ "duplicate pattern variable"
+ #{pat 3883}#)
+ (if (not (and-map
+ (lambda (#{x 3903}#)
+ (not (let ((#{x 10293}# (car #{x 3903}#)))
+ (if (if (if (vector? #{x 10293}#)
+ (if (= (vector-length
+ #{x 10293}#)
+ 4)
+ (eq? (vector-ref
+ #{x 10293}#
+ 0)
+ 'syntax-object)
+ #f)
+ #f)
+ (symbol?
+ (vector-ref #{x 10293}# 1))
+ #f)
+ (#{free-id=? 417}#
+ #{x 10293}#
+ '#(syntax-object
+ ...
+ ((top)
+ #(ribcage () () ())
+ #(ribcage () () ())
+ #(ribcage
+ #(x)
+ #((top))
+ #("i2262"))
+ #(ribcage
+ (lambda-var-list
+ gen-var
+ strip
+ chi-lambda-case
+ lambda*-formals
+ chi-simple-lambda
+ lambda-formals
+ ellipsis?
+ chi-void
+ eval-local-transformer
+ chi-local-syntax
+ chi-body
+ chi-macro
+ chi-call
+ chi-expr
+ chi
+ syntax-type
+ chi-when-list
+ chi-install-global
+ chi-top-sequence
+ chi-sequence
+ source-wrap
+ wrap
+ bound-id-member?
+ distinct-bound-ids?
+ valid-bound-ids?
+ bound-id=?
+ free-id=?
+ id-var-name
+ same-marks?
+ join-marks
+ join-wraps
+ smart-append
+ make-binding-wrap
+ extend-ribcage!
+ make-empty-ribcage
+ new-mark
+ anti-mark
+ the-anti-mark
+ top-marked?
+ top-wrap
+ empty-wrap
+ set-ribcage-labels!
+ set-ribcage-marks!
+ set-ribcage-symnames!
+ ribcage-labels
+ ribcage-marks
+ ribcage-symnames
+ ribcage?
+ make-ribcage
+ gen-labels
+ gen-label
+ make-rename
+ rename-marks
+ rename-new
+ rename-old
+ subst-rename?
+ wrap-subst
+ wrap-marks
+ make-wrap
+ id-sym-name&marks
+ id-sym-name
+ id?
+ nonsymbol-id?
+ global-extend
+ lookup
+ macros-only-env
+ extend-var-env
+ extend-env
+ null-env
+ binding-value
+ binding-type
+ make-binding
+ arg-check
+ source-annotation
+ no-source
+ set-syntax-object-module!
+ set-syntax-object-wrap!
+
set-syntax-object-expression!
+ syntax-object-module
+ syntax-object-wrap
+ syntax-object-expression
+ syntax-object?
+ make-syntax-object
+ build-lexical-var
+ build-letrec
+ build-named-let
+ build-let
+ build-sequence
+ build-data
+ build-primref
+ build-primcall
+ build-lambda-case
+ build-case-lambda
+ build-simple-lambda
+ build-global-definition
+ build-global-assignment
+ build-global-reference
+ analyze-variable
+ build-lexical-assignment
+ build-lexical-reference
+ build-dynlet
+ build-conditional
+ build-call
+ build-void
+ maybe-name-value!
+ decorate-source
+ get-global-definition-hook
+ put-global-definition-hook
+ gensym-hook
+ local-eval-hook
+ top-level-eval-hook
+ fx<
+ fx=
+ fx-
+ fx+
+ set-lambda-meta!
+ lambda-meta
+ lambda?
+ make-dynlet
+ make-letrec
+ make-let
+ make-lambda-case
+ make-lambda
+ make-seq
+ make-primcall
+ make-call
+ make-conditional
+ make-toplevel-define
+ make-toplevel-set
+ make-toplevel-ref
+ make-module-set
+ make-module-ref
+ make-lexical-set
+ make-lexical-ref
+ make-primitive-ref
+ make-const
+ make-void)
+ ((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ ("i470"
+ "i468"
+ "i466"
+ "i464"
+ "i462"
+ "i460"
+ "i458"
+ "i456"
+ "i454"
+ "i452"
+ "i450"
+ "i448"
+ "i446"
+ "i444"
+ "i442"
+ "i440"
+ "i438"
+ "i436"
+ "i434"
+ "i432"
+ "i430"
+ "i428"
+ "i426"
+ "i424"
+ "i422"
+ "i420"
+ "i418"
+ "i416"
+ "i414"
+ "i412"
+ "i410"
+ "i408"
+ "i406"
+ "i404"
+ "i402"
+ "i401"
+ "i399"
+ "i396"
+ "i395"
+ "i394"
+ "i392"
+ "i391"
+ "i389"
+ "i387"
+ "i385"
+ "i383"
+ "i381"
+ "i379"
+ "i377"
+ "i375"
+ "i372"
+ "i370"
+ "i369"
+ "i367"
+ "i365"
+ "i363"
+ "i361"
+ "i360"
+ "i359"
+ "i358"
+ "i356"
+ "i355"
+ "i352"
+ "i350"
+ "i348"
+ "i346"
+ "i344"
+ "i342"
+ "i340"
+ "i339"
+ "i338"
+ "i336"
+ "i334"
+ "i333"
+ "i330"
+ "i329"
+ "i327"
+ "i325"
+ "i323"
+ "i321"
+ "i319"
+ "i317"
+ "i315"
+ "i313"
+ "i311"
+ "i308"
+ "i306"
+ "i304"
+ "i302"
+ "i300"
+ "i298"
+ "i296"
+ "i294"
+ "i292"
+ "i290"
+ "i288"
+ "i286"
+ "i284"
+ "i282"
+ "i280"
+ "i278"
+ "i276"
+ "i274"
+ "i272"
+ "i270"
+ "i268"
+ "i266"
+ "i264"
+ "i262"
+ "i261"
+ "i258"
+ "i256"
+ "i255"
+ "i254"
+ "i253"
+ "i252"
+ "i250"
+ "i248"
+ "i246"
+ "i243"
+ "i241"
+ "i239"
+ "i237"
+ "i235"
+ "i233"
+ "i231"
+ "i229"
+ "i227"
+ "i225"
+ "i223"
+ "i221"
+ "i219"
+ "i217"
+ "i215"
+ "i213"
+ "i211"
+ "i209"
+ "i207"))
+ #(ribcage
+ (define-structure
+ define-expansion-accessors
+
define-expansion-constructors)
+ ((top) (top) (top))
+ ("i45" "i44" "i43")))
+ (hygiene guile)))
+ #f))))
+ #{pvars 3896}#))
+ (syntax-violation
+ 'syntax-case
+ "misplaced ellipsis"
+ #{pat 3883}#)
+ (let ((#{y 3907}#
+ (gensym
+ (string-append (symbol->string 'tmp) " "))))
+ (let ((#{fun-exp 10315}#
+ (let ((#{req 10320}# (list 'tmp))
+ (#{vars 10322}# (list #{y 3907}#))
+ (#{exp 10324}#
+ (let ((#{y 3911}#
+ (make-struct/no-tail
+ (vector-ref
+ %expanded-vtables
+ 3)
+ #f
+ 'tmp
+ #{y 3907}#)))
+ (let ((#{test-exp 10339}#
+ (let ((#{tmp 3915}#
+ ($sc-dispatch
+ #{fender 3884}#
+ '#(atom #t))))
+ (if #{tmp 3915}#
+ (@apply
+ (lambda () #{y 3911}#)
+ #{tmp 3915}#)
+ (let ((#{then-exp 10346}#
+
(#{build-dispatch-call 3738}#
+ #{pvars 3896}#
+ #{fender 3884}#
+ #{y 3911}#
+ #{r 3882}#
+ #{mod 3886}#))
+ (#{else-exp 10347}#
+
(make-struct/no-tail
+ (vector-ref
+
%expanded-vtables
+ 1)
+ #f
+ #f)))
+ (make-struct/no-tail
+ (vector-ref
+ %expanded-vtables
+ 10)
+ #f
+ #{y 3911}#
+ #{then-exp 10346}#
+ #{else-exp
10347}#)))))
+ (#{then-exp 10340}#
+ (#{build-dispatch-call 3738}#
+ #{pvars 3896}#
+ #{exp 3885}#
+ #{y 3911}#
+ #{r 3882}#
+ #{mod 3886}#))
+ (#{else-exp 10341}#
+ (#{gen-syntax-case 3742}#
+ #{x 3879}#
+ #{keys 3880}#
+ #{clauses 3881}#
+ #{r 3882}#
+ #{mod 3886}#)))
+ (make-struct/no-tail
+ (vector-ref %expanded-vtables 10)
+ #f
+ #{test-exp 10339}#
+ #{then-exp 10340}#
+ #{else-exp 10341}#)))))
+ (let ((#{body 10372}#
+ (make-struct/no-tail
+ (vector-ref %expanded-vtables 15)
+ #f
+ #{req 10320}#
+ #f
+ #f
+ #f
+ '()
+ #{vars 10322}#
+ #{exp 10324}#
+ #f)))
+ (make-struct/no-tail
+ (vector-ref %expanded-vtables 14)
+ #f
+ '()
+ #{body 10372}#))))
+ (#{arg-exps 10316}#
+ (list (if (eq? #{p 3895}# 'any)
+ (let ((#{args 10388}#
+ (list #{x 3879}#)))
+ (make-struct/no-tail
+ (vector-ref %expanded-vtables 12)
+ #f
+ 'list
+ #{args 10388}#))
+ (let ((#{args 10398}#
+ (list #{x 3879}#
+ (make-struct/no-tail
+ (vector-ref
+ %expanded-vtables
+ 1)
+ #f
+ #{p 3895}#))))
+ (make-struct/no-tail
+ (vector-ref %expanded-vtables 12)
+ #f
+ '$sc-dispatch
+ #{args 10398}#))))))
+ (make-struct/no-tail
+ (vector-ref %expanded-vtables 11)
+ #f
+ #{fun-exp 10315}#
+ #{arg-exps 10316}#)))))))))
+ (#{gen-syntax-case 3742}#
+ (lambda (#{x 3923}#
+ #{keys 3924}#
+ #{clauses 3925}#
+ #{r 3926}#
+ #{mod 3927}#)
+ (if (null? #{clauses 3925}#)
+ (let ((#{args 10421}#
+ (list (make-struct/no-tail
+ (vector-ref %expanded-vtables 1)
+ #f
+ #f)
+ (make-struct/no-tail
+ (vector-ref %expanded-vtables 1)
+ #f
+ "source expression failed to match any pattern")
+ #{x 3923}#)))
+ (make-struct/no-tail
+ (vector-ref %expanded-vtables 12)
+ #f
+ 'syntax-violation
+ #{args 10421}#))
+ (let ((#{tmp 3936}# (car #{clauses 3925}#)))
+ (let ((#{tmp 3937}#
+ ($sc-dispatch #{tmp 3936}# '(any any))))
+ (if #{tmp 3937}#
+ (@apply
+ (lambda (#{pat 3940}# #{exp 3941}#)
+ (if (if (if (symbol? #{pat 3940}#)
+ #t
+ (if (if (vector? #{pat 3940}#)
+ (if (= (vector-length #{pat 3940}#) 4)
+ (eq? (vector-ref #{pat 3940}# 0)
+ 'syntax-object)
+ #f)
+ #f)
+ (symbol? (vector-ref #{pat 3940}# 1))
+ #f))
+ (and-map
+ (lambda (#{x 3944}#)
+ (not (#{free-id=? 417}#
+ #{pat 3940}#
+ #{x 3944}#)))
+ (cons '#(syntax-object
+ ...
+ ((top)
+ #(ribcage
+ #(pat exp)
+ #((top) (top))
+ #("i3938" "i3939"))
+ #(ribcage () () ())
+ #(ribcage
+ #(x keys clauses r mod)
+ #((top) (top) (top) (top) (top))
+ #("i3928"
+ "i3929"
+ "i3930"
+ "i3931"
+ "i3932"))
+ #(ribcage
+ (gen-syntax-case
+ gen-clause
+ build-dispatch-call
+ convert-pattern)
+ ((top) (top) (top) (top))
+ ("i3741" "i3739" "i3737" "i3735"))
+ #(ribcage
+ (lambda-var-list
+ gen-var
+ strip
+ chi-lambda-case
+ lambda*-formals
+ chi-simple-lambda
+ lambda-formals
+ ellipsis?
+ chi-void
+ eval-local-transformer
+ chi-local-syntax
+ chi-body
+ chi-macro
+ chi-call
+ chi-expr
+ chi
+ syntax-type
+ chi-when-list
+ chi-install-global
+ chi-top-sequence
+ chi-sequence
+ source-wrap
+ wrap
+ bound-id-member?
+ distinct-bound-ids?
+ valid-bound-ids?
+ bound-id=?
+ free-id=?
+ id-var-name
+ same-marks?
+ join-marks
+ join-wraps
+ smart-append
+ make-binding-wrap
+ extend-ribcage!
+ make-empty-ribcage
+ new-mark
+ anti-mark
+ the-anti-mark
+ top-marked?
+ top-wrap
+ empty-wrap
+ set-ribcage-labels!
+ set-ribcage-marks!
+ set-ribcage-symnames!
+ ribcage-labels
+ ribcage-marks
+ ribcage-symnames
+ ribcage?
+ make-ribcage
+ gen-labels
+ gen-label
+ make-rename
+ rename-marks
+ rename-new
+ rename-old
+ subst-rename?
+ wrap-subst
+ wrap-marks
+ make-wrap
+ id-sym-name&marks
+ id-sym-name
+ id?
+ nonsymbol-id?
+ global-extend
+ lookup
+ macros-only-env
+ extend-var-env
+ extend-env
+ null-env
+ binding-value
+ binding-type
+ make-binding
+ arg-check
+ source-annotation
+ no-source
+ set-syntax-object-module!
+ set-syntax-object-wrap!
+ set-syntax-object-expression!
+ syntax-object-module
+ syntax-object-wrap
+ syntax-object-expression
+ syntax-object?
+ make-syntax-object
+ build-lexical-var
+ build-letrec
+ build-named-let
+ build-let
+ build-sequence
+ build-data
+ build-primref
+ build-primcall
+ build-lambda-case
+ build-case-lambda
+ build-simple-lambda
+ build-global-definition
+ build-global-assignment
+ build-global-reference
+ analyze-variable
+ build-lexical-assignment
+ build-lexical-reference
+ build-dynlet
+ build-conditional
+ build-call
+ build-void
+ maybe-name-value!
+ decorate-source
+ get-global-definition-hook
+ put-global-definition-hook
+ gensym-hook
+ local-eval-hook
+ top-level-eval-hook
+ fx<
+ fx=
+ fx-
+ fx+
+ set-lambda-meta!
+ lambda-meta
+ lambda?
+ make-dynlet
+ make-letrec
+ make-let
+ make-lambda-case
+ make-lambda
+ make-seq
+ make-primcall
+ make-call
+ make-conditional
+ make-toplevel-define
+ make-toplevel-set
+ make-toplevel-ref
+ make-module-set
+ make-module-ref
+ make-lexical-set
+ make-lexical-ref
+ make-primitive-ref
+ make-const
+ make-void)
+ ((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ ("i470"
+ "i468"
+ "i466"
+ "i464"
+ "i462"
+ "i460"
+ "i458"
+ "i456"
+ "i454"
+ "i452"
+ "i450"
+ "i448"
+ "i446"
+ "i444"
+ "i442"
+ "i440"
+ "i438"
+ "i436"
+ "i434"
+ "i432"
+ "i430"
+ "i428"
+ "i426"
+ "i424"
+ "i422"
+ "i420"
+ "i418"
+ "i416"
+ "i414"
+ "i412"
+ "i410"
+ "i408"
+ "i406"
+ "i404"
+ "i402"
+ "i401"
+ "i399"
+ "i396"
+ "i395"
+ "i394"
+ "i392"
+ "i391"
+ "i389"
+ "i387"
+ "i385"
+ "i383"
+ "i381"
+ "i379"
+ "i377"
+ "i375"
+ "i372"
+ "i370"
+ "i369"
+ "i367"
+ "i365"
+ "i363"
+ "i361"
+ "i360"
+ "i359"
+ "i358"
+ "i356"
+ "i355"
+ "i352"
+ "i350"
+ "i348"
+ "i346"
+ "i344"
+ "i342"
+ "i340"
+ "i339"
+ "i338"
+ "i336"
+ "i334"
+ "i333"
+ "i330"
+ "i329"
+ "i327"
+ "i325"
+ "i323"
+ "i321"
+ "i319"
+ "i317"
+ "i315"
+ "i313"
+ "i311"
+ "i308"
+ "i306"
+ "i304"
+ "i302"
+ "i300"
+ "i298"
+ "i296"
+ "i294"
+ "i292"
+ "i290"
+ "i288"
+ "i286"
+ "i284"
+ "i282"
+ "i280"
+ "i278"
+ "i276"
+ "i274"
+ "i272"
+ "i270"
+ "i268"
+ "i266"
+ "i264"
+ "i262"
+ "i261"
+ "i258"
+ "i256"
+ "i255"
+ "i254"
+ "i253"
+ "i252"
+ "i250"
+ "i248"
+ "i246"
+ "i243"
+ "i241"
+ "i239"
+ "i237"
+ "i235"
+ "i233"
+ "i231"
+ "i229"
+ "i227"
+ "i225"
+ "i223"
+ "i221"
+ "i219"
+ "i217"
+ "i215"
+ "i213"
+ "i211"
+ "i209"
+ "i207"))
+ #(ribcage
+ (define-structure
+ define-expansion-accessors
+ define-expansion-constructors)
+ ((top) (top) (top))
+ ("i45" "i44" "i43")))
+ (hygiene guile))
+ #{keys 3924}#))
#f)
- #f)))
- (if (memv #{atom-key 4199}# '(free-id))
- (if (#{id? 343}# #{e 4172}#)
- (if (#{free-id=? 399}#
- (#{wrap 409}#
- #{e 4172}#
- #{w 4174}#
- #{mod 4176}#)
- (vector-ref #{p 4173}# 1))
- #{r 4175}#
- #f)
- #f)
- (if (memv #{atom-key 4199}# '(atom))
- (if (equal?
- (vector-ref #{p 4173}# 1)
- (#{strip 449}# #{e 4172}# #{w 4174}#))
- #{r 4175}#
- #f)
- (if (memv #{atom-key 4199}# '(vector))
- (if (vector? #{e 4172}#)
- (#{match 4072}#
- (vector->list #{e 4172}#)
- (vector-ref #{p 4173}# 1)
- #{w 4174}#
- #{r 4175}#
- #{mod 4176}#)
- #f))))))))))))
- (#{match 4072}#
- (lambda (#{e 4229}#
- #{p 4230}#
- #{w 4231}#
- #{r 4232}#
- #{mod 4233}#)
- (if (not #{r 4232}#)
- #f
- (if (eq? #{p 4230}# '_)
- #{r 4232}#
- (if (eq? #{p 4230}# 'any)
- (cons (#{wrap 409}# #{e 4229}# #{w 4231}# #{mod 4233}#)
- #{r 4232}#)
- (if (#{syntax-object? 309}# #{e 4229}#)
- (#{match* 4070}#
- (#{syntax-object-expression 311}# #{e 4229}#)
- #{p 4230}#
- (#{join-wraps 391}#
- #{w 4231}#
- (#{syntax-object-wrap 313}# #{e 4229}#))
- #{r 4232}#
- (#{syntax-object-module 315}# #{e 4229}#))
- (#{match* 4070}#
- #{e 4229}#
- #{p 4230}#
- #{w 4231}#
- #{r 4232}#
- #{mod 4233}#))))))))
- (set! $sc-dispatch
- (lambda (#{e 4248}# #{p 4249}#)
- (if (eq? #{p 4249}# 'any)
- (list #{e 4248}#)
- (if (eq? #{p 4249}# '_)
- '()
- (if (#{syntax-object? 309}# #{e 4248}#)
- (#{match* 4070}#
- (#{syntax-object-expression 311}# #{e 4248}#)
- #{p 4249}#
- (#{syntax-object-wrap 313}# #{e 4248}#)
- '()
- (#{syntax-object-module 315}# #{e 4248}#))
- (#{match* 4070}#
- #{e 4248}#
- #{p 4249}#
- '(())
- '()
- #f)))))))))
-
-(define with-syntax
- (make-syntax-transformer
- 'with-syntax
- 'macro
- (lambda (#{x 4260}#)
- (let ((#{tmp 4262}# #{x 4260}#))
- (let ((#{tmp 4263}#
- ($sc-dispatch
- #{tmp 4262}#
- '(_ () any . each-any))))
- (if #{tmp 4263}#
- (@apply
- (lambda (#{e1 4266}# #{e2 4267}#)
- (cons '#(syntax-object
- let
- ((top)
- #(ribcage
- #(e1 e2)
- #((top) (top))
- #("i4264" "i4265"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("i4261")))
- (hygiene guile))
- (cons '() (cons #{e1 4266}# #{e2 4267}#))))
- #{tmp 4263}#)
- (let ((#{tmp 4269}#
- ($sc-dispatch
- #{tmp 4262}#
- '(_ ((any any)) any . each-any))))
- (if #{tmp 4269}#
- (@apply
- (lambda (#{out 4274}#
- #{in 4275}#
- #{e1 4276}#
- #{e2 4277}#)
- (list '#(syntax-object
- syntax-case
- ((top)
- #(ribcage
- #(out in e1 e2)
- #((top) (top) (top) (top))
- #("i4270" "i4271" "i4272" "i4273"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("i4261")))
- (hygiene guile))
- #{in 4275}#
- '()
- (list #{out 4274}#
- (cons '#(syntax-object
- let
- ((top)
- #(ribcage
- #(out in e1 e2)
- #((top) (top) (top) (top))
- #("i4270" "i4271" "i4272" "i4273"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("i4261")))
- (hygiene guile))
- (cons '()
- (cons #{e1 4276}# #{e2 4277}#))))))
- #{tmp 4269}#)
- (let ((#{tmp 4279}#
- ($sc-dispatch
- #{tmp 4262}#
- '(_ #(each (any any)) any . each-any))))
- (if #{tmp 4279}#
- (@apply
- (lambda (#{out 4284}#
- #{in 4285}#
- #{e1 4286}#
- #{e2 4287}#)
- (list '#(syntax-object
- syntax-case
- ((top)
- #(ribcage
- #(out in e1 e2)
- #((top) (top) (top) (top))
- #("i4280" "i4281" "i4282" "i4283"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("i4261")))
- (hygiene guile))
- (cons '#(syntax-object
- list
+ (if (#{free-id=? 417}#
+ '#(syntax-object
+ pad
+ ((top)
+ #(ribcage
+ #(pat exp)
+ #((top) (top))
+ #("i3938" "i3939"))
+ #(ribcage () () ())
+ #(ribcage
+ #(x keys clauses r mod)
+ #((top) (top) (top) (top) (top))
+ #("i3928"
+ "i3929"
+ "i3930"
+ "i3931"
+ "i3932"))
+ #(ribcage
+ (gen-syntax-case
+ gen-clause
+ build-dispatch-call
+ convert-pattern)
+ ((top) (top) (top) (top))
+ ("i3741" "i3739" "i3737" "i3735"))
+ #(ribcage
+ (lambda-var-list
+ gen-var
+ strip
+ chi-lambda-case
+ lambda*-formals
+ chi-simple-lambda
+ lambda-formals
+ ellipsis?
+ chi-void
+ eval-local-transformer
+ chi-local-syntax
+ chi-body
+ chi-macro
+ chi-call
+ chi-expr
+ chi
+ syntax-type
+ chi-when-list
+ chi-install-global
+ chi-top-sequence
+ chi-sequence
+ source-wrap
+ wrap
+ bound-id-member?
+ distinct-bound-ids?
+ valid-bound-ids?
+ bound-id=?
+ free-id=?
+ id-var-name
+ same-marks?
+ join-marks
+ join-wraps
+ smart-append
+ make-binding-wrap
+ extend-ribcage!
+ make-empty-ribcage
+ new-mark
+ anti-mark
+ the-anti-mark
+ top-marked?
+ top-wrap
+ empty-wrap
+ set-ribcage-labels!
+ set-ribcage-marks!
+ set-ribcage-symnames!
+ ribcage-labels
+ ribcage-marks
+ ribcage-symnames
+ ribcage?
+ make-ribcage
+ gen-labels
+ gen-label
+ make-rename
+ rename-marks
+ rename-new
+ rename-old
+ subst-rename?
+ wrap-subst
+ wrap-marks
+ make-wrap
+ id-sym-name&marks
+ id-sym-name
+ id?
+ nonsymbol-id?
+ global-extend
+ lookup
+ macros-only-env
+ extend-var-env
+ extend-env
+ null-env
+ binding-value
+ binding-type
+ make-binding
+ arg-check
+ source-annotation
+ no-source
+ set-syntax-object-module!
+ set-syntax-object-wrap!
+ set-syntax-object-expression!
+ syntax-object-module
+ syntax-object-wrap
+ syntax-object-expression
+ syntax-object?
+ make-syntax-object
+ build-lexical-var
+ build-letrec
+ build-named-let
+ build-let
+ build-sequence
+ build-data
+ build-primref
+ build-primcall
+ build-lambda-case
+ build-case-lambda
+ build-simple-lambda
+ build-global-definition
+ build-global-assignment
+ build-global-reference
+ analyze-variable
+ build-lexical-assignment
+ build-lexical-reference
+ build-dynlet
+ build-conditional
+ build-call
+ build-void
+ maybe-name-value!
+ decorate-source
+ get-global-definition-hook
+ put-global-definition-hook
+ gensym-hook
+ local-eval-hook
+ top-level-eval-hook
+ fx<
+ fx=
+ fx-
+ fx+
+ set-lambda-meta!
+ lambda-meta
+ lambda?
+ make-dynlet
+ make-letrec
+ make-let
+ make-lambda-case
+ make-lambda
+ make-seq
+ make-primcall
+ make-call
+ make-conditional
+ make-toplevel-define
+ make-toplevel-set
+ make-toplevel-ref
+ make-module-set
+ make-module-ref
+ make-lexical-set
+ make-lexical-ref
+ make-primitive-ref
+ make-const
+ make-void)
((top)
- #(ribcage
- #(out in e1 e2)
- #((top) (top) (top) (top))
- #("i4280" "i4281" "i4282" "i4283"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("i4261")))
- (hygiene guile))
- #{in 4285}#)
- '()
- (list #{out 4284}#
- (cons '#(syntax-object
- let
- ((top)
- #(ribcage
- #(out in e1 e2)
- #((top) (top) (top) (top))
- #("i4280"
- "i4281"
- "i4282"
- "i4283"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("i4261")))
- (hygiene guile))
- (cons '()
- (cons #{e1 4286}#
- #{e2 4287}#))))))
- #{tmp 4279}#)
- (syntax-violation
- #f
- "source expression failed to match any pattern"
- #{tmp 4262}#)))))))))))
-
-(define syntax-rules
- (make-syntax-transformer
- 'syntax-rules
- 'macro
- (lambda (#{x 4291}#)
- (let ((#{tmp 4293}# #{x 4291}#))
- (let ((#{tmp 4294}#
- ($sc-dispatch
- #{tmp 4293}#
- '(_ each-any . #(each ((any . any) any))))))
- (if #{tmp 4294}#
- (@apply
- (lambda (#{k 4299}#
- #{keyword 4300}#
- #{pattern 4301}#
- #{template 4302}#)
- (list '#(syntax-object
- lambda
- ((top)
- #(ribcage
- #(k keyword pattern template)
- #((top) (top) (top) (top))
- #("i4295" "i4296" "i4297" "i4298"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("i4292")))
- (hygiene guile))
- '(#(syntax-object
- x
- ((top)
- #(ribcage
- #(k keyword pattern template)
- #((top) (top) (top) (top))
- #("i4295" "i4296" "i4297" "i4298"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("i4292")))
- (hygiene guile)))
- (vector
- '(#(syntax-object
- macro-type
- ((top)
- #(ribcage
- #(k keyword pattern template)
- #((top) (top) (top) (top))
- #("i4295" "i4296" "i4297" "i4298"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("i4292")))
- (hygiene guile))
- .
- #(syntax-object
- syntax-rules
- ((top)
- #(ribcage
- #(k keyword pattern template)
- #((top) (top) (top) (top))
- #("i4295" "i4296" "i4297" "i4298"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("i4292")))
- (hygiene guile)))
- (cons '#(syntax-object
- patterns
- ((top)
- #(ribcage
- #(k keyword pattern template)
- #((top) (top) (top) (top))
- #("i4295" "i4296" "i4297" "i4298"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("i4292")))
- (hygiene guile))
- #{pattern 4301}#))
- (cons '#(syntax-object
- syntax-case
- ((top)
- #(ribcage
- #(k keyword pattern template)
- #((top) (top) (top) (top))
- #("i4295" "i4296" "i4297" "i4298"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("i4292")))
- (hygiene guile))
- (cons '#(syntax-object
- x
- ((top)
- #(ribcage
- #(k keyword pattern template)
- #((top) (top) (top) (top))
- #("i4295" "i4296" "i4297" "i4298"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("i4292")))
- (hygiene guile))
- (cons #{k 4299}#
- (map (lambda (#{tmp 4306}#
- #{tmp 4305}#)
- (list (cons '#(syntax-object
- dummy
- ((top)
- #(ribcage
- #(k
- keyword
- pattern
- template)
- #((top)
- (top)
- (top)
- (top))
- #("i4295"
- "i4296"
- "i4297"
- "i4298"))
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(x)
- #((top))
- #("i4292")))
- (hygiene guile))
- #{tmp 4305}#)
- (list '#(syntax-object
- syntax
- ((top)
- #(ribcage
- #(k
- keyword
- pattern
- template)
- #((top)
- (top)
- (top)
- (top))
- #("i4295"
- "i4296"
- "i4297"
- "i4298"))
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(x)
- #((top))
- #("i4292")))
- (hygiene guile))
- #{tmp 4306}#)))
- #{template 4302}#
- #{pattern 4301}#))))))
- #{tmp 4294}#)
- (let ((#{tmp 4307}#
- ($sc-dispatch
- #{tmp 4293}#
- '(_ each-any any . #(each ((any . any) any))))))
- (if (if #{tmp 4307}#
- (@apply
- (lambda (#{k 4313}#
- #{docstring 4314}#
- #{keyword 4315}#
- #{pattern 4316}#
- #{template 4317}#)
- (string? (syntax->datum #{docstring 4314}#)))
- #{tmp 4307}#)
- #f)
- (@apply
- (lambda (#{k 4323}#
- #{docstring 4324}#
- #{keyword 4325}#
- #{pattern 4326}#
- #{template 4327}#)
- (list '#(syntax-object
- lambda
- ((top)
- #(ribcage
- #(k docstring keyword pattern template)
- #((top) (top) (top) (top) (top))
- #("i4318" "i4319" "i4320" "i4321" "i4322"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("i4292")))
- (hygiene guile))
- '(#(syntax-object
- x
- ((top)
- #(ribcage
- #(k docstring keyword pattern template)
- #((top) (top) (top) (top) (top))
- #("i4318" "i4319" "i4320" "i4321" "i4322"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("i4292")))
- (hygiene guile)))
- #{docstring 4324}#
- (vector
- '(#(syntax-object
- macro-type
- ((top)
- #(ribcage
- #(k docstring keyword pattern template)
- #((top) (top) (top) (top) (top))
- #("i4318" "i4319" "i4320" "i4321" "i4322"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("i4292")))
- (hygiene guile))
- .
- #(syntax-object
- syntax-rules
- ((top)
- #(ribcage
- #(k docstring keyword pattern template)
- #((top) (top) (top) (top) (top))
- #("i4318" "i4319" "i4320" "i4321" "i4322"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("i4292")))
- (hygiene guile)))
- (cons '#(syntax-object
- patterns
- ((top)
- #(ribcage
- #(k docstring keyword pattern template)
- #((top) (top) (top) (top) (top))
- #("i4318"
- "i4319"
- "i4320"
- "i4321"
- "i4322"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("i4292")))
- (hygiene guile))
- #{pattern 4326}#))
- (cons '#(syntax-object
- syntax-case
- ((top)
- #(ribcage
- #(k docstring keyword pattern template)
- #((top) (top) (top) (top) (top))
- #("i4318"
- "i4319"
- "i4320"
- "i4321"
- "i4322"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("i4292")))
- (hygiene guile))
- (cons '#(syntax-object
- x
- ((top)
- #(ribcage
- #(k
- docstring
- keyword
- pattern
- template)
- #((top) (top) (top) (top) (top))
- #("i4318"
- "i4319"
- "i4320"
- "i4321"
- "i4322"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("i4292")))
- (hygiene guile))
- (cons #{k 4323}#
- (map (lambda (#{tmp 4331}#
- #{tmp 4330}#)
- (list (cons '#(syntax-object
- dummy
- ((top)
- #(ribcage
- #(k
-
docstring
- keyword
- pattern
-
template)
- #((top)
- (top)
- (top)
- (top)
- (top))
- #("i4318"
- "i4319"
- "i4320"
- "i4321"
-
"i4322"))
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(x)
- #((top))
-
#("i4292")))
- (hygiene
- guile))
- #{tmp 4330}#)
- (list '#(syntax-object
- syntax
- ((top)
- #(ribcage
- #(k
-
docstring
- keyword
- pattern
-
template)
- #((top)
- (top)
- (top)
- (top)
- (top))
- #("i4318"
- "i4319"
- "i4320"
- "i4321"
-
"i4322"))
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(x)
- #((top))
-
#("i4292")))
- (hygiene
- guile))
- #{tmp 4331}#)))
- #{template 4327}#
- #{pattern 4326}#))))))
- #{tmp 4307}#)
- (syntax-violation
- #f
- "source expression failed to match any pattern"
- #{tmp 4293}#)))))))))
-
-(define let*
- (make-syntax-transformer
- 'let*
- 'macro
- (lambda (#{x 4332}#)
- (let ((#{tmp 4334}# #{x 4332}#))
- (let ((#{tmp 4335}#
- ($sc-dispatch
- #{tmp 4334}#
- '(any #(each (any any)) any . each-any))))
- (if (if #{tmp 4335}#
- (@apply
- (lambda (#{let* 4341}#
- #{x 4342}#
- #{v 4343}#
- #{e1 4344}#
- #{e2 4345}#)
- (and-map identifier? #{x 4342}#))
- #{tmp 4335}#)
- #f)
- (@apply
- (lambda (#{let* 4352}#
- #{x 4353}#
- #{v 4354}#
- #{e1 4355}#
- #{e2 4356}#)
- (letrec*
- ((#{f 4359}#
- (lambda (#{bindings 4360}#)
- (if (null? #{bindings 4360}#)
- (cons '#(syntax-object
- let
- ((top)
- #(ribcage () () ())
- #(ribcage
- #(f bindings)
- #((top) (top))
- #("i4357" "i4358"))
- #(ribcage
- #(let* x v e1 e2)
- #((top) (top) (top) (top) (top))
- #("i4347"
- "i4348"
- "i4349"
- "i4350"
- "i4351"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("i4333")))
- (hygiene guile))
- (cons '() (cons #{e1 4355}# #{e2 4356}#)))
- (let ((#{tmp 4365}#
- (list (#{f 4359}# (cdr #{bindings 4360}#))
- (car #{bindings 4360}#))))
- (let ((#{tmp 4366}#
- ($sc-dispatch #{tmp 4365}# '(any any))))
- (if #{tmp 4366}#
- (@apply
- (lambda (#{body 4369}# #{binding 4370}#)
- (list '#(syntax-object
- let
- ((top)
- #(ribcage () () ())
- #(ribcage
- #(body binding)
- #((top) (top))
- #("i4367" "i4368"))
- #(ribcage () () ())
- #(ribcage
- #(f bindings)
- #((top) (top))
- #("i4357" "i4358"))
- #(ribcage
- #(let* x v e1 e2)
- #((top) (top) (top) (top) (top))
- #("i4347"
- "i4348"
- "i4349"
- "i4350"
- "i4351"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("i4333")))
- (hygiene guile))
- (list #{binding 4370}#)
- #{body 4369}#))
- #{tmp 4366}#)
- (syntax-violation
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ ("i470"
+ "i468"
+ "i466"
+ "i464"
+ "i462"
+ "i460"
+ "i458"
+ "i456"
+ "i454"
+ "i452"
+ "i450"
+ "i448"
+ "i446"
+ "i444"
+ "i442"
+ "i440"
+ "i438"
+ "i436"
+ "i434"
+ "i432"
+ "i430"
+ "i428"
+ "i426"
+ "i424"
+ "i422"
+ "i420"
+ "i418"
+ "i416"
+ "i414"
+ "i412"
+ "i410"
+ "i408"
+ "i406"
+ "i404"
+ "i402"
+ "i401"
+ "i399"
+ "i396"
+ "i395"
+ "i394"
+ "i392"
+ "i391"
+ "i389"
+ "i387"
+ "i385"
+ "i383"
+ "i381"
+ "i379"
+ "i377"
+ "i375"
+ "i372"
+ "i370"
+ "i369"
+ "i367"
+ "i365"
+ "i363"
+ "i361"
+ "i360"
+ "i359"
+ "i358"
+ "i356"
+ "i355"
+ "i352"
+ "i350"
+ "i348"
+ "i346"
+ "i344"
+ "i342"
+ "i340"
+ "i339"
+ "i338"
+ "i336"
+ "i334"
+ "i333"
+ "i330"
+ "i329"
+ "i327"
+ "i325"
+ "i323"
+ "i321"
+ "i319"
+ "i317"
+ "i315"
+ "i313"
+ "i311"
+ "i308"
+ "i306"
+ "i304"
+ "i302"
+ "i300"
+ "i298"
+ "i296"
+ "i294"
+ "i292"
+ "i290"
+ "i288"
+ "i286"
+ "i284"
+ "i282"
+ "i280"
+ "i278"
+ "i276"
+ "i274"
+ "i272"
+ "i270"
+ "i268"
+ "i266"
+ "i264"
+ "i262"
+ "i261"
+ "i258"
+ "i256"
+ "i255"
+ "i254"
+ "i253"
+ "i252"
+ "i250"
+ "i248"
+ "i246"
+ "i243"
+ "i241"
+ "i239"
+ "i237"
+ "i235"
+ "i233"
+ "i231"
+ "i229"
+ "i227"
+ "i225"
+ "i223"
+ "i221"
+ "i219"
+ "i217"
+ "i215"
+ "i213"
+ "i211"
+ "i209"
+ "i207"))
+ #(ribcage
+ (define-structure
+ define-expansion-accessors
+ define-expansion-constructors)
+ ((top) (top) (top))
+ ("i45" "i44" "i43")))
+ (hygiene guile))
+ '#(syntax-object
+ _
+ ((top)
+ #(ribcage
+ #(pat exp)
+ #((top) (top))
+ #("i3938" "i3939"))
+ #(ribcage () () ())
+ #(ribcage
+ #(x keys clauses r mod)
+ #((top) (top) (top) (top) (top))
+ #("i3928"
+ "i3929"
+ "i3930"
+ "i3931"
+ "i3932"))
+ #(ribcage
+ (gen-syntax-case
+ gen-clause
+ build-dispatch-call
+ convert-pattern)
+ ((top) (top) (top) (top))
+ ("i3741" "i3739" "i3737" "i3735"))
+ #(ribcage
+ (lambda-var-list
+ gen-var
+ strip
+ chi-lambda-case
+ lambda*-formals
+ chi-simple-lambda
+ lambda-formals
+ ellipsis?
+ chi-void
+ eval-local-transformer
+ chi-local-syntax
+ chi-body
+ chi-macro
+ chi-call
+ chi-expr
+ chi
+ syntax-type
+ chi-when-list
+ chi-install-global
+ chi-top-sequence
+ chi-sequence
+ source-wrap
+ wrap
+ bound-id-member?
+ distinct-bound-ids?
+ valid-bound-ids?
+ bound-id=?
+ free-id=?
+ id-var-name
+ same-marks?
+ join-marks
+ join-wraps
+ smart-append
+ make-binding-wrap
+ extend-ribcage!
+ make-empty-ribcage
+ new-mark
+ anti-mark
+ the-anti-mark
+ top-marked?
+ top-wrap
+ empty-wrap
+ set-ribcage-labels!
+ set-ribcage-marks!
+ set-ribcage-symnames!
+ ribcage-labels
+ ribcage-marks
+ ribcage-symnames
+ ribcage?
+ make-ribcage
+ gen-labels
+ gen-label
+ make-rename
+ rename-marks
+ rename-new
+ rename-old
+ subst-rename?
+ wrap-subst
+ wrap-marks
+ make-wrap
+ id-sym-name&marks
+ id-sym-name
+ id?
+ nonsymbol-id?
+ global-extend
+ lookup
+ macros-only-env
+ extend-var-env
+ extend-env
+ null-env
+ binding-value
+ binding-type
+ make-binding
+ arg-check
+ source-annotation
+ no-source
+ set-syntax-object-module!
+ set-syntax-object-wrap!
+ set-syntax-object-expression!
+ syntax-object-module
+ syntax-object-wrap
+ syntax-object-expression
+ syntax-object?
+ make-syntax-object
+ build-lexical-var
+ build-letrec
+ build-named-let
+ build-let
+ build-sequence
+ build-data
+ build-primref
+ build-primcall
+ build-lambda-case
+ build-case-lambda
+ build-simple-lambda
+ build-global-definition
+ build-global-assignment
+ build-global-reference
+ analyze-variable
+ build-lexical-assignment
+ build-lexical-reference
+ build-dynlet
+ build-conditional
+ build-call
+ build-void
+ maybe-name-value!
+ decorate-source
+ get-global-definition-hook
+ put-global-definition-hook
+ gensym-hook
+ local-eval-hook
+ top-level-eval-hook
+ fx<
+ fx=
+ fx-
+ fx+
+ set-lambda-meta!
+ lambda-meta
+ lambda?
+ make-dynlet
+ make-letrec
+ make-let
+ make-lambda-case
+ make-lambda
+ make-seq
+ make-primcall
+ make-call
+ make-conditional
+ make-toplevel-define
+ make-toplevel-set
+ make-toplevel-ref
+ make-module-set
+ make-module-ref
+ make-lexical-set
+ make-lexical-ref
+ make-primitive-ref
+ make-const
+ make-void)
+ ((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ ("i470"
+ "i468"
+ "i466"
+ "i464"
+ "i462"
+ "i460"
+ "i458"
+ "i456"
+ "i454"
+ "i452"
+ "i450"
+ "i448"
+ "i446"
+ "i444"
+ "i442"
+ "i440"
+ "i438"
+ "i436"
+ "i434"
+ "i432"
+ "i430"
+ "i428"
+ "i426"
+ "i424"
+ "i422"
+ "i420"
+ "i418"
+ "i416"
+ "i414"
+ "i412"
+ "i410"
+ "i408"
+ "i406"
+ "i404"
+ "i402"
+ "i401"
+ "i399"
+ "i396"
+ "i395"
+ "i394"
+ "i392"
+ "i391"
+ "i389"
+ "i387"
+ "i385"
+ "i383"
+ "i381"
+ "i379"
+ "i377"
+ "i375"
+ "i372"
+ "i370"
+ "i369"
+ "i367"
+ "i365"
+ "i363"
+ "i361"
+ "i360"
+ "i359"
+ "i358"
+ "i356"
+ "i355"
+ "i352"
+ "i350"
+ "i348"
+ "i346"
+ "i344"
+ "i342"
+ "i340"
+ "i339"
+ "i338"
+ "i336"
+ "i334"
+ "i333"
+ "i330"
+ "i329"
+ "i327"
+ "i325"
+ "i323"
+ "i321"
+ "i319"
+ "i317"
+ "i315"
+ "i313"
+ "i311"
+ "i308"
+ "i306"
+ "i304"
+ "i302"
+ "i300"
+ "i298"
+ "i296"
+ "i294"
+ "i292"
+ "i290"
+ "i288"
+ "i286"
+ "i284"
+ "i282"
+ "i280"
+ "i278"
+ "i276"
+ "i274"
+ "i272"
+ "i270"
+ "i268"
+ "i266"
+ "i264"
+ "i262"
+ "i261"
+ "i258"
+ "i256"
+ "i255"
+ "i254"
+ "i253"
+ "i252"
+ "i250"
+ "i248"
+ "i246"
+ "i243"
+ "i241"
+ "i239"
+ "i237"
+ "i235"
+ "i233"
+ "i231"
+ "i229"
+ "i227"
+ "i225"
+ "i223"
+ "i221"
+ "i219"
+ "i217"
+ "i215"
+ "i213"
+ "i211"
+ "i209"
+ "i207"))
+ #(ribcage
+ (define-structure
+ define-expansion-accessors
+ define-expansion-constructors)
+ ((top) (top) (top))
+ ("i45" "i44" "i43")))
+ (hygiene guile)))
+ (#{chi 441}#
+ #{exp 3941}#
+ #{r 3926}#
+ '(())
+ #{mod 3927}#)
+ (let ((#{labels 3949}#
+ (list (symbol->string (gensym "i"))))
+ (#{var 3950}#
+ (let ((#{id 10508}#
+ (if (if (vector? #{pat 3940}#)
+ (if (= (vector-length
+ #{pat 3940}#)
+ 4)
+ (eq? (vector-ref
+ #{pat 3940}#
+ 0)
+ 'syntax-object)
+ #f)
+ #f)
+ (vector-ref #{pat 3940}# 1)
+ #{pat 3940}#)))
+ (gensym
+ (string-append
+ (symbol->string #{id 10508}#)
+ " ")))))
+ (#{build-call 273}#
#f
- "source expression failed to match any
pattern"
- #{tmp 4365}#))))))))
- (#{f 4359}# (map list #{x 4353}# #{v 4354}#))))
- #{tmp 4335}#)
- (syntax-violation
- #f
- "source expression failed to match any pattern"
- #{tmp 4334}#)))))))
-
-(define do
- (make-syntax-transformer
- 'do
- 'macro
- (lambda (#{orig-x 4371}#)
- (let ((#{tmp 4373}# #{orig-x 4371}#))
- (let ((#{tmp 4374}#
- ($sc-dispatch
- #{tmp 4373}#
- '(_ #(each (any any . any))
- (any . each-any)
- .
- each-any))))
- (if #{tmp 4374}#
- (@apply
- (lambda (#{var 4381}#
- #{init 4382}#
- #{step 4383}#
- #{e0 4384}#
- #{e1 4385}#
- #{c 4386}#)
- (let ((#{tmp 4388}#
- (map (lambda (#{v 4409}# #{s 4410}#)
- (let ((#{tmp 4413}# #{s 4410}#))
- (let ((#{tmp 4414}#
- ($sc-dispatch #{tmp 4413}# '())))
- (if #{tmp 4414}#
- (@apply
- (lambda () #{v 4409}#)
- #{tmp 4414}#)
- (let ((#{tmp 4415}#
- ($sc-dispatch
- #{tmp 4413}#
- '(any))))
- (if #{tmp 4415}#
- (@apply
- (lambda (#{e 4417}#) #{e 4417}#)
- #{tmp 4415}#)
- (let ((#{_ 4419}# #{tmp 4413}#))
- (syntax-violation
- 'do
- "bad step expression"
- #{orig-x 4371}#
- #{s 4410}#))))))))
- #{var 4381}#
- #{step 4383}#)))
- (let ((#{tmp 4389}#
- ($sc-dispatch #{tmp 4388}# 'each-any)))
- (if #{tmp 4389}#
- (@apply
- (lambda (#{step 4391}#)
- (let ((#{tmp 4392}# #{e1 4385}#))
- (let ((#{tmp 4393}#
- ($sc-dispatch #{tmp 4392}# '())))
- (if #{tmp 4393}#
- (@apply
- (lambda ()
- (list '#(syntax-object
- let
- ((top)
- #(ribcage () () ())
- #(ribcage
- #(step)
- #((top))
- #("i4390"))
- #(ribcage
- #(var init step e0 e1 c)
- #((top)
- (top)
- (top)
- (top)
- (top)
- (top))
- #("i4375"
- "i4376"
- "i4377"
- "i4378"
- "i4379"
- "i4380"))
- #(ribcage () () ())
- #(ribcage
- #(orig-x)
- #((top))
- #("i4372")))
- (hygiene guile))
- '#(syntax-object
- doloop
- ((top)
- #(ribcage () () ())
- #(ribcage
- #(step)
- #((top))
- #("i4390"))
- #(ribcage
- #(var init step e0 e1 c)
- #((top)
- (top)
- (top)
- (top)
- (top)
- (top))
- #("i4375"
- "i4376"
- "i4377"
- "i4378"
- "i4379"
- "i4380"))
- #(ribcage () () ())
- #(ribcage
- #(orig-x)
- #((top))
- #("i4372")))
- (hygiene guile))
- (map list #{var 4381}# #{init 4382}#)
- (list '#(syntax-object
- if
- ((top)
- #(ribcage () () ())
- #(ribcage
- #(step)
- #((top))
- #("i4390"))
- #(ribcage
- #(var init step e0 e1 c)
- #((top)
- (top)
- (top)
- (top)
- (top)
- (top))
- #("i4375"
- "i4376"
- "i4377"
- "i4378"
- "i4379"
- "i4380"))
- #(ribcage () () ())
- #(ribcage
- #(orig-x)
- #((top))
- #("i4372")))
- (hygiene guile))
- (list '#(syntax-object
- not
- ((top)
- #(ribcage () () ())
- #(ribcage
- #(step)
- #((top))
- #("i4390"))
- #(ribcage
- #(var
- init
- step
- e0
- e1
- c)
- #((top)
- (top)
- (top)
- (top)
- (top)
- (top))
- #("i4375"
- "i4376"
- "i4377"
- "i4378"
- "i4379"
- "i4380"))
- #(ribcage () () ())
- #(ribcage
- #(orig-x)
- #((top))
- #("i4372")))
- (hygiene guile))
- #{e0 4384}#)
- (cons '#(syntax-object
- begin
- ((top)
- #(ribcage () () ())
- #(ribcage
- #(step)
- #((top))
- #("i4390"))
- #(ribcage
- #(var
- init
- step
- e0
- e1
- c)
- #((top)
- (top)
- (top)
- (top)
- (top)
- (top))
- #("i4375"
- "i4376"
- "i4377"
- "i4378"
- "i4379"
- "i4380"))
- #(ribcage () () ())
- #(ribcage
- #(orig-x)
- #((top))
- #("i4372")))
- (hygiene guile))
- (append
- #{c 4386}#
- (list (cons
'#(syntax-object
- doloop
- ((top)
-
#(ribcage
- ()
- ()
- ())
-
#(ribcage
-
#(step)
-
#((top))
-
#("i4390"))
-
#(ribcage
- #(var
-
init
-
step
- e0
- e1
- c)
-
#((top)
-
(top)
-
(top)
-
(top)
-
(top)
-
(top))
-
#("i4375"
-
"i4376"
-
"i4377"
-
"i4378"
-
"i4379"
-
"i4380"))
-
#(ribcage
- ()
- ()
- ())
-
#(ribcage
-
#(orig-x)
-
#((top))
-
#("i4372")))
- (hygiene
-
guile))
- #{step
4391}#)))))))
- #{tmp 4393}#)
- (let ((#{tmp 4398}#
- ($sc-dispatch
- #{tmp 4392}#
- '(any . each-any))))
- (if #{tmp 4398}#
- (@apply
- (lambda (#{e1 4401}# #{e2 4402}#)
- (list '#(syntax-object
- let
- ((top)
- #(ribcage
- #(e1 e2)
- #((top) (top))
- #("i4399" "i4400"))
- #(ribcage () () ())
- #(ribcage
- #(step)
- #((top))
- #("i4390"))
- #(ribcage
- #(var init step e0 e1 c)
- #((top)
- (top)
- (top)
- (top)
- (top)
- (top))
- #("i4375"
- "i4376"
- "i4377"
- "i4378"
- "i4379"
- "i4380"))
- #(ribcage () () ())
- #(ribcage
- #(orig-x)
- #((top))
- #("i4372")))
- (hygiene guile))
- '#(syntax-object
- doloop
- ((top)
- #(ribcage
- #(e1 e2)
- #((top) (top))
- #("i4399" "i4400"))
- #(ribcage () () ())
- #(ribcage
- #(step)
- #((top))
- #("i4390"))
- #(ribcage
- #(var init step e0 e1 c)
- #((top)
- (top)
- (top)
- (top)
- (top)
- (top))
- #("i4375"
- "i4376"
- "i4377"
- "i4378"
- "i4379"
- "i4380"))
- #(ribcage () () ())
- #(ribcage
- #(orig-x)
- #((top))
- #("i4372")))
- (hygiene guile))
- (map list
- #{var 4381}#
- #{init 4382}#)
- (list '#(syntax-object
- if
- ((top)
- #(ribcage
- #(e1 e2)
- #((top) (top))
- #("i4399" "i4400"))
- #(ribcage () () ())
- #(ribcage
- #(step)
- #((top))
- #("i4390"))
- #(ribcage
- #(var
- init
- step
- e0
- e1
- c)
- #((top)
- (top)
- (top)
- (top)
- (top)
- (top))
- #("i4375"
- "i4376"
- "i4377"
- "i4378"
- "i4379"
- "i4380"))
- #(ribcage () () ())
- #(ribcage
- #(orig-x)
- #((top))
- #("i4372")))
- (hygiene guile))
- #{e0 4384}#
- (cons '#(syntax-object
- begin
- ((top)
- #(ribcage
- #(e1 e2)
- #((top) (top))
- #("i4399"
- "i4400"))
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(step)
- #((top))
- #("i4390"))
- #(ribcage
- #(var
- init
- step
- e0
- e1
- c)
- #((top)
- (top)
- (top)
- (top)
- (top)
- (top))
- #("i4375"
- "i4376"
- "i4377"
- "i4378"
- "i4379"
- "i4380"))
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(orig-x)
- #((top))
- #("i4372")))
- (hygiene guile))
- (cons #{e1 4401}#
- #{e2 4402}#))
- (cons '#(syntax-object
- begin
- ((top)
- #(ribcage
- #(e1 e2)
- #((top) (top))
- #("i4399"
- "i4400"))
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(step)
- #((top))
- #("i4390"))
- #(ribcage
- #(var
- init
- step
- e0
- e1
- c)
- #((top)
- (top)
- (top)
- (top)
- (top)
- (top))
- #("i4375"
- "i4376"
- "i4377"
- "i4378"
- "i4379"
- "i4380"))
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(orig-x)
- #((top))
- #("i4372")))
- (hygiene guile))
- (append
- #{c 4386}#
- (list (cons
'#(syntax-object
-
doloop
-
((top)
-
#(ribcage
-
#(e1
-
e2)
-
#((top)
-
(top))
-
#("i4399"
-
"i4400"))
-
#(ribcage
-
()
-
()
-
())
-
#(ribcage
-
#(step)
-
#((top))
-
#("i4390"))
-
#(ribcage
-
#(var
-
init
-
step
-
e0
-
e1
-
c)
-
#((top)
-
(top)
-
(top)
-
(top)
-
(top)
-
(top))
-
#("i4375"
-
"i4376"
-
"i4377"
-
"i4378"
-
"i4379"
-
"i4380"))
-
#(ribcage
-
()
-
()
-
())
-
#(ribcage
-
#(orig-x)
-
#((top))
-
#("i4372")))
-
(hygiene
-
guile))
- #{step
4391}#)))))))
- #{tmp 4398}#)
- (syntax-violation
+ (#{build-simple-lambda 291}#
+ #f
+ (list (syntax->datum #{pat 3940}#))
+ #f
+ (list #{var 3950}#)
+ '()
+ (#{chi 441}#
+ #{exp 3941}#
+ (#{extend-env 341}#
+ #{labels 3949}#
+ (list (cons 'syntax
+ (cons #{var 3950}# 0)))
+ #{r 3926}#)
+ (#{make-binding-wrap 405}#
+ (list #{pat 3940}#)
+ #{labels 3949}#
+ '(()))
+ #{mod 3927}#))
+ (list #{x 3923}#))))
+ (#{gen-clause 3740}#
+ #{x 3923}#
+ #{keys 3924}#
+ (cdr #{clauses 3925}#)
+ #{r 3926}#
+ #{pat 3940}#
+ #t
+ #{exp 3941}#
+ #{mod 3927}#)))
+ #{tmp 3937}#)
+ (let ((#{tmp 3956}#
+ ($sc-dispatch #{tmp 3936}# '(any any any))))
+ (if #{tmp 3956}#
+ (@apply
+ (lambda (#{pat 3960}# #{fender 3961}# #{exp 3962}#)
+ (#{gen-clause 3740}#
+ #{x 3923}#
+ #{keys 3924}#
+ (cdr #{clauses 3925}#)
+ #{r 3926}#
+ #{pat 3960}#
+ #{fender 3961}#
+ #{exp 3962}#
+ #{mod 3927}#))
+ #{tmp 3956}#)
+ (syntax-violation
+ 'syntax-case
+ "invalid clause"
+ (car #{clauses 3925}#)))))))))))
+ (lambda (#{e 3965}#
+ #{r 3966}#
+ #{w 3967}#
+ #{s 3968}#
+ #{mod 3969}#)
+ (let ((#{e 3976}#
+ (let ((#{x 10789}#
+ (begin
+ (if (if (pair? #{e 3965}#) #{s 3968}# #f)
+ (set-source-properties! #{e 3965}# #{s 3968}#))
+ #{e 3965}#)))
+ (if (if (null? (car #{w 3967}#))
+ (null? (cdr #{w 3967}#))
+ #f)
+ #{x 10789}#
+ (if (if (vector? #{x 10789}#)
+ (if (= (vector-length #{x 10789}#) 4)
+ (eq? (vector-ref #{x 10789}# 0) 'syntax-object)
+ #f)
+ #f)
+ (let ((#{expression 10801}# (vector-ref #{x 10789}# 1))
+ (#{wrap 10802}#
+ (let ((#{w2 10810}#
+ (vector-ref #{x 10789}# 2)))
+ (let ((#{m1 10811}# (car #{w 3967}#))
+ (#{s1 10812}# (cdr #{w 3967}#)))
+ (if (null? #{m1 10811}#)
+ (if (null? #{s1 10812}#)
+ #{w2 10810}#
+ (cons (car #{w2 10810}#)
+ (let ((#{m2 10819}#
+ (cdr #{w2 10810}#)))
+ (if (null? #{m2 10819}#)
+ #{s1 10812}#
+ (append
+ #{s1 10812}#
+ #{m2 10819}#)))))
+ (cons (let ((#{m2 10823}#
+ (car #{w2 10810}#)))
+ (if (null? #{m2 10823}#)
+ #{m1 10811}#
+ (append
+ #{m1 10811}#
+ #{m2 10823}#)))
+ (let ((#{m2 10827}#
+ (cdr #{w2 10810}#)))
+ (if (null? #{m2 10827}#)
+ #{s1 10812}#
+ (append
+ #{s1 10812}#
+ #{m2 10827}#))))))))
+ (#{module 10803}# (vector-ref #{x 10789}# 3)))
+ (vector
+ 'syntax-object
+ #{expression 10801}#
+ #{wrap 10802}#
+ #{module 10803}#))
+ (if (null? #{x 10789}#)
+ #{x 10789}#
+ (vector
+ 'syntax-object
+ #{x 10789}#
+ #{w 3967}#
+ #{mod 3969}#)))))))
+ (let ((#{tmp 3978}#
+ ($sc-dispatch
+ #{e 3976}#
+ '(_ any each-any . each-any))))
+ (if #{tmp 3978}#
+ (@apply
+ (lambda (#{val 3982}# #{key 3983}# #{m 3984}#)
+ (if (and-map
+ (lambda (#{x 3985}#)
+ (if (if (symbol? #{x 3985}#)
+ #t
+ (if (if (vector? #{x 3985}#)
+ (if (= (vector-length #{x 3985}#) 4)
+ (eq? (vector-ref #{x 3985}# 0)
+ 'syntax-object)
+ #f)
+ #f)
+ (symbol? (vector-ref #{x 3985}# 1))
+ #f))
+ (not (if (if (if (vector? #{x 3985}#)
+ (if (= (vector-length #{x 3985}#)
+ 4)
+ (eq? (vector-ref #{x 3985}# 0)
+ 'syntax-object)
+ #f)
+ #f)
+ (symbol? (vector-ref #{x 3985}# 1))
+ #f)
+ (#{free-id=? 417}#
+ #{x 3985}#
+ '#(syntax-object
+ ...
+ ((top)
+ #(ribcage () () ())
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i2262"))
+ #(ribcage
+ (lambda-var-list
+ gen-var
+ strip
+ chi-lambda-case
+ lambda*-formals
+ chi-simple-lambda
+ lambda-formals
+ ellipsis?
+ chi-void
+ eval-local-transformer
+ chi-local-syntax
+ chi-body
+ chi-macro
+ chi-call
+ chi-expr
+ chi
+ syntax-type
+ chi-when-list
+ chi-install-global
+ chi-top-sequence
+ chi-sequence
+ source-wrap
+ wrap
+ bound-id-member?
+ distinct-bound-ids?
+ valid-bound-ids?
+ bound-id=?
+ free-id=?
+ id-var-name
+ same-marks?
+ join-marks
+ join-wraps
+ smart-append
+ make-binding-wrap
+ extend-ribcage!
+ make-empty-ribcage
+ new-mark
+ anti-mark
+ the-anti-mark
+ top-marked?
+ top-wrap
+ empty-wrap
+ set-ribcage-labels!
+ set-ribcage-marks!
+ set-ribcage-symnames!
+ ribcage-labels
+ ribcage-marks
+ ribcage-symnames
+ ribcage?
+ make-ribcage
+ gen-labels
+ gen-label
+ make-rename
+ rename-marks
+ rename-new
+ rename-old
+ subst-rename?
+ wrap-subst
+ wrap-marks
+ make-wrap
+ id-sym-name&marks
+ id-sym-name
+ id?
+ nonsymbol-id?
+ global-extend
+ lookup
+ macros-only-env
+ extend-var-env
+ extend-env
+ null-env
+ binding-value
+ binding-type
+ make-binding
+ arg-check
+ source-annotation
+ no-source
+ set-syntax-object-module!
+ set-syntax-object-wrap!
+ set-syntax-object-expression!
+ syntax-object-module
+ syntax-object-wrap
+ syntax-object-expression
+ syntax-object?
+ make-syntax-object
+ build-lexical-var
+ build-letrec
+ build-named-let
+ build-let
+ build-sequence
+ build-data
+ build-primref
+ build-primcall
+ build-lambda-case
+ build-case-lambda
+ build-simple-lambda
+ build-global-definition
+ build-global-assignment
+ build-global-reference
+ analyze-variable
+ build-lexical-assignment
+ build-lexical-reference
+ build-dynlet
+ build-conditional
+ build-call
+ build-void
+ maybe-name-value!
+ decorate-source
+ get-global-definition-hook
+ put-global-definition-hook
+ gensym-hook
+ local-eval-hook
+ top-level-eval-hook
+ fx<
+ fx=
+ fx-
+ fx+
+ set-lambda-meta!
+ lambda-meta
+ lambda?
+ make-dynlet
+ make-letrec
+ make-let
+ make-lambda-case
+ make-lambda
+ make-seq
+ make-primcall
+ make-call
+ make-conditional
+ make-toplevel-define
+ make-toplevel-set
+ make-toplevel-ref
+ make-module-set
+ make-module-ref
+ make-lexical-set
+ make-lexical-ref
+ make-primitive-ref
+ make-const
+ make-void)
+ ((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ ("i470"
+ "i468"
+ "i466"
+ "i464"
+ "i462"
+ "i460"
+ "i458"
+ "i456"
+ "i454"
+ "i452"
+ "i450"
+ "i448"
+ "i446"
+ "i444"
+ "i442"
+ "i440"
+ "i438"
+ "i436"
+ "i434"
+ "i432"
+ "i430"
+ "i428"
+ "i426"
+ "i424"
+ "i422"
+ "i420"
+ "i418"
+ "i416"
+ "i414"
+ "i412"
+ "i410"
+ "i408"
+ "i406"
+ "i404"
+ "i402"
+ "i401"
+ "i399"
+ "i396"
+ "i395"
+ "i394"
+ "i392"
+ "i391"
+ "i389"
+ "i387"
+ "i385"
+ "i383"
+ "i381"
+ "i379"
+ "i377"
+ "i375"
+ "i372"
+ "i370"
+ "i369"
+ "i367"
+ "i365"
+ "i363"
+ "i361"
+ "i360"
+ "i359"
+ "i358"
+ "i356"
+ "i355"
+ "i352"
+ "i350"
+ "i348"
+ "i346"
+ "i344"
+ "i342"
+ "i340"
+ "i339"
+ "i338"
+ "i336"
+ "i334"
+ "i333"
+ "i330"
+ "i329"
+ "i327"
+ "i325"
+ "i323"
+ "i321"
+ "i319"
+ "i317"
+ "i315"
+ "i313"
+ "i311"
+ "i308"
+ "i306"
+ "i304"
+ "i302"
+ "i300"
+ "i298"
+ "i296"
+ "i294"
+ "i292"
+ "i290"
+ "i288"
+ "i286"
+ "i284"
+ "i282"
+ "i280"
+ "i278"
+ "i276"
+ "i274"
+ "i272"
+ "i270"
+ "i268"
+ "i266"
+ "i264"
+ "i262"
+ "i261"
+ "i258"
+ "i256"
+ "i255"
+ "i254"
+ "i253"
+ "i252"
+ "i250"
+ "i248"
+ "i246"
+ "i243"
+ "i241"
+ "i239"
+ "i237"
+ "i235"
+ "i233"
+ "i231"
+ "i229"
+ "i227"
+ "i225"
+ "i223"
+ "i221"
+ "i219"
+ "i217"
+ "i215"
+ "i213"
+ "i211"
+ "i209"
+ "i207"))
+ #(ribcage
+ (define-structure
+ define-expansion-accessors
+ define-expansion-constructors)
+ ((top) (top) (top))
+ ("i45" "i44" "i43")))
+ (hygiene guile)))
+ #f))
+ #f))
+ #{key 3983}#)
+ (let ((#{x 3991}#
+ (gensym
+ (string-append (symbol->string 'tmp) " "))))
+ (#{build-call 273}#
+ #{s 3968}#
+ (let ((#{req 10960}# (list 'tmp))
+ (#{vars 10962}# (list #{x 3991}#))
+ (#{exp 10964}#
+ (#{gen-syntax-case 3742}#
+ (make-struct/no-tail
+ (vector-ref %expanded-vtables 3)
#f
- "source expression failed to match any
pattern"
- #{tmp 4392}#)))))))
- #{tmp 4389}#)
+ 'tmp
+ #{x 3991}#)
+ #{key 3983}#
+ #{m 3984}#
+ #{r 3966}#
+ #{mod 3969}#)))
+ (let ((#{body 10981}#
+ (make-struct/no-tail
+ (vector-ref %expanded-vtables 15)
+ #f
+ #{req 10960}#
+ #f
+ #f
+ #f
+ '()
+ #{vars 10962}#
+ #{exp 10964}#
+ #f)))
+ (make-struct/no-tail
+ (vector-ref %expanded-vtables 14)
+ #f
+ '()
+ #{body 10981}#)))
+ (list (#{chi 441}#
+ #{val 3982}#
+ #{r 3966}#
+ '(())
+ #{mod 3969}#))))
(syntax-violation
- #f
- "source expression failed to match any pattern"
- #{tmp 4388}#)))))
- #{tmp 4374}#)
+ 'syntax-case
+ "invalid literals list"
+ #{e 3976}#)))
+ #{tmp 3978}#)
+ (syntax-violation
+ #f
+ "source expression failed to match any pattern"
+ #{e 3976}#)))))))
+ (set! macroexpand
+ (lambda*
+ (#{x 3997}#
+ #:optional
+ (#{m 3999}# 'e)
+ (#{esew 4001}# '(eval)))
+ (#{chi-top-sequence 433}#
+ (list #{x 3997}#)
+ '()
+ '((top))
+ #f
+ #{m 3999}#
+ #{esew 4001}#
+ (cons 'hygiene (module-name (current-module))))))
+ (set! identifier?
+ (lambda (#{x 4005}#)
+ (if (if (vector? #{x 4005}#)
+ (if (= (vector-length #{x 4005}#) 4)
+ (eq? (vector-ref #{x 4005}# 0) 'syntax-object)
+ #f)
+ #f)
+ (symbol? (vector-ref #{x 4005}# 1))
+ #f)))
+ (set! datum->syntax
+ (lambda (#{id 4007}# #{datum 4008}#)
+ (let ((#{wrap 11055}# (vector-ref #{id 4007}# 2))
+ (#{module 11056}# (vector-ref #{id 4007}# 3)))
+ (vector
+ 'syntax-object
+ #{datum 4008}#
+ #{wrap 11055}#
+ #{module 11056}#))))
+ (set! syntax->datum
+ (lambda (#{x 4011}#)
+ (#{strip 467}# #{x 4011}# '(()))))
+ (set! syntax-source
+ (lambda (#{x 4014}#)
+ (#{source-annotation 331}# #{x 4014}#)))
+ (set! generate-temporaries
+ (lambda (#{ls 4016}#)
+ (begin
+ (if (not (list? #{ls 4016}#))
(syntax-violation
- #f
- "source expression failed to match any pattern"
- #{tmp 4373}#)))))))
-
-(define quasiquote
- (make-syntax-transformer
- 'quasiquote
- 'macro
+ 'generate-temporaries
+ "invalid argument"
+ #{ls 4016}#))
+ (let ((#{mod 4022}#
+ (cons 'hygiene (module-name (current-module)))))
+ (map (lambda (#{x 4023}#)
+ (let ((#{x 11191}# (gensym)))
+ (if (if (vector? #{x 11191}#)
+ (if (= (vector-length #{x 11191}#) 4)
+ (eq? (vector-ref #{x 11191}# 0) 'syntax-object)
+ #f)
+ #f)
+ (let ((#{expression 11200}# (vector-ref #{x 11191}# 1))
+ (#{wrap 11201}#
+ (let ((#{w2 11209}# (vector-ref #{x 11191}# 2)))
+ (cons (let ((#{m2 11219}# (car #{w2 11209}#)))
+ (if (null? #{m2 11219}#)
+ '(top)
+ (append '(top) #{m2 11219}#)))
+ (let ((#{m2 11223}# (cdr #{w2 11209}#)))
+ (if (null? #{m2 11223}#)
+ '()
+ (append '() #{m2 11223}#))))))
+ (#{module 11202}# (vector-ref #{x 11191}# 3)))
+ (vector
+ 'syntax-object
+ #{expression 11200}#
+ #{wrap 11201}#
+ #{module 11202}#))
+ (if (null? #{x 11191}#)
+ #{x 11191}#
+ (vector
+ 'syntax-object
+ #{x 11191}#
+ '((top))
+ #{mod 4022}#)))))
+ #{ls 4016}#)))))
+ (set! free-identifier=?
+ (lambda (#{x 4027}# #{y 4028}#)
+ (begin
+ (if (not (if (if (vector? #{x 4027}#)
+ (if (= (vector-length #{x 4027}#) 4)
+ (eq? (vector-ref #{x 4027}# 0) 'syntax-object)
+ #f)
+ #f)
+ (symbol? (vector-ref #{x 4027}# 1))
+ #f))
+ (syntax-violation
+ 'free-identifier=?
+ "invalid argument"
+ #{x 4027}#))
+ (if (not (if (if (vector? #{y 4028}#)
+ (if (= (vector-length #{y 4028}#) 4)
+ (eq? (vector-ref #{y 4028}# 0) 'syntax-object)
+ #f)
+ #f)
+ (symbol? (vector-ref #{y 4028}# 1))
+ #f))
+ (syntax-violation
+ 'free-identifier=?
+ "invalid argument"
+ #{y 4028}#))
+ (#{free-id=? 417}# #{x 4027}# #{y 4028}#))))
+ (set! bound-identifier=?
+ (lambda (#{x 4037}# #{y 4038}#)
+ (begin
+ (if (not (if (if (vector? #{x 4037}#)
+ (if (= (vector-length #{x 4037}#) 4)
+ (eq? (vector-ref #{x 4037}# 0) 'syntax-object)
+ #f)
+ #f)
+ (symbol? (vector-ref #{x 4037}# 1))
+ #f))
+ (syntax-violation
+ 'bound-identifier=?
+ "invalid argument"
+ #{x 4037}#))
+ (if (not (if (if (vector? #{y 4038}#)
+ (if (= (vector-length #{y 4038}#) 4)
+ (eq? (vector-ref #{y 4038}# 0) 'syntax-object)
+ #f)
+ #f)
+ (symbol? (vector-ref #{y 4038}# 1))
+ #f))
+ (syntax-violation
+ 'bound-identifier=?
+ "invalid argument"
+ #{y 4038}#))
+ (#{bound-id=? 419}# #{x 4037}# #{y 4038}#))))
+ (set! syntax-violation
+ (lambda*
+ (#{who 4047}#
+ #{message 4048}#
+ #{form 4049}#
+ #:optional
+ (#{subform 4053}# #f))
+ (begin
+ (if (not (if (not #{who 4047}#)
+ (not #{who 4047}#)
+ (let ((#{t 4065}# (string? #{who 4047}#)))
+ (if #{t 4065}# #{t 4065}# (symbol? #{who 4047}#)))))
+ (syntax-violation
+ 'syntax-violation
+ "invalid argument"
+ #{who 4047}#))
+ (if (not (string? #{message 4048}#))
+ (syntax-violation
+ 'syntax-violation
+ "invalid argument"
+ #{message 4048}#))
+ (throw 'syntax-error
+ #{who 4047}#
+ #{message 4048}#
+ (#{source-annotation 331}#
+ (if #{form 4049}# #{form 4049}# #{subform 4053}#))
+ (#{strip 467}# #{form 4049}# '(()))
+ (if #{subform 4053}#
+ (#{strip 467}# #{subform 4053}# '(()))
+ #f)))))
(letrec*
- ((#{quasi 4423}#
- (lambda (#{p 4436}# #{lev 4437}#)
- (let ((#{tmp 4440}# #{p 4436}#))
- (let ((#{tmp 4441}#
- ($sc-dispatch
- #{tmp 4440}#
- '(#(free-id
- #(syntax-object
- unquote
- ((top)
- #(ribcage () () ())
- #(ribcage
- #(p lev)
- #((top) (top))
- #("i4438" "i4439"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top) (top) (top) (top) (top) (top) (top))
- ("i4434"
- "i4432"
- "i4430"
- "i4428"
- "i4426"
- "i4424"
- "i4422")))
- (hygiene guile)))
- any))))
- (if #{tmp 4441}#
- (@apply
- (lambda (#{p 4443}#)
- (if (= #{lev 4437}# 0)
- (list '#(syntax-object
- "value"
- ((top)
- #(ribcage #(p) #((top)) #("i4442"))
- #(ribcage () () ())
- #(ribcage
- #(p lev)
- #((top) (top))
- #("i4438" "i4439"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top) (top) (top) (top) (top) (top) (top))
- ("i4434"
- "i4432"
- "i4430"
- "i4428"
- "i4426"
- "i4424"
- "i4422")))
- (hygiene guile))
- #{p 4443}#)
- (#{quasicons 4427}#
- '(#(syntax-object
- "quote"
- ((top)
- #(ribcage #(p) #((top)) #("i4442"))
- #(ribcage () () ())
- #(ribcage
- #(p lev)
- #((top) (top))
- #("i4438" "i4439"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top) (top) (top) (top) (top) (top) (top))
- ("i4434"
- "i4432"
- "i4430"
- "i4428"
- "i4426"
- "i4424"
- "i4422")))
- (hygiene guile))
- #(syntax-object
- unquote
- ((top)
- #(ribcage #(p) #((top)) #("i4442"))
- #(ribcage () () ())
- #(ribcage
- #(p lev)
- #((top) (top))
- #("i4438" "i4439"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top) (top) (top) (top) (top) (top) (top))
- ("i4434"
- "i4432"
- "i4430"
- "i4428"
- "i4426"
- "i4424"
- "i4422")))
- (hygiene guile)))
- (#{quasi 4423}#
- (list #{p 4443}#)
- (#{1-}# #{lev 4437}#)))))
- #{tmp 4441}#)
- (let ((#{tmp 4444}#
- ($sc-dispatch
- #{tmp 4440}#
- '(#(free-id
- #(syntax-object
- quasiquote
- ((top)
- #(ribcage () () ())
- #(ribcage
- #(p lev)
- #((top) (top))
- #("i4438" "i4439"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top) (top) (top) (top) (top) (top) (top))
- ("i4434"
- "i4432"
- "i4430"
- "i4428"
- "i4426"
- "i4424"
- "i4422")))
- (hygiene guile)))
- any))))
- (if #{tmp 4444}#
- (@apply
- (lambda (#{p 4446}#)
- (#{quasicons 4427}#
- '(#(syntax-object
- "quote"
+ ((#{match-each 4079}#
+ (lambda (#{e 4092}# #{p 4093}# #{w 4094}# #{mod 4095}#)
+ (if (pair? #{e 4092}#)
+ (let ((#{first 4103}#
+ (#{match 4091}#
+ (car #{e 4092}#)
+ #{p 4093}#
+ #{w 4094}#
+ '()
+ #{mod 4095}#)))
+ (if #{first 4103}#
+ (let ((#{rest 4107}#
+ (#{match-each 4079}#
+ (cdr #{e 4092}#)
+ #{p 4093}#
+ #{w 4094}#
+ #{mod 4095}#)))
+ (if #{rest 4107}#
+ (cons #{first 4103}# #{rest 4107}#)
+ #f))
+ #f))
+ (if (null? #{e 4092}#)
+ '()
+ (if (if (vector? #{e 4092}#)
+ (if (= (vector-length #{e 4092}#) 4)
+ (eq? (vector-ref #{e 4092}# 0) 'syntax-object)
+ #f)
+ #f)
+ (#{match-each 4079}#
+ (vector-ref #{e 4092}# 1)
+ #{p 4093}#
+ (let ((#{w2 11457}# (vector-ref #{e 4092}# 2)))
+ (let ((#{m1 11458}# (car #{w 4094}#))
+ (#{s1 11459}# (cdr #{w 4094}#)))
+ (if (null? #{m1 11458}#)
+ (if (null? #{s1 11459}#)
+ #{w2 11457}#
+ (cons (car #{w2 11457}#)
+ (let ((#{m2 11466}# (cdr #{w2 11457}#)))
+ (if (null? #{m2 11466}#)
+ #{s1 11459}#
+ (append #{s1 11459}# #{m2 11466}#)))))
+ (cons (let ((#{m2 11470}# (car #{w2 11457}#)))
+ (if (null? #{m2 11470}#)
+ #{m1 11458}#
+ (append #{m1 11458}# #{m2 11470}#)))
+ (let ((#{m2 11474}# (cdr #{w2 11457}#)))
+ (if (null? #{m2 11474}#)
+ #{s1 11459}#
+ (append #{s1 11459}# #{m2 11474}#)))))))
+ (vector-ref #{e 4092}# 3))
+ #f)))))
+ (#{match-each+ 4081}#
+ (lambda (#{e 4115}#
+ #{x-pat 4116}#
+ #{y-pat 4117}#
+ #{z-pat 4118}#
+ #{w 4119}#
+ #{r 4120}#
+ #{mod 4121}#)
+ (letrec*
+ ((#{f 4132}#
+ (lambda (#{e 4133}# #{w 4134}#)
+ (if (pair? #{e 4133}#)
+ (call-with-values
+ (lambda ()
+ (#{f 4132}# (cdr #{e 4133}#) #{w 4134}#))
+ (lambda (#{xr* 4137}# #{y-pat 4138}# #{r 4139}#)
+ (if #{r 4139}#
+ (if (null? #{y-pat 4138}#)
+ (let ((#{xr 4144}#
+ (#{match 4091}#
+ (car #{e 4133}#)
+ #{x-pat 4116}#
+ #{w 4134}#
+ '()
+ #{mod 4121}#)))
+ (if #{xr 4144}#
+ (values
+ (cons #{xr 4144}# #{xr* 4137}#)
+ #{y-pat 4138}#
+ #{r 4139}#)
+ (values #f #f #f)))
+ (values
+ '()
+ (cdr #{y-pat 4138}#)
+ (#{match 4091}#
+ (car #{e 4133}#)
+ (car #{y-pat 4138}#)
+ #{w 4134}#
+ #{r 4139}#
+ #{mod 4121}#)))
+ (values #f #f #f))))
+ (if (if (vector? #{e 4133}#)
+ (if (= (vector-length #{e 4133}#) 4)
+ (eq? (vector-ref #{e 4133}# 0) 'syntax-object)
+ #f)
+ #f)
+ (#{f 4132}#
+ (vector-ref #{e 4133}# 1)
+ (let ((#{m1 11490}# (car #{w 4134}#))
+ (#{s1 11491}# (cdr #{w 4134}#)))
+ (if (null? #{m1 11490}#)
+ (if (null? #{s1 11491}#)
+ #{e 4133}#
+ (cons (car #{e 4133}#)
+ (let ((#{m2 11495}# (cdr #{e 4133}#)))
+ (if (null? #{m2 11495}#)
+ #{s1 11491}#
+ (append #{s1 11491}# #{m2 11495}#)))))
+ (cons (let ((#{m2 11499}# (car #{e 4133}#)))
+ (if (null? #{m2 11499}#)
+ #{m1 11490}#
+ (append #{m1 11490}# #{m2 11499}#)))
+ (let ((#{m2 11503}# (cdr #{e 4133}#)))
+ (if (null? #{m2 11503}#)
+ #{s1 11491}#
+ (append #{s1 11491}# #{m2 11503}#)))))))
+ (values
+ '()
+ #{y-pat 4117}#
+ (#{match 4091}#
+ #{e 4133}#
+ #{z-pat 4118}#
+ #{w 4134}#
+ #{r 4120}#
+ #{mod 4121}#)))))))
+ (#{f 4132}# #{e 4115}# #{w 4119}#))))
+ (#{match-each-any 4083}#
+ (lambda (#{e 4148}# #{w 4149}# #{mod 4150}#)
+ (if (pair? #{e 4148}#)
+ (let ((#{l 4157}#
+ (#{match-each-any 4083}#
+ (cdr #{e 4148}#)
+ #{w 4149}#
+ #{mod 4150}#)))
+ (if #{l 4157}#
+ (cons (let ((#{x 11507}# (car #{e 4148}#)))
+ (if (if (null? (car #{w 4149}#))
+ (null? (cdr #{w 4149}#))
+ #f)
+ #{x 11507}#
+ (if (if (vector? #{x 11507}#)
+ (if (= (vector-length #{x 11507}#) 4)
+ (eq? (vector-ref #{x 11507}# 0)
+ 'syntax-object)
+ #f)
+ #f)
+ (let ((#{expression 11515}#
+ (vector-ref #{x 11507}# 1))
+ (#{wrap 11516}#
+ (let ((#{w2 11524}#
+ (vector-ref #{x 11507}# 2)))
+ (let ((#{m1 11525}# (car #{w 4149}#))
+ (#{s1 11526}# (cdr #{w 4149}#)))
+ (if (null? #{m1 11525}#)
+ (if (null? #{s1 11526}#)
+ #{w2 11524}#
+ (cons (car #{w2 11524}#)
+ (let ((#{m2 11533}#
+ (cdr #{w2 11524}#)))
+ (if (null? #{m2 11533}#)
+ #{s1 11526}#
+ (append
+ #{s1 11526}#
+ #{m2 11533}#)))))
+ (cons (let ((#{m2 11537}#
+ (car #{w2 11524}#)))
+ (if (null? #{m2 11537}#)
+ #{m1 11525}#
+ (append
+ #{m1 11525}#
+ #{m2 11537}#)))
+ (let ((#{m2 11541}#
+ (cdr #{w2 11524}#)))
+ (if (null? #{m2 11541}#)
+ #{s1 11526}#
+ (append
+ #{s1 11526}#
+ #{m2 11541}#))))))))
+ (#{module 11517}#
+ (vector-ref #{x 11507}# 3)))
+ (vector
+ 'syntax-object
+ #{expression 11515}#
+ #{wrap 11516}#
+ #{module 11517}#))
+ (if (null? #{x 11507}#)
+ #{x 11507}#
+ (vector
+ 'syntax-object
+ #{x 11507}#
+ #{w 4149}#
+ #{mod 4150}#)))))
+ #{l 4157}#)
+ #f))
+ (if (null? #{e 4148}#)
+ '()
+ (if (if (vector? #{e 4148}#)
+ (if (= (vector-length #{e 4148}#) 4)
+ (eq? (vector-ref #{e 4148}# 0) 'syntax-object)
+ #f)
+ #f)
+ (#{match-each-any 4083}#
+ (vector-ref #{e 4148}# 1)
+ (let ((#{w2 11559}# (vector-ref #{e 4148}# 2)))
+ (let ((#{m1 11560}# (car #{w 4149}#))
+ (#{s1 11561}# (cdr #{w 4149}#)))
+ (if (null? #{m1 11560}#)
+ (if (null? #{s1 11561}#)
+ #{w2 11559}#
+ (cons (car #{w2 11559}#)
+ (let ((#{m2 11568}# (cdr #{w2 11559}#)))
+ (if (null? #{m2 11568}#)
+ #{s1 11561}#
+ (append #{s1 11561}# #{m2 11568}#)))))
+ (cons (let ((#{m2 11572}# (car #{w2 11559}#)))
+ (if (null? #{m2 11572}#)
+ #{m1 11560}#
+ (append #{m1 11560}# #{m2 11572}#)))
+ (let ((#{m2 11576}# (cdr #{w2 11559}#)))
+ (if (null? #{m2 11576}#)
+ #{s1 11561}#
+ (append #{s1 11561}# #{m2 11576}#)))))))
+ #{mod 4150}#)
+ #f)))))
+ (#{match-empty 4085}#
+ (lambda (#{p 4165}# #{r 4166}#)
+ (if (null? #{p 4165}#)
+ #{r 4166}#
+ (if (eq? #{p 4165}# '_)
+ #{r 4166}#
+ (if (eq? #{p 4165}# 'any)
+ (cons '() #{r 4166}#)
+ (if (pair? #{p 4165}#)
+ (#{match-empty 4085}#
+ (car #{p 4165}#)
+ (#{match-empty 4085}#
+ (cdr #{p 4165}#)
+ #{r 4166}#))
+ (if (eq? #{p 4165}# 'each-any)
+ (cons '() #{r 4166}#)
+ (let ((#{atom-key 4182}# (vector-ref #{p 4165}# 0)))
+ (if (memv #{atom-key 4182}# '(each))
+ (#{match-empty 4085}#
+ (vector-ref #{p 4165}# 1)
+ #{r 4166}#)
+ (if (memv #{atom-key 4182}# '(each+))
+ (#{match-empty 4085}#
+ (vector-ref #{p 4165}# 1)
+ (#{match-empty 4085}#
+ (reverse (vector-ref #{p 4165}# 2))
+ (#{match-empty 4085}#
+ (vector-ref #{p 4165}# 3)
+ #{r 4166}#)))
+ (if (memv #{atom-key 4182}# '(free-id atom))
+ #{r 4166}#
+ (if (memv #{atom-key 4182}# '(vector))
+ (#{match-empty 4085}#
+ (vector-ref #{p 4165}# 1)
+ #{r 4166}#)))))))))))))
+ (#{combine 4087}#
+ (lambda (#{r* 4187}# #{r 4188}#)
+ (if (null? (car #{r* 4187}#))
+ #{r 4188}#
+ (cons (map car #{r* 4187}#)
+ (#{combine 4087}#
+ (map cdr #{r* 4187}#)
+ #{r 4188}#)))))
+ (#{match* 4089}#
+ (lambda (#{e 4191}#
+ #{p 4192}#
+ #{w 4193}#
+ #{r 4194}#
+ #{mod 4195}#)
+ (if (null? #{p 4192}#)
+ (if (null? #{e 4191}#) #{r 4194}# #f)
+ (if (pair? #{p 4192}#)
+ (if (pair? #{e 4191}#)
+ (#{match 4091}#
+ (car #{e 4191}#)
+ (car #{p 4192}#)
+ #{w 4193}#
+ (#{match 4091}#
+ (cdr #{e 4191}#)
+ (cdr #{p 4192}#)
+ #{w 4193}#
+ #{r 4194}#
+ #{mod 4195}#)
+ #{mod 4195}#)
+ #f)
+ (if (eq? #{p 4192}# 'each-any)
+ (let ((#{l 4212}#
+ (#{match-each-any 4083}#
+ #{e 4191}#
+ #{w 4193}#
+ #{mod 4195}#)))
+ (if #{l 4212}# (cons #{l 4212}# #{r 4194}#) #f))
+ (let ((#{atom-key 4218}# (vector-ref #{p 4192}# 0)))
+ (if (memv #{atom-key 4218}# '(each))
+ (if (null? #{e 4191}#)
+ (#{match-empty 4085}#
+ (vector-ref #{p 4192}# 1)
+ #{r 4194}#)
+ (let ((#{l 4221}#
+ (#{match-each 4079}#
+ #{e 4191}#
+ (vector-ref #{p 4192}# 1)
+ #{w 4193}#
+ #{mod 4195}#)))
+ (if #{l 4221}#
+ (letrec*
+ ((#{collect 4226}#
+ (lambda (#{l 4227}#)
+ (if (null? (car #{l 4227}#))
+ #{r 4194}#
+ (cons (map car #{l 4227}#)
+ (#{collect 4226}#
+ (map cdr #{l 4227}#)))))))
+ (#{collect 4226}# #{l 4221}#))
+ #f)))
+ (if (memv #{atom-key 4218}# '(each+))
+ (call-with-values
+ (lambda ()
+ (#{match-each+ 4081}#
+ #{e 4191}#
+ (vector-ref #{p 4192}# 1)
+ (vector-ref #{p 4192}# 2)
+ (vector-ref #{p 4192}# 3)
+ #{w 4193}#
+ #{r 4194}#
+ #{mod 4195}#))
+ (lambda (#{xr* 4229}# #{y-pat 4230}# #{r 4231}#)
+ (if #{r 4231}#
+ (if (null? #{y-pat 4230}#)
+ (if (null? #{xr* 4229}#)
+ (#{match-empty 4085}#
+ (vector-ref #{p 4192}# 1)
+ #{r 4231}#)
+ (#{combine 4087}# #{xr* 4229}# #{r 4231}#))
+ #f)
+ #f)))
+ (if (memv #{atom-key 4218}# '(free-id))
+ (if (if (symbol? #{e 4191}#)
+ #t
+ (if (if (vector? #{e 4191}#)
+ (if (= (vector-length #{e 4191}#) 4)
+ (eq? (vector-ref #{e 4191}# 0)
+ 'syntax-object)
+ #f)
+ #f)
+ (symbol? (vector-ref #{e 4191}# 1))
+ #f))
+ (if (#{free-id=? 417}#
+ (if (if (null? (car #{w 4193}#))
+ (null? (cdr #{w 4193}#))
+ #f)
+ #{e 4191}#
+ (if (if (vector? #{e 4191}#)
+ (if (= (vector-length #{e 4191}#) 4)
+ (eq? (vector-ref #{e 4191}# 0)
+ 'syntax-object)
+ #f)
+ #f)
+ (let ((#{expression 11659}#
+ (vector-ref #{e 4191}# 1))
+ (#{wrap 11660}#
+ (let ((#{w2 11668}#
+ (vector-ref
+ #{e 4191}#
+ 2)))
+ (let ((#{m1 11669}#
+ (car #{w 4193}#))
+ (#{s1 11670}#
+ (cdr #{w 4193}#)))
+ (if (null? #{m1 11669}#)
+ (if (null? #{s1 11670}#)
+ #{w2 11668}#
+ (cons (car #{w2 11668}#)
+ (let ((#{m2 11677}#
+ (cdr #{w2
11668}#)))
+ (if (null? #{m2
11677}#)
+ #{s1 11670}#
+ (append
+ #{s1 11670}#
+ #{m2
11677}#)))))
+ (cons (let ((#{m2 11681}#
+ (car #{w2
11668}#)))
+ (if (null? #{m2
11681}#)
+ #{m1 11669}#
+ (append
+ #{m1 11669}#
+ #{m2 11681}#)))
+ (let ((#{m2 11685}#
+ (cdr #{w2
11668}#)))
+ (if (null? #{m2
11685}#)
+ #{s1 11670}#
+ (append
+ #{s1 11670}#
+ #{m2
11685}#))))))))
+ (#{module 11661}#
+ (vector-ref #{e 4191}# 3)))
+ (vector
+ 'syntax-object
+ #{expression 11659}#
+ #{wrap 11660}#
+ #{module 11661}#))
+ (if (null? #{e 4191}#)
+ #{e 4191}#
+ (vector
+ 'syntax-object
+ #{e 4191}#
+ #{w 4193}#
+ #{mod 4195}#))))
+ (vector-ref #{p 4192}# 1))
+ #{r 4194}#
+ #f)
+ #f)
+ (if (memv #{atom-key 4218}# '(atom))
+ (if (equal?
+ (vector-ref #{p 4192}# 1)
+ (#{strip 467}# #{e 4191}# #{w 4193}#))
+ #{r 4194}#
+ #f)
+ (if (memv #{atom-key 4218}# '(vector))
+ (if (vector? #{e 4191}#)
+ (#{match 4091}#
+ (vector->list #{e 4191}#)
+ (vector-ref #{p 4192}# 1)
+ #{w 4193}#
+ #{r 4194}#
+ #{mod 4195}#)
+ #f))))))))))))
+ (#{match 4091}#
+ (lambda (#{e 4248}#
+ #{p 4249}#
+ #{w 4250}#
+ #{r 4251}#
+ #{mod 4252}#)
+ (if (not #{r 4251}#)
+ #f
+ (if (eq? #{p 4249}# '_)
+ #{r 4251}#
+ (if (eq? #{p 4249}# 'any)
+ (cons (if (if (null? (car #{w 4250}#))
+ (null? (cdr #{w 4250}#))
+ #f)
+ #{e 4248}#
+ (if (if (vector? #{e 4248}#)
+ (if (= (vector-length #{e 4248}#) 4)
+ (eq? (vector-ref #{e 4248}# 0) 'syntax-object)
+ #f)
+ #f)
+ (let ((#{expression 11705}#
+ (vector-ref #{e 4248}# 1))
+ (#{wrap 11706}#
+ (let ((#{w2 11714}#
+ (vector-ref #{e 4248}# 2)))
+ (let ((#{m1 11715}# (car #{w 4250}#))
+ (#{s1 11716}# (cdr #{w 4250}#)))
+ (if (null? #{m1 11715}#)
+ (if (null? #{s1 11716}#)
+ #{w2 11714}#
+ (cons (car #{w2 11714}#)
+ (let ((#{m2 11723}#
+ (cdr #{w2 11714}#)))
+ (if (null? #{m2 11723}#)
+ #{s1 11716}#
+ (append
+ #{s1 11716}#
+ #{m2 11723}#)))))
+ (cons (let ((#{m2 11727}#
+ (car #{w2 11714}#)))
+ (if (null? #{m2 11727}#)
+ #{m1 11715}#
+ (append
+ #{m1 11715}#
+ #{m2 11727}#)))
+ (let ((#{m2 11731}#
+ (cdr #{w2 11714}#)))
+ (if (null? #{m2 11731}#)
+ #{s1 11716}#
+ (append
+ #{s1 11716}#
+ #{m2 11731}#))))))))
+ (#{module 11707}# (vector-ref #{e 4248}# 3)))
+ (vector
+ 'syntax-object
+ #{expression 11705}#
+ #{wrap 11706}#
+ #{module 11707}#))
+ (if (null? #{e 4248}#)
+ #{e 4248}#
+ (vector
+ 'syntax-object
+ #{e 4248}#
+ #{w 4250}#
+ #{mod 4252}#))))
+ #{r 4251}#)
+ (if (if (vector? #{e 4248}#)
+ (if (= (vector-length #{e 4248}#) 4)
+ (eq? (vector-ref #{e 4248}# 0) 'syntax-object)
+ #f)
+ #f)
+ (#{match* 4089}#
+ (vector-ref #{e 4248}# 1)
+ #{p 4249}#
+ (let ((#{w2 11749}# (vector-ref #{e 4248}# 2)))
+ (let ((#{m1 11750}# (car #{w 4250}#))
+ (#{s1 11751}# (cdr #{w 4250}#)))
+ (if (null? #{m1 11750}#)
+ (if (null? #{s1 11751}#)
+ #{w2 11749}#
+ (cons (car #{w2 11749}#)
+ (let ((#{m2 11758}# (cdr #{w2 11749}#)))
+ (if (null? #{m2 11758}#)
+ #{s1 11751}#
+ (append #{s1 11751}# #{m2 11758}#)))))
+ (cons (let ((#{m2 11762}# (car #{w2 11749}#)))
+ (if (null? #{m2 11762}#)
+ #{m1 11750}#
+ (append #{m1 11750}# #{m2 11762}#)))
+ (let ((#{m2 11766}# (cdr #{w2 11749}#)))
+ (if (null? #{m2 11766}#)
+ #{s1 11751}#
+ (append #{s1 11751}# #{m2 11766}#)))))))
+ #{r 4251}#
+ (vector-ref #{e 4248}# 3))
+ (#{match* 4089}#
+ #{e 4248}#
+ #{p 4249}#
+ #{w 4250}#
+ #{r 4251}#
+ #{mod 4252}#))))))))
+ (set! $sc-dispatch
+ (lambda (#{e 4267}# #{p 4268}#)
+ (if (eq? #{p 4268}# 'any)
+ (list #{e 4267}#)
+ (if (eq? #{p 4268}# '_)
+ '()
+ (if (if (vector? #{e 4267}#)
+ (if (= (vector-length #{e 4267}#) 4)
+ (eq? (vector-ref #{e 4267}# 0) 'syntax-object)
+ #f)
+ #f)
+ (#{match* 4089}#
+ (vector-ref #{e 4267}# 1)
+ #{p 4268}#
+ (vector-ref #{e 4267}# 2)
+ '()
+ (vector-ref #{e 4267}# 3))
+ (#{match* 4089}#
+ #{e 4267}#
+ #{p 4268}#
+ '(())
+ '()
+ #f)))))))))
+
+(define with-syntax
+ (make-syntax-transformer
+ 'with-syntax
+ 'macro
+ (lambda (#{x 11785}#)
+ (let ((#{tmp 11788}#
+ ($sc-dispatch #{x 11785}# '(_ () any . each-any))))
+ (if #{tmp 11788}#
+ (@apply
+ (lambda (#{e1 11791}# #{e2 11792}#)
+ (cons '#(syntax-object
+ let
+ ((top)
+ #(ribcage
+ #(e1 e2)
+ #((top) (top))
+ #("i11789" "i11790"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i11786")))
+ (hygiene guile))
+ (cons '() (cons #{e1 11791}# #{e2 11792}#))))
+ #{tmp 11788}#)
+ (let ((#{tmp 11794}#
+ ($sc-dispatch
+ #{x 11785}#
+ '(_ ((any any)) any . each-any))))
+ (if #{tmp 11794}#
+ (@apply
+ (lambda (#{out 11799}#
+ #{in 11800}#
+ #{e1 11801}#
+ #{e2 11802}#)
+ (list '#(syntax-object
+ syntax-case
+ ((top)
+ #(ribcage
+ #(out in e1 e2)
+ #((top) (top) (top) (top))
+ #("i11795" "i11796" "i11797" "i11798"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i11786")))
+ (hygiene guile))
+ #{in 11800}#
+ '()
+ (list #{out 11799}#
+ (cons '#(syntax-object
+ let
+ ((top)
+ #(ribcage
+ #(out in e1 e2)
+ #((top) (top) (top) (top))
+ #("i11795"
+ "i11796"
+ "i11797"
+ "i11798"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i11786")))
+ (hygiene guile))
+ (cons '()
+ (cons #{e1 11801}# #{e2 11802}#))))))
+ #{tmp 11794}#)
+ (let ((#{tmp 11804}#
+ ($sc-dispatch
+ #{x 11785}#
+ '(_ #(each (any any)) any . each-any))))
+ (if #{tmp 11804}#
+ (@apply
+ (lambda (#{out 11809}#
+ #{in 11810}#
+ #{e1 11811}#
+ #{e2 11812}#)
+ (list '#(syntax-object
+ syntax-case
((top)
- #(ribcage #(p) #((top)) #("i4445"))
- #(ribcage () () ())
- #(ribcage
- #(p lev)
- #((top) (top))
- #("i4438" "i4439"))
#(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top) (top) (top) (top) (top) (top) (top))
- ("i4434"
- "i4432"
- "i4430"
- "i4428"
- "i4426"
- "i4424"
- "i4422")))
- (hygiene guile))
- #(syntax-object
- quasiquote
- ((top)
- #(ribcage #(p) #((top)) #("i4445"))
+ #(out in e1 e2)
+ #((top) (top) (top) (top))
+ #("i11805" "i11806" "i11807" "i11808"))
#(ribcage () () ())
- #(ribcage
- #(p lev)
- #((top) (top))
- #("i4438" "i4439"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top) (top) (top) (top) (top) (top) (top))
- ("i4434"
- "i4432"
- "i4430"
- "i4428"
- "i4426"
- "i4424"
- "i4422")))
- (hygiene guile)))
- (#{quasi 4423}#
- (list #{p 4446}#)
- (#{1+}# #{lev 4437}#))))
- #{tmp 4444}#)
- (let ((#{tmp 4447}#
- ($sc-dispatch #{tmp 4440}# '(any . any))))
- (if #{tmp 4447}#
- (@apply
- (lambda (#{p 4450}# #{q 4451}#)
- (let ((#{tmp 4452}# #{p 4450}#))
- (let ((#{tmp 4453}#
- ($sc-dispatch
- #{tmp 4452}#
- '(#(free-id
- #(syntax-object
- unquote
- ((top)
- #(ribcage
- #(p q)
- #((top) (top))
- #("i4448" "i4449"))
- #(ribcage () () ())
- #(ribcage
- #(p lev)
- #((top) (top))
- #("i4438" "i4439"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("i4434"
- "i4432"
- "i4430"
- "i4428"
- "i4426"
- "i4424"
- "i4422")))
- (hygiene guile)))
- .
- each-any))))
- (if #{tmp 4453}#
- (@apply
- (lambda (#{p 4455}#)
- (if (= #{lev 4437}# 0)
- (#{quasilist* 4431}#
- (map (lambda (#{tmp 4456}#)
- (list '#(syntax-object
- "value"
- ((top)
- #(ribcage
- #(p)
- #((top))
- #("i4454"))
- #(ribcage
- #(p q)
- #((top) (top))
- #("i4448"
- "i4449"))
- #(ribcage () () ())
- #(ribcage
- #(p lev)
- #((top) (top))
- #("i4438"
- "i4439"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("i4434"
- "i4432"
- "i4430"
- "i4428"
- "i4426"
- "i4424"
- "i4422")))
- (hygiene guile))
- #{tmp 4456}#))
- #{p 4455}#)
- (#{quasi 4423}#
- #{q 4451}#
- #{lev 4437}#))
- (#{quasicons 4427}#
- (#{quasicons 4427}#
- '(#(syntax-object
- "quote"
- ((top)
- #(ribcage
- #(p)
- #((top))
- #("i4454"))
- #(ribcage
- #(p q)
- #((top) (top))
- #("i4448" "i4449"))
- #(ribcage () () ())
- #(ribcage
- #(p lev)
- #((top) (top))
- #("i4438" "i4439"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("i4434"
- "i4432"
- "i4430"
- "i4428"
- "i4426"
- "i4424"
- "i4422")))
- (hygiene guile))
- #(syntax-object
- unquote
- ((top)
- #(ribcage
- #(p)
- #((top))
- #("i4454"))
- #(ribcage
- #(p q)
- #((top) (top))
- #("i4448" "i4449"))
- #(ribcage () () ())
- #(ribcage
- #(p lev)
- #((top) (top))
- #("i4438" "i4439"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("i4434"
- "i4432"
- "i4430"
- "i4428"
- "i4426"
- "i4424"
- "i4422")))
- (hygiene guile)))
- (#{quasi 4423}#
- #{p 4455}#
- (#{1-}# #{lev 4437}#)))
- (#{quasi 4423}#
- #{q 4451}#
- #{lev 4437}#))))
- #{tmp 4453}#)
- (let ((#{tmp 4458}#
- ($sc-dispatch
- #{tmp 4452}#
- '(#(free-id
- #(syntax-object
- unquote-splicing
- ((top)
- #(ribcage
- #(p q)
- #((top) (top))
- #("i4448" "i4449"))
- #(ribcage () () ())
- #(ribcage
- #(p lev)
- #((top) (top))
- #("i4438" "i4439"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("i4434"
- "i4432"
- "i4430"
- "i4428"
- "i4426"
- "i4424"
- "i4422")))
- (hygiene guile)))
- .
- each-any))))
- (if #{tmp 4458}#
- (@apply
- (lambda (#{p 4460}#)
- (if (= #{lev 4437}# 0)
- (#{quasiappend 4429}#
- (map (lambda (#{tmp 4461}#)
- (list '#(syntax-object
- "value"
- ((top)
- #(ribcage
- #(p)
- #((top))
- #("i4459"))
- #(ribcage
- #(p q)
- #((top)
- (top))
- #("i4448"
- "i4449"))
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(p lev)
- #((top)
- (top))
- #("i4438"
- "i4439"))
- #(ribcage
- (emit
quasivector
-
quasilist*
-
quasiappend
-
quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("i4434"
- "i4432"
- "i4430"
- "i4428"
- "i4426"
- "i4424"
- "i4422")))
- (hygiene guile))
- #{tmp 4461}#))
- #{p 4460}#)
- (#{quasi 4423}#
- #{q 4451}#
- #{lev 4437}#))
- (#{quasicons 4427}#
- (#{quasicons 4427}#
- '(#(syntax-object
- "quote"
- ((top)
- #(ribcage
- #(p)
- #((top))
- #("i4459"))
- #(ribcage
- #(p q)
- #((top) (top))
- #("i4448" "i4449"))
- #(ribcage () () ())
- #(ribcage
- #(p lev)
- #((top) (top))
- #("i4438" "i4439"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("i4434"
- "i4432"
- "i4430"
- "i4428"
- "i4426"
- "i4424"
- "i4422")))
- (hygiene guile))
- #(syntax-object
- unquote-splicing
- ((top)
- #(ribcage
- #(p)
- #((top))
- #("i4459"))
- #(ribcage
- #(p q)
- #((top) (top))
- #("i4448" "i4449"))
- #(ribcage () () ())
- #(ribcage
- #(p lev)
- #((top) (top))
- #("i4438" "i4439"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("i4434"
- "i4432"
- "i4430"
- "i4428"
- "i4426"
- "i4424"
- "i4422")))
- (hygiene guile)))
- (#{quasi 4423}#
- #{p 4460}#
- (#{1-}# #{lev 4437}#)))
- (#{quasi 4423}#
- #{q 4451}#
- #{lev 4437}#))))
- #{tmp 4458}#)
- (let ((#{_ 4464}# #{tmp 4452}#))
- (#{quasicons 4427}#
- (#{quasi 4423}#
- #{p 4450}#
- #{lev 4437}#)
- (#{quasi 4423}#
- #{q 4451}#
- #{lev 4437}#)))))))))
- #{tmp 4447}#)
- (let ((#{tmp 4465}#
- ($sc-dispatch
- #{tmp 4440}#
- '#(vector each-any))))
- (if #{tmp 4465}#
- (@apply
- (lambda (#{x 4467}#)
- (#{quasivector 4433}#
- (#{vquasi 4425}# #{x 4467}# #{lev 4437}#)))
- #{tmp 4465}#)
- (let ((#{p 4470}# #{tmp 4440}#))
- (list '#(syntax-object
- "quote"
- ((top)
- #(ribcage #(p) #((top)) #("i4469"))
- #(ribcage () () ())
- #(ribcage
- #(p lev)
- #((top) (top))
- #("i4438" "i4439"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("i4434"
- "i4432"
- "i4430"
- "i4428"
- "i4426"
- "i4424"
- "i4422")))
- (hygiene guile))
- #{p 4470}#)))))))))))))
- (#{vquasi 4425}#
- (lambda (#{p 4471}# #{lev 4472}#)
- (let ((#{tmp 4475}# #{p 4471}#))
- (let ((#{tmp 4476}#
- ($sc-dispatch #{tmp 4475}# '(any . any))))
- (if #{tmp 4476}#
- (@apply
- (lambda (#{p 4479}# #{q 4480}#)
- (let ((#{tmp 4481}# #{p 4479}#))
- (let ((#{tmp 4482}#
- ($sc-dispatch
- #{tmp 4481}#
- '(#(free-id
- #(syntax-object
- unquote
+ #(ribcage #(x) #((top)) #("i11786")))
+ (hygiene guile))
+ (cons '#(syntax-object
+ list
+ ((top)
+ #(ribcage
+ #(out in e1 e2)
+ #((top) (top) (top) (top))
+ #("i11805" "i11806" "i11807" "i11808"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i11786")))
+ (hygiene guile))
+ #{in 11810}#)
+ '()
+ (list #{out 11809}#
+ (cons '#(syntax-object
+ let
+ ((top)
+ #(ribcage
+ #(out in e1 e2)
+ #((top) (top) (top) (top))
+ #("i11805"
+ "i11806"
+ "i11807"
+ "i11808"))
+ #(ribcage () () ())
+ #(ribcage
+ #(x)
+ #((top))
+ #("i11786")))
+ (hygiene guile))
+ (cons '()
+ (cons #{e1 11811}#
+ #{e2 11812}#))))))
+ #{tmp 11804}#)
+ (syntax-violation
+ #f
+ "source expression failed to match any pattern"
+ #{x 11785}#))))))))))
+
+(define syntax-rules
+ (make-syntax-transformer
+ 'syntax-rules
+ 'macro
+ (lambda (#{x 11816}#)
+ (let ((#{tmp 11819}#
+ ($sc-dispatch
+ #{x 11816}#
+ '(_ each-any . #(each ((any . any) any))))))
+ (if #{tmp 11819}#
+ (@apply
+ (lambda (#{k 11824}#
+ #{keyword 11825}#
+ #{pattern 11826}#
+ #{template 11827}#)
+ (list '#(syntax-object
+ lambda
+ ((top)
+ #(ribcage
+ #(k keyword pattern template)
+ #((top) (top) (top) (top))
+ #("i11820" "i11821" "i11822" "i11823"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i11817")))
+ (hygiene guile))
+ '(#(syntax-object
+ x
+ ((top)
+ #(ribcage
+ #(k keyword pattern template)
+ #((top) (top) (top) (top))
+ #("i11820" "i11821" "i11822" "i11823"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i11817")))
+ (hygiene guile)))
+ (vector
+ '(#(syntax-object
+ macro-type
+ ((top)
+ #(ribcage
+ #(k keyword pattern template)
+ #((top) (top) (top) (top))
+ #("i11820" "i11821" "i11822" "i11823"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i11817")))
+ (hygiene guile))
+ .
+ #(syntax-object
+ syntax-rules
+ ((top)
+ #(ribcage
+ #(k keyword pattern template)
+ #((top) (top) (top) (top))
+ #("i11820" "i11821" "i11822" "i11823"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i11817")))
+ (hygiene guile)))
+ (cons '#(syntax-object
+ patterns
+ ((top)
+ #(ribcage
+ #(k keyword pattern template)
+ #((top) (top) (top) (top))
+ #("i11820" "i11821" "i11822" "i11823"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i11817")))
+ (hygiene guile))
+ #{pattern 11826}#))
+ (cons '#(syntax-object
+ syntax-case
+ ((top)
+ #(ribcage
+ #(k keyword pattern template)
+ #((top) (top) (top) (top))
+ #("i11820" "i11821" "i11822" "i11823"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i11817")))
+ (hygiene guile))
+ (cons '#(syntax-object
+ x
+ ((top)
+ #(ribcage
+ #(k keyword pattern template)
+ #((top) (top) (top) (top))
+ #("i11820" "i11821" "i11822" "i11823"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i11817")))
+ (hygiene guile))
+ (cons #{k 11824}#
+ (map (lambda (#{tmp 11831}#
+ #{tmp 11830}#)
+ (list (cons '#(syntax-object
+ dummy
+ ((top)
+ #(ribcage
+ #(k
+ keyword
+ pattern
+ template)
+ #((top)
+ (top)
+ (top)
+ (top))
+ #("i11820"
+ "i11821"
+ "i11822"
+ "i11823"))
+ #(ribcage
+ ()
+ ()
+ ())
+ #(ribcage
+ #(x)
+ #((top))
+ #("i11817")))
+ (hygiene guile))
+ #{tmp 11830}#)
+ (list '#(syntax-object
+ syntax
+ ((top)
+ #(ribcage
+ #(k
+ keyword
+ pattern
+ template)
+ #((top)
+ (top)
+ (top)
+ (top))
+ #("i11820"
+ "i11821"
+ "i11822"
+ "i11823"))
+ #(ribcage
+ ()
+ ()
+ ())
+ #(ribcage
+ #(x)
+ #((top))
+ #("i11817")))
+ (hygiene guile))
+ #{tmp 11831}#)))
+ #{template 11827}#
+ #{pattern 11826}#))))))
+ #{tmp 11819}#)
+ (let ((#{tmp 11832}#
+ ($sc-dispatch
+ #{x 11816}#
+ '(_ each-any any . #(each ((any . any) any))))))
+ (if (if #{tmp 11832}#
+ (@apply
+ (lambda (#{k 11838}#
+ #{docstring 11839}#
+ #{keyword 11840}#
+ #{pattern 11841}#
+ #{template 11842}#)
+ (string? (syntax->datum #{docstring 11839}#)))
+ #{tmp 11832}#)
+ #f)
+ (@apply
+ (lambda (#{k 11848}#
+ #{docstring 11849}#
+ #{keyword 11850}#
+ #{pattern 11851}#
+ #{template 11852}#)
+ (list '#(syntax-object
+ lambda
+ ((top)
+ #(ribcage
+ #(k docstring keyword pattern template)
+ #((top) (top) (top) (top) (top))
+ #("i11843" "i11844" "i11845" "i11846" "i11847"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i11817")))
+ (hygiene guile))
+ '(#(syntax-object
+ x
+ ((top)
+ #(ribcage
+ #(k docstring keyword pattern template)
+ #((top) (top) (top) (top) (top))
+ #("i11843" "i11844" "i11845" "i11846" "i11847"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i11817")))
+ (hygiene guile)))
+ #{docstring 11849}#
+ (vector
+ '(#(syntax-object
+ macro-type
+ ((top)
+ #(ribcage
+ #(k docstring keyword pattern template)
+ #((top) (top) (top) (top) (top))
+ #("i11843"
+ "i11844"
+ "i11845"
+ "i11846"
+ "i11847"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i11817")))
+ (hygiene guile))
+ .
+ #(syntax-object
+ syntax-rules
+ ((top)
+ #(ribcage
+ #(k docstring keyword pattern template)
+ #((top) (top) (top) (top) (top))
+ #("i11843"
+ "i11844"
+ "i11845"
+ "i11846"
+ "i11847"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i11817")))
+ (hygiene guile)))
+ (cons '#(syntax-object
+ patterns
+ ((top)
+ #(ribcage
+ #(k docstring keyword pattern template)
+ #((top) (top) (top) (top) (top))
+ #("i11843"
+ "i11844"
+ "i11845"
+ "i11846"
+ "i11847"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i11817")))
+ (hygiene guile))
+ #{pattern 11851}#))
+ (cons '#(syntax-object
+ syntax-case
+ ((top)
+ #(ribcage
+ #(k docstring keyword pattern template)
+ #((top) (top) (top) (top) (top))
+ #("i11843"
+ "i11844"
+ "i11845"
+ "i11846"
+ "i11847"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i11817")))
+ (hygiene guile))
+ (cons '#(syntax-object
+ x
((top)
#(ribcage
- #(p q)
- #((top) (top))
- #("i4477" "i4478"))
+ #(k
+ docstring
+ keyword
+ pattern
+ template)
+ #((top) (top) (top) (top) (top))
+ #("i11843"
+ "i11844"
+ "i11845"
+ "i11846"
+ "i11847"))
#(ribcage () () ())
- #(ribcage
- #(p lev)
- #((top) (top))
- #("i4473" "i4474"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
+ #(ribcage #(x) #((top)) #("i11817")))
+ (hygiene guile))
+ (cons #{k 11848}#
+ (map (lambda (#{tmp 11856}#
+ #{tmp 11855}#)
+ (list (cons '#(syntax-object
+ dummy
+ ((top)
+ #(ribcage
+ #(k
+ docstring
+ keyword
+ pattern
+ template)
+ #((top)
+ (top)
+ (top)
+ (top)
+ (top))
+ #("i11843"
+ "i11844"
+ "i11845"
+ "i11846"
+ "i11847"))
+ #(ribcage
+ ()
+ ()
+ ())
+ #(ribcage
+ #(x)
+ #((top))
+
#("i11817")))
+ (hygiene
+ guile))
+ #{tmp 11855}#)
+ (list '#(syntax-object
+ syntax
+ ((top)
+ #(ribcage
+ #(k
+ docstring
+ keyword
+ pattern
+ template)
+ #((top)
+ (top)
+ (top)
+ (top)
+ (top))
+ #("i11843"
+ "i11844"
+ "i11845"
+ "i11846"
+ "i11847"))
+ #(ribcage
+ ()
+ ()
+ ())
+ #(ribcage
+ #(x)
+ #((top))
+
#("i11817")))
+ (hygiene
+ guile))
+ #{tmp 11856}#)))
+ #{template 11852}#
+ #{pattern 11851}#))))))
+ #{tmp 11832}#)
+ (syntax-violation
+ #f
+ "source expression failed to match any pattern"
+ #{x 11816}#))))))))
+
+(define define-syntax-rule
+ (make-syntax-transformer
+ 'define-syntax-rule
+ 'macro
+ (lambda (#{x 11857}#)
+ (let ((#{tmp 11860}#
+ ($sc-dispatch #{x 11857}# '(_ (any . any) any))))
+ (if #{tmp 11860}#
+ (@apply
+ (lambda (#{name 11864}#
+ #{pattern 11865}#
+ #{template 11866}#)
+ (list '#(syntax-object
+ define-syntax
+ ((top)
+ #(ribcage
+ #(name pattern template)
+ #((top) (top) (top))
+ #("i11861" "i11862" "i11863"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i11858")))
+ (hygiene guile))
+ #{name 11864}#
+ (list '#(syntax-object
+ syntax-rules
+ ((top)
+ #(ribcage
+ #(name pattern template)
+ #((top) (top) (top))
+ #("i11861" "i11862" "i11863"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i11858")))
+ (hygiene guile))
+ '()
+ (list (cons '#(syntax-object
+ _
+ ((top)
+ #(ribcage
+ #(name pattern template)
+ #((top) (top) (top))
+ #("i11861" "i11862" "i11863"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i11858")))
+ (hygiene guile))
+ #{pattern 11865}#)
+ #{template 11866}#))))
+ #{tmp 11860}#)
+ (let ((#{tmp 11867}#
+ ($sc-dispatch
+ #{x 11857}#
+ '(_ (any . any) any any))))
+ (if (if #{tmp 11867}#
+ (@apply
+ (lambda (#{name 11872}#
+ #{pattern 11873}#
+ #{docstring 11874}#
+ #{template 11875}#)
+ (string? (syntax->datum #{docstring 11874}#)))
+ #{tmp 11867}#)
+ #f)
+ (@apply
+ (lambda (#{name 11880}#
+ #{pattern 11881}#
+ #{docstring 11882}#
+ #{template 11883}#)
+ (list '#(syntax-object
+ define-syntax
+ ((top)
+ #(ribcage
+ #(name pattern docstring template)
+ #((top) (top) (top) (top))
+ #("i11876" "i11877" "i11878" "i11879"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i11858")))
+ (hygiene guile))
+ #{name 11880}#
+ (list '#(syntax-object
+ syntax-rules
+ ((top)
+ #(ribcage
+ #(name pattern docstring template)
+ #((top) (top) (top) (top))
+ #("i11876" "i11877" "i11878" "i11879"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i11858")))
+ (hygiene guile))
+ '()
+ #{docstring 11882}#
+ (list (cons '#(syntax-object
+ _
+ ((top)
+ #(ribcage
+ #(name
+ pattern
+ docstring
+ template)
+ #((top) (top) (top) (top))
+ #("i11876"
+ "i11877"
+ "i11878"
+ "i11879"))
+ #(ribcage () () ())
+ #(ribcage
+ #(x)
+ #((top))
+ #("i11858")))
+ (hygiene guile))
+ #{pattern 11881}#)
+ #{template 11883}#))))
+ #{tmp 11867}#)
+ (syntax-violation
+ #f
+ "source expression failed to match any pattern"
+ #{x 11857}#))))))))
+
+(define let*
+ (make-syntax-transformer
+ 'let*
+ 'macro
+ (lambda (#{x 11884}#)
+ (let ((#{tmp 11887}#
+ ($sc-dispatch
+ #{x 11884}#
+ '(any #(each (any any)) any . each-any))))
+ (if (if #{tmp 11887}#
+ (@apply
+ (lambda (#{let* 11893}#
+ #{x 11894}#
+ #{v 11895}#
+ #{e1 11896}#
+ #{e2 11897}#)
+ (and-map identifier? #{x 11894}#))
+ #{tmp 11887}#)
+ #f)
+ (@apply
+ (lambda (#{let* 11904}#
+ #{x 11905}#
+ #{v 11906}#
+ #{e1 11907}#
+ #{e2 11908}#)
+ (letrec*
+ ((#{f 11911}#
+ (lambda (#{bindings 11912}#)
+ (if (null? #{bindings 11912}#)
+ (cons '#(syntax-object
+ let
+ ((top)
+ #(ribcage () () ())
+ #(ribcage
+ #(f bindings)
+ #((top) (top))
+ #("i11909" "i11910"))
+ #(ribcage
+ #(let* x v e1 e2)
+ #((top) (top) (top) (top) (top))
+ #("i11899"
+ "i11900"
+ "i11901"
+ "i11902"
+ "i11903"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i11885")))
+ (hygiene guile))
+ (cons '() (cons #{e1 11907}# #{e2 11908}#)))
+ (let ((#{tmp 11917}#
+ (list (#{f 11911}# (cdr #{bindings 11912}#))
+ (car #{bindings 11912}#))))
+ (let ((#{tmp 11918}#
+ ($sc-dispatch #{tmp 11917}# '(any any))))
+ (if #{tmp 11918}#
+ (@apply
+ (lambda (#{body 11921}# #{binding 11922}#)
+ (list '#(syntax-object
+ let
((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("i4434"
- "i4432"
- "i4430"
- "i4428"
- "i4426"
- "i4424"
- "i4422")))
- (hygiene guile)))
- .
- each-any))))
- (if #{tmp 4482}#
- (@apply
- (lambda (#{p 4484}#)
- (if (= #{lev 4472}# 0)
- (#{quasilist* 4431}#
- (map (lambda (#{tmp 4485}#)
- (list '#(syntax-object
- "value"
- ((top)
- #(ribcage
- #(p)
- #((top))
- #("i4483"))
- #(ribcage
- #(p q)
- #((top) (top))
- #("i4477" "i4478"))
- #(ribcage () () ())
- #(ribcage
- #(p lev)
- #((top) (top))
- #("i4473" "i4474"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("i4434"
- "i4432"
- "i4430"
- "i4428"
- "i4426"
- "i4424"
- "i4422")))
- (hygiene guile))
- #{tmp 4485}#))
- #{p 4484}#)
- (#{vquasi 4425}# #{q 4480}# #{lev 4472}#))
- (#{quasicons 4427}#
- (#{quasicons 4427}#
- '(#(syntax-object
- "quote"
+ #(ribcage () () ())
+ #(ribcage
+ #(body binding)
+ #((top) (top))
+ #("i11919" "i11920"))
+ #(ribcage () () ())
+ #(ribcage
+ #(f bindings)
+ #((top) (top))
+ #("i11909" "i11910"))
+ #(ribcage
+ #(let* x v e1 e2)
+ #((top) (top) (top) (top) (top))
+ #("i11899"
+ "i11900"
+ "i11901"
+ "i11902"
+ "i11903"))
+ #(ribcage () () ())
+ #(ribcage
+ #(x)
+ #((top))
+ #("i11885")))
+ (hygiene guile))
+ (list #{binding 11922}#)
+ #{body 11921}#))
+ #{tmp 11918}#)
+ (syntax-violation
+ #f
+ "source expression failed to match any pattern"
+ #{tmp 11917}#))))))))
+ (#{f 11911}# (map list #{x 11905}# #{v 11906}#))))
+ #{tmp 11887}#)
+ (syntax-violation
+ #f
+ "source expression failed to match any pattern"
+ #{x 11884}#))))))
+
+(define do
+ (make-syntax-transformer
+ 'do
+ 'macro
+ (lambda (#{orig-x 12105}#)
+ (let ((#{tmp 12108}#
+ ($sc-dispatch
+ #{orig-x 12105}#
+ '(_ #(each (any any . any))
+ (any . each-any)
+ .
+ each-any))))
+ (if #{tmp 12108}#
+ (@apply
+ (lambda (#{var 12115}#
+ #{init 12116}#
+ #{step 12117}#
+ #{e0 12118}#
+ #{e1 12119}#
+ #{c 12120}#)
+ (let ((#{tmp 12122}#
+ (map (lambda (#{v 12143}# #{s 12144}#)
+ (let ((#{tmp 12148}#
+ ($sc-dispatch #{s 12144}# '())))
+ (if #{tmp 12148}#
+ (@apply (lambda () #{v 12143}#) #{tmp 12148}#)
+ (let ((#{tmp 12149}#
+ ($sc-dispatch #{s 12144}# '(any))))
+ (if #{tmp 12149}#
+ (@apply
+ (lambda (#{e 12151}#) #{e 12151}#)
+ #{tmp 12149}#)
+ (syntax-violation
+ 'do
+ "bad step expression"
+ #{orig-x 12105}#
+ #{s 12144}#))))))
+ #{var 12115}#
+ #{step 12117}#)))
+ (let ((#{tmp 12123}#
+ ($sc-dispatch #{tmp 12122}# 'each-any)))
+ (if #{tmp 12123}#
+ (@apply
+ (lambda (#{step 12125}#)
+ (let ((#{tmp 12127}# ($sc-dispatch #{e1 12119}# '())))
+ (if #{tmp 12127}#
+ (@apply
+ (lambda ()
+ (list '#(syntax-object
+ let
((top)
- #(ribcage #(p) #((top)) #("i4483"))
- #(ribcage
- #(p q)
- #((top) (top))
- #("i4477" "i4478"))
#(ribcage () () ())
#(ribcage
- #(p lev)
- #((top) (top))
- #("i4473" "i4474"))
+ #(step)
+ #((top))
+ #("i12124"))
#(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("i4434"
- "i4432"
- "i4430"
- "i4428"
- "i4426"
- "i4424"
- "i4422")))
+ #(var init step e0 e1 c)
+ #((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ #("i12109"
+ "i12110"
+ "i12111"
+ "i12112"
+ "i12113"
+ "i12114"))
+ #(ribcage () () ())
+ #(ribcage
+ #(orig-x)
+ #((top))
+ #("i12106")))
(hygiene guile))
- #(syntax-object
- unquote
+ '#(syntax-object
+ doloop
((top)
- #(ribcage #(p) #((top)) #("i4483"))
- #(ribcage
- #(p q)
- #((top) (top))
- #("i4477" "i4478"))
#(ribcage () () ())
#(ribcage
- #(p lev)
- #((top) (top))
- #("i4473" "i4474"))
+ #(step)
+ #((top))
+ #("i12124"))
#(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("i4434"
- "i4432"
- "i4430"
- "i4428"
- "i4426"
- "i4424"
- "i4422")))
- (hygiene guile)))
- (#{quasi 4423}#
- #{p 4484}#
- (#{1-}# #{lev 4472}#)))
- (#{vquasi 4425}# #{q 4480}# #{lev 4472}#))))
- #{tmp 4482}#)
- (let ((#{tmp 4487}#
+ #(var init step e0 e1 c)
+ #((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ #("i12109"
+ "i12110"
+ "i12111"
+ "i12112"
+ "i12113"
+ "i12114"))
+ #(ribcage () () ())
+ #(ribcage
+ #(orig-x)
+ #((top))
+ #("i12106")))
+ (hygiene guile))
+ (map list #{var 12115}# #{init 12116}#)
+ (list '#(syntax-object
+ if
+ ((top)
+ #(ribcage () () ())
+ #(ribcage
+ #(step)
+ #((top))
+ #("i12124"))
+ #(ribcage
+ #(var init step e0 e1 c)
+ #((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ #("i12109"
+ "i12110"
+ "i12111"
+ "i12112"
+ "i12113"
+ "i12114"))
+ #(ribcage () () ())
+ #(ribcage
+ #(orig-x)
+ #((top))
+ #("i12106")))
+ (hygiene guile))
+ (list '#(syntax-object
+ not
+ ((top)
+ #(ribcage () () ())
+ #(ribcage
+ #(step)
+ #((top))
+ #("i12124"))
+ #(ribcage
+ #(var
+ init
+ step
+ e0
+ e1
+ c)
+ #((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ #("i12109"
+ "i12110"
+ "i12111"
+ "i12112"
+ "i12113"
+ "i12114"))
+ #(ribcage () () ())
+ #(ribcage
+ #(orig-x)
+ #((top))
+ #("i12106")))
+ (hygiene guile))
+ #{e0 12118}#)
+ (cons '#(syntax-object
+ begin
+ ((top)
+ #(ribcage () () ())
+ #(ribcage
+ #(step)
+ #((top))
+ #("i12124"))
+ #(ribcage
+ #(var
+ init
+ step
+ e0
+ e1
+ c)
+ #((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ #("i12109"
+ "i12110"
+ "i12111"
+ "i12112"
+ "i12113"
+ "i12114"))
+ #(ribcage () () ())
+ #(ribcage
+ #(orig-x)
+ #((top))
+ #("i12106")))
+ (hygiene guile))
+ (append
+ #{c 12120}#
+ (list (cons
'#(syntax-object
+ doloop
+ ((top)
+ #(ribcage
+ ()
+ ()
+ ())
+ #(ribcage
+ #(step)
+ #((top))
+
#("i12124"))
+ #(ribcage
+ #(var
+ init
+ step
+ e0
+ e1
+ c)
+ #((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+
#("i12109"
+
"i12110"
+
"i12111"
+
"i12112"
+
"i12113"
+
"i12114"))
+ #(ribcage
+ ()
+ ()
+ ())
+ #(ribcage
+ #(orig-x)
+ #((top))
+
#("i12106")))
+ (hygiene
+ guile))
+ #{step
12125}#)))))))
+ #{tmp 12127}#)
+ (let ((#{tmp 12132}#
+ ($sc-dispatch
+ #{e1 12119}#
+ '(any . each-any))))
+ (if #{tmp 12132}#
+ (@apply
+ (lambda (#{e1 12135}# #{e2 12136}#)
+ (list '#(syntax-object
+ let
+ ((top)
+ #(ribcage
+ #(e1 e2)
+ #((top) (top))
+ #("i12133" "i12134"))
+ #(ribcage () () ())
+ #(ribcage
+ #(step)
+ #((top))
+ #("i12124"))
+ #(ribcage
+ #(var init step e0 e1 c)
+ #((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ #("i12109"
+ "i12110"
+ "i12111"
+ "i12112"
+ "i12113"
+ "i12114"))
+ #(ribcage () () ())
+ #(ribcage
+ #(orig-x)
+ #((top))
+ #("i12106")))
+ (hygiene guile))
+ '#(syntax-object
+ doloop
+ ((top)
+ #(ribcage
+ #(e1 e2)
+ #((top) (top))
+ #("i12133" "i12134"))
+ #(ribcage () () ())
+ #(ribcage
+ #(step)
+ #((top))
+ #("i12124"))
+ #(ribcage
+ #(var init step e0 e1 c)
+ #((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ #("i12109"
+ "i12110"
+ "i12111"
+ "i12112"
+ "i12113"
+ "i12114"))
+ #(ribcage () () ())
+ #(ribcage
+ #(orig-x)
+ #((top))
+ #("i12106")))
+ (hygiene guile))
+ (map list
+ #{var 12115}#
+ #{init 12116}#)
+ (list '#(syntax-object
+ if
+ ((top)
+ #(ribcage
+ #(e1 e2)
+ #((top) (top))
+ #("i12133" "i12134"))
+ #(ribcage () () ())
+ #(ribcage
+ #(step)
+ #((top))
+ #("i12124"))
+ #(ribcage
+ #(var init step e0 e1 c)
+ #((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ #("i12109"
+ "i12110"
+ "i12111"
+ "i12112"
+ "i12113"
+ "i12114"))
+ #(ribcage () () ())
+ #(ribcage
+ #(orig-x)
+ #((top))
+ #("i12106")))
+ (hygiene guile))
+ #{e0 12118}#
+ (cons '#(syntax-object
+ begin
+ ((top)
+ #(ribcage
+ #(e1 e2)
+ #((top) (top))
+ #("i12133"
+ "i12134"))
+ #(ribcage () () ())
+ #(ribcage
+ #(step)
+ #((top))
+ #("i12124"))
+ #(ribcage
+ #(var
+ init
+ step
+ e0
+ e1
+ c)
+ #((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ #("i12109"
+ "i12110"
+ "i12111"
+ "i12112"
+ "i12113"
+ "i12114"))
+ #(ribcage () () ())
+ #(ribcage
+ #(orig-x)
+ #((top))
+ #("i12106")))
+ (hygiene guile))
+ (cons #{e1 12135}#
+ #{e2 12136}#))
+ (cons '#(syntax-object
+ begin
+ ((top)
+ #(ribcage
+ #(e1 e2)
+ #((top) (top))
+ #("i12133"
+ "i12134"))
+ #(ribcage () () ())
+ #(ribcage
+ #(step)
+ #((top))
+ #("i12124"))
+ #(ribcage
+ #(var
+ init
+ step
+ e0
+ e1
+ c)
+ #((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ #("i12109"
+ "i12110"
+ "i12111"
+ "i12112"
+ "i12113"
+ "i12114"))
+ #(ribcage () () ())
+ #(ribcage
+ #(orig-x)
+ #((top))
+ #("i12106")))
+ (hygiene guile))
+ (append
+ #{c 12120}#
+ (list (cons
'#(syntax-object
+ doloop
+ ((top)
+
#(ribcage
+ #(e1
+ e2)
+
#((top)
+
(top))
+
#("i12133"
+
"i12134"))
+
#(ribcage
+ ()
+ ()
+ ())
+
#(ribcage
+
#(step)
+
#((top))
+
#("i12124"))
+
#(ribcage
+ #(var
+
init
+
step
+ e0
+ e1
+ c)
+
#((top)
+
(top)
+
(top)
+
(top)
+
(top)
+
(top))
+
#("i12109"
+
"i12110"
+
"i12111"
+
"i12112"
+
"i12113"
+
"i12114"))
+
#(ribcage
+ ()
+ ()
+ ())
+
#(ribcage
+
#(orig-x)
+
#((top))
+
#("i12106")))
+ (hygiene
+
guile))
+ #{step
12125}#)))))))
+ #{tmp 12132}#)
+ (syntax-violation
+ #f
+ "source expression failed to match any
pattern"
+ #{e1 12119}#))))))
+ #{tmp 12123}#)
+ (syntax-violation
+ #f
+ "source expression failed to match any pattern"
+ #{tmp 12122}#)))))
+ #{tmp 12108}#)
+ (syntax-violation
+ #f
+ "source expression failed to match any pattern"
+ #{orig-x 12105}#))))))
+
+(define quasiquote
+ (make-syntax-transformer
+ 'quasiquote
+ 'macro
+ (letrec*
+ ((#{quasi 12157}#
+ (lambda (#{p 12170}# #{lev 12171}#)
+ (let ((#{tmp 12175}#
+ ($sc-dispatch
+ #{p 12170}#
+ '(#(free-id
+ #(syntax-object
+ unquote
+ ((top)
+ #(ribcage () () ())
+ #(ribcage
+ #(p lev)
+ #((top) (top))
+ #("i12172" "i12173"))
+ #(ribcage
+ (emit quasivector
+ quasilist*
+ quasiappend
+ quasicons
+ vquasi
+ quasi)
+ ((top) (top) (top) (top) (top) (top) (top))
+ ("i12168"
+ "i12166"
+ "i12164"
+ "i12162"
+ "i12160"
+ "i12158"
+ "i12156")))
+ (hygiene guile)))
+ any))))
+ (if #{tmp 12175}#
+ (@apply
+ (lambda (#{p 12177}#)
+ (if (= #{lev 12171}# 0)
+ (list '#(syntax-object
+ "value"
+ ((top)
+ #(ribcage #(p) #((top)) #("i12176"))
+ #(ribcage () () ())
+ #(ribcage
+ #(p lev)
+ #((top) (top))
+ #("i12172" "i12173"))
+ #(ribcage
+ (emit quasivector
+ quasilist*
+ quasiappend
+ quasicons
+ vquasi
+ quasi)
+ ((top) (top) (top) (top) (top) (top) (top))
+ ("i12168"
+ "i12166"
+ "i12164"
+ "i12162"
+ "i12160"
+ "i12158"
+ "i12156")))
+ (hygiene guile))
+ #{p 12177}#)
+ (#{quasicons 12161}#
+ '(#(syntax-object
+ "quote"
+ ((top)
+ #(ribcage #(p) #((top)) #("i12176"))
+ #(ribcage () () ())
+ #(ribcage
+ #(p lev)
+ #((top) (top))
+ #("i12172" "i12173"))
+ #(ribcage
+ (emit quasivector
+ quasilist*
+ quasiappend
+ quasicons
+ vquasi
+ quasi)
+ ((top) (top) (top) (top) (top) (top) (top))
+ ("i12168"
+ "i12166"
+ "i12164"
+ "i12162"
+ "i12160"
+ "i12158"
+ "i12156")))
+ (hygiene guile))
+ #(syntax-object
+ unquote
+ ((top)
+ #(ribcage #(p) #((top)) #("i12176"))
+ #(ribcage () () ())
+ #(ribcage
+ #(p lev)
+ #((top) (top))
+ #("i12172" "i12173"))
+ #(ribcage
+ (emit quasivector
+ quasilist*
+ quasiappend
+ quasicons
+ vquasi
+ quasi)
+ ((top) (top) (top) (top) (top) (top) (top))
+ ("i12168"
+ "i12166"
+ "i12164"
+ "i12162"
+ "i12160"
+ "i12158"
+ "i12156")))
+ (hygiene guile)))
+ (#{quasi 12157}#
+ (list #{p 12177}#)
+ (#{1-}# #{lev 12171}#)))))
+ #{tmp 12175}#)
+ (let ((#{tmp 12178}#
+ ($sc-dispatch
+ #{p 12170}#
+ '(#(free-id
+ #(syntax-object
+ quasiquote
+ ((top)
+ #(ribcage () () ())
+ #(ribcage
+ #(p lev)
+ #((top) (top))
+ #("i12172" "i12173"))
+ #(ribcage
+ (emit quasivector
+ quasilist*
+ quasiappend
+ quasicons
+ vquasi
+ quasi)
+ ((top) (top) (top) (top) (top) (top) (top))
+ ("i12168"
+ "i12166"
+ "i12164"
+ "i12162"
+ "i12160"
+ "i12158"
+ "i12156")))
+ (hygiene guile)))
+ any))))
+ (if #{tmp 12178}#
+ (@apply
+ (lambda (#{p 12180}#)
+ (#{quasicons 12161}#
+ '(#(syntax-object
+ "quote"
+ ((top)
+ #(ribcage #(p) #((top)) #("i12179"))
+ #(ribcage () () ())
+ #(ribcage
+ #(p lev)
+ #((top) (top))
+ #("i12172" "i12173"))
+ #(ribcage
+ (emit quasivector
+ quasilist*
+ quasiappend
+ quasicons
+ vquasi
+ quasi)
+ ((top) (top) (top) (top) (top) (top) (top))
+ ("i12168"
+ "i12166"
+ "i12164"
+ "i12162"
+ "i12160"
+ "i12158"
+ "i12156")))
+ (hygiene guile))
+ #(syntax-object
+ quasiquote
+ ((top)
+ #(ribcage #(p) #((top)) #("i12179"))
+ #(ribcage () () ())
+ #(ribcage
+ #(p lev)
+ #((top) (top))
+ #("i12172" "i12173"))
+ #(ribcage
+ (emit quasivector
+ quasilist*
+ quasiappend
+ quasicons
+ vquasi
+ quasi)
+ ((top) (top) (top) (top) (top) (top) (top))
+ ("i12168"
+ "i12166"
+ "i12164"
+ "i12162"
+ "i12160"
+ "i12158"
+ "i12156")))
+ (hygiene guile)))
+ (#{quasi 12157}#
+ (list #{p 12180}#)
+ (#{1+}# #{lev 12171}#))))
+ #{tmp 12178}#)
+ (let ((#{tmp 12181}#
+ ($sc-dispatch #{p 12170}# '(any . any))))
+ (if #{tmp 12181}#
+ (@apply
+ (lambda (#{p 12184}# #{q 12185}#)
+ (let ((#{tmp 12187}#
($sc-dispatch
- #{tmp 4481}#
+ #{p 12184}#
'(#(free-id
#(syntax-object
- unquote-splicing
+ unquote
((top)
#(ribcage
#(p q)
#((top) (top))
- #("i4477" "i4478"))
+ #("i12182" "i12183"))
#(ribcage () () ())
#(ribcage
#(p lev)
#((top) (top))
- #("i4473" "i4474"))
+ #("i12172" "i12173"))
#(ribcage
(emit quasivector
quasilist*
@@ -14108,38 +16867,38 @@
(top)
(top)
(top))
- ("i4434"
- "i4432"
- "i4430"
- "i4428"
- "i4426"
- "i4424"
- "i4422")))
+ ("i12168"
+ "i12166"
+ "i12164"
+ "i12162"
+ "i12160"
+ "i12158"
+ "i12156")))
(hygiene guile)))
.
each-any))))
- (if #{tmp 4487}#
+ (if #{tmp 12187}#
(@apply
- (lambda (#{p 4489}#)
- (if (= #{lev 4472}# 0)
- (#{quasiappend 4429}#
- (map (lambda (#{tmp 4490}#)
+ (lambda (#{p 12189}#)
+ (if (= #{lev 12171}# 0)
+ (#{quasilist* 12165}#
+ (map (lambda (#{tmp 12190}#)
(list '#(syntax-object
"value"
((top)
#(ribcage
#(p)
#((top))
- #("i4488"))
+ #("i12188"))
#(ribcage
#(p q)
#((top) (top))
- #("i4477" "i4478"))
+ #("i12182" "i12183"))
#(ribcage () () ())
#(ribcage
#(p lev)
#((top) (top))
- #("i4473" "i4474"))
+ #("i12172" "i12173"))
#(ribcage
(emit quasivector
quasilist*
@@ -14154,37 +16913,37 @@
(top)
(top)
(top))
- ("i4434"
- "i4432"
- "i4430"
- "i4428"
- "i4426"
- "i4424"
- "i4422")))
+ ("i12168"
+ "i12166"
+ "i12164"
+ "i12162"
+ "i12160"
+ "i12158"
+ "i12156")))
(hygiene guile))
- #{tmp 4490}#))
- #{p 4489}#)
- (#{vquasi 4425}#
- #{q 4480}#
- #{lev 4472}#))
- (#{quasicons 4427}#
- (#{quasicons 4427}#
+ #{tmp 12190}#))
+ #{p 12189}#)
+ (#{quasi 12157}#
+ #{q 12185}#
+ #{lev 12171}#))
+ (#{quasicons 12161}#
+ (#{quasicons 12161}#
'(#(syntax-object
"quote"
((top)
#(ribcage
#(p)
#((top))
- #("i4488"))
+ #("i12188"))
#(ribcage
#(p q)
#((top) (top))
- #("i4477" "i4478"))
+ #("i12182" "i12183"))
#(ribcage () () ())
#(ribcage
#(p lev)
#((top) (top))
- #("i4473" "i4474"))
+ #("i12172" "i12173"))
#(ribcage
(emit quasivector
quasilist*
@@ -14199,30 +16958,30 @@
(top)
(top)
(top))
- ("i4434"
- "i4432"
- "i4430"
- "i4428"
- "i4426"
- "i4424"
- "i4422")))
+ ("i12168"
+ "i12166"
+ "i12164"
+ "i12162"
+ "i12160"
+ "i12158"
+ "i12156")))
(hygiene guile))
#(syntax-object
- unquote-splicing
+ unquote
((top)
#(ribcage
#(p)
#((top))
- #("i4488"))
+ #("i12188"))
#(ribcage
#(p q)
#((top) (top))
- #("i4477" "i4478"))
+ #("i12182" "i12183"))
#(ribcage () () ())
#(ribcage
#(p lev)
#((top) (top))
- #("i4473" "i4474"))
+ #("i12172" "i12173"))
#(ribcage
(emit quasivector
quasilist*
@@ -14237,343 +16996,666 @@
(top)
(top)
(top))
- ("i4434"
- "i4432"
- "i4430"
- "i4428"
- "i4426"
- "i4424"
- "i4422")))
+ ("i12168"
+ "i12166"
+ "i12164"
+ "i12162"
+ "i12160"
+ "i12158"
+ "i12156")))
(hygiene guile)))
- (#{quasi 4423}#
- #{p 4489}#
- (#{1-}# #{lev 4472}#)))
- (#{vquasi 4425}#
- #{q 4480}#
- #{lev 4472}#))))
- #{tmp 4487}#)
- (let ((#{_ 4493}# #{tmp 4481}#))
- (#{quasicons 4427}#
- (#{quasi 4423}# #{p 4479}# #{lev 4472}#)
- (#{vquasi 4425}#
- #{q 4480}#
- #{lev 4472}#)))))))))
- #{tmp 4476}#)
- (let ((#{tmp 4494}# ($sc-dispatch #{tmp 4475}# '())))
- (if #{tmp 4494}#
- (@apply
- (lambda ()
- '(#(syntax-object
- "quote"
- ((top)
- #(ribcage () () ())
- #(ribcage
- #(p lev)
- #((top) (top))
- #("i4473" "i4474"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top) (top) (top) (top) (top) (top) (top))
- ("i4434"
- "i4432"
- "i4430"
- "i4428"
- "i4426"
- "i4424"
- "i4422")))
- (hygiene guile))
- ()))
- #{tmp 4494}#)
- (syntax-violation
- #f
- "source expression failed to match any pattern"
- #{tmp 4475}#))))))))
- (#{quasicons 4427}#
- (lambda (#{x 4495}# #{y 4496}#)
- (let ((#{tmp 4500}# (list #{x 4495}# #{y 4496}#)))
- (let ((#{tmp 4501}#
- ($sc-dispatch #{tmp 4500}# '(any any))))
- (if #{tmp 4501}#
- (@apply
- (lambda (#{x 4504}# #{y 4505}#)
- (let ((#{tmp 4506}# #{y 4505}#))
- (let ((#{tmp 4507}#
+ (#{quasi 12157}#
+ #{p 12189}#
+ (#{1-}# #{lev 12171}#)))
+ (#{quasi 12157}#
+ #{q 12185}#
+ #{lev 12171}#))))
+ #{tmp 12187}#)
+ (let ((#{tmp 12192}#
+ ($sc-dispatch
+ #{p 12184}#
+ '(#(free-id
+ #(syntax-object
+ unquote-splicing
+ ((top)
+ #(ribcage
+ #(p q)
+ #((top) (top))
+ #("i12182" "i12183"))
+ #(ribcage () () ())
+ #(ribcage
+ #(p lev)
+ #((top) (top))
+ #("i12172" "i12173"))
+ #(ribcage
+ (emit quasivector
+ quasilist*
+ quasiappend
+ quasicons
+ vquasi
+ quasi)
+ ((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ ("i12168"
+ "i12166"
+ "i12164"
+ "i12162"
+ "i12160"
+ "i12158"
+ "i12156")))
+ (hygiene guile)))
+ .
+ each-any))))
+ (if #{tmp 12192}#
+ (@apply
+ (lambda (#{p 12194}#)
+ (if (= #{lev 12171}# 0)
+ (#{quasiappend 12163}#
+ (map (lambda (#{tmp 12195}#)
+ (list '#(syntax-object
+ "value"
+ ((top)
+ #(ribcage
+ #(p)
+ #((top))
+ #("i12193"))
+ #(ribcage
+ #(p q)
+ #((top) (top))
+ #("i12182"
+ "i12183"))
+ #(ribcage () () ())
+ #(ribcage
+ #(p lev)
+ #((top) (top))
+ #("i12172"
+ "i12173"))
+ #(ribcage
+ (emit quasivector
+ quasilist*
+ quasiappend
+ quasicons
+ vquasi
+ quasi)
+ ((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ ("i12168"
+ "i12166"
+ "i12164"
+ "i12162"
+ "i12160"
+ "i12158"
+ "i12156")))
+ (hygiene guile))
+ #{tmp 12195}#))
+ #{p 12194}#)
+ (#{quasi 12157}#
+ #{q 12185}#
+ #{lev 12171}#))
+ (#{quasicons 12161}#
+ (#{quasicons 12161}#
+ '(#(syntax-object
+ "quote"
+ ((top)
+ #(ribcage
+ #(p)
+ #((top))
+ #("i12193"))
+ #(ribcage
+ #(p q)
+ #((top) (top))
+ #("i12182" "i12183"))
+ #(ribcage () () ())
+ #(ribcage
+ #(p lev)
+ #((top) (top))
+ #("i12172" "i12173"))
+ #(ribcage
+ (emit quasivector
+ quasilist*
+ quasiappend
+ quasicons
+ vquasi
+ quasi)
+ ((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ ("i12168"
+ "i12166"
+ "i12164"
+ "i12162"
+ "i12160"
+ "i12158"
+ "i12156")))
+ (hygiene guile))
+ #(syntax-object
+ unquote-splicing
+ ((top)
+ #(ribcage
+ #(p)
+ #((top))
+ #("i12193"))
+ #(ribcage
+ #(p q)
+ #((top) (top))
+ #("i12182" "i12183"))
+ #(ribcage () () ())
+ #(ribcage
+ #(p lev)
+ #((top) (top))
+ #("i12172" "i12173"))
+ #(ribcage
+ (emit quasivector
+ quasilist*
+ quasiappend
+ quasicons
+ vquasi
+ quasi)
+ ((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ ("i12168"
+ "i12166"
+ "i12164"
+ "i12162"
+ "i12160"
+ "i12158"
+ "i12156")))
+ (hygiene guile)))
+ (#{quasi 12157}#
+ #{p 12194}#
+ (#{1-}# #{lev 12171}#)))
+ (#{quasi 12157}#
+ #{q 12185}#
+ #{lev 12171}#))))
+ #{tmp 12192}#)
+ (#{quasicons 12161}#
+ (#{quasi 12157}#
+ #{p 12184}#
+ #{lev 12171}#)
+ (#{quasi 12157}#
+ #{q 12185}#
+ #{lev 12171}#)))))))
+ #{tmp 12181}#)
+ (let ((#{tmp 12199}#
+ ($sc-dispatch #{p 12170}# '#(vector each-any))))
+ (if #{tmp 12199}#
+ (@apply
+ (lambda (#{x 12201}#)
+ (#{quasivector 12167}#
+ (#{vquasi 12159}# #{x 12201}# #{lev 12171}#)))
+ #{tmp 12199}#)
+ (list '#(syntax-object
+ "quote"
+ ((top)
+ #(ribcage #(p) #((top)) #("i12203"))
+ #(ribcage () () ())
+ #(ribcage
+ #(p lev)
+ #((top) (top))
+ #("i12172" "i12173"))
+ #(ribcage
+ (emit quasivector
+ quasilist*
+ quasiappend
+ quasicons
+ vquasi
+ quasi)
+ ((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ ("i12168"
+ "i12166"
+ "i12164"
+ "i12162"
+ "i12160"
+ "i12158"
+ "i12156")))
+ (hygiene guile))
+ #{p 12170}#)))))))))))
+ (#{vquasi 12159}#
+ (lambda (#{p 12205}# #{lev 12206}#)
+ (let ((#{tmp 12210}#
+ ($sc-dispatch #{p 12205}# '(any . any))))
+ (if #{tmp 12210}#
+ (@apply
+ (lambda (#{p 12213}# #{q 12214}#)
+ (let ((#{tmp 12216}#
+ ($sc-dispatch
+ #{p 12213}#
+ '(#(free-id
+ #(syntax-object
+ unquote
+ ((top)
+ #(ribcage
+ #(p q)
+ #((top) (top))
+ #("i12211" "i12212"))
+ #(ribcage () () ())
+ #(ribcage
+ #(p lev)
+ #((top) (top))
+ #("i12207" "i12208"))
+ #(ribcage
+ (emit quasivector
+ quasilist*
+ quasiappend
+ quasicons
+ vquasi
+ quasi)
+ ((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ ("i12168"
+ "i12166"
+ "i12164"
+ "i12162"
+ "i12160"
+ "i12158"
+ "i12156")))
+ (hygiene guile)))
+ .
+ each-any))))
+ (if #{tmp 12216}#
+ (@apply
+ (lambda (#{p 12218}#)
+ (if (= #{lev 12206}# 0)
+ (#{quasilist* 12165}#
+ (map (lambda (#{tmp 12219}#)
+ (list '#(syntax-object
+ "value"
+ ((top)
+ #(ribcage
+ #(p)
+ #((top))
+ #("i12217"))
+ #(ribcage
+ #(p q)
+ #((top) (top))
+ #("i12211" "i12212"))
+ #(ribcage () () ())
+ #(ribcage
+ #(p lev)
+ #((top) (top))
+ #("i12207" "i12208"))
+ #(ribcage
+ (emit quasivector
+ quasilist*
+ quasiappend
+ quasicons
+ vquasi
+ quasi)
+ ((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ ("i12168"
+ "i12166"
+ "i12164"
+ "i12162"
+ "i12160"
+ "i12158"
+ "i12156")))
+ (hygiene guile))
+ #{tmp 12219}#))
+ #{p 12218}#)
+ (#{vquasi 12159}# #{q 12214}# #{lev 12206}#))
+ (#{quasicons 12161}#
+ (#{quasicons 12161}#
+ '(#(syntax-object
+ "quote"
+ ((top)
+ #(ribcage #(p) #((top)) #("i12217"))
+ #(ribcage
+ #(p q)
+ #((top) (top))
+ #("i12211" "i12212"))
+ #(ribcage () () ())
+ #(ribcage
+ #(p lev)
+ #((top) (top))
+ #("i12207" "i12208"))
+ #(ribcage
+ (emit quasivector
+ quasilist*
+ quasiappend
+ quasicons
+ vquasi
+ quasi)
+ ((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ ("i12168"
+ "i12166"
+ "i12164"
+ "i12162"
+ "i12160"
+ "i12158"
+ "i12156")))
+ (hygiene guile))
+ #(syntax-object
+ unquote
+ ((top)
+ #(ribcage #(p) #((top)) #("i12217"))
+ #(ribcage
+ #(p q)
+ #((top) (top))
+ #("i12211" "i12212"))
+ #(ribcage () () ())
+ #(ribcage
+ #(p lev)
+ #((top) (top))
+ #("i12207" "i12208"))
+ #(ribcage
+ (emit quasivector
+ quasilist*
+ quasiappend
+ quasicons
+ vquasi
+ quasi)
+ ((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ ("i12168"
+ "i12166"
+ "i12164"
+ "i12162"
+ "i12160"
+ "i12158"
+ "i12156")))
+ (hygiene guile)))
+ (#{quasi 12157}#
+ #{p 12218}#
+ (#{1-}# #{lev 12206}#)))
+ (#{vquasi 12159}# #{q 12214}# #{lev 12206}#))))
+ #{tmp 12216}#)
+ (let ((#{tmp 12221}#
($sc-dispatch
- #{tmp 4506}#
- '(#(atom "quote") any))))
- (if #{tmp 4507}#
+ #{p 12213}#
+ '(#(free-id
+ #(syntax-object
+ unquote-splicing
+ ((top)
+ #(ribcage
+ #(p q)
+ #((top) (top))
+ #("i12211" "i12212"))
+ #(ribcage () () ())
+ #(ribcage
+ #(p lev)
+ #((top) (top))
+ #("i12207" "i12208"))
+ #(ribcage
+ (emit quasivector
+ quasilist*
+ quasiappend
+ quasicons
+ vquasi
+ quasi)
+ ((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ ("i12168"
+ "i12166"
+ "i12164"
+ "i12162"
+ "i12160"
+ "i12158"
+ "i12156")))
+ (hygiene guile)))
+ .
+ each-any))))
+ (if #{tmp 12221}#
(@apply
- (lambda (#{dy 4509}#)
- (let ((#{tmp 4510}# #{x 4504}#))
- (let ((#{tmp 4511}#
- ($sc-dispatch
- #{tmp 4510}#
- '(#(atom "quote") any))))
- (if #{tmp 4511}#
- (@apply
- (lambda (#{dx 4513}#)
- (list '#(syntax-object
- "quote"
- ((top)
- #(ribcage
- #(dx)
- #((top))
- #("i4512"))
- #(ribcage
- #(dy)
- #((top))
- #("i4508"))
- #(ribcage () () ())
- #(ribcage
- #(x y)
- #((top) (top))
- #("i4502" "i4503"))
- #(ribcage () () ())
- #(ribcage () () ())
- #(ribcage
- #(x y)
- #((top) (top))
- #("i4497" "i4498"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("i4434"
- "i4432"
- "i4430"
- "i4428"
- "i4426"
- "i4424"
- "i4422")))
- (hygiene guile))
- (cons #{dx 4513}# #{dy 4509}#)))
- #{tmp 4511}#)
- (let ((#{_ 4515}# #{tmp 4510}#))
- (if (null? #{dy 4509}#)
- (list '#(syntax-object
- "list"
- ((top)
- #(ribcage
- #(_)
- #((top))
- #("i4514"))
- #(ribcage
- #(dy)
- #((top))
- #("i4508"))
- #(ribcage () () ())
- #(ribcage
- #(x y)
- #((top) (top))
- #("i4502" "i4503"))
- #(ribcage () () ())
- #(ribcage () () ())
- #(ribcage
- #(x y)
- #((top) (top))
- #("i4497" "i4498"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("i4434"
- "i4432"
- "i4430"
- "i4428"
- "i4426"
- "i4424"
- "i4422")))
- (hygiene guile))
- #{x 4504}#)
- (list '#(syntax-object
- "list*"
- ((top)
- #(ribcage
- #(_)
- #((top))
- #("i4514"))
- #(ribcage
- #(dy)
- #((top))
- #("i4508"))
- #(ribcage () () ())
- #(ribcage
- #(x y)
- #((top) (top))
- #("i4502" "i4503"))
- #(ribcage () () ())
- #(ribcage () () ())
- #(ribcage
- #(x y)
- #((top) (top))
- #("i4497" "i4498"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("i4434"
- "i4432"
- "i4430"
- "i4428"
- "i4426"
- "i4424"
- "i4422")))
- (hygiene guile))
- #{x 4504}#
- #{y 4505}#)))))))
- #{tmp 4507}#)
- (let ((#{tmp 4516}#
- ($sc-dispatch
- #{tmp 4506}#
- '(#(atom "list") . any))))
- (if #{tmp 4516}#
- (@apply
- (lambda (#{stuff 4518}#)
- (cons '#(syntax-object
- "list"
- ((top)
- #(ribcage
- #(stuff)
- #((top))
- #("i4517"))
- #(ribcage () () ())
- #(ribcage
- #(x y)
- #((top) (top))
- #("i4502" "i4503"))
- #(ribcage () () ())
- #(ribcage () () ())
- #(ribcage
- #(x y)
- #((top) (top))
- #("i4497" "i4498"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("i4434"
- "i4432"
- "i4430"
- "i4428"
- "i4426"
- "i4424"
- "i4422")))
- (hygiene guile))
- (cons #{x 4504}# #{stuff 4518}#)))
- #{tmp 4516}#)
- (let ((#{tmp 4519}#
- ($sc-dispatch
- #{tmp 4506}#
- '(#(atom "list*") . any))))
- (if #{tmp 4519}#
- (@apply
- (lambda (#{stuff 4521}#)
- (cons '#(syntax-object
- "list*"
- ((top)
- #(ribcage
- #(stuff)
- #((top))
- #("i4520"))
- #(ribcage () () ())
- #(ribcage
- #(x y)
- #((top) (top))
- #("i4502" "i4503"))
- #(ribcage () () ())
- #(ribcage () () ())
- #(ribcage
- #(x y)
- #((top) (top))
- #("i4497" "i4498"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
+ (lambda (#{p 12223}#)
+ (if (= #{lev 12206}# 0)
+ (#{quasiappend 12163}#
+ (map (lambda (#{tmp 12224}#)
+ (list '#(syntax-object
+ "value"
((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("i4434"
- "i4432"
- "i4430"
- "i4428"
- "i4426"
- "i4424"
- "i4422")))
- (hygiene guile))
- (cons #{x 4504}# #{stuff 4521}#)))
- #{tmp 4519}#)
- (let ((#{_ 4523}# #{tmp 4506}#))
+ #(ribcage
+ #(p)
+ #((top))
+ #("i12222"))
+ #(ribcage
+ #(p q)
+ #((top) (top))
+ #("i12211" "i12212"))
+ #(ribcage () () ())
+ #(ribcage
+ #(p lev)
+ #((top) (top))
+ #("i12207" "i12208"))
+ #(ribcage
+ (emit quasivector
+ quasilist*
+ quasiappend
+ quasicons
+ vquasi
+ quasi)
+ ((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ ("i12168"
+ "i12166"
+ "i12164"
+ "i12162"
+ "i12160"
+ "i12158"
+ "i12156")))
+ (hygiene guile))
+ #{tmp 12224}#))
+ #{p 12223}#)
+ (#{vquasi 12159}#
+ #{q 12214}#
+ #{lev 12206}#))
+ (#{quasicons 12161}#
+ (#{quasicons 12161}#
+ '(#(syntax-object
+ "quote"
+ ((top)
+ #(ribcage #(p) #((top)) #("i12222"))
+ #(ribcage
+ #(p q)
+ #((top) (top))
+ #("i12211" "i12212"))
+ #(ribcage () () ())
+ #(ribcage
+ #(p lev)
+ #((top) (top))
+ #("i12207" "i12208"))
+ #(ribcage
+ (emit quasivector
+ quasilist*
+ quasiappend
+ quasicons
+ vquasi
+ quasi)
+ ((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ ("i12168"
+ "i12166"
+ "i12164"
+ "i12162"
+ "i12160"
+ "i12158"
+ "i12156")))
+ (hygiene guile))
+ #(syntax-object
+ unquote-splicing
+ ((top)
+ #(ribcage #(p) #((top)) #("i12222"))
+ #(ribcage
+ #(p q)
+ #((top) (top))
+ #("i12211" "i12212"))
+ #(ribcage () () ())
+ #(ribcage
+ #(p lev)
+ #((top) (top))
+ #("i12207" "i12208"))
+ #(ribcage
+ (emit quasivector
+ quasilist*
+ quasiappend
+ quasicons
+ vquasi
+ quasi)
+ ((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ ("i12168"
+ "i12166"
+ "i12164"
+ "i12162"
+ "i12160"
+ "i12158"
+ "i12156")))
+ (hygiene guile)))
+ (#{quasi 12157}#
+ #{p 12223}#
+ (#{1-}# #{lev 12206}#)))
+ (#{vquasi 12159}#
+ #{q 12214}#
+ #{lev 12206}#))))
+ #{tmp 12221}#)
+ (#{quasicons 12161}#
+ (#{quasi 12157}# #{p 12213}# #{lev 12206}#)
+ (#{vquasi 12159}# #{q 12214}# #{lev 12206}#)))))))
+ #{tmp 12210}#)
+ (let ((#{tmp 12228}# ($sc-dispatch #{p 12205}# '())))
+ (if #{tmp 12228}#
+ (@apply
+ (lambda ()
+ '(#(syntax-object
+ "quote"
+ ((top)
+ #(ribcage () () ())
+ #(ribcage
+ #(p lev)
+ #((top) (top))
+ #("i12207" "i12208"))
+ #(ribcage
+ (emit quasivector
+ quasilist*
+ quasiappend
+ quasicons
+ vquasi
+ quasi)
+ ((top) (top) (top) (top) (top) (top) (top))
+ ("i12168"
+ "i12166"
+ "i12164"
+ "i12162"
+ "i12160"
+ "i12158"
+ "i12156")))
+ (hygiene guile))
+ ()))
+ #{tmp 12228}#)
+ (syntax-violation
+ #f
+ "source expression failed to match any pattern"
+ #{p 12205}#)))))))
+ (#{quasicons 12161}#
+ (lambda (#{x 12229}# #{y 12230}#)
+ (let ((#{tmp 12234}# (list #{x 12229}# #{y 12230}#)))
+ (let ((#{tmp 12235}#
+ ($sc-dispatch #{tmp 12234}# '(any any))))
+ (if #{tmp 12235}#
+ (@apply
+ (lambda (#{x 12238}# #{y 12239}#)
+ (let ((#{tmp 12241}#
+ ($sc-dispatch
+ #{y 12239}#
+ '(#(atom "quote") any))))
+ (if #{tmp 12241}#
+ (@apply
+ (lambda (#{dy 12243}#)
+ (let ((#{tmp 12245}#
+ ($sc-dispatch
+ #{x 12238}#
+ '(#(atom "quote") any))))
+ (if #{tmp 12245}#
+ (@apply
+ (lambda (#{dx 12247}#)
(list '#(syntax-object
- "list*"
+ "quote"
((top)
#(ribcage
- #(_)
+ #(dx)
#((top))
- #("i4522"))
+ #("i12246"))
+ #(ribcage
+ #(dy)
+ #((top))
+ #("i12242"))
#(ribcage () () ())
#(ribcage
#(x y)
#((top) (top))
- #("i4502" "i4503"))
+ #("i12236" "i12237"))
#(ribcage () () ())
#(ribcage () () ())
#(ribcage
#(x y)
#((top) (top))
- #("i4497" "i4498"))
+ #("i12231" "i12232"))
#(ribcage
(emit quasivector
quasilist*
@@ -14588,469 +17670,84 @@
(top)
(top)
(top))
- ("i4434"
- "i4432"
- "i4430"
- "i4428"
- "i4426"
- "i4424"
- "i4422")))
+ ("i12168"
+ "i12166"
+ "i12164"
+ "i12162"
+ "i12160"
+ "i12158"
+ "i12156")))
(hygiene guile))
- #{x 4504}#
- #{y 4505}#))))))))))
- #{tmp 4501}#)
- (syntax-violation
- #f
- "source expression failed to match any pattern"
- #{tmp 4500}#))))))
- (#{quasiappend 4429}#
- (lambda (#{x 4524}# #{y 4525}#)
- (let ((#{tmp 4528}# #{y 4525}#))
- (let ((#{tmp 4529}#
- ($sc-dispatch #{tmp 4528}# '(#(atom "quote") ()))))
- (if #{tmp 4529}#
- (@apply
- (lambda ()
- (if (null? #{x 4524}#)
- '(#(syntax-object
- "quote"
- ((top)
- #(ribcage () () ())
- #(ribcage
- #(x y)
- #((top) (top))
- #("i4526" "i4527"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top) (top) (top) (top) (top) (top) (top))
- ("i4434"
- "i4432"
- "i4430"
- "i4428"
- "i4426"
- "i4424"
- "i4422")))
- (hygiene guile))
- ())
- (if (null? (cdr #{x 4524}#))
- (car #{x 4524}#)
- (let ((#{tmp 4536}# #{x 4524}#))
- (let ((#{tmp 4537}#
- ($sc-dispatch #{tmp 4536}# 'each-any)))
- (if #{tmp 4537}#
- (@apply
- (lambda (#{p 4539}#)
- (cons '#(syntax-object
- "append"
+ (cons #{dx 12247}# #{dy 12243}#)))
+ #{tmp 12245}#)
+ (if (null? #{dy 12243}#)
+ (list '#(syntax-object
+ "list"
((top)
- #(ribcage () () ())
#(ribcage
- #(p)
+ #(_)
+ #((top))
+ #("i12248"))
+ #(ribcage
+ #(dy)
#((top))
- #("i4538"))
+ #("i12242"))
#(ribcage () () ())
#(ribcage
#(x y)
#((top) (top))
- #("i4526" "i4527"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("i4434"
- "i4432"
- "i4430"
- "i4428"
- "i4426"
- "i4424"
- "i4422")))
- (hygiene guile))
- #{p 4539}#))
- #{tmp 4537}#)
- (syntax-violation
- #f
- "source expression failed to match any
pattern"
- #{tmp 4536}#)))))))
- #{tmp 4529}#)
- (let ((#{_ 4542}# #{tmp 4528}#))
- (if (null? #{x 4524}#)
- #{y 4525}#
- (let ((#{tmp 4547}# (list #{x 4524}# #{y 4525}#)))
- (let ((#{tmp 4548}#
- ($sc-dispatch #{tmp 4547}# '(each-any any))))
- (if #{tmp 4548}#
- (@apply
- (lambda (#{p 4551}# #{y 4552}#)
- (cons '#(syntax-object
- "append"
- ((top)
- #(ribcage () () ())
- #(ribcage
- #(p y)
- #((top) (top))
- #("i4549" "i4550"))
- #(ribcage #(_) #((top)) #("i4541"))
- #(ribcage () () ())
- #(ribcage
- #(x y)
- #((top) (top))
- #("i4526" "i4527"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("i4434"
- "i4432"
- "i4430"
- "i4428"
- "i4426"
- "i4424"
- "i4422")))
- (hygiene guile))
- (append #{p 4551}# (list #{y 4552}#))))
- #{tmp 4548}#)
- (syntax-violation
- #f
- "source expression failed to match any pattern"
- #{tmp 4547}#)))))))))))
- (#{quasilist* 4431}#
- (lambda (#{x 4554}# #{y 4555}#)
- (letrec*
- ((#{f 4560}#
- (lambda (#{x 4561}#)
- (if (null? #{x 4561}#)
- #{y 4555}#
- (#{quasicons 4427}#
- (car #{x 4561}#)
- (#{f 4560}# (cdr #{x 4561}#)))))))
- (#{f 4560}# #{x 4554}#))))
- (#{quasivector 4433}#
- (lambda (#{x 4562}#)
- (let ((#{tmp 4564}# #{x 4562}#))
- (let ((#{tmp 4565}#
- ($sc-dispatch
- #{tmp 4564}#
- '(#(atom "quote") each-any))))
- (if #{tmp 4565}#
- (@apply
- (lambda (#{x 4567}#)
- (list '#(syntax-object
- "quote"
- ((top)
- #(ribcage #(x) #((top)) #("i4566"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("i4563"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top) (top) (top) (top) (top) (top) (top))
- ("i4434"
- "i4432"
- "i4430"
- "i4428"
- "i4426"
- "i4424"
- "i4422")))
- (hygiene guile))
- (list->vector #{x 4567}#)))
- #{tmp 4565}#)
- (let ((#{_ 4570}# #{tmp 4564}#))
- (letrec*
- ((#{f 4574}#
- (lambda (#{y 4575}# #{k 4576}#)
- (let ((#{tmp 4587}# #{y 4575}#))
- (let ((#{tmp 4588}#
- ($sc-dispatch
- #{tmp 4587}#
- '(#(atom "quote") each-any))))
- (if #{tmp 4588}#
- (@apply
- (lambda (#{y 4590}#)
- (#{k 4576}#
- (map (lambda (#{tmp 4591}#)
- (list '#(syntax-object
- "quote"
- ((top)
- #(ribcage
- #(y)
- #((top))
- #("i4589"))
- #(ribcage () () ())
- #(ribcage
- #(f y k)
- #((top) (top) (top))
- #("i4571"
- "i4572"
- "i4573"))
- #(ribcage
- #(_)
- #((top))
- #("i4569"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("i4563"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("i4434"
- "i4432"
- "i4430"
- "i4428"
- "i4426"
- "i4424"
- "i4422")))
- (hygiene guile))
- #{tmp 4591}#))
- #{y 4590}#)))
- #{tmp 4588}#)
- (let ((#{tmp 4592}#
- ($sc-dispatch
- #{tmp 4587}#
- '(#(atom "list") . each-any))))
- (if #{tmp 4592}#
- (@apply
- (lambda (#{y 4594}#)
- (#{k 4576}# #{y 4594}#))
- #{tmp 4592}#)
- (let ((#{tmp 4596}#
- ($sc-dispatch
- #{tmp 4587}#
- '(#(atom "list*")
- .
- #(each+ any (any) ())))))
- (if #{tmp 4596}#
- (@apply
- (lambda (#{y 4599}# #{z 4600}#)
- (#{f 4574}#
- #{z 4600}#
- (lambda (#{ls 4601}#)
- (#{k 4576}#
- (append
- #{y 4599}#
- #{ls 4601}#)))))
- #{tmp 4596}#)
- (let ((#{else 4605}# #{tmp 4587}#))
- (let ((#{tmp 4609}# #{x 4562}#))
- (let ((#{ g4606 4611}#
- #{tmp 4609}#))
- (list '#(syntax-object
- "list->vector"
- ((top)
- #(ribcage () () ())
- #(ribcage
- #(#{ g4606}#)
- #((m4607 top))
- #("i4610"))
- #(ribcage
- #(else)
- #((top))
- #("i4604"))
- #(ribcage () () ())
- #(ribcage
- #(f y k)
- #((top) (top) (top))
- #("i4571"
- "i4572"
- "i4573"))
- #(ribcage
- #(_)
- #((top))
- #("i4569"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("i4563"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("i4434"
- "i4432"
- "i4430"
- "i4428"
- "i4426"
- "i4424"
- "i4422")))
- (hygiene guile))
- #{ g4606
4611}#))))))))))))))
- (#{f 4574}#
- #{x 4562}#
- (lambda (#{ls 4577}#)
- (let ((#{tmp 4582}# #{ls 4577}#))
- (let ((#{tmp 4583}#
- ($sc-dispatch #{tmp 4582}# 'each-any)))
- (if #{tmp 4583}#
- (@apply
- (lambda (#{ g4579 4585}#)
- (cons '#(syntax-object
- "vector"
- ((top)
- #(ribcage () () ())
- #(ribcage
- #(#{ g4579}#)
- #((m4580 top))
- #("i4584"))
- #(ribcage () () ())
- #(ribcage () () ())
+ #("i12236" "i12237"))
#(ribcage () () ())
- #(ribcage
- #(ls)
- #((top))
- #("i4578"))
- #(ribcage
- #(_)
- #((top))
- #("i4569"))
#(ribcage () () ())
#(ribcage
- #(x)
- #((top))
- #("i4563"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("i4434"
- "i4432"
- "i4430"
- "i4428"
- "i4426"
- "i4424"
- "i4422")))
- (hygiene guile))
- #{ g4579 4585}#))
- #{tmp 4583}#)
- (syntax-violation
- #f
- "source expression failed to match any
pattern"
- #{tmp 4582}#)))))))))))))
- (#{emit 4435}#
- (lambda (#{x 4612}#)
- (let ((#{tmp 4614}# #{x 4612}#))
- (let ((#{tmp 4615}#
- ($sc-dispatch
- #{tmp 4614}#
- '(#(atom "quote") any))))
- (if #{tmp 4615}#
- (@apply
- (lambda (#{x 4617}#)
- (list '#(syntax-object
- quote
- ((top)
- #(ribcage #(x) #((top)) #("i4616"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("i4613"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top) (top) (top) (top) (top) (top) (top))
- ("i4434"
- "i4432"
- "i4430"
- "i4428"
- "i4426"
- "i4424"
- "i4422")))
- (hygiene guile))
- #{x 4617}#))
- #{tmp 4615}#)
- (let ((#{tmp 4618}#
- ($sc-dispatch
- #{tmp 4614}#
- '(#(atom "list") . each-any))))
- (if #{tmp 4618}#
- (@apply
- (lambda (#{x 4620}#)
- (let ((#{tmp 4624}# (map #{emit 4435}# #{x 4620}#)))
- (let ((#{tmp 4625}#
- ($sc-dispatch #{tmp 4624}# 'each-any)))
- (if #{tmp 4625}#
- (@apply
- (lambda (#{ g4621 4627}#)
- (cons '#(syntax-object
- list
+ #(x y)
+ #((top) (top))
+ #("i12231" "i12232"))
+ #(ribcage
+ (emit quasivector
+ quasilist*
+ quasiappend
+ quasicons
+ vquasi
+ quasi)
+ ((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ ("i12168"
+ "i12166"
+ "i12164"
+ "i12162"
+ "i12160"
+ "i12158"
+ "i12156")))
+ (hygiene guile))
+ #{x 12238}#)
+ (list '#(syntax-object
+ "list*"
((top)
- #(ribcage () () ())
#(ribcage
- #(#{ g4621}#)
- #((m4622 top))
- #("i4626"))
+ #(_)
+ #((top))
+ #("i12248"))
#(ribcage
- #(x)
+ #(dy)
#((top))
- #("i4619"))
+ #("i12242"))
#(ribcage () () ())
#(ribcage
- #(x)
- #((top))
- #("i4613"))
+ #(x y)
+ #((top) (top))
+ #("i12236" "i12237"))
+ #(ribcage () () ())
+ #(ribcage () () ())
+ #(ribcage
+ #(x y)
+ #((top) (top))
+ #("i12231" "i12232"))
#(ribcage
(emit quasivector
quasilist*
@@ -15065,253 +17762,777 @@
(top)
(top)
(top))
- ("i4434"
- "i4432"
- "i4430"
- "i4428"
- "i4426"
- "i4424"
- "i4422")))
+ ("i12168"
+ "i12166"
+ "i12164"
+ "i12162"
+ "i12160"
+ "i12158"
+ "i12156")))
(hygiene guile))
- #{ g4621 4627}#))
- #{tmp 4625}#)
- (syntax-violation
- #f
- "source expression failed to match any
pattern"
- #{tmp 4624}#)))))
- #{tmp 4618}#)
- (let ((#{tmp 4630}#
- ($sc-dispatch
- #{tmp 4614}#
- '(#(atom "list*") . #(each+ any (any) ())))))
- (if #{tmp 4630}#
- (@apply
- (lambda (#{x 4633}# #{y 4634}#)
- (letrec*
- ((#{f 4637}#
- (lambda (#{x* 4638}#)
- (if (null? #{x* 4638}#)
- (#{emit 4435}# #{y 4634}#)
- (let ((#{tmp 4644}#
- (list (#{emit 4435}#
- (car #{x* 4638}#))
- (#{f 4637}#
- (cdr #{x* 4638}#)))))
- (let ((#{tmp 4645}#
- ($sc-dispatch
- #{tmp 4644}#
- '(any any))))
- (if #{tmp 4645}#
- (@apply
- (lambda (#{ g4641 4648}#
- #{ g4640 4649}#)
- (list '#(syntax-object
- cons
- ((top)
- #(ribcage () () ())
- #(ribcage
- #(#{ g4641}#
- #{ g4640}#)
- #((m4642 top)
- (m4642 top))
- #("i4646" "i4647"))
- #(ribcage () () ())
- #(ribcage
- #(f x*)
- #((top) (top))
- #("i4635" "i4636"))
- #(ribcage
- #(x y)
- #((top) (top))
- #("i4631" "i4632"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("i4613"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("i4434"
- "i4432"
- "i4430"
- "i4428"
- "i4426"
- "i4424"
- "i4422")))
- (hygiene guile))
- #{ g4641 4648}#
- #{ g4640 4649}#))
- #{tmp 4645}#)
- (syntax-violation
- #f
- "source expression failed to
match any pattern"
- #{tmp 4644}#))))))))
- (#{f 4637}# #{x 4633}#)))
- #{tmp 4630}#)
- (let ((#{tmp 4650}#
+ #{x 12238}#
+ #{y 12239}#)))))
+ #{tmp 12241}#)
+ (let ((#{tmp 12250}#
($sc-dispatch
- #{tmp 4614}#
- '(#(atom "append") . each-any))))
- (if #{tmp 4650}#
+ #{y 12239}#
+ '(#(atom "list") . any))))
+ (if #{tmp 12250}#
(@apply
- (lambda (#{x 4652}#)
- (let ((#{tmp 4656}#
- (map #{emit 4435}# #{x 4652}#)))
- (let ((#{tmp 4657}#
- ($sc-dispatch
- #{tmp 4656}#
- 'each-any)))
- (if #{tmp 4657}#
- (@apply
- (lambda (#{ g4653 4659}#)
- (cons '#(syntax-object
- append
- ((top)
- #(ribcage () () ())
- #(ribcage
- #(#{ g4653}#)
- #((m4654 top))
- #("i4658"))
- #(ribcage
- #(x)
- #((top))
- #("i4651"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("i4613"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
+ (lambda (#{stuff 12252}#)
+ (cons '#(syntax-object
+ "list"
+ ((top)
+ #(ribcage
+ #(stuff)
+ #((top))
+ #("i12251"))
+ #(ribcage () () ())
+ #(ribcage
+ #(x y)
+ #((top) (top))
+ #("i12236" "i12237"))
+ #(ribcage () () ())
+ #(ribcage () () ())
+ #(ribcage
+ #(x y)
+ #((top) (top))
+ #("i12231" "i12232"))
+ #(ribcage
+ (emit quasivector
+ quasilist*
+ quasiappend
+ quasicons
+ vquasi
+ quasi)
+ ((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ ("i12168"
+ "i12166"
+ "i12164"
+ "i12162"
+ "i12160"
+ "i12158"
+ "i12156")))
+ (hygiene guile))
+ (cons #{x 12238}# #{stuff 12252}#)))
+ #{tmp 12250}#)
+ (let ((#{tmp 12253}#
+ ($sc-dispatch
+ #{y 12239}#
+ '(#(atom "list*") . any))))
+ (if #{tmp 12253}#
+ (@apply
+ (lambda (#{stuff 12255}#)
+ (cons '#(syntax-object
+ "list*"
+ ((top)
+ #(ribcage
+ #(stuff)
+ #((top))
+ #("i12254"))
+ #(ribcage () () ())
+ #(ribcage
+ #(x y)
+ #((top) (top))
+ #("i12236" "i12237"))
+ #(ribcage () () ())
+ #(ribcage () () ())
+ #(ribcage
+ #(x y)
+ #((top) (top))
+ #("i12231" "i12232"))
+ #(ribcage
+ (emit quasivector
+ quasilist*
+ quasiappend
+ quasicons
+ vquasi
+ quasi)
+ ((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ ("i12168"
+ "i12166"
+ "i12164"
+ "i12162"
+ "i12160"
+ "i12158"
+ "i12156")))
+ (hygiene guile))
+ (cons #{x 12238}# #{stuff 12255}#)))
+ #{tmp 12253}#)
+ (list '#(syntax-object
+ "list*"
+ ((top)
+ #(ribcage #(_) #((top)) #("i12256"))
+ #(ribcage () () ())
+ #(ribcage
+ #(x y)
+ #((top) (top))
+ #("i12236" "i12237"))
+ #(ribcage () () ())
+ #(ribcage () () ())
+ #(ribcage
+ #(x y)
+ #((top) (top))
+ #("i12231" "i12232"))
+ #(ribcage
+ (emit quasivector
+ quasilist*
+ quasiappend
+ quasicons
+ vquasi
+ quasi)
+ ((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ ("i12168"
+ "i12166"
+ "i12164"
+ "i12162"
+ "i12160"
+ "i12158"
+ "i12156")))
+ (hygiene guile))
+ #{x 12238}#
+ #{y 12239}#))))))))
+ #{tmp 12235}#)
+ (syntax-violation
+ #f
+ "source expression failed to match any pattern"
+ #{tmp 12234}#))))))
+ (#{quasiappend 12163}#
+ (lambda (#{x 12258}# #{y 12259}#)
+ (let ((#{tmp 12263}#
+ ($sc-dispatch #{y 12259}# '(#(atom "quote") ()))))
+ (if #{tmp 12263}#
+ (@apply
+ (lambda ()
+ (if (null? #{x 12258}#)
+ '(#(syntax-object
+ "quote"
+ ((top)
+ #(ribcage () () ())
+ #(ribcage
+ #(x y)
+ #((top) (top))
+ #("i12260" "i12261"))
+ #(ribcage
+ (emit quasivector
+ quasilist*
+ quasiappend
+ quasicons
+ vquasi
+ quasi)
+ ((top) (top) (top) (top) (top) (top) (top))
+ ("i12168"
+ "i12166"
+ "i12164"
+ "i12162"
+ "i12160"
+ "i12158"
+ "i12156")))
+ (hygiene guile))
+ ())
+ (if (null? (cdr #{x 12258}#))
+ (car #{x 12258}#)
+ (let ((#{tmp 12271}#
+ ($sc-dispatch #{x 12258}# 'each-any)))
+ (if #{tmp 12271}#
+ (@apply
+ (lambda (#{p 12273}#)
+ (cons '#(syntax-object
+ "append"
+ ((top)
+ #(ribcage () () ())
+ #(ribcage #(p) #((top)) #("i12272"))
+ #(ribcage () () ())
+ #(ribcage
+ #(x y)
+ #((top) (top))
+ #("i12260" "i12261"))
+ #(ribcage
+ (emit quasivector
+ quasilist*
+ quasiappend
+ quasicons
+ vquasi
+ quasi)
+ ((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ ("i12168"
+ "i12166"
+ "i12164"
+ "i12162"
+ "i12160"
+ "i12158"
+ "i12156")))
+ (hygiene guile))
+ #{p 12273}#))
+ #{tmp 12271}#)
+ (syntax-violation
+ #f
+ "source expression failed to match any pattern"
+ #{x 12258}#))))))
+ #{tmp 12263}#)
+ (if (null? #{x 12258}#)
+ #{y 12259}#
+ (let ((#{tmp 12281}# (list #{x 12258}# #{y 12259}#)))
+ (let ((#{tmp 12282}#
+ ($sc-dispatch #{tmp 12281}# '(each-any any))))
+ (if #{tmp 12282}#
+ (@apply
+ (lambda (#{p 12285}# #{y 12286}#)
+ (cons '#(syntax-object
+ "append"
+ ((top)
+ #(ribcage () () ())
+ #(ribcage
+ #(p y)
+ #((top) (top))
+ #("i12283" "i12284"))
+ #(ribcage #(_) #((top)) #("i12275"))
+ #(ribcage () () ())
+ #(ribcage
+ #(x y)
+ #((top) (top))
+ #("i12260" "i12261"))
+ #(ribcage
+ (emit quasivector
+ quasilist*
+ quasiappend
+ quasicons
+ vquasi
+ quasi)
+ ((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ ("i12168"
+ "i12166"
+ "i12164"
+ "i12162"
+ "i12160"
+ "i12158"
+ "i12156")))
+ (hygiene guile))
+ (append #{p 12285}# (list #{y 12286}#))))
+ #{tmp 12282}#)
+ (syntax-violation
+ #f
+ "source expression failed to match any pattern"
+ #{tmp 12281}#)))))))))
+ (#{quasilist* 12165}#
+ (lambda (#{x 12288}# #{y 12289}#)
+ (letrec*
+ ((#{f 12294}#
+ (lambda (#{x 12295}#)
+ (if (null? #{x 12295}#)
+ #{y 12289}#
+ (#{quasicons 12161}#
+ (car #{x 12295}#)
+ (#{f 12294}# (cdr #{x 12295}#)))))))
+ (#{f 12294}# #{x 12288}#))))
+ (#{quasivector 12167}#
+ (lambda (#{x 12296}#)
+ (let ((#{tmp 12299}#
+ ($sc-dispatch
+ #{x 12296}#
+ '(#(atom "quote") each-any))))
+ (if #{tmp 12299}#
+ (@apply
+ (lambda (#{x 12301}#)
+ (list '#(syntax-object
+ "quote"
+ ((top)
+ #(ribcage #(x) #((top)) #("i12300"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i12297"))
+ #(ribcage
+ (emit quasivector
+ quasilist*
+ quasiappend
+ quasicons
+ vquasi
+ quasi)
+ ((top) (top) (top) (top) (top) (top) (top))
+ ("i12168"
+ "i12166"
+ "i12164"
+ "i12162"
+ "i12160"
+ "i12158"
+ "i12156")))
+ (hygiene guile))
+ (list->vector #{x 12301}#)))
+ #{tmp 12299}#)
+ (letrec*
+ ((#{f 12308}#
+ (lambda (#{y 12309}# #{k 12310}#)
+ (let ((#{tmp 12322}#
+ ($sc-dispatch
+ #{y 12309}#
+ '(#(atom "quote") each-any))))
+ (if #{tmp 12322}#
+ (@apply
+ (lambda (#{y 12324}#)
+ (#{k 12310}#
+ (map (lambda (#{tmp 12325}#)
+ (list '#(syntax-object
+ "quote"
+ ((top)
+ #(ribcage
+ #(y)
+ #((top))
+ #("i12323"))
+ #(ribcage () () ())
+ #(ribcage
+ #(f y k)
+ #((top) (top) (top))
+ #("i12305"
+ "i12306"
+ "i12307"))
+ #(ribcage
+ #(_)
+ #((top))
+ #("i12303"))
+ #(ribcage () () ())
+ #(ribcage
+ #(x)
+ #((top))
+ #("i12297"))
+ #(ribcage
+ (emit quasivector
+ quasilist*
+ quasiappend
+ quasicons
+ vquasi
+ quasi)
+ ((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ ("i12168"
+ "i12166"
+ "i12164"
+ "i12162"
+ "i12160"
+ "i12158"
+ "i12156")))
+ (hygiene guile))
+ #{tmp 12325}#))
+ #{y 12324}#)))
+ #{tmp 12322}#)
+ (let ((#{tmp 12326}#
+ ($sc-dispatch
+ #{y 12309}#
+ '(#(atom "list") . each-any))))
+ (if #{tmp 12326}#
+ (@apply
+ (lambda (#{y 12328}#)
+ (#{k 12310}# #{y 12328}#))
+ #{tmp 12326}#)
+ (let ((#{tmp 12330}#
+ ($sc-dispatch
+ #{y 12309}#
+ '(#(atom "list*")
+ .
+ #(each+ any (any) ())))))
+ (if #{tmp 12330}#
+ (@apply
+ (lambda (#{y 12333}# #{z 12334}#)
+ (#{f 12308}#
+ #{z 12334}#
+ (lambda (#{ls 12335}#)
+ (#{k 12310}#
+ (append
+ #{y 12333}#
+ #{ls 12335}#)))))
+ #{tmp 12330}#)
+ (list '#(syntax-object
+ "list->vector"
+ ((top)
+ #(ribcage () () ())
+ #(ribcage
+ #(#{ g12340}#)
+ #((m12341 top))
+ #("i12344"))
+ #(ribcage
+ #(else)
+ #((top))
+ #("i12338"))
+ #(ribcage () () ())
+ #(ribcage
+ #(f y k)
+ #((top) (top) (top))
+ #("i12305" "i12306" "i12307"))
+ #(ribcage
+ #(_)
+ #((top))
+ #("i12303"))
+ #(ribcage () () ())
+ #(ribcage
+ #(x)
+ #((top))
+ #("i12297"))
+ #(ribcage
+ (emit quasivector
+ quasilist*
+ quasiappend
+ quasicons
+ vquasi
+ quasi)
+ ((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ ("i12168"
+ "i12166"
+ "i12164"
+ "i12162"
+ "i12160"
+ "i12158"
+ "i12156")))
+ (hygiene guile))
+ #{x 12296}#))))))))))
+ (#{f 12308}#
+ #{x 12296}#
+ (lambda (#{ls 12311}#)
+ (let ((#{tmp 12317}#
+ ($sc-dispatch #{ls 12311}# 'each-any)))
+ (if #{tmp 12317}#
+ (@apply
+ (lambda (#{ g12313 12319}#)
+ (cons '#(syntax-object
+ "vector"
+ ((top)
+ #(ribcage () () ())
+ #(ribcage
+ #(#{ g12313}#)
+ #((m12314 top))
+ #("i12318"))
+ #(ribcage () () ())
+ #(ribcage () () ())
+ #(ribcage () () ())
+ #(ribcage #(ls) #((top)) #("i12312"))
+ #(ribcage #(_) #((top)) #("i12303"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i12297"))
+ #(ribcage
+ (emit quasivector
+ quasilist*
+ quasiappend
+ quasicons
+ vquasi
+ quasi)
+ ((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ ("i12168"
+ "i12166"
+ "i12164"
+ "i12162"
+ "i12160"
+ "i12158"
+ "i12156")))
+ (hygiene guile))
+ #{ g12313 12319}#))
+ #{tmp 12317}#)
+ (syntax-violation
+ #f
+ "source expression failed to match any pattern"
+ #{ls 12311}#))))))))))
+ (#{emit 12169}#
+ (lambda (#{x 12346}#)
+ (let ((#{tmp 12349}#
+ ($sc-dispatch #{x 12346}# '(#(atom "quote") any))))
+ (if #{tmp 12349}#
+ (@apply
+ (lambda (#{x 12351}#)
+ (list '#(syntax-object
+ quote
+ ((top)
+ #(ribcage #(x) #((top)) #("i12350"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i12347"))
+ #(ribcage
+ (emit quasivector
+ quasilist*
+ quasiappend
+ quasicons
+ vquasi
+ quasi)
+ ((top) (top) (top) (top) (top) (top) (top))
+ ("i12168"
+ "i12166"
+ "i12164"
+ "i12162"
+ "i12160"
+ "i12158"
+ "i12156")))
+ (hygiene guile))
+ #{x 12351}#))
+ #{tmp 12349}#)
+ (let ((#{tmp 12352}#
+ ($sc-dispatch
+ #{x 12346}#
+ '(#(atom "list") . each-any))))
+ (if #{tmp 12352}#
+ (@apply
+ (lambda (#{x 12354}#)
+ (let ((#{tmp 12358}# (map #{emit 12169}# #{x 12354}#)))
+ (let ((#{tmp 12359}#
+ ($sc-dispatch #{tmp 12358}# 'each-any)))
+ (if #{tmp 12359}#
+ (@apply
+ (lambda (#{ g12355 12361}#)
+ (cons '#(syntax-object
+ list
+ ((top)
+ #(ribcage () () ())
+ #(ribcage
+ #(#{ g12355}#)
+ #((m12356 top))
+ #("i12360"))
+ #(ribcage #(x) #((top)) #("i12353"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i12347"))
+ #(ribcage
+ (emit quasivector
+ quasilist*
+ quasiappend
+ quasicons
+ vquasi
+ quasi)
+ ((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ ("i12168"
+ "i12166"
+ "i12164"
+ "i12162"
+ "i12160"
+ "i12158"
+ "i12156")))
+ (hygiene guile))
+ #{ g12355 12361}#))
+ #{tmp 12359}#)
+ (syntax-violation
+ #f
+ "source expression failed to match any pattern"
+ #{tmp 12358}#)))))
+ #{tmp 12352}#)
+ (let ((#{tmp 12364}#
+ ($sc-dispatch
+ #{x 12346}#
+ '(#(atom "list*") . #(each+ any (any) ())))))
+ (if #{tmp 12364}#
+ (@apply
+ (lambda (#{x 12367}# #{y 12368}#)
+ (letrec*
+ ((#{f 12371}#
+ (lambda (#{x* 12372}#)
+ (if (null? #{x* 12372}#)
+ (#{emit 12169}# #{y 12368}#)
+ (let ((#{tmp 12378}#
+ (list (#{emit 12169}#
+ (car #{x* 12372}#))
+ (#{f 12371}#
+ (cdr #{x* 12372}#)))))
+ (let ((#{tmp 12379}#
+ ($sc-dispatch
+ #{tmp 12378}#
+ '(any any))))
+ (if #{tmp 12379}#
+ (@apply
+ (lambda (#{ g12375 12382}#
+ #{ g12374 12383}#)
+ (list '#(syntax-object
+ cons
((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("i4434"
- "i4432"
- "i4430"
- "i4428"
- "i4426"
- "i4424"
- "i4422")))
- (hygiene guile))
- #{ g4653 4659}#))
- #{tmp 4657}#)
- (syntax-violation
- #f
- "source expression failed to match
any pattern"
- #{tmp 4656}#)))))
- #{tmp 4650}#)
- (let ((#{tmp 4662}#
- ($sc-dispatch
- #{tmp 4614}#
- '(#(atom "vector") . each-any))))
- (if #{tmp 4662}#
- (@apply
- (lambda (#{x 4664}#)
- (let ((#{tmp 4668}#
- (map #{emit 4435}# #{x 4664}#)))
- (let ((#{tmp 4669}#
- ($sc-dispatch
- #{tmp 4668}#
- 'each-any)))
- (if #{tmp 4669}#
- (@apply
- (lambda (#{ g4665 4671}#)
- (cons '#(syntax-object
- vector
- ((top)
- #(ribcage () () ())
- #(ribcage
- #(#{ g4665}#)
- #((m4666 top))
- #("i4670"))
- #(ribcage
- #(x)
- #((top))
- #("i4663"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("i4613"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("i4434"
- "i4432"
- "i4430"
- "i4428"
- "i4426"
- "i4424"
- "i4422")))
- (hygiene guile))
- #{ g4665 4671}#))
- #{tmp 4669}#)
- (syntax-violation
- #f
- "source expression failed to
match any pattern"
- #{tmp 4668}#)))))
- #{tmp 4662}#)
- (let ((#{tmp 4674}#
+ #(ribcage () () ())
+ #(ribcage
+ #(#{ g12375}#
+ #{ g12374}#)
+ #((m12376 top)
+ (m12376 top))
+ #("i12380" "i12381"))
+ #(ribcage () () ())
+ #(ribcage
+ #(f x*)
+ #((top) (top))
+ #("i12369" "i12370"))
+ #(ribcage
+ #(x y)
+ #((top) (top))
+ #("i12365" "i12366"))
+ #(ribcage () () ())
+ #(ribcage
+ #(x)
+ #((top))
+ #("i12347"))
+ #(ribcage
+ (emit quasivector
+ quasilist*
+ quasiappend
+ quasicons
+ vquasi
+ quasi)
+ ((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ ("i12168"
+ "i12166"
+ "i12164"
+ "i12162"
+ "i12160"
+ "i12158"
+ "i12156")))
+ (hygiene guile))
+ #{ g12375 12382}#
+ #{ g12374 12383}#))
+ #{tmp 12379}#)
+ (syntax-violation
+ #f
+ "source expression failed to match
any pattern"
+ #{tmp 12378}#))))))))
+ (#{f 12371}# #{x 12367}#)))
+ #{tmp 12364}#)
+ (let ((#{tmp 12384}#
+ ($sc-dispatch
+ #{x 12346}#
+ '(#(atom "append") . each-any))))
+ (if #{tmp 12384}#
+ (@apply
+ (lambda (#{x 12386}#)
+ (let ((#{tmp 12390}#
+ (map #{emit 12169}# #{x 12386}#)))
+ (let ((#{tmp 12391}#
($sc-dispatch
- #{tmp 4614}#
- '(#(atom "list->vector") any))))
- (if #{tmp 4674}#
+ #{tmp 12390}#
+ 'each-any)))
+ (if #{tmp 12391}#
(@apply
- (lambda (#{x 4676}#)
- (let ((#{tmp 4680}#
- (#{emit 4435}# #{x 4676}#)))
- (let ((#{ g4677 4682}#
- #{tmp 4680}#))
- (list '#(syntax-object
- list->vector
+ (lambda (#{ g12387 12393}#)
+ (cons '#(syntax-object
+ append
+ ((top)
+ #(ribcage () () ())
+ #(ribcage
+ #(#{ g12387}#)
+ #((m12388 top))
+ #("i12392"))
+ #(ribcage
+ #(x)
+ #((top))
+ #("i12385"))
+ #(ribcage () () ())
+ #(ribcage
+ #(x)
+ #((top))
+ #("i12347"))
+ #(ribcage
+ (emit quasivector
+ quasilist*
+ quasiappend
+ quasicons
+ vquasi
+ quasi)
+ ((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ ("i12168"
+ "i12166"
+ "i12164"
+ "i12162"
+ "i12160"
+ "i12158"
+ "i12156")))
+ (hygiene guile))
+ #{ g12387 12393}#))
+ #{tmp 12391}#)
+ (syntax-violation
+ #f
+ "source expression failed to match any
pattern"
+ #{tmp 12390}#)))))
+ #{tmp 12384}#)
+ (let ((#{tmp 12396}#
+ ($sc-dispatch
+ #{x 12346}#
+ '(#(atom "vector") . each-any))))
+ (if #{tmp 12396}#
+ (@apply
+ (lambda (#{x 12398}#)
+ (let ((#{tmp 12402}#
+ (map #{emit 12169}# #{x 12398}#)))
+ (let ((#{tmp 12403}#
+ ($sc-dispatch
+ #{tmp 12402}#
+ 'each-any)))
+ (if #{tmp 12403}#
+ (@apply
+ (lambda (#{ g12399 12405}#)
+ (cons '#(syntax-object
+ vector
((top)
#(ribcage () () ())
#(ribcage
- #(#{ g4677}#)
- #((m4678 top))
- #("i4681"))
+ #(#{ g12399}#)
+ #((m12400 top))
+ #("i12404"))
#(ribcage
#(x)
#((top))
- #("i4675"))
+ #("i12397"))
#(ribcage () () ())
#(ribcage
#(x)
#((top))
- #("i4613"))
+ #("i12347"))
#(ribcage
(emit quasivector
quasilist*
@@ -15326,690 +18547,619 @@
(top)
(top)
(top))
- ("i4434"
- "i4432"
- "i4430"
- "i4428"
- "i4426"
- "i4424"
- "i4422")))
+ ("i12168"
+ "i12166"
+ "i12164"
+ "i12162"
+ "i12160"
+ "i12158"
+ "i12156")))
(hygiene guile))
- #{ g4677 4682}#))))
- #{tmp 4674}#)
- (let ((#{tmp 4683}#
- ($sc-dispatch
- #{tmp 4614}#
- '(#(atom "value") any))))
- (if #{tmp 4683}#
- (@apply
- (lambda (#{x 4685}#) #{x 4685}#)
- #{tmp 4683}#)
+ #{ g12399 12405}#))
+ #{tmp 12403}#)
(syntax-violation
#f
"source expression failed to match
any pattern"
- #{tmp 4614}#)))))))))))))))))))
- (lambda (#{x 4686}#)
- (let ((#{tmp 4688}# #{x 4686}#))
- (let ((#{tmp 4689}#
- ($sc-dispatch #{tmp 4688}# '(_ any))))
- (if #{tmp 4689}#
- (@apply
- (lambda (#{e 4691}#)
- (#{emit 4435}# (#{quasi 4423}# #{e 4691}# 0)))
- #{tmp 4689}#)
- (syntax-violation
- #f
- "source expression failed to match any pattern"
- #{tmp 4688}#))))))))
+ #{tmp 12402}#)))))
+ #{tmp 12396}#)
+ (let ((#{tmp 12408}#
+ ($sc-dispatch
+ #{x 12346}#
+ '(#(atom "list->vector") any))))
+ (if #{tmp 12408}#
+ (@apply
+ (lambda (#{x 12410}#)
+ (let ((#{tmp 12414}#
+ (#{emit 12169}# #{x 12410}#)))
+ (list '#(syntax-object
+ list->vector
+ ((top)
+ #(ribcage () () ())
+ #(ribcage
+ #(#{ g12411}#)
+ #((m12412 top))
+ #("i12415"))
+ #(ribcage
+ #(x)
+ #((top))
+ #("i12409"))
+ #(ribcage () () ())
+ #(ribcage
+ #(x)
+ #((top))
+ #("i12347"))
+ #(ribcage
+ (emit quasivector
+ quasilist*
+ quasiappend
+ quasicons
+ vquasi
+ quasi)
+ ((top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top)
+ (top))
+ ("i12168"
+ "i12166"
+ "i12164"
+ "i12162"
+ "i12160"
+ "i12158"
+ "i12156")))
+ (hygiene guile))
+ #{tmp 12414}#)))
+ #{tmp 12408}#)
+ (let ((#{tmp 12417}#
+ ($sc-dispatch
+ #{x 12346}#
+ '(#(atom "value") any))))
+ (if #{tmp 12417}#
+ (@apply
+ (lambda (#{x 12419}#) #{x 12419}#)
+ #{tmp 12417}#)
+ (syntax-violation
+ #f
+ "source expression failed to match
any pattern"
+ #{x 12346}#))))))))))))))))))
+ (lambda (#{x 12420}#)
+ (let ((#{tmp 12423}#
+ ($sc-dispatch #{x 12420}# '(_ any))))
+ (if #{tmp 12423}#
+ (@apply
+ (lambda (#{e 12425}#)
+ (#{emit 12169}# (#{quasi 12157}# #{e 12425}# 0)))
+ #{tmp 12423}#)
+ (syntax-violation
+ #f
+ "source expression failed to match any pattern"
+ #{x 12420}#)))))))
(define include
(make-syntax-transformer
'include
'macro
- (lambda (#{x 4692}#)
- (letrec*
- ((#{read-file 4695}#
- (lambda (#{fn 4696}# #{k 4697}#)
- (let ((#{p 4701}# (open-input-file #{fn 4696}#)))
- (letrec*
- ((#{f 4705}#
- (lambda (#{x 4706}# #{result 4707}#)
- (if (eof-object? #{x 4706}#)
- (begin
- (close-input-port #{p 4701}#)
- (reverse #{result 4707}#))
- (#{f 4705}#
- (read #{p 4701}#)
- (cons (datum->syntax #{k 4697}# #{x 4706}#)
- #{result 4707}#))))))
- (#{f 4705}# (read #{p 4701}#) '()))))))
- (let ((#{tmp 4708}# #{x 4692}#))
- (let ((#{tmp 4709}#
- ($sc-dispatch #{tmp 4708}# '(any any))))
- (if #{tmp 4709}#
- (@apply
- (lambda (#{k 4712}# #{filename 4713}#)
- (let ((#{fn 4715}# (syntax->datum #{filename 4713}#)))
- (let ((#{tmp 4717}#
- (#{read-file 4695}#
- #{fn 4715}#
- #{filename 4713}#)))
- (let ((#{tmp 4718}#
- ($sc-dispatch #{tmp 4717}# 'each-any)))
- (if #{tmp 4718}#
- (@apply
- (lambda (#{exp 4720}#)
- (cons '#(syntax-object
- begin
- ((top)
- #(ribcage () () ())
- #(ribcage #(exp) #((top)) #("i4719"))
- #(ribcage () () ())
- #(ribcage () () ())
- #(ribcage #(fn) #((top)) #("i4714"))
- #(ribcage
- #(k filename)
- #((top) (top))
- #("i4710" "i4711"))
- #(ribcage
- (read-file)
- ((top))
- ("i4694"))
- #(ribcage #(x) #((top)) #("i4693")))
- (hygiene guile))
- #{exp 4720}#))
- #{tmp 4718}#)
- (syntax-violation
- #f
- "source expression failed to match any pattern"
- #{tmp 4717}#))))))
- #{tmp 4709}#)
- (syntax-violation
- #f
- "source expression failed to match any pattern"
- #{tmp 4708}#))))))))
+ (lambda (#{x 12691}#)
+ (let ((#{tmp 12708}#
+ ($sc-dispatch #{x 12691}# '(any any))))
+ (if #{tmp 12708}#
+ (@apply
+ (lambda (#{k 12711}# #{filename 12712}#)
+ (let ((#{fn 12714}# (syntax->datum #{filename 12712}#)))
+ (let ((#{tmp 12716}#
+ ((lambda (#{fn 12695}# #{k 12696}#)
+ (let ((#{p 12700}# (open-input-file #{fn 12695}#)))
+ (letrec*
+ ((#{f 12704}#
+ (lambda (#{x 12705}# #{result 12706}#)
+ (if (eof-object? #{x 12705}#)
+ (begin
+ (close-input-port #{p 12700}#)
+ (reverse #{result 12706}#))
+ (#{f 12704}#
+ (read #{p 12700}#)
+ (cons (datum->syntax
+ #{k 12696}#
+ #{x 12705}#)
+ #{result 12706}#))))))
+ (#{f 12704}# (read #{p 12700}#) '()))))
+ #{fn 12714}#
+ #{filename 12712}#)))
+ (let ((#{tmp 12717}#
+ ($sc-dispatch #{tmp 12716}# 'each-any)))
+ (if #{tmp 12717}#
+ (@apply
+ (lambda (#{exp 12719}#)
+ (cons '#(syntax-object
+ begin
+ ((top)
+ #(ribcage () () ())
+ #(ribcage #(exp) #((top)) #("i12718"))
+ #(ribcage () () ())
+ #(ribcage () () ())
+ #(ribcage #(fn) #((top)) #("i12713"))
+ #(ribcage
+ #(k filename)
+ #((top) (top))
+ #("i12709" "i12710"))
+ #(ribcage (read-file) ((top)) ("i12693"))
+ #(ribcage #(x) #((top)) #("i12692")))
+ (hygiene guile))
+ #{exp 12719}#))
+ #{tmp 12717}#)
+ (syntax-violation
+ #f
+ "source expression failed to match any pattern"
+ #{tmp 12716}#))))))
+ #{tmp 12708}#)
+ (syntax-violation
+ #f
+ "source expression failed to match any pattern"
+ #{x 12691}#))))))
(define include-from-path
(make-syntax-transformer
'include-from-path
'macro
- (lambda (#{x 4722}#)
- (let ((#{tmp 4724}# #{x 4722}#))
- (let ((#{tmp 4725}#
- ($sc-dispatch #{tmp 4724}# '(any any))))
- (if #{tmp 4725}#
- (@apply
- (lambda (#{k 4728}# #{filename 4729}#)
- (let ((#{fn 4731}# (syntax->datum #{filename 4729}#)))
- (let ((#{tmp 4733}#
- (datum->syntax
- #{filename 4729}#
- (let ((#{t 4738}# (%search-load-path #{fn 4731}#)))
- (if #{t 4738}#
- #{t 4738}#
- (syntax-violation
- 'include-from-path
- "file not found in path"
- #{x 4722}#
- #{filename 4729}#))))))
- (let ((#{fn 4735}# #{tmp 4733}#))
- (list '#(syntax-object
- include
- ((top)
- #(ribcage () () ())
- #(ribcage #(fn) #((top)) #("i4734"))
- #(ribcage () () ())
- #(ribcage () () ())
- #(ribcage #(fn) #((top)) #("i4730"))
- #(ribcage
- #(k filename)
- #((top) (top))
- #("i4726" "i4727"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("i4723")))
- (hygiene guile))
- #{fn 4735}#)))))
- #{tmp 4725}#)
- (syntax-violation
- #f
- "source expression failed to match any pattern"
- #{tmp 4724}#)))))))
+ (lambda (#{x 12816}#)
+ (let ((#{tmp 12819}#
+ ($sc-dispatch #{x 12816}# '(any any))))
+ (if #{tmp 12819}#
+ (@apply
+ (lambda (#{k 12822}# #{filename 12823}#)
+ (let ((#{fn 12825}# (syntax->datum #{filename 12823}#)))
+ (let ((#{tmp 12827}#
+ (datum->syntax
+ #{filename 12823}#
+ (let ((#{t 12832}# (%search-load-path #{fn 12825}#)))
+ (if #{t 12832}#
+ #{t 12832}#
+ (syntax-violation
+ 'include-from-path
+ "file not found in path"
+ #{x 12816}#
+ #{filename 12823}#))))))
+ (list '#(syntax-object
+ include
+ ((top)
+ #(ribcage () () ())
+ #(ribcage #(fn) #((top)) #("i12828"))
+ #(ribcage () () ())
+ #(ribcage () () ())
+ #(ribcage #(fn) #((top)) #("i12824"))
+ #(ribcage
+ #(k filename)
+ #((top) (top))
+ #("i12820" "i12821"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i12817")))
+ (hygiene guile))
+ #{tmp 12827}#))))
+ #{tmp 12819}#)
+ (syntax-violation
+ #f
+ "source expression failed to match any pattern"
+ #{x 12816}#))))))
(define unquote
(make-syntax-transformer
'unquote
'macro
- (lambda (#{x 4740}#)
+ (lambda (#{x 12834}#)
(syntax-violation
'unquote
"expression not valid outside of quasiquote"
- #{x 4740}#))))
+ #{x 12834}#))))
(define unquote-splicing
(make-syntax-transformer
'unquote-splicing
'macro
- (lambda (#{x 4742}#)
+ (lambda (#{x 12836}#)
(syntax-violation
'unquote-splicing
"expression not valid outside of quasiquote"
- #{x 4742}#))))
+ #{x 12836}#))))
(define case
(make-syntax-transformer
'case
'macro
- (lambda (#{x 4744}#)
- (let ((#{tmp 4746}# #{x 4744}#))
- (let ((#{tmp 4747}#
- ($sc-dispatch
- #{tmp 4746}#
- '(_ any any . each-any))))
- (if #{tmp 4747}#
- (@apply
- (lambda (#{e 4751}# #{m1 4752}# #{m2 4753}#)
- (let ((#{tmp 4755}#
- (letrec*
- ((#{f 4761}#
- (lambda (#{clause 4762}# #{clauses 4763}#)
- (if (null? #{clauses 4763}#)
- (let ((#{tmp 4765}# #{clause 4762}#))
- (let ((#{tmp 4766}#
+ (lambda (#{x 12838}#)
+ (let ((#{tmp 12841}#
+ ($sc-dispatch
+ #{x 12838}#
+ '(_ any any . each-any))))
+ (if #{tmp 12841}#
+ (@apply
+ (lambda (#{e 12845}# #{m1 12846}# #{m2 12847}#)
+ (let ((#{tmp 12849}#
+ (letrec*
+ ((#{f 12855}#
+ (lambda (#{clause 12856}# #{clauses 12857}#)
+ (if (null? #{clauses 12857}#)
+ (let ((#{tmp 12860}#
+ ($sc-dispatch
+ #{clause 12856}#
+ '(#(free-id
+ #(syntax-object
+ else
+ ((top)
+ #(ribcage () () ())
+ #(ribcage
+ #(f clause clauses)
+ #((top) (top) (top))
+ #("i12852"
+ "i12853"
+ "i12854"))
+ #(ribcage
+ #(e m1 m2)
+ #((top) (top) (top))
+ #("i12842"
+ "i12843"
+ "i12844"))
+ #(ribcage () () ())
+ #(ribcage
+ #(x)
+ #((top))
+ #("i12839")))
+ (hygiene guile)))
+ any
+ .
+ each-any))))
+ (if #{tmp 12860}#
+ (@apply
+ (lambda (#{e1 12863}# #{e2 12864}#)
+ (cons '#(syntax-object
+ begin
+ ((top)
+ #(ribcage
+ #(e1 e2)
+ #((top) (top))
+ #("i12861" "i12862"))
+ #(ribcage () () ())
+ #(ribcage
+ #(f clause clauses)
+ #((top) (top) (top))
+ #("i12852"
+ "i12853"
+ "i12854"))
+ #(ribcage
+ #(e m1 m2)
+ #((top) (top) (top))
+ #("i12842"
+ "i12843"
+ "i12844"))
+ #(ribcage () () ())
+ #(ribcage
+ #(x)
+ #((top))
+ #("i12839")))
+ (hygiene guile))
+ (cons #{e1 12863}# #{e2 12864}#)))
+ #{tmp 12860}#)
+ (let ((#{tmp 12866}#
($sc-dispatch
- #{tmp 4765}#
- '(#(free-id
- #(syntax-object
- else
- ((top)
- #(ribcage () () ())
- #(ribcage
- #(f clause clauses)
- #((top) (top) (top))
- #("i4758"
- "i4759"
- "i4760"))
- #(ribcage
- #(e m1 m2)
- #((top) (top) (top))
- #("i4748"
- "i4749"
- "i4750"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("i4745")))
- (hygiene guile)))
- any
- .
- each-any))))
- (if #{tmp 4766}#
+ #{clause 12856}#
+ '(each-any any . each-any))))
+ (if #{tmp 12866}#
(@apply
- (lambda (#{e1 4769}# #{e2 4770}#)
- (cons '#(syntax-object
- begin
+ (lambda (#{k 12870}#
+ #{e1 12871}#
+ #{e2 12872}#)
+ (list '#(syntax-object
+ if
((top)
#(ribcage
- #(e1 e2)
- #((top) (top))
- #("i4767" "i4768"))
+ #(k e1 e2)
+ #((top) (top) (top))
+ #("i12867"
+ "i12868"
+ "i12869"))
#(ribcage () () ())
#(ribcage
#(f clause clauses)
#((top) (top) (top))
- #("i4758"
- "i4759"
- "i4760"))
+ #("i12852"
+ "i12853"
+ "i12854"))
#(ribcage
#(e m1 m2)
#((top) (top) (top))
- #("i4748"
- "i4749"
- "i4750"))
+ #("i12842"
+ "i12843"
+ "i12844"))
#(ribcage () () ())
#(ribcage
#(x)
#((top))
- #("i4745")))
+ #("i12839")))
(hygiene guile))
- (cons #{e1 4769}#
- #{e2 4770}#)))
- #{tmp 4766}#)
- (let ((#{tmp 4772}#
- ($sc-dispatch
- #{tmp 4765}#
- '(each-any any . each-any))))
- (if #{tmp 4772}#
- (@apply
- (lambda (#{k 4776}#
- #{e1 4777}#
- #{e2 4778}#)
+ (list '#(syntax-object
+ memv
+ ((top)
+ #(ribcage
+ #(k e1 e2)
+ #((top)
+ (top)
+ (top))
+ #("i12867"
+ "i12868"
+ "i12869"))
+ #(ribcage () () ())
+ #(ribcage
+ #(f
+ clause
+ clauses)
+ #((top)
+ (top)
+ (top))
+ #("i12852"
+ "i12853"
+ "i12854"))
+ #(ribcage
+ #(e m1 m2)
+ #((top)
+ (top)
+ (top))
+ #("i12842"
+ "i12843"
+ "i12844"))
+ #(ribcage () () ())
+ #(ribcage
+ #(x)
+ #((top))
+ #("i12839")))
+ (hygiene guile))
+ '#(syntax-object
+ t
+ ((top)
+ #(ribcage
+ #(k e1 e2)
+ #((top)
+ (top)
+ (top))
+ #("i12867"
+ "i12868"
+ "i12869"))
+ #(ribcage () () ())
+ #(ribcage
+ #(f
+ clause
+ clauses)
+ #((top)
+ (top)
+ (top))
+ #("i12852"
+ "i12853"
+ "i12854"))
+ #(ribcage
+ #(e m1 m2)
+ #((top)
+ (top)
+ (top))
+ #("i12842"
+ "i12843"
+ "i12844"))
+ #(ribcage () () ())
+ #(ribcage
+ #(x)
+ #((top))
+ #("i12839")))
+ (hygiene guile))
+ (list '#(syntax-object
+ quote
+ ((top)
+ #(ribcage
+ #(k e1 e2)
+ #((top)
+ (top)
+ (top))
+ #("i12867"
+ "i12868"
+ "i12869"))
+ #(ribcage
+ ()
+ ()
+ ())
+ #(ribcage
+ #(f
+ clause
+ clauses)
+ #((top)
+ (top)
+ (top))
+ #("i12852"
+ "i12853"
+ "i12854"))
+ #(ribcage
+ #(e m1 m2)
+ #((top)
+ (top)
+ (top))
+ #("i12842"
+ "i12843"
+ "i12844"))
+ #(ribcage
+ ()
+ ()
+ ())
+ #(ribcage
+ #(x)
+ #((top))
+
#("i12839")))
+ (hygiene
+ guile))
+ #{k 12870}#))
+ (cons '#(syntax-object
+ begin
+ ((top)
+ #(ribcage
+ #(k e1 e2)
+ #((top)
+ (top)
+ (top))
+ #("i12867"
+ "i12868"
+ "i12869"))
+ #(ribcage () () ())
+ #(ribcage
+ #(f
+ clause
+ clauses)
+ #((top)
+ (top)
+ (top))
+ #("i12852"
+ "i12853"
+ "i12854"))
+ #(ribcage
+ #(e m1 m2)
+ #((top)
+ (top)
+ (top))
+ #("i12842"
+ "i12843"
+ "i12844"))
+ #(ribcage () () ())
+ #(ribcage
+ #(x)
+ #((top))
+ #("i12839")))
+ (hygiene guile))
+ (cons #{e1 12871}#
+ #{e2 12872}#))))
+ #{tmp 12866}#)
+ (syntax-violation
+ 'case
+ "bad clause"
+ #{x 12838}#
+ #{clause 12856}#)))))
+ (let ((#{tmp 12878}#
+ (#{f 12855}#
+ (car #{clauses 12857}#)
+ (cdr #{clauses 12857}#))))
+ (let ((#{tmp 12882}#
+ ($sc-dispatch
+ #{clause 12856}#
+ '(each-any any . each-any))))
+ (if #{tmp 12882}#
+ (@apply
+ (lambda (#{k 12886}#
+ #{e1 12887}#
+ #{e2 12888}#)
+ (list '#(syntax-object
+ if
+ ((top)
+ #(ribcage
+ #(k e1 e2)
+ #((top) (top) (top))
+ #("i12883"
+ "i12884"
+ "i12885"))
+ #(ribcage () () ())
+ #(ribcage
+ #(rest)
+ #((top))
+ #("i12879"))
+ #(ribcage () () ())
+ #(ribcage
+ #(f clause clauses)
+ #((top) (top) (top))
+ #("i12852"
+ "i12853"
+ "i12854"))
+ #(ribcage
+ #(e m1 m2)
+ #((top) (top) (top))
+ #("i12842"
+ "i12843"
+ "i12844"))
+ #(ribcage () () ())
+ #(ribcage
+ #(x)
+ #((top))
+ #("i12839")))
+ (hygiene guile))
(list '#(syntax-object
- if
+ memv
((top)
#(ribcage
#(k e1 e2)
#((top) (top) (top))
- #("i4773"
- "i4774"
- "i4775"))
+ #("i12883"
+ "i12884"
+ "i12885"))
+ #(ribcage () () ())
+ #(ribcage
+ #(rest)
+ #((top))
+ #("i12879"))
#(ribcage () () ())
#(ribcage
#(f clause clauses)
#((top) (top) (top))
- #("i4758"
- "i4759"
- "i4760"))
+ #("i12852"
+ "i12853"
+ "i12854"))
#(ribcage
#(e m1 m2)
#((top) (top) (top))
- #("i4748"
- "i4749"
- "i4750"))
+ #("i12842"
+ "i12843"
+ "i12844"))
#(ribcage () () ())
#(ribcage
#(x)
#((top))
- #("i4745")))
+ #("i12839")))
(hygiene guile))
- (list '#(syntax-object
- memv
- ((top)
- #(ribcage
- #(k e1 e2)
- #((top)
- (top)
- (top))
- #("i4773"
- "i4774"
- "i4775"))
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(f
- clause
- clauses)
- #((top)
- (top)
- (top))
- #("i4758"
- "i4759"
- "i4760"))
- #(ribcage
- #(e m1 m2)
- #((top)
- (top)
- (top))
- #("i4748"
- "i4749"
- "i4750"))
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(x)
- #((top))
- #("i4745")))
- (hygiene guile))
- '#(syntax-object
- t
- ((top)
- #(ribcage
- #(k e1 e2)
- #((top)
- (top)
- (top))
- #("i4773"
- "i4774"
- "i4775"))
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(f
- clause
- clauses)
- #((top)
- (top)
- (top))
- #("i4758"
- "i4759"
- "i4760"))
- #(ribcage
- #(e m1 m2)
- #((top)
- (top)
- (top))
- #("i4748"
- "i4749"
- "i4750"))
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(x)
- #((top))
- #("i4745")))
- (hygiene guile))
- (list
'#(syntax-object
- quote
- ((top)
- #(ribcage
- #(k
- e1
- e2)
- #((top)
- (top)
- (top))
-
#("i4773"
-
"i4774"
-
"i4775"))
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(f
- clause
-
clauses)
- #((top)
- (top)
- (top))
-
#("i4758"
-
"i4759"
-
"i4760"))
- #(ribcage
- #(e
- m1
- m2)
- #((top)
- (top)
- (top))
-
#("i4748"
-
"i4749"
-
"i4750"))
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(x)
- #((top))
-
#("i4745")))
- (hygiene
- guile))
- #{k 4776}#))
- (cons '#(syntax-object
- begin
- ((top)
- #(ribcage
- #(k e1 e2)
- #((top)
- (top)
- (top))
- #("i4773"
- "i4774"
- "i4775"))
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(f
- clause
- clauses)
- #((top)
- (top)
- (top))
- #("i4758"
- "i4759"
- "i4760"))
- #(ribcage
- #(e m1 m2)
- #((top)
- (top)
- (top))
- #("i4748"
- "i4749"
- "i4750"))
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(x)
- #((top))
- #("i4745")))
- (hygiene guile))
- (cons #{e1 4777}#
- #{e2
4778}#))))
- #{tmp 4772}#)
- (let ((#{_ 4782}# #{tmp 4765}#))
- (syntax-violation
- 'case
- "bad clause"
- #{x 4744}#
- #{clause 4762}#)))))))
- (let ((#{tmp 4784}#
- (#{f 4761}#
- (car #{clauses 4763}#)
- (cdr #{clauses 4763}#))))
- (let ((#{rest 4786}# #{tmp 4784}#))
- (let ((#{tmp 4787}# #{clause 4762}#))
- (let ((#{tmp 4788}#
- ($sc-dispatch
- #{tmp 4787}#
- '(each-any any . each-any))))
- (if #{tmp 4788}#
- (@apply
- (lambda (#{k 4792}#
- #{e1 4793}#
- #{e2 4794}#)
- (list '#(syntax-object
- if
+ '#(syntax-object
+ t
((top)
#(ribcage
#(k e1 e2)
#((top) (top) (top))
- #("i4789"
- "i4790"
- "i4791"))
+ #("i12883"
+ "i12884"
+ "i12885"))
#(ribcage () () ())
#(ribcage
#(rest)
#((top))
- #("i4785"))
+ #("i12879"))
#(ribcage () () ())
#(ribcage
#(f clause clauses)
#((top) (top) (top))
- #("i4758"
- "i4759"
- "i4760"))
+ #("i12852"
+ "i12853"
+ "i12854"))
#(ribcage
#(e m1 m2)
#((top) (top) (top))
- #("i4748"
- "i4749"
- "i4750"))
+ #("i12842"
+ "i12843"
+ "i12844"))
#(ribcage () () ())
#(ribcage
#(x)
#((top))
- #("i4745")))
+ #("i12839")))
(hygiene guile))
(list '#(syntax-object
- memv
- ((top)
- #(ribcage
- #(k e1 e2)
- #((top)
- (top)
- (top))
- #("i4789"
- "i4790"
- "i4791"))
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(rest)
- #((top))
- #("i4785"))
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(f
- clause
- clauses)
- #((top)
- (top)
- (top))
- #("i4758"
- "i4759"
- "i4760"))
- #(ribcage
- #(e m1 m2)
- #((top)
- (top)
- (top))
- #("i4748"
- "i4749"
- "i4750"))
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(x)
- #((top))
- #("i4745")))
- (hygiene guile))
- '#(syntax-object
- t
- ((top)
- #(ribcage
- #(k e1 e2)
- #((top)
- (top)
- (top))
- #("i4789"
- "i4790"
- "i4791"))
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(rest)
- #((top))
- #("i4785"))
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(f
- clause
- clauses)
- #((top)
- (top)
- (top))
- #("i4758"
- "i4759"
- "i4760"))
- #(ribcage
- #(e m1 m2)
- #((top)
- (top)
- (top))
- #("i4748"
- "i4749"
- "i4750"))
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(x)
- #((top))
- #("i4745")))
- (hygiene guile))
- (list
'#(syntax-object
- quote
- ((top)
- #(ribcage
- #(k
- e1
- e2)
- #((top)
- (top)
- (top))
-
#("i4789"
-
"i4790"
-
"i4791"))
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(rest)
- #((top))
-
#("i4785"))
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(f
- clause
-
clauses)
- #((top)
- (top)
- (top))
-
#("i4758"
-
"i4759"
-
"i4760"))
- #(ribcage
- #(e
- m1
- m2)
- #((top)
- (top)
- (top))
-
#("i4748"
-
"i4749"
-
"i4750"))
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(x)
- #((top))
-
#("i4745")))
- (hygiene
- guile))
- #{k 4792}#))
- (cons '#(syntax-object
- begin
+ quote
((top)
#(ribcage
#(k e1 e2)
#((top)
(top)
(top))
- #("i4789"
- "i4790"
- "i4791"))
+ #("i12883"
+ "i12884"
+ "i12885"))
#(ribcage
()
()
@@ -16017,7 +19167,7 @@
#(ribcage
#(rest)
#((top))
- #("i4785"))
+ #("i12879"))
#(ribcage
()
()
@@ -16029,17 +19179,17 @@
#((top)
(top)
(top))
- #("i4758"
- "i4759"
- "i4760"))
+ #("i12852"
+ "i12853"
+ "i12854"))
#(ribcage
#(e m1 m2)
#((top)
(top)
(top))
- #("i4748"
- "i4749"
- "i4750"))
+ #("i12842"
+ "i12843"
+ "i12844"))
#(ribcage
()
()
@@ -16047,690 +19197,697 @@
#(ribcage
#(x)
#((top))
- #("i4745")))
+ #("i12839")))
(hygiene guile))
- (cons #{e1 4793}#
- #{e2 4794}#))
- #{rest 4786}#))
- #{tmp 4788}#)
- (let ((#{_ 4798}# #{tmp 4787}#))
- (syntax-violation
- 'case
- "bad clause"
- #{x 4744}#
- #{clause 4762}#)))))))))))
- (#{f 4761}# #{m1 4752}# #{m2 4753}#))))
- (let ((#{body 4757}# #{tmp 4755}#))
- (list '#(syntax-object
- let
- ((top)
- #(ribcage () () ())
- #(ribcage #(body) #((top)) #("i4756"))
- #(ribcage
- #(e m1 m2)
- #((top) (top) (top))
- #("i4748" "i4749" "i4750"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("i4745")))
- (hygiene guile))
- (list (list '#(syntax-object
- t
- ((top)
- #(ribcage () () ())
- #(ribcage
- #(body)
- #((top))
- #("i4756"))
- #(ribcage
- #(e m1 m2)
- #((top) (top) (top))
- #("i4748" "i4749" "i4750"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("i4745")))
- (hygiene guile))
- #{e 4751}#))
- #{body 4757}#))))
- #{tmp 4747}#)
- (syntax-violation
- #f
- "source expression failed to match any pattern"
- #{tmp 4746}#)))))))
+ #{k 12886}#))
+ (cons '#(syntax-object
+ begin
+ ((top)
+ #(ribcage
+ #(k e1 e2)
+ #((top) (top) (top))
+ #("i12883"
+ "i12884"
+ "i12885"))
+ #(ribcage () () ())
+ #(ribcage
+ #(rest)
+ #((top))
+ #("i12879"))
+ #(ribcage () () ())
+ #(ribcage
+ #(f clause clauses)
+ #((top) (top) (top))
+ #("i12852"
+ "i12853"
+ "i12854"))
+ #(ribcage
+ #(e m1 m2)
+ #((top) (top) (top))
+ #("i12842"
+ "i12843"
+ "i12844"))
+ #(ribcage () () ())
+ #(ribcage
+ #(x)
+ #((top))
+ #("i12839")))
+ (hygiene guile))
+ (cons #{e1 12887}#
+ #{e2 12888}#))
+ #{tmp 12878}#))
+ #{tmp 12882}#)
+ (syntax-violation
+ 'case
+ "bad clause"
+ #{x 12838}#
+ #{clause 12856}#))))))))
+ (#{f 12855}# #{m1 12846}# #{m2 12847}#))))
+ (list '#(syntax-object
+ let
+ ((top)
+ #(ribcage () () ())
+ #(ribcage #(body) #((top)) #("i12850"))
+ #(ribcage
+ #(e m1 m2)
+ #((top) (top) (top))
+ #("i12842" "i12843" "i12844"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i12839")))
+ (hygiene guile))
+ (list (list '#(syntax-object
+ t
+ ((top)
+ #(ribcage () () ())
+ #(ribcage #(body) #((top)) #("i12850"))
+ #(ribcage
+ #(e m1 m2)
+ #((top) (top) (top))
+ #("i12842" "i12843" "i12844"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i12839")))
+ (hygiene guile))
+ #{e 12845}#))
+ #{tmp 12849}#)))
+ #{tmp 12841}#)
+ (syntax-violation
+ #f
+ "source expression failed to match any pattern"
+ #{x 12838}#))))))
(define make-variable-transformer
- (lambda (#{proc 4799}#)
- (if (procedure? #{proc 4799}#)
+ (lambda (#{proc 12894}#)
+ (if (procedure? #{proc 12894}#)
(letrec*
- ((#{trans 4802}#
- (lambda (#{x 4803}#) (#{proc 4799}# #{x 4803}#))))
+ ((#{trans 12897}#
+ (lambda (#{x 12898}#)
+ (#{proc 12894}# #{x 12898}#))))
(begin
(set-procedure-property!
- #{trans 4802}#
+ #{trans 12897}#
'variable-transformer
#t)
- #{trans 4802}#))
+ #{trans 12897}#))
(error "variable transformer not a procedure"
- #{proc 4799}#))))
+ #{proc 12894}#))))
(define identifier-syntax
(make-syntax-transformer
'identifier-syntax
'macro
- (lambda (#{x 4805}#)
- (let ((#{tmp 4807}# #{x 4805}#))
- (let ((#{tmp 4808}#
- ($sc-dispatch #{tmp 4807}# '(_ any))))
- (if #{tmp 4808}#
- (@apply
- (lambda (#{e 4810}#)
- (list '#(syntax-object
- lambda
- ((top)
- #(ribcage #(e) #((top)) #("i4809"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("i4806")))
- (hygiene guile))
- '(#(syntax-object
- x
- ((top)
- #(ribcage #(e) #((top)) #("i4809"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("i4806")))
- (hygiene guile)))
- '#((#(syntax-object
- macro-type
- ((top)
- #(ribcage #(e) #((top)) #("i4809"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("i4806")))
- (hygiene guile))
- .
- #(syntax-object
- identifier-syntax
- ((top)
- #(ribcage #(e) #((top)) #("i4809"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("i4806")))
- (hygiene guile))))
- (list '#(syntax-object
- syntax-case
- ((top)
- #(ribcage #(e) #((top)) #("i4809"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("i4806")))
- (hygiene guile))
- '#(syntax-object
- x
- ((top)
- #(ribcage #(e) #((top)) #("i4809"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("i4806")))
- (hygiene guile))
- '()
- (list '#(syntax-object
- id
- ((top)
- #(ribcage #(e) #((top)) #("i4809"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("i4806")))
- (hygiene guile))
- '(#(syntax-object
- identifier?
- ((top)
- #(ribcage #(e) #((top)) #("i4809"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("i4806")))
- (hygiene guile))
- (#(syntax-object
- syntax
- ((top)
- #(ribcage #(e) #((top)) #("i4809"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("i4806")))
- (hygiene guile))
- #(syntax-object
- id
- ((top)
- #(ribcage #(e) #((top)) #("i4809"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("i4806")))
- (hygiene guile))))
- (list '#(syntax-object
- syntax
- ((top)
- #(ribcage #(e) #((top)) #("i4809"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("i4806")))
- (hygiene guile))
- #{e 4810}#))
- (list '(#(syntax-object
- _
- ((top)
- #(ribcage #(e) #((top)) #("i4809"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("i4806")))
- (hygiene guile))
- #(syntax-object
- x
- ((top)
- #(ribcage #(e) #((top)) #("i4809"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("i4806")))
- (hygiene guile))
- #(syntax-object
- ...
- ((top)
- #(ribcage #(e) #((top)) #("i4809"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("i4806")))
- (hygiene guile)))
- (list '#(syntax-object
- syntax
- ((top)
- #(ribcage #(e) #((top)) #("i4809"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("i4806")))
- (hygiene guile))
- (cons #{e 4810}#
- '(#(syntax-object
- x
- ((top)
- #(ribcage
- #(e)
- #((top))
- #("i4809"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("i4806")))
- (hygiene guile))
- #(syntax-object
- ...
- ((top)
- #(ribcage
- #(e)
- #((top))
- #("i4809"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("i4806")))
- (hygiene guile)))))))))
- #{tmp 4808}#)
- (let ((#{tmp 4811}#
- ($sc-dispatch
- #{tmp 4807}#
- '(_ (any any)
- ((#(free-id
- #(syntax-object
- set!
- ((top)
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("i4806")))
- (hygiene guile)))
- any
- any)
- any)))))
- (if (if #{tmp 4811}#
- (@apply
- (lambda (#{id 4817}#
- #{exp1 4818}#
- #{var 4819}#
- #{val 4820}#
- #{exp2 4821}#)
- (if (identifier? #{id 4817}#)
- (identifier? #{var 4819}#)
- #f))
- #{tmp 4811}#)
- #f)
- (@apply
- (lambda (#{id 4829}#
- #{exp1 4830}#
- #{var 4831}#
- #{val 4832}#
- #{exp2 4833}#)
- (list '#(syntax-object
- make-variable-transformer
- ((top)
- #(ribcage
- #(id exp1 var val exp2)
- #((top) (top) (top) (top) (top))
- #("i4824" "i4825" "i4826" "i4827" "i4828"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("i4806")))
- (hygiene guile))
- (list '#(syntax-object
- lambda
- ((top)
- #(ribcage
- #(id exp1 var val exp2)
- #((top) (top) (top) (top) (top))
- #("i4824"
- "i4825"
- "i4826"
- "i4827"
- "i4828"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("i4806")))
- (hygiene guile))
- '(#(syntax-object
- x
- ((top)
- #(ribcage
- #(id exp1 var val exp2)
- #((top) (top) (top) (top) (top))
- #("i4824"
- "i4825"
- "i4826"
- "i4827"
- "i4828"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("i4806")))
- (hygiene guile)))
- '#((#(syntax-object
- macro-type
- ((top)
- #(ribcage
- #(id exp1 var val exp2)
- #((top) (top) (top) (top) (top))
- #("i4824"
- "i4825"
- "i4826"
- "i4827"
- "i4828"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("i4806")))
- (hygiene guile))
- .
- #(syntax-object
- variable-transformer
- ((top)
- #(ribcage
- #(id exp1 var val exp2)
- #((top) (top) (top) (top) (top))
- #("i4824"
- "i4825"
- "i4826"
- "i4827"
- "i4828"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("i4806")))
- (hygiene guile))))
- (list '#(syntax-object
- syntax-case
- ((top)
- #(ribcage
- #(id exp1 var val exp2)
- #((top) (top) (top) (top) (top))
- #("i4824"
- "i4825"
- "i4826"
- "i4827"
- "i4828"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("i4806")))
- (hygiene guile))
- '#(syntax-object
- x
- ((top)
- #(ribcage
- #(id exp1 var val exp2)
- #((top) (top) (top) (top) (top))
- #("i4824"
- "i4825"
- "i4826"
- "i4827"
- "i4828"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("i4806")))
- (hygiene guile))
- '(#(syntax-object
- set!
- ((top)
- #(ribcage
- #(id exp1 var val exp2)
- #((top) (top) (top) (top) (top))
- #("i4824"
- "i4825"
- "i4826"
- "i4827"
- "i4828"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("i4806")))
- (hygiene guile)))
- (list (list '#(syntax-object
- set!
- ((top)
- #(ribcage
- #(id exp1 var val exp2)
- #((top)
- (top)
- (top)
- (top)
- (top))
- #("i4824"
- "i4825"
- "i4826"
- "i4827"
- "i4828"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("i4806")))
- (hygiene guile))
- #{var 4831}#
- #{val 4832}#)
- (list '#(syntax-object
- syntax
- ((top)
- #(ribcage
- #(id exp1 var val exp2)
- #((top)
- (top)
- (top)
- (top)
- (top))
- #("i4824"
- "i4825"
- "i4826"
- "i4827"
- "i4828"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("i4806")))
- (hygiene guile))
- #{exp2 4833}#))
- (list (cons #{id 4829}#
- '(#(syntax-object
- x
- ((top)
- #(ribcage
- #(id
- exp1
- var
- val
- exp2)
- #((top)
- (top)
- (top)
- (top)
- (top))
- #("i4824"
- "i4825"
- "i4826"
- "i4827"
- "i4828"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("i4806")))
- (hygiene guile))
- #(syntax-object
- ...
- ((top)
- #(ribcage
- #(id
- exp1
- var
- val
- exp2)
- #((top)
- (top)
- (top)
- (top)
- (top))
- #("i4824"
- "i4825"
- "i4826"
- "i4827"
- "i4828"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("i4806")))
- (hygiene guile))))
- (list '#(syntax-object
- syntax
- ((top)
- #(ribcage
- #(id exp1 var val exp2)
- #((top)
- (top)
- (top)
- (top)
- (top))
- #("i4824"
- "i4825"
- "i4826"
- "i4827"
- "i4828"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("i4806")))
- (hygiene guile))
- (cons #{exp1 4830}#
- '(#(syntax-object
- x
- ((top)
- #(ribcage
- #(id
- exp1
- var
- val
- exp2)
- #((top)
- (top)
- (top)
- (top)
- (top))
- #("i4824"
- "i4825"
- "i4826"
- "i4827"
- "i4828"))
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(x)
- #((top))
- #("i4806")))
- (hygiene guile))
- #(syntax-object
- ...
- ((top)
- #(ribcage
- #(id
- exp1
- var
- val
- exp2)
- #((top)
- (top)
- (top)
- (top)
- (top))
- #("i4824"
- "i4825"
- "i4826"
- "i4827"
- "i4828"))
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(x)
- #((top))
- #("i4806")))
- (hygiene
- guile))))))
- (list #{id 4829}#
- (list '#(syntax-object
- identifier?
- ((top)
- #(ribcage
- #(id exp1 var val exp2)
- #((top)
- (top)
- (top)
- (top)
- (top))
- #("i4824"
- "i4825"
- "i4826"
- "i4827"
- "i4828"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("i4806")))
- (hygiene guile))
- (list '#(syntax-object
- syntax
- ((top)
- #(ribcage
- #(id
- exp1
- var
- val
- exp2)
- #((top)
- (top)
- (top)
- (top)
- (top))
- #("i4824"
- "i4825"
- "i4826"
- "i4827"
- "i4828"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("i4806")))
- (hygiene guile))
- #{id 4829}#))
- (list '#(syntax-object
- syntax
- ((top)
- #(ribcage
- #(id exp1 var val exp2)
- #((top)
- (top)
- (top)
- (top)
- (top))
- #("i4824"
- "i4825"
- "i4826"
- "i4827"
- "i4828"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("i4806")))
- (hygiene guile))
- #{exp1 4830}#))))))
- #{tmp 4811}#)
- (syntax-violation
- #f
- "source expression failed to match any pattern"
- #{tmp 4807}#)))))))))
-
-(define define*
- (make-syntax-transformer
- 'define*
- 'macro
- (lambda (#{x 4834}#)
- (let ((#{tmp 4836}# #{x 4834}#))
- (let ((#{tmp 4837}#
- ($sc-dispatch
- #{tmp 4836}#
- '(_ (any . any) any . each-any))))
- (if #{tmp 4837}#
- (@apply
- (lambda (#{id 4842}#
- #{args 4843}#
- #{b0 4844}#
- #{b1 4845}#)
- (list '#(syntax-object
- define
- ((top)
- #(ribcage
- #(id args b0 b1)
- #((top) (top) (top) (top))
- #("i4838" "i4839" "i4840" "i4841"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("i4835")))
- (hygiene guile))
- #{id 4842}#
- (cons '#(syntax-object
- lambda*
- ((top)
- #(ribcage
- #(id args b0 b1)
- #((top) (top) (top) (top))
- #("i4838" "i4839" "i4840" "i4841"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("i4835")))
- (hygiene guile))
- (cons #{args 4843}#
- (cons #{b0 4844}# #{b1 4845}#)))))
- #{tmp 4837}#)
- (let ((#{tmp 4847}#
- ($sc-dispatch #{tmp 4836}# '(_ any any))))
- (if (if #{tmp 4847}#
- (@apply
- (lambda (#{id 4850}# #{val 4851}#)
- (identifier?
+ (lambda (#{x 12904}#)
+ (let ((#{tmp 12907}#
+ ($sc-dispatch #{x 12904}# '(_ any))))
+ (if #{tmp 12907}#
+ (@apply
+ (lambda (#{e 12909}#)
+ (list '#(syntax-object
+ lambda
+ ((top)
+ #(ribcage #(e) #((top)) #("i12908"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i12905")))
+ (hygiene guile))
+ '(#(syntax-object
+ x
+ ((top)
+ #(ribcage #(e) #((top)) #("i12908"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i12905")))
+ (hygiene guile)))
+ '#((#(syntax-object
+ macro-type
+ ((top)
+ #(ribcage #(e) #((top)) #("i12908"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i12905")))
+ (hygiene guile))
+ .
+ #(syntax-object
+ identifier-syntax
+ ((top)
+ #(ribcage #(e) #((top)) #("i12908"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i12905")))
+ (hygiene guile))))
+ (list '#(syntax-object
+ syntax-case
+ ((top)
+ #(ribcage #(e) #((top)) #("i12908"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i12905")))
+ (hygiene guile))
'#(syntax-object
x
((top)
- #(ribcage
- #(id val)
- #((top) (top))
- #("i4848" "i4849"))
+ #(ribcage #(e) #((top)) #("i12908"))
#(ribcage () () ())
- #(ribcage #(x) #((top)) #("i4835")))
- (hygiene guile))))
- #{tmp 4847}#)
- #f)
- (@apply
- (lambda (#{id 4854}# #{val 4855}#)
- (list '#(syntax-object
- define
+ #(ribcage #(x) #((top)) #("i12905")))
+ (hygiene guile))
+ '()
+ (list '#(syntax-object
+ id
+ ((top)
+ #(ribcage #(e) #((top)) #("i12908"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i12905")))
+ (hygiene guile))
+ '(#(syntax-object
+ identifier?
+ ((top)
+ #(ribcage #(e) #((top)) #("i12908"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i12905")))
+ (hygiene guile))
+ (#(syntax-object
+ syntax
+ ((top)
+ #(ribcage #(e) #((top)) #("i12908"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i12905")))
+ (hygiene guile))
+ #(syntax-object
+ id
+ ((top)
+ #(ribcage #(e) #((top)) #("i12908"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i12905")))
+ (hygiene guile))))
+ (list '#(syntax-object
+ syntax
+ ((top)
+ #(ribcage #(e) #((top)) #("i12908"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i12905")))
+ (hygiene guile))
+ #{e 12909}#))
+ (list '(#(syntax-object
+ _
+ ((top)
+ #(ribcage #(e) #((top)) #("i12908"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i12905")))
+ (hygiene guile))
+ #(syntax-object
+ x
+ ((top)
+ #(ribcage #(e) #((top)) #("i12908"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i12905")))
+ (hygiene guile))
+ #(syntax-object
+ ...
+ ((top)
+ #(ribcage #(e) #((top)) #("i12908"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i12905")))
+ (hygiene guile)))
+ (list '#(syntax-object
+ syntax
+ ((top)
+ #(ribcage #(e) #((top)) #("i12908"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i12905")))
+ (hygiene guile))
+ (cons #{e 12909}#
+ '(#(syntax-object
+ x
+ ((top)
+ #(ribcage
+ #(e)
+ #((top))
+ #("i12908"))
+ #(ribcage () () ())
+ #(ribcage
+ #(x)
+ #((top))
+ #("i12905")))
+ (hygiene guile))
+ #(syntax-object
+ ...
+ ((top)
+ #(ribcage
+ #(e)
+ #((top))
+ #("i12908"))
+ #(ribcage () () ())
+ #(ribcage
+ #(x)
+ #((top))
+ #("i12905")))
+ (hygiene guile)))))))))
+ #{tmp 12907}#)
+ (let ((#{tmp 12910}#
+ ($sc-dispatch
+ #{x 12904}#
+ '(_ (any any)
+ ((#(free-id
+ #(syntax-object
+ set!
+ ((top)
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i12905")))
+ (hygiene guile)))
+ any
+ any)
+ any)))))
+ (if (if #{tmp 12910}#
+ (@apply
+ (lambda (#{id 12916}#
+ #{exp1 12917}#
+ #{var 12918}#
+ #{val 12919}#
+ #{exp2 12920}#)
+ (if (identifier? #{id 12916}#)
+ (identifier? #{var 12918}#)
+ #f))
+ #{tmp 12910}#)
+ #f)
+ (@apply
+ (lambda (#{id 12928}#
+ #{exp1 12929}#
+ #{var 12930}#
+ #{val 12931}#
+ #{exp2 12932}#)
+ (list '#(syntax-object
+ make-variable-transformer
+ ((top)
+ #(ribcage
+ #(id exp1 var val exp2)
+ #((top) (top) (top) (top) (top))
+ #("i12923" "i12924" "i12925" "i12926" "i12927"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i12905")))
+ (hygiene guile))
+ (list '#(syntax-object
+ lambda
+ ((top)
+ #(ribcage
+ #(id exp1 var val exp2)
+ #((top) (top) (top) (top) (top))
+ #("i12923"
+ "i12924"
+ "i12925"
+ "i12926"
+ "i12927"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i12905")))
+ (hygiene guile))
+ '(#(syntax-object
+ x
+ ((top)
+ #(ribcage
+ #(id exp1 var val exp2)
+ #((top) (top) (top) (top) (top))
+ #("i12923"
+ "i12924"
+ "i12925"
+ "i12926"
+ "i12927"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i12905")))
+ (hygiene guile)))
+ '#((#(syntax-object
+ macro-type
+ ((top)
+ #(ribcage
+ #(id exp1 var val exp2)
+ #((top) (top) (top) (top) (top))
+ #("i12923"
+ "i12924"
+ "i12925"
+ "i12926"
+ "i12927"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i12905")))
+ (hygiene guile))
+ .
+ #(syntax-object
+ variable-transformer
+ ((top)
+ #(ribcage
+ #(id exp1 var val exp2)
+ #((top) (top) (top) (top) (top))
+ #("i12923"
+ "i12924"
+ "i12925"
+ "i12926"
+ "i12927"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i12905")))
+ (hygiene guile))))
+ (list '#(syntax-object
+ syntax-case
+ ((top)
+ #(ribcage
+ #(id exp1 var val exp2)
+ #((top) (top) (top) (top) (top))
+ #("i12923"
+ "i12924"
+ "i12925"
+ "i12926"
+ "i12927"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i12905")))
+ (hygiene guile))
+ '#(syntax-object
+ x
+ ((top)
+ #(ribcage
+ #(id exp1 var val exp2)
+ #((top) (top) (top) (top) (top))
+ #("i12923"
+ "i12924"
+ "i12925"
+ "i12926"
+ "i12927"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i12905")))
+ (hygiene guile))
+ '(#(syntax-object
+ set!
+ ((top)
+ #(ribcage
+ #(id exp1 var val exp2)
+ #((top) (top) (top) (top) (top))
+ #("i12923"
+ "i12924"
+ "i12925"
+ "i12926"
+ "i12927"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i12905")))
+ (hygiene guile)))
+ (list (list '#(syntax-object
+ set!
+ ((top)
+ #(ribcage
+ #(id exp1 var val exp2)
+ #((top)
+ (top)
+ (top)
+ (top)
+ (top))
+ #("i12923"
+ "i12924"
+ "i12925"
+ "i12926"
+ "i12927"))
+ #(ribcage () () ())
+ #(ribcage
+ #(x)
+ #((top))
+ #("i12905")))
+ (hygiene guile))
+ #{var 12930}#
+ #{val 12931}#)
+ (list '#(syntax-object
+ syntax
+ ((top)
+ #(ribcage
+ #(id exp1 var val exp2)
+ #((top)
+ (top)
+ (top)
+ (top)
+ (top))
+ #("i12923"
+ "i12924"
+ "i12925"
+ "i12926"
+ "i12927"))
+ #(ribcage () () ())
+ #(ribcage
+ #(x)
+ #((top))
+ #("i12905")))
+ (hygiene guile))
+ #{exp2 12932}#))
+ (list (cons #{id 12928}#
+ '(#(syntax-object
+ x
+ ((top)
+ #(ribcage
+ #(id exp1 var val exp2)
+ #((top)
+ (top)
+ (top)
+ (top)
+ (top))
+ #("i12923"
+ "i12924"
+ "i12925"
+ "i12926"
+ "i12927"))
+ #(ribcage () () ())
+ #(ribcage
+ #(x)
+ #((top))
+ #("i12905")))
+ (hygiene guile))
+ #(syntax-object
+ ...
+ ((top)
+ #(ribcage
+ #(id exp1 var val exp2)
+ #((top)
+ (top)
+ (top)
+ (top)
+ (top))
+ #("i12923"
+ "i12924"
+ "i12925"
+ "i12926"
+ "i12927"))
+ #(ribcage () () ())
+ #(ribcage
+ #(x)
+ #((top))
+ #("i12905")))
+ (hygiene guile))))
+ (list '#(syntax-object
+ syntax
+ ((top)
+ #(ribcage
+ #(id exp1 var val exp2)
+ #((top)
+ (top)
+ (top)
+ (top)
+ (top))
+ #("i12923"
+ "i12924"
+ "i12925"
+ "i12926"
+ "i12927"))
+ #(ribcage () () ())
+ #(ribcage
+ #(x)
+ #((top))
+ #("i12905")))
+ (hygiene guile))
+ (cons #{exp1 12929}#
+ '(#(syntax-object
+ x
+ ((top)
+ #(ribcage
+ #(id
+ exp1
+ var
+ val
+ exp2)
+ #((top)
+ (top)
+ (top)
+ (top)
+ (top))
+ #("i12923"
+ "i12924"
+ "i12925"
+ "i12926"
+ "i12927"))
+ #(ribcage () () ())
+ #(ribcage
+ #(x)
+ #((top))
+ #("i12905")))
+ (hygiene guile))
+ #(syntax-object
+ ...
+ ((top)
+ #(ribcage
+ #(id
+ exp1
+ var
+ val
+ exp2)
+ #((top)
+ (top)
+ (top)
+ (top)
+ (top))
+ #("i12923"
+ "i12924"
+ "i12925"
+ "i12926"
+ "i12927"))
+ #(ribcage () () ())
+ #(ribcage
+ #(x)
+ #((top))
+ #("i12905")))
+ (hygiene guile))))))
+ (list #{id 12928}#
+ (list '#(syntax-object
+ identifier?
+ ((top)
+ #(ribcage
+ #(id exp1 var val exp2)
+ #((top)
+ (top)
+ (top)
+ (top)
+ (top))
+ #("i12923"
+ "i12924"
+ "i12925"
+ "i12926"
+ "i12927"))
+ #(ribcage () () ())
+ #(ribcage
+ #(x)
+ #((top))
+ #("i12905")))
+ (hygiene guile))
+ (list '#(syntax-object
+ syntax
+ ((top)
+ #(ribcage
+ #(id
+ exp1
+ var
+ val
+ exp2)
+ #((top)
+ (top)
+ (top)
+ (top)
+ (top))
+ #("i12923"
+ "i12924"
+ "i12925"
+ "i12926"
+ "i12927"))
+ #(ribcage () () ())
+ #(ribcage
+ #(x)
+ #((top))
+ #("i12905")))
+ (hygiene guile))
+ #{id 12928}#))
+ (list '#(syntax-object
+ syntax
+ ((top)
+ #(ribcage
+ #(id exp1 var val exp2)
+ #((top)
+ (top)
+ (top)
+ (top)
+ (top))
+ #("i12923"
+ "i12924"
+ "i12925"
+ "i12926"
+ "i12927"))
+ #(ribcage () () ())
+ #(ribcage
+ #(x)
+ #((top))
+ #("i12905")))
+ (hygiene guile))
+ #{exp1 12929}#))))))
+ #{tmp 12910}#)
+ (syntax-violation
+ #f
+ "source expression failed to match any pattern"
+ #{x 12904}#))))))))
+
+(define define*
+ (make-syntax-transformer
+ 'define*
+ 'macro
+ (lambda (#{x 12933}#)
+ (let ((#{tmp 12936}#
+ ($sc-dispatch
+ #{x 12933}#
+ '(_ (any . any) any . each-any))))
+ (if #{tmp 12936}#
+ (@apply
+ (lambda (#{id 12941}#
+ #{args 12942}#
+ #{b0 12943}#
+ #{b1 12944}#)
+ (list '#(syntax-object
+ define
+ ((top)
+ #(ribcage
+ #(id args b0 b1)
+ #((top) (top) (top) (top))
+ #("i12937" "i12938" "i12939" "i12940"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i12934")))
+ (hygiene guile))
+ #{id 12941}#
+ (cons '#(syntax-object
+ lambda*
((top)
#(ribcage
- #(id val)
- #((top) (top))
- #("i4852" "i4853"))
+ #(id args b0 b1)
+ #((top) (top) (top) (top))
+ #("i12937" "i12938" "i12939" "i12940"))
#(ribcage () () ())
- #(ribcage #(x) #((top)) #("i4835")))
+ #(ribcage #(x) #((top)) #("i12934")))
(hygiene guile))
- #{id 4854}#
- #{val 4855}#))
- #{tmp 4847}#)
- (syntax-violation
- #f
- "source expression failed to match any pattern"
- #{tmp 4836}#)))))))))
+ (cons #{args 12942}#
+ (cons #{b0 12943}# #{b1 12944}#)))))
+ #{tmp 12936}#)
+ (let ((#{tmp 12946}#
+ ($sc-dispatch #{x 12933}# '(_ any any))))
+ (if (if #{tmp 12946}#
+ (@apply
+ (lambda (#{id 12949}# #{val 12950}#)
+ (identifier?
+ '#(syntax-object
+ x
+ ((top)
+ #(ribcage
+ #(id val)
+ #((top) (top))
+ #("i12947" "i12948"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i12934")))
+ (hygiene guile))))
+ #{tmp 12946}#)
+ #f)
+ (@apply
+ (lambda (#{id 12953}# #{val 12954}#)
+ (list '#(syntax-object
+ define
+ ((top)
+ #(ribcage
+ #(id val)
+ #((top) (top))
+ #("i12951" "i12952"))
+ #(ribcage () () ())
+ #(ribcage #(x) #((top)) #("i12934")))
+ (hygiene guile))
+ #{id 12953}#
+ #{val 12954}#))
+ #{tmp 12946}#)
+ (syntax-violation
+ #f
+ "source expression failed to match any pattern"
+ #{x 12933}#))))))))
diff --git a/module/ice-9/psyntax.scm b/module/ice-9/psyntax.scm
index 292d6e2..1717ba5 100644
--- a/module/ice-9/psyntax.scm
+++ b/module/ice-9/psyntax.scm
@@ -272,9 +272,8 @@
(lambda (x mod)
(primitive-eval x)))
- (define-syntax gensym-hook
- (syntax-rules ()
- ((_) (gensym))))
+ (define-syntax-rule (gensym-hook)
+ (gensym))
(define put-global-definition-hook
(lambda (symbol type val)
@@ -451,9 +450,8 @@
;; FIXME: use a faster gensym
- (define-syntax build-lexical-var
- (syntax-rules ()
- ((_ src id) (gensym (string-append (symbol->string id) " ")))))
+ (define-syntax-rule (build-lexical-var src id)
+ (gensym (string-append (symbol->string id) " ")))
(define-structure (syntax-object expression wrap module))
@@ -470,11 +468,9 @@
#f)))
(else #f))))
- (define-syntax arg-check
- (syntax-rules ()
- ((_ pred? e who)
- (let ((x e))
- (if (not (pred? x)) (syntax-violation who "invalid argument" x))))))
+ (define-syntax-rule (arg-check pred? e who)
+ (let ((x e))
+ (if (not (pred? x)) (syntax-violation who "invalid argument" x))))
;; compile-time environments
@@ -537,12 +533,10 @@
((_ type value) (cons type value))
((_ 'type) '(type))
((_ type) (cons type '()))))
- (define-syntax binding-type
- (syntax-rules ()
- ((_ x) (car x))))
- (define-syntax binding-value
- (syntax-rules ()
- ((_ x) (cdr x))))
+ (define-syntax-rule (binding-type x)
+ (car x))
+ (define-syntax-rule (binding-value x)
+ (cdr x))
(define-syntax null-env (identifier-syntax '()))
@@ -607,13 +601,11 @@
((syntax-object? x) (symbol? (syntax-object-expression x)))
(else #f))))
- (define-syntax id-sym-name
- (syntax-rules ()
- ((_ e)
- (let ((x e))
- (if (syntax-object? x)
- (syntax-object-expression x)
- x)))))
+ (define-syntax-rule (id-sym-name e)
+ (let ((x e))
+ (if (syntax-object? x)
+ (syntax-object-expression x)
+ x)))
(define id-sym-name&marks
(lambda (x w)
@@ -635,12 +627,11 @@
(define-syntax wrap-subst (identifier-syntax cdr))
(define-syntax subst-rename? (identifier-syntax vector?))
- (define-syntax rename-old (syntax-rules () ((_ x) (vector-ref x 0))))
- (define-syntax rename-new (syntax-rules () ((_ x) (vector-ref x 1))))
- (define-syntax rename-marks (syntax-rules () ((_ x) (vector-ref x 2))))
- (define-syntax make-rename
- (syntax-rules ()
- ((_ old new marks) (vector old new marks))))
+ (define-syntax-rule (rename-old x) (vector-ref x 0))
+ (define-syntax-rule (rename-new x) (vector-ref x 1))
+ (define-syntax-rule (rename-marks x) (vector-ref x 2))
+ (define-syntax-rule (make-rename old new marks)
+ (vector old new marks))
;; labels must be comparable with "eq?", have read-write invariance,
;; and distinct from symbols.
@@ -659,9 +650,8 @@
(define-syntax top-wrap (identifier-syntax '((top))))
- (define-syntax top-marked?
- (syntax-rules ()
- ((_ w) (memq 'top (wrap-marks w)))))
+ (define-syntax-rule (top-marked? w)
+ (memq 'top (wrap-marks w)))
;; Marks must be comparable with "eq?" and distinct from pairs and
;; the symbol top. We do not use integers so that marks will remain
@@ -674,15 +664,13 @@
(make-wrap (cons the-anti-mark (wrap-marks w))
(cons 'shift (wrap-subst w)))))
- (define-syntax new-mark
- (syntax-rules ()
- ((_) (gensym "m"))))
+ (define-syntax-rule (new-mark)
+ (gensym "m"))
;; make-empty-ribcage and extend-ribcage maintain list-based ribcages for
;; internal definitions, in which the ribcages are built incrementally
- (define-syntax make-empty-ribcage
- (syntax-rules ()
- ((_) (make-ribcage '() '() '()))))
+ (define-syntax-rule (make-empty-ribcage)
+ (make-ribcage '() '() '()))
(define extend-ribcage!
;; must receive ids with complete wraps
@@ -751,10 +739,9 @@
(define id-var-name
(lambda (id w)
- (define-syntax first
- (syntax-rules ()
- ;; Rely on Guile's multiple-values truncation.
- ((_ e) e)))
+ (define-syntax-rule (first e)
+ ;; Rely on Guile's multiple-values truncation.
+ e)
(define search
(lambda (sym subst marks)
(if (null? subst)
@@ -2686,6 +2673,20 @@
((dummy . pattern) #'template)
...))))))
+(define-syntax define-syntax-rule
+ (lambda (x)
+ (syntax-case x ()
+ ((_ (name . pattern) template)
+ #'(define-syntax name
+ (syntax-rules ()
+ ((_ . pattern) template))))
+ ((_ (name . pattern) docstring template)
+ (string? (syntax->datum #'docstring))
+ #'(define-syntax name
+ (syntax-rules ()
+ docstring
+ ((_ . pattern) template)))))))
+
(define-syntax let*
(lambda (x)
(syntax-case x ()
diff --git a/module/ice-9/receive.scm b/module/ice-9/receive.scm
index f4f4d81..c931b59 100644
--- a/module/ice-9/receive.scm
+++ b/module/ice-9/receive.scm
@@ -1,6 +1,6 @@
;;;; SRFI-8
-;;; Copyright (C) 2000, 2001, 2004, 2006, 2010 Free Software Foundation, Inc.
+;;; Copyright (C) 2000, 2001, 2004, 2006, 2010, 2011 Free Software Foundation,
Inc.
;;;
;;;; This library is free software; you can redistribute it and/or
;;;; modify it under the terms of the GNU Lesser General Public
@@ -17,14 +17,10 @@
;;;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
USA
(define-module (ice-9 receive)
- :export (receive)
- :no-backtrace
- )
+ #:export (receive))
-(define-syntax receive
- (syntax-rules ()
- ((receive vars vals . body)
- (call-with-values (lambda () vals)
- (lambda vars . body)))))
+(define-syntax-rule (receive vars vals . body)
+ (call-with-values (lambda () vals)
+ (lambda vars . body)))
(cond-expand-provide (current-module) '(srfi-8))
diff --git a/module/ice-9/threads.scm b/module/ice-9/threads.scm
index ee7ff26..047a733 100644
--- a/module/ice-9/threads.scm
+++ b/module/ice-9/threads.scm
@@ -1,4 +1,4 @@
-;;;; Copyright (C) 1996, 1998, 2001, 2002, 2003, 2006, 2010 Free Software
Foundation, Inc.
+;;;; Copyright (C) 1996, 1998, 2001, 2002, 2003, 2006, 2010, 2011 Free
Software Foundation, Inc.
;;;;
;;;; This library is free software; you can redistribute it and/or
;;;; modify it under the terms of the GNU Lesser General Public
@@ -51,12 +51,10 @@
;;; Macros first, so that the procedures expand correctly.
-(define-syntax begin-thread
- (syntax-rules ()
- ((_ e0 e1 ...)
- (call-with-new-thread
- (lambda () e0 e1 ...)
- %thread-handler))))
+(define-syntax-rule (begin-thread e0 e1 ...)
+ (call-with-new-thread
+ (lambda () e0 e1 ...)
+ %thread-handler))
(define-syntax parallel
(lambda (x)
@@ -67,35 +65,27 @@
...)
(values (touch tmp0) ...)))))))
-(define-syntax letpar
- (syntax-rules ()
- ((_ ((v e) ...) b0 b1 ...)
- (call-with-values
- (lambda () (parallel e ...))
- (lambda (v ...)
- b0 b1 ...)))))
-
-(define-syntax make-thread
- (syntax-rules ()
- ((_ proc arg ...)
- (call-with-new-thread
- (lambda () (proc arg ...))
- %thread-handler))))
-
-(define-syntax with-mutex
- (syntax-rules ()
- ((_ m e0 e1 ...)
- (let ((x m))
- (dynamic-wind
- (lambda () (lock-mutex x))
- (lambda () (begin e0 e1 ...))
- (lambda () (unlock-mutex x)))))))
-
-(define-syntax monitor
- (syntax-rules ()
- ((_ first rest ...)
- (with-mutex (make-mutex)
- first rest ...))))
+(define-syntax-rule (letpar ((v e) ...) b0 b1 ...)
+ (call-with-values
+ (lambda () (parallel e ...))
+ (lambda (v ...)
+ b0 b1 ...)))
+
+(define-syntax-rule (make-thread proc arg ...)
+ (call-with-new-thread
+ (lambda () (proc arg ...))
+ %thread-handler))
+
+(define-syntax-rule (with-mutex m e0 e1 ...)
+ (let ((x m))
+ (dynamic-wind
+ (lambda () (lock-mutex x))
+ (lambda () (begin e0 e1 ...))
+ (lambda () (unlock-mutex x)))))
+
+(define-syntax-rule (monitor first rest ...)
+ (with-mutex (make-mutex)
+ first rest ...))
(define (par-mapper mapper)
(lambda (proc . arglists)
diff --git a/module/ice-9/vlist.scm b/module/ice-9/vlist.scm
index d5e28d5..4b40b99 100644
--- a/module/ice-9/vlist.scm
+++ b/module/ice-9/vlist.scm
@@ -70,14 +70,12 @@
(fluid-set! f 2)
f))
-(define-syntax define-inline
+(define-syntax-rule (define-inline (name formals ...) body ...)
;; Work around the lack of an inliner.
- (syntax-rules ()
- ((_ (name formals ...) body ...)
- (define-syntax name
- (syntax-rules ()
- ((_ formals ...)
- (begin body ...)))))))
+ (define-syntax name
+ (syntax-rules ()
+ ((_ formals ...)
+ (begin body ...)))))
(define-inline (make-block base offset size hash-tab?)
;; Return a block (and block descriptor) of SIZE elements pointing to BASE
@@ -90,11 +88,9 @@
base offset size 0
(and hash-tab? (make-vector size #f))))
-(define-syntax define-block-accessor
- (syntax-rules ()
- ((_ name index)
- (define-inline (name block)
- (vector-ref block index)))))
+(define-syntax-rule (define-block-accessor name index)
+ (define-inline (name block)
+ (vector-ref block index)))
(define-block-accessor block-content 0)
(define-block-accessor block-base 1)
diff --git a/module/language/assembly/compile-bytecode.scm
b/module/language/assembly/compile-bytecode.scm
index 163ffcc..85805a5 100644
--- a/module/language/assembly/compile-bytecode.scm
+++ b/module/language/assembly/compile-bytecode.scm
@@ -28,16 +28,14 @@
#:export (compile-bytecode))
(define (compile-bytecode assembly env . opts)
- (define-syntax define-inline1
- (syntax-rules ()
- ((_ (proc arg) body body* ...)
- (define-syntax proc
- (syntax-rules ()
- ((_ (arg-expr (... ...)))
- (let ((x (arg-expr (... ...))))
- (proc x)))
- ((_ arg)
- (begin body body* ...)))))))
+ (define-syntax-rule (define-inline1 (proc arg) body body* ...)
+ (define-syntax proc
+ (syntax-rules ()
+ ((_ (arg-expr (... ...)))
+ (let ((x (arg-expr (... ...))))
+ (proc x)))
+ ((_ arg)
+ (begin body body* ...)))))
(define (fill-bytecode bv target-endianness)
(let ((pos 0))
diff --git a/module/language/ecmascript/compile-tree-il.scm
b/module/language/ecmascript/compile-tree-il.scm
index 7a96d07..0914f92 100644
--- a/module/language/ecmascript/compile-tree-il.scm
+++ b/module/language/ecmascript/compile-tree-il.scm
@@ -25,20 +25,14 @@
#:use-module (srfi srfi-1)
#:export (compile-tree-il))
-(define-syntax ->
- (syntax-rules ()
- ((_ (type arg ...))
- `(type ,arg ...))))
+(define-syntax-rule (-> (type arg ...))
+ `(type ,arg ...))
-(define-syntax @implv
- (syntax-rules ()
- ((_ sym)
- (-> (@ '(language ecmascript impl) 'sym)))))
+(define-syntax-rule (@implv sym)
+ (-> (@ '(language ecmascript impl) 'sym)))
-(define-syntax @impl
- (syntax-rules ()
- ((_ sym arg ...)
- (-> (call (@implv sym) arg ...)))))
+(define-syntax-rule (@impl sym arg ...)
+ (-> (call (@implv sym) arg ...)))
(define (empty-lexical-environment)
'())
@@ -67,16 +61,14 @@
;; for emacs:
;; (put 'pmatch/source 'scheme-indent-function 1)
-(define-syntax pmatch/source
- (syntax-rules ()
- ((_ x clause ...)
- (let ((x x))
- (let ((res (pmatch x
- clause ...)))
- (let ((loc (location x)))
- (if loc
- (set-source-properties! res (location x))))
- res)))))
+(define-syntax-rule (pmatch/source x clause ...)
+ (let ((x x))
+ (let ((res (pmatch x
+ clause ...)))
+ (let ((loc (location x)))
+ (if loc
+ (set-source-properties! res (location x))))
+ res)))
(define (comp x e)
(let ((l (location x)))
diff --git a/module/language/glil/compile-assembly.scm
b/module/language/glil/compile-assembly.scm
index a081822..c76e412 100644
--- a/module/language/glil/compile-assembly.scm
+++ b/module/language/glil/compile-assembly.scm
@@ -856,7 +856,7 @@
(vector-fold2 (lambda (x codes addr)
(receive (subcode addr) (ref-or-dump x i addr)
(values (cons subcode codes) addr)))
- x '() addr)
+ contents '() addr)
(receive (shape addr) (ref-or-dump (array-shape x) i addr)
(values (fold append
(let ((len (vector-length contents)))
diff --git a/module/language/tree-il.scm b/module/language/tree-il.scm
index 1264f32..cd6b01e 100644
--- a/module/language/tree-il.scm
+++ b/module/language/tree-il.scm
@@ -344,7 +344,7 @@
`(dynref ,(unparse-tree-il fluid)))
((<dynset> fluid exp)
- `(dynref ,(unparse-tree-il fluid) ,(unparse-tree-il exp)))
+ `(dynset ,(unparse-tree-il fluid) ,(unparse-tree-il exp)))
((<prompt> tag body handler)
`(prompt ,(unparse-tree-il tag) ,(unparse-tree-il body) ,(unparse-tree-il
handler)))
@@ -588,84 +588,82 @@ This is an implementation of `foldts' as described by
Andy Wingo in
(leaf tree result))))))
-(define-syntax make-tree-il-folder
- (syntax-rules ()
- ((_ seed ...)
- (lambda (tree down up seed ...)
- (define (fold-values proc exps seed ...)
- (if (null? exps)
- (values seed ...)
- (let-values (((seed ...) (proc (car exps) seed ...)))
- (fold-values proc (cdr exps) seed ...))))
- (let foldts ((tree tree) (seed seed) ...)
- (let*-values
- (((seed ...) (down tree seed ...))
- ((seed ...)
- (record-case tree
- ((<lexical-set> exp)
- (foldts exp seed ...))
- ((<module-set> exp)
- (foldts exp seed ...))
- ((<toplevel-set> exp)
- (foldts exp seed ...))
- ((<toplevel-define> exp)
- (foldts exp seed ...))
- ((<conditional> test consequent alternate)
- (let*-values (((seed ...) (foldts test seed ...))
- ((seed ...) (foldts consequent seed ...)))
- (foldts alternate seed ...)))
- ((<call> proc args)
- (let-values (((seed ...) (foldts proc seed ...)))
- (fold-values foldts args seed ...)))
- ((<primcall> name args)
- (fold-values foldts args seed ...))
- ((<seq> head tail)
- (let-values (((seed ...) (foldts head seed ...)))
- (foldts tail seed ...)))
- ((<lambda> body)
- (foldts body seed ...))
- ((<lambda-case> inits body alternate)
- (let-values (((seed ...) (fold-values foldts inits seed
...)))
- (if alternate
- (let-values (((seed ...) (foldts body seed ...)))
- (foldts alternate seed ...))
- (foldts body seed ...))))
- ((<let> vals body)
- (let*-values (((seed ...) (fold-values foldts vals seed
...)))
- (foldts body seed ...)))
- ((<letrec> vals body)
- (let*-values (((seed ...) (fold-values foldts vals seed
...)))
- (foldts body seed ...)))
- ((<fix> vals body)
- (let*-values (((seed ...) (fold-values foldts vals seed
...)))
- (foldts body seed ...)))
- ((<let-values> exp body)
- (let*-values (((seed ...) (foldts exp seed ...)))
- (foldts body seed ...)))
- ((<dynwind> body winder unwinder)
- (let*-values (((seed ...) (foldts body seed ...))
- ((seed ...) (foldts winder seed ...)))
- (foldts unwinder seed ...)))
- ((<dynlet> fluids vals body)
- (let*-values (((seed ...) (fold-values foldts fluids seed
...))
- ((seed ...) (fold-values foldts vals seed
...)))
- (foldts body seed ...)))
- ((<dynref> fluid)
- (foldts fluid seed ...))
- ((<dynset> fluid exp)
- (let*-values (((seed ...) (foldts fluid seed ...)))
- (foldts exp seed ...)))
- ((<prompt> tag body handler)
- (let*-values (((seed ...) (foldts tag seed ...))
- ((seed ...) (foldts body seed ...)))
- (foldts handler seed ...)))
- ((<abort> tag args tail)
- (let*-values (((seed ...) (foldts tag seed ...))
- ((seed ...) (fold-values foldts args seed
...)))
- (foldts tail seed ...)))
- (else
- (values seed ...)))))
- (up tree seed ...)))))))
+(define-syntax-rule (make-tree-il-folder seed ...)
+ (lambda (tree down up seed ...)
+ (define (fold-values proc exps seed ...)
+ (if (null? exps)
+ (values seed ...)
+ (let-values (((seed ...) (proc (car exps) seed ...)))
+ (fold-values proc (cdr exps) seed ...))))
+ (let foldts ((tree tree) (seed seed) ...)
+ (let*-values
+ (((seed ...) (down tree seed ...))
+ ((seed ...)
+ (record-case tree
+ ((<lexical-set> exp)
+ (foldts exp seed ...))
+ ((<module-set> exp)
+ (foldts exp seed ...))
+ ((<toplevel-set> exp)
+ (foldts exp seed ...))
+ ((<toplevel-define> exp)
+ (foldts exp seed ...))
+ ((<conditional> test consequent alternate)
+ (let*-values (((seed ...) (foldts test seed ...))
+ ((seed ...) (foldts consequent seed ...)))
+ (foldts alternate seed ...)))
+ ((<call> proc args)
+ (let-values (((seed ...) (foldts proc seed ...)))
+ (fold-values foldts args seed ...)))
+ ((<primcall> name args)
+ (fold-values foldts args seed ...))
+ ((<seq> head tail)
+ (let-values (((seed ...) (foldts head seed ...)))
+ (foldts tail seed ...)))
+ ((<lambda> body)
+ (foldts body seed ...))
+ ((<lambda-case> inits body alternate)
+ (let-values (((seed ...) (fold-values foldts inits seed ...)))
+ (if alternate
+ (let-values (((seed ...) (foldts body seed ...)))
+ (foldts alternate seed ...))
+ (foldts body seed ...))))
+ ((<let> vals body)
+ (let*-values (((seed ...) (fold-values foldts vals seed ...)))
+ (foldts body seed ...)))
+ ((<letrec> vals body)
+ (let*-values (((seed ...) (fold-values foldts vals seed ...)))
+ (foldts body seed ...)))
+ ((<fix> vals body)
+ (let*-values (((seed ...) (fold-values foldts vals seed ...)))
+ (foldts body seed ...)))
+ ((<let-values> exp body)
+ (let*-values (((seed ...) (foldts exp seed ...)))
+ (foldts body seed ...)))
+ ((<dynwind> body winder unwinder)
+ (let*-values (((seed ...) (foldts body seed ...))
+ ((seed ...) (foldts winder seed ...)))
+ (foldts unwinder seed ...)))
+ ((<dynlet> fluids vals body)
+ (let*-values (((seed ...) (fold-values foldts fluids seed ...))
+ ((seed ...) (fold-values foldts vals seed ...)))
+ (foldts body seed ...)))
+ ((<dynref> fluid)
+ (foldts fluid seed ...))
+ ((<dynset> fluid exp)
+ (let*-values (((seed ...) (foldts fluid seed ...)))
+ (foldts exp seed ...)))
+ ((<prompt> tag body handler)
+ (let*-values (((seed ...) (foldts tag seed ...))
+ ((seed ...) (foldts body seed ...)))
+ (foldts handler seed ...)))
+ ((<abort> tag args tail)
+ (let*-values (((seed ...) (foldts tag seed ...))
+ ((seed ...) (fold-values foldts args seed ...)))
+ (foldts tail seed ...)))
+ (else
+ (values seed ...)))))
+ (up tree seed ...)))))
(define (post-order! f x)
(let lp ((x x))
diff --git a/module/language/tree-il/analyze.scm
b/module/language/tree-il/analyze.scm
index 9e5c685..e578a05 100644
--- a/module/language/tree-il/analyze.scm
+++ b/module/language/tree-il/analyze.scm
@@ -23,6 +23,7 @@
#:use-module (srfi srfi-9)
#:use-module (srfi srfi-11)
#:use-module (ice-9 vlist)
+ #:use-module (ice-9 match)
#:use-module (system base syntax)
#:use-module (system base message)
#:use-module (system vm program)
@@ -869,25 +870,20 @@ accurate information is missing from a given `tree-il'
element."
;; the name of the variable being defined; otherwise return #f. This
;; assumes knowledge of the current implementation of `define-class' et al.
(define (toplevel-define-arg args)
- (and (pair? args) (pair? (cdr args)) (null? (cddr args))
- (record-case (car args)
- ((<const> exp)
- (and (symbol? exp) exp))
- (else #f))))
-
- (record-case proc
- ((<module-ref> mod public? name)
- (and (equal? mod '(oop goops))
- (not public?)
- (eq? name 'toplevel-define!)
- (toplevel-define-arg args)))
- ((<toplevel-ref> name)
+ (match args
+ ((($ <const> _ (and (? symbol?) exp)) _)
+ exp)
+ (_ #f)))
+
+ (match proc
+ (($ <module-ref> _ '(oop goops) 'toplevel-define! #f)
+ (toplevel-define-arg args))
+ (($ <toplevel-ref> _ 'toplevel-define!)
;; This may be the result of expanding one of the GOOPS macros within
;; `oop/goops.scm'.
- (and (eq? name 'toplevel-define!)
- (eq? env (resolve-module '(oop goops)))
+ (and (eq? env (resolve-module '(oop goops)))
(toplevel-define-arg args)))
- (else #f)))
+ (_ #f)))
(define unbound-variable-analysis
;; Report possibly unbound variables in the given tree.
@@ -1345,24 +1341,17 @@ accurate information is missing from a given `tree-il'
element."
min-count max-count))))
(else (error "computer bought the farm" state))))))
-;; Return the literal format pattern for X, or #f.
(define (const-fmt x)
- (record-case x
- ((<const> exp)
+ ;; Return the literal format pattern for X, or #f.
+ (match x
+ (($ <const> _ exp)
exp)
- ((<call> proc args)
+ (($ <call> _
+ (or ($ <toplevel-ref> _ '_) ($ <module-ref> _ '_))
+ (($ <const> _ (and (? string?) fmt))))
;; Gettexted literals, like `(_ "foo")'.
- (and (record-case proc
- ((<toplevel-ref> name) (eq? name '_))
- ((<module-ref> name) (eq? name '_))
- (else #f))
- (pmatch args
- ((,fmt)
- (record-case fmt
- ((<const> exp) exp)
- (else #f)))
- (else #f))))
- (else #f)))
+ fmt)
+ (_ #f)))
(define format-analysis
;; Report arity mismatches in the given tree.
@@ -1413,18 +1402,13 @@ accurate information is missing from a given `tree-il'
element."
(and (module? env)
(false-if-exception (module-ref env name))))
- (record-case x
- ((<call> proc args src)
- (let ((loc src))
- (record-case proc
- ((<toplevel-ref> name src)
- (let ((proc (resolve-toplevel name)))
- (and (or (eq? proc format)
- (eq? proc (@ (ice-9 format) format)))
- (check-format-args args (or src (find pair? locs))))))
- (else #t)))
- #t)
- (else #t))
+ (match x
+ (($ <call> src ($ <toplevel-ref> _ name) args)
+ (let ((proc (resolve-toplevel name)))
+ (and (or (eq? proc format)
+ (eq? proc (@ (ice-9 format) format)))
+ (check-format-args args (or src (find pair? locs))))))
+ (_ #t))
#t)
(lambda (x _ env locs)
diff --git a/module/language/tree-il/canonicalize.scm
b/module/language/tree-il/canonicalize.scm
new file mode 100644
index 0000000..27d7295
--- /dev/null
+++ b/module/language/tree-il/canonicalize.scm
@@ -0,0 +1,76 @@
+;;; Tree-il canonicalizer
+
+;; Copyright (C) 2011 Free Software Foundation, Inc.
+
+;;;; This library is free software; you can redistribute it and/or
+;;;; modify it under the terms of the GNU Lesser General Public
+;;;; License as published by the Free Software Foundation; either
+;;;; version 3 of the License, or (at your option) any later version.
+;;;;
+;;;; This library is distributed in the hope that it will be useful,
+;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+;;;; Lesser General Public License for more details.
+;;;;
+;;;; You should have received a copy of the GNU Lesser General Public
+;;;; License along with this library; if not, write to the Free Software
+;;;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
USA
+
+;;; Code:
+
+(define-module (language tree-il canonicalize)
+ #:use-module (language tree-il)
+ #:use-module (ice-9 match)
+ #:use-module (srfi srfi-1)
+ #:export (canonicalize!))
+
+(define (tree-il-any proc exp)
+ (tree-il-fold (lambda (exp res)
+ (or res (proc exp)))
+ (lambda (exp res)
+ (or res (proc exp)))
+ (lambda (exp res) res)
+ #f exp))
+
+(define (canonicalize! x)
+ (post-order!
+ (lambda (x)
+ (match x
+ (($ <let> src () () () body)
+ body)
+ (($ <letrec> src _ () () () body)
+ body)
+ (($ <fix> src () () () body)
+ body)
+ (($ <dynlet> src () () body)
+ body)
+ (($ <prompt> src tag body handler)
+ (define (escape-only? handler)
+ (match handler
+ (($ <lambda-case> _ (_ . _) _ _ _ _ (cont . _) body #f)
+ (tree-il-any (lambda (x)
+ (and (lexical-ref? x)
+ (eq? (lexical-ref-gensym x) cont)))
+ body))
+ (else #f)))
+ (define (thunk-application? x)
+ (match x
+ (($ <call> _
+ ($ <lambda> _ _ ($ <lambda-case> _ () #f #f #f))
+ ()) #t)
+ (_ #f)))
+ (define (make-thunk-application body)
+ (define thunk
+ (make-lambda #f '()
+ (make-lambda-case #f '() #f #f #f '() '() body #f)))
+ (make-call #f thunk '()))
+
+ ;; This code has a nasty job to do: to ensure that either the
+ ;; handler is escape-only, or the body is the application of a
+ ;; thunk. Sad but true.
+ (if (or (escape-only? handler)
+ (thunk-application? body))
+ #f
+ (make-prompt src tag (make-thunk-application body) handler)))
+ (_ #f)))
+ x))
diff --git a/module/language/tree-il/compile-glil.scm
b/module/language/tree-il/compile-glil.scm
index a22063b..acb3e93 100644
--- a/module/language/tree-il/compile-glil.scm
+++ b/module/language/tree-il/compile-glil.scm
@@ -27,6 +27,7 @@
#:use-module (system vm instruction)
#:use-module (language tree-il)
#:use-module (language tree-il optimize)
+ #:use-module (language tree-il canonicalize)
#:use-module (language tree-il analyze)
#:use-module ((srfi srfi-1) #:select (filter-map))
#:export (compile-glil))
@@ -64,6 +65,7 @@
(let* ((x (make-lambda (tree-il-src x) '()
(make-lambda-case #f '() #f #f #f '() '() x #f)))
(x (optimize! x e opts))
+ (x (canonicalize! x))
(allocation (analyze-lexicals x)))
(with-fluids ((*comp-module* e))
diff --git a/module/language/tree-il/inline.scm
b/module/language/tree-il/inline.scm
index 16af52a..5a2d9af 100644
--- a/module/language/tree-il/inline.scm
+++ b/module/language/tree-il/inline.scm
@@ -17,189 +17,9 @@
;;;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
USA
(define-module (language tree-il inline)
- #:use-module (system base pmatch)
- #:use-module (system base syntax)
- #:use-module (language tree-il)
#:export (inline!))
-;; Possible optimizations:
-;; * constant folding, propagation
-;; * procedure inlining
-;; * always when single call site
-;; * always for "trivial" procs
-;; * otherwise who knows
-;; * dead code elimination
-;; * degenerate case optimizations
-;; * "fixing letrec"
-
-(define (boolean-value x)
- (let ((src (tree-il-src x)))
- (record-case x
- ((<void>)
- (make-const src #t))
-
- ((<conditional> test consequent alternate)
- (record-case (boolean-value test)
- ((<const> exp)
- (case exp
- ((#t) (boolean-value consequent))
- ((#f) (boolean-value alternate))
- (else x)))
- (else x)))
-
- ((<primcall> src name args)
- (pmatch (cons name args)
- ((,member ,k ,l) (guard (and (memq member '(memq memv))
- (const? k)
- (list? (const-exp l))))
- (cond
- ((null? (const-exp l))
- (make-const #f #f))
- ((const? k)
- (make-const #f (->bool ((case member
- ((memq) memq)
- ((memv) memv)
- (else (error "what" member)))
- (const-exp k) (const-exp l)))))
- (else
- (let lp ((elts (const-exp l)))
- (let ((test (make-primcall
- #f
- (case member
- ((memq) 'eq?)
- ((memv) 'eqv?)
- (else (error "what" member)))
- (list k (make-const #f (car elts))))))
- (if (null? (cdr elts))
- test
- (make-conditional
- src
- test
- (make-const #f #t)
- (lp (cdr elts)))))))))
- (else x)))
-
- ((<lambda> meta body)
- (make-const src #t))
-
- ((<const> exp)
- (make-const src (not (not exp))))
-
- (else
- x))))
-
-;; This is a completely brain-dead optimization pass whose sole claim to
-;; fame is ((lambda () x)) => x.
(define (inline! x)
- (define (inline1 x)
- (record-case x
- ((<call> src proc args)
- (record-case proc
- ;; ((lambda (y ...) x) z ...) => (let ((y z) ...) x)
- ((<lambda> body)
- (let lp ((lcase body))
- (and lcase
- (record-case lcase
- ((<lambda-case> req opt rest kw inits gensyms body
alternate)
- (if (and (= (length gensyms) (length req) (length args)))
- (let ((x (make-let src req gensyms args body)))
- (or (inline1 x) x))
- (lp alternate)))))))
-
- (else #f)))
-
- ((<primcall> src name args)
- (pmatch (cons name args)
- ;; (call-with-values (lambda () foo) (lambda (a b . c) bar))
- ;; => (let-values (((a b . c) foo)) bar)
- ;;
- ;; Note that this is a singly-binding form of let-values. Also
- ;; note that Scheme's let-values expands into call-with-values,
- ;; then here we reduce it to tree-il's let-values.
- ((@call-with-values ,producer ,consumer)
- (guard (lambda? consumer)
- (lambda-case? (lambda-body consumer))
- (not (lambda-case-opt (lambda-body consumer)))
- (not (lambda-case-kw (lambda-body consumer)))
- (not (lambda-case-alternate (lambda-body consumer))))
- (make-let-values
- src
- (let ((x (make-call src producer '())))
- (or (inline1 x) x))
- (lambda-body consumer)))
- (else #f)))
-
- ((<conditional> test consequent alternate)
- (let ((btest (boolean-value test)))
- (or (record-case btest
- ((<const> exp)
- (case exp
- ((#t) consequent)
- ((#f) alternate)
- (else #f)))
- (else #f))
- (if (eq? test btest)
- x
- (make-conditional (conditional-src x)
- btest consequent alternate)))))
-
- ((<let> gensyms body)
- (if (null? gensyms) body x))
-
- ((<letrec> gensyms body)
- (if (null? gensyms) body x))
-
- ((<fix> gensyms body)
- (if (null? gensyms) body x))
-
- ((<lambda-case> req opt rest kw gensyms body alternate)
- (define (args-compatible? args gensyms)
- (let lp ((args args) (gensyms gensyms))
- (cond
- ((null? args) (null? gensyms))
- ((null? gensyms) #f)
- ((and (lexical-ref? (car args))
- (eq? (lexical-ref-gensym (car args)) (car gensyms)))
- (lp (cdr args) (cdr gensyms)))
- (else #f))))
-
- (and (not opt) (not kw) rest (not alternate)
- (record-case body
- ((<primcall> name args)
- ;; (lambda args (apply (lambda ...) args)) => (lambda ...)
- (and (eq? name '@apply)
- (pair? args)
- (lambda? (car args))
- (args-compatible? (cdr args) gensyms)
- (lambda-body (car args))))
- (else #f))))
-
- ;; Actually the opposite of inlining -- if the prompt cannot be proven to
- ;; be escape-only, ensure that its body is the call of a thunk.
- ((<prompt> src tag body handler)
- (define (escape-only? handler)
- (and (pair? (lambda-case-req handler))
- (let ((cont (car (lambda-case-gensyms handler))))
- (tree-il-fold (lambda (leaf escape-only?)
- (and escape-only?
- (not
- (and (lexical-ref? leaf)
- (eq? (lexical-ref-gensym leaf)
cont)))))
- (lambda (down escape-only?) escape-only?)
- (lambda (up escape-only?) escape-only?)
- #t
- (lambda-case-body handler)))))
- (define (make-thunk body)
- (make-lambda #f '() (make-lambda-case #f '() #f #f #f '() '() body
#f)))
-
- (if (or (and (call? body)
- (lambda? (call-proc body))
- (null? (call-args body)))
- (escape-only? handler))
- x
- (make-prompt src tag
- (make-call #f (make-thunk body) '())
- handler)))
-
- (else #f)))
- (post-order! inline1 x))
+ (issue-deprecation-warning
+ "`inline!' is deprecated. Use (language tree-il peval) instead.")
+ x)
diff --git a/module/language/tree-il/optimize.scm
b/module/language/tree-il/optimize.scm
index dbbc216..cb19905 100644
--- a/module/language/tree-il/optimize.scm
+++ b/module/language/tree-il/optimize.scm
@@ -1,6 +1,6 @@
;;; Tree-il optimizer
-;; Copyright (C) 2009 Free Software Foundation, Inc.
+;; Copyright (C) 2009, 2011 Free Software Foundation, Inc.
;;;; This library is free software; you can redistribute it and/or
;;;; modify it under the terms of the GNU Lesser General Public
@@ -21,12 +21,17 @@
(define-module (language tree-il optimize)
#:use-module (language tree-il)
#:use-module (language tree-il primitives)
- #:use-module (language tree-il inline)
+ #:use-module (language tree-il peval)
#:use-module (language tree-il fix-letrec)
+ #:use-module (ice-9 match)
#:export (optimize!))
(define (optimize! x env opts)
- (inline!
- (fix-letrec!
- (expand-primitives!
- (resolve-primitives! x env)))))
+ (let ((peval (match (memq #:partial-eval? opts)
+ ((#:partial-eval? #f _ ...)
+ ;; Disable partial evaluation.
+ (lambda (x e) x))
+ (_ peval))))
+ (fix-letrec!
+ (peval (expand-primitives! (resolve-primitives! x env))
+ env))))
diff --git a/module/language/tree-il/peval.scm
b/module/language/tree-il/peval.scm
new file mode 100644
index 0000000..6647920
--- /dev/null
+++ b/module/language/tree-il/peval.scm
@@ -0,0 +1,922 @@
+;;; Tree-IL partial evaluator
+
+;; Copyright (C) 2011 Free Software Foundation, Inc.
+
+;;;; This library is free software; you can redistribute it and/or
+;;;; modify it under the terms of the GNU Lesser General Public
+;;;; License as published by the Free Software Foundation; either
+;;;; version 3 of the License, or (at your option) any later version.
+;;;;
+;;;; This library is distributed in the hope that it will be useful,
+;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+;;;; Lesser General Public License for more details.
+;;;;
+;;;; You should have received a copy of the GNU Lesser General Public
+;;;; License along with this library; if not, write to the Free Software
+;;;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
USA
+
+(define-module (language tree-il peval)
+ #:use-module (language tree-il)
+ #:use-module (language tree-il primitives)
+ #:use-module (ice-9 vlist)
+ #:use-module (ice-9 match)
+ #:use-module (srfi srfi-1)
+ #:use-module (srfi srfi-9)
+ #:use-module (srfi srfi-11)
+ #:use-module (srfi srfi-26)
+ #:export (peval))
+
+;;;
+;;; Partial evaluation.
+;;;
+
+(define (fresh-gensyms syms)
+ (map (lambda (x) (gensym (string-append (symbol->string x) " ")))
+ syms))
+
+(define (alpha-rename exp)
+ "Alpha-rename EXP. For any lambda in EXP, generate new symbols and
+replace all lexical references to the former symbols with lexical
+references to the new symbols."
+ ;; XXX: This should be factorized somehow.
+ (let loop ((exp exp)
+ (mapping vlist-null)) ; maps old to new gensyms
+ (match exp
+ (($ <lambda-case> src req opt rest kw inits gensyms body alt)
+ ;; Create new symbols to replace GENSYMS and propagate them down
+ ;; in BODY and ALT.
+ (let* ((new (fresh-gensyms
+ (append req
+ (or opt '())
+ (if rest (list rest) '())
+ (match kw
+ ((aok? (_ name _) ...) name)
+ (_ '())))))
+ (mapping (fold vhash-consq mapping gensyms new)))
+ (make-lambda-case src req opt rest
+ (match kw
+ ((aok? (kw name old) ...)
+ (cons aok? (map list
+ kw
+ name
+ (take-right new (length old)))))
+ (_ #f))
+ (map (cut loop <> mapping) inits)
+ new
+ (loop body mapping)
+ (and alt (loop alt mapping)))))
+ (($ <lexical-ref> src name gensym)
+ ;; Possibly replace GENSYM by the new gensym defined in MAPPING.
+ (let ((val (vhash-assq gensym mapping)))
+ (if val
+ (make-lexical-ref src name (cdr val))
+ exp)))
+ (($ <lexical-set> src name gensym exp)
+ (let ((val (vhash-assq gensym mapping)))
+ (make-lexical-set src name (if val (cdr val) gensym)
+ (loop exp mapping))))
+ (($ <lambda> src meta body)
+ (make-lambda src meta (loop body mapping)))
+ (($ <let> src names gensyms vals body)
+ ;; As for `lambda-case' rename GENSYMS to avoid any collision.
+ (let* ((new (fresh-gensyms names))
+ (mapping (fold vhash-consq mapping gensyms new))
+ (vals (map (cut loop <> mapping) vals))
+ (body (loop body mapping)))
+ (make-let src names new vals body)))
+ (($ <letrec> src in-order? names gensyms vals body)
+ ;; Likewise.
+ (let* ((new (fresh-gensyms names))
+ (mapping (fold vhash-consq mapping gensyms new))
+ (vals (map (cut loop <> mapping) vals))
+ (body (loop body mapping)))
+ (make-letrec src in-order? names new vals body)))
+ (($ <fix> src names gensyms vals body)
+ ;; Likewise.
+ (let* ((new (fresh-gensyms names))
+ (mapping (fold vhash-consq mapping gensyms new))
+ (vals (map (cut loop <> mapping) vals))
+ (body (loop body mapping)))
+ (make-fix src names new vals body)))
+ (($ <let-values> src exp body)
+ (make-let-values src (loop exp mapping) (loop body mapping)))
+ (($ <const>)
+ exp)
+ (($ <void>)
+ exp)
+ (($ <toplevel-ref>)
+ exp)
+ (($ <module-ref>)
+ exp)
+ (($ <primitive-ref>)
+ exp)
+ (($ <toplevel-set> src name exp)
+ (make-toplevel-set src name (loop exp mapping)))
+ (($ <toplevel-define> src name exp)
+ (make-toplevel-define src name (loop exp mapping)))
+ (($ <module-set> src mod name public? exp)
+ (make-module-set src mod name public? (loop exp mapping)))
+ (($ <dynlet> src fluids vals body)
+ (make-dynlet src
+ (map (cut loop <> mapping) fluids)
+ (map (cut loop <> mapping) vals)
+ (loop body mapping)))
+ (($ <dynwind> src winder body unwinder)
+ (make-dynwind src
+ (loop winder mapping)
+ (loop body mapping)
+ (loop unwinder mapping)))
+ (($ <dynref> src fluid)
+ (make-dynref src (loop fluid mapping)))
+ (($ <dynset> src fluid exp)
+ (make-dynset src (loop fluid mapping) (loop exp mapping)))
+ (($ <conditional> src condition subsequent alternate)
+ (make-conditional src
+ (loop condition mapping)
+ (loop subsequent mapping)
+ (loop alternate mapping)))
+ (($ <call> src proc args)
+ (make-call src (loop proc mapping)
+ (map (cut loop <> mapping) args)))
+ (($ <primcall> src name args)
+ (make-primcall src name (map (cut loop <> mapping) args)))
+ (($ <seq> src head tail)
+ (make-seq src (loop head mapping) (loop tail mapping)))
+ (($ <prompt> src tag body handler)
+ (make-prompt src (loop tag mapping) (loop body mapping)
+ (loop handler mapping)))
+ (($ <abort> src tag args tail)
+ (make-abort src (loop tag mapping) (map (cut loop <> mapping) args)
+ (loop tail mapping))))))
+
+(define-syntax-rule (let/ec k e e* ...)
+ (let ((tag (make-prompt-tag)))
+ (call-with-prompt
+ tag
+ (lambda ()
+ (let ((k (lambda args (apply abort-to-prompt tag args))))
+ e e* ...))
+ (lambda (_ res) res))))
+
+(define (tree-il-any proc exp)
+ (let/ec k
+ (tree-il-fold (lambda (exp res)
+ (let ((res (proc exp)))
+ (if res (k res) #f)))
+ (lambda (exp res)
+ (let ((res (proc exp)))
+ (if res (k res) #f)))
+ (lambda (exp res) #f)
+ #f exp)))
+
+(define (vlist-any proc vlist)
+ (let ((len (vlist-length vlist)))
+ (let lp ((i 0))
+ (and (< i len)
+ (or (proc (vlist-ref vlist i))
+ (lp (1+ i)))))))
+
+(define-record-type <var>
+ (make-var name gensym refcount set?)
+ var?
+ (name var-name)
+ (gensym var-gensym)
+ (refcount var-refcount set-var-refcount!)
+ (set? var-set? set-var-set?!))
+
+(define* (build-var-table exp #:optional (table vlist-null))
+ (tree-il-fold
+ (lambda (exp res)
+ (match exp
+ (($ <lexical-ref> src name gensym)
+ (let ((var (vhash-assq gensym res)))
+ (if var
+ (begin
+ (set-var-refcount! (cdr var) (1+ (var-refcount (cdr var))))
+ res)
+ (vhash-consq gensym (make-var name gensym 1 #f) res))))
+ (_ res)))
+ (lambda (exp res)
+ (match exp
+ (($ <lexical-set> src name gensym exp)
+ (let ((var (vhash-assq gensym res)))
+ (if var
+ (begin
+ (set-var-set?! (cdr var) #t)
+ res)
+ (vhash-consq gensym (make-var name gensym 0 #t) res))))
+ (_ res)))
+ (lambda (exp res) res)
+ table exp))
+
+(define-record-type <counter>
+ (%make-counter effort size continuation recursive? data prev)
+ counter?
+ (effort effort-counter)
+ (size size-counter)
+ (continuation counter-continuation)
+ (recursive? counter-recursive?)
+ (data counter-data)
+ (prev counter-prev))
+
+(define (abort-counter c)
+ ((counter-continuation c)))
+
+(define (record-effort! c)
+ (let ((e (effort-counter c)))
+ (if (zero? (variable-ref e))
+ (abort-counter c)
+ (variable-set! e (1- (variable-ref e))))))
+
+(define (record-size! c)
+ (let ((s (size-counter c)))
+ (if (zero? (variable-ref s))
+ (abort-counter c)
+ (variable-set! s (1- (variable-ref s))))))
+
+(define (find-counter data counter)
+ (and counter
+ (if (eq? data (counter-data counter))
+ counter
+ (find-counter data (counter-prev counter)))))
+
+(define* (transfer! from to #:optional
+ (effort (variable-ref (effort-counter from)))
+ (size (variable-ref (size-counter from))))
+ (define (transfer-counter! from-v to-v amount)
+ (let* ((from-balance (variable-ref from-v))
+ (to-balance (variable-ref to-v))
+ (amount (min amount from-balance)))
+ (variable-set! from-v (- from-balance amount))
+ (variable-set! to-v (+ to-balance amount))))
+
+ (transfer-counter! (effort-counter from) (effort-counter to) effort)
+ (transfer-counter! (size-counter from) (size-counter to) size))
+
+(define (make-top-counter effort-limit size-limit continuation data)
+ (%make-counter (make-variable effort-limit)
+ (make-variable size-limit)
+ continuation
+ #t
+ data
+ #f))
+
+(define (make-nested-counter continuation data current)
+ (let ((c (%make-counter (make-variable 0)
+ (make-variable 0)
+ continuation
+ #f
+ data
+ current)))
+ (transfer! current c)
+ c))
+
+(define (make-recursive-counter effort-limit size-limit orig current)
+ (let ((c (%make-counter (make-variable 0)
+ (make-variable 0)
+ (counter-continuation orig)
+ #t
+ (counter-data orig)
+ current)))
+ (transfer! current c effort-limit size-limit)
+ c))
+
+(define (types-check? primitive-name args)
+ (case primitive-name
+ ((values) #t)
+ ((not pair? null? list? symbol? vector? struct?)
+ (= (length args) 1))
+ ((eq? eqv? equal?)
+ (= (length args) 2))
+ ;; FIXME: add more cases?
+ (else #f)))
+
+(define* (peval exp #:optional (cenv (current-module)) (env vlist-null)
+ #:key
+ (operator-size-limit 40)
+ (operand-size-limit 20)
+ (value-size-limit 10)
+ (effort-limit 500)
+ (recursive-effort-limit 100))
+ "Partially evaluate EXP in compilation environment CENV, with
+top-level bindings from ENV and return the resulting expression. Since
+it does not handle <fix> and <let-values>, it should be called before
+`fix-letrec'."
+
+ ;; This is a simple partial evaluator. It effectively performs
+ ;; constant folding, copy propagation, dead code elimination, and
+ ;; inlining, but not across top-level bindings---there should be a way
+ ;; to allow this (TODO).
+ ;;
+ ;; Unlike a full-blown partial evaluator, it does not emit definitions
+ ;; of specialized versions of lambdas encountered on its way. Also,
+ ;; it's not yet complete: it bails out for `prompt', etc.
+
+ (define local-toplevel-env
+ ;; The top-level environment of the module being compiled.
+ (let ()
+ (define (env-folder x env)
+ (match x
+ (($ <toplevel-define> _ name)
+ (vhash-consq name #t env))
+ (($ <seq> _ head tail)
+ (env-folder tail (env-folder head env)))
+ (_ env)))
+ (env-folder exp vlist-null)))
+
+ (define (local-toplevel? name)
+ (vhash-assq name local-toplevel-env))
+
+ (define store (build-var-table exp))
+
+ (define (assigned-lexical? sym)
+ (let ((v (vhash-assq sym store)))
+ (and v (var-set? (cdr v)))))
+
+ (define (lexical-refcount sym)
+ (let ((v (vhash-assq sym store)))
+ (if v (var-refcount (cdr v)) 0)))
+
+ (define (record-source-expression! orig new)
+ (set! store (vhash-consq new
+ (source-expression orig)
+ (build-var-table new store)))
+ new)
+
+ (define (source-expression new)
+ (let ((x (vhash-assq new store)))
+ (if x (cdr x) new)))
+
+ (define residual-lexical-references (make-hash-table))
+
+ (define (record-residual-lexical-reference! sym)
+ (hashq-set! residual-lexical-references sym #t))
+
+ (define (apply-primitive name args)
+ ;; todo: further optimize commutative primitives
+ (catch #t
+ (lambda ()
+ (call-with-values
+ (lambda ()
+ (apply (module-ref the-scm-module name) args))
+ (lambda results
+ (values #t results))))
+ (lambda _
+ (values #f '()))))
+
+ (define (inline-values exp src names gensyms body)
+ (let loop ((exp exp))
+ (match exp
+ ;; Some expression types are always singly-valued.
+ ((or ($ <const>)
+ ($ <void>)
+ ($ <lambda>)
+ ($ <lexical-ref>)
+ ($ <toplevel-ref>)
+ ($ <module-ref>)
+ ($ <primitive-ref>)
+ ($ <dynref>)
+ ($ <lexical-set>) ; FIXME: these set! expressions
+ ($ <toplevel-set>) ; could return zero values in
+ ($ <toplevel-define>) ; the future
+ ($ <module-set>) ;
+ ($ <dynset>)) ;
+ (and (= (length names) 1)
+ (make-let src names gensyms (list exp) body)))
+ (($ <primcall> src (? singly-valued-primitive? name))
+ (and (= (length names) 1)
+ (make-let src names gensyms (list exp) body)))
+
+ ;; Statically-known number of values.
+ (($ <primcall> src 'values vals)
+ (and (= (length names) (length vals))
+ (make-let src names gensyms vals body)))
+
+ ;; Not going to copy code into both branches.
+ (($ <conditional>) #f)
+
+ ;; Bail on other applications.
+ (($ <call>) #f)
+ (($ <primcall>) #f)
+
+ ;; Bail on prompt and abort.
+ (($ <prompt>) #f)
+ (($ <abort>) #f)
+
+ ;; Propagate to tail positions.
+ (($ <let> src names gensyms vals body)
+ (let ((body (loop body)))
+ (and body
+ (make-let src names gensyms vals body))))
+ (($ <letrec> src in-order? names gensyms vals body)
+ (let ((body (loop body)))
+ (and body
+ (make-letrec src in-order? names gensyms vals body))))
+ (($ <fix> src names gensyms vals body)
+ (let ((body (loop body)))
+ (and body
+ (make-fix src names gensyms vals body))))
+ (($ <let-values> src exp
+ ($ <lambda-case> src2 req opt rest kw inits gensyms body #f))
+ (let ((body (loop body)))
+ (and body
+ (make-let-values src exp
+ (make-lambda-case src2 req opt rest kw
+ inits gensyms body #f)))))
+ (($ <dynwind> src winder body unwinder)
+ (let ((body (loop body)))
+ (and body
+ (make-dynwind src winder body unwinder))))
+ (($ <dynlet> src fluids vals body)
+ (let ((body (loop body)))
+ (and body
+ (make-dynlet src fluids vals body))))
+ (($ <seq> src head tail)
+ (let ((tail (loop tail)))
+ (and tail (make-seq src head tail)))))))
+
+ (define (make-values src values)
+ (match values
+ ((single) single) ; 1 value
+ ((_ ...) ; 0, or 2 or more values
+ (make-primcall src 'values values))))
+
+ (define (constant-expression? x)
+ ;; Return true if X is constant---i.e., if it is known to have no
+ ;; effects, does not allocate storage for a mutable object, and does
+ ;; not access mutable data (like `car' or toplevel references).
+ (let loop ((x x))
+ (match x
+ (($ <void>) #t)
+ (($ <const>) #t)
+ (($ <lambda>) #t)
+ (($ <lambda-case> _ req opt rest kw inits _ body alternate)
+ (and (every loop inits) (loop body) (loop alternate)))
+ (($ <lexical-ref> _ _ gensym)
+ (not (assigned-lexical? gensym)))
+ (($ <primitive-ref>) #t)
+ (($ <conditional> _ condition subsequent alternate)
+ (and (loop condition) (loop subsequent) (loop alternate)))
+ (($ <primcall> _ name args)
+ (and (effect-free-primitive? name)
+ (not (constructor-primitive? name))
+ (types-check? name args)
+ (every loop args)))
+ (($ <call> _ ($ <lambda> _ _ body) args)
+ (and (loop body) (every loop args)))
+ (($ <seq> _ head tail)
+ (and (loop head) (loop tail)))
+ (($ <let> _ _ _ vals body)
+ (and (every loop vals) (loop body)))
+ (($ <letrec> _ _ _ _ vals body)
+ (and (every loop vals) (loop body)))
+ (($ <fix> _ _ _ vals body)
+ (and (every loop vals) (loop body)))
+ (($ <let-values> _ exp body)
+ (and (loop exp) (loop body)))
+ (($ <prompt> _ tag body handler)
+ (and (loop tag) (loop body) (loop handler)))
+ (_ #f))))
+
+ (define (prune-bindings names syms vals body for-effect
+ build-result)
+ (let lp ((names names) (syms syms) (vals vals)
+ (names* '()) (syms* '()) (vals* '())
+ (effects '()))
+ (match (list names syms vals)
+ ((() () ())
+ (let ((body (list->seq #f (append effects (list body)))))
+ (if (null? names*)
+ body
+ (build-result (reverse names*) (reverse syms*)
+ (reverse vals*) body))))
+ (((name . names) (sym . syms) (val . vals))
+ (if (hashq-ref residual-lexical-references sym)
+ (lp names syms vals
+ (cons name names*) (cons sym syms*) (cons val vals*)
+ effects)
+ (let ((effect (for-effect val)))
+ (lp names syms vals
+ names* syms* vals*
+ (if (void? effect)
+ effects
+ (cons effect effects)))))))))
+
+ (define (small-expression? x limit)
+ (let/ec k
+ (tree-il-fold
+ (lambda (x res) ; leaf
+ (1+ res))
+ (lambda (x res) ; down
+ (1+ res))
+ (lambda (x res) ; up
+ (if (< res limit)
+ res
+ (k #f)))
+ 0 x)
+ #t))
+
+ (let loop ((exp exp)
+ (env vlist-null) ; static environment
+ (counter #f) ; inlined call stack
+ (ctx 'value)) ; effect, value, test, operator, or operand
+ (define (lookup var)
+ (and=> (vhash-assq var env) cdr))
+
+ (define (for-value exp)
+ (loop exp env counter 'value))
+ (define (for-operand exp)
+ (loop exp env counter 'operand))
+ (define (for-test exp)
+ (loop exp env counter 'test))
+ (define (for-effect exp)
+ (loop exp env counter 'effect))
+ (define (for-tail exp)
+ (loop exp env counter ctx))
+
+ (if counter
+ (record-effort! counter))
+
+ (match exp
+ (($ <const>)
+ (case ctx
+ ((effect) (make-void #f))
+ (else exp)))
+ (($ <void>)
+ (case ctx
+ ((test) (make-const #f #t))
+ (else exp)))
+ (($ <lexical-ref> _ _ gensym)
+ (case ctx
+ ((effect) (make-void #f))
+ (else
+ (let ((val (lookup gensym)))
+ (cond
+ ((or (not val)
+ (assigned-lexical? gensym)
+ (not (constant-expression? val)))
+ ;; Don't copy-propagate through assigned variables,
+ ;; and don't reorder effects.
+ (record-residual-lexical-reference! gensym)
+ exp)
+ ((lexical-ref? val)
+ (for-tail val))
+ ((or (const? val)
+ (void? val)
+ (primitive-ref? val))
+ ;; Always propagate simple values that cannot lead to
+ ;; code bloat.
+ (for-tail val))
+ ((= 1 (lexical-refcount gensym))
+ ;; Always propagate values referenced only once.
+ ;; There is no need to rename the bindings, as they
+ ;; are only being moved, not copied. However in
+ ;; operator context we do rename it, as that
+ ;; effectively clears out the residualized-lexical
+ ;; flags that may have been set when this value was
+ ;; visited previously as an operand.
+ (case ctx
+ ((test) (for-test val))
+ ((operator) (record-source-expression! val (alpha-rename val)))
+ (else val)))
+ ;; FIXME: do demand-driven size accounting rather than
+ ;; these heuristics.
+ ((eq? ctx 'operator)
+ ;; A pure expression in the operator position. Inline
+ ;; if it's a lambda that's small enough.
+ (if (and (lambda? val)
+ (small-expression? val operator-size-limit))
+ (record-source-expression! val (alpha-rename val))
+ (begin
+ (record-residual-lexical-reference! gensym)
+ exp)))
+ ((eq? ctx 'operand)
+ ;; A pure expression in the operand position. Inline
+ ;; if it's small enough.
+ (if (small-expression? val operand-size-limit)
+ (record-source-expression! val (alpha-rename val))
+ (begin
+ (record-residual-lexical-reference! gensym)
+ exp)))
+ (else
+ ;; A pure expression, processed for value. Don't
+ ;; inline lambdas, because they will probably won't
+ ;; fold because we don't know the operator.
+ (if (and (small-expression? val value-size-limit)
+ (not (tree-il-any lambda? val)))
+ (record-source-expression! val (alpha-rename val))
+ (begin
+ (record-residual-lexical-reference! gensym)
+ exp))))))))
+ (($ <lexical-set> src name gensym exp)
+ (if (zero? (lexical-refcount gensym))
+ (let ((exp (for-effect exp)))
+ (if (void? exp)
+ exp
+ (make-seq src exp (make-void #f))))
+ (begin
+ (record-residual-lexical-reference! gensym)
+ (make-lexical-set src name gensym (for-value exp)))))
+ (($ <let> src names gensyms vals body)
+ (let* ((vals (map for-operand vals))
+ (body (loop body
+ (fold vhash-consq env gensyms vals)
+ counter
+ ctx)))
+ (cond
+ ((const? body)
+ (for-tail (list->seq src (append vals (list body)))))
+ ((and (lexical-ref? body)
+ (memq (lexical-ref-gensym body) gensyms))
+ (let ((sym (lexical-ref-gensym body))
+ (pairs (map cons gensyms vals)))
+ ;; (let ((x foo) (y bar) ...) x) => (begin bar ... foo)
+ (for-tail
+ (list->seq
+ src
+ (append (map cdr (alist-delete sym pairs eq?))
+ (list (assq-ref pairs sym)))))))
+ (else
+ ;; Only include bindings for which lexical references
+ ;; have been residualized.
+ (prune-bindings names gensyms vals body for-effect
+ (lambda (names gensyms vals body)
+ (if (null? names) (error "what!" names))
+ (make-let src names gensyms vals body)))))))
+ (($ <letrec> src in-order? names gensyms vals body)
+ ;; Things could be done more precisely when IN-ORDER? but
+ ;; it's OK not to do it---at worst we lost an optimization
+ ;; opportunity.
+ (let* ((vals (map for-operand vals))
+ (body (loop body
+ (fold vhash-consq env gensyms vals)
+ counter
+ ctx)))
+ (if (and (const? body)
+ (every constant-expression? vals))
+ body
+ (prune-bindings names gensyms vals body for-effect
+ (lambda (names gensyms vals body)
+ (make-letrec src in-order?
+ names gensyms vals body))))))
+ (($ <fix> src names gensyms vals body)
+ (let* ((vals (map for-operand vals))
+ (body (loop body
+ (fold vhash-consq env gensyms vals)
+ counter
+ ctx)))
+ (if (const? body)
+ body
+ (prune-bindings names gensyms vals body for-effect
+ (lambda (names gensyms vals body)
+ (make-fix src names gensyms vals body))))))
+ (($ <let-values> lv-src producer consumer)
+ ;; Peval the producer, then try to inline the consumer into
+ ;; the producer. If that succeeds, peval again. Otherwise
+ ;; reconstruct the let-values, pevaling the consumer.
+ (let ((producer (for-value producer)))
+ (or (match consumer
+ (($ <lambda-case> src req #f #f #f () gensyms body #f)
+ (cond
+ ((inline-values producer src req gensyms body)
+ => for-tail)
+ (else #f)))
+ (_ #f))
+ (make-let-values lv-src producer (for-tail consumer)))))
+ (($ <dynwind> src winder body unwinder)
+ (make-dynwind src (for-value winder) (for-tail body)
+ (for-value unwinder)))
+ (($ <dynlet> src fluids vals body)
+ (make-dynlet src (map for-value fluids) (map for-value vals)
+ (for-tail body)))
+ (($ <dynref> src fluid)
+ (make-dynref src (for-value fluid)))
+ (($ <dynset> src fluid exp)
+ (make-dynset src (for-value fluid) (for-value exp)))
+ (($ <toplevel-ref> src (? effect-free-primitive? name))
+ (if (local-toplevel? name)
+ exp
+ (resolve-primitives! exp cenv)))
+ (($ <toplevel-ref>)
+ ;; todo: open private local bindings.
+ exp)
+ (($ <module-ref>)
+ exp)
+ (($ <module-set> src mod name public? exp)
+ (make-module-set src mod name public? (for-value exp)))
+ (($ <toplevel-define> src name exp)
+ (make-toplevel-define src name (for-value exp)))
+ (($ <toplevel-set> src name exp)
+ (make-toplevel-set src name (for-value exp)))
+ (($ <primitive-ref>)
+ (case ctx
+ ((effect) (make-void #f))
+ ((test) (make-const #f #t))
+ (else exp)))
+ (($ <conditional> src condition subsequent alternate)
+ (let ((condition (for-test condition)))
+ (if (const? condition)
+ (if (const-exp condition)
+ (for-tail subsequent)
+ (for-tail alternate))
+ (make-conditional src condition
+ (for-tail subsequent)
+ (for-tail alternate)))))
+ (($ <primcall> src '@call-with-values
+ (producer
+ ($ <lambda> _ _
+ (and consumer
+ ;; No optional or kwargs.
+ ($ <lambda-case>
+ _ req #f rest #f () gensyms body #f)))))
+ (for-tail (make-let-values src (make-call src producer '())
+ consumer)))
+
+ (($ <primcall> src (? constructor-primitive? name) args)
+ (case ctx
+ ((effect test)
+ (let ((res (if (eq? ctx 'effect)
+ (make-void #f)
+ (make-const #f #t))))
+ (match (cons name (map for-value args))
+ (('cons x xs)
+ (for-tail (make-seq src (make-seq src x xs) res)))
+ (((or 'list 'vector) . elts)
+ (for-tail (list->seq src (append elts (list res)))))
+ (('make-prompt-tag . (or () (($ <const> _ (? string?)))))
+ res)
+ ((name . args)
+ (make-primcall src name args)))))
+ (else
+ (match (cons name (map for-value args))
+ (('cons x ($ <const> _ ()))
+ (make-primcall src 'list (list x)))
+ (('cons x ($ <primcall> _ 'list elts))
+ (make-primcall src 'list (cons x elts)))
+ ;; FIXME: these for-tail recursions could take
+ ;; place outside an effort counter.
+ (('car ($ <primcall> _ 'cons (x xs)))
+ (for-tail (make-seq src xs x)))
+ (('cdr ($ <primcall> _ 'cons (x xs)))
+ (for-tail (make-seq src x xs)))
+ (('car ($ <primcall> _ 'list (head . rest)))
+ (for-tail (list->seq src (append rest (list head)))))
+ (('cdr ($ <primcall> _ 'list (head . rest)))
+ (for-tail (make-seq src head
+ (make-primcall src 'list rest))))
+ (('car ($ <const> _ (head . tail)))
+ (for-tail (make-const src head)))
+ (('cdr ($ <const> _ (head . tail)))
+ (for-tail (make-const src tail)))
+ ((name . args)
+ (make-primcall src name args))))))
+
+ (($ <primcall> src (? effect-free-primitive? name) args)
+ (let ((args (map for-value args)))
+ (if (every const? args) ; only simple constants
+ (let-values (((success? values)
+ (apply-primitive name
+ (map const-exp args))))
+ (if success?
+ (case ctx
+ ((effect) (make-void #f))
+ ((test)
+ ;; Values truncation: only take the first
+ ;; value.
+ (if (pair? values)
+ (make-const #f (car values))
+ (make-values src '())))
+ (else
+ (make-values src (map (cut make-const src <>)
+ values))))
+ (make-primcall src name args)))
+ (cond
+ ((and (eq? ctx 'effect) (types-check? name args))
+ (make-void #f))
+ (else
+ (make-primcall src name args))))))
+
+ (($ <primcall> src name args)
+ (make-primcall src name (map for-value args)))
+
+ (($ <call> src orig-proc orig-args)
+ ;; todo: augment the global env with specialized functions
+ (let ((proc (loop orig-proc env counter 'operator)))
+ (match proc
+ (($ <primitive-ref> _ name)
+ (for-tail (make-primcall src name orig-args)))
+
+ (($ <lambda> _ _
+ ($ <lambda-case> _ req opt #f #f inits gensyms body #f))
+ ;; Simple case: no rest, no keyword arguments.
+ ;; todo: handle the more complex cases
+ (let* ((nargs (length orig-args))
+ (nreq (length req))
+ (nopt (if opt (length opt) 0))
+ (key (source-expression proc)))
+ (cond
+ ((or (< nargs nreq) (> nargs (+ nreq nopt)))
+ ;; An error, or effecting arguments.
+ (make-call src (for-value orig-proc) (map for-value
orig-args)))
+ ((or (and=> (find-counter key counter) counter-recursive?)
+ (lambda? orig-proc))
+ ;; A recursive call, or a lambda in the operator
+ ;; position of the source expression. Process again in
+ ;; tail context.
+ (loop (make-let src (append req (or opt '()))
+ gensyms
+ (append orig-args
+ (drop inits (- nargs nreq)))
+ body)
+ env counter ctx))
+ (else
+ ;; An integration at the top-level, the first
+ ;; recursion of a recursive procedure, or a nested
+ ;; integration of a procedure that hasn't been seen
+ ;; yet.
+ (let/ec k
+ (define (abort)
+ (k (make-call src
+ (for-value orig-proc)
+ (map for-value orig-args))))
+ (define new-counter
+ (cond
+ ;; These first two cases will transfer effort
+ ;; from the current counter into the new
+ ;; counter.
+ ((find-counter key counter)
+ => (lambda (prev)
+ (make-recursive-counter recursive-effort-limit
+ operand-size-limit
+ prev counter)))
+ (counter
+ (make-nested-counter abort key counter))
+ ;; This case opens a new account, effectively
+ ;; printing money. It should only do so once
+ ;; for each call site in the source program.
+ (else
+ (make-top-counter effort-limit operand-size-limit
+ abort key))))
+ (define result
+ (loop (make-let src (append req (or opt '()))
+ gensyms
+ (append orig-args
+ (drop inits (- nargs nreq)))
+ body)
+ env new-counter ctx))
+
+ (if counter
+ ;; The nested inlining attempt succeeded.
+ ;; Deposit the unspent effort and size back
+ ;; into the current counter.
+ (transfer! new-counter counter))
+
+ result)))))
+ (_
+ (make-call src proc (map for-value orig-args))))))
+ (($ <lambda> src meta body)
+ (case ctx
+ ((effect) (make-void #f))
+ ((test) (make-const #f #t))
+ ((operator) exp)
+ (else
+ (make-lambda src meta (for-value body)))))
+ (($ <lambda-case> src req opt rest kw inits gensyms body alt)
+ (make-lambda-case src req opt rest kw
+ (map for-value inits)
+ gensyms
+ (for-tail body)
+ (and alt (for-tail alt))))
+ (($ <seq> src head tail)
+ (let ((head (for-effect head))
+ (tail (for-tail tail)))
+ (if (void? head)
+ tail
+ (make-seq src
+ (if (and (seq? head)
+ (void? (seq-tail head)))
+ (seq-head head)
+ head)
+ tail))))
+ (($ <prompt> src tag body handler)
+ (define (singly-used-definition x)
+ (cond
+ ((and (lexical-ref? x)
+ ;; Only fetch definitions with single uses.
+ (= (lexical-refcount (lexical-ref-gensym x)) 1)
+ (lookup (lexical-ref-gensym x)))
+ => singly-used-definition)
+ (else x)))
+ (match (singly-used-definition tag)
+ (($ <primcall> _ 'make-prompt-tag (or () ((? constant-expression?))))
+ ;; There is no way that an <abort> could know the tag
+ ;; for this <prompt>, so we can elide the <prompt>
+ ;; entirely.
+ (for-tail body))
+ (_
+ (make-prompt src (for-value tag) (for-tail body)
+ (for-value handler)))))
+ (($ <abort> src tag args tail)
+ (make-abort src (for-value tag) (map for-value args)
+ (for-value tail))))))
diff --git a/module/language/tree-il/primitives.scm
b/module/language/tree-il/primitives.scm
index 74c465f..ae35306 100644
--- a/module/language/tree-il/primitives.scm
+++ b/module/language/tree-il/primitives.scm
@@ -27,7 +27,8 @@
#:use-module (srfi srfi-16)
#:export (resolve-primitives! add-interesting-primitive!
expand-primitives!
- effect-free-primitive? effect+exception-free-primitive?))
+ effect-free-primitive? effect+exception-free-primitive?
+ constructor-primitive? singly-valued-primitive?))
(define *interesting-primitive-names*
'(apply @apply
@@ -106,21 +107,23 @@
(for-each add-interesting-primitive! *interesting-primitive-names*)
+(define *primitive-constructors*
+ ;; Primitives that return a fresh object.
+ '(acons cons cons* list vector make-struct make-struct/no-tail
+ car cdr vector-ref struct-ref make-prompt-tag))
+
(define *effect-free-primitives*
- '(values
+ `(values
eq? eqv? equal?
= < > <= >= zero?
+ * - / 1- 1+ quotient remainder modulo
not
- pair? null? list? symbol? vector? acons cons cons*
- list vector
- car cdr
+ pair? null? list? symbol? vector?
caar cadr cdar cddr
caaar caadr cadar caddr cdaar cdadr cddar cdddr
caaaar caaadr caadar caaddr cadaar cadadr caddar cadddr
cdaaar cdaadr cdadar cdaddr cddaar cddadr cdddar cddddr
- vector-ref
- struct? struct-vtable make-struct make-struct/no-tail struct-ref
+ struct? struct-vtable
bytevector-u8-ref bytevector-s8-ref
bytevector-u16-ref bytevector-u16-native-ref
bytevector-s16-ref bytevector-s16-native-ref
@@ -129,7 +132,8 @@
bytevector-u64-ref bytevector-u64-native-ref
bytevector-s64-ref bytevector-s64-native-ref
bytevector-ieee-single-ref bytevector-ieee-single-native-ref
- bytevector-ieee-double-ref bytevector-ieee-double-native-ref))
+ bytevector-ieee-double-ref bytevector-ieee-double-native-ref
+ ,@*primitive-constructors*))
;; Like *effect-free-primitives* above, but further restricted in that they
;; cannot raise exceptions.
@@ -141,8 +145,55 @@
list vector
struct?))
+;; Primitives that only return one value.
+(define *singly-valued-primitives*
+ '(eq? eqv? equal?
+ memq memv
+ = < > <= >= zero?
+ + * - / 1- 1+ quotient remainder modulo
+ ash logand logior logxor
+ not
+ pair? null? list? symbol? vector? acons cons cons*
+ list vector
+ car cdr
+ set-car! set-cdr!
+ caar cadr cdar cddr
+ caaar caadr cadar caddr cdaar cdadr cddar cdddr
+ caaaar caaadr caadar caaddr cadaar cadadr caddar cadddr
+ cdaaar cdaadr cdadar cdaddr cddaar cddadr cdddar cddddr
+ vector-ref vector-set!
+ variable-ref variable-set!
+ variable-bound?
+ fluid-ref fluid-set!
+ make-prompt-tag
+ struct? struct-vtable make-struct struct-ref struct-set!
+ bytevector-u8-ref bytevector-u8-set!
+ bytevector-s8-ref bytevector-s8-set!
+ u8vector-ref u8vector-set! s8vector-ref s8vector-set!
+ bytevector-u16-ref bytevector-u16-set!
+ bytevector-u16-native-ref bytevector-u16-native-set!
+ bytevector-s16-ref bytevector-s16-set!
+ bytevector-s16-native-ref bytevector-s16-native-set!
+ u16vector-ref u16vector-set! s16vector-ref s16vector-set!
+ bytevector-u32-ref bytevector-u32-set!
+ bytevector-u32-native-ref bytevector-u32-native-set!
+ bytevector-s32-ref bytevector-s32-set!
+ bytevector-s32-native-ref bytevector-s32-native-set!
+ u32vector-ref u32vector-set! s32vector-ref s32vector-set!
+ bytevector-u64-ref bytevector-u64-set!
+ bytevector-u64-native-ref bytevector-u64-native-set!
+ bytevector-s64-ref bytevector-s64-set!
+ bytevector-s64-native-ref bytevector-s64-native-set!
+ u64vector-ref u64vector-set! s64vector-ref s64vector-set!
+ bytevector-ieee-single-ref bytevector-ieee-single-set!
+ bytevector-ieee-single-native-ref bytevector-ieee-single-native-set!
+ bytevector-ieee-double-ref bytevector-ieee-double-set!
+ bytevector-ieee-double-native-ref bytevector-ieee-double-native-set!
+ f32vector-ref f32vector-set! f64vector-ref f64vector-set!))
+
(define *effect-free-primitive-table* (make-hash-table))
(define *effect+exceptions-free-primitive-table* (make-hash-table))
+(define *singly-valued-primitive-table* (make-hash-table))
(for-each (lambda (x)
(hashq-set! *effect-free-primitive-table* x #t))
@@ -150,11 +201,18 @@
(for-each (lambda (x)
(hashq-set! *effect+exceptions-free-primitive-table* x #t))
*effect+exception-free-primitives*)
+(for-each (lambda (x)
+ (hashq-set! *singly-valued-primitive-table* x #t))
+ *singly-valued-primitives*)
+(define (constructor-primitive? prim)
+ (memq prim *primitive-constructors*))
(define (effect-free-primitive? prim)
(hashq-ref *effect-free-primitive-table* prim))
(define (effect+exception-free-primitive? prim)
(hashq-ref *effect+exceptions-free-primitive-table* prim))
+(define (singly-valued-primitive? prim)
+ (hashq-ref *singly-valued-primitive-table* prim))
(define (resolve-primitives! x mod)
(post-order!
@@ -247,6 +305,8 @@
(define-primitive-expander zero? (x)
(= x 0))
+;; FIXME: All the code that uses `const?' is redundant with `peval'.
+
(define-primitive-expander +
() 0
(x) (values x)
diff --git a/module/oop/goops.scm b/module/oop/goops.scm
index a49af06..cd811b3 100644
--- a/module/oop/goops.scm
+++ b/module/oop/goops.scm
@@ -347,21 +347,18 @@
#'(define-class-pre-definitions (rest ...)
out ... (define-class-pre-definition (slotopt ...)))))))
-(define-syntax define-class
- (syntax-rules ()
- ((_ name supers slot ...)
- (begin
- (define-class-pre-definitions (slot ...))
- (if (and (defined? 'name)
- (is-a? name <class>)
- (memq <object> (class-precedence-list name)))
- (class-redefinition name
- (class supers slot ... #:name 'name))
- (toplevel-define! 'name (class supers slot ... #:name 'name)))))))
+(define-syntax-rule (define-class name supers slot ...)
+ (begin
+ (define-class-pre-definitions (slot ...))
+ (if (and (defined? 'name)
+ (is-a? name <class>)
+ (memq <object> (class-precedence-list name)))
+ (class-redefinition name
+ (class supers slot ... #:name 'name))
+ (toplevel-define! 'name (class supers slot ... #:name 'name)))))
-(define-syntax standard-define-class
- (syntax-rules ()
- ((_ arg ...) (define-class arg ...))))
+(define-syntax-rule (standard-define-class arg ...)
+ (define-class arg ...))
;;;
;;; {Generic functions and accessors}
@@ -428,13 +425,15 @@
(for-each (lambda (gf)
(slot-set! gf 'extended-by
(cons eg (slot-ref gf 'extended-by))))
- gfs))
+ gfs)
+ (invalidate-method-cache! eg))
(define (not-extended-by! gfs eg)
(for-each (lambda (gf)
(slot-set! gf 'extended-by
(delq! eg (slot-ref gf 'extended-by))))
- gfs))
+ gfs)
+ (invalidate-method-cache! eg))
(define* (ensure-generic old-definition #:optional name)
(cond ((is-a? old-definition <generic>) old-definition)
@@ -449,13 +448,11 @@
(else (make <generic> #:name name))))
;; same semantics as <generic>
-(define-syntax define-accessor
- (syntax-rules ()
- ((_ name)
- (define name
- (cond ((not (defined? 'name)) (ensure-accessor #f 'name))
- ((is-a? name <accessor>) (make <accessor> #:name 'name))
- (else (ensure-accessor name 'name)))))))
+(define-syntax-rule (define-accessor name)
+ (define name
+ (cond ((not (defined? 'name)) (ensure-accessor #f 'name))
+ ((is-a? name <accessor>) (make <accessor> #:name 'name))
+ (else (ensure-accessor name 'name)))))
(define (make-setter-name name)
(string->symbol (string-append "setter:" (symbol->string name))))
@@ -505,6 +502,7 @@
(slot-set! method 'generic-function gws))
methods)
(slot-set! gws 'methods methods)
+ (invalidate-method-cache! gws)
gws))
;;;
@@ -669,15 +667,25 @@
methods)
(loop (cdr l)))))))
+(define (method-n-specializers m)
+ (length* (slot-ref m 'specializers)))
+
+(define (calculate-n-specialized gf)
+ (fold (lambda (m n) (max n (method-n-specializers m)))
+ 0
+ (generic-function-methods gf)))
+
+(define (invalidate-method-cache! gf)
+ (%invalidate-method-cache! gf)
+ (slot-set! gf 'n-specialized (calculate-n-specialized gf))
+ (for-each (lambda (gf) (invalidate-method-cache! gf))
+ (slot-ref gf 'extended-by)))
+
(define internal-add-method!
(method ((gf <generic>) (m <method>))
(slot-set! m 'generic-function gf)
(slot-set! gf 'methods (compute-new-list-of-methods gf m))
- (let ((specializers (slot-ref m 'specializers)))
- (slot-set! gf 'n-specialized
- (max (length* specializers)
- (slot-ref gf 'n-specialized))))
- (%invalidate-method-cache! gf)
+ (invalidate-method-cache! gf)
(add-method-in-classes! m)
*unspecified*))
@@ -917,6 +925,7 @@
(slot-set! val2
'extended-by
(cons gf (delq! gf (slot-ref val2 'extended-by))))
+ (invalidate-method-cache! gf)
var)))
(module-define! duplicate-handlers 'merge-generics merge-generics)
@@ -1100,7 +1109,7 @@
;; remove the method from its GF
(slot-set! gf 'methods
(delq1! m (slot-ref gf 'methods)))
- (%invalidate-method-cache! gf)
+ (invalidate-method-cache! gf)
;; remove the method from its specializers
(remove-method-in-classes! m))))
(class-direct-methods c)))
diff --git a/module/oop/goops/simple.scm b/module/oop/goops/simple.scm
index 8f4d839..fba4d41 100644
--- a/module/oop/goops/simple.scm
+++ b/module/oop/goops/simple.scm
@@ -1,6 +1,6 @@
;;; installed-scm-file
-;;;; Copyright (C) 2005, 2006, 2010 Free Software Foundation, Inc.
+;;;; Copyright (C) 2005, 2006, 2010, 2011 Free Software Foundation, Inc.
;;;;
;;;; This library is free software; you can redistribute it and/or
;;;; modify it under the terms of the GNU Lesser General Public
@@ -23,10 +23,8 @@
:export (define-class)
:no-backtrace)
-(define-syntax define-class
- (syntax-rules ()
- ((_ arg ...)
- (define-class-with-accessors-keywords arg ...))))
+(define-syntax-rule (define-class arg ...)
+ (define-class-with-accessors-keywords arg ...))
(module-use! (module-public-interface (current-module))
(resolve-interface '(oop goops)))
diff --git a/module/oop/goops/stklos.scm b/module/oop/goops/stklos.scm
index 8a7ae16..45272fa 100644
--- a/module/oop/goops/stklos.scm
+++ b/module/oop/goops/stklos.scm
@@ -1,4 +1,4 @@
-;;;; Copyright (C) 1999,2002, 2006, 2010 Free Software Foundation, Inc.
+;;;; Copyright (C) 1999,2002, 2006, 2010, 2011 Free Software Foundation, Inc.
;;;;
;;;; This library is free software; you can redistribute it and/or
;;;; modify it under the terms of the GNU Lesser General Public
@@ -47,10 +47,8 @@
;;; Enable keyword support (*fixme*---currently this has global effect)
(read-set! keywords 'prefix)
-(define-syntax define-class
- (syntax-rules ()
- ((_ name supers (slot ...) rest ...)
- (standard-define-class name supers slot ... rest ...))))
+(define-syntax-rule (define-class name supers (slot ...) rest ...)
+ (standard-define-class name supers slot ... rest ...))
(define (toplevel-define! name val)
(module-define! (current-module) name val))
diff --git a/module/srfi/srfi-1.scm b/module/srfi/srfi-1.scm
index 765bd50..d2347b0 100644
--- a/module/srfi/srfi-1.scm
+++ b/module/srfi/srfi-1.scm
@@ -240,11 +240,9 @@ higher-order procedures."
(scm-error 'wrong-type-arg (symbol->string caller)
"Wrong type argument: ~S" (list arg) '()))
-(define-syntax check-arg
- (syntax-rules ()
- ((_ pred arg caller)
- (if (not (pred arg))
- (wrong-type-arg 'caller arg)))))
+(define-syntax-rule (check-arg pred arg caller)
+ (if (not (pred arg))
+ (wrong-type-arg 'caller arg)))
(define (out-of-range proc arg)
(scm-error 'out-of-range proc
diff --git a/module/srfi/srfi-35.scm b/module/srfi/srfi-35.scm
index 7f1ff7f..d2b9c94 100644
--- a/module/srfi/srfi-35.scm
+++ b/module/srfi/srfi-35.scm
@@ -1,6 +1,6 @@
;;; srfi-35.scm --- Conditions -*- coding: utf-8 -*-
-;; Copyright (C) 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+;; Copyright (C) 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
;;
;; This library is free software; you can redistribute it and/or
;; modify it under the terms of the GNU Lesser General Public
@@ -295,24 +295,20 @@ by C."
;;; Syntax.
;;;
-(define-syntax define-condition-type
- (syntax-rules ()
- ((_ name parent pred (field-name field-accessor) ...)
- (begin
- (define name
- (make-condition-type 'name parent '(field-name ...)))
- (define (pred c)
- (condition-has-type? c name))
- (define (field-accessor c)
- (condition-ref c 'field-name))
- ...))))
-
-(define-syntax compound-condition
+(define-syntax-rule (define-condition-type name parent pred (field-name
field-accessor) ...)
+ (begin
+ (define name
+ (make-condition-type 'name parent '(field-name ...)))
+ (define (pred c)
+ (condition-has-type? c name))
+ (define (field-accessor c)
+ (condition-ref c 'field-name))
+ ...))
+
+(define-syntax-rule (compound-condition (type ...) (field ...))
;; Create a compound condition using `make-compound-condition-type'.
- (syntax-rules ()
- ((_ (type ...) (field ...))
- (condition ((make-compound-condition-type '%compound `(,type ...))
- field ...)))))
+ (condition ((make-compound-condition-type '%compound `(,type ...))
+ field ...)))
(define-syntax condition-instantiation
;; Build the `(make-condition type ...)' call.
diff --git a/module/srfi/srfi-39.scm b/module/srfi/srfi-39.scm
index 61e67b8..dba86fd 100644
--- a/module/srfi/srfi-39.scm
+++ b/module/srfi/srfi-39.scm
@@ -1,6 +1,6 @@
;;; srfi-39.scm --- Parameter objects
-;; Copyright (C) 2004, 2005, 2006, 2008 Free Software Foundation, Inc.
+;; Copyright (C) 2004, 2005, 2006, 2008, 2011 Free Software Foundation,
Inc.
;;
;; This library is free software; you can redistribute it and/or
;; modify it under the terms of the GNU Lesser General Public
@@ -69,12 +69,10 @@
((null? (cdr new-value)) (fluid-set! value (conv (car new-value))))
(else (error "make-parameter expects 0 or 1 arguments"
new-value)))))))
-(define-syntax parameterize
- (syntax-rules ()
- ((_ ((?param ?value) ...) ?body ...)
- (with-parameters* (list ?param ...)
- (list ?value ...)
- (lambda () ?body ...)))))
+(define-syntax-rule (parameterize ((?param ?value) ...) ?body ...)
+ (with-parameters* (list ?param ...)
+ (list ?value ...)
+ (lambda () ?body ...)))
(define (current-input-port . new-value)
(if (null? new-value)
diff --git a/module/srfi/srfi-45.scm b/module/srfi/srfi-45.scm
index 1b912be..29b0393 100644
--- a/module/srfi/srfi-45.scm
+++ b/module/srfi/srfi-45.scm
@@ -1,6 +1,6 @@
;;; srfi-45.scm -- Primitives for Expressing Iterative Lazy Algorithms
-;; Copyright (C) 2010 Free Software Foundation, Inc.
+;; Copyright (C) 2010, 2011 Free Software Foundation, Inc.
;; Copyright (C) 2003 André van Tonder. All Rights Reserved.
;; Permission is hereby granted, free of charge, to any person
@@ -47,17 +47,14 @@
(tag value-tag value-tag-set!)
(proc value-proc value-proc-set!))
-(define-syntax lazy
- (syntax-rules ()
- ((lazy exp)
- (make-promise (make-value 'lazy (lambda () exp))))))
+(define-syntax-rule (lazy exp)
+ (make-promise (make-value 'lazy (lambda () exp))))
(define (eager x)
(make-promise (make-value 'eager x)))
-(define-syntax delay
- (syntax-rules ()
- ((delay exp) (lazy (eager exp)))))
+(define-syntax-rule (delay exp)
+ (lazy (eager exp)))
(define (force promise)
(let ((content (promise-val promise)))
diff --git a/module/srfi/srfi-67/compare.scm b/module/srfi/srfi-67/compare.scm
index 21b0e94..767f3db 100644
--- a/module/srfi/srfi-67/compare.scm
+++ b/module/srfi/srfi-67/compare.scm
@@ -1,3 +1,4 @@
+; Copyright (c) 2011 Free Software Foundation, Inc.
; Copyright (c) 2005 Sebastian Egner and Jens Axel S{\o}gaard.
;
; Permission is hereby granted, free of charge, to any person obtaining
@@ -88,14 +89,12 @@
; 3-sided conditional
-(define-syntax if3
- (syntax-rules ()
- ((if3 c less equal greater)
- (case c
- ((-1) less)
- (( 0) equal)
- (( 1) greater)
- (else (error "comparison value not in {-1,0,1}"))))))
+(define-syntax-rule (if3 c less equal greater)
+ (case c
+ ((-1) less)
+ (( 0) equal)
+ (( 1) greater)
+ (else (error "comparison value not in {-1,0,1}"))))
; 2-sided conditionals for comparisons
@@ -110,51 +109,37 @@
(a-cases alternate)
(else (error "comparison value not in {-1,0,1}"))))))
-(define-syntax if=?
- (syntax-rules ()
- ((if=? arg ...)
- (compare:if-rel? (0) (-1 1) arg ...))))
+(define-syntax-rule (if=? arg ...)
+ (compare:if-rel? (0) (-1 1) arg ...))
-(define-syntax if<?
- (syntax-rules ()
- ((if<? arg ...)
- (compare:if-rel? (-1) (0 1) arg ...))))
+(define-syntax-rule (if<? arg ...)
+ (compare:if-rel? (-1) (0 1) arg ...))
-(define-syntax if>?
- (syntax-rules ()
- ((if>? arg ...)
- (compare:if-rel? (1) (-1 0) arg ...))))
+(define-syntax-rule (if>? arg ...)
+ (compare:if-rel? (1) (-1 0) arg ...))
-(define-syntax if<=?
- (syntax-rules ()
- ((if<=? arg ...)
- (compare:if-rel? (-1 0) (1) arg ...))))
+(define-syntax-rule (if<=? arg ...)
+ (compare:if-rel? (-1 0) (1) arg ...))
-(define-syntax if>=?
- (syntax-rules ()
- ((if>=? arg ...)
- (compare:if-rel? (0 1) (-1) arg ...))))
+(define-syntax-rule (if>=? arg ...)
+ (compare:if-rel? (0 1) (-1) arg ...))
-(define-syntax if-not=?
- (syntax-rules ()
- ((if-not=? arg ...)
- (compare:if-rel? (-1 1) (0) arg ...))))
+(define-syntax-rule (if-not=? arg ...)
+ (compare:if-rel? (-1 1) (0) arg ...))
; predicates from compare procedures
-(define-syntax compare:define-rel?
- (syntax-rules ()
- ((compare:define-rel? rel? if-rel?)
- (define rel?
- (case-lambda
- (() (lambda (x y) (if-rel? (default-compare x y) #t #f)))
- ((compare) (lambda (x y) (if-rel? (compare x y) #t #f)))
- ((x y) (if-rel? (default-compare x y) #t #f))
- ((compare x y)
- (if (procedure? compare)
- (if-rel? (compare x y) #t #f)
- (error "not a procedure (Did you mean rel/rel??): " compare))))))))
+(define-syntax-rule (compare:define-rel? rel? if-rel?)
+ (define rel?
+ (case-lambda
+ (() (lambda (x y) (if-rel? (default-compare x y) #t #f)))
+ ((compare) (lambda (x y) (if-rel? (compare x y) #t #f)))
+ ((x y) (if-rel? (default-compare x y) #t #f))
+ ((compare x y)
+ (if (procedure? compare)
+ (if-rel? (compare x y) #t #f)
+ (error "not a procedure (Did you mean rel/rel??): " compare))))))
(compare:define-rel? =? if=?)
(compare:define-rel? <? if<?)
@@ -166,29 +151,27 @@
; chains of length 3
-(define-syntax compare:define-rel1/rel2?
- (syntax-rules ()
- ((compare:define-rel1/rel2? rel1/rel2? if-rel1? if-rel2?)
- (define rel1/rel2?
- (case-lambda
- (()
- (lambda (x y z)
- (if-rel1? (default-compare x y)
- (if-rel2? (default-compare y z) #t #f)
- (compare:checked #f default-compare z))))
- ((compare)
- (lambda (x y z)
- (if-rel1? (compare x y)
- (if-rel2? (compare y z) #t #f)
- (compare:checked #f compare z))))
- ((x y z)
- (if-rel1? (default-compare x y)
- (if-rel2? (default-compare y z) #t #f)
- (compare:checked #f default-compare z)))
- ((compare x y z)
- (if-rel1? (compare x y)
- (if-rel2? (compare y z) #t #f)
- (compare:checked #f compare z))))))))
+(define-syntax-rule (compare:define-rel1/rel2? rel1/rel2? if-rel1? if-rel2?)
+ (define rel1/rel2?
+ (case-lambda
+ (()
+ (lambda (x y z)
+ (if-rel1? (default-compare x y)
+ (if-rel2? (default-compare y z) #t #f)
+ (compare:checked #f default-compare z))))
+ ((compare)
+ (lambda (x y z)
+ (if-rel1? (compare x y)
+ (if-rel2? (compare y z) #t #f)
+ (compare:checked #f compare z))))
+ ((x y z)
+ (if-rel1? (default-compare x y)
+ (if-rel2? (default-compare y z) #t #f)
+ (compare:checked #f default-compare z)))
+ ((compare x y z)
+ (if-rel1? (compare x y)
+ (if-rel2? (compare y z) #t #f)
+ (compare:checked #f compare z))))))
(compare:define-rel1/rel2? </<? if<? if<?)
(compare:define-rel1/rel2? </<=? if<? if<=?)
@@ -202,31 +185,29 @@
; chains of arbitrary length
-(define-syntax compare:define-chain-rel?
- (syntax-rules ()
- ((compare:define-chain-rel? chain-rel? if-rel?)
- (define chain-rel?
- (case-lambda
- ((compare)
- #t)
- ((compare x1)
- (compare:checked #t compare x1))
- ((compare x1 x2)
- (if-rel? (compare x1 x2) #t #f))
- ((compare x1 x2 x3)
- (if-rel? (compare x1 x2)
- (if-rel? (compare x2 x3) #t #f)
- (compare:checked #f compare x3)))
- ((compare x1 x2 . x3+)
- (if-rel? (compare x1 x2)
- (let chain? ((head x2) (tail x3+))
- (if (null? tail)
- #t
- (if-rel? (compare head (car tail))
- (chain? (car tail) (cdr tail))
- (apply compare:checked #f
- compare (cdr tail)))))
- (apply compare:checked #f compare x3+))))))))
+(define-syntax-rule (compare:define-chain-rel? chain-rel? if-rel?)
+ (define chain-rel?
+ (case-lambda
+ ((compare)
+ #t)
+ ((compare x1)
+ (compare:checked #t compare x1))
+ ((compare x1 x2)
+ (if-rel? (compare x1 x2) #t #f))
+ ((compare x1 x2 x3)
+ (if-rel? (compare x1 x2)
+ (if-rel? (compare x2 x3) #t #f)
+ (compare:checked #f compare x3)))
+ ((compare x1 x2 . x3+)
+ (if-rel? (compare x1 x2)
+ (let chain? ((head x2) (tail x3+))
+ (if (null? tail)
+ #t
+ (if-rel? (compare head (car tail))
+ (chain? (car tail) (cdr tail))
+ (apply compare:checked #f
+ compare (cdr tail)))))
+ (apply compare:checked #f compare x3+))))))
(compare:define-chain-rel? chain=? if=?)
(compare:define-chain-rel? chain<? if<?)
@@ -468,19 +449,17 @@
(begin (compare:type-check type? type-name x)
(compare:type-check type? type-name y)))))
-(define-syntax compare:define-by=/<
- (syntax-rules ()
- ((compare:define-by=/< compare = < type? type-name)
- (define compare
- (let ((= =) (< <))
- (lambda (x y)
- (if (type? x)
- (if (eq? x y)
- 0
- (if (type? y)
- (if (= x y) 0 (if (< x y) -1 1))
- (error (string-append "not " type-name ":") y)))
- (error (string-append "not " type-name ":") x))))))))
+(define-syntax-rule (compare:define-by=/< compare = < type? type-name)
+ (define compare
+ (let ((= =) (< <))
+ (lambda (x y)
+ (if (type? x)
+ (if (eq? x y)
+ 0
+ (if (type? y)
+ (if (= x y) 0 (if (< x y) -1 1))
+ (error (string-append "not " type-name ":") y)))
+ (error (string-append "not " type-name ":") x))))))
(define (boolean-compare x y)
(compare:type-check boolean? "boolean" x y)
diff --git a/module/sxml/match.scm b/module/sxml/match.scm
index 9aebc01..84cbce3 100644
--- a/module/sxml/match.scm
+++ b/module/sxml/match.scm
@@ -1,6 +1,6 @@
;;; -*- mode: scheme; coding: utf-8; -*-
;;;
-;;; Copyright (C) 2010 Free Software Foundation, Inc.
+;;; Copyright (C) 2010, 2011 Free Software Foundation, Inc.
;;;
;;; This library is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU Lesser General Public License as published by
@@ -40,34 +40,27 @@
;;; PLT compatibility layer.
;;;
-(define-syntax syntax-object->datum
- (syntax-rules ()
- ((_ stx)
- (syntax->datum stx))))
+(define-syntax-rule (syntax-object->datum stx)
+ (syntax->datum stx))
-(define-syntax void
- (syntax-rules ()
- ((_) *unspecified*)))
+(define-syntax-rule (void)
+ *unspecified*)
(define %call/ec-prompt
(make-prompt-tag))
-(define-syntax call/ec
+(define-syntax-rule (call/ec proc)
;; aka. `call-with-escape-continuation'
- (syntax-rules ()
- ((_ proc)
- (call-with-prompt %call/ec-prompt
- (lambda ()
- (proc (lambda args
- (apply abort-to-prompt
- %call/ec-prompt args))))
- (lambda (_ . args)
- (apply values args))))))
+ (call-with-prompt %call/ec-prompt
+ (lambda ()
+ (proc (lambda args
+ (apply abort-to-prompt
+ %call/ec-prompt args))))
+ (lambda (_ . args)
+ (apply values args))))
-(define-syntax let/ec
- (syntax-rules ()
- ((_ cont body ...)
- (call/ec (lambda (cont) body ...)))))
+(define-syntax-rule (let/ec cont body ...)
+ (call/ec (lambda (cont) body ...)))
(define (raise-syntax-error x msg obj sub)
(throw 'sxml-match-error x msg obj sub))
diff --git a/module/system/repl/error-handling.scm
b/module/system/repl/error-handling.scm
index c6c64cc..2a585aa 100644
--- a/module/system/repl/error-handling.scm
+++ b/module/system/repl/error-handling.scm
@@ -182,7 +182,5 @@
(apply (if (memq k pass-keys) throw on-error) k args))
(error "Unknown on-error strategy" on-error)))))))
-(define-syntax with-error-handling
- (syntax-rules ()
- ((_ form)
- (call-with-error-handling (lambda () form)))))
+(define-syntax-rule (with-error-handling form)
+ (call-with-error-handling (lambda () form)))
diff --git a/module/system/repl/repl.scm b/module/system/repl/repl.scm
index 5bab778..1cffa71 100644
--- a/module/system/repl/repl.scm
+++ b/module/system/repl/repl.scm
@@ -135,15 +135,13 @@
(run-repl (make-repl lang debug)))
;; (put 'abort-on-error 'scheme-indent-function 1)
-(define-syntax abort-on-error
- (syntax-rules ()
- ((_ string exp)
- (catch #t
- (lambda () exp)
- (lambda (key . args)
- (format #t "While ~A:~%" string)
- (print-exception (current-output-port) #f key args)
- (abort))))))
+(define-syntax-rule (abort-on-error string exp)
+ (catch #t
+ (lambda () exp)
+ (lambda (key . args)
+ (format #t "While ~A:~%" string)
+ (print-exception (current-output-port) #f key args)
+ (abort))))
(define (run-repl repl)
(define (with-stack-and-prompt thunk)
diff --git a/module/system/vm/inspect.scm b/module/system/vm/inspect.scm
index aebf50d..1023437 100644
--- a/module/system/vm/inspect.scm
+++ b/module/system/vm/inspect.scm
@@ -1,6 +1,6 @@
;;; Guile VM debugging facilities
-;;; Copyright (C) 2001, 2009, 2010 Free Software Foundation, Inc.
+;;; Copyright (C) 2001, 2009, 2010, 2011 Free Software Foundation, Inc.
;;;
;;; This library is free software; you can redistribute it and/or
;;; modify it under the terms of the GNU Lesser General Public
@@ -81,16 +81,15 @@
;;;
(define (inspect x)
- (define-syntax define-command
- (syntax-rules ()
- ((_ ((mod cname alias ...) . args) body ...)
- (define cname
- (let ((c (lambda* args body ...)))
- (set-procedure-property! c 'name 'cname)
- (module-define! mod 'cname c)
- (module-add! mod 'alias (module-local-variable mod 'cname))
- ...
- c)))))
+ (define-syntax-rule (define-command ((mod cname alias ...) . args)
+ body ...)
+ (define cname
+ (let ((c (lambda* args body ...)))
+ (set-procedure-property! c 'name 'cname)
+ (module-define! mod 'cname c)
+ (module-add! mod 'alias (module-local-variable mod 'cname))
+ ...
+ c)))
(let ((commands (make-module)))
(define (prompt)
diff --git a/module/texinfo.scm b/module/texinfo.scm
index 970895f..8798eb3 100644
--- a/module/texinfo.scm
+++ b/module/texinfo.scm
@@ -77,6 +77,7 @@
#:use-module (sxml transform)
#:use-module (sxml ssax input-parse)
#:use-module (srfi srfi-1)
+ #:use-module (srfi srfi-11)
#:use-module (srfi srfi-13)
#:export (call-with-file-and-dir
texi-command-specs
@@ -103,25 +104,6 @@ files by relative path name."
(call-with-input-file (basename filename) proc))
(lambda () (chdir current-dir)))))
-;; Define this version here, because (srfi srfi-11)'s definition uses
-;; syntax-rules, which is really damn slow
-(define-macro (let*-values bindings . body)
- (if (null? bindings) (cons 'begin body)
- (apply
- (lambda (vars initializer)
- (let ((cont
- (cons 'let*-values
- (cons (cdr bindings) body))))
- (cond
- ((not (pair? vars)) ; regular let case, a single var
- `(let ((,vars ,initializer)) ,cont))
- ((null? (cdr vars)) ; single var, see the prev case
- `(let ((,(car vars) ,initializer)) ,cont))
- (else ; the most generic case
- `(call-with-values (lambda () ,initializer)
- (lambda ,vars ,cont))))))
- (car bindings))))
-
;;========================================================================
;; Reflection on the XML vocabulary
diff --git a/module/web/http.scm b/module/web/http.scm
index 21874ee..70db813 100644
--- a/module/web/http.scm
+++ b/module/web/http.scm
@@ -702,15 +702,25 @@ ordered alist."
;; 0 1 2
(define (parse-rfc-822-date str)
;; We could verify the day of the week but we don't.
- (if (not (string-match? str "aaa, dd aaa dddd dd:dd:dd GMT"))
- (bad-header 'date str))
- (let ((date (parse-non-negative-integer str 5 7))
- (month (parse-month str 8 11))
- (year (parse-non-negative-integer str 12 16))
- (hour (parse-non-negative-integer str 17 19))
- (minute (parse-non-negative-integer str 20 22))
- (second (parse-non-negative-integer str 23 25)))
- (make-date 0 second minute hour date month year 0)))
+ (cond ((string-match? str "aaa, dd aaa dddd dd:dd:dd GMT")
+ (let ((date (parse-non-negative-integer str 5 7))
+ (month (parse-month str 8 11))
+ (year (parse-non-negative-integer str 12 16))
+ (hour (parse-non-negative-integer str 17 19))
+ (minute (parse-non-negative-integer str 20 22))
+ (second (parse-non-negative-integer str 23 25)))
+ (make-date 0 second minute hour date month year 0)))
+ ((string-match? str "aaa, d aaa dddd dd:dd:dd GMT")
+ (let ((date (parse-non-negative-integer str 5 6))
+ (month (parse-month str 7 10))
+ (year (parse-non-negative-integer str 11 15))
+ (hour (parse-non-negative-integer str 16 18))
+ (minute (parse-non-negative-integer str 19 21))
+ (second (parse-non-negative-integer str 22 24)))
+ (make-date 0 second minute hour date month year 0)))
+ (else
+ (bad-header 'date str) ; prevent tail call
+ #f)))
;; RFC 850, updated by RFC 1036
;; Sunday, 06-Nov-94 08:49:37 GMT
diff --git a/module/web/server.scm b/module/web/server.scm
index c5e623a..ef6879e 100644
--- a/module/web/server.scm
+++ b/module/web/server.scm
@@ -118,11 +118,9 @@
(write server-impl-write)
(close server-impl-close))
-(define-syntax define-server-impl
- (syntax-rules ()
- ((_ name open read write close)
- (define name
- (make-server-impl 'name open read write close)))))
+(define-syntax-rule (define-server-impl name open read write close)
+ (define name
+ (make-server-impl 'name open read write close)))
(define (lookup-server-impl impl)
"Look up a server implementation. If @var{impl} is a server
diff --git a/test-suite/Makefile.am b/test-suite/Makefile.am
index 8ee570b..05aee78 100644
--- a/test-suite/Makefile.am
+++ b/test-suite/Makefile.am
@@ -67,6 +67,7 @@ SCM_TESTS = tests/00-initial-env.test \
tests/list.test \
tests/load.test \
tests/match.test \
+ tests/match.test.upstream \
tests/modules.test \
tests/multilingual.nottest \
tests/net-db.test \
diff --git a/test-suite/standalone/Makefile.am
b/test-suite/standalone/Makefile.am
index 00655bd..76c47c4 100644
--- a/test-suite/standalone/Makefile.am
+++ b/test-suite/standalone/Makefile.am
@@ -178,6 +178,13 @@ test_scm_take_u8vector_LDADD = $(LIBGUILE_LDADD)
check_PROGRAMS += test-scm-take-u8vector
TESTS += test-scm-take-u8vector
+# test-scm-take-u8vector
+test_scm_to_latin1_string_SOURCES = test-scm-to-latin1-string.c
+test_scm_to_latin1_string_CFLAGS = ${test_cflags}
+test_scm_to_latin1_string_LDADD = $(LIBGUILE_LDADD)
+check_PROGRAMS += test-scm-to-latin1-string
+TESTS += test-scm-to-latin1-string
+
if HAVE_SHARED_LIBRARIES
# test-extensions
diff --git a/test-suite/standalone/test-scm-to-latin1-string.c
b/test-suite/standalone/test-scm-to-latin1-string.c
new file mode 100644
index 0000000..b8f0120
--- /dev/null
+++ b/test-suite/standalone/test-scm-to-latin1-string.c
@@ -0,0 +1,78 @@
+/* Copyright (C) 2011 Free Software Foundation, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301 USA
+ */
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <libguile.h>
+#include <stdlib.h>
+
+/*
+ This outputs:
+
+ address@hidden ~/tmp $ ./a.out
+ foo,bar
+ bar
+
+*/
+
+#define TEST(x) \
+ if (!(x)) abort()
+
+static void
+inner_main (void *data, int argc, char **argv)
+{
+ char *cstr;
+
+ SCM string, tokens, tok;
+
+ string = scm_from_latin1_string ("foo,bar");
+ tokens = scm_string_split (string, SCM_MAKE_CHAR (','));
+
+ TEST (scm_is_pair (tokens));
+ tok = scm_car (tokens);
+ TEST (scm_is_string (tok));
+ cstr = scm_to_latin1_string (tok);
+ TEST (strcmp (cstr, "foo") == 0);
+ free (cstr);
+ tokens = scm_cdr (tokens);
+
+ TEST (scm_is_pair (tokens));
+ tok = scm_car (tokens);
+ TEST (scm_is_string (tok));
+ cstr = scm_to_latin1_string (tok);
+ TEST (strcmp (cstr, "bar") == 0);
+ free (cstr);
+ tokens = scm_cdr (tokens);
+
+ TEST (scm_is_null (tokens));
+}
+
+int
+main (int argc, char **argv)
+{
+ scm_boot_guile (argc, argv, inner_main, NULL);
+
+ return EXIT_SUCCESS;
+}
+
+/* Local Variables: */
+/* compile-command: "gcc `pkg-config --cflags --libs guile-2.0` main.c" */
+/* End: */
diff --git a/test-suite/tests/gc.test b/test-suite/tests/gc.test
index 9aa12be..57643e8 100644
--- a/test-suite/tests/gc.test
+++ b/test-suite/tests/gc.test
@@ -1,5 +1,6 @@
;;;; gc.test --- test guile's garbage collection -*- scheme -*-
-;;;; Copyright (C) 2000, 2001, 2004, 2006, 2007, 2008, 2009 Free Software
Foundation, Inc.
+;;;; Copyright (C) 2000, 2001, 2004, 2006, 2007, 2008, 2009,
+;;;; 2011 Free Software Foundation, Inc.
;;;;
;;;; This library is free software; you can redistribute it and/or
;;;; modify it under the terms of the GNU Lesser General Public
@@ -46,6 +47,13 @@
;;;
;;;
+(define (stack-cleanup depth)
+ ;; Clean up stack space for DEPTH words. This is defined here so that
+ ;; `peval' doesn't inline it.
+ (let cleanup ((i depth))
+ (and (> i 0)
+ (begin (cleanup (1- i)) i))))
+
(with-test-prefix "gc"
(pass-if "after-gc-hook gets called"
@@ -65,9 +73,7 @@
(for-each (lambda (x) (guard (make-module))) (iota total))
;; Avoid false references to the modules on the stack.
- (let cleanup ((i 20))
- (and (> i 0)
- (begin (cleanup (1- i)) i)))
+ (stack-cleanup 20)
(gc)
(gc) ;; twice: have to kill the weak vectors.
diff --git a/test-suite/tests/match.test b/test-suite/tests/match.test
index f2e670c..8b19ff7 100644
--- a/test-suite/tests/match.test
+++ b/test-suite/tests/match.test
@@ -1,6 +1,6 @@
;;;; match.test --- (ice-9 match) -*- mode: scheme; coding: utf-8; -*-
;;;;
-;;;; Copyright (C) 2010 Free Software Foundation, Inc.
+;;;; Copyright (C) 2010, 2011 Free Software Foundation, Inc.
;;;;
;;;; This library is free software; you can redistribute it and/or
;;;; modify it under the terms of the GNU Lesser General Public
@@ -18,11 +18,25 @@
(define-module (test-match)
#:use-module (ice-9 match)
+ #:use-module (srfi srfi-9)
#:use-module (test-suite lib))
(define exception:match-error
(cons 'match-error "^.*$"))
+(define-record-type rtd-2-slots
+ (make-2-slot-record a b)
+ two-slot-record?
+ (a slot-first)
+ (b slot-second))
+
+(define-record-type rtd-3-slots
+ (make-3-slot-record a b c)
+ three-slot-record?
+ (a slot-one)
+ (b slot-two)
+ (c slot-three))
+
(with-test-prefix "matches"
@@ -86,7 +100,61 @@
(let ((tree '(one (two 2) (three 3 (and 4 (and 5))))))
(match tree
(('one ('two x) ('three y ('and z '(and 5))))
- (equal? (list x y z) '(2 3 4)))))))
+ (equal? (list x y z) '(2 3 4))))))
+
+ (pass-if "and, unique names"
+ (let ((tree '(1 2)))
+ (match tree
+ ((and (a 2) (1 b))
+ (equal? 3 (+ a b))))))
+
+ (pass-if "and, same names"
+ (let ((a '(1 2)))
+ (match a
+ ((and (a 2) (1 b))
+ (equal? 3 (+ a b))))))
+
+ (with-test-prefix "records"
+
+ (pass-if "all slots, bind"
+ (let ((r (make-3-slot-record 1 2 3)))
+ (match r
+ (($ rtd-3-slots a b c)
+ (equal? (list a b c) '(1 2 3))))))
+
+ (pass-if "all slots, literals"
+ (let ((r (make-3-slot-record 1 2 3)))
+ (match r
+ (($ rtd-3-slots 1 2 3)
+ #t))))
+
+ (pass-if "2 slots"
+ (let ((r (make-3-slot-record 1 2 3)))
+ (match r
+ (($ rtd-3-slots x y)
+ (equal? (list x y) '(1 2))))))
+
+ (pass-if "RTD correctly checked"
+ (let ((r (make-2-slot-record 1 2)))
+ (match r
+ (($ rtd-3-slots a b)
+ #f)
+ (($ rtd-2-slots a b)
+ (equal? (list a b) '(1 2))))))
+
+ (pass-if "getter"
+ (match (make-2-slot-record 1 2)
+ (($ rtd-2-slots (get! first) (get! second))
+ (equal? (list (first) (second)) '(1 2)))))
+
+ (pass-if "setter"
+ (let ((r (make-2-slot-record 1 2)))
+ (match r
+ (($ rtd-2-slots (set! set-first!) (set! set-second!))
+ (set-first! 'one)
+ (set-second! 'two)
+ (equal? (list (slot-first r) (slot-second r))
+ '(one two))))))))
(with-test-prefix "doesn't match"
@@ -105,4 +173,36 @@
exception:match-error
(match '(a 0)
(((and x (? symbol?)) ..1)
- (equal? x '(a b c))))))
+ (equal? x '(a b c)))))
+
+ (with-test-prefix "records"
+
+ (pass-if "not a record"
+ (match "hello"
+ (($ rtd-2-slots) #f)
+ (_ #t)))
+
+ (pass-if-exception "too many slots"
+ exception:out-of-range
+ (let ((r (make-3-slot-record 1 2 3)))
+ (match r
+ (($ rtd-3-slots a b c d)
+ #f))))))
+
+
+;;;
+;;; Upstream tests, from Chibi-Scheme (3-clause BSD license).
+;;;
+
+(let-syntax ((load (syntax-rules ()
+ ((_ file) #t)))
+ (test (syntax-rules ()
+ ((_ name expected expr)
+ (pass-if name
+ (equal? expected expr)))))
+ (test-begin (syntax-rules ()
+ ((_ name) #t)))
+ (test-end (syntax-rules ()
+ ((_) #t))))
+ (with-test-prefix "upstream tests"
+ (include-from-path "test-suite/tests/match.test.upstream")))
diff --git a/test-suite/tests/match.test.upstream
b/test-suite/tests/match.test.upstream
new file mode 100644
index 0000000..47bf44e
--- /dev/null
+++ b/test-suite/tests/match.test.upstream
@@ -0,0 +1,168 @@
+
+(cond-expand
+ (modules (import (chibi match) (only (chibi test) test-begin test test-end)))
+ (else (load "lib/chibi/match/match.scm")))
+
+(test-begin "match")
+
+(test "any" 'ok (match 'any (_ 'ok)))
+(test "symbol" 'ok (match 'ok (x x)))
+(test "number" 'ok (match 28 (28 'ok)))
+(test "string" 'ok (match "good" ("bad" 'fail) ("good" 'ok)))
+(test "literal symbol" 'ok (match 'good ('bad 'fail) ('good 'ok)))
+(test "null" 'ok (match '() (() 'ok)))
+(test "pair" 'ok (match '(ok) ((x) x)))
+(test "vector" 'ok (match '#(ok) (#(x) x)))
+(test "any doubled" 'ok (match '(1 2) ((_ _) 'ok)))
+(test "and empty" 'ok (match '(o k) ((and) 'ok)))
+(test "and single" 'ok (match 'ok ((and x) x)))
+(test "and double" 'ok (match 'ok ((and (? symbol?) y) 'ok)))
+(test "or empty" 'ok (match '(o k) ((or) 'fail) (else 'ok)))
+(test "or single" 'ok (match 'ok ((or x) 'ok)))
+(test "or double" 'ok (match 'ok ((or (? symbol? y) y) y)))
+(test "not" 'ok (match 28 ((not (a . b)) 'ok)))
+(test "pred" 'ok (match 28 ((? number?) 'ok)))
+(test "named pred" 29 (match 28 ((? number? x) (+ x 1))))
+
+(test "duplicate symbols pass" 'ok (match '(ok . ok) ((x . x) x)))
+(test "duplicate symbols fail" 'ok (match '(ok . bad) ((x . x) 'bad) (else
'ok)))
+(test "duplicate symbols samth" 'ok (match '(ok . ok) ((x . 'bad) x) (('ok .
x) x)))
+
+(test "ellipses" '((a b c) (1 2 3))
+ (match '((a . 1) (b . 2) (c . 3))
+ (((x . y) ___) (list x y))))
+
+(test "real ellipses" '((a b c) (1 2 3))
+ (match '((a . 1) (b . 2) (c . 3))
+ (((x . y) ...) (list x y))))
+
+(test "vector ellipses" '(1 2 3 (a b c) (1 2 3))
+ (match '#(1 2 3 (a . 1) (b . 2) (c . 3))
+ (#(a b c (hd . tl) ...) (list a b c hd tl))))
+
+(test "pred ellipses" '(1 2 3)
+ (match '(1 2 3)
+ (((? odd? n) ___) n)
+ (((? number? n) ___) n)))
+
+(test "failure continuation" 'ok
+ (match '(1 2)
+ ((a . b) (=> next) (if (even? a) 'fail (next)))
+ ((a . b) 'ok)))
+
+(test "let" '(o k)
+ (match-let ((x 'ok) (y '(o k))) y))
+
+(test "let*" '(f o o f)
+ (match-let* ((x 'f) (y 'o) ((z w) (list y x))) (list x y z w)))
+
+(test "getter car" '(1 2)
+ (match '(1 . 2) (((get! a) . b) (list (a) b))))
+
+(test "getter cdr" '(1 2)
+ (match '(1 . 2) ((a . (get! b)) (list a (b)))))
+
+(test "getter vector" '(1 2 3)
+ (match '#(1 2 3) (#((get! a) b c) (list (a) b c))))
+
+(test "setter car" '(3 . 2)
+ (let ((x (cons 1 2)))
+ (match x (((set! a) . b) (a 3)))
+ x))
+
+(test "setter cdr" '(1 . 3)
+ (let ((x (cons 1 2)))
+ (match x ((a . (set! b)) (b 3)))
+ x))
+
+(test "setter vector" '#(1 0 3)
+ (let ((x (vector 1 2 3)))
+ (match x (#(a (set! b) c) (b 0)))
+ x))
+
+(test "single tail" '((a b) (1 2) (c . 3))
+ (match '((a . 1) (b . 2) (c . 3))
+ (((x . y) ... last) (list x y last))))
+
+(test "single tail 2" '((a b) (1 2) 3)
+ (match '((a . 1) (b . 2) 3)
+ (((x . y) ... last) (list x y last))))
+
+(test "multiple tail" '((a b) (1 2) (c . 3) (d . 4) (e . 5))
+ (match '((a . 1) (b . 2) (c . 3) (d . 4) (e . 5))
+ (((x . y) ... u v w) (list x y u v w))))
+
+(test "tail against improper list" #f
+ (match '(a b c d e f . g)
+ ((x ... y u v w) (list x y u v w))
+ (else #f)))
+
+(test "Riastradh quasiquote" '(2 3)
+ (match '(1 2 3) (`(1 ,b ,c) (list b c))))
+
+(test "trivial tree search" '(1 2 3)
+ (match '(1 2 3) ((_ *** (a b c)) (list a b c))))
+
+(test "simple tree search" '(1 2 3)
+ (match '(x (1 2 3)) ((_ *** (a b c)) (list a b c))))
+
+(test "deep tree search" '(1 2 3)
+ (match '(x (x (x (1 2 3)))) ((_ *** (a b c)) (list a b c))))
+
+(test "non-tail tree search" '(1 2 3)
+ (match '(x (x (x a b c (1 2 3) d e f))) ((_ *** (a b c)) (list a b c))))
+
+(test "restricted tree search" '(1 2 3)
+ (match '(x (x (x a b c (1 2 3) d e f))) (('x *** (a b c)) (list a b c))))
+
+(test "fail restricted tree search" #f
+ (match '(x (y (x a b c (1 2 3) d e f)))
+ (('x *** (a b c)) (list a b c))
+ (else #f)))
+
+(test "sxml tree search" '(((href . "http://synthcode.com/")) ("synthcode"))
+ (match '(p (ul (li a (b c) (a (^ (href . "http://synthcode.com/"))
"synthcode") d e f)))
+ (((or 'p 'ul 'li 'b) *** ('a ('^ attrs ...) text ...))
+ (list attrs text))
+ (else #f)))
+
+(test "failed sxml tree search" #f
+ (match '(p (ol (li a (b c) (a (^ (href . "http://synthcode.com/"))
"synthcode") d e f)))
+ (((or 'p 'ul 'li 'b) *** ('a ('^ attrs ...) text ...))
+ (list attrs text))
+ (else #f)))
+
+(test "collect tree search"
+ '((p ul li) ((href . "http://synthcode.com/")) ("synthcode"))
+ (match '(p (ul (li a (b c) (a (^ (href . "http://synthcode.com/"))
"synthcode") d e f)))
+ (((and tag (or 'p 'ul 'li 'b)) *** ('a ('^ attrs ...) text ...))
+ (list tag attrs text))
+ (else #f)))
+
+(test "anded tail pattern" '(1 2)
+ (match '(1 2 3) ((and (a ... b) x) a)))
+
+(test "anded search pattern" '(a b c)
+ (match '(a (b (c d))) ((and (p *** 'd) x) p)))
+
+(test "joined tail" '(1 2)
+ (match '(1 2 3) ((and (a ... b) x) a)))
+
+(test "list ..1" '(a b c)
+ (match '(a b c) ((x ..1) x)))
+
+(test "list ..1 failed" #f
+ (match '()
+ ((x ..1) x)
+ (else #f)))
+
+(test "list ..1 with predicate" '(a b c)
+ (match '(a b c)
+ (((and x (? symbol?)) ..1) x)))
+
+(test "list ..1 with failed predicate" #f
+ (match '(a b 3)
+ (((and x (? symbol?)) ..1) x)
+ (else #f)))
+
+(test-end)
diff --git a/test-suite/tests/statprof.test b/test-suite/tests/statprof.test
index 66af55f..7ce39ba 100644
--- a/test-suite/tests/statprof.test
+++ b/test-suite/tests/statprof.test
@@ -40,8 +40,11 @@
;; make sure these are compiled so we're not swamped in `eval'
(define (make-func)
+ ;; Disable partial evaluation so that `(+ i i)' doesn't get
+ ;; stripped.
(compile '(lambda (n)
- (do ((i 0 (+ i 1))) ((= 200 i)) (+ i i)))))
+ (do ((i 0 (+ i 1))) ((= 200 i)) (+ i i)))
+ #:opts '(#:partial-eval? #f)))
(define run-test
(compile '(lambda (num-calls funcs)
(let loop ((x num-calls) (funcs funcs))
@@ -50,11 +53,11 @@
((car funcs) x)
(loop (- x 1) (cdr funcs))))))))
- (let ((num-calls 40000)
+ (let ((num-calls 80000)
(funcs (circular-list (make-func) (make-func) (make-func))))
- ;; Run test. 10000 us == 100 Hz.
- (statprof-reset 0 10000 #f #f)
+ ;; Run test. 20000 us == 200 Hz.
+ (statprof-reset 0 20000 #f #f)
(statprof-start)
(run-test num-calls funcs)
(statprof-stop)
diff --git a/test-suite/tests/threads.test b/test-suite/tests/threads.test
index db002f2..85a7c38 100644
--- a/test-suite/tests/threads.test
+++ b/test-suite/tests/threads.test
@@ -36,6 +36,13 @@
(equal? '(a b c) '(a b c))
a))
+(define (stack-cleanup depth)
+ ;; Clean up stack space for DEPTH words. This is defined here so that
+ ;; `peval' doesn't inline it.
+ (let cleanup ((i depth))
+ (and (> i 0)
+ (begin (cleanup (1- i)) i))))
+
(if (provided? 'threads)
(begin
@@ -403,9 +410,7 @@
(g (let ((m (make-mutex))) (lock-mutex m) m))
;; Avoid false references to M on the stack.
- (let cleanup ((i 20))
- (and (> i 0)
- (begin (cleanup (1- i)) i)))
+ (stack-cleanup 20)
(gc) (gc)
(let ((m (g)))
diff --git a/test-suite/tests/tree-il.test b/test-suite/tests/tree-il.test
index 0f445fd..9a7f051 100644
--- a/test-suite/tests/tree-il.test
+++ b/test-suite/tests/tree-il.test
@@ -23,6 +23,7 @@
#:use-module (system base pmatch)
#:use-module (system base message)
#:use-module (language tree-il)
+ #:use-module (language tree-il primitives)
#:use-module (language glil)
#:use-module (srfi srfi-13))
@@ -34,26 +35,28 @@
(post-order! (lambda (x) (set! (tree-il-src x) #f))
x))
-(define-syntax assert-scheme->glil
- (syntax-rules ()
- ((_ in out)
- (let ((tree-il (strip-source
- (compile 'in #:from 'scheme #:to 'tree-il))))
- (pass-if 'in
- (equal? (unparse-glil (compile tree-il #:from 'tree-il #:to
'glil))
- 'out))))))
-
(define-syntax assert-tree-il->glil
- (syntax-rules ()
- ((_ in pat test ...)
+ (syntax-rules (with-partial-evaluation without-partial-evaluation
+ with-options)
+ ((_ with-partial-evaluation in pat test ...)
+ (assert-tree-il->glil with-options (#:partial-eval? #t)
+ in pat test ...))
+ ((_ without-partial-evaluation in pat test ...)
+ (assert-tree-il->glil with-options (#:partial-eval? #f)
+ in pat test ...))
+ ((_ with-options opts in pat test ...)
(let ((exp 'in))
(pass-if 'in
(let ((glil (unparse-glil
(compile (strip-source (parse-tree-il exp))
- #:from 'tree-il #:to 'glil))))
+ #:from 'tree-il #:to 'glil
+ #:opts 'opts))))
(pmatch glil
(pat (guard test ...) #t)
- (else #f))))))))
+ (else #f))))))
+ ((_ in pat test ...)
+ (assert-tree-il->glil with-partial-evaluation
+ in pat test ...))))
(define-syntax pass-if-tree-il->scheme
(syntax-rules ()
@@ -66,6 +69,39 @@
(pat (guard guard-exp) #t)
(_ #f))))))
+(define peval
+ ;; The partial evaluator.
+ (@@ (language tree-il optimize) peval))
+
+(define-syntax pass-if-peval
+ (syntax-rules (resolve-primitives)
+ ((_ in pat)
+ (pass-if-peval in pat
+ (compile 'in #:from 'scheme #:to 'tree-il)))
+ ((_ resolve-primitives in pat)
+ (pass-if-peval in pat
+ (expand-primitives!
+ (resolve-primitives!
+ (compile 'in #:from 'scheme #:to 'tree-il)
+ (current-module)))))
+ ((_ in pat code)
+ (pass-if 'in
+ (let ((evaled (unparse-tree-il (peval code))))
+ (pmatch evaled
+ (pat #t)
+ (_ (pk 'peval-mismatch)
+ ((@ (ice-9 pretty-print) pretty-print)
+ 'in)
+ (newline)
+ ((@ (ice-9 pretty-print) pretty-print)
+ evaled)
+ (newline)
+ ((@ (ice-9 pretty-print) pretty-print)
+ 'pat)
+ (newline)
+ #f)))))))
+
+
(with-test-prefix "tree-il->scheme"
(pass-if-tree-il->scheme
(case-lambda ((a) a) ((b c) (list b c)))
@@ -107,8 +143,8 @@
(const 1) (call return 1)
(label ,l2) (const 2) (call return 1))
(eq? l1 l2))
-
- (assert-tree-il->glil
+
+ (assert-tree-il->glil without-partial-evaluation
(begin (if (toplevel foo) (const 1) (const 2)) (const #f))
(program () (std-prelude 0 0 #f) (label _) (toplevel ref foo) (branch
br-if-not ,l1) (branch br ,l2)
(label ,l3) (label ,l4) (const #f) (call return 1))
@@ -137,21 +173,21 @@
(call return 1))))
(with-test-prefix "lexical refs"
- (assert-tree-il->glil
+ (assert-tree-il->glil without-partial-evaluation
(let (x) (y) ((const 1)) (lexical x y))
(program () (std-prelude 0 1 #f) (label _)
(const 1) (bind (x #f 0)) (lexical #t #f set 0)
(lexical #t #f ref 0) (call return 1)
(unbind)))
- (assert-tree-il->glil
+ (assert-tree-il->glil without-partial-evaluation
(let (x) (y) ((const 1)) (begin (lexical x y) (const #f)))
(program () (std-prelude 0 1 #f) (label _)
(const 1) (bind (x #f 0)) (lexical #t #f set 0)
(const #f) (call return 1)
(unbind)))
- (assert-tree-il->glil
+ (assert-tree-il->glil without-partial-evaluation
(let (x) (y) ((const 1)) (primcall null? (lexical x y)))
(program () (std-prelude 0 1 #f) (label _)
(const 1) (bind (x #f 0)) (lexical #t #f set 0)
@@ -270,7 +306,7 @@
(toplevel ref bar)
(call return 1)))
- (assert-tree-il->glil
+ (assert-tree-il->glil without-partial-evaluation
(begin (toplevel bar) (const #f))
(program () (std-prelude 0 0 #f) (label _)
(toplevel ref bar) (call drop 1)
@@ -332,13 +368,14 @@
(const #f) (call return 1)))
(assert-tree-il->glil
+ ;; This gets simplified by `peval'.
(primcall null? (const 2))
(program () (std-prelude 0 0 #f) (label _)
- (const 2) (call null? 1) (call return 1))))
+ (const #f) (call return 1))))
(with-test-prefix "letrec"
;; simple bindings -> let
- (assert-tree-il->glil
+ (assert-tree-il->glil without-partial-evaluation
(letrec (x y) (x1 y1) ((const 10) (const 20))
(call (toplevel foo) (lexical x x1) (lexical y y1)))
(program () (std-prelude 0 2 #f) (label _)
@@ -351,7 +388,7 @@
(unbind)))
;; complex bindings -> box and set! within let
- (assert-tree-il->glil
+ (assert-tree-il->glil without-partial-evaluation
(letrec (x y) (x1 y1) ((call (toplevel foo)) (call (toplevel bar)))
(primcall + (lexical x x1) (lexical y y1)))
(program () (std-prelude 0 4 #f) (label _)
@@ -367,7 +404,7 @@
(call add 2) (call return 1) (unbind)))
;; complex bindings in letrec* -> box and set! in order
- (assert-tree-il->glil
+ (assert-tree-il->glil without-partial-evaluation
(letrec* (x y) (x1 y1) ((call (toplevel foo)) (call (toplevel bar)))
(primcall + (lexical x x1) (lexical y y1)))
(program () (std-prelude 0 2 #f) (label _)
@@ -383,7 +420,7 @@
(call add 2) (call return 1) (unbind)))
;; simple bindings in letrec* -> equivalent to letrec
- (assert-tree-il->glil
+ (assert-tree-il->glil without-partial-evaluation
(letrec* (x y) (xx yy) ((const 1) (const 2))
(lexical y yy))
(program () (std-prelude 0 1 #f) (label _)
@@ -487,9 +524,10 @@
(const #t) (call return 1)))
(assert-tree-il->glil
+ ;; This gets simplified by `peval'.
(primcall null? (begin (const #f) (const 2)))
(program () (std-prelude 0 0 #f) (label _)
- (const 2) (call null? 1) (call return 1))))
+ (const #f) (call return 1))))
(with-test-prefix "values"
(assert-tree-il->glil
@@ -514,7 +552,7 @@
;; FIXME: binding info for or-hacked locals might bork the disassembler,
;; and could be tightened in any case
(with-test-prefix "the or hack"
- (assert-tree-il->glil
+ (assert-tree-il->glil without-partial-evaluation
(let (x) (y) ((const 1))
(if (lexical x y)
(lexical x y)
@@ -532,7 +570,7 @@
(eq? l1 l2))
;; second bound var is unreferenced
- (assert-tree-il->glil
+ (assert-tree-il->glil without-partial-evaluation
(let (x) (y) ((const 1))
(if (lexical x y)
(lexical x y)
@@ -587,6 +625,693 @@
(call tail-call 1))))
+(with-test-prefix "partial evaluation"
+
+ (pass-if-peval
+ ;; First order, primitive.
+ (let ((x 1) (y 2)) (+ x y))
+ (const 3))
+
+ (pass-if-peval
+ ;; First order, thunk.
+ (let ((x 1) (y 2))
+ (let ((f (lambda () (+ x y))))
+ (f)))
+ (const 3))
+
+ (pass-if-peval resolve-primitives
+ ;; First order, let-values (requires primitive expansion for
+ ;; `call-with-values'.)
+ (let ((x 0))
+ (call-with-values
+ (lambda () (if (zero? x) (values 1 2) (values 3 4)))
+ (lambda (a b)
+ (+ a b))))
+ (const 3))
+
+ (pass-if-peval
+ ;; First order, coalesced, mutability preserved.
+ (cons 0 (cons 1 (cons 2 (list 3 4 5))))
+ (primcall list
+ (const 0) (const 1) (const 2) (const 3) (const 4) (const 5)))
+
+ (pass-if-peval
+ ;; First order, coalesced, mutability preserved.
+ (cons 0 (cons 1 (cons 2 (list 3 4 5))))
+ ;; This must not be a constant.
+ (primcall list
+ (const 0) (const 1) (const 2) (const 3) (const 4) (const 5)))
+
+ (pass-if-peval
+ ;; First order, coalesced, immutability preserved.
+ (cons 0 (cons 1 (cons 2 '(3 4 5))))
+ (primcall cons (const 0)
+ (primcall cons (const 1)
+ (primcall cons (const 2)
+ (const (3 4 5))))))
+
+ ;; These two tests doesn't work any more because we changed the way we
+ ;; deal with constants -- now the algorithm will see a construction as
+ ;; being bound to the lexical, so it won't propagate it. It can't
+ ;; even propagate it in the case that it is only referenced once,
+ ;; because:
+ ;;
+ ;; (let ((x (cons 1 2))) (lambda () x))
+ ;;
+ ;; is not the same as
+ ;;
+ ;; (lambda () (cons 1 2))
+ ;;
+ ;; Perhaps if we determined that not only was it only referenced once,
+ ;; it was not closed over by a lambda, then we could propagate it, and
+ ;; re-enable these two tests.
+ ;;
+ #;
+ (pass-if-peval
+ ;; First order, mutability preserved.
+ (let loop ((i 3) (r '()))
+ (if (zero? i)
+ r
+ (loop (1- i) (cons (cons i i) r))))
+ (primcall list
+ (primcall cons (const 1) (const 1))
+ (primcall cons (const 2) (const 2))
+ (primcall cons (const 3) (const 3))))
+ ;;
+ ;; See above.
+ #;
+ (pass-if-peval
+ ;; First order, evaluated.
+ (let loop ((i 7)
+ (r '()))
+ (if (<= i 0)
+ (car r)
+ (loop (1- i) (cons i r))))
+ (const 1))
+
+ ;; Instead here are tests for what happens for the above cases: they
+ ;; unroll but they don't fold.
+ (pass-if-peval
+ (let loop ((i 3) (r '()))
+ (if (zero? i)
+ r
+ (loop (1- i) (cons (cons i i) r))))
+ (letrec (loop) (_) (_)
+ (let (r) (_)
+ ((primcall list
+ (primcall cons (const 3) (const 3))))
+ (let (r) (_)
+ ((primcall cons
+ (primcall cons (const 2) (const 2))
+ (lexical r _)))
+ (primcall cons
+ (primcall cons (const 1) (const 1))
+ (lexical r _))))))
+
+ ;; See above.
+ (pass-if-peval
+ (let loop ((i 4)
+ (r '()))
+ (if (<= i 0)
+ (car r)
+ (loop (1- i) (cons i r))))
+ (letrec (loop) (_) (_)
+ (let (r) (_)
+ ((primcall list (const 4)))
+ (let (r) (_)
+ ((primcall cons
+ (const 3)
+ (lexical r _)))
+ (let (r) (_)
+ ((primcall cons
+ (const 2)
+ (lexical r _)))
+ (let (r) (_)
+ ((primcall cons
+ (const 1)
+ (lexical r _)))
+ (primcall car
+ (lexical r _))))))))
+
+ ;; Static sums.
+ (pass-if-peval
+ (let loop ((l '(1 2 3 4)) (sum 0))
+ (if (null? l)
+ sum
+ (loop (cdr l) (+ sum (car l)))))
+ (const 10))
+
+ (pass-if-peval
+ ;; Mutability preserved.
+ ((lambda (x y z) (list x y z)) 1 2 3)
+ (primcall list (const 1) (const 2) (const 3)))
+
+ (pass-if-peval
+ ;; Don't propagate effect-free expressions that operate on mutable
+ ;; objects.
+ (let* ((x (list 1))
+ (y (car x)))
+ (set-car! x 0)
+ y)
+ (let (x) (_) ((primcall list (const 1)))
+ (let (y) (_) ((primcall car (lexical x _)))
+ (seq
+ (call (toplevel set-car!) (lexical x _) (const 0))
+ (lexical y _)))))
+
+ (pass-if-peval
+ ;; Don't propagate effect-free expressions that operate on objects we
+ ;; don't know about.
+ (let ((y (car x)))
+ (set-car! x 0)
+ y)
+ (let (y) (_) ((primcall car (toplevel x)))
+ (seq
+ (call (toplevel set-car!) (toplevel x) (const 0))
+ (lexical y _))))
+
+ (pass-if-peval
+ ;; Infinite recursion
+ ((lambda (x) (x x)) (lambda (x) (x x)))
+ (let (x) (_)
+ ((lambda _
+ (lambda-case
+ (((x) _ _ _ _ _)
+ (call (lexical x _) (lexical x _))))))
+ (call (lexical x _) (lexical x _))))
+
+ (pass-if-peval
+ ;; First order, aliased primitive.
+ (let* ((x *) (y (x 1 2))) y)
+ (const 2))
+
+ (pass-if-peval
+ ;; First order, shadowed primitive.
+ (begin
+ (define (+ x y) (pk x y))
+ (+ 1 2))
+ (seq
+ (define +
+ (lambda (_)
+ (lambda-case
+ (((x y) #f #f #f () (_ _))
+ (call (toplevel pk) (lexical x _) (lexical y _))))))
+ (call (toplevel +) (const 1) (const 2))))
+
+ (pass-if-peval
+ ;; First-order, effects preserved.
+ (let ((x 2))
+ (do-something!)
+ x)
+ (seq
+ (call (toplevel do-something!))
+ (const 2)))
+
+ (pass-if-peval
+ ;; First order, residual bindings removed.
+ (let ((x 2) (y 3))
+ (* (+ x y) z))
+ (primcall * (const 5) (toplevel z)))
+
+ (pass-if-peval
+ ;; First order, with lambda.
+ (define (foo x)
+ (define (bar z) (* z z))
+ (+ x (bar 3)))
+ (define foo
+ (lambda (_)
+ (lambda-case
+ (((x) #f #f #f () (_))
+ (primcall + (lexical x _) (const 9)))))))
+
+ (pass-if-peval
+ ;; First order, with lambda inlined & specialized twice.
+ (let ((f (lambda (x y)
+ (+ (* x top) y)))
+ (x 2)
+ (y 3))
+ (+ (* x (f x y))
+ (f something x)))
+ (primcall +
+ (primcall *
+ (const 2)
+ (primcall + ; (f 2 3)
+ (primcall *
+ (const 2)
+ (toplevel top))
+ (const 3)))
+ (let (x) (_) ((toplevel something)) ; (f something 2)
+ ;; `something' is not const, so preserve order of
+ ;; effects with a lexical binding.
+ (primcall +
+ (primcall *
+ (lexical x _)
+ (toplevel top))
+ (const 2)))))
+
+ (pass-if-peval
+ ;; First order, with lambda inlined & specialized 3 times.
+ (let ((f (lambda (x y) (if (> x 0) y x))))
+ (+ (f -1 0)
+ (f 1 0)
+ (f -1 y)
+ (f 2 y)
+ (f z y)))
+ (primcall +
+ (const -1) ; (f -1 0)
+ (const 0) ; (f 1 0)
+ (seq (toplevel y) (const -1)) ; (f -1 y)
+ (toplevel y) ; (f 2 y)
+ (let (x y) (_ _) ((toplevel z) (toplevel y)) ; (f z y)
+ (if (primcall > (lexical x _) (const 0))
+ (lexical y _)
+ (lexical x _)))))
+
+ (pass-if-peval
+ ;; First order, conditional.
+ (let ((y 2))
+ (lambda (x)
+ (if (> y 0)
+ (display x)
+ 'never-reached)))
+ (lambda ()
+ (lambda-case
+ (((x) #f #f #f () (_))
+ (call (toplevel display) (lexical x _))))))
+
+ (pass-if-peval
+ ;; First order, recursive procedure.
+ (letrec ((fibo (lambda (n)
+ (if (<= n 1)
+ n
+ (+ (fibo (- n 1))
+ (fibo (- n 2)))))))
+ (fibo 4))
+ (const 3))
+
+ (pass-if-peval
+ ;; Don't propagate toplevel references, as intervening expressions
+ ;; could alter their bindings.
+ (let ((x top))
+ (foo)
+ x)
+ (let (x) (_) ((toplevel top))
+ (seq
+ (call (toplevel foo))
+ (lexical x _))))
+
+ (pass-if-peval
+ ;; Higher order.
+ ((lambda (f x)
+ (f (* (car x) (cadr x))))
+ (lambda (x)
+ (+ x 1))
+ '(2 3))
+ (const 7))
+
+ (pass-if-peval
+ ;; Higher order with optional argument (default value).
+ ((lambda* (f x #:optional (y 0))
+ (+ y (f (* (car x) (cadr x)))))
+ (lambda (x)
+ (+ x 1))
+ '(2 3))
+ (const 7))
+
+ (pass-if-peval
+ ;; Higher order with optional argument (caller-supplied value).
+ ((lambda* (f x #:optional (y 0))
+ (+ y (f (* (car x) (cadr x)))))
+ (lambda (x)
+ (+ x 1))
+ '(2 3)
+ 35)
+ (const 42))
+
+ (pass-if-peval
+ ;; Higher order with optional argument (side-effecting default
+ ;; value).
+ ((lambda* (f x #:optional (y (foo)))
+ (+ y (f (* (car x) (cadr x)))))
+ (lambda (x)
+ (+ x 1))
+ '(2 3))
+ (let (y) (_) ((call (toplevel foo)))
+ (primcall + (lexical y _) (const 7))))
+
+ (pass-if-peval
+ ;; Higher order with optional argument (caller-supplied value).
+ ((lambda* (f x #:optional (y (foo)))
+ (+ y (f (* (car x) (cadr x)))))
+ (lambda (x)
+ (+ x 1))
+ '(2 3)
+ 35)
+ (const 42))
+
+ (pass-if-peval
+ ;; Higher order.
+ ((lambda (f) (f x)) (lambda (x) x))
+ (toplevel x))
+
+ (pass-if-peval
+ ;; Bug reported at
+ ;; <https://lists.gnu.org/archive/html/bug-guile/2011-09/msg00019.html>.
+ (let ((fold (lambda (f g) (f (g top)))))
+ (fold 1+ (lambda (x) x)))
+ (primcall 1+ (toplevel top)))
+
+ (pass-if-peval
+ ;; Procedure not inlined when residual code contains recursive calls.
+ ;; <http://debbugs.gnu.org/9542>
+ (letrec ((fold (lambda (f x3 b null? car cdr)
+ (if (null? x3)
+ b
+ (f (car x3) (fold f (cdr x3) b null? car cdr))))))
+ (fold * x 1 zero? (lambda (x1) x1) (lambda (x2) (- x2 1))))
+ (letrec (fold) (_) (_)
+ (call (lexical fold _)
+ (primitive *)
+ (toplevel x)
+ (const 1)
+ (primitive zero?)
+ (lambda ()
+ (lambda-case
+ (((x1) #f #f #f () (_))
+ (lexical x1 _))))
+ (lambda ()
+ (lambda-case
+ (((x2) #f #f #f () (_))
+ (primcall - (lexical x2 _) (const 1))))))))
+
+ (pass-if "inlined lambdas are alpha-renamed"
+ ;; In this example, `make-adder' is inlined more than once; thus,
+ ;; they should use different gensyms for their arguments, because
+ ;; the various optimization passes assume uniquely-named variables.
+ ;;
+ ;; Bug reported at
+ ;; <https://lists.gnu.org/archive/html/bug-guile/2011-09/msg00019.html> and
+ ;; <https://lists.gnu.org/archive/html/bug-guile/2011-09/msg00029.html>.
+ (pmatch (unparse-tree-il
+ (peval (compile
+ '(let ((make-adder
+ (lambda (x) (lambda (y) (+ x y)))))
+ (cons (make-adder 1) (make-adder 2)))
+ #:to 'tree-il)))
+ ((primcall cons
+ (lambda ()
+ (lambda-case
+ (((y) #f #f #f () (,gensym1))
+ (primcall +
+ (const 1)
+ (lexical y ,ref1)))))
+ (lambda ()
+ (lambda-case
+ (((y) #f #f #f () (,gensym2))
+ (primcall +
+ (const 2)
+ (lexical y ,ref2))))))
+ (and (eq? gensym1 ref1)
+ (eq? gensym2 ref2)
+ (not (eq? gensym1 gensym2))))
+ (_ #f)))
+
+ (pass-if-peval
+ ;; Higher order, mutually recursive procedures.
+ (letrec ((even? (lambda (x)
+ (or (= 0 x)
+ (odd? (- x 1)))))
+ (odd? (lambda (x)
+ (not (even? (- x 1))))))
+ (and (even? 4) (odd? 7)))
+ (const #t))
+
+ ;;
+ ;; Below are cases where constant propagation should bail out.
+ ;;
+
+ (pass-if-peval
+ ;; Non-constant lexical is not propagated.
+ (let ((v (make-vector 6 #f)))
+ (lambda (n)
+ (vector-set! v n n)))
+ (let (v) (_)
+ ((call (toplevel make-vector) (const 6) (const #f)))
+ (lambda ()
+ (lambda-case
+ (((n) #f #f #f () (_))
+ (call (toplevel vector-set!)
+ (lexical v _) (lexical n _) (lexical n _)))))))
+
+ (pass-if-peval
+ ;; Mutable lexical is not propagated.
+ (let ((v (vector 1 2 3)))
+ (lambda ()
+ v))
+ (let (v) (_)
+ ((primcall vector (const 1) (const 2) (const 3)))
+ (lambda ()
+ (lambda-case
+ ((() #f #f #f () ())
+ (lexical v _))))))
+
+ (pass-if-peval
+ ;; Lexical that is not provably pure is not inlined nor propagated.
+ (let* ((x (if (> p q) (frob!) (display 'chbouib)))
+ (y (* x 2)))
+ (+ x x y))
+ (let (x) (_) ((if (primcall > (toplevel p) (toplevel q))
+ (call (toplevel frob!))
+ (call (toplevel display) (const chbouib))))
+ (let (y) (_) ((primcall * (lexical x _) (const 2)))
+ (primcall +
+ (lexical x _) (lexical x _) (lexical y _)))))
+
+ (pass-if-peval
+ ;; Non-constant arguments not propagated to lambdas.
+ ((lambda (x y z)
+ (vector-set! x 0 0)
+ (set-car! y 0)
+ (set-cdr! z '()))
+ (vector 1 2 3)
+ (make-list 10)
+ (list 1 2 3))
+ (let (x y z) (_ _ _)
+ ((primcall vector (const 1) (const 2) (const 3))
+ (call (toplevel make-list) (const 10))
+ (primcall list (const 1) (const 2) (const 3)))
+ (seq
+ (call (toplevel vector-set!)
+ (lexical x _) (const 0) (const 0))
+ (seq (call (toplevel set-car!)
+ (lexical y _) (const 0))
+ (call (toplevel set-cdr!)
+ (lexical z _) (const ()))))))
+
+ (pass-if-peval
+ (let ((foo top-foo) (bar top-bar))
+ (let* ((g (lambda (x y) (+ x y)))
+ (f (lambda (g x) (g x x))))
+ (+ (f g foo) (f g bar))))
+ (let (foo bar) (_ _) ((toplevel top-foo) (toplevel top-bar))
+ (primcall +
+ (primcall + (lexical foo _) (lexical foo _))
+ (primcall + (lexical bar _) (lexical bar _)))))
+
+ (pass-if-peval
+ ;; Fresh objects are not turned into constants, nor are constants
+ ;; turned into fresh objects.
+ (let* ((c '(2 3))
+ (x (cons 1 c))
+ (y (cons 0 x)))
+ y)
+ (let (x) (_) ((primcall cons (const 1) (const (2 3))))
+ (primcall cons (const 0) (lexical x _))))
+
+ (pass-if-peval
+ ;; Bindings mutated.
+ (let ((x 2))
+ (set! x 3)
+ x)
+ (let (x) (_) ((const 2))
+ (seq
+ (set! (lexical x _) (const 3))
+ (lexical x _))))
+
+ (pass-if-peval
+ ;; Bindings mutated.
+ (letrec ((x 0)
+ (f (lambda ()
+ (set! x (+ 1 x))
+ x)))
+ (frob f) ; may mutate `x'
+ x)
+ (letrec (x) (_) ((const 0))
+ (seq
+ (call (toplevel frob) (lambda _ _))
+ (lexical x _))))
+
+ (pass-if-peval
+ ;; Bindings mutated.
+ (letrec ((f (lambda (x)
+ (set! f (lambda (_) x))
+ x)))
+ (f 2))
+ (letrec _ . _))
+
+ (pass-if-peval
+ ;; Bindings possibly mutated.
+ (let ((x (make-foo)))
+ (frob! x) ; may mutate `x'
+ x)
+ (let (x) (_) ((call (toplevel make-foo)))
+ (seq
+ (call (toplevel frob!) (lexical x _))
+ (lexical x _))))
+
+ (pass-if-peval
+ ;; Inlining stops at recursive calls with dynamic arguments.
+ (let loop ((x x))
+ (if (< x 0) x (loop (1- x))))
+ (letrec (loop) (_) ((lambda (_)
+ (lambda-case
+ (((x) #f #f #f () (_))
+ (if _ _
+ (call (lexical loop _)
+ (primcall 1-
+ (lexical x _))))))))
+ (call (lexical loop _) (toplevel x))))
+
+ (pass-if-peval
+ ;; Recursion on the 2nd argument is fully evaluated.
+ (let ((x (top)))
+ (let loop ((x x) (y 10))
+ (if (> y 0)
+ (loop x (1- y))
+ (foo x y))))
+ (let (x) (_) ((call (toplevel top)))
+ (letrec (loop) (_) (_)
+ (call (toplevel foo) (lexical x _) (const 0)))))
+
+ (pass-if-peval
+ ;; Inlining aborted when residual code contains recursive calls.
+ ;;
+ ;; <http://debbugs.gnu.org/9542>
+ (let loop ((x x) (y 0))
+ (if (> y 0)
+ (loop (1- x) (1- y))
+ (if (< x 0)
+ x
+ (loop (1+ x) (1+ y)))))
+ (letrec (loop) (_) ((lambda (_)
+ (lambda-case
+ (((x y) #f #f #f () (_ _))
+ (if (primcall >
+ (lexical y _) (const 0))
+ _ _)))))
+ (call (lexical loop _) (toplevel x) (const 0))))
+
+ (pass-if-peval
+ ;; Infinite recursion: `peval' gives up and leaves it as is.
+ (letrec ((f (lambda (x) (g (1- x))))
+ (g (lambda (x) (h (1+ x))))
+ (h (lambda (x) (f x))))
+ (f 0))
+ (letrec _ . _))
+
+ (pass-if-peval
+ ;; Constant folding: cons
+ (begin (cons 1 2) #f)
+ (const #f))
+
+ (pass-if-peval
+ ;; Constant folding: cons
+ (begin (cons (foo) 2) #f)
+ (seq (call (toplevel foo)) (const #f)))
+
+ (pass-if-peval
+ ;; Constant folding: cons
+ (if (cons 0 0) 1 2)
+ (const 1))
+
+ (pass-if-peval
+ ;; Constant folding: car+cons
+ (car (cons 1 0))
+ (const 1))
+
+ (pass-if-peval
+ ;; Constant folding: cdr+cons
+ (cdr (cons 1 0))
+ (const 0))
+
+ (pass-if-peval
+ ;; Constant folding: car+cons, impure
+ (car (cons 1 (bar)))
+ (seq (call (toplevel bar)) (const 1)))
+
+ (pass-if-peval
+ ;; Constant folding: cdr+cons, impure
+ (cdr (cons (bar) 0))
+ (seq (call (toplevel bar)) (const 0)))
+
+ (pass-if-peval
+ ;; Constant folding: car+list
+ (car (list 1 0))
+ (const 1))
+
+ (pass-if-peval
+ ;; Constant folding: cdr+list
+ (cdr (list 1 0))
+ (primcall list (const 0)))
+
+ (pass-if-peval
+ ;; Constant folding: car+list, impure
+ (car (list 1 (bar)))
+ (seq (call (toplevel bar)) (const 1)))
+
+ (pass-if-peval
+ ;; Constant folding: cdr+list, impure
+ (cdr (list (bar) 0))
+ (seq (call (toplevel bar)) (primcall list (const 0))))
+
+ (pass-if-peval
+ resolve-primitives
+ ;; Prompt is removed if tag is unreferenced
+ (let ((tag (make-prompt-tag)))
+ (call-with-prompt tag
+ (lambda () 1)
+ (lambda args args)))
+ (const 1))
+
+ (pass-if-peval
+ resolve-primitives
+ ;; Prompt is removed if tag is unreferenced, with explicit stem
+ (let ((tag (make-prompt-tag "foo")))
+ (call-with-prompt tag
+ (lambda () 1)
+ (lambda args args)))
+ (const 1))
+
+ (pass-if-peval
+ resolve-primitives
+ ;; `while' without `break' or `continue' has no prompts and gets its
+ ;; condition folded. Unfortunately the outer `lp' does not yet get
+ ;; elided.
+ (while #t #t)
+ (letrec (lp) (_)
+ ((lambda _
+ (lambda-case
+ ((() #f #f #f () ())
+ (letrec (loop) (_)
+ ((lambda _
+ (lambda-case
+ ((() #f #f #f () ())
+ (call (lexical loop _))))))
+ (call (lexical loop _)))))))
+ (call (lexical lp _)))))
+
+
+
(with-test-prefix "tree-il-fold"
(pass-if "empty tree"
diff --git a/test-suite/tests/web-http.test b/test-suite/tests/web-http.test
index c191c6e..e4d6efb 100644
--- a/test-suite/tests/web-http.test
+++ b/test-suite/tests/web-http.test
@@ -89,6 +89,9 @@
(pass-if-parse date "Tue, 15 Nov 1994 08:12:31 GMT"
(string->date "Tue, 15 Nov 1994 08:12:31 +0000"
"~a, ~d ~b ~Y ~H:~M:~S ~z"))
+ (pass-if-parse date "Wed, 7 Sep 2011 11:25:00 GMT"
+ (string->date "Wed, 7 Sep 2011 11:25:00 +0000"
+ "~a,~e ~b ~Y ~H:~M:~S ~z"))
(pass-if-parse-error date "Tue, 15 Nov 1994 08:12:31 EST" date)
(pass-if-any-error date "Tue, 15 Qux 1994 08:12:31 EST")
diff --git a/test-suite/vm/t-match.scm b/test-suite/vm/t-match.scm
index ed56ae7..2032fbe 100644
--- a/test-suite/vm/t-match.scm
+++ b/test-suite/vm/t-match.scm
@@ -12,7 +12,7 @@
(define (matches? obj)
; (format #t "matches? ~a~%" obj)
(match obj
- (($ stuff) #t)
+ (($ <stuff>) #t)
; (blurps #t)
("hello" #t)
(else #f)))
hooks/post-receive
--
GNU Guile
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Guile-commits] GNU Guile branch, master, updated. v2.1.0-88-g840cf0d,
Andy Wingo <=