diff options
54 files changed, 10211 insertions, 9681 deletions
@@ -239,25 +239,28 @@ switches specific to Guile you may find useful in some circumstances. Cross building Guile ===================================================== -As of guile-1.5.x, the build process uses compiled C files for -snarfing, and (indirectly, through libtool) for linking, and uses the -guile executable for generating documentation. +As of Guile 2.0.x, the build process produces a library, libguile-2.0, +along with Guile "object files" containing bytecode to be interpreted by +Guile's virtual machine. The bytecode format depends on the endianness +and word size of the host CPU. -When cross building guile, you first need to configure, build and -install guile for your build host. +Thus, when cross building Guile, you first need to configure, build and +install it for your build host. -Then, you may configure guile for cross building, eg: +Then, you may configure Guile for cross building: ./configure --host=i686-pc-cygwin --disable-shared -A C compiler for the build system is required. The default is -"PATH=/usr/bin:$PATH cc". If that doesn't suit it can be specified -with the CC_FOR_BUILD variable in the usual way, for instance +A C compiler for the build system is required. If that doesn't suit it +can be specified with the CC_FOR_BUILD variable in the usual way, for +instance: ./configure --host=m68k-unknown-linux-gnu CC_FOR_BUILD=/my/local/gcc Guile for the build system can be specified similarly with the -GUILE_FOR_BUILD variable, it defaults to just "guile". +GUILE_FOR_BUILD variable, which defaults to whatever `guile' executable +is found in $PATH. It must have the exact same version has the Guile +that you intend to cross-build. Using Guile Without Installing It ========================================= diff --git a/acinclude.m4 b/acinclude.m4 index ba17e939a..f9603d97d 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -530,6 +530,56 @@ AC_DEFUN([GUILE_UNISTRING_ICONVEH_VALUES], [ GUILE_UNISTRING_CONSTANT([iconveh_escape_sequence]) ]) +dnl GUILE_CHECK_VERSION +dnl +dnl Ensure that $GUILE_FOR_BUILD has the same version as ourselves. +AC_DEFUN([GUILE_CHECK_VERSION], [ + if ! "$GUILE_FOR_BUILD" --version > /dev/null 2>&1; then + AC_MSG_ERROR([failed to run `$GUILE_FOR_BUILD']) + fi + + dnl Use MAJOR.MINOR.MICRO instead of (version) so that developers can + dnl freely shoot themselves in the foot by using, say, 2.0.3.80 and + dnl 2.0.3.42. + AC_CACHE_CHECK([the version of $GUILE_FOR_BUILD], + [ac_cv_guile_for_build_version], + [ac_cv_guile_for_build_version="`"$GUILE_FOR_BUILD" \ + -c '(format #t "~a.~a.~a" (major-version) (minor-version) (micro-version))'`" + ]) + + if test "$ac_cv_guile_for_build_version" != \ + "$GUILE_MAJOR_VERSION.$GUILE_MINOR_VERSION.$GUILE_MICRO_VERSION" + then + AC_MSG_ERROR([building Guile $PACKAGE_VERSION but `$GUILE_FOR_BUILD' has version $ac_cv_guile_for_build_version"]) + fi +]) + +dnl GUILE_CHECK_GUILE_FOR_BUILD +dnl +dnl When cross-compiling, ensure that $GUILE_FOR_BUILD is suitable. +AC_DEFUN([GUILE_CHECK_GUILE_FOR_BUILD], [ + if test "$cross_compiling" = "yes"; then + if test "x$GUILE_FOR_BUILD" = "x"; then + AC_PATH_PROG([GUILE_FOR_BUILD], [guile], [not-found]) + if test "$GUILE_FOR_BUILD" = "not-found"; then + AC_MSG_ERROR([a native Guile $PACKAGE_VERSION is required to cross-build Guile]) + fi + fi + AC_MSG_CHECKING([guile for build]) + AC_MSG_RESULT([$GUILE_FOR_BUILD]) + + dnl Since there is currently no distinction between the run-time + dnl search path, %load-path, and the compiler's search path, + dnl $GUILE_FOR_BUILD must be a native build of the very same version. + GUILE_CHECK_VERSION + else + GUILE_FOR_BUILD='this-value-will-never-be-used' + fi + + AC_ARG_VAR([GUILE_FOR_BUILD], [guile for the build system]) + AM_SUBST_NOTMAKE([GUILE_FOR_BUILD]) +]) + dnl Declare file $1 to be a script that needs configuring, dnl and arrange to make it executable in the process. AC_DEFUN([GUILE_CONFIG_SCRIPT],[AC_CONFIG_FILES([$1],[chmod +x $1])]) @@ -26,6 +26,9 @@ AM_V_GUILEC_0 = @echo " GUILEC" $@; SUFFIXES = .scm .go .scm.go: - $(AM_V_GUILEC)GUILE_AUTO_COMPILE=0 \ + $(AM_V_GUILEC)GUILE_AUTO_COMPILE=0 \ $(top_builddir)/meta/uninstalled-env \ - guild compile $(GUILE_WARNINGS) -o "$@" "$<" + guild compile --target="$(host)" $(GUILE_WARNINGS) \ + -L "$(abs_srcdir)" -L "$(abs_builddir)" \ + -L "$(abs_top_srcdir)/guile-readline" \ + -o "$@" "$<" diff --git a/benchmark-suite/lib.scm b/benchmark-suite/lib.scm index a6feed818..4ba0e3e1c 100644 --- a/benchmark-suite/lib.scm +++ b/benchmark-suite/lib.scm @@ -1,5 +1,5 @@ ;;;; benchmark-suite/lib.scm --- generic support for benchmarking -;;;; Copyright (C) 2002, 2006 Free Software Foundation, Inc. +;;;; Copyright (C) 2002, 2006, 2011 Free Software Foundation, Inc. ;;;; ;;;; This program is free software; you can redistribute it and/or ;;;; modify it under the terms of the GNU Lesser General Public @@ -348,8 +348,7 @@ (append (current-benchmark-prefix) (list name))) ;;; A fluid containing the current benchmark prefix, as a list. -(define prefix-fluid (make-fluid)) -(fluid-set! prefix-fluid '()) +(define prefix-fluid (make-fluid '())) (define (current-benchmark-prefix) (fluid-ref prefix-fluid)) diff --git a/configure.ac b/configure.ac index a88fd1b7f..02ce7d05b 100644 --- a/configure.ac +++ b/configure.ac @@ -1259,7 +1259,7 @@ save_LIBS="$LIBS" LIBS="$BDW_GC_LIBS $LIBS" CFLAGS="$BDW_GC_CFLAGS $CFLAGS" -AC_CHECK_FUNCS([GC_do_blocking GC_call_with_gc_active GC_pthread_exit GC_pthread_cancel GC_allow_register_threads GC_pthread_sigmask GC_set_start_callback GC_get_suspend_signal GC_move_disappearing_link]) +AC_CHECK_FUNCS([GC_do_blocking GC_call_with_gc_active GC_pthread_exit GC_pthread_cancel GC_allow_register_threads GC_pthread_sigmask GC_set_start_callback GC_get_suspend_signal GC_move_disappearing_link GC_get_heap_usage_safe GC_get_free_space_divisor]) # Though the `GC_do_blocking ()' symbol is present in GC 7.1, it is not # declared, and has a different type (returning void instead of @@ -1511,20 +1511,7 @@ AC_SUBST(CCLD_FOR_BUILD) HOST_CC="$CC_FOR_BUILD" AC_SUBST(HOST_CC) -if test "$cross_compiling" = "yes"; then - AC_MSG_CHECKING(guile for build) - GUILE_FOR_BUILD="${GUILE_FOR_BUILD-guile}" -else - GUILE_FOR_BUILD='this-value-will-never-be-used' -fi - -## AC_MSG_CHECKING("if we are cross compiling") -## AC_MSG_RESULT($cross_compiling) -if test "$cross_compiling" = "yes"; then - AC_MSG_RESULT($GUILE_FOR_BUILD) -fi -AC_ARG_VAR(GUILE_FOR_BUILD,[guile for build system]) -AM_SUBST_NOTMAKE(GUILE_FOR_BUILD) +GUILE_CHECK_GUILE_FOR_BUILD ## If we're using GCC, ask for aggressive warnings. GCC_CFLAGS="" diff --git a/doc/ref/api-data.texi b/doc/ref/api-data.texi index f9b39b61d..5017165c0 100644 --- a/doc/ref/api-data.texi +++ b/doc/ref/api-data.texi @@ -4546,7 +4546,8 @@ Fill bytevector @var{bv} with @var{fill}, a byte. @deffnx {C Function} scm_bytevector_copy_x (source, source_start, target, target_start, len) Copy @var{len} bytes from @var{source} into @var{target}, starting reading from @var{source-start} (a positive index within @var{source}) -and start writing at @var{target-start}. +and start writing at @var{target-start}. It is permitted for the +@var{source} and @var{target} regions to overlap. @end deffn @deffn {Scheme Procedure} bytevector-copy bv diff --git a/doc/ref/api-evaluation.texi b/doc/ref/api-evaluation.texi index aa7d9c7bb..6a09bef60 100644 --- a/doc/ref/api-evaluation.texi +++ b/doc/ref/api-evaluation.texi @@ -640,6 +640,13 @@ Use @var{lang} as the source language of @var{file}. If this option is omitted, Use @var{lang} as the target language of @var{file}. If this option is omitted, @code{objcode} is assumed. +@item -T @var{target} +@itemx --target=@var{target} +Produce bytecode for @var{target} instead of @var{%host-type} +(@pxref{Build Config, %host-type}). Target must be a valid GNU triplet, +such as @code{armv5tel-unknown-linux-gnueabi} (@pxref{Specifying Target +Triplets,,, autoconf, GNU Autoconf Manual}). + @end table Each @var{file} is assumed to be UTF-8-encoded, unless it contains a diff --git a/doc/ref/intro.texi b/doc/ref/intro.texi index b2bc5dffd..e94948f92 100644 --- a/doc/ref/intro.texi +++ b/doc/ref/intro.texi @@ -1,6 +1,6 @@ @c -*-texinfo-*- @c This is part of the GNU Guile Reference Manual. -@c Copyright (C) 1996, 1997, 2000, 2001, 2002, 2003, 2004, 2006, 2010 +@c Copyright (C) 1996, 1997, 2000, 2001, 2002, 2003, 2004, 2006, 2010, 2011 @c Free Software Foundation, Inc. @c See the file guile.texi for copying conditions. @@ -8,9 +8,9 @@ @chapter Introduction Guile is an implementation of the Scheme programming language. Scheme -(@url{schemers.org}) is an elegant and conceptually simple dialect of -Lisp, originated by Guy Steele and Gerald Sussman, and since evolved -by the series of reports known as RnRS (the +(@url{http://schemers.org/}) is an elegant and conceptually simple +dialect of Lisp, originated by Guy Steele and Gerald Sussman, and since +evolved by the series of reports known as RnRS (the @tex Revised$^n$ @end tex diff --git a/doc/ref/scheme-reading.texi b/doc/ref/scheme-reading.texi index 6ec80a57c..f147ea00d 100644 --- a/doc/ref/scheme-reading.texi +++ b/doc/ref/scheme-reading.texi @@ -1,6 +1,6 @@ @c -*-texinfo-*- @c This is part of the GNU Guile Reference Manual. -@c Copyright (C) 1996, 1997, 2000, 2001, 2002, 2003, 2004 +@c Copyright (C) 1996, 1997, 2000, 2001, 2002, 2003, 2004, 2011 @c Free Software Foundation, Inc. @c See the file guile.texi for copying conditions. @@ -10,7 +10,7 @@ @itemize @bullet @item -The website @url{http://www.schemers.org} is a good starting point for +The website @url{http://www.schemers.org/} is a good starting point for all things Scheme. @item diff --git a/doc/ref/srfi-modules.texi b/doc/ref/srfi-modules.texi index 0517fc427..1e0ba2be3 100644 --- a/doc/ref/srfi-modules.texi +++ b/doc/ref/srfi-modules.texi @@ -16,7 +16,7 @@ Guile has support for a number of SRFIs. This chapter gives an overview over the available SRFIs and some usage hints. For complete documentation, design rationales and further examples, we advise you to get the relevant SRFI documents from the SRFI home page -@url{http://srfi.schemers.org}. +@url{http://srfi.schemers.org/}. @menu * About SRFI Usage:: What to know about Guile's SRFI support. diff --git a/doc/ref/web.texi b/doc/ref/web.texi index 63b6f3ff0..a08cd2cce 100644 --- a/doc/ref/web.texi +++ b/doc/ref/web.texi @@ -847,7 +847,7 @@ indicating any etag, or a list of entity tags. Indicates that a response should proceed if and only if the resource has been modified since the given date. @example -(parse-header if-modified-since "Tue, 15 Nov 1994 08:12:31 GMT") +(parse-header 'if-modified-since "Tue, 15 Nov 1994 08:12:31 GMT") @result{} #<date ...> @end example @end deftypevr diff --git a/libguile/bytevectors.c b/libguile/bytevectors.c index 17ad4429f..811e8d886 100644 --- a/libguile/bytevectors.c +++ b/libguile/bytevectors.c @@ -596,9 +596,9 @@ SCM_DEFINE (scm_bytevector_copy_x, "bytevector-copy!", 5, 0, 0, if (SCM_UNLIKELY (c_target_start + c_len > c_target_len)) scm_out_of_range (FUNC_NAME, target_start); - memcpy (c_target + c_target_start, - c_source + c_source_start, - c_len); + memmove (c_target + c_target_start, + c_source + c_source_start, + c_len); return SCM_UNSPECIFIED; } diff --git a/libguile/fluids.c b/libguile/fluids.c index 944615606..0c9c03ff8 100644 --- a/libguile/fluids.c +++ b/libguile/fluids.c @@ -68,7 +68,7 @@ grow_dynamic_state (SCM state) /* Assume the assignment below is atomic. */ len = allocated_fluids_len; - new_fluids = scm_c_make_vector (len, SCM_BOOL_F); + new_fluids = scm_c_make_vector (len, SCM_UNDEFINED); for (i = 0; i < old_len; i++) SCM_SIMPLE_VECTOR_SET (new_fluids, i, @@ -103,14 +103,14 @@ scm_i_with_fluids_print (SCM exp, SCM port, scm_print_state *pstate SCM_UNUSED) /* Return a new fluid. */ static SCM -new_fluid () +new_fluid (SCM init) { SCM fluid; size_t trial, n; - /* Fluids are pointerless cells: the first word is the type tag; the second - word is the fluid number. */ - fluid = SCM_PACK_POINTER (scm_gc_malloc_pointerless (sizeof (scm_t_cell), "fluid")); + /* Fluids hold the type tag and the fluid number in the first word, + and the default value in the second word. */ + fluid = scm_cell (scm_tc7_fluid, SCM_UNPACK (init)); SCM_SET_CELL_TYPE (fluid, scm_tc7_fluid); scm_dynwind_begin (0); @@ -157,7 +157,7 @@ new_fluid () } allocated_fluids[n] = SCM_UNPACK_POINTER (fluid); - SCM_SET_CELL_WORD_1 (fluid, (scm_t_bits) n); + SCM_SET_CELL_WORD_0 (fluid, (scm_tc7_fluid | (n << 8))); GC_GENERAL_REGISTER_DISAPPEARING_LINK (&allocated_fluids[n], SCM_HEAP_OBJECT_BASE (fluid)); @@ -166,13 +166,19 @@ new_fluid () /* Now null out values. We could (and probably should) do this when the fluid is collected instead of now. */ - scm_i_reset_fluid (n, SCM_BOOL_F); + scm_i_reset_fluid (n); return fluid; } -SCM_DEFINE (scm_make_fluid, "make-fluid", 0, 0, 0, - (), +SCM +scm_make_fluid (void) +{ + return new_fluid (SCM_BOOL_F); +} + +SCM_DEFINE (scm_make_fluid_with_default, "make-fluid", 0, 1, 0, + (SCM dflt), "Return a newly created fluid.\n" "Fluids are objects that can hold one\n" "value per dynamic state. That is, modifications to this value are\n" @@ -180,9 +186,9 @@ SCM_DEFINE (scm_make_fluid, "make-fluid", 0, 0, 0, "the modifying code. When a new dynamic state is constructed, it\n" "inherits the values from its parent. Because each thread normally executes\n" "with its own dynamic state, you can use fluids for thread local storage.") -#define FUNC_NAME s_scm_make_fluid +#define FUNC_NAME s_scm_make_fluid_with_default { - return new_fluid (); + return new_fluid (SCM_UNBNDP (dflt) ? SCM_BOOL_F : dflt); } #undef FUNC_NAME @@ -191,9 +197,7 @@ SCM_DEFINE (scm_make_unbound_fluid, "make-unbound-fluid", 0, 0, 0, "Make a fluid that is initially unbound.") #define FUNC_NAME s_scm_make_unbound_fluid { - SCM f = new_fluid (); - scm_fluid_set_x (f, SCM_UNDEFINED); - return f; + return new_fluid (SCM_UNDEFINED); } #undef FUNC_NAME @@ -217,6 +221,7 @@ scm_is_fluid (SCM obj) static SCM fluid_ref (SCM fluid) { + SCM ret; SCM fluids = DYNAMIC_STATE_FLUIDS (SCM_I_CURRENT_THREAD->dynamic_state); if (SCM_UNLIKELY (FLUID_NUM (fluid) >= SCM_SIMPLE_VECTOR_LENGTH (fluids))) @@ -227,7 +232,11 @@ fluid_ref (SCM fluid) fluids = DYNAMIC_STATE_FLUIDS (SCM_I_CURRENT_THREAD->dynamic_state); } - return SCM_SIMPLE_VECTOR_REF (fluids, FLUID_NUM (fluid)); + ret = SCM_SIMPLE_VECTOR_REF (fluids, FLUID_NUM (fluid)); + if (SCM_UNBNDP (ret)) + return SCM_I_FLUID_DEFAULT (fluid); + else + return ret; } SCM_DEFINE (scm_fluid_ref, "fluid-ref", 1, 0, 0, @@ -274,6 +283,9 @@ SCM_DEFINE (scm_fluid_unset_x, "fluid-unset!", 1, 0, 0, "Unset the value associated with @var{fluid}.") #define FUNC_NAME s_scm_fluid_unset_x { + /* FIXME: really unset the default value, too? The current test + suite demands it, but I would prefer not to. */ + SCM_SET_CELL_OBJECT_1 (fluid, SCM_UNDEFINED); return scm_fluid_set_x (fluid, SCM_UNDEFINED); } #undef FUNC_NAME diff --git a/libguile/fluids.h b/libguile/fluids.h index 09de7366f..7d134b922 100644 --- a/libguile/fluids.h +++ b/libguile/fluids.h @@ -56,10 +56,12 @@ #define SCM_FLUID_P(x) (SCM_HAS_TYP7 (x, scm_tc7_fluid)) #ifdef BUILDING_LIBGUILE -#define SCM_I_FLUID_NUM(x) ((size_t)SCM_CELL_WORD_1(x)) +#define SCM_I_FLUID_NUM(x) ((size_t)(SCM_CELL_WORD_0 (x) >> 8)) +#define SCM_I_FLUID_DEFAULT(x) (SCM_CELL_OBJECT_1 (x)) #endif SCM_API SCM scm_make_fluid (void); +SCM_API SCM scm_make_fluid_with_default (SCM dflt); SCM_API SCM scm_make_unbound_fluid (void); SCM_API int scm_is_fluid (SCM obj); SCM_API SCM scm_fluid_p (SCM fl); diff --git a/libguile/foreign.c b/libguile/foreign.c index 973bfc3bd..bb88cf563 100644 --- a/libguile/foreign.c +++ b/libguile/foreign.c @@ -1124,7 +1124,7 @@ SCM_DEFINE (scm_procedure_to_pointer, "procedure->pointer", 3, 0, 0, "type should match @var{return-type} and @var{arg-types}.\n") #define FUNC_NAME s_scm_procedure_to_pointer { - SCM pointer; + SCM cif_pointer, pointer; ffi_cif *cif; ffi_status err; void *closure, *executable; @@ -1141,8 +1141,17 @@ SCM_DEFINE (scm_procedure_to_pointer, "procedure->pointer", 3, 0, 0, SCM_MISC_ERROR ("`ffi_prep_closure_loc' failed", SCM_EOL); } + /* CIF points to GC-managed memory and it should remain as long as + POINTER (see below) is live. Wrap it in a Scheme pointer to then + hold a weak reference on it. */ + cif_pointer = scm_from_pointer (cif, NULL); + if (closure == executable) - pointer = scm_from_pointer (executable, ffi_closure_free); + { + pointer = scm_from_pointer (executable, ffi_closure_free); + register_weak_reference (pointer, + scm_list_2 (proc, cif_pointer)); + } else { /* CLOSURE needs to be freed eventually. However, since @@ -1155,7 +1164,8 @@ SCM_DEFINE (scm_procedure_to_pointer, "procedure->pointer", 3, 0, 0, pointer = scm_from_pointer (executable, NULL); friend = scm_from_pointer (closure, ffi_closure_free); - register_weak_reference (pointer, friend); + register_weak_reference (pointer, + scm_list_3 (proc, cif_pointer, friend)); } return pointer; diff --git a/libguile/gc-malloc.c b/libguile/gc-malloc.c index 537021a21..3b64159cb 100644 --- a/libguile/gc-malloc.c +++ b/libguile/gc-malloc.c @@ -88,12 +88,14 @@ scm_realloc (void *mem, size_t size) { void *ptr; + scm_gc_register_allocation (size); + SCM_SYSCALL (ptr = realloc (mem, size)); if (ptr) return ptr; /* Time is hard: trigger a full, ``stop-the-world'' GC, and try again. */ - GC_gcollect (); + GC_gcollect_and_unmap (); SCM_SYSCALL (ptr = realloc (mem, size)); if (ptr) diff --git a/libguile/gc.c b/libguile/gc.c index 2680dd6f9..71e713383 100644 --- a/libguile/gc.c +++ b/libguile/gc.c @@ -27,6 +27,7 @@ #include <stdio.h> #include <errno.h> #include <string.h> +#include <math.h> #ifdef __ia64__ #include <ucontext.h> @@ -188,6 +189,32 @@ SCM_DEFINE (scm_set_debug_cell_accesses_x, "set-debug-cell-accesses!", 1, 0, 0, #endif /* SCM_DEBUG_CELL_ACCESSES == 1 */ + +/* Compatibility. */ + +#ifndef HAVE_GC_GET_HEAP_USAGE_SAFE +static void +GC_get_heap_usage_safe (GC_word *pheap_size, GC_word *pfree_bytes, + GC_word *punmapped_bytes, GC_word *pbytes_since_gc, + GC_word *ptotal_bytes) +{ + *pheap_size = GC_get_heap_size (); + *pfree_bytes = GC_get_free_bytes (); + *punmapped_bytes = GC_get_unmapped_bytes (); + *pbytes_since_gc = GC_get_bytes_since_gc (); + *ptotal_bytes = GC_get_total_bytes (); +} +#endif + +#ifndef HAVE_GC_GET_FREE_SPACE_DIVISOR +static GC_word +GC_get_free_space_divisor (void) +{ + return GC_free_space_divisor; +} +#endif + + /* Hooks. */ scm_t_c_hook scm_before_gc_c_hook; scm_t_c_hook scm_before_mark_c_hook; @@ -209,6 +236,9 @@ unsigned long scm_gc_ports_collected = 0; static long gc_time_taken = 0; static long gc_start_time = 0; +static unsigned long free_space_divisor; +static unsigned long minimum_free_space_divisor; +static double target_free_space_divisor; static unsigned long protected_obj_count = 0; @@ -270,14 +300,12 @@ SCM_DEFINE (scm_gc_stats, "gc-stats", 0, 0, 0, #define FUNC_NAME s_scm_gc_stats { SCM answer; - size_t heap_size, free_bytes, bytes_since_gc, total_bytes; + GC_word heap_size, free_bytes, unmapped_bytes, bytes_since_gc, total_bytes; size_t gc_times; - heap_size = GC_get_heap_size (); - free_bytes = GC_get_free_bytes (); - bytes_since_gc = GC_get_bytes_since_gc (); - total_bytes = GC_get_total_bytes (); - gc_times = GC_gc_no; + GC_get_heap_usage_safe (&heap_size, &free_bytes, &unmapped_bytes, + &bytes_since_gc, &total_bytes); + gc_times = GC_gc_no; answer = scm_list_n (scm_cons (sym_gc_time_taken, scm_from_long (gc_time_taken)), @@ -579,7 +607,10 @@ void scm_storage_prehistory () { GC_all_interior_pointers = 0; - GC_set_free_space_divisor (scm_getenv_int ("GC_FREE_SPACE_DIVISOR", 3)); + free_space_divisor = scm_getenv_int ("GC_FREE_SPACE_DIVISOR", 3); + minimum_free_space_divisor = free_space_divisor; + target_free_space_divisor = free_space_divisor; + GC_set_free_space_divisor (free_space_divisor); GC_INIT (); @@ -723,7 +754,8 @@ accumulate_gc_timer (void * hook_data SCM_UNUSED, void *data SCM_UNUSED) { if (gc_start_time) - { long now = scm_c_get_internal_run_time (); + { + long now = scm_c_get_internal_run_time (); gc_time_taken += now - gc_start_time; gc_start_time = 0; } @@ -731,6 +763,168 @@ accumulate_gc_timer (void * hook_data SCM_UNUSED, return NULL; } +/* Return some idea of the memory footprint of a process, in bytes. + Currently only works on Linux systems. */ +static size_t +get_image_size (void) +{ + unsigned long size, resident, share; + size_t ret = 0; + + FILE *fp = fopen ("/proc/self/statm", "r"); + + if (fp && fscanf (fp, "%lu %lu %lu", &size, &resident, &share) == 3) + ret = resident * 4096; + + if (fp) + fclose (fp); + + return ret; +} + +/* These are discussed later. */ +static size_t bytes_until_gc; +static scm_i_pthread_mutex_t bytes_until_gc_lock = SCM_I_PTHREAD_MUTEX_INITIALIZER; + +/* Make GC run more frequently when the process image size is growing, + measured against the number of bytes allocated through the GC. + + If Guile is allocating at a GC-managed heap size H, libgc will tend + to limit the process image size to H*N. But if at the same time the + user program is mallocating at a rate M bytes per GC-allocated byte, + then the process stabilizes at H*N*M -- assuming that collecting data + will result in malloc'd data being freed. It doesn't take a very + large M for this to be a bad situation. To limit the image size, + Guile should GC more often -- the bigger the M, the more often. + + Numeric functions that produce bigger and bigger integers are + pessimal, because M is an increasing function of time. Here is an + example of such a function: + + (define (factorial n) + (define (fac n acc) + (if (<= n 1) + acc + (fac (1- n) (* n acc)))) + (fac n 1)) + + It is possible for a process to grow for reasons that will not be + solved by faster GC. In that case M will be estimated as + artificially high for a while, and so GC will happen more often on + the Guile side. But when it stabilizes, Guile can ease back the GC + frequency. + + The key is to measure process image growth, not mallocation rate. + For maximum effectiveness, Guile reacts quickly to process growth, + and exponentially backs down when the process stops growing. + + See http://thread.gmane.org/gmane.lisp.guile.devel/12552/focus=12936 + for further discussion. + */ +static void * +adjust_gc_frequency (void * hook_data SCM_UNUSED, + void *fn_data SCM_UNUSED, + void *data SCM_UNUSED) +{ + static size_t prev_image_size = 0; + static size_t prev_bytes_alloced = 0; + size_t image_size; + size_t bytes_alloced; + + scm_i_pthread_mutex_lock (&bytes_until_gc_lock); + bytes_until_gc = GC_get_heap_size (); + scm_i_pthread_mutex_unlock (&bytes_until_gc_lock); + + image_size = get_image_size (); + bytes_alloced = GC_get_total_bytes (); + +#define HEURISTICS_DEBUG 0 + +#if HEURISTICS_DEBUG + fprintf (stderr, "prev image / alloced: %lu / %lu\n", prev_image_size, prev_bytes_alloced); + fprintf (stderr, " image / alloced: %lu / %lu\n", image_size, bytes_alloced); + fprintf (stderr, "divisor %lu / %f\n", free_space_divisor, target_free_space_divisor); +#endif + + if (prev_image_size && bytes_alloced != prev_bytes_alloced) + { + double growth_rate, new_target_free_space_divisor; + double decay_factor = 0.5; + double hysteresis = 0.1; + + growth_rate = ((double) image_size - prev_image_size) + / ((double)bytes_alloced - prev_bytes_alloced); + +#if HEURISTICS_DEBUG + fprintf (stderr, "growth rate %f\n", growth_rate); +#endif + + new_target_free_space_divisor = minimum_free_space_divisor; + + if (growth_rate > 0) + new_target_free_space_divisor *= 1.0 + growth_rate; + +#if HEURISTICS_DEBUG + fprintf (stderr, "new divisor %f\n", new_target_free_space_divisor); +#endif + + if (new_target_free_space_divisor < target_free_space_divisor) + /* Decay down. */ + target_free_space_divisor = + (decay_factor * target_free_space_divisor + + (1.0 - decay_factor) * new_target_free_space_divisor); + else + /* Jump up. */ + target_free_space_divisor = new_target_free_space_divisor; + +#if HEURISTICS_DEBUG + fprintf (stderr, "new target divisor %f\n", target_free_space_divisor); +#endif + + if (free_space_divisor + 0.5 + hysteresis < target_free_space_divisor + || free_space_divisor - 0.5 - hysteresis > target_free_space_divisor) + { + free_space_divisor = lround (target_free_space_divisor); +#if HEURISTICS_DEBUG + fprintf (stderr, "new divisor %lu\n", free_space_divisor); +#endif + GC_set_free_space_divisor (free_space_divisor); + } + } + + prev_image_size = image_size; + prev_bytes_alloced = bytes_alloced; + + return NULL; +} + +/* The adjust_gc_frequency routine handles transients in the process + image size. It can't handle instense non-GC-managed steady-state + allocation though, as it decays the FSD at steady-state down to its + minimum value. + + The only real way to handle continuous, high non-GC allocation is to + let the GC know about it. This routine can handle non-GC allocation + rates that are similar in size to the GC-managed heap size. + */ + +void +scm_gc_register_allocation (size_t size) +{ + scm_i_pthread_mutex_lock (&bytes_until_gc_lock); + if (bytes_until_gc - size > bytes_until_gc) + { + bytes_until_gc = GC_get_heap_size (); + scm_i_pthread_mutex_unlock (&bytes_until_gc_lock); + GC_gcollect (); + } + else + { + bytes_until_gc -= size; + scm_i_pthread_mutex_unlock (&bytes_until_gc_lock); + } +} + @@ -833,6 +1027,16 @@ scm_init_gc () scm_c_hook_add (&scm_before_gc_c_hook, start_gc_timer, NULL, 0); scm_c_hook_add (&scm_after_gc_c_hook, accumulate_gc_timer, NULL, 0); +#if HAVE_GC_GET_HEAP_USAGE_SAFE + /* GC_get_heap_usage does not take a lock, and so can run in the GC + start hook. */ + scm_c_hook_add (&scm_before_gc_c_hook, adjust_gc_frequency, NULL, 0); +#else + /* GC_get_heap_usage might take a lock (and did from 7.2alpha1 to + 7.2alpha7), so call it in the after_gc_hook. */ + scm_c_hook_add (&scm_after_gc_c_hook, adjust_gc_frequency, NULL, 0); +#endif + #ifdef HAVE_GC_SET_START_CALLBACK GC_set_start_callback (run_before_gc_c_hook); #endif diff --git a/libguile/gc.h b/libguile/gc.h index 08d2c15b5..30d06995e 100644 --- a/libguile/gc.h +++ b/libguile/gc.h @@ -157,6 +157,8 @@ SCM_INTERNAL void scm_i_gc (const char *what); SCM_API void scm_gc_mark (SCM p); SCM_API void scm_gc_sweep (void); +SCM_API void scm_gc_register_allocation (size_t size); + SCM_API void *scm_malloc (size_t size) SCM_MALLOC; SCM_API void *scm_calloc (size_t size) SCM_MALLOC; SCM_API void *scm_realloc (void *mem, size_t size); diff --git a/libguile/load.c b/libguile/load.c index d6c318b98..14f411aa7 100644 --- a/libguile/load.c +++ b/libguile/load.c @@ -1043,8 +1043,7 @@ scm_init_load () scm_loc_fresh_auto_compile = SCM_VARIABLE_LOC (scm_c_define ("%fresh-auto-compile", SCM_BOOL_F)); - the_reader = scm_make_fluid (); - scm_fluid_set_x (the_reader, SCM_BOOL_F); + the_reader = scm_make_fluid_with_default (SCM_BOOL_F); scm_c_define("current-reader", the_reader); scm_c_define ("load-compiled", diff --git a/libguile/memoize.c b/libguile/memoize.c index 9a2caad38..1be276b36 100644 --- a/libguile/memoize.c +++ b/libguile/memoize.c @@ -292,7 +292,7 @@ memoize (SCM exp, SCM env) int nreq, nopt, ntotal; req = REF (exp, LAMBDA_CASE, REQ); - rest = REF (exp, LAMBDA_CASE, REST); + rest = scm_not (scm_not (REF (exp, LAMBDA_CASE, REST))); opt = REF (exp, LAMBDA_CASE, OPT); kw = REF (exp, LAMBDA_CASE, KW); inits = REF (exp, LAMBDA_CASE, INITS); diff --git a/libguile/objcodes.c b/libguile/objcodes.c index 27ea111a6..5db8ed3e2 100644 --- a/libguile/objcodes.c +++ b/libguile/objcodes.c @@ -32,6 +32,7 @@ #include <sys/types.h> #include <assert.h> #include <alignof.h> +#include <byteswap.h> #include <full-read.h> @@ -45,11 +46,55 @@ The length of the header must be a multiple of 8 bytes. */ verify (((sizeof (SCM_OBJCODE_COOKIE) - 1) & 7) == 0); +/* Endianness and word size of the compilation target. */ +static SCM target_endianness_var = SCM_BOOL_F; +static SCM target_word_size_var = SCM_BOOL_F; + /* * Objcode type */ +/* Endianness of the build machine. */ +#ifdef WORDS_BIGENDIAN +# define NATIVE_ENDIANNESS 'B' +#else +# define NATIVE_ENDIANNESS 'L' +#endif + +/* Return the endianness of the compilation target. */ +static char +target_endianness (void) +{ + if (scm_is_true (target_endianness_var)) + return scm_is_eq (scm_call_0 (scm_variable_ref (target_endianness_var)), + scm_endianness_big) ? 'B' : 'L'; + else + return NATIVE_ENDIANNESS; +} + +/* Return the word size in bytes of the compilation target. */ +static size_t +target_word_size (void) +{ + if (scm_is_true (target_word_size_var)) + return scm_to_size_t (scm_call_0 + (scm_variable_ref (target_word_size_var))); + else + return sizeof (void *); +} + +/* Convert X, which is in byte order ENDIANNESS, to its native + representation. */ +static inline uint32_t +to_native_order (uint32_t x, char endianness) +{ + if (endianness == NATIVE_ENDIANNESS) + return x; + else + return bswap_32 (x); +} + static void verify_cookie (char *cookie, struct stat *st, int map_fd, void *map_addr) #define FUNC_NAME "make_objcode_from_file" @@ -183,7 +228,7 @@ make_objcode_from_file (int fd) verify_cookie (cookie, &st, -1, NULL); - return scm_bytecode_to_objcode (bv); + return scm_bytecode_to_native_objcode (bv); } #endif } @@ -254,12 +299,12 @@ SCM_DEFINE (scm_objcode_meta, "objcode-meta", 1, 0, 0, } #undef FUNC_NAME -SCM_DEFINE (scm_bytecode_to_objcode, "bytecode->objcode", 1, 0, 0, - (SCM bytecode), - "") -#define FUNC_NAME s_scm_bytecode_to_objcode +/* Turn BYTECODE into objcode encoded for ENDIANNESS and WORD_SIZE. */ +static SCM +bytecode_to_objcode (SCM bytecode, char endianness, size_t word_size) +#define FUNC_NAME "bytecode->objcode" { - size_t size; + size_t size, len, metalen; const scm_t_uint8 *c_bytecode; struct scm_objcode *data; @@ -268,14 +313,17 @@ SCM_DEFINE (scm_bytecode_to_objcode, "bytecode->objcode", 1, 0, 0, size = SCM_BYTEVECTOR_LENGTH (bytecode); c_bytecode = (const scm_t_uint8*)SCM_BYTEVECTOR_CONTENTS (bytecode); - + SCM_ASSERT_RANGE (0, bytecode, size >= sizeof(struct scm_objcode)); data = (struct scm_objcode*)c_bytecode; - if (data->len + data->metalen != (size - sizeof (*data))) + len = to_native_order (data->len, endianness); + metalen = to_native_order (data->metalen, endianness); + + if (len + metalen != (size - sizeof (*data))) scm_misc_error (FUNC_NAME, "bad bytevector size (~a != ~a)", scm_list_2 (scm_from_size_t (size), - scm_from_uint32 (sizeof (*data) + data->len + data->metalen))); + scm_from_uint32 (sizeof (*data) + len + metalen))); /* foolishly, we assume that as long as bytecode is around, that c_bytecode will be of the same length; perhaps a bad assumption? */ @@ -284,6 +332,27 @@ SCM_DEFINE (scm_bytecode_to_objcode, "bytecode->objcode", 1, 0, 0, } #undef FUNC_NAME +SCM_DEFINE (scm_bytecode_to_objcode, "bytecode->objcode", 1, 0, 0, + (SCM bytecode), + "") +#define FUNC_NAME s_scm_bytecode_to_objcode +{ + /* Assume we're called from Scheme, which known that to do with + `target-type'. */ + return bytecode_to_objcode (bytecode, target_endianness (), + target_word_size ()); +} +#undef FUNC_NAME + +/* Like `bytecode->objcode', but ignore the `target-type' fluid. This + is useful for native compilation that happens lazily---e.g., direct + calls to this function from libguile itself. */ +SCM +scm_bytecode_to_native_objcode (SCM bytecode) +{ + return bytecode_to_objcode (bytecode, NATIVE_ENDIANNESS, sizeof (void *)); +} + SCM_DEFINE (scm_load_objcode, "load-objcode", 1, 0, 0, (SCM file), "") @@ -324,41 +393,37 @@ SCM_DEFINE (scm_write_objcode, "write-objcode", 2, 0, 0, "") #define FUNC_NAME s_scm_write_objcode { - static SCM target_endianness_var = SCM_BOOL_F; - static SCM target_word_size_var = SCM_BOOL_F; - char cookie[sizeof (SCM_OBJCODE_COOKIE) - 1]; - char endianness; - char word_size; + char endianness, word_size; + size_t total_size; SCM_VALIDATE_OBJCODE (1, objcode); SCM_VALIDATE_OUTPUT_PORT (2, port); - - if (scm_is_false (target_endianness_var)) - target_endianness_var = - scm_c_public_variable ("system base target", "target-endianness"); - if (scm_is_false (target_word_size_var)) - target_word_size_var = - scm_c_public_variable ("system base target", "target-word-size"); - - endianness = - scm_is_eq (scm_call_0 (scm_variable_ref (target_endianness_var)), - scm_endianness_big) ? 'B' : 'L'; - switch (scm_to_int (scm_call_0 (scm_variable_ref (target_word_size_var)))) + endianness = target_endianness (); + switch (target_word_size ()) { - case 4: word_size = '4'; break; - case 8: word_size = '8'; break; - default: abort (); + case 4: + word_size = '4'; + break; + case 8: + word_size = '8'; + break; + default: + abort (); } memcpy (cookie, SCM_OBJCODE_COOKIE, strlen (SCM_OBJCODE_COOKIE)); cookie[SCM_OBJCODE_ENDIANNESS_OFFSET] = endianness; cookie[SCM_OBJCODE_WORD_SIZE_OFFSET] = word_size; + total_size = + to_native_order (SCM_OBJCODE_LEN (objcode), target_endianness ()) + + to_native_order (SCM_OBJCODE_META_LEN (objcode), target_endianness ()); + scm_c_write_unlocked (port, cookie, strlen (SCM_OBJCODE_COOKIE)); scm_c_write_unlocked (port, SCM_OBJCODE_DATA (objcode), sizeof (struct scm_objcode) - + SCM_OBJCODE_TOTAL_LEN (objcode)); + + total_size); return SCM_UNSPECIFIED; } @@ -398,6 +463,11 @@ scm_init_objcodes (void) scm_c_define ("word-size", scm_from_size_t (sizeof(SCM))); scm_c_define ("byte-order", scm_from_uint16 (SCM_BYTE_ORDER)); + + target_endianness_var = scm_c_public_variable ("system base target", + "target-endianness"); + target_word_size_var = scm_c_public_variable ("system base target", + "target-word-size"); } /* diff --git a/libguile/objcodes.h b/libguile/objcodes.h index c075c5cb6..0c3865ceb 100644 --- a/libguile/objcodes.h +++ b/libguile/objcodes.h @@ -60,11 +60,12 @@ struct scm_objcode #define SCM_OBJCODE_NATIVE_CODE(x) (SCM_CELL_WORD_3 (x)) #define SCM_SET_OBJCODE_NATIVE_CODE(x, code) (SCM_SET_CELL_WORD_3 (x, code)) -SCM scm_c_make_objcode_slice (SCM parent, const scm_t_uint8 *ptr); +SCM_API SCM scm_c_make_objcode_slice (SCM parent, const scm_t_uint8 *ptr); SCM_API SCM scm_load_objcode (SCM file); SCM_API SCM scm_objcode_p (SCM obj); SCM_API SCM scm_objcode_meta (SCM objcode); SCM_API SCM scm_bytecode_to_objcode (SCM bytecode); +SCM_INTERNAL SCM scm_bytecode_to_native_objcode (SCM bytecode); SCM_API SCM scm_objcode_to_bytecode (SCM objcode); SCM_API SCM scm_write_objcode (SCM objcode, SCM port); diff --git a/libguile/ports.c b/libguile/ports.c index bad524e97..20c734920 100644 --- a/libguile/ports.c +++ b/libguile/ports.c @@ -2762,13 +2762,13 @@ scm_init_ports () #include "libguile/ports.x" /* Use Latin-1 as the default port encoding. */ - SCM_VARIABLE_SET (default_port_encoding_var, scm_make_fluid ()); - scm_fluid_set_x (SCM_VARIABLE_REF (default_port_encoding_var), SCM_BOOL_F); + SCM_VARIABLE_SET (default_port_encoding_var, + scm_make_fluid_with_default (SCM_BOOL_F)); scm_port_encoding_init = 1; - SCM_VARIABLE_SET (scm_conversion_strategy, scm_make_fluid ()); - scm_fluid_set_x (SCM_VARIABLE_REF (scm_conversion_strategy), - scm_from_int ((int) SCM_FAILED_CONVERSION_QUESTION_MARK)); + SCM_VARIABLE_SET (scm_conversion_strategy, + scm_make_fluid_with_default + (scm_from_int ((int) SCM_FAILED_CONVERSION_QUESTION_MARK))); scm_conversion_strategy_init = 1; } diff --git a/libguile/procprop.c b/libguile/procprop.c index 2ad941d6a..93ee7f033 100644 --- a/libguile/procprop.c +++ b/libguile/procprop.c @@ -43,9 +43,23 @@ SCM_GLOBAL_SYMBOL (scm_sym_name, "name"); static SCM overrides; +static SCM arity_overrides; + int scm_i_procedure_arity (SCM proc, int *req, int *opt, int *rest) { + SCM o; + + o = scm_weak_table_refq (arity_overrides, proc, SCM_BOOL_F); + + if (scm_is_true (o)) + { + *req = scm_to_int (scm_car (o)); + *opt = scm_to_int (scm_cadr (o)); + *rest = scm_is_true (scm_caddr (o)); + return 1; + } + while (!SCM_PROGRAM_P (proc)) { if (SCM_STRUCTP (proc)) @@ -63,9 +77,27 @@ scm_i_procedure_arity (SCM proc, int *req, int *opt, int *rest) else return 0; } + return scm_i_program_arity (proc, req, opt, rest); } +SCM_DEFINE (scm_set_procedure_minimum_arity_x, "set-procedure-minimum-arity!", + 4, 0, 0, (SCM proc, SCM req, SCM opt, SCM rest), + "") +#define FUNC_NAME s_scm_set_procedure_minimum_arity_x +{ + int t SCM_UNUSED; + + SCM_VALIDATE_PROC (1, proc); + SCM_VALIDATE_INT_COPY (2, req, t); + SCM_VALIDATE_INT_COPY (3, opt, t); + SCM_VALIDATE_BOOL (4, rest); + + scm_weak_table_putq_x (arity_overrides, proc, scm_list_3 (req, opt, rest)); + return SCM_UNDEFINED; +} +#undef FUNC_NAME + SCM_DEFINE (scm_procedure_minimum_arity, "procedure-minimum-arity", 1, 0, 0, (SCM proc), "Return the \"minimum arity\" of a procedure.\n\n" @@ -171,6 +203,7 @@ void scm_init_procprop () { overrides = scm_c_make_weak_table (0, SCM_WEAK_TABLE_KIND_KEY); + arity_overrides = scm_c_make_weak_table (0, SCM_WEAK_TABLE_KIND_KEY); #include "libguile/procprop.x" } diff --git a/libguile/procprop.h b/libguile/procprop.h index 38d692221..88e44ec30 100644 --- a/libguile/procprop.h +++ b/libguile/procprop.h @@ -33,6 +33,8 @@ SCM_API SCM scm_sym_system_procedure; SCM_INTERNAL int scm_i_procedure_arity (SCM proc, int *req, int *opt, int *rest); +SCM_API SCM scm_set_procedure_minimum_arity_x (SCM proc, SCM req, SCM opt, + SCM rest); SCM_API SCM scm_procedure_minimum_arity (SCM proc); SCM_API SCM scm_procedure_properties (SCM proc); SCM_API SCM scm_set_procedure_properties_x (SCM proc, SCM alist); diff --git a/libguile/read.c b/libguile/read.c index 97f770235..7db03417c 100644 --- a/libguile/read.c +++ b/libguile/read.c @@ -1740,8 +1740,7 @@ scm_init_read () { SCM read_hash_procs; - read_hash_procs = scm_make_fluid (); - scm_fluid_set_x (read_hash_procs, SCM_EOL); + read_hash_procs = scm_make_fluid_with_default (SCM_EOL); scm_i_read_hash_procedures = SCM_VARIABLE_LOC (scm_c_define ("%read-hash-procedures", read_hash_procs)); diff --git a/libguile/threads.c b/libguile/threads.c index ec5001ff4..aeadcfe6d 100644 --- a/libguile/threads.c +++ b/libguile/threads.c @@ -477,7 +477,7 @@ static SCM scm_i_default_dynamic_state; /* Run when a fluid is collected. */ void -scm_i_reset_fluid (size_t n, SCM val) +scm_i_reset_fluid (size_t n) { scm_i_thread *t; @@ -488,7 +488,7 @@ scm_i_reset_fluid (size_t n, SCM val) SCM v = SCM_I_DYNAMIC_STATE_FLUIDS (t->dynamic_state); if (n < SCM_SIMPLE_VECTOR_LENGTH (v)) - SCM_SIMPLE_VECTOR_SET (v, n, val); + SCM_SIMPLE_VECTOR_SET (v, n, SCM_UNDEFINED); } scm_i_pthread_mutex_unlock (&thread_admin_mutex); } @@ -1001,6 +1001,7 @@ SCM_DEFINE (scm_call_with_new_thread, "call-with-new-thread", 1, 1, 0, SCM_ASSERT (SCM_UNBNDP (handler) || scm_is_true (scm_procedure_p (handler)), handler, SCM_ARG2, FUNC_NAME); + GC_collect_a_little (); data.parent = scm_current_dynamic_state (); data.thunk = thunk; data.handler = handler; diff --git a/libguile/threads.h b/libguile/threads.h index be760dd03..54d64141b 100644 --- a/libguile/threads.h +++ b/libguile/threads.h @@ -136,7 +136,7 @@ SCM_API SCM scm_spawn_thread (scm_t_catch_body body, void *body_data, SCM_API void *scm_without_guile (void *(*func)(void *), void *data); SCM_API void *scm_with_guile (void *(*func)(void *), void *data); -SCM_INTERNAL void scm_i_reset_fluid (size_t, SCM); +SCM_INTERNAL void scm_i_reset_fluid (size_t); SCM_INTERNAL void scm_threads_prehistory (void *); SCM_INTERNAL void scm_init_threads (void); SCM_INTERNAL void scm_init_thread_procs (void); diff --git a/libguile/vm-i-system.c b/libguile/vm-i-system.c index fc4e8bdfe..8981042f8 100644 --- a/libguile/vm-i-system.c +++ b/libguile/vm-i-system.c @@ -1660,6 +1660,8 @@ VM_DEFINE_INSTRUCTION (91, fluid_ref, "fluid-ref", 0, 1, 1) else { SCM val = SCM_SIMPLE_VECTOR_REF (fluids, num); + if (scm_is_eq (val, SCM_UNDEFINED)) + val = SCM_I_FLUID_DEFAULT (*sp); if (SCM_UNLIKELY (scm_is_eq (val, SCM_UNDEFINED))) { finish_args = *sp; diff --git a/libguile/vm.c b/libguile/vm.c index 9b8e93a12..859658816 100644 --- a/libguile/vm.c +++ b/libguile/vm.c @@ -393,7 +393,7 @@ really_make_boot_program (long nargs) u8vec = scm_c_take_gc_bytevector ((scm_t_int8*)bp, sizeof (struct scm_objcode) + sizeof (text), SCM_BOOL_F); - ret = scm_make_program (scm_bytecode_to_objcode (u8vec), + ret = scm_make_program (scm_bytecode_to_native_objcode (u8vec), SCM_BOOL_F, SCM_BOOL_F); SCM_SET_CELL_WORD_0 (ret, SCM_CELL_WORD_0 (ret) | SCM_F_PROGRAM_IS_BOOT); diff --git a/meta/uninstalled-env.in b/meta/uninstalled-env.in index 2276b4aed..5fa0db0cf 100644 --- a/meta/uninstalled-env.in +++ b/meta/uninstalled-env.in @@ -46,62 +46,72 @@ top_builddir="@top_builddir_absolute@" exit 1 } -if [ x"$GUILE_LOAD_PATH" = x ] +# When cross-compiling, let $GUILE_FOR_BUILD use its own .go files since +# the ones that are being built may be incompatible ($GUILE_FOR_BUILD is +# typically used to run `guild compile --target=$host'.) Likewise, +# $GUILE_FOR_BUILD must use its own source files when booting; for +# instance, $srcdir/module/ice-9/boot-9.scm must not be in its search +# path, because it would then end up using its C evaluator to run the +# compiler. +if test "@cross_compiling@" = "no" then - GUILE_LOAD_PATH="${top_srcdir}/module:${top_srcdir}/guile-readline:${top_srcdir}" - if test "${top_srcdir}" != "${top_builddir}"; then - GUILE_LOAD_PATH="$GUILE_LOAD_PATH:${top_builddir}/module:${top_builddir}/guile-readline:${top_builddir}" + if [ x"$GUILE_LOAD_PATH" = x ] + then + GUILE_LOAD_PATH="${top_srcdir}/module:${top_srcdir}/guile-readline:${top_srcdir}" + if test "${top_srcdir}" != "${top_builddir}"; then + GUILE_LOAD_PATH="$GUILE_LOAD_PATH:${top_builddir}/module:${top_builddir}/guile-readline:${top_builddir}" + fi + else + for d in "/module" "/guile-readline" "" + do + # This hair prevents double inclusion. + # The ":" prevents prefix aliasing. + case x"$GUILE_LOAD_PATH" in + x*${top_srcdir}${d}:*) ;; + x*${top_srcdir}${d}) ;; + *) GUILE_LOAD_PATH="${top_srcdir}${d}:$GUILE_LOAD_PATH" ;; + esac + case x"$GUILE_LOAD_PATH" in + x*${top_builddir}${d}:*) ;; + x*${top_builddir}${d}) ;; + *) GUILE_LOAD_PATH="${top_builddir}${d}:$GUILE_LOAD_PATH" ;; + esac + done fi -else - for d in "/module" "/guile-readline" "" - do - # This hair prevents double inclusion. - # The ":" prevents prefix aliasing. - case x"$GUILE_LOAD_PATH" in - x*${top_srcdir}${d}:*) ;; - x*${top_srcdir}${d}) ;; - *) GUILE_LOAD_PATH="${top_srcdir}${d}:$GUILE_LOAD_PATH" ;; - esac - case x"$GUILE_LOAD_PATH" in - x*${top_builddir}${d}:*) ;; - x*${top_builddir}${d}) ;; - *) GUILE_LOAD_PATH="${top_builddir}${d}:$GUILE_LOAD_PATH" ;; - esac - done -fi -export GUILE_LOAD_PATH + export GUILE_LOAD_PATH -if [ x"$GUILE_LOAD_COMPILED_PATH" = x ] -then - GUILE_LOAD_COMPILED_PATH="${top_builddir}/module:${top_builddir}/guile-readline:${top_builddir}" -else - for d in "/module" "/guile-readline" "" - do - # This hair prevents double inclusion. - # The ":" prevents prefix aliasing. - case x"$GUILE_LOAD_COMPILED_PATH" in - x*${top_builddir}${d}:*) ;; - x*${top_builddir}${d}) ;; - *) GUILE_LOAD_COMPILED_PATH="${top_builddir}${d}:$GUILE_LOAD_COMPILED_PATH" ;; - esac - done -fi -export GUILE_LOAD_COMPILED_PATH + if test "x$GUILE_LOAD_COMPILED_PATH" = "x" + then + GUILE_LOAD_COMPILED_PATH="${top_builddir}/module:${top_builddir}/guile-readline:${top_builddir}" + else + for d in "/module" "/guile-readline" "" + do + # This hair prevents double inclusion. + # The ":" prevents prefix aliasing. + case x"$GUILE_LOAD_COMPILED_PATH" in + x*${top_builddir}${d}:*) ;; + x*${top_builddir}${d}) ;; + *) GUILE_LOAD_COMPILED_PATH="${top_builddir}${d}:$GUILE_LOAD_COMPILED_PATH" ;; + esac + done + fi + export GUILE_LOAD_COMPILED_PATH -# Don't look in installed dirs for guile modules -if ( env | grep -v '^GUILE_SYSTEM_PATH=' > /dev/null ); then - GUILE_SYSTEM_PATH= - export GUILE_SYSTEM_PATH -fi -# Don't look in installed dirs for compiled guile modules -if ( env | grep -v '^GUILE_SYSTEM_COMPILED_PATH=' > /dev/null ); then - GUILE_SYSTEM_COMPILED_PATH= - export GUILE_SYSTEM_COMPILED_PATH -fi -# Don't look in installed dirs for dlopen-able modules -if ( env | grep -v '^GUILE_SYSTEM_EXTENSIONS_PATH=' > /dev/null ); then - GUILE_SYSTEM_EXTENSIONS_PATH= - export GUILE_SYSTEM_EXTENSIONS_PATH + # Don't look in installed dirs for guile modules + if ( env | grep -v '^GUILE_SYSTEM_PATH=' > /dev/null ); then + GUILE_SYSTEM_PATH= + export GUILE_SYSTEM_PATH + fi + # Don't look in installed dirs for compiled guile modules + if ( env | grep -v '^GUILE_SYSTEM_COMPILED_PATH=' > /dev/null ); then + GUILE_SYSTEM_COMPILED_PATH= + export GUILE_SYSTEM_COMPILED_PATH + fi + # Don't look in installed dirs for dlopen-able modules + if ( env | grep -v '^GUILE_SYSTEM_EXTENSIONS_PATH=' > /dev/null ); then + GUILE_SYSTEM_EXTENSIONS_PATH= + export GUILE_SYSTEM_EXTENSIONS_PATH + fi fi # handle LTDL_LIBRARY_PATH (no clobber) diff --git a/module/Makefile.am b/module/Makefile.am index b93d8d3a1..56fa48d99 100644 --- a/module/Makefile.am +++ b/module/Makefile.am @@ -79,10 +79,14 @@ ice-9/psyntax-pp.scm.gen: .PHONY: ice-9/psyntax-pp.scm.gen +# Keep this rule in sync with that in `am/guilec'. ice-9/psyntax-pp.go: ice-9/psyntax.scm ice-9/psyntax-pp.scm - $(AM_V_GUILEC) GUILE_AUTO_COMPILE=0 \ - $(top_builddir)/meta/uninstalled-env \ - guild compile $(GUILE_WARNINGS) -o "ice-9/psyntax-pp.go" "$(srcdir)/ice-9/psyntax.scm" + $(AM_V_GUILEC)GUILE_AUTO_COMPILE=0 \ + $(top_builddir)/meta/uninstalled-env \ + guild compile --target="$(host)" $(GUILE_WARNINGS) \ + -L "$(abs_srcdir)" -L "$(abs_builddir)" \ + -L "$(abs_top_srcdir)/guile-readline" \ + -o "ice-9/psyntax-pp.go" "$(srcdir)/ice-9/psyntax.scm" SCHEME_LANG_SOURCES = \ language/scheme/spec.scm \ diff --git a/module/ice-9/boot-9.scm b/module/ice-9/boot-9.scm index b6c9d44d3..cf3f5d8c0 100644 --- a/module/ice-9/boot-9.scm +++ b/module/ice-9/boot-9.scm @@ -69,23 +69,6 @@ (define with-throw-handler #f) (let () - ;; Ideally we'd like to be able to give these default values for all threads, - ;; even threads not created by Guile; but alack, that does not currently seem - ;; possible. So wrap the getters in thunks. - (define %running-exception-handlers (make-fluid)) - (define %exception-handler (make-fluid)) - - (define (running-exception-handlers) - (or (fluid-ref %running-exception-handlers) - (begin - (fluid-set! %running-exception-handlers '()) - '()))) - (define (exception-handler) - (or (fluid-ref %exception-handler) - (begin - (fluid-set! %exception-handler default-exception-handler) - default-exception-handler))) - (define (default-exception-handler k . args) (cond ((eq? k 'quit) @@ -98,18 +81,21 @@ (format (current-error-port) "guile: uncaught throw to ~a: ~a\n" k args) (primitive-exit 1)))) + (define %running-exception-handlers (make-fluid '())) + (define %exception-handler (make-fluid default-exception-handler)) + (define (default-throw-handler prompt-tag catch-k) - (let ((prev (exception-handler))) + (let ((prev (fluid-ref %exception-handler))) (lambda (thrown-k . args) (if (or (eq? thrown-k catch-k) (eqv? catch-k #t)) (apply abort-to-prompt prompt-tag thrown-k args) (apply prev thrown-k args))))) (define (custom-throw-handler prompt-tag catch-k pre) - (let ((prev (exception-handler))) + (let ((prev (fluid-ref %exception-handler))) (lambda (thrown-k . args) (if (or (eq? thrown-k catch-k) (eqv? catch-k #t)) - (let ((running (running-exception-handlers))) + (let ((running (fluid-ref %running-exception-handlers))) (with-fluids ((%running-exception-handlers (cons pre running))) (if (not (memq pre running)) (apply pre thrown-k args)) @@ -192,9 +178,9 @@ for key @var{key}, then invoke @var{thunk}." If there is no handler at all, Guile prints an error and then exits." (if (not (symbol? key)) - ((exception-handler) 'wrong-type-arg "throw" + ((fluid-ref %exception-handler) 'wrong-type-arg "throw" "Wrong type argument in position ~a: ~a" (list 1 key) (list key)) - (apply (exception-handler) key args))))) + (apply (fluid-ref %exception-handler) key args))))) @@ -1404,8 +1390,7 @@ VALUE." ;;; Reader code for various "#c" forms. ;;; -(define read-eval? (make-fluid)) -(fluid-set! read-eval? #f) +(define read-eval? (make-fluid #f)) (read-hash-extend #\. (lambda (c port) (if (fluid-ref read-eval?) @@ -2843,14 +2828,14 @@ module '(ice-9 q) '(make-q q-length))}." ;;; {Running Repls} ;;; -(define *repl-stack* (make-fluid)) +(define *repl-stack* (make-fluid '())) ;; Programs can call `batch-mode?' to see if they are running as part of a ;; script or if they are running interactively. REPL implementations ensure that ;; `batch-mode?' returns #f during their extent. ;; (define (batch-mode?) - (null? (or (fluid-ref *repl-stack*) '()))) + (null? (fluid-ref *repl-stack*))) ;; Programs can re-enter batch mode, for example after a fork, by calling ;; `ensure-batch-mode!'. It's not a great interface, though; it would be better @@ -2889,7 +2874,26 @@ module '(ice-9 q) '(make-q q-length))}." (define repl-reader (lambda* (prompt #:optional (reader (fluid-ref current-reader))) (if (not (char-ready?)) - (display (if (string? prompt) prompt (prompt)))) + (begin + (display (if (string? prompt) prompt (prompt))) + ;; An interesting situation. The printer resets the column to + ;; 0 by printing a newline, but we then advance it by printing + ;; the prompt. However the port-column of the output port + ;; does not typically correspond with the actual column on the + ;; screen, because the input is is echoed back! Since the + ;; input is line-buffered and thus ends with a newline, the + ;; output will really start on column zero. So, here we zero + ;; it out. See bug 9664. + ;; + ;; Note that for similar reasons, the output-line will not + ;; reflect the actual line on the screen. But given the + ;; possibility of multiline input, the fix is not as + ;; straightforward, so we don't bother. + ;; + ;; Also note that the readline implementation papers over + ;; these concerns, because it's readline itself printing the + ;; prompt, and not Guile. + (set-port-column! (current-output-port) 0))) (force-output) (run-hook before-read-hook) ((or reader read) (current-input-port)))) @@ -3241,8 +3245,7 @@ module '(ice-9 q) '(make-q q-length))}." ;;; (define* (make-mutable-parameter init #:optional (converter identity)) - (let ((fluid (make-fluid))) - (fluid-set! fluid (converter init)) + (let ((fluid (make-fluid (converter init)))) (case-lambda (() (fluid-ref fluid)) ((val) (fluid-set! fluid (converter val)))))) diff --git a/module/ice-9/eval.scm b/module/ice-9/eval.scm index e938061a3..5b2937147 100644 --- a/module/ice-9/eval.scm +++ b/module/ice-9/eval.scm @@ -235,109 +235,127 @@ (inits (if tail (caddr tail) '())) (alt (and tail (cadddr tail)))) (make-general-closure env body nreq rest nopt kw inits alt)))) - (lambda %args - (let lp ((env env) - (nreq* nreq) - (args %args)) - (if (> nreq* 0) - ;; First, bind required arguments. - (if (null? args) - (if alt - (apply alt-proc %args) - (scm-error 'wrong-number-of-args - "eval" "Wrong number of arguments" - '() #f)) - (lp (cons (car args) env) - (1- nreq*) - (cdr args))) - ;; Move on to optional arguments. - (if (not kw) - ;; Without keywords, bind optionals from arguments. - (let lp ((env env) - (nopt nopt) - (args args) - (inits inits)) - (if (zero? nopt) - (if rest? - (eval body (cons args env)) - (if (null? args) - (eval body env) - (if alt - (apply alt-proc %args) - (scm-error 'wrong-number-of-args - "eval" "Wrong number of arguments" - '() #f)))) - (if (null? args) - (lp (cons (eval (car inits) env) env) - (1- nopt) args (cdr inits)) - (lp (cons (car args) env) - (1- nopt) (cdr args) (cdr inits))))) - ;; With keywords, we stop binding optionals at the first - ;; keyword. - (let lp ((env env) - (nopt* nopt) - (args args) - (inits inits)) - (if (> nopt* 0) - (if (or (null? args) (keyword? (car args))) - (lp (cons (eval (car inits) env) env) - (1- nopt*) args (cdr inits)) - (lp (cons (car args) env) - (1- nopt*) (cdr args) (cdr inits))) - ;; Finished with optionals. - (let* ((aok (car kw)) - (kw (cdr kw)) - (kw-base (+ nopt nreq (if rest? 1 0))) - (imax (let lp ((imax (1- kw-base)) (kw kw)) - (if (null? kw) - imax - (lp (max (cdar kw) imax) - (cdr kw))))) - ;; Fill in kwargs with "undefined" vals. - (env (let lp ((i kw-base) - ;; Also, here we bind the rest - ;; arg, if any. - (env (if rest? (cons args env) env))) - (if (<= i imax) - (lp (1+ i) (cons unbound-arg env)) - env)))) - ;; Now scan args for keywords. - (let lp ((args args)) - (if (and (pair? args) (pair? (cdr args)) - (keyword? (car args))) - (let ((kw-pair (assq (car args) kw)) - (v (cadr args))) - (if kw-pair - ;; Found a known keyword; set its value. - (list-set! env (- imax (cdr kw-pair)) v) - ;; Unknown keyword. - (if (not aok) - (scm-error 'keyword-argument-error - "eval" "Unrecognized keyword" - '() #f))) - (lp (cddr args))) - (if (pair? args) - (if rest? - ;; Be lenient parsing rest args. - (lp (cdr args)) - (scm-error 'keyword-argument-error - "eval" "Invalid keyword" - '() #f)) - ;; Finished parsing keywords. Fill in - ;; uninitialized kwargs by evalling init - ;; expressions in their appropriate - ;; environment. - (let lp ((i (- imax kw-base)) - (inits inits)) - (if (pair? inits) - (let ((tail (list-tail env i))) - (if (eq? (car tail) unbound-arg) - (set-car! tail - (eval (car inits) - (cdr tail)))) - (lp (1- i) (cdr inits))) - ;; Finally, eval the body. - (eval body env)))))))))))))) + (define (set-procedure-arity! proc) + (let lp ((alt alt) (nreq nreq) (nopt nopt) (rest? rest?)) + (if (not alt) + (set-procedure-minimum-arity! proc nreq nopt rest?) + (let* ((nreq* (cadr alt)) + (rest?* (if (null? (cddr alt)) #f (caddr alt))) + (tail (and (pair? (cddr alt)) (pair? (cdddr alt)) (cdddr alt))) + (nopt* (if tail (car tail) 0)) + (alt* (and tail (cadddr tail)))) + (if (or (< nreq* nreq) + (and (= nreq* nreq) + (if rest? + (and rest?* (> nopt* nopt)) + (or rest?* (> nopt* nopt))))) + (lp alt* nreq* nopt* rest?*) + (lp alt* nreq nopt rest?))))) + proc) + (set-procedure-arity! + (lambda %args + (let lp ((env env) + (nreq* nreq) + (args %args)) + (if (> nreq* 0) + ;; First, bind required arguments. + (if (null? args) + (if alt + (apply alt-proc %args) + (scm-error 'wrong-number-of-args + "eval" "Wrong number of arguments" + '() #f)) + (lp (cons (car args) env) + (1- nreq*) + (cdr args))) + ;; Move on to optional arguments. + (if (not kw) + ;; Without keywords, bind optionals from arguments. + (let lp ((env env) + (nopt nopt) + (args args) + (inits inits)) + (if (zero? nopt) + (if rest? + (eval body (cons args env)) + (if (null? args) + (eval body env) + (if alt + (apply alt-proc %args) + (scm-error 'wrong-number-of-args + "eval" "Wrong number of arguments" + '() #f)))) + (if (null? args) + (lp (cons (eval (car inits) env) env) + (1- nopt) args (cdr inits)) + (lp (cons (car args) env) + (1- nopt) (cdr args) (cdr inits))))) + ;; With keywords, we stop binding optionals at the first + ;; keyword. + (let lp ((env env) + (nopt* nopt) + (args args) + (inits inits)) + (if (> nopt* 0) + (if (or (null? args) (keyword? (car args))) + (lp (cons (eval (car inits) env) env) + (1- nopt*) args (cdr inits)) + (lp (cons (car args) env) + (1- nopt*) (cdr args) (cdr inits))) + ;; Finished with optionals. + (let* ((aok (car kw)) + (kw (cdr kw)) + (kw-base (+ nopt nreq (if rest? 1 0))) + (imax (let lp ((imax (1- kw-base)) (kw kw)) + (if (null? kw) + imax + (lp (max (cdar kw) imax) + (cdr kw))))) + ;; Fill in kwargs with "undefined" vals. + (env (let lp ((i kw-base) + ;; Also, here we bind the rest + ;; arg, if any. + (env (if rest? (cons args env) env))) + (if (<= i imax) + (lp (1+ i) (cons unbound-arg env)) + env)))) + ;; Now scan args for keywords. + (let lp ((args args)) + (if (and (pair? args) (pair? (cdr args)) + (keyword? (car args))) + (let ((kw-pair (assq (car args) kw)) + (v (cadr args))) + (if kw-pair + ;; Found a known keyword; set its value. + (list-set! env (- imax (cdr kw-pair)) v) + ;; Unknown keyword. + (if (not aok) + (scm-error 'keyword-argument-error + "eval" "Unrecognized keyword" + '() #f))) + (lp (cddr args))) + (if (pair? args) + (if rest? + ;; Be lenient parsing rest args. + (lp (cdr args)) + (scm-error 'keyword-argument-error + "eval" "Invalid keyword" + '() #f)) + ;; Finished parsing keywords. Fill in + ;; uninitialized kwargs by evalling init + ;; expressions in their appropriate + ;; environment. + (let lp ((i (- imax kw-base)) + (inits inits)) + (if (pair? inits) + (let ((tail (list-tail env i))) + (if (eq? (car tail) unbound-arg) + (set-car! tail + (eval (car inits) + (cdr tail)))) + (lp (1- i) (cdr inits))) + ;; Finally, eval the body. + (eval body env))))))))))))))) ;; The "engine". EXP is a memoized expression. (define (eval exp env) @@ -404,7 +422,10 @@ (memoize-variable-access! exp #f)))) (('define (name . x)) - (define! name (eval x env))) + (let ((x (eval x env))) + (if (and (procedure? x) (not (procedure-property x 'name))) + (set-procedure-property! x 'name name)) + (define! name x))) (('toplevel-set! (var-or-sym . x)) (variable-set! diff --git a/module/ice-9/getopt-long.scm b/module/ice-9/getopt-long.scm index 12f8c94c3..930ac0d88 100644 --- a/module/ice-9/getopt-long.scm +++ b/module/ice-9/getopt-long.scm @@ -164,9 +164,9 @@ #:use-module (ice-9 optargs) #:export (getopt-long option-ref)) -(define %program-name (make-fluid)) +(define %program-name (make-fluid "guile")) (define (program-name) - (or (fluid-ref %program-name) "guile")) + (fluid-ref %program-name)) (define (fatal-error fmt . args) (format (current-error-port) "~a: " (program-name)) diff --git a/module/ice-9/psyntax-pp.scm b/module/ice-9/psyntax-pp.scm index d563bbffa..68c7667f4 100644 --- a/module/ice-9/psyntax-pp.scm +++ b/module/ice-9/psyntax-pp.scm @@ -2,2060 +2,1997 @@ (if #f #f) (letrec* - ((#{top-level-eval-hook 4373}# - (lambda (#{x 35449}# #{mod 35450}#) - (primitive-eval #{x 35449}#))) - (#{maybe-name-value! 4378}# - (lambda (#{name 18994}# #{val 18995}#) - (if (if (struct? #{val 18995}#) - (eq? (struct-vtable #{val 18995}#) + ((#{top-level-eval-hook 4370}# + (lambda (#{x 35759}# #{mod 35760}#) + (primitive-eval #{x 35759}#))) + (#{maybe-name-value! 4375}# + (lambda (#{name 18991}# #{val 18992}#) + (if (if (struct? #{val 18992}#) + (eq? (struct-vtable #{val 18992}#) (vector-ref %expanded-vtables 14)) #f) - (let ((#{meta 19002}# (struct-ref #{val 18995}# 1))) - (if (not (assq 'name #{meta 19002}#)) - (let ((#{v 19007}# - (cons (cons 'name #{name 18994}#) #{meta 19002}#))) - (struct-set! #{val 18995}# 1 #{v 19007}#))))))) - (#{build-call 4380}# - (lambda (#{source 18739}# - #{fun-exp 18740}# - #{arg-exps 18741}#) + (let ((#{meta 18999}# (struct-ref #{val 18992}# 1))) + (if (not (assq 'name #{meta 18999}#)) + (let ((#{v 19004}# + (cons (cons 'name #{name 18991}#) #{meta 18999}#))) + (struct-set! #{val 18992}# 1 #{v 19004}#))))))) + (#{build-call 4377}# + (lambda (#{source 18736}# + #{fun-exp 18737}# + #{arg-exps 18738}#) (make-struct/no-tail (vector-ref %expanded-vtables 11) - #{source 18739}# - #{fun-exp 18740}# - #{arg-exps 18741}#))) - (#{build-conditional 4381}# - (lambda (#{source 18747}# - #{test-exp 18748}# - #{then-exp 18749}# - #{else-exp 18750}#) + #{source 18736}# + #{fun-exp 18737}# + #{arg-exps 18738}#))) + (#{build-conditional 4378}# + (lambda (#{source 18744}# + #{test-exp 18745}# + #{then-exp 18746}# + #{else-exp 18747}#) (make-struct/no-tail (vector-ref %expanded-vtables 10) - #{source 18747}# - #{test-exp 18748}# - #{then-exp 18749}# - #{else-exp 18750}#))) - (#{build-dynlet 4382}# - (lambda (#{source 18757}# - #{fluids 18758}# - #{vals 18759}# - #{body 18760}#) + #{source 18744}# + #{test-exp 18745}# + #{then-exp 18746}# + #{else-exp 18747}#))) + (#{build-dynlet 4379}# + (lambda (#{source 18754}# + #{fluids 18755}# + #{vals 18756}# + #{body 18757}#) (make-struct/no-tail (vector-ref %expanded-vtables 18) - #{source 18757}# - #{fluids 18758}# - #{vals 18759}# - #{body 18760}#))) - (#{build-lexical-reference 4383}# - (lambda (#{type 35451}# - #{source 35452}# - #{name 35453}# - #{var 35454}#) + #{source 18754}# + #{fluids 18755}# + #{vals 18756}# + #{body 18757}#))) + (#{build-lexical-reference 4380}# + (lambda (#{type 35761}# + #{source 35762}# + #{name 35763}# + #{var 35764}#) (make-struct/no-tail (vector-ref %expanded-vtables 3) - #{source 35452}# - #{name 35453}# - #{var 35454}#))) - (#{build-lexical-assignment 4384}# - (lambda (#{source 18767}# - #{name 18768}# - #{var 18769}# - #{exp 18770}#) + #{source 35762}# + #{name 35763}# + #{var 35764}#))) + (#{build-lexical-assignment 4381}# + (lambda (#{source 18764}# + #{name 18765}# + #{var 18766}# + #{exp 18767}#) (begin - (if (if (struct? #{exp 18770}#) - (eq? (struct-vtable #{exp 18770}#) + (if (if (struct? #{exp 18767}#) + (eq? (struct-vtable #{exp 18767}#) (vector-ref %expanded-vtables 14)) #f) - (let ((#{meta 18786}# (struct-ref #{exp 18770}# 1))) - (if (not (assq 'name #{meta 18786}#)) - (let ((#{v 18793}# - (cons (cons 'name #{name 18768}#) #{meta 18786}#))) - (struct-set! #{exp 18770}# 1 #{v 18793}#))))) + (let ((#{meta 18783}# (struct-ref #{exp 18767}# 1))) + (if (not (assq 'name #{meta 18783}#)) + (let ((#{v 18790}# + (cons (cons 'name #{name 18765}#) #{meta 18783}#))) + (struct-set! #{exp 18767}# 1 #{v 18790}#))))) (make-struct/no-tail (vector-ref %expanded-vtables 4) - #{source 18767}# - #{name 18768}# - #{var 18769}# - #{exp 18770}#)))) - (#{analyze-variable 4385}# - (lambda (#{mod 35460}# - #{var 35461}# - #{modref-cont 35462}# - #{bare-cont 35463}#) - (if (not #{mod 35460}#) - (#{bare-cont 35463}# #{var 35461}#) - (let ((#{kind 35464}# (car #{mod 35460}#)) - (#{mod 35465}# (cdr #{mod 35460}#))) - (if (eqv? #{kind 35464}# 'public) - (#{modref-cont 35462}# - #{mod 35465}# - #{var 35461}# + #{source 18764}# + #{name 18765}# + #{var 18766}# + #{exp 18767}#)))) + (#{analyze-variable 4382}# + (lambda (#{mod 35770}# + #{var 35771}# + #{modref-cont 35772}# + #{bare-cont 35773}#) + (if (not #{mod 35770}#) + (#{bare-cont 35773}# #{var 35771}#) + (let ((#{kind 35774}# (car #{mod 35770}#)) + (#{mod 35775}# (cdr #{mod 35770}#))) + (if (eqv? #{kind 35774}# 'public) + (#{modref-cont 35772}# + #{mod 35775}# + #{var 35771}# #t) - (if (eqv? #{kind 35464}# 'private) + (if (eqv? #{kind 35774}# 'private) (if (not (equal? - #{mod 35465}# + #{mod 35775}# (module-name (current-module)))) - (#{modref-cont 35462}# - #{mod 35465}# - #{var 35461}# + (#{modref-cont 35772}# + #{mod 35775}# + #{var 35771}# #f) - (#{bare-cont 35463}# #{var 35461}#)) - (if (eqv? #{kind 35464}# 'bare) - (#{bare-cont 35463}# #{var 35461}#) - (if (eqv? #{kind 35464}# 'hygiene) + (#{bare-cont 35773}# #{var 35771}#)) + (if (eqv? #{kind 35774}# 'bare) + (#{bare-cont 35773}# #{var 35771}#) + (if (eqv? #{kind 35774}# 'hygiene) (if (if (not (equal? - #{mod 35465}# + #{mod 35775}# (module-name (current-module)))) (module-variable - (resolve-module #{mod 35465}#) - #{var 35461}#) + (resolve-module #{mod 35775}#) + #{var 35771}#) #f) - (#{modref-cont 35462}# - #{mod 35465}# - #{var 35461}# + (#{modref-cont 35772}# + #{mod 35775}# + #{var 35771}# #f) - (#{bare-cont 35463}# #{var 35461}#)) + (#{bare-cont 35773}# #{var 35771}#)) (syntax-violation #f "bad module kind" - #{var 35461}# - #{mod 35465}#))))))))) - (#{build-global-reference 4386}# - (lambda (#{source 35480}# #{var 35481}# #{mod 35482}#) - (#{analyze-variable 4385}# - #{mod 35482}# - #{var 35481}# - (lambda (#{mod 35485}# #{var 35486}# #{public? 35487}#) + #{var 35771}# + #{mod 35775}#))))))))) + (#{build-global-reference 4383}# + (lambda (#{source 35790}# #{var 35791}# #{mod 35792}#) + (#{analyze-variable 4382}# + #{mod 35792}# + #{var 35791}# + (lambda (#{mod 35795}# #{var 35796}# #{public? 35797}#) (make-struct/no-tail (vector-ref %expanded-vtables 5) - #{source 35480}# - #{mod 35485}# - #{var 35486}# - #{public? 35487}#)) - (lambda (#{var 35494}#) + #{source 35790}# + #{mod 35795}# + #{var 35796}# + #{public? 35797}#)) + (lambda (#{var 35804}#) (make-struct/no-tail (vector-ref %expanded-vtables 7) - #{source 35480}# - #{var 35494}#))))) - (#{build-global-assignment 4387}# - (lambda (#{source 18802}# - #{var 18803}# - #{exp 18804}# - #{mod 18805}#) + #{source 35790}# + #{var 35804}#))))) + (#{build-global-assignment 4384}# + (lambda (#{source 18799}# + #{var 18800}# + #{exp 18801}# + #{mod 18802}#) (begin - (if (if (struct? #{exp 18804}#) - (eq? (struct-vtable #{exp 18804}#) + (if (if (struct? #{exp 18801}#) + (eq? (struct-vtable #{exp 18801}#) (vector-ref %expanded-vtables 14)) #f) - (let ((#{meta 18821}# (struct-ref #{exp 18804}# 1))) - (if (not (assq 'name #{meta 18821}#)) - (let ((#{v 18828}# - (cons (cons 'name #{var 18803}#) #{meta 18821}#))) - (struct-set! #{exp 18804}# 1 #{v 18828}#))))) - (#{analyze-variable 4385}# - #{mod 18805}# - #{var 18803}# - (lambda (#{mod 18833}# #{var 18834}# #{public? 18835}#) + (let ((#{meta 18818}# (struct-ref #{exp 18801}# 1))) + (if (not (assq 'name #{meta 18818}#)) + (let ((#{v 18825}# + (cons (cons 'name #{var 18800}#) #{meta 18818}#))) + (struct-set! #{exp 18801}# 1 #{v 18825}#))))) + (#{analyze-variable 4382}# + #{mod 18802}# + #{var 18800}# + (lambda (#{mod 18830}# #{var 18831}# #{public? 18832}#) (make-struct/no-tail (vector-ref %expanded-vtables 6) - #{source 18802}# - #{mod 18833}# - #{var 18834}# - #{public? 18835}# - #{exp 18804}#)) - (lambda (#{var 18843}#) + #{source 18799}# + #{mod 18830}# + #{var 18831}# + #{public? 18832}# + #{exp 18801}#)) + (lambda (#{var 18840}#) (make-struct/no-tail (vector-ref %expanded-vtables 8) - #{source 18802}# - #{var 18843}# - #{exp 18804}#)))))) - (#{build-global-definition 4388}# - (lambda (#{source 35499}# #{var 35500}# #{exp 35501}#) + #{source 18799}# + #{var 18840}# + #{exp 18801}#)))))) + (#{build-global-definition 4385}# + (lambda (#{source 35809}# #{var 35810}# #{exp 35811}#) (begin - (if (if (struct? #{exp 35501}#) - (eq? (struct-vtable #{exp 35501}#) + (if (if (struct? #{exp 35811}#) + (eq? (struct-vtable #{exp 35811}#) (vector-ref %expanded-vtables 14)) #f) - (let ((#{meta 35517}# (struct-ref #{exp 35501}# 1))) - (if (not (assq 'name #{meta 35517}#)) - (let ((#{v 35524}# - (cons (cons 'name #{var 35500}#) #{meta 35517}#))) - (struct-set! #{exp 35501}# 1 #{v 35524}#))))) + (let ((#{meta 35827}# (struct-ref #{exp 35811}# 1))) + (if (not (assq 'name #{meta 35827}#)) + (let ((#{v 35834}# + (cons (cons 'name #{var 35810}#) #{meta 35827}#))) + (struct-set! #{exp 35811}# 1 #{v 35834}#))))) (make-struct/no-tail (vector-ref %expanded-vtables 9) - #{source 35499}# - #{var 35500}# - #{exp 35501}#)))) - (#{build-simple-lambda 4389}# - (lambda (#{src 18849}# - #{req 18850}# - #{rest 18851}# - #{vars 18852}# - #{meta 18853}# - #{exp 18854}#) - (let ((#{body 18860}# + #{source 35809}# + #{var 35810}# + #{exp 35811}#)))) + (#{build-simple-lambda 4386}# + (lambda (#{src 18846}# + #{req 18847}# + #{rest 18848}# + #{vars 18849}# + #{meta 18850}# + #{exp 18851}#) + (let ((#{body 18857}# (make-struct/no-tail (vector-ref %expanded-vtables 15) - #{src 18849}# - #{req 18850}# + #{src 18846}# + #{req 18847}# #f - #{rest 18851}# + #{rest 18848}# #f '() - #{vars 18852}# - #{exp 18854}# + #{vars 18849}# + #{exp 18851}# #f))) (make-struct/no-tail (vector-ref %expanded-vtables 14) - #{src 18849}# - #{meta 18853}# - #{body 18860}#)))) - (#{build-primcall 4392}# - (lambda (#{src 18872}# #{name 18873}# #{args 18874}#) + #{src 18846}# + #{meta 18850}# + #{body 18857}#)))) + (#{build-primcall 4389}# + (lambda (#{src 18869}# #{name 18870}# #{args 18871}#) (make-struct/no-tail (vector-ref %expanded-vtables 12) - #{src 18872}# - #{name 18873}# - #{args 18874}#))) - (#{build-sequence 4395}# - (lambda (#{src 35532}# #{exps 35533}#) - (if (null? (cdr #{exps 35533}#)) - (car #{exps 35533}#) - (let ((#{head 35537}# (car #{exps 35533}#)) - (#{tail 35538}# - (#{build-sequence 4395}# #f (cdr #{exps 35533}#)))) + #{src 18869}# + #{name 18870}# + #{args 18871}#))) + (#{build-sequence 4392}# + (lambda (#{src 35842}# #{exps 35843}#) + (if (null? (cdr #{exps 35843}#)) + (car #{exps 35843}#) + (let ((#{head 35847}# (car #{exps 35843}#)) + (#{tail 35848}# + (#{build-sequence 4392}# #f (cdr #{exps 35843}#)))) (make-struct/no-tail (vector-ref %expanded-vtables 13) - #{src 35532}# - #{head 35537}# - #{tail 35538}#))))) - (#{build-named-let 4397}# - (lambda (#{src 18880}# - #{ids 18881}# - #{vars 18882}# - #{val-exps 18883}# - #{body-exp 18884}#) - (let ((#{f 18885}# (car #{vars 18882}#)) - (#{f-name 18886}# (car #{ids 18881}#)) - (#{vars 18887}# (cdr #{vars 18882}#)) - (#{ids 18888}# (cdr #{ids 18881}#))) - (let ((#{proc 18889}# - (let ((#{body 18909}# + #{src 35842}# + #{head 35847}# + #{tail 35848}#))))) + (#{build-named-let 4394}# + (lambda (#{src 18877}# + #{ids 18878}# + #{vars 18879}# + #{val-exps 18880}# + #{body-exp 18881}#) + (let ((#{f 18882}# (car #{vars 18879}#)) + (#{f-name 18883}# (car #{ids 18878}#)) + (#{vars 18884}# (cdr #{vars 18879}#)) + (#{ids 18885}# (cdr #{ids 18878}#))) + (let ((#{proc 18886}# + (let ((#{body 18906}# (make-struct/no-tail (vector-ref %expanded-vtables 15) - #{src 18880}# - #{ids 18888}# + #{src 18877}# + #{ids 18885}# #f #f #f '() - #{vars 18887}# - #{body-exp 18884}# + #{vars 18884}# + #{body-exp 18881}# #f))) (make-struct/no-tail (vector-ref %expanded-vtables 14) - #{src 18880}# + #{src 18877}# '() - #{body 18909}#)))) + #{body 18906}#)))) (begin - (if (if (struct? #{proc 18889}#) - (eq? (struct-vtable #{proc 18889}#) + (if (if (struct? #{proc 18886}#) + (eq? (struct-vtable #{proc 18886}#) (vector-ref %expanded-vtables 14)) #f) - (let ((#{meta 18933}# (struct-ref #{proc 18889}# 1))) - (if (not (assq 'name #{meta 18933}#)) - (let ((#{v 18940}# - (cons (cons 'name #{f-name 18886}#) - #{meta 18933}#))) - (struct-set! #{proc 18889}# 1 #{v 18940}#))))) + (let ((#{meta 18930}# (struct-ref #{proc 18886}# 1))) + (if (not (assq 'name #{meta 18930}#)) + (let ((#{v 18937}# + (cons (cons 'name #{f-name 18883}#) + #{meta 18930}#))) + (struct-set! #{proc 18886}# 1 #{v 18937}#))))) (for-each - #{maybe-name-value! 4378}# - #{ids 18888}# - #{val-exps 18883}#) - (let ((#{names 18964}# (list #{f-name 18886}#)) - (#{gensyms 18965}# (list #{f 18885}#)) - (#{vals 18966}# (list #{proc 18889}#)) - (#{body 18967}# - (let ((#{fun-exp 18971}# + #{maybe-name-value! 4375}# + #{ids 18885}# + #{val-exps 18880}#) + (let ((#{names 18961}# (list #{f-name 18883}#)) + (#{gensyms 18962}# (list #{f 18882}#)) + (#{vals 18963}# (list #{proc 18886}#)) + (#{body 18964}# + (let ((#{fun-exp 18968}# (make-struct/no-tail (vector-ref %expanded-vtables 3) - #{src 18880}# - #{f-name 18886}# - #{f 18885}#))) + #{src 18877}# + #{f-name 18883}# + #{f 18882}#))) (make-struct/no-tail (vector-ref %expanded-vtables 11) - #{src 18880}# - #{fun-exp 18971}# - #{val-exps 18883}#)))) + #{src 18877}# + #{fun-exp 18968}# + #{val-exps 18880}#)))) (make-struct/no-tail (vector-ref %expanded-vtables 17) - #{src 18880}# + #{src 18877}# #f - #{names 18964}# - #{gensyms 18965}# - #{vals 18966}# - #{body 18967}#))))))) - (#{build-letrec 4398}# - (lambda (#{src 18987}# - #{in-order? 18988}# - #{ids 18989}# - #{vars 18990}# - #{val-exps 18991}# - #{body-exp 18992}#) - (if (null? #{vars 18990}#) - #{body-exp 18992}# + #{names 18961}# + #{gensyms 18962}# + #{vals 18963}# + #{body 18964}#))))))) + (#{build-letrec 4395}# + (lambda (#{src 18984}# + #{in-order? 18985}# + #{ids 18986}# + #{vars 18987}# + #{val-exps 18988}# + #{body-exp 18989}#) + (if (null? #{vars 18987}#) + #{body-exp 18989}# (begin (for-each - #{maybe-name-value! 4378}# - #{ids 18989}# - #{val-exps 18991}#) + #{maybe-name-value! 4375}# + #{ids 18986}# + #{val-exps 18988}#) (make-struct/no-tail (vector-ref %expanded-vtables 17) - #{src 18987}# - #{in-order? 18988}# - #{ids 18989}# - #{vars 18990}# - #{val-exps 18991}# - #{body-exp 18992}#))))) - (#{source-annotation 4407}# - (lambda (#{x 19018}#) - (if (if (vector? #{x 19018}#) - (if (= (vector-length #{x 19018}#) 4) - (eq? (vector-ref #{x 19018}# 0) 'syntax-object) + #{src 18984}# + #{in-order? 18985}# + #{ids 18986}# + #{vars 18987}# + #{val-exps 18988}# + #{body-exp 18989}#))))) + (#{source-annotation 4404}# + (lambda (#{x 19015}#) + (if (if (vector? #{x 19015}#) + (if (= (vector-length #{x 19015}#) 4) + (eq? (vector-ref #{x 19015}# 0) 'syntax-object) #f) #f) - (#{source-annotation 4407}# - (vector-ref #{x 19018}# 1)) - (if (pair? #{x 19018}#) - (let ((#{props 19033}# (source-properties #{x 19018}#))) - (if (pair? #{props 19033}#) #{props 19033}# #f)) + (#{source-annotation 4404}# + (vector-ref #{x 19015}# 1)) + (if (pair? #{x 19015}#) + (let ((#{props 19030}# (source-properties #{x 19015}#))) + (if (pair? #{props 19030}#) #{props 19030}# #f)) #f)))) - (#{extend-env 4408}# - (lambda (#{labels 19035}# #{bindings 19036}# #{r 19037}#) + (#{extend-env 4405}# + (lambda (#{labels 19032}# #{bindings 19033}# #{r 19034}#) + (if (null? #{labels 19032}#) + #{r 19034}# + (#{extend-env 4405}# + (cdr #{labels 19032}#) + (cdr #{bindings 19033}#) + (cons (cons (car #{labels 19032}#) + (car #{bindings 19033}#)) + #{r 19034}#))))) + (#{extend-var-env 4406}# + (lambda (#{labels 19035}# #{vars 19036}# #{r 19037}#) (if (null? #{labels 19035}#) #{r 19037}# - (#{extend-env 4408}# + (#{extend-var-env 4406}# (cdr #{labels 19035}#) - (cdr #{bindings 19036}#) + (cdr #{vars 19036}#) (cons (cons (car #{labels 19035}#) - (car #{bindings 19036}#)) + (cons 'lexical (car #{vars 19036}#))) #{r 19037}#))))) - (#{extend-var-env 4409}# - (lambda (#{labels 19038}# #{vars 19039}# #{r 19040}#) - (if (null? #{labels 19038}#) - #{r 19040}# - (#{extend-var-env 4409}# - (cdr #{labels 19038}#) - (cdr #{vars 19039}#) - (cons (cons (car #{labels 19038}#) - (cons 'lexical (car #{vars 19039}#))) - #{r 19040}#))))) - (#{macros-only-env 4410}# - (lambda (#{r 19041}#) - (if (null? #{r 19041}#) + (#{macros-only-env 4407}# + (lambda (#{r 19038}#) + (if (null? #{r 19038}#) '() - (let ((#{a 19042}# (car #{r 19041}#))) - (if (let ((#{t 19045}# (car (cdr #{a 19042}#)))) - (if (eq? #{t 19045}# 'macro) + (let ((#{a 19039}# (car #{r 19038}#))) + (if (let ((#{t 19042}# (car (cdr #{a 19039}#)))) + (if (eq? #{t 19042}# 'macro) #t - (eq? #{t 19045}# 'syntax-parameter))) - (cons #{a 19042}# - (#{macros-only-env 4410}# (cdr #{r 19041}#))) - (#{macros-only-env 4410}# (cdr #{r 19041}#))))))) - (#{global-extend 4411}# - (lambda (#{type 19047}# #{sym 19048}# #{val 19049}#) + (eq? #{t 19042}# 'syntax-parameter))) + (cons #{a 19039}# + (#{macros-only-env 4407}# (cdr #{r 19038}#))) + (#{macros-only-env 4407}# (cdr #{r 19038}#))))))) + (#{global-extend 4408}# + (lambda (#{type 19044}# #{sym 19045}# #{val 19046}#) (module-define! (current-module) - #{sym 19048}# + #{sym 19045}# (make-syntax-transformer - #{sym 19048}# - #{type 19047}# - #{val 19049}#)))) - (#{id? 4413}# - (lambda (#{x 11971}#) - (if (symbol? #{x 11971}#) + #{sym 19045}# + #{type 19044}# + #{val 19046}#)))) + (#{id? 4410}# + (lambda (#{x 11968}#) + (if (symbol? #{x 11968}#) #t - (if (if (vector? #{x 11971}#) - (if (= (vector-length #{x 11971}#) 4) - (eq? (vector-ref #{x 11971}# 0) 'syntax-object) + (if (if (vector? #{x 11968}#) + (if (= (vector-length #{x 11968}#) 4) + (eq? (vector-ref #{x 11968}# 0) 'syntax-object) #f) #f) - (symbol? (vector-ref #{x 11971}# 1)) + (symbol? (vector-ref #{x 11968}# 1)) #f)))) - (#{gen-labels 4416}# - (lambda (#{ls 19059}#) - (if (null? #{ls 19059}#) + (#{gen-labels 4413}# + (lambda (#{ls 19056}#) + (if (null? #{ls 19056}#) '() (cons (symbol->string (gensym "i")) - (#{gen-labels 4416}# (cdr #{ls 19059}#)))))) - (#{make-binding-wrap 4427}# - (lambda (#{ids 19063}# #{labels 19064}# #{w 19065}#) - (if (null? #{ids 19063}#) - #{w 19065}# - (cons (car #{w 19065}#) - (cons (let ((#{labelvec 19066}# - (list->vector #{labels 19064}#))) - (let ((#{n 19067}# (vector-length #{labelvec 19066}#))) - (let ((#{symnamevec 19068}# (make-vector #{n 19067}#)) - (#{marksvec 19069}# (make-vector #{n 19067}#))) + (#{gen-labels 4413}# (cdr #{ls 19056}#)))))) + (#{make-binding-wrap 4424}# + (lambda (#{ids 19060}# #{labels 19061}# #{w 19062}#) + (if (null? #{ids 19060}#) + #{w 19062}# + (cons (car #{w 19062}#) + (cons (let ((#{labelvec 19063}# + (list->vector #{labels 19061}#))) + (let ((#{n 19064}# (vector-length #{labelvec 19063}#))) + (let ((#{symnamevec 19065}# (make-vector #{n 19064}#)) + (#{marksvec 19066}# (make-vector #{n 19064}#))) (begin (letrec* - ((#{f 19070}# - (lambda (#{ids 19269}# #{i 19270}#) - (if (not (null? #{ids 19269}#)) + ((#{f 19067}# + (lambda (#{ids 19266}# #{i 19267}#) + (if (not (null? #{ids 19266}#)) (call-with-values (lambda () - (let ((#{x 19273}# - (car #{ids 19269}#))) - (if (if (vector? #{x 19273}#) + (let ((#{x 19270}# + (car #{ids 19266}#))) + (if (if (vector? #{x 19270}#) (if (= (vector-length - #{x 19273}#) + #{x 19270}#) 4) (eq? (vector-ref - #{x 19273}# + #{x 19270}# 0) 'syntax-object) #f) #f) (values - (vector-ref #{x 19273}# 1) - (let ((#{m1 19289}# - (car #{w 19065}#)) - (#{m2 19290}# + (vector-ref #{x 19270}# 1) + (let ((#{m1 19286}# + (car #{w 19062}#)) + (#{m2 19287}# (car (vector-ref - #{x 19273}# + #{x 19270}# 2)))) - (if (null? #{m2 19290}#) - #{m1 19289}# + (if (null? #{m2 19287}#) + #{m1 19286}# (append - #{m1 19289}# - #{m2 19290}#)))) + #{m1 19286}# + #{m2 19287}#)))) (values - #{x 19273}# - (car #{w 19065}#))))) - (lambda (#{symname 19310}# - #{marks 19311}#) + #{x 19270}# + (car #{w 19062}#))))) + (lambda (#{symname 19307}# + #{marks 19308}#) (begin (vector-set! - #{symnamevec 19068}# - #{i 19270}# - #{symname 19310}#) + #{symnamevec 19065}# + #{i 19267}# + #{symname 19307}#) (vector-set! - #{marksvec 19069}# - #{i 19270}# - #{marks 19311}#) - (#{f 19070}# - (cdr #{ids 19269}#) - (#{1+}# #{i 19270}#))))))))) - (#{f 19070}# #{ids 19063}# 0)) + #{marksvec 19066}# + #{i 19267}# + #{marks 19308}#) + (#{f 19067}# + (cdr #{ids 19266}#) + (#{1+}# #{i 19267}#))))))))) + (#{f 19067}# #{ids 19060}# 0)) (vector 'ribcage - #{symnamevec 19068}# - #{marksvec 19069}# - #{labelvec 19066}#))))) - (cdr #{w 19065}#)))))) - (#{same-marks? 4431}# - (lambda (#{x 35539}# #{y 35540}#) - (if (eq? #{x 35539}# #{y 35540}#) - (eq? #{x 35539}# #{y 35540}#) - (if (not (null? #{x 35539}#)) - (if (not (null? #{y 35540}#)) - (if (eq? (car #{x 35539}#) (car #{y 35540}#)) - (#{same-marks? 4431}# - (cdr #{x 35539}#) - (cdr #{y 35540}#)) + #{symnamevec 19065}# + #{marksvec 19066}# + #{labelvec 19063}#))))) + (cdr #{w 19062}#)))))) + (#{same-marks? 4428}# + (lambda (#{x 35849}# #{y 35850}#) + (if (eq? #{x 35849}# #{y 35850}#) + (eq? #{x 35849}# #{y 35850}#) + (if (not (null? #{x 35849}#)) + (if (not (null? #{y 35850}#)) + (if (eq? (car #{x 35849}#) (car #{y 35850}#)) + (#{same-marks? 4428}# + (cdr #{x 35849}#) + (cdr #{y 35850}#)) #f) #f) #f)))) - (#{id-var-name 4432}# - (lambda (#{id 35548}# #{w 35549}# #{mod 35550}#) + (#{id-var-name 4429}# + (lambda (#{id 35858}# #{w 35859}# #{mod 35860}#) (letrec* - ((#{search 35551}# - (lambda (#{sym 35617}# - #{subst 35618}# - #{marks 35619}# - #{mod 35620}#) - (if (null? #{subst 35618}#) - (values #f #{marks 35619}#) - (let ((#{fst 35621}# (car #{subst 35618}#))) - (if (eq? #{fst 35621}# 'shift) - (#{search 35551}# - #{sym 35617}# - (cdr #{subst 35618}#) - (cdr #{marks 35619}#) - #{mod 35620}#) - (let ((#{symnames 35623}# (vector-ref #{fst 35621}# 1))) - (if (vector? #{symnames 35623}#) - (#{search-vector-rib 35553}# - #{sym 35617}# - #{subst 35618}# - #{marks 35619}# - #{symnames 35623}# - #{fst 35621}# - #{mod 35620}#) - (#{search-list-rib 35552}# - #{sym 35617}# - #{subst 35618}# - #{marks 35619}# - #{symnames 35623}# - #{fst 35621}# - #{mod 35620}#)))))))) - (#{search-list-rib 35552}# - (lambda (#{sym 35798}# - #{subst 35799}# - #{marks 35800}# - #{symnames 35801}# - #{ribcage 35802}# - #{mod 35803}#) + ((#{search 35861}# + (lambda (#{sym 35927}# + #{subst 35928}# + #{marks 35929}# + #{mod 35930}#) + (if (null? #{subst 35928}#) + (values #f #{marks 35929}#) + (let ((#{fst 35931}# (car #{subst 35928}#))) + (if (eq? #{fst 35931}# 'shift) + (#{search 35861}# + #{sym 35927}# + (cdr #{subst 35928}#) + (cdr #{marks 35929}#) + #{mod 35930}#) + (let ((#{symnames 35933}# (vector-ref #{fst 35931}# 1))) + (if (vector? #{symnames 35933}#) + (#{search-vector-rib 35863}# + #{sym 35927}# + #{subst 35928}# + #{marks 35929}# + #{symnames 35933}# + #{fst 35931}# + #{mod 35930}#) + (#{search-list-rib 35862}# + #{sym 35927}# + #{subst 35928}# + #{marks 35929}# + #{symnames 35933}# + #{fst 35931}# + #{mod 35930}#)))))))) + (#{search-list-rib 35862}# + (lambda (#{sym 36108}# + #{subst 36109}# + #{marks 36110}# + #{symnames 36111}# + #{ribcage 36112}# + #{mod 36113}#) (letrec* - ((#{f 35804}# - (lambda (#{symnames 35807}# #{i 35808}#) - (if (null? #{symnames 35807}#) - (#{search 35551}# - #{sym 35798}# - (cdr #{subst 35799}#) - #{marks 35800}# - #{mod 35803}#) - (if (if (eq? (car #{symnames 35807}#) #{sym 35798}#) - (#{same-marks? 4431}# - #{marks 35800}# + ((#{f 36114}# + (lambda (#{symnames 36117}# #{i 36118}#) + (if (null? #{symnames 36117}#) + (#{search 35861}# + #{sym 36108}# + (cdr #{subst 36109}#) + #{marks 36110}# + #{mod 36113}#) + (if (if (eq? (car #{symnames 36117}#) #{sym 36108}#) + (#{same-marks? 4428}# + #{marks 36110}# (list-ref - (vector-ref #{ribcage 35802}# 2) - #{i 35808}#)) + (vector-ref #{ribcage 36112}# 2) + #{i 36118}#)) #f) - (let ((#{n 35954}# + (let ((#{n 36264}# (list-ref - (vector-ref #{ribcage 35802}# 3) - #{i 35808}#))) - (if (pair? #{n 35954}#) - (if (equal? #{mod 35803}# (car #{n 35954}#)) - (values (cdr #{n 35954}#) #{marks 35800}#) - (#{f 35804}# - (cdr #{symnames 35807}#) - (#{1+}# #{i 35808}#))) - (values #{n 35954}# #{marks 35800}#))) - (#{f 35804}# - (cdr #{symnames 35807}#) - (#{1+}# #{i 35808}#))))))) - (#{f 35804}# #{symnames 35801}# 0)))) - (#{search-vector-rib 35553}# - (lambda (#{sym 35959}# - #{subst 35960}# - #{marks 35961}# - #{symnames 35962}# - #{ribcage 35963}# - #{mod 35964}#) - (let ((#{n 35965}# (vector-length #{symnames 35962}#))) + (vector-ref #{ribcage 36112}# 3) + #{i 36118}#))) + (if (pair? #{n 36264}#) + (if (equal? #{mod 36113}# (car #{n 36264}#)) + (values (cdr #{n 36264}#) #{marks 36110}#) + (#{f 36114}# + (cdr #{symnames 36117}#) + (#{1+}# #{i 36118}#))) + (values #{n 36264}# #{marks 36110}#))) + (#{f 36114}# + (cdr #{symnames 36117}#) + (#{1+}# #{i 36118}#))))))) + (#{f 36114}# #{symnames 36111}# 0)))) + (#{search-vector-rib 35863}# + (lambda (#{sym 36269}# + #{subst 36270}# + #{marks 36271}# + #{symnames 36272}# + #{ribcage 36273}# + #{mod 36274}#) + (let ((#{n 36275}# (vector-length #{symnames 36272}#))) (letrec* - ((#{f 35966}# - (lambda (#{i 35969}#) - (if (= #{i 35969}# #{n 35965}#) - (#{search 35551}# - #{sym 35959}# - (cdr #{subst 35960}#) - #{marks 35961}# - #{mod 35964}#) + ((#{f 36276}# + (lambda (#{i 36279}#) + (if (= #{i 36279}# #{n 36275}#) + (#{search 35861}# + #{sym 36269}# + (cdr #{subst 36270}#) + #{marks 36271}# + #{mod 36274}#) (if (if (eq? (vector-ref - #{symnames 35962}# - #{i 35969}#) - #{sym 35959}#) - (#{same-marks? 4431}# - #{marks 35961}# + #{symnames 36272}# + #{i 36279}#) + #{sym 36269}#) + (#{same-marks? 4428}# + #{marks 36271}# (vector-ref - (vector-ref #{ribcage 35963}# 2) - #{i 35969}#)) + (vector-ref #{ribcage 36273}# 2) + #{i 36279}#)) #f) - (let ((#{n 36116}# + (let ((#{n 36426}# (vector-ref - (vector-ref #{ribcage 35963}# 3) - #{i 35969}#))) - (if (pair? #{n 36116}#) - (if (equal? #{mod 35964}# (car #{n 36116}#)) - (values (cdr #{n 36116}#) #{marks 35961}#) - (#{f 35966}# (#{1+}# #{i 35969}#))) - (values #{n 36116}# #{marks 35961}#))) - (#{f 35966}# (#{1+}# #{i 35969}#))))))) - (#{f 35966}# 0)))))) - (if (symbol? #{id 35548}#) - (let ((#{t 35554}# - (#{search 35551}# - #{id 35548}# - (cdr #{w 35549}#) - (car #{w 35549}#) - #{mod 35550}#))) - (if #{t 35554}# #{t 35554}# #{id 35548}#)) - (if (if (vector? #{id 35548}#) - (if (= (vector-length #{id 35548}#) 4) - (eq? (vector-ref #{id 35548}# 0) 'syntax-object) + (vector-ref #{ribcage 36273}# 3) + #{i 36279}#))) + (if (pair? #{n 36426}#) + (if (equal? #{mod 36274}# (car #{n 36426}#)) + (values (cdr #{n 36426}#) #{marks 36271}#) + (#{f 36276}# (#{1+}# #{i 36279}#))) + (values #{n 36426}# #{marks 36271}#))) + (#{f 36276}# (#{1+}# #{i 36279}#))))))) + (#{f 36276}# 0)))))) + (if (symbol? #{id 35858}#) + (let ((#{t 35864}# + (#{search 35861}# + #{id 35858}# + (cdr #{w 35859}#) + (car #{w 35859}#) + #{mod 35860}#))) + (if #{t 35864}# #{t 35864}# #{id 35858}#)) + (if (if (vector? #{id 35858}#) + (if (= (vector-length #{id 35858}#) 4) + (eq? (vector-ref #{id 35858}# 0) 'syntax-object) #f) #f) - (let ((#{id 35569}# (vector-ref #{id 35548}# 1)) - (#{w1 35570}# (vector-ref #{id 35548}# 2)) - (#{mod 35571}# (vector-ref #{id 35548}# 3))) - (let ((#{marks 35572}# - (let ((#{m1 35582}# (car #{w 35549}#)) - (#{m2 35583}# (car #{w1 35570}#))) - (if (null? #{m2 35583}#) - #{m1 35582}# - (append #{m1 35582}# #{m2 35583}#))))) + (let ((#{id 35879}# (vector-ref #{id 35858}# 1)) + (#{w1 35880}# (vector-ref #{id 35858}# 2)) + (#{mod 35881}# (vector-ref #{id 35858}# 3))) + (let ((#{marks 35882}# + (let ((#{m1 35892}# (car #{w 35859}#)) + (#{m2 35893}# (car #{w1 35880}#))) + (if (null? #{m2 35893}#) + #{m1 35892}# + (append #{m1 35892}# #{m2 35893}#))))) (call-with-values (lambda () - (#{search 35551}# - #{id 35569}# - (cdr #{w 35549}#) - #{marks 35572}# - #{mod 35571}#)) - (lambda (#{new-id 35603}# #{marks 35604}#) - (if #{new-id 35603}# - #{new-id 35603}# - (let ((#{t 35612}# - (#{search 35551}# - #{id 35569}# - (cdr #{w1 35570}#) - #{marks 35604}# - #{mod 35571}#))) - (if #{t 35612}# #{t 35612}# #{id 35569}#))))))) + (#{search 35861}# + #{id 35879}# + (cdr #{w 35859}#) + #{marks 35882}# + #{mod 35881}#)) + (lambda (#{new-id 35913}# #{marks 35914}#) + (if #{new-id 35913}# + #{new-id 35913}# + (let ((#{t 35922}# + (#{search 35861}# + #{id 35879}# + (cdr #{w1 35880}#) + #{marks 35914}# + #{mod 35881}#))) + (if #{t 35922}# #{t 35922}# #{id 35879}#))))))) (syntax-violation 'id-var-name "invalid id" - #{id 35548}#)))))) - (#{resolve-identifier 4433}# - (lambda (#{id 19318}# - #{w 19319}# - #{r 19320}# - #{mod 19321}# - #{resolve-syntax-parameters? 19322}#) - (let ((#{n 19326}# - (#{id-var-name 4432}# - #{id 19318}# - #{w 19319}# - #{mod 19321}#))) - (if (if (vector? #{n 19326}#) - (if (= (vector-length #{n 19326}#) 4) - (eq? (vector-ref #{n 19326}# 0) 'syntax-object) + #{id 35858}#)))))) + (#{resolve-identifier 4430}# + (lambda (#{id 19315}# + #{w 19316}# + #{r 19317}# + #{mod 19318}# + #{resolve-syntax-parameters? 19319}#) + (let ((#{n 19323}# + (#{id-var-name 4429}# + #{id 19315}# + #{w 19316}# + #{mod 19318}#))) + (if (if (vector? #{n 19323}#) + (if (= (vector-length #{n 19323}#) 4) + (eq? (vector-ref #{n 19323}# 0) 'syntax-object) #f) #f) - (#{resolve-identifier 4433}# - #{n 19326}# - #{w 19319}# - #{r 19320}# - #{mod 19321}# - #{resolve-syntax-parameters? 19322}#) - (if (symbol? #{n 19326}#) - (let ((#{mod 19341}# - (if (if (vector? #{id 19318}#) - (if (= (vector-length #{id 19318}#) 4) - (eq? (vector-ref #{id 19318}# 0) 'syntax-object) + (#{resolve-identifier 4430}# + #{n 19323}# + #{w 19316}# + #{r 19317}# + #{mod 19318}# + #{resolve-syntax-parameters? 19319}#) + (if (symbol? #{n 19323}#) + (let ((#{mod 19338}# + (if (if (vector? #{id 19315}#) + (if (= (vector-length #{id 19315}#) 4) + (eq? (vector-ref #{id 19315}# 0) 'syntax-object) #f) #f) - (vector-ref #{id 19318}# 3) - #{mod 19321}#))) - (let ((#{b 19342}# - (let ((#{b 19345}# - (let ((#{t 19346}# + (vector-ref #{id 19315}# 3) + #{mod 19318}#))) + (let ((#{b 19339}# + (let ((#{b 19342}# + (let ((#{t 19343}# (begin - (if (if (not #{mod 19341}#) + (if (if (not #{mod 19338}#) (current-module) #f) (warn "module system is booted, we should have a module" - #{n 19326}#)) - (let ((#{v 19395}# + #{n 19323}#)) + (let ((#{v 19392}# (module-variable - (if #{mod 19341}# + (if #{mod 19338}# (resolve-module - (cdr #{mod 19341}#)) + (cdr #{mod 19338}#)) (current-module)) - #{n 19326}#))) - (if #{v 19395}# - (if (variable-bound? #{v 19395}#) - (let ((#{val 19404}# + #{n 19323}#))) + (if #{v 19392}# + (if (variable-bound? #{v 19392}#) + (let ((#{val 19401}# (variable-ref - #{v 19395}#))) - (if (macro? #{val 19404}#) + #{v 19392}#))) + (if (macro? #{val 19401}#) (if (macro-type - #{val 19404}#) + #{val 19401}#) (cons (macro-type - #{val 19404}#) + #{val 19401}#) (macro-binding - #{val 19404}#)) + #{val 19401}#)) #f) #f)) #f) #f))))) - (if #{t 19346}# #{t 19346}# '(global))))) - (if (if #{resolve-syntax-parameters? 19322}# - (eq? (car #{b 19345}#) 'syntax-parameter) + (if #{t 19343}# #{t 19343}# '(global))))) + (if (if #{resolve-syntax-parameters? 19319}# + (eq? (car #{b 19342}#) 'syntax-parameter) #f) - (let ((#{t 19413}# - (assq-ref #{r 19320}# (cdr #{b 19345}#)))) - (if #{t 19413}# - #{t 19413}# - (cons 'macro (car (cdr #{b 19345}#))))) - #{b 19345}#)))) - (if (eq? (car #{b 19342}#) 'global) - (values 'global #{n 19326}# #{mod 19341}#) + (let ((#{t 19410}# + (assq-ref #{r 19317}# (cdr #{b 19342}#)))) + (if #{t 19410}# + #{t 19410}# + (cons 'macro (car (cdr #{b 19342}#))))) + #{b 19342}#)))) + (if (eq? (car #{b 19339}#) 'global) + (values 'global #{n 19323}# #{mod 19338}#) (values - (car #{b 19342}#) - (cdr #{b 19342}#) - #{mod 19341}#)))) - (if (string? #{n 19326}#) - (let ((#{mod 19419}# - (if (if (vector? #{id 19318}#) - (if (= (vector-length #{id 19318}#) 4) - (eq? (vector-ref #{id 19318}# 0) 'syntax-object) + (car #{b 19339}#) + (cdr #{b 19339}#) + #{mod 19338}#)))) + (if (string? #{n 19323}#) + (let ((#{mod 19416}# + (if (if (vector? #{id 19315}#) + (if (= (vector-length #{id 19315}#) 4) + (eq? (vector-ref #{id 19315}# 0) 'syntax-object) #f) #f) - (vector-ref #{id 19318}# 3) - #{mod 19321}#))) - (let ((#{b 19420}# - (let ((#{b 19423}# - (let ((#{t 19424}# - (assq-ref #{r 19320}# #{n 19326}#))) - (if #{t 19424}# - #{t 19424}# + (vector-ref #{id 19315}# 3) + #{mod 19318}#))) + (let ((#{b 19417}# + (let ((#{b 19420}# + (let ((#{t 19421}# + (assq-ref #{r 19317}# #{n 19323}#))) + (if #{t 19421}# + #{t 19421}# '(displaced-lexical))))) - (if (if #{resolve-syntax-parameters? 19322}# - (eq? (car #{b 19423}#) 'syntax-parameter) + (if (if #{resolve-syntax-parameters? 19319}# + (eq? (car #{b 19420}#) 'syntax-parameter) #f) - (let ((#{t 19425}# - (assq-ref #{r 19320}# (cdr #{b 19423}#)))) - (if #{t 19425}# - #{t 19425}# - (cons 'macro (car (cdr #{b 19423}#))))) - #{b 19423}#)))) + (let ((#{t 19422}# + (assq-ref #{r 19317}# (cdr #{b 19420}#)))) + (if #{t 19422}# + #{t 19422}# + (cons 'macro (car (cdr #{b 19420}#))))) + #{b 19420}#)))) (values - (car #{b 19420}#) - (cdr #{b 19420}#) - #{mod 19419}#))) + (car #{b 19417}#) + (cdr #{b 19417}#) + #{mod 19416}#))) (error "unexpected id-var-name" - #{id 19318}# - #{w 19319}# - #{n 19326}#))))))) - (#{free-id=? 4434}# - (lambda (#{i 19438}# #{j 19439}#) - (let ((#{mi 19440}# - (if (if (vector? #{i 19438}#) - (if (= (vector-length #{i 19438}#) 4) - (eq? (vector-ref #{i 19438}# 0) 'syntax-object) + #{id 19315}# + #{w 19316}# + #{n 19323}#))))))) + (#{free-id=? 4431}# + (lambda (#{i 19435}# #{j 19436}#) + (let ((#{mi 19437}# + (if (if (vector? #{i 19435}#) + (if (= (vector-length #{i 19435}#) 4) + (eq? (vector-ref #{i 19435}# 0) 'syntax-object) #f) #f) - (vector-ref #{i 19438}# 3) + (vector-ref #{i 19435}# 3) #f))) - (let ((#{mj 19441}# - (if (if (vector? #{j 19439}#) - (if (= (vector-length #{j 19439}#) 4) - (eq? (vector-ref #{j 19439}# 0) 'syntax-object) + (let ((#{mj 19438}# + (if (if (vector? #{j 19436}#) + (if (= (vector-length #{j 19436}#) 4) + (eq? (vector-ref #{j 19436}# 0) 'syntax-object) #f) #f) - (vector-ref #{j 19439}# 3) + (vector-ref #{j 19436}# 3) #f))) - (let ((#{ni 19442}# - (#{id-var-name 4432}# - #{i 19438}# + (let ((#{ni 19439}# + (#{id-var-name 4429}# + #{i 19435}# '(()) - #{mi 19440}#))) - (let ((#{nj 19443}# - (#{id-var-name 4432}# - #{j 19439}# + #{mi 19437}#))) + (let ((#{nj 19440}# + (#{id-var-name 4429}# + #{j 19436}# '(()) - #{mj 19441}#))) - (if (if (vector? #{ni 19442}#) - (if (= (vector-length #{ni 19442}#) 4) - (eq? (vector-ref #{ni 19442}# 0) 'syntax-object) + #{mj 19438}#))) + (if (if (vector? #{ni 19439}#) + (if (= (vector-length #{ni 19439}#) 4) + (eq? (vector-ref #{ni 19439}# 0) 'syntax-object) #f) #f) - (#{free-id=? 4434}# #{ni 19442}# #{j 19439}#) - (if (if (vector? #{nj 19443}#) - (if (= (vector-length #{nj 19443}#) 4) - (eq? (vector-ref #{nj 19443}# 0) 'syntax-object) + (#{free-id=? 4431}# #{ni 19439}# #{j 19436}#) + (if (if (vector? #{nj 19440}#) + (if (= (vector-length #{nj 19440}#) 4) + (eq? (vector-ref #{nj 19440}# 0) 'syntax-object) #f) #f) - (#{free-id=? 4434}# #{i 19438}# #{nj 19443}#) - (if (symbol? #{ni 19442}#) - (if (eq? #{nj 19443}# - (if (if (vector? #{j 19439}#) - (if (= (vector-length #{j 19439}#) 4) - (eq? (vector-ref #{j 19439}# 0) + (#{free-id=? 4431}# #{i 19435}# #{nj 19440}#) + (if (symbol? #{ni 19439}#) + (if (eq? #{nj 19440}# + (if (if (vector? #{j 19436}#) + (if (= (vector-length #{j 19436}#) 4) + (eq? (vector-ref #{j 19436}# 0) 'syntax-object) #f) #f) - (vector-ref #{j 19439}# 1) - #{j 19439}#)) - (if (let ((#{bi 19515}# + (vector-ref #{j 19436}# 1) + #{j 19436}#)) + (if (let ((#{bi 19512}# (module-variable - (if #{mi 19440}# - (resolve-module (cdr #{mi 19440}#)) + (if #{mi 19437}# + (resolve-module (cdr #{mi 19437}#)) (current-module)) - (if (if (vector? #{i 19438}#) - (if (= (vector-length #{i 19438}#) + (if (if (vector? #{i 19435}#) + (if (= (vector-length #{i 19435}#) 4) - (eq? (vector-ref #{i 19438}# 0) + (eq? (vector-ref #{i 19435}# 0) 'syntax-object) #f) #f) - (vector-ref #{i 19438}# 1) - #{i 19438}#)))) - (if #{bi 19515}# - (eq? #{bi 19515}# + (vector-ref #{i 19435}# 1) + #{i 19435}#)))) + (if #{bi 19512}# + (eq? #{bi 19512}# (module-variable - (if #{mj 19441}# - (resolve-module (cdr #{mj 19441}#)) + (if #{mj 19438}# + (resolve-module (cdr #{mj 19438}#)) (current-module)) - (if (if (vector? #{j 19439}#) - (if (= (vector-length #{j 19439}#) + (if (if (vector? #{j 19436}#) + (if (= (vector-length #{j 19436}#) 4) - (eq? (vector-ref #{j 19439}# 0) + (eq? (vector-ref #{j 19436}# 0) 'syntax-object) #f) #f) - (vector-ref #{j 19439}# 1) - #{j 19439}#))) + (vector-ref #{j 19436}# 1) + #{j 19436}#))) (if (not (module-variable - (if #{mj 19441}# - (resolve-module (cdr #{mj 19441}#)) + (if #{mj 19438}# + (resolve-module (cdr #{mj 19438}#)) (current-module)) - (if (if (vector? #{j 19439}#) + (if (if (vector? #{j 19436}#) (if (= (vector-length - #{j 19439}#) + #{j 19436}#) 4) (eq? (vector-ref - #{j 19439}# + #{j 19436}# 0) 'syntax-object) #f) #f) - (vector-ref #{j 19439}# 1) - #{j 19439}#))) - (eq? #{ni 19442}# #{nj 19443}#) + (vector-ref #{j 19436}# 1) + #{j 19436}#))) + (eq? #{ni 19439}# #{nj 19440}#) #f))) (eq? (module-variable - (if #{mi 19440}# - (resolve-module (cdr #{mi 19440}#)) + (if #{mi 19437}# + (resolve-module (cdr #{mi 19437}#)) (current-module)) - (if (if (vector? #{i 19438}#) - (if (= (vector-length #{i 19438}#) 4) - (eq? (vector-ref #{i 19438}# 0) + (if (if (vector? #{i 19435}#) + (if (= (vector-length #{i 19435}#) 4) + (eq? (vector-ref #{i 19435}# 0) 'syntax-object) #f) #f) - (vector-ref #{i 19438}# 1) - #{i 19438}#)) + (vector-ref #{i 19435}# 1) + #{i 19435}#)) (module-variable - (if #{mj 19441}# - (resolve-module (cdr #{mj 19441}#)) + (if #{mj 19438}# + (resolve-module (cdr #{mj 19438}#)) (current-module)) - (if (if (vector? #{j 19439}#) - (if (= (vector-length #{j 19439}#) 4) - (eq? (vector-ref #{j 19439}# 0) + (if (if (vector? #{j 19436}#) + (if (= (vector-length #{j 19436}#) 4) + (eq? (vector-ref #{j 19436}# 0) 'syntax-object) #f) #f) - (vector-ref #{j 19439}# 1) - #{j 19439}#))) + (vector-ref #{j 19436}# 1) + #{j 19436}#))) #f) #f) - (equal? #{ni 19442}# #{nj 19443}#)))))))))) - (#{bound-id=? 4435}# - (lambda (#{i 19708}# #{j 19709}#) - (if (if (if (vector? #{i 19708}#) - (if (= (vector-length #{i 19708}#) 4) - (eq? (vector-ref #{i 19708}# 0) 'syntax-object) + (equal? #{ni 19439}# #{nj 19440}#)))))))))) + (#{bound-id=? 4432}# + (lambda (#{i 19705}# #{j 19706}#) + (if (if (if (vector? #{i 19705}#) + (if (= (vector-length #{i 19705}#) 4) + (eq? (vector-ref #{i 19705}# 0) 'syntax-object) #f) #f) - (if (vector? #{j 19709}#) - (if (= (vector-length #{j 19709}#) 4) - (eq? (vector-ref #{j 19709}# 0) 'syntax-object) + (if (vector? #{j 19706}#) + (if (= (vector-length #{j 19706}#) 4) + (eq? (vector-ref #{j 19706}# 0) 'syntax-object) #f) #f) #f) - (if (eq? (vector-ref #{i 19708}# 1) - (vector-ref #{j 19709}# 1)) - (#{same-marks? 4431}# - (car (vector-ref #{i 19708}# 2)) - (car (vector-ref #{j 19709}# 2))) + (if (eq? (vector-ref #{i 19705}# 1) + (vector-ref #{j 19706}# 1)) + (#{same-marks? 4428}# + (car (vector-ref #{i 19705}# 2)) + (car (vector-ref #{j 19706}# 2))) #f) - (eq? #{i 19708}# #{j 19709}#)))) - (#{valid-bound-ids? 4436}# - (lambda (#{ids 19878}#) + (eq? #{i 19705}# #{j 19706}#)))) + (#{valid-bound-ids? 4433}# + (lambda (#{ids 19875}#) (if (letrec* - ((#{all-ids? 19879}# - (lambda (#{ids 20076}#) - (if (null? #{ids 20076}#) - (null? #{ids 20076}#) - (if (let ((#{x 20087}# (car #{ids 20076}#))) - (if (symbol? #{x 20087}#) + ((#{all-ids? 19876}# + (lambda (#{ids 20073}#) + (if (null? #{ids 20073}#) + (null? #{ids 20073}#) + (if (let ((#{x 20084}# (car #{ids 20073}#))) + (if (symbol? #{x 20084}#) #t - (if (if (vector? #{x 20087}#) - (if (= (vector-length #{x 20087}#) 4) - (eq? (vector-ref #{x 20087}# 0) + (if (if (vector? #{x 20084}#) + (if (= (vector-length #{x 20084}#) 4) + (eq? (vector-ref #{x 20084}# 0) 'syntax-object) #f) #f) - (symbol? (vector-ref #{x 20087}# 1)) + (symbol? (vector-ref #{x 20084}# 1)) #f))) - (#{all-ids? 19879}# (cdr #{ids 20076}#)) + (#{all-ids? 19876}# (cdr #{ids 20073}#)) #f))))) - (#{all-ids? 19879}# #{ids 19878}#)) - (#{distinct-bound-ids? 4437}# #{ids 19878}#) + (#{all-ids? 19876}# #{ids 19875}#)) + (#{distinct-bound-ids? 4434}# #{ids 19875}#) #f))) - (#{distinct-bound-ids? 4437}# - (lambda (#{ids 20208}#) + (#{distinct-bound-ids? 4434}# + (lambda (#{ids 20205}#) (letrec* - ((#{distinct? 20209}# - (lambda (#{ids 20314}#) - (if (null? #{ids 20314}#) - (null? #{ids 20314}#) - (if (not (#{bound-id-member? 4438}# - (car #{ids 20314}#) - (cdr #{ids 20314}#))) - (#{distinct? 20209}# (cdr #{ids 20314}#)) + ((#{distinct? 20206}# + (lambda (#{ids 20311}#) + (if (null? #{ids 20311}#) + (null? #{ids 20311}#) + (if (not (#{bound-id-member? 4435}# + (car #{ids 20311}#) + (cdr #{ids 20311}#))) + (#{distinct? 20206}# (cdr #{ids 20311}#)) #f))))) - (#{distinct? 20209}# #{ids 20208}#)))) - (#{bound-id-member? 4438}# - (lambda (#{x 20410}# #{list 20411}#) - (if (not (null? #{list 20411}#)) - (let ((#{t 20412}# - (#{bound-id=? 4435}# - #{x 20410}# - (car #{list 20411}#)))) - (if #{t 20412}# - #{t 20412}# - (#{bound-id-member? 4438}# - #{x 20410}# - (cdr #{list 20411}#)))) + (#{distinct? 20206}# #{ids 20205}#)))) + (#{bound-id-member? 4435}# + (lambda (#{x 20407}# #{list 20408}#) + (if (not (null? #{list 20408}#)) + (let ((#{t 20409}# + (#{bound-id=? 4432}# + #{x 20407}# + (car #{list 20408}#)))) + (if #{t 20409}# + #{t 20409}# + (#{bound-id-member? 4435}# + #{x 20407}# + (cdr #{list 20408}#)))) #f))) - (#{source-wrap 4440}# - (lambda (#{x 20590}# - #{w 20591}# - #{s 20592}# - #{defmod 20593}#) - (let ((#{x 20597}# + (#{source-wrap 4437}# + (lambda (#{x 20587}# + #{w 20588}# + #{s 20589}# + #{defmod 20590}#) + (let ((#{x 20594}# (begin - (if (if (pair? #{x 20590}#) #{s 20592}# #f) - (set-source-properties! #{x 20590}# #{s 20592}#)) - #{x 20590}#))) - (if (if (null? (car #{w 20591}#)) - (null? (cdr #{w 20591}#)) + (if (if (pair? #{x 20587}#) #{s 20589}# #f) + (set-source-properties! #{x 20587}# #{s 20589}#)) + #{x 20587}#))) + (if (if (null? (car #{w 20588}#)) + (null? (cdr #{w 20588}#)) #f) - #{x 20597}# - (if (if (vector? #{x 20597}#) - (if (= (vector-length #{x 20597}#) 4) - (eq? (vector-ref #{x 20597}# 0) 'syntax-object) + #{x 20594}# + (if (if (vector? #{x 20594}#) + (if (= (vector-length #{x 20594}#) 4) + (eq? (vector-ref #{x 20594}# 0) 'syntax-object) #f) #f) - (let ((#{expression 20629}# (vector-ref #{x 20597}# 1)) - (#{wrap 20630}# - (let ((#{w2 20638}# (vector-ref #{x 20597}# 2))) - (let ((#{m1 20639}# (car #{w 20591}#)) - (#{s1 20640}# (cdr #{w 20591}#))) - (if (null? #{m1 20639}#) - (if (null? #{s1 20640}#) - #{w2 20638}# - (cons (car #{w2 20638}#) - (let ((#{m2 20655}# (cdr #{w2 20638}#))) - (if (null? #{m2 20655}#) - #{s1 20640}# - (append #{s1 20640}# #{m2 20655}#))))) - (cons (let ((#{m2 20663}# (car #{w2 20638}#))) - (if (null? #{m2 20663}#) - #{m1 20639}# - (append #{m1 20639}# #{m2 20663}#))) - (let ((#{m2 20671}# (cdr #{w2 20638}#))) - (if (null? #{m2 20671}#) - #{s1 20640}# - (append #{s1 20640}# #{m2 20671}#)))))))) - (#{module 20631}# (vector-ref #{x 20597}# 3))) + (let ((#{expression 20626}# (vector-ref #{x 20594}# 1)) + (#{wrap 20627}# + (let ((#{w2 20635}# (vector-ref #{x 20594}# 2))) + (let ((#{m1 20636}# (car #{w 20588}#)) + (#{s1 20637}# (cdr #{w 20588}#))) + (if (null? #{m1 20636}#) + (if (null? #{s1 20637}#) + #{w2 20635}# + (cons (car #{w2 20635}#) + (let ((#{m2 20652}# (cdr #{w2 20635}#))) + (if (null? #{m2 20652}#) + #{s1 20637}# + (append #{s1 20637}# #{m2 20652}#))))) + (cons (let ((#{m2 20660}# (car #{w2 20635}#))) + (if (null? #{m2 20660}#) + #{m1 20636}# + (append #{m1 20636}# #{m2 20660}#))) + (let ((#{m2 20668}# (cdr #{w2 20635}#))) + (if (null? #{m2 20668}#) + #{s1 20637}# + (append #{s1 20637}# #{m2 20668}#)))))))) + (#{module 20628}# (vector-ref #{x 20594}# 3))) (vector 'syntax-object - #{expression 20629}# - #{wrap 20630}# - #{module 20631}#)) - (if (null? #{x 20597}#) - #{x 20597}# + #{expression 20626}# + #{wrap 20627}# + #{module 20628}#)) + (if (null? #{x 20594}#) + #{x 20594}# (vector 'syntax-object - #{x 20597}# - #{w 20591}# - #{defmod 20593}#))))))) - (#{chi-sequence 4441}# - (lambda (#{body 36121}# - #{r 36122}# - #{w 36123}# - #{s 36124}# - #{mod 36125}#) - (#{build-sequence 4395}# - #{s 36124}# + #{x 20594}# + #{w 20588}# + #{defmod 20590}#))))))) + (#{expand-sequence 4438}# + (lambda (#{body 36431}# + #{r 36432}# + #{w 36433}# + #{s 36434}# + #{mod 36435}#) + (#{build-sequence 4392}# + #{s 36434}# (letrec* - ((#{dobody 36217}# - (lambda (#{body 36304}# - #{r 36305}# - #{w 36306}# - #{mod 36307}#) - (if (null? #{body 36304}#) + ((#{dobody 36527}# + (lambda (#{body 36614}# + #{r 36615}# + #{w 36616}# + #{mod 36617}#) + (if (null? #{body 36614}#) '() - (let ((#{first 36308}# - (#{chi 4446}# - (car #{body 36304}#) - #{r 36305}# - #{w 36306}# - #{mod 36307}#))) - (cons #{first 36308}# - (#{dobody 36217}# - (cdr #{body 36304}#) - #{r 36305}# - #{w 36306}# - #{mod 36307}#))))))) - (#{dobody 36217}# - #{body 36121}# - #{r 36122}# - #{w 36123}# - #{mod 36125}#))))) - (#{chi-top-sequence 4442}# - (lambda (#{body 20686}# - #{r 20687}# - #{w 20688}# - #{s 20689}# - #{m 20690}# - #{esew 20691}# - #{mod 20692}#) - (let ((#{r 20693}# - (cons '("placeholder" placeholder) #{r 20687}#))) - (let ((#{ribcage 20694}# (vector 'ribcage '() '() '()))) - (let ((#{w 20695}# - (cons (car #{w 20688}#) - (cons #{ribcage 20694}# (cdr #{w 20688}#))))) + (let ((#{first 36618}# + (#{expand 4443}# + (car #{body 36614}#) + #{r 36615}# + #{w 36616}# + #{mod 36617}#))) + (cons #{first 36618}# + (#{dobody 36527}# + (cdr #{body 36614}#) + #{r 36615}# + #{w 36616}# + #{mod 36617}#))))))) + (#{dobody 36527}# + #{body 36431}# + #{r 36432}# + #{w 36433}# + #{mod 36435}#))))) + (#{expand-top-sequence 4439}# + (lambda (#{body 20683}# + #{r 20684}# + #{w 20685}# + #{s 20686}# + #{m 20687}# + #{esew 20688}# + #{mod 20689}#) + (let ((#{r 20690}# + (cons '("placeholder" placeholder) #{r 20684}#))) + (let ((#{ribcage 20691}# (vector 'ribcage '() '() '()))) + (let ((#{w 20692}# + (cons (car #{w 20685}#) + (cons #{ribcage 20691}# (cdr #{w 20685}#))))) (letrec* - ((#{record-definition! 20696}# - (lambda (#{id 23703}# #{var 23704}#) - (let ((#{mod 23705}# + ((#{record-definition! 20693}# + (lambda (#{id 24185}# #{var 24186}#) + (let ((#{mod 24187}# (cons 'hygiene (module-name (current-module))))) - (let ((#{label 23711}# - (cons (vector-ref #{id 23703}# 3) - (if (if (vector? #{var 23704}#) - (if (= (vector-length #{var 23704}#) + (let ((#{label 24193}# + (cons (vector-ref #{id 24185}# 3) + (if (if (vector? #{var 24186}#) + (if (= (vector-length #{var 24186}#) 4) - (eq? (vector-ref #{var 23704}# 0) + (eq? (vector-ref #{var 24186}# 0) 'syntax-object) #f) #f) - (let ((#{expression 23773}# - (vector-ref #{var 23704}# 1)) - (#{wrap 23774}# - (let ((#{w2 23784}# + (let ((#{expression 24255}# + (vector-ref #{var 24186}# 1)) + (#{wrap 24256}# + (let ((#{w2 24266}# (vector-ref - #{var 23704}# + #{var 24186}# 2))) - (cons (let ((#{m2 23791}# - (car #{w2 23784}#))) - (if (null? #{m2 23791}#) + (cons (let ((#{m2 24273}# + (car #{w2 24266}#))) + (if (null? #{m2 24273}#) '(top) (append '(top) - #{m2 23791}#))) - (let ((#{m2 23800}# - (cdr #{w2 23784}#))) - (if (null? #{m2 23800}#) + #{m2 24273}#))) + (let ((#{m2 24282}# + (cdr #{w2 24266}#))) + (if (null? #{m2 24282}#) '() (append '() - #{m2 23800}#)))))) - (#{module 23775}# - (vector-ref #{var 23704}# 3))) + #{m2 24282}#)))))) + (#{module 24257}# + (vector-ref #{var 24186}# 3))) (vector 'syntax-object - #{expression 23773}# - #{wrap 23774}# - #{module 23775}#)) - (if (null? #{var 23704}#) - #{var 23704}# + #{expression 24255}# + #{wrap 24256}# + #{module 24257}#)) + (if (null? #{var 24186}#) + #{var 24186}# (vector 'syntax-object - #{var 23704}# + #{var 24186}# '((top)) - #{mod 23705}#)))))) + #{mod 24187}#)))))) (begin - (let ((#{update 23714}# - (cons (vector-ref #{id 23703}# 1) - (vector-ref #{ribcage 20694}# 1)))) + (let ((#{update 24196}# + (cons (vector-ref #{id 24185}# 1) + (vector-ref #{ribcage 20691}# 1)))) (vector-set! - #{ribcage 20694}# + #{ribcage 20691}# 1 - #{update 23714}#)) - (let ((#{update 23729}# - (cons (car (vector-ref #{id 23703}# 2)) - (vector-ref #{ribcage 20694}# 2)))) + #{update 24196}#)) + (let ((#{update 24211}# + (cons (car (vector-ref #{id 24185}# 2)) + (vector-ref #{ribcage 20691}# 2)))) (vector-set! - #{ribcage 20694}# + #{ribcage 20691}# 2 - #{update 23729}#)) - (let ((#{update 23744}# - (cons #{label 23711}# - (vector-ref #{ribcage 20694}# 3)))) + #{update 24211}#)) + (let ((#{update 24226}# + (cons #{label 24193}# + (vector-ref #{ribcage 20691}# 3)))) (vector-set! - #{ribcage 20694}# + #{ribcage 20691}# 3 - #{update 23744}#))))))) - (#{parse 20699}# - (lambda (#{body 20904}# - #{r 20905}# - #{w 20906}# - #{s 20907}# - #{m 20908}# - #{esew 20909}# - #{mod 20910}#) + #{update 24226}#))))))) + (#{parse 20696}# + (lambda (#{body 20901}# + #{r 20902}# + #{w 20903}# + #{s 20904}# + #{m 20905}# + #{esew 20906}# + #{mod 20907}#) (letrec* - ((#{lp 20911}# - (lambda (#{body 20998}# #{exps 20999}#) - (if (null? #{body 20998}#) - #{exps 20999}# - (#{lp 20911}# - (cdr #{body 20998}#) + ((#{lp 20908}# + (lambda (#{body 20995}# #{exps 20996}#) + (if (null? #{body 20995}#) + #{exps 20996}# + (#{lp 20908}# + (cdr #{body 20995}#) (append - (#{parse1 20700}# - (car #{body 20998}#) - #{r 20905}# - #{w 20906}# - #{s 20907}# - #{m 20908}# - #{esew 20909}# - #{mod 20910}#) - #{exps 20999}#)))))) - (#{lp 20911}# #{body 20904}# '())))) - (#{parse1 20700}# - (lambda (#{x 21073}# - #{r 21074}# - #{w 21075}# - #{s 21076}# - #{m 21077}# - #{esew 21078}# - #{mod 21079}#) + (#{parse1 20697}# + (car #{body 20995}#) + #{r 20902}# + #{w 20903}# + #{s 20904}# + #{m 20905}# + #{esew 20906}# + #{mod 20907}#) + #{exps 20996}#)))))) + (#{lp 20908}# #{body 20901}# '())))) + (#{parse1 20697}# + (lambda (#{x 21070}# + #{r 21071}# + #{w 21072}# + #{s 21073}# + #{m 21074}# + #{esew 21075}# + #{mod 21076}#) (call-with-values (lambda () - (#{syntax-type 4445}# - #{x 21073}# - #{r 21074}# - #{w 21075}# - (#{source-annotation 4407}# #{x 21073}#) - #{ribcage 20694}# - #{mod 21079}# + (#{syntax-type 4442}# + #{x 21070}# + #{r 21071}# + #{w 21072}# + (#{source-annotation 4404}# #{x 21070}#) + #{ribcage 20691}# + #{mod 21076}# #f)) - (lambda (#{type 21283}# - #{value 21284}# - #{e 21285}# - #{w 21286}# - #{s 21287}# - #{mod 21288}#) - (if (eqv? #{type 21283}# 'define-form) - (let ((#{id 21292}# - (if (if (null? (car #{w 21286}#)) - (null? (cdr #{w 21286}#)) + (lambda (#{type 21280}# + #{value 21281}# + #{e 21282}# + #{w 21283}# + #{s 21284}# + #{mod 21285}#) + (if (eqv? #{type 21280}# 'define-form) + (let ((#{id 21289}# + (if (if (null? (car #{w 21283}#)) + (null? (cdr #{w 21283}#)) #f) - #{value 21284}# - (if (if (vector? #{value 21284}#) + #{value 21281}# + (if (if (vector? #{value 21281}#) (if (= (vector-length - #{value 21284}#) + #{value 21281}#) 4) - (eq? (vector-ref #{value 21284}# 0) + (eq? (vector-ref #{value 21281}# 0) 'syntax-object) #f) #f) - (let ((#{expression 21342}# - (vector-ref #{value 21284}# 1)) - (#{wrap 21343}# - (let ((#{w2 21353}# + (let ((#{expression 21339}# + (vector-ref #{value 21281}# 1)) + (#{wrap 21340}# + (let ((#{w2 21350}# (vector-ref - #{value 21284}# + #{value 21281}# 2))) - (let ((#{m1 21354}# - (car #{w 21286}#)) - (#{s1 21355}# - (cdr #{w 21286}#))) - (if (null? #{m1 21354}#) - (if (null? #{s1 21355}#) - #{w2 21353}# - (cons (car #{w2 21353}#) - (let ((#{m2 21372}# - (cdr #{w2 21353}#))) - (if (null? #{m2 21372}#) - #{s1 21355}# + (let ((#{m1 21351}# + (car #{w 21283}#)) + (#{s1 21352}# + (cdr #{w 21283}#))) + (if (null? #{m1 21351}#) + (if (null? #{s1 21352}#) + #{w2 21350}# + (cons (car #{w2 21350}#) + (let ((#{m2 21369}# + (cdr #{w2 21350}#))) + (if (null? #{m2 21369}#) + #{s1 21352}# (append - #{s1 21355}# - #{m2 21372}#))))) - (cons (let ((#{m2 21380}# - (car #{w2 21353}#))) - (if (null? #{m2 21380}#) - #{m1 21354}# + #{s1 21352}# + #{m2 21369}#))))) + (cons (let ((#{m2 21377}# + (car #{w2 21350}#))) + (if (null? #{m2 21377}#) + #{m1 21351}# (append - #{m1 21354}# - #{m2 21380}#))) - (let ((#{m2 21388}# - (cdr #{w2 21353}#))) - (if (null? #{m2 21388}#) - #{s1 21355}# + #{m1 21351}# + #{m2 21377}#))) + (let ((#{m2 21385}# + (cdr #{w2 21350}#))) + (if (null? #{m2 21385}#) + #{s1 21352}# (append - #{s1 21355}# - #{m2 21388}#)))))))) - (#{module 21344}# - (vector-ref #{value 21284}# 3))) + #{s1 21352}# + #{m2 21385}#)))))))) + (#{module 21341}# + (vector-ref #{value 21281}# 3))) (vector 'syntax-object - #{expression 21342}# - #{wrap 21343}# - #{module 21344}#)) - (if (null? #{value 21284}#) - #{value 21284}# + #{expression 21339}# + #{wrap 21340}# + #{module 21341}#)) + (if (null? #{value 21281}#) + #{value 21281}# (vector 'syntax-object - #{value 21284}# - #{w 21286}# - #{mod 21288}#)))))) + #{value 21281}# + #{w 21283}# + #{mod 21285}#)))))) (begin (symbol->string (gensym "i")) - (let ((#{var 21294}# + (let ((#{var 21291}# (if (not (equal? (car (vector-ref - #{id 21292}# + #{id 21289}# 2)) '(top))) (symbol-append - (vector-ref #{id 21292}# 1) + (vector-ref #{id 21289}# 1) '- (string->symbol (number->string - (hash (syntax->datum #{x 21073}#) + (hash (syntax->datum #{x 21070}#) most-positive-fixnum) 16))) - (vector-ref #{id 21292}# 1)))) + (vector-ref #{id 21289}# 1)))) (begin - (#{record-definition! 20696}# - #{id 21292}# - #{var 21294}#) - (list (if (eq? #{m 21077}# 'c&e) - (let ((#{x 21519}# - (#{build-global-definition 4388}# - #{s 21287}# - #{var 21294}# - (#{chi 4446}# - #{e 21285}# - #{r 21074}# - #{w 21286}# - #{mod 21288}#)))) + (#{record-definition! 20693}# + #{id 21289}# + #{var 21291}#) + (list (if (eq? #{m 21074}# 'c&e) + (let ((#{x 21516}# + (#{build-global-definition 4385}# + #{s 21284}# + #{var 21291}# + (#{expand 4443}# + #{e 21282}# + #{r 21071}# + #{w 21283}# + #{mod 21285}#)))) (begin - (#{top-level-eval-hook 4373}# - #{x 21519}# - #{mod 21288}#) - (lambda () #{x 21519}#))) + (#{top-level-eval-hook 4370}# + #{x 21516}# + #{mod 21285}#) + (lambda () #{x 21516}#))) (lambda () - (#{build-global-definition 4388}# - #{s 21287}# - #{var 21294}# - (#{chi 4446}# - #{e 21285}# - #{r 21074}# - #{w 21286}# - #{mod 21288}#))))))))) - (if (if (eqv? #{type 21283}# 'define-syntax-form) + (#{build-global-definition 4385}# + #{s 21284}# + #{var 21291}# + (#{expand 4443}# + #{e 21282}# + #{r 21071}# + #{w 21283}# + #{mod 21285}#))))))))) + (if (if (eqv? #{type 21280}# 'define-syntax-form) #t - (eqv? #{type 21283}# + (eqv? #{type 21280}# 'define-syntax-parameter-form)) - (let ((#{id 22035}# - (if (if (null? (car #{w 21286}#)) - (null? (cdr #{w 21286}#)) + (let ((#{id 22032}# + (if (if (null? (car #{w 21283}#)) + (null? (cdr #{w 21283}#)) #f) - #{value 21284}# - (if (if (vector? #{value 21284}#) + #{value 21281}# + (if (if (vector? #{value 21281}#) (if (= (vector-length - #{value 21284}#) + #{value 21281}#) 4) (eq? (vector-ref - #{value 21284}# + #{value 21281}# 0) 'syntax-object) #f) #f) - (let ((#{expression 22085}# - (vector-ref #{value 21284}# 1)) - (#{wrap 22086}# - (let ((#{w2 22096}# + (let ((#{expression 22082}# + (vector-ref #{value 21281}# 1)) + (#{wrap 22083}# + (let ((#{w2 22093}# (vector-ref - #{value 21284}# + #{value 21281}# 2))) - (let ((#{m1 22097}# - (car #{w 21286}#)) - (#{s1 22098}# - (cdr #{w 21286}#))) - (if (null? #{m1 22097}#) - (if (null? #{s1 22098}#) - #{w2 22096}# - (cons (car #{w2 22096}#) - (let ((#{m2 22115}# - (cdr #{w2 22096}#))) - (if (null? #{m2 22115}#) - #{s1 22098}# + (let ((#{m1 22094}# + (car #{w 21283}#)) + (#{s1 22095}# + (cdr #{w 21283}#))) + (if (null? #{m1 22094}#) + (if (null? #{s1 22095}#) + #{w2 22093}# + (cons (car #{w2 22093}#) + (let ((#{m2 22112}# + (cdr #{w2 22093}#))) + (if (null? #{m2 22112}#) + #{s1 22095}# (append - #{s1 22098}# - #{m2 22115}#))))) - (cons (let ((#{m2 22123}# - (car #{w2 22096}#))) - (if (null? #{m2 22123}#) - #{m1 22097}# + #{s1 22095}# + #{m2 22112}#))))) + (cons (let ((#{m2 22120}# + (car #{w2 22093}#))) + (if (null? #{m2 22120}#) + #{m1 22094}# (append - #{m1 22097}# - #{m2 22123}#))) - (let ((#{m2 22131}# - (cdr #{w2 22096}#))) - (if (null? #{m2 22131}#) - #{s1 22098}# + #{m1 22094}# + #{m2 22120}#))) + (let ((#{m2 22128}# + (cdr #{w2 22093}#))) + (if (null? #{m2 22128}#) + #{s1 22095}# (append - #{s1 22098}# - #{m2 22131}#)))))))) - (#{module 22087}# + #{s1 22095}# + #{m2 22128}#)))))))) + (#{module 22084}# (vector-ref - #{value 21284}# + #{value 21281}# 3))) (vector 'syntax-object - #{expression 22085}# - #{wrap 22086}# - #{module 22087}#)) - (if (null? #{value 21284}#) - #{value 21284}# + #{expression 22082}# + #{wrap 22083}# + #{module 22084}#)) + (if (null? #{value 21281}#) + #{value 21281}# (vector 'syntax-object - #{value 21284}# - #{w 21286}# - #{mod 21288}#)))))) + #{value 21281}# + #{w 21283}# + #{mod 21285}#)))))) (begin (symbol->string (gensym "i")) - (let ((#{var 22037}# + (let ((#{var 22034}# (if (not (equal? (car (vector-ref - #{id 22035}# + #{id 22032}# 2)) '(top))) (symbol-append - (vector-ref #{id 22035}# 1) + (vector-ref #{id 22032}# 1) '- (string->symbol (number->string (hash (syntax->datum - #{x 21073}#) + #{x 21070}#) most-positive-fixnum) 16))) - (vector-ref #{id 22035}# 1)))) + (vector-ref #{id 22032}# 1)))) (begin - (#{record-definition! 20696}# - #{id 22035}# - #{var 22037}#) - (if (eqv? #{m 21077}# 'c) - (if (memq 'compile #{esew 21078}#) - (let ((#{e 22265}# - (#{chi-install-global 4443}# - #{var 22037}# - #{type 21283}# - (#{chi 4446}# - #{e 21285}# - #{r 21074}# - #{w 21286}# - #{mod 21288}#)))) + (#{record-definition! 20693}# + #{id 22032}# + #{var 22034}#) + (if (eqv? #{m 21074}# 'c) + (if (memq 'compile #{esew 21075}#) + (let ((#{e 22262}# + (#{expand-install-global 4440}# + #{var 22034}# + #{type 21280}# + (#{expand 4443}# + #{e 21282}# + #{r 21071}# + #{w 21283}# + #{mod 21285}#)))) (begin - (#{top-level-eval-hook 4373}# - #{e 22265}# - #{mod 21288}#) - (if (memq 'load #{esew 21078}#) - (list (lambda () #{e 22265}#)) + (#{top-level-eval-hook 4370}# + #{e 22262}# + #{mod 21285}#) + (if (memq 'load #{esew 21075}#) + (list (lambda () #{e 22262}#)) '()))) - (if (memq 'load #{esew 21078}#) + (if (memq 'load #{esew 21075}#) (list (lambda () - (#{chi-install-global 4443}# - #{var 22037}# - #{type 21283}# - (#{chi 4446}# - #{e 21285}# - #{r 21074}# - #{w 21286}# - #{mod 21288}#)))) + (#{expand-install-global 4440}# + #{var 22034}# + #{type 21280}# + (#{expand 4443}# + #{e 21282}# + #{r 21071}# + #{w 21283}# + #{mod 21285}#)))) '())) - (if (eqv? #{m 21077}# 'c&e) - (let ((#{e 22785}# - (#{chi-install-global 4443}# - #{var 22037}# - #{type 21283}# - (#{chi 4446}# - #{e 21285}# - #{r 21074}# - #{w 21286}# - #{mod 21288}#)))) + (if (eqv? #{m 21074}# 'c&e) + (let ((#{e 22782}# + (#{expand-install-global 4440}# + #{var 22034}# + #{type 21280}# + (#{expand 4443}# + #{e 21282}# + #{r 21071}# + #{w 21283}# + #{mod 21285}#)))) (begin - (#{top-level-eval-hook 4373}# - #{e 22785}# - #{mod 21288}#) - (list (lambda () #{e 22785}#)))) + (#{top-level-eval-hook 4370}# + #{e 22782}# + #{mod 21285}#) + (list (lambda () #{e 22782}#)))) (begin - (if (memq 'eval #{esew 21078}#) - (#{top-level-eval-hook 4373}# - (#{chi-install-global 4443}# - #{var 22037}# - #{type 21283}# - (#{chi 4446}# - #{e 21285}# - #{r 21074}# - #{w 21286}# - #{mod 21288}#)) - #{mod 21288}#)) + (if (memq 'eval #{esew 21075}#) + (#{top-level-eval-hook 4370}# + (#{expand-install-global 4440}# + #{var 22034}# + #{type 21280}# + (#{expand 4443}# + #{e 21282}# + #{r 21071}# + #{w 21283}# + #{mod 21285}#)) + #{mod 21285}#)) '()))))))) - (if (eqv? #{type 21283}# 'begin-form) - (let ((#{tmp 23414}# + (if (eqv? #{type 21280}# 'begin-form) + (let ((#{tmp 23411}# ($sc-dispatch - #{e 21285}# + #{e 21282}# '(_ . each-any)))) - (if #{tmp 23414}# + (if #{tmp 23411}# (@apply - (lambda (#{e1 23418}#) - (#{parse 20699}# - #{e1 23418}# - #{r 21074}# - #{w 21286}# - #{s 21287}# - #{m 21077}# - #{esew 21078}# - #{mod 21288}#)) - #{tmp 23414}#) + (lambda (#{e1 23415}#) + (#{parse 20696}# + #{e1 23415}# + #{r 21071}# + #{w 21283}# + #{s 21284}# + #{m 21074}# + #{esew 21075}# + #{mod 21285}#)) + #{tmp 23411}#) (syntax-violation #f "source expression failed to match any pattern" - #{e 21285}#))) - (if (eqv? #{type 21283}# 'local-syntax-form) - (#{chi-local-syntax 4451}# - #{value 21284}# - #{e 21285}# - #{r 21074}# - #{w 21286}# - #{s 21287}# - #{mod 21288}# - (lambda (#{forms 23464}# - #{r 23465}# - #{w 23466}# - #{s 23467}# - #{mod 23468}#) - (#{parse 20699}# - #{forms 23464}# - #{r 23465}# - #{w 23466}# - #{s 23467}# - #{m 21077}# - #{esew 21078}# - #{mod 23468}#))) - (if (eqv? #{type 21283}# 'eval-when-form) - (let ((#{tmp 23507}# + #{e 21282}#))) + (if (eqv? #{type 21280}# 'local-syntax-form) + (#{expand-local-syntax 4448}# + #{value 21281}# + #{e 21282}# + #{r 21071}# + #{w 21283}# + #{s 21284}# + #{mod 21285}# + (lambda (#{forms 23461}# + #{r 23462}# + #{w 23463}# + #{s 23464}# + #{mod 23465}#) + (#{parse 20696}# + #{forms 23461}# + #{r 23462}# + #{w 23463}# + #{s 23464}# + #{m 21074}# + #{esew 21075}# + #{mod 23465}#))) + (if (eqv? #{type 21280}# 'eval-when-form) + (let ((#{tmp 23504}# ($sc-dispatch - #{e 21285}# + #{e 21282}# '(_ each-any any . each-any)))) - (if #{tmp 23507}# + (if #{tmp 23504}# (@apply - (lambda (#{x 23511}# - #{e1 23512}# - #{e2 23513}#) - (let ((#{when-list 23514}# - (#{chi-when-list 4444}# - #{e 21285}# - #{x 23511}# - #{w 21286}#)) - (#{body 23515}# - (cons #{e1 23512}# - #{e2 23513}#))) + (lambda (#{x 23508}# + #{e1 23509}# + #{e2 23510}#) + (let ((#{when-list 23511}# + (#{parse-when-list 4441}# + #{e 21282}# + #{x 23508}#)) + (#{body 23512}# + (cons #{e1 23509}# + #{e2 23510}#))) (letrec* - ((#{recurse 23516}# - (lambda (#{m 23652}# - #{esew 23653}#) - (#{parse 20699}# - #{body 23515}# - #{r 21074}# - #{w 21286}# - #{s 21287}# - #{m 23652}# - #{esew 23653}# - #{mod 21288}#)))) - (if (eq? #{m 21077}# 'e) + ((#{recurse 23513}# + (lambda (#{m 24102}# + #{esew 24103}#) + (#{parse 20696}# + #{body 23512}# + #{r 21071}# + #{w 21283}# + #{s 21284}# + #{m 24102}# + #{esew 24103}# + #{mod 21285}#)))) + (if (eq? #{m 21074}# 'e) (if (memq 'eval - #{when-list 23514}#) - (#{recurse 23516}# + #{when-list 23511}#) + (#{recurse 23513}# (if (memq 'expand - #{when-list 23514}#) + #{when-list 23511}#) 'c&e 'e) '(eval)) (begin (if (memq 'expand - #{when-list 23514}#) - (let ((#{x 23557}# - (#{chi-top-sequence 4442}# - #{body 23515}# - #{r 21074}# - #{w 21286}# - #{s 21287}# + #{when-list 23511}#) + (let ((#{x 23621}# + (#{expand-top-sequence 4439}# + #{body 23512}# + #{r 21071}# + #{w 21283}# + #{s 21284}# 'e '(eval) - #{mod 21288}#))) + #{mod 21285}#))) (primitive-eval - #{x 23557}#))) + #{x 23621}#))) '())) (if (memq 'load - #{when-list 23514}#) - (if (let ((#{t 23559}# + #{when-list 23511}#) + (if (let ((#{t 23649}# (memq 'compile - #{when-list 23514}#))) - (if #{t 23559}# - #{t 23559}# - (let ((#{t 23561}# + #{when-list 23511}#))) + (if #{t 23649}# + #{t 23649}# + (let ((#{t 23702}# (memq 'expand - #{when-list 23514}#))) - (if #{t 23561}# - #{t 23561}# - (if (eq? #{m 21077}# + #{when-list 23511}#))) + (if #{t 23702}# + #{t 23702}# + (if (eq? #{m 21074}# 'c&e) (memq 'eval - #{when-list 23514}#) + #{when-list 23511}#) #f))))) - (#{recurse 23516}# + (#{recurse 23513}# 'c&e '(compile load)) - (if (if (eq? #{m 21077}# + (if (if (eq? #{m 21074}# 'c) #t - (eq? #{m 21077}# + (eq? #{m 21074}# 'c&e)) - (#{recurse 23516}# + (#{recurse 23513}# 'c '(load)) '())) - (if (let ((#{t 23643}# + (if (let ((#{t 23913}# (memq 'compile - #{when-list 23514}#))) - (if #{t 23643}# - #{t 23643}# - (let ((#{t 23645}# + #{when-list 23511}#))) + (if #{t 23913}# + #{t 23913}# + (let ((#{t 23966}# (memq 'expand - #{when-list 23514}#))) - (if #{t 23645}# - #{t 23645}# - (if (eq? #{m 21077}# + #{when-list 23511}#))) + (if #{t 23966}# + #{t 23966}# + (if (eq? #{m 21074}# 'c&e) (memq 'eval - #{when-list 23514}#) + #{when-list 23511}#) #f))))) (begin - (let ((#{x 23650}# - (#{chi-top-sequence 4442}# - #{body 23515}# - #{r 21074}# - #{w 21286}# - #{s 21287}# + (let ((#{x 24100}# + (#{expand-top-sequence 4439}# + #{body 23512}# + #{r 21071}# + #{w 21283}# + #{s 21284}# 'e '(eval) - #{mod 21288}#))) + #{mod 21285}#))) (primitive-eval - #{x 23650}#)) + #{x 24100}#)) '()) '())))))) - #{tmp 23507}#) + #{tmp 23504}#) (syntax-violation #f "source expression failed to match any pattern" - #{e 21285}#))) - (list (if (eq? #{m 21077}# 'c&e) - (let ((#{x 23694}# - (#{chi-expr 4447}# - #{type 21283}# - #{value 21284}# - #{e 21285}# - #{r 21074}# - #{w 21286}# - #{s 21287}# - #{mod 21288}#))) + #{e 21282}#))) + (list (if (eq? #{m 21074}# 'c&e) + (let ((#{x 24176}# + (#{expand-expr 4444}# + #{type 21280}# + #{value 21281}# + #{e 21282}# + #{r 21071}# + #{w 21283}# + #{s 21284}# + #{mod 21285}#))) (begin - (primitive-eval #{x 23694}#) - (lambda () #{x 23694}#))) + (primitive-eval #{x 24176}#) + (lambda () #{x 24176}#))) (lambda () - (#{chi-expr 4447}# - #{type 21283}# - #{value 21284}# - #{e 21285}# - #{r 21074}# - #{w 21286}# - #{s 21287}# - #{mod 21288}#)))))))))))))) - (let ((#{exps 20701}# - (map (lambda (#{x 20832}#) (#{x 20832}#)) + (#{expand-expr 4444}# + #{type 21280}# + #{value 21281}# + #{e 21282}# + #{r 21071}# + #{w 21283}# + #{s 21284}# + #{mod 21285}#)))))))))))))) + (let ((#{exps 20698}# + (map (lambda (#{x 20829}#) (#{x 20829}#)) (reverse - (#{parse 20699}# - #{body 20686}# - #{r 20693}# - #{w 20695}# - #{s 20689}# - #{m 20690}# - #{esew 20691}# - #{mod 20692}#))))) - (if (null? #{exps 20701}#) + (#{parse 20696}# + #{body 20683}# + #{r 20690}# + #{w 20692}# + #{s 20686}# + #{m 20687}# + #{esew 20688}# + #{mod 20689}#))))) + (if (null? #{exps 20698}#) (make-struct/no-tail (vector-ref %expanded-vtables 0) - #{s 20689}#) - (#{build-sequence 4395}# - #{s 20689}# - #{exps 20701}#))))))))) - (#{chi-install-global 4443}# - (lambda (#{name 23822}# #{type 23823}# #{e 23824}#) - (let ((#{exp 23830}# - (let ((#{args 23841}# - (if (eq? #{type 23823}# + #{s 20686}#) + (#{build-sequence 4392}# + #{s 20686}# + #{exps 20698}#))))))))) + (#{expand-install-global 4440}# + (lambda (#{name 24304}# #{type 24305}# #{e 24306}#) + (let ((#{exp 24312}# + (let ((#{args 24323}# + (if (eq? #{type 24305}# 'define-syntax-parameter-form) (list (make-struct/no-tail (vector-ref %expanded-vtables 1) #f - #{name 23822}#) + #{name 24304}#) (make-struct/no-tail (vector-ref %expanded-vtables 1) #f 'syntax-parameter) - (let ((#{args 23864}# (list #{e 23824}#))) + (let ((#{args 24346}# (list #{e 24306}#))) (make-struct/no-tail (vector-ref %expanded-vtables 12) #f 'list - #{args 23864}#))) + #{args 24346}#))) (list (make-struct/no-tail (vector-ref %expanded-vtables 1) #f - #{name 23822}#) + #{name 24304}#) (make-struct/no-tail (vector-ref %expanded-vtables 1) #f 'macro) - #{e 23824}#)))) + #{e 24306}#)))) (make-struct/no-tail (vector-ref %expanded-vtables 12) #f 'make-syntax-transformer - #{args 23841}#)))) + #{args 24323}#)))) (begin - (if (if (struct? #{exp 23830}#) - (eq? (struct-vtable #{exp 23830}#) + (if (if (struct? #{exp 24312}#) + (eq? (struct-vtable #{exp 24312}#) (vector-ref %expanded-vtables 14)) #f) - (let ((#{meta 23891}# (struct-ref #{exp 23830}# 1))) - (if (not (assq 'name #{meta 23891}#)) - (let ((#{v 23898}# - (cons (cons 'name #{name 23822}#) #{meta 23891}#))) - (struct-set! #{exp 23830}# 1 #{v 23898}#))))) + (let ((#{meta 24373}# (struct-ref #{exp 24312}# 1))) + (if (not (assq 'name #{meta 24373}#)) + (let ((#{v 24380}# + (cons (cons 'name #{name 24304}#) #{meta 24373}#))) + (struct-set! #{exp 24312}# 1 #{v 24380}#))))) (make-struct/no-tail (vector-ref %expanded-vtables 9) #f - #{name 23822}# - #{exp 23830}#))))) - (#{chi-when-list 4444}# - (lambda (#{e 23909}# #{when-list 23910}# #{w 23911}#) - (letrec* - ((#{f 23912}# - (lambda (#{when-list 24114}# #{situations 24115}#) - (if (null? #{when-list 24114}#) - #{situations 24115}# - (#{f 23912}# - (cdr #{when-list 24114}#) - (cons (let ((#{x 24116}# - (syntax->datum (car #{when-list 24114}#)))) - (if (if (eq? #{x 24116}# 'compile) - #t - (if (eq? #{x 24116}# 'load) - #t - (if (eq? #{x 24116}# 'eval) - #t - (eq? #{x 24116}# 'expand)))) - #{x 24116}# - (syntax-violation - 'eval-when - "invalid situation" - #{e 23909}# - (let ((#{x 24135}# (car #{when-list 24114}#))) - (if (if (null? (car #{w 23911}#)) - (null? (cdr #{w 23911}#)) - #f) - #{x 24135}# - (if (if (vector? #{x 24135}#) - (if (= (vector-length #{x 24135}#) 4) - (eq? (vector-ref #{x 24135}# 0) - 'syntax-object) - #f) - #f) - (let ((#{expression 24153}# - (vector-ref #{x 24135}# 1)) - (#{wrap 24154}# - (let ((#{w2 24162}# - (vector-ref - #{x 24135}# - 2))) - (let ((#{m1 24163}# - (car #{w 23911}#)) - (#{s1 24164}# - (cdr #{w 23911}#))) - (if (null? #{m1 24163}#) - (if (null? #{s1 24164}#) - #{w2 24162}# - (cons (car #{w2 24162}#) - (let ((#{m2 24179}# - (cdr #{w2 24162}#))) - (if (null? #{m2 24179}#) - #{s1 24164}# - (append - #{s1 24164}# - #{m2 24179}#))))) - (cons (let ((#{m2 24187}# - (car #{w2 24162}#))) - (if (null? #{m2 24187}#) - #{m1 24163}# - (append - #{m1 24163}# - #{m2 24187}#))) - (let ((#{m2 24195}# - (cdr #{w2 24162}#))) - (if (null? #{m2 24195}#) - #{s1 24164}# - (append - #{s1 24164}# - #{m2 24195}#)))))))) - (#{module 24155}# - (vector-ref #{x 24135}# 3))) - (vector - 'syntax-object - #{expression 24153}# - #{wrap 24154}# - #{module 24155}#)) - (if (null? #{x 24135}#) - #{x 24135}# - (vector - 'syntax-object - #{x 24135}# - #{w 23911}# - #f)))))))) - #{situations 24115}#)))))) - (#{f 23912}# #{when-list 23910}# '())))) - (#{syntax-type 4445}# - (lambda (#{e 24210}# - #{r 24211}# - #{w 24212}# - #{s 24213}# - #{rib 24214}# - #{mod 24215}# - #{for-car? 24216}#) - (if (symbol? #{e 24210}#) + #{name 24304}# + #{exp 24312}#))))) + (#{parse-when-list 4441}# + (lambda (#{e 24391}# #{when-list 24392}#) + (let ((#{result 24393}# + (#{strip 4456}# #{when-list 24392}# '(())))) + (letrec* + ((#{lp 24394}# + (lambda (#{l 24460}#) + (if (null? #{l 24460}#) + #{result 24393}# + (if (let ((#{t 24462}# (car #{l 24460}#))) + (if (eq? #{t 24462}# 'compile) + #t + (if (eq? #{t 24462}# 'load) + #t + (if (eq? #{t 24462}# 'eval) + #t + (eq? #{t 24462}# 'expand))))) + (#{lp 24394}# (cdr #{l 24460}#)) + (syntax-violation + 'eval-when + "invalid situation" + #{e 24391}# + (car #{l 24460}#))))))) + (#{lp 24394}# #{result 24393}#))))) + (#{syntax-type 4442}# + (lambda (#{e 24464}# + #{r 24465}# + #{w 24466}# + #{s 24467}# + #{rib 24468}# + #{mod 24469}# + #{for-car? 24470}#) + (if (symbol? #{e 24464}#) (call-with-values (lambda () - (#{resolve-identifier 4433}# - #{e 24210}# - #{w 24212}# - #{r 24211}# - #{mod 24215}# + (#{resolve-identifier 4430}# + #{e 24464}# + #{w 24466}# + #{r 24465}# + #{mod 24469}# #t)) - (lambda (#{type 24219}# #{value 24220}# #{mod* 24221}#) - (if (eqv? #{type 24219}# 'macro) - (if #{for-car? 24216}# + (lambda (#{type 24473}# #{value 24474}# #{mod* 24475}#) + (if (eqv? #{type 24473}# 'macro) + (if #{for-car? 24470}# (values - #{type 24219}# - #{value 24220}# - #{e 24210}# - #{w 24212}# - #{s 24213}# - #{mod 24215}#) - (#{syntax-type 4445}# - (#{chi-macro 4449}# - #{value 24220}# - #{e 24210}# - #{r 24211}# - #{w 24212}# - #{s 24213}# - #{rib 24214}# - #{mod 24215}#) - #{r 24211}# + #{type 24473}# + #{value 24474}# + #{e 24464}# + #{w 24466}# + #{s 24467}# + #{mod 24469}#) + (#{syntax-type 4442}# + (#{expand-macro 4446}# + #{value 24474}# + #{e 24464}# + #{r 24465}# + #{w 24466}# + #{s 24467}# + #{rib 24468}# + #{mod 24469}#) + #{r 24465}# '(()) - #{s 24213}# - #{rib 24214}# - #{mod 24215}# + #{s 24467}# + #{rib 24468}# + #{mod 24469}# #f)) - (if (eqv? #{type 24219}# 'global) + (if (eqv? #{type 24473}# 'global) (values - #{type 24219}# - #{value 24220}# - #{value 24220}# - #{w 24212}# - #{s 24213}# - #{mod* 24221}#) + #{type 24473}# + #{value 24474}# + #{value 24474}# + #{w 24466}# + #{s 24467}# + #{mod* 24475}#) (values - #{type 24219}# - #{value 24220}# - #{e 24210}# - #{w 24212}# - #{s 24213}# - #{mod 24215}#))))) - (if (pair? #{e 24210}#) - (let ((#{first 24230}# (car #{e 24210}#))) + #{type 24473}# + #{value 24474}# + #{e 24464}# + #{w 24466}# + #{s 24467}# + #{mod 24469}#))))) + (if (pair? #{e 24464}#) + (let ((#{first 24484}# (car #{e 24464}#))) (call-with-values (lambda () - (#{syntax-type 4445}# - #{first 24230}# - #{r 24211}# - #{w 24212}# - #{s 24213}# - #{rib 24214}# - #{mod 24215}# + (#{syntax-type 4442}# + #{first 24484}# + #{r 24465}# + #{w 24466}# + #{s 24467}# + #{rib 24468}# + #{mod 24469}# #t)) - (lambda (#{ftype 24232}# - #{fval 24233}# - #{fe 24234}# - #{fw 24235}# - #{fs 24236}# - #{fmod 24237}#) - (if (eqv? #{ftype 24232}# 'lexical) + (lambda (#{ftype 24486}# + #{fval 24487}# + #{fe 24488}# + #{fw 24489}# + #{fs 24490}# + #{fmod 24491}#) + (if (eqv? #{ftype 24486}# 'lexical) (values 'lexical-call - #{fval 24233}# - #{e 24210}# - #{w 24212}# - #{s 24213}# - #{mod 24215}#) - (if (eqv? #{ftype 24232}# 'global) + #{fval 24487}# + #{e 24464}# + #{w 24466}# + #{s 24467}# + #{mod 24469}#) + (if (eqv? #{ftype 24486}# 'global) (values 'global-call (vector 'syntax-object - #{fval 24233}# - #{w 24212}# - #{fmod 24237}#) - #{e 24210}# - #{w 24212}# - #{s 24213}# - #{mod 24215}#) - (if (eqv? #{ftype 24232}# 'macro) - (#{syntax-type 4445}# - (#{chi-macro 4449}# - #{fval 24233}# - #{e 24210}# - #{r 24211}# - #{w 24212}# - #{s 24213}# - #{rib 24214}# - #{mod 24215}#) - #{r 24211}# + #{fval 24487}# + #{w 24466}# + #{fmod 24491}#) + #{e 24464}# + #{w 24466}# + #{s 24467}# + #{mod 24469}#) + (if (eqv? #{ftype 24486}# 'macro) + (#{syntax-type 4442}# + (#{expand-macro 4446}# + #{fval 24487}# + #{e 24464}# + #{r 24465}# + #{w 24466}# + #{s 24467}# + #{rib 24468}# + #{mod 24469}#) + #{r 24465}# '(()) - #{s 24213}# - #{rib 24214}# - #{mod 24215}# - #{for-car? 24216}#) - (if (eqv? #{ftype 24232}# 'module-ref) + #{s 24467}# + #{rib 24468}# + #{mod 24469}# + #{for-car? 24470}#) + (if (eqv? #{ftype 24486}# 'module-ref) (call-with-values (lambda () - (#{fval 24233}# - #{e 24210}# - #{r 24211}# - #{w 24212}#)) - (lambda (#{e 24258}# - #{r 24259}# - #{w 24260}# - #{s 24261}# - #{mod 24262}#) - (#{syntax-type 4445}# - #{e 24258}# - #{r 24259}# - #{w 24260}# - #{s 24261}# - #{rib 24214}# - #{mod 24262}# - #{for-car? 24216}#))) - (if (eqv? #{ftype 24232}# 'core) + (#{fval 24487}# + #{e 24464}# + #{r 24465}# + #{w 24466}#)) + (lambda (#{e 24512}# + #{r 24513}# + #{w 24514}# + #{s 24515}# + #{mod 24516}#) + (#{syntax-type 4442}# + #{e 24512}# + #{r 24513}# + #{w 24514}# + #{s 24515}# + #{rib 24468}# + #{mod 24516}# + #{for-car? 24470}#))) + (if (eqv? #{ftype 24486}# 'core) (values 'core-form - #{fval 24233}# - #{e 24210}# - #{w 24212}# - #{s 24213}# - #{mod 24215}#) - (if (eqv? #{ftype 24232}# 'local-syntax) + #{fval 24487}# + #{e 24464}# + #{w 24466}# + #{s 24467}# + #{mod 24469}#) + (if (eqv? #{ftype 24486}# 'local-syntax) (values 'local-syntax-form - #{fval 24233}# - #{e 24210}# - #{w 24212}# - #{s 24213}# - #{mod 24215}#) - (if (eqv? #{ftype 24232}# 'begin) + #{fval 24487}# + #{e 24464}# + #{w 24466}# + #{s 24467}# + #{mod 24469}#) + (if (eqv? #{ftype 24486}# 'begin) (values 'begin-form #f - #{e 24210}# - #{w 24212}# - #{s 24213}# - #{mod 24215}#) - (if (eqv? #{ftype 24232}# 'eval-when) + #{e 24464}# + #{w 24466}# + #{s 24467}# + #{mod 24469}#) + (if (eqv? #{ftype 24486}# 'eval-when) (values 'eval-when-form #f - #{e 24210}# - #{w 24212}# - #{s 24213}# - #{mod 24215}#) - (if (eqv? #{ftype 24232}# 'define) - (let ((#{tmp 24279}# + #{e 24464}# + #{w 24466}# + #{s 24467}# + #{mod 24469}#) + (if (eqv? #{ftype 24486}# 'define) + (let ((#{tmp 24533}# ($sc-dispatch - #{e 24210}# + #{e 24464}# '(_ any any)))) - (if (if #{tmp 24279}# + (if (if #{tmp 24533}# (@apply - (lambda (#{name 24283}# - #{val 24284}#) - (if (symbol? #{name 24283}#) + (lambda (#{name 24537}# + #{val 24538}#) + (if (symbol? #{name 24537}#) #t (if (if (vector? - #{name 24283}#) + #{name 24537}#) (if (= (vector-length - #{name 24283}#) + #{name 24537}#) 4) (eq? (vector-ref - #{name 24283}# + #{name 24537}# 0) 'syntax-object) #f) #f) (symbol? (vector-ref - #{name 24283}# + #{name 24537}# 1)) #f))) - #{tmp 24279}#) + #{tmp 24533}#) #f) (@apply - (lambda (#{name 24311}# #{val 24312}#) + (lambda (#{name 24565}# #{val 24566}#) (values 'define-form - #{name 24311}# - #{val 24312}# - #{w 24212}# - #{s 24213}# - #{mod 24215}#)) - #{tmp 24279}#) - (let ((#{tmp 24313}# + #{name 24565}# + #{val 24566}# + #{w 24466}# + #{s 24467}# + #{mod 24469}#)) + #{tmp 24533}#) + (let ((#{tmp 24567}# ($sc-dispatch - #{e 24210}# + #{e 24464}# '(_ (any . any) any . each-any)))) - (if (if #{tmp 24313}# + (if (if #{tmp 24567}# (@apply - (lambda (#{name 24317}# - #{args 24318}# - #{e1 24319}# - #{e2 24320}#) + (lambda (#{name 24571}# + #{args 24572}# + #{e1 24573}# + #{e2 24574}#) (if (if (symbol? - #{name 24317}#) + #{name 24571}#) #t (if (if (vector? - #{name 24317}#) + #{name 24571}#) (if (= (vector-length - #{name 24317}#) + #{name 24571}#) 4) (eq? (vector-ref - #{name 24317}# + #{name 24571}# 0) 'syntax-object) #f) #f) (symbol? (vector-ref - #{name 24317}# + #{name 24571}# 1)) #f)) - (#{valid-bound-ids? 4436}# - (#{lambda-var-list 4461}# - #{args 24318}#)) + (#{valid-bound-ids? 4433}# + (#{lambda-var-list 4458}# + #{args 24572}#)) #f)) - #{tmp 24313}#) + #{tmp 24567}#) #f) (@apply - (lambda (#{name 24801}# - #{args 24802}# - #{e1 24803}# - #{e2 24804}#) + (lambda (#{name 25055}# + #{args 25056}# + #{e1 25057}# + #{e2 25058}#) (values 'define-form - (if (if (null? (car #{w 24212}#)) - (null? (cdr #{w 24212}#)) + (if (if (null? (car #{w 24466}#)) + (null? (cdr #{w 24466}#)) #f) - #{name 24801}# + #{name 25055}# (if (if (vector? - #{name 24801}#) + #{name 25055}#) (if (= (vector-length - #{name 24801}#) + #{name 25055}#) 4) (eq? (vector-ref - #{name 24801}# + #{name 25055}# 0) 'syntax-object) #f) #f) - (let ((#{expression 24834}# + (let ((#{expression 25088}# (vector-ref - #{name 24801}# + #{name 25055}# 1)) - (#{wrap 24835}# - (let ((#{w2 24845}# + (#{wrap 25089}# + (let ((#{w2 25099}# (vector-ref - #{name 24801}# + #{name 25055}# 2))) - (let ((#{m1 24846}# - (car #{w 24212}#)) - (#{s1 24847}# - (cdr #{w 24212}#))) - (if (null? #{m1 24846}#) - (if (null? #{s1 24847}#) - #{w2 24845}# - (cons (car #{w2 24845}#) - (let ((#{m2 24864}# - (cdr #{w2 24845}#))) - (if (null? #{m2 24864}#) - #{s1 24847}# + (let ((#{m1 25100}# + (car #{w 24466}#)) + (#{s1 25101}# + (cdr #{w 24466}#))) + (if (null? #{m1 25100}#) + (if (null? #{s1 25101}#) + #{w2 25099}# + (cons (car #{w2 25099}#) + (let ((#{m2 25118}# + (cdr #{w2 25099}#))) + (if (null? #{m2 25118}#) + #{s1 25101}# (append - #{s1 24847}# - #{m2 24864}#))))) - (cons (let ((#{m2 24872}# - (car #{w2 24845}#))) - (if (null? #{m2 24872}#) - #{m1 24846}# + #{s1 25101}# + #{m2 25118}#))))) + (cons (let ((#{m2 25126}# + (car #{w2 25099}#))) + (if (null? #{m2 25126}#) + #{m1 25100}# (append - #{m1 24846}# - #{m2 24872}#))) - (let ((#{m2 24880}# - (cdr #{w2 24845}#))) - (if (null? #{m2 24880}#) - #{s1 24847}# + #{m1 25100}# + #{m2 25126}#))) + (let ((#{m2 25134}# + (cdr #{w2 25099}#))) + (if (null? #{m2 25134}#) + #{s1 25101}# (append - #{s1 24847}# - #{m2 24880}#)))))))) - (#{module 24836}# + #{s1 25101}# + #{m2 25134}#)))))))) + (#{module 25090}# (vector-ref - #{name 24801}# + #{name 25055}# 3))) (vector 'syntax-object - #{expression 24834}# - #{wrap 24835}# - #{module 24836}#)) - (if (null? #{name 24801}#) - #{name 24801}# + #{expression 25088}# + #{wrap 25089}# + #{module 25090}#)) + (if (null? #{name 25055}#) + #{name 25055}# (vector 'syntax-object - #{name 24801}# - #{w 24212}# - #{mod 24215}#)))) - (let ((#{e 24906}# + #{name 25055}# + #{w 24466}# + #{mod 24469}#)))) + (let ((#{e 25160}# (cons '#(syntax-object lambda ((top) @@ -2068,10 +2005,10 @@ (top) (top) (top)) - #("i1955" - "i1956" - "i1957" - "i1958")) + #("i1952" + "i1953" + "i1954" + "i1955")) #(ribcage () () @@ -2093,12 +2030,12 @@ (top) (top) (top)) - #("i1908" + #("i1905" + "i1906" + "i1907" + "i1908" "i1909" - "i1910" - "i1911" - "i1912" - "i1913")) + "i1910")) #(ribcage () () @@ -2106,7 +2043,7 @@ #(ribcage #(first) #((top)) - #("i1900")) + #("i1897")) #(ribcage () () @@ -2134,35 +2071,35 @@ (top) (top) (top)) - #("i1879" + #("i1876" + "i1877" + "i1878" + "i1879" "i1880" "i1881" - "i1882" - "i1883" - "i1884" - "i1885")) + "i1882")) #(ribcage (lambda-var-list gen-var strip - chi-lambda-case + expand-lambda-case lambda*-formals - chi-simple-lambda + expand-simple-lambda lambda-formals ellipsis? - chi-void + expand-void eval-local-transformer - chi-local-syntax - chi-body - chi-macro - chi-call - chi-expr - chi + expand-local-syntax + expand-body + expand-macro + expand-call + expand-expr + expand syntax-type - chi-when-list - chi-install-global - chi-top-sequence - chi-sequence + parse-when-list + expand-install-global + expand-top-sequence + expand-sequence source-wrap wrap bound-id-member? @@ -2572,199 +2509,199 @@ ())) (hygiene guile)) - (let ((#{x 24910}# - (cons #{args 24802}# - (cons #{e1 24803}# - #{e2 24804}#)))) - (if (if (null? (car #{w 24212}#)) - (null? (cdr #{w 24212}#)) + (let ((#{x 25164}# + (cons #{args 25056}# + (cons #{e1 25057}# + #{e2 25058}#)))) + (if (if (null? (car #{w 24466}#)) + (null? (cdr #{w 24466}#)) #f) - #{x 24910}# + #{x 25164}# (if (if (vector? - #{x 24910}#) + #{x 25164}#) (if (= (vector-length - #{x 24910}#) + #{x 25164}#) 4) (eq? (vector-ref - #{x 24910}# + #{x 25164}# 0) 'syntax-object) #f) #f) - (let ((#{expression 24928}# + (let ((#{expression 25182}# (vector-ref - #{x 24910}# + #{x 25164}# 1)) - (#{wrap 24929}# - (let ((#{w2 24937}# + (#{wrap 25183}# + (let ((#{w2 25191}# (vector-ref - #{x 24910}# + #{x 25164}# 2))) - (let ((#{m1 24938}# - (car #{w 24212}#)) - (#{s1 24939}# - (cdr #{w 24212}#))) - (if (null? #{m1 24938}#) - (if (null? #{s1 24939}#) - #{w2 24937}# - (cons (car #{w2 24937}#) - (let ((#{m2 24954}# - (cdr #{w2 24937}#))) - (if (null? #{m2 24954}#) - #{s1 24939}# + (let ((#{m1 25192}# + (car #{w 24466}#)) + (#{s1 25193}# + (cdr #{w 24466}#))) + (if (null? #{m1 25192}#) + (if (null? #{s1 25193}#) + #{w2 25191}# + (cons (car #{w2 25191}#) + (let ((#{m2 25208}# + (cdr #{w2 25191}#))) + (if (null? #{m2 25208}#) + #{s1 25193}# (append - #{s1 24939}# - #{m2 24954}#))))) - (cons (let ((#{m2 24962}# - (car #{w2 24937}#))) - (if (null? #{m2 24962}#) - #{m1 24938}# + #{s1 25193}# + #{m2 25208}#))))) + (cons (let ((#{m2 25216}# + (car #{w2 25191}#))) + (if (null? #{m2 25216}#) + #{m1 25192}# (append - #{m1 24938}# - #{m2 24962}#))) - (let ((#{m2 24970}# - (cdr #{w2 24937}#))) - (if (null? #{m2 24970}#) - #{s1 24939}# + #{m1 25192}# + #{m2 25216}#))) + (let ((#{m2 25224}# + (cdr #{w2 25191}#))) + (if (null? #{m2 25224}#) + #{s1 25193}# (append - #{s1 24939}# - #{m2 24970}#)))))))) - (#{module 24930}# + #{s1 25193}# + #{m2 25224}#)))))))) + (#{module 25184}# (vector-ref - #{x 24910}# + #{x 25164}# 3))) (vector 'syntax-object - #{expression 24928}# - #{wrap 24929}# - #{module 24930}#)) - (if (null? #{x 24910}#) - #{x 24910}# + #{expression 25182}# + #{wrap 25183}# + #{module 25184}#)) + (if (null? #{x 25164}#) + #{x 25164}# (vector 'syntax-object - #{x 24910}# - #{w 24212}# - #{mod 24215}#)))))))) + #{x 25164}# + #{w 24466}# + #{mod 24469}#)))))))) (begin - (if (if (pair? #{e 24906}#) - #{s 24213}# + (if (if (pair? #{e 25160}#) + #{s 24467}# #f) (set-source-properties! - #{e 24906}# - #{s 24213}#)) - #{e 24906}#)) + #{e 25160}# + #{s 24467}#)) + #{e 25160}#)) '(()) - #{s 24213}# - #{mod 24215}#)) - #{tmp 24313}#) - (let ((#{tmp 24989}# + #{s 24467}# + #{mod 24469}#)) + #{tmp 24567}#) + (let ((#{tmp 25243}# ($sc-dispatch - #{e 24210}# + #{e 24464}# '(_ any)))) - (if (if #{tmp 24989}# + (if (if #{tmp 25243}# (@apply - (lambda (#{name 24993}#) + (lambda (#{name 25247}#) (if (symbol? - #{name 24993}#) + #{name 25247}#) #t (if (if (vector? - #{name 24993}#) + #{name 25247}#) (if (= (vector-length - #{name 24993}#) + #{name 25247}#) 4) (eq? (vector-ref - #{name 24993}# + #{name 25247}# 0) 'syntax-object) #f) #f) (symbol? (vector-ref - #{name 24993}# + #{name 25247}# 1)) #f))) - #{tmp 24989}#) + #{tmp 25243}#) #f) (@apply - (lambda (#{name 25020}#) + (lambda (#{name 25274}#) (values 'define-form - (if (if (null? (car #{w 24212}#)) - (null? (cdr #{w 24212}#)) + (if (if (null? (car #{w 24466}#)) + (null? (cdr #{w 24466}#)) #f) - #{name 25020}# + #{name 25274}# (if (if (vector? - #{name 25020}#) + #{name 25274}#) (if (= (vector-length - #{name 25020}#) + #{name 25274}#) 4) (eq? (vector-ref - #{name 25020}# + #{name 25274}# 0) 'syntax-object) #f) #f) - (let ((#{expression 25050}# + (let ((#{expression 25304}# (vector-ref - #{name 25020}# + #{name 25274}# 1)) - (#{wrap 25051}# - (let ((#{w2 25061}# + (#{wrap 25305}# + (let ((#{w2 25315}# (vector-ref - #{name 25020}# + #{name 25274}# 2))) - (let ((#{m1 25062}# - (car #{w 24212}#)) - (#{s1 25063}# - (cdr #{w 24212}#))) - (if (null? #{m1 25062}#) - (if (null? #{s1 25063}#) - #{w2 25061}# - (cons (car #{w2 25061}#) - (let ((#{m2 25080}# - (cdr #{w2 25061}#))) - (if (null? #{m2 25080}#) - #{s1 25063}# + (let ((#{m1 25316}# + (car #{w 24466}#)) + (#{s1 25317}# + (cdr #{w 24466}#))) + (if (null? #{m1 25316}#) + (if (null? #{s1 25317}#) + #{w2 25315}# + (cons (car #{w2 25315}#) + (let ((#{m2 25334}# + (cdr #{w2 25315}#))) + (if (null? #{m2 25334}#) + #{s1 25317}# (append - #{s1 25063}# - #{m2 25080}#))))) - (cons (let ((#{m2 25088}# - (car #{w2 25061}#))) - (if (null? #{m2 25088}#) - #{m1 25062}# + #{s1 25317}# + #{m2 25334}#))))) + (cons (let ((#{m2 25342}# + (car #{w2 25315}#))) + (if (null? #{m2 25342}#) + #{m1 25316}# (append - #{m1 25062}# - #{m2 25088}#))) - (let ((#{m2 25096}# - (cdr #{w2 25061}#))) - (if (null? #{m2 25096}#) - #{s1 25063}# + #{m1 25316}# + #{m2 25342}#))) + (let ((#{m2 25350}# + (cdr #{w2 25315}#))) + (if (null? #{m2 25350}#) + #{s1 25317}# (append - #{s1 25063}# - #{m2 25096}#)))))))) - (#{module 25052}# + #{s1 25317}# + #{m2 25350}#)))))))) + (#{module 25306}# (vector-ref - #{name 25020}# + #{name 25274}# 3))) (vector 'syntax-object - #{expression 25050}# - #{wrap 25051}# - #{module 25052}#)) - (if (null? #{name 25020}#) - #{name 25020}# + #{expression 25304}# + #{wrap 25305}# + #{module 25306}#)) + (if (null? #{name 25274}#) + #{name 25274}# (vector 'syntax-object - #{name 25020}# - #{w 24212}# - #{mod 24215}#)))) + #{name 25274}# + #{w 24466}# + #{mod 24469}#)))) '(#(syntax-object if ((top) #(ribcage #(name) #((top)) - #("i1968")) + #("i1965")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage @@ -2780,17 +2717,17 @@ (top) (top) (top)) - #("i1908" + #("i1905" + "i1906" + "i1907" + "i1908" "i1909" - "i1910" - "i1911" - "i1912" - "i1913")) + "i1910")) #(ribcage () () ()) #(ribcage #(first) #((top)) - #("i1900")) + #("i1897")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage () () ()) @@ -2809,35 +2746,35 @@ (top) (top) (top)) - #("i1879" + #("i1876" + "i1877" + "i1878" + "i1879" "i1880" "i1881" - "i1882" - "i1883" - "i1884" - "i1885")) + "i1882")) #(ribcage (lambda-var-list gen-var strip - chi-lambda-case + expand-lambda-case lambda*-formals - chi-simple-lambda + expand-simple-lambda lambda-formals ellipsis? - chi-void + expand-void eval-local-transformer - chi-local-syntax - chi-body - chi-macro - chi-call - chi-expr - chi + expand-local-syntax + expand-body + expand-macro + expand-call + expand-expr + expand syntax-type - chi-when-list - chi-install-global - chi-top-sequence - chi-sequence + parse-when-list + expand-install-global + expand-top-sequence + expand-sequence source-wrap wrap bound-id-member? @@ -3247,7 +3184,7 @@ #(ribcage #(name) #((top)) - #("i1968")) + #("i1965")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage @@ -3263,17 +3200,17 @@ (top) (top) (top)) - #("i1908" + #("i1905" + "i1906" + "i1907" + "i1908" "i1909" - "i1910" - "i1911" - "i1912" - "i1913")) + "i1910")) #(ribcage () () ()) #(ribcage #(first) #((top)) - #("i1900")) + #("i1897")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage () () ()) @@ -3292,35 +3229,35 @@ (top) (top) (top)) - #("i1879" + #("i1876" + "i1877" + "i1878" + "i1879" "i1880" "i1881" - "i1882" - "i1883" - "i1884" - "i1885")) + "i1882")) #(ribcage (lambda-var-list gen-var strip - chi-lambda-case + expand-lambda-case lambda*-formals - chi-simple-lambda + expand-simple-lambda lambda-formals ellipsis? - chi-void + expand-void eval-local-transformer - chi-local-syntax - chi-body - chi-macro - chi-call - chi-expr - chi + expand-local-syntax + expand-body + expand-macro + expand-call + expand-expr + expand syntax-type - chi-when-list - chi-install-global - chi-top-sequence - chi-sequence + parse-when-list + expand-install-global + expand-top-sequence + expand-sequence source-wrap wrap bound-id-member? @@ -3730,7 +3667,7 @@ #(ribcage #(name) #((top)) - #("i1968")) + #("i1965")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage @@ -3746,17 +3683,17 @@ (top) (top) (top)) - #("i1908" + #("i1905" + "i1906" + "i1907" + "i1908" "i1909" - "i1910" - "i1911" - "i1912" - "i1913")) + "i1910")) #(ribcage () () ()) #(ribcage #(first) #((top)) - #("i1900")) + #("i1897")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage () () ()) @@ -3775,35 +3712,35 @@ (top) (top) (top)) - #("i1879" + #("i1876" + "i1877" + "i1878" + "i1879" "i1880" "i1881" - "i1882" - "i1883" - "i1884" - "i1885")) + "i1882")) #(ribcage (lambda-var-list gen-var strip - chi-lambda-case + expand-lambda-case lambda*-formals - chi-simple-lambda + expand-simple-lambda lambda-formals ellipsis? - chi-void + expand-void eval-local-transformer - chi-local-syntax - chi-body - chi-macro - chi-call - chi-expr - chi + expand-local-syntax + expand-body + expand-macro + expand-call + expand-expr + expand syntax-type - chi-when-list - chi-install-global - chi-top-sequence - chi-sequence + parse-when-list + expand-install-global + expand-top-sequence + expand-sequence source-wrap wrap bound-id-member? @@ -4208,2099 +4145,2098 @@ #(ribcage () () ())) (hygiene guile))) '(()) - #{s 24213}# - #{mod 24215}#)) - #{tmp 24989}#) + #{s 24467}# + #{mod 24469}#)) + #{tmp 25243}#) (syntax-violation #f "source expression failed to match any pattern" - #{e 24210}#))))))) - (if (eqv? #{ftype 24232}# 'define-syntax) - (let ((#{tmp 25135}# + #{e 24464}#))))))) + (if (eqv? #{ftype 24486}# 'define-syntax) + (let ((#{tmp 25389}# ($sc-dispatch - #{e 24210}# + #{e 24464}# '(_ any any)))) - (if (if #{tmp 25135}# + (if (if #{tmp 25389}# (@apply - (lambda (#{name 25139}# - #{val 25140}#) - (if (symbol? #{name 25139}#) + (lambda (#{name 25393}# + #{val 25394}#) + (if (symbol? #{name 25393}#) #t (if (if (vector? - #{name 25139}#) + #{name 25393}#) (if (= (vector-length - #{name 25139}#) + #{name 25393}#) 4) (eq? (vector-ref - #{name 25139}# + #{name 25393}# 0) 'syntax-object) #f) #f) (symbol? (vector-ref - #{name 25139}# + #{name 25393}# 1)) #f))) - #{tmp 25135}#) + #{tmp 25389}#) #f) (@apply - (lambda (#{name 25167}# - #{val 25168}#) + (lambda (#{name 25421}# + #{val 25422}#) (values 'define-syntax-form - #{name 25167}# - #{val 25168}# - #{w 24212}# - #{s 24213}# - #{mod 24215}#)) - #{tmp 25135}#) + #{name 25421}# + #{val 25422}# + #{w 24466}# + #{s 24467}# + #{mod 24469}#)) + #{tmp 25389}#) (syntax-violation #f "source expression failed to match any pattern" - #{e 24210}#))) - (if (eqv? #{ftype 24232}# + #{e 24464}#))) + (if (eqv? #{ftype 24486}# 'define-syntax-parameter) - (let ((#{tmp 25179}# + (let ((#{tmp 25433}# ($sc-dispatch - #{e 24210}# + #{e 24464}# '(_ any any)))) - (if (if #{tmp 25179}# + (if (if #{tmp 25433}# (@apply - (lambda (#{name 25183}# - #{val 25184}#) - (if (symbol? #{name 25183}#) + (lambda (#{name 25437}# + #{val 25438}#) + (if (symbol? #{name 25437}#) #t (if (if (vector? - #{name 25183}#) + #{name 25437}#) (if (= (vector-length - #{name 25183}#) + #{name 25437}#) 4) (eq? (vector-ref - #{name 25183}# + #{name 25437}# 0) 'syntax-object) #f) #f) (symbol? (vector-ref - #{name 25183}# + #{name 25437}# 1)) #f))) - #{tmp 25179}#) + #{tmp 25433}#) #f) (@apply - (lambda (#{name 25211}# - #{val 25212}#) + (lambda (#{name 25465}# + #{val 25466}#) (values 'define-syntax-parameter-form - #{name 25211}# - #{val 25212}# - #{w 24212}# - #{s 24213}# - #{mod 24215}#)) - #{tmp 25179}#) + #{name 25465}# + #{val 25466}# + #{w 24466}# + #{s 24467}# + #{mod 24469}#)) + #{tmp 25433}#) (syntax-violation #f "source expression failed to match any pattern" - #{e 24210}#))) + #{e 24464}#))) (values 'call #f - #{e 24210}# - #{w 24212}# - #{s 24213}# - #{mod 24215}#))))))))))))))) - (if (if (vector? #{e 24210}#) - (if (= (vector-length #{e 24210}#) 4) - (eq? (vector-ref #{e 24210}# 0) 'syntax-object) + #{e 24464}# + #{w 24466}# + #{s 24467}# + #{mod 24469}#))))))))))))))) + (if (if (vector? #{e 24464}#) + (if (= (vector-length #{e 24464}#) 4) + (eq? (vector-ref #{e 24464}# 0) 'syntax-object) #f) #f) - (#{syntax-type 4445}# - (vector-ref #{e 24210}# 1) - #{r 24211}# - (let ((#{w2 25237}# (vector-ref #{e 24210}# 2))) - (let ((#{m1 25238}# (car #{w 24212}#)) - (#{s1 25239}# (cdr #{w 24212}#))) - (if (null? #{m1 25238}#) - (if (null? #{s1 25239}#) - #{w2 25237}# - (cons (car #{w2 25237}#) - (let ((#{m2 25250}# (cdr #{w2 25237}#))) - (if (null? #{m2 25250}#) - #{s1 25239}# - (append #{s1 25239}# #{m2 25250}#))))) - (cons (let ((#{m2 25258}# (car #{w2 25237}#))) - (if (null? #{m2 25258}#) - #{m1 25238}# - (append #{m1 25238}# #{m2 25258}#))) - (let ((#{m2 25266}# (cdr #{w2 25237}#))) - (if (null? #{m2 25266}#) - #{s1 25239}# - (append #{s1 25239}# #{m2 25266}#))))))) - (let ((#{t 25271}# - (#{source-annotation 4407}# #{e 24210}#))) - (if #{t 25271}# #{t 25271}# #{s 24213}#)) - #{rib 24214}# - (let ((#{t 25569}# (vector-ref #{e 24210}# 3))) - (if #{t 25569}# #{t 25569}# #{mod 24215}#)) - #{for-car? 24216}#) - (if (self-evaluating? #{e 24210}#) + (#{syntax-type 4442}# + (vector-ref #{e 24464}# 1) + #{r 24465}# + (let ((#{w2 25491}# (vector-ref #{e 24464}# 2))) + (let ((#{m1 25492}# (car #{w 24466}#)) + (#{s1 25493}# (cdr #{w 24466}#))) + (if (null? #{m1 25492}#) + (if (null? #{s1 25493}#) + #{w2 25491}# + (cons (car #{w2 25491}#) + (let ((#{m2 25504}# (cdr #{w2 25491}#))) + (if (null? #{m2 25504}#) + #{s1 25493}# + (append #{s1 25493}# #{m2 25504}#))))) + (cons (let ((#{m2 25512}# (car #{w2 25491}#))) + (if (null? #{m2 25512}#) + #{m1 25492}# + (append #{m1 25492}# #{m2 25512}#))) + (let ((#{m2 25520}# (cdr #{w2 25491}#))) + (if (null? #{m2 25520}#) + #{s1 25493}# + (append #{s1 25493}# #{m2 25520}#))))))) + (let ((#{t 25525}# + (#{source-annotation 4404}# #{e 24464}#))) + (if #{t 25525}# #{t 25525}# #{s 24467}#)) + #{rib 24468}# + (let ((#{t 25823}# (vector-ref #{e 24464}# 3))) + (if #{t 25823}# #{t 25823}# #{mod 24469}#)) + #{for-car? 24470}#) + (if (self-evaluating? #{e 24464}#) (values 'constant #f - #{e 24210}# - #{w 24212}# - #{s 24213}# - #{mod 24215}#) + #{e 24464}# + #{w 24466}# + #{s 24467}# + #{mod 24469}#) (values 'other #f - #{e 24210}# - #{w 24212}# - #{s 24213}# - #{mod 24215}#))))))) - (#{chi 4446}# - (lambda (#{e 25578}# - #{r 25579}# - #{w 25580}# - #{mod 25581}#) + #{e 24464}# + #{w 24466}# + #{s 24467}# + #{mod 24469}#))))))) + (#{expand 4443}# + (lambda (#{e 25832}# + #{r 25833}# + #{w 25834}# + #{mod 25835}#) (call-with-values (lambda () - (#{syntax-type 4445}# - #{e 25578}# - #{r 25579}# - #{w 25580}# - (#{source-annotation 4407}# #{e 25578}#) + (#{syntax-type 4442}# + #{e 25832}# + #{r 25833}# + #{w 25834}# + (#{source-annotation 4404}# #{e 25832}#) #f - #{mod 25581}# + #{mod 25835}# #f)) - (lambda (#{type 25785}# - #{value 25786}# - #{e 25787}# - #{w 25788}# - #{s 25789}# - #{mod 25790}#) - (#{chi-expr 4447}# - #{type 25785}# - #{value 25786}# - #{e 25787}# - #{r 25579}# - #{w 25788}# - #{s 25789}# - #{mod 25790}#))))) - (#{chi-expr 4447}# - (lambda (#{type 25793}# - #{value 25794}# - #{e 25795}# - #{r 25796}# - #{w 25797}# - #{s 25798}# - #{mod 25799}#) - (if (eqv? #{type 25793}# 'lexical) + (lambda (#{type 26039}# + #{value 26040}# + #{e 26041}# + #{w 26042}# + #{s 26043}# + #{mod 26044}#) + (#{expand-expr 4444}# + #{type 26039}# + #{value 26040}# + #{e 26041}# + #{r 25833}# + #{w 26042}# + #{s 26043}# + #{mod 26044}#))))) + (#{expand-expr 4444}# + (lambda (#{type 26047}# + #{value 26048}# + #{e 26049}# + #{r 26050}# + #{w 26051}# + #{s 26052}# + #{mod 26053}#) + (if (eqv? #{type 26047}# 'lexical) (make-struct/no-tail (vector-ref %expanded-vtables 3) - #{s 25798}# - #{e 25795}# - #{value 25794}#) - (if (if (eqv? #{type 25793}# 'core) + #{s 26052}# + #{e 26049}# + #{value 26048}#) + (if (if (eqv? #{type 26047}# 'core) #t - (eqv? #{type 25793}# 'core-form)) - (#{value 25794}# - #{e 25795}# - #{r 25796}# - #{w 25797}# - #{s 25798}# - #{mod 25799}#) - (if (eqv? #{type 25793}# 'module-ref) + (eqv? #{type 26047}# 'core-form)) + (#{value 26048}# + #{e 26049}# + #{r 26050}# + #{w 26051}# + #{s 26052}# + #{mod 26053}#) + (if (eqv? #{type 26047}# 'module-ref) (call-with-values (lambda () - (#{value 25794}# - #{e 25795}# - #{r 25796}# - #{w 25797}#)) - (lambda (#{e 25825}# - #{r 25826}# - #{w 25827}# - #{s 25828}# - #{mod 25829}#) - (#{chi 4446}# - #{e 25825}# - #{r 25826}# - #{w 25827}# - #{mod 25829}#))) - (if (eqv? #{type 25793}# 'lexical-call) - (#{chi-call 4448}# - (let ((#{id 26010}# (car #{e 25795}#))) - (#{build-lexical-reference 4383}# + (#{value 26048}# + #{e 26049}# + #{r 26050}# + #{w 26051}#)) + (lambda (#{e 26079}# + #{r 26080}# + #{w 26081}# + #{s 26082}# + #{mod 26083}#) + (#{expand 4443}# + #{e 26079}# + #{r 26080}# + #{w 26081}# + #{mod 26083}#))) + (if (eqv? #{type 26047}# 'lexical-call) + (#{expand-call 4445}# + (let ((#{id 26264}# (car #{e 26049}#))) + (#{build-lexical-reference 4380}# 'fun - (#{source-annotation 4407}# #{id 26010}#) - (if (if (vector? #{id 26010}#) - (if (= (vector-length #{id 26010}#) 4) - (eq? (vector-ref #{id 26010}# 0) 'syntax-object) + (#{source-annotation 4404}# #{id 26264}#) + (if (if (vector? #{id 26264}#) + (if (= (vector-length #{id 26264}#) 4) + (eq? (vector-ref #{id 26264}# 0) 'syntax-object) #f) #f) - (syntax->datum #{id 26010}#) - #{id 26010}#) - #{value 25794}#)) - #{e 25795}# - #{r 25796}# - #{w 25797}# - #{s 25798}# - #{mod 25799}#) - (if (eqv? #{type 25793}# 'global-call) - (#{chi-call 4448}# - (#{build-global-reference 4386}# - (#{source-annotation 4407}# (car #{e 25795}#)) - (if (if (vector? #{value 25794}#) - (if (= (vector-length #{value 25794}#) 4) - (eq? (vector-ref #{value 25794}# 0) + (syntax->datum #{id 26264}#) + #{id 26264}#) + #{value 26048}#)) + #{e 26049}# + #{r 26050}# + #{w 26051}# + #{s 26052}# + #{mod 26053}#) + (if (eqv? #{type 26047}# 'global-call) + (#{expand-call 4445}# + (#{build-global-reference 4383}# + (#{source-annotation 4404}# (car #{e 26049}#)) + (if (if (vector? #{value 26048}#) + (if (= (vector-length #{value 26048}#) 4) + (eq? (vector-ref #{value 26048}# 0) 'syntax-object) #f) #f) - (vector-ref #{value 25794}# 1) - #{value 25794}#) - (if (if (vector? #{value 25794}#) - (if (= (vector-length #{value 25794}#) 4) - (eq? (vector-ref #{value 25794}# 0) + (vector-ref #{value 26048}# 1) + #{value 26048}#) + (if (if (vector? #{value 26048}#) + (if (= (vector-length #{value 26048}#) 4) + (eq? (vector-ref #{value 26048}# 0) 'syntax-object) #f) #f) - (vector-ref #{value 25794}# 3) - #{mod 25799}#)) - #{e 25795}# - #{r 25796}# - #{w 25797}# - #{s 25798}# - #{mod 25799}#) - (if (eqv? #{type 25793}# 'constant) - (let ((#{exp 26732}# - (#{strip 4459}# - (let ((#{x 26745}# + (vector-ref #{value 26048}# 3) + #{mod 26053}#)) + #{e 26049}# + #{r 26050}# + #{w 26051}# + #{s 26052}# + #{mod 26053}#) + (if (eqv? #{type 26047}# 'constant) + (let ((#{exp 26986}# + (#{strip 4456}# + (let ((#{x 26999}# (begin - (if (if (pair? #{e 25795}#) - #{s 25798}# + (if (if (pair? #{e 26049}#) + #{s 26052}# #f) (set-source-properties! - #{e 25795}# - #{s 25798}#)) - #{e 25795}#))) - (if (if (null? (car #{w 25797}#)) - (null? (cdr #{w 25797}#)) + #{e 26049}# + #{s 26052}#)) + #{e 26049}#))) + (if (if (null? (car #{w 26051}#)) + (null? (cdr #{w 26051}#)) #f) - #{x 26745}# - (if (if (vector? #{x 26745}#) - (if (= (vector-length #{x 26745}#) 4) - (eq? (vector-ref #{x 26745}# 0) + #{x 26999}# + (if (if (vector? #{x 26999}#) + (if (= (vector-length #{x 26999}#) 4) + (eq? (vector-ref #{x 26999}# 0) 'syntax-object) #f) #f) - (let ((#{expression 26777}# - (vector-ref #{x 26745}# 1)) - (#{wrap 26778}# - (let ((#{w2 26786}# - (vector-ref #{x 26745}# 2))) - (let ((#{m1 26787}# - (car #{w 25797}#)) - (#{s1 26788}# - (cdr #{w 25797}#))) - (if (null? #{m1 26787}#) - (if (null? #{s1 26788}#) - #{w2 26786}# - (cons (car #{w2 26786}#) - (let ((#{m2 26803}# - (cdr #{w2 26786}#))) - (if (null? #{m2 26803}#) - #{s1 26788}# + (let ((#{expression 27031}# + (vector-ref #{x 26999}# 1)) + (#{wrap 27032}# + (let ((#{w2 27040}# + (vector-ref #{x 26999}# 2))) + (let ((#{m1 27041}# + (car #{w 26051}#)) + (#{s1 27042}# + (cdr #{w 26051}#))) + (if (null? #{m1 27041}#) + (if (null? #{s1 27042}#) + #{w2 27040}# + (cons (car #{w2 27040}#) + (let ((#{m2 27057}# + (cdr #{w2 27040}#))) + (if (null? #{m2 27057}#) + #{s1 27042}# (append - #{s1 26788}# - #{m2 26803}#))))) - (cons (let ((#{m2 26811}# - (car #{w2 26786}#))) - (if (null? #{m2 26811}#) - #{m1 26787}# + #{s1 27042}# + #{m2 27057}#))))) + (cons (let ((#{m2 27065}# + (car #{w2 27040}#))) + (if (null? #{m2 27065}#) + #{m1 27041}# (append - #{m1 26787}# - #{m2 26811}#))) - (let ((#{m2 26819}# - (cdr #{w2 26786}#))) - (if (null? #{m2 26819}#) - #{s1 26788}# + #{m1 27041}# + #{m2 27065}#))) + (let ((#{m2 27073}# + (cdr #{w2 27040}#))) + (if (null? #{m2 27073}#) + #{s1 27042}# (append - #{s1 26788}# - #{m2 26819}#)))))))) - (#{module 26779}# - (vector-ref #{x 26745}# 3))) + #{s1 27042}# + #{m2 27073}#)))))))) + (#{module 27033}# + (vector-ref #{x 26999}# 3))) (vector 'syntax-object - #{expression 26777}# - #{wrap 26778}# - #{module 26779}#)) - (if (null? #{x 26745}#) - #{x 26745}# + #{expression 27031}# + #{wrap 27032}# + #{module 27033}#)) + (if (null? #{x 26999}#) + #{x 26999}# (vector 'syntax-object - #{x 26745}# - #{w 25797}# - #{mod 25799}#))))) + #{x 26999}# + #{w 26051}# + #{mod 26053}#))))) '(())))) (make-struct/no-tail (vector-ref %expanded-vtables 1) - #{s 25798}# - #{exp 26732}#)) - (if (eqv? #{type 25793}# 'global) - (#{analyze-variable 4385}# - #{mod 25799}# - #{value 25794}# - (lambda (#{mod 26844}# #{var 26845}# #{public? 26846}#) + #{s 26052}# + #{exp 26986}#)) + (if (eqv? #{type 26047}# 'global) + (#{analyze-variable 4382}# + #{mod 26053}# + #{value 26048}# + (lambda (#{mod 27098}# #{var 27099}# #{public? 27100}#) (make-struct/no-tail (vector-ref %expanded-vtables 5) - #{s 25798}# - #{mod 26844}# - #{var 26845}# - #{public? 26846}#)) - (lambda (#{var 26854}#) + #{s 26052}# + #{mod 27098}# + #{var 27099}# + #{public? 27100}#)) + (lambda (#{var 27108}#) (make-struct/no-tail (vector-ref %expanded-vtables 7) - #{s 25798}# - #{var 26854}#))) - (if (eqv? #{type 25793}# 'call) - (#{chi-call 4448}# - (#{chi 4446}# - (car #{e 25795}#) - #{r 25796}# - #{w 25797}# - #{mod 25799}#) - #{e 25795}# - #{r 25796}# - #{w 25797}# - #{s 25798}# - #{mod 25799}#) - (if (eqv? #{type 25793}# 'begin-form) - (let ((#{tmp 27032}# + #{s 26052}# + #{var 27108}#))) + (if (eqv? #{type 26047}# 'call) + (#{expand-call 4445}# + (#{expand 4443}# + (car #{e 26049}#) + #{r 26050}# + #{w 26051}# + #{mod 26053}#) + #{e 26049}# + #{r 26050}# + #{w 26051}# + #{s 26052}# + #{mod 26053}#) + (if (eqv? #{type 26047}# 'begin-form) + (let ((#{tmp 27286}# ($sc-dispatch - #{e 25795}# + #{e 26049}# '(_ any . each-any)))) - (if #{tmp 27032}# + (if #{tmp 27286}# (@apply - (lambda (#{e1 27036}# #{e2 27037}#) - (#{chi-sequence 4441}# - (cons #{e1 27036}# #{e2 27037}#) - #{r 25796}# - #{w 25797}# - #{s 25798}# - #{mod 25799}#)) - #{tmp 27032}#) + (lambda (#{e1 27290}# #{e2 27291}#) + (#{expand-sequence 4438}# + (cons #{e1 27290}# #{e2 27291}#) + #{r 26050}# + #{w 26051}# + #{s 26052}# + #{mod 26053}#)) + #{tmp 27286}#) (syntax-violation #f "source expression failed to match any pattern" - #{e 25795}#))) - (if (eqv? #{type 25793}# 'local-syntax-form) - (#{chi-local-syntax 4451}# - #{value 25794}# - #{e 25795}# - #{r 25796}# - #{w 25797}# - #{s 25798}# - #{mod 25799}# - #{chi-sequence 4441}#) - (if (eqv? #{type 25793}# 'eval-when-form) - (let ((#{tmp 27217}# + #{e 26049}#))) + (if (eqv? #{type 26047}# 'local-syntax-form) + (#{expand-local-syntax 4448}# + #{value 26048}# + #{e 26049}# + #{r 26050}# + #{w 26051}# + #{s 26052}# + #{mod 26053}# + #{expand-sequence 4438}#) + (if (eqv? #{type 26047}# 'eval-when-form) + (let ((#{tmp 27471}# ($sc-dispatch - #{e 25795}# + #{e 26049}# '(_ each-any any . each-any)))) - (if #{tmp 27217}# + (if #{tmp 27471}# (@apply - (lambda (#{x 27221}# - #{e1 27222}# - #{e2 27223}#) - (let ((#{when-list 27224}# - (#{chi-when-list 4444}# - #{e 25795}# - #{x 27221}# - #{w 25797}#))) - (if (memq 'eval #{when-list 27224}#) - (#{chi-sequence 4441}# - (cons #{e1 27222}# #{e2 27223}#) - #{r 25796}# - #{w 25797}# - #{s 25798}# - #{mod 25799}#) + (lambda (#{x 27475}# + #{e1 27476}# + #{e2 27477}#) + (let ((#{when-list 27478}# + (#{parse-when-list 4441}# + #{e 26049}# + #{x 27475}#))) + (if (memq 'eval #{when-list 27478}#) + (#{expand-sequence 4438}# + (cons #{e1 27476}# #{e2 27477}#) + #{r 26050}# + #{w 26051}# + #{s 26052}# + #{mod 26053}#) (make-struct/no-tail (vector-ref %expanded-vtables 0) #f)))) - #{tmp 27217}#) + #{tmp 27471}#) (syntax-violation #f "source expression failed to match any pattern" - #{e 25795}#))) - (if (if (eqv? #{type 25793}# 'define-form) + #{e 26049}#))) + (if (if (eqv? #{type 26047}# 'define-form) #t - (if (eqv? #{type 25793}# + (if (eqv? #{type 26047}# 'define-syntax-form) #t - (eqv? #{type 25793}# + (eqv? #{type 26047}# 'define-syntax-parameter-form))) (syntax-violation #f "definition in expression context" - #{e 25795}# - (if (if (null? (car #{w 25797}#)) - (null? (cdr #{w 25797}#)) + #{e 26049}# + (if (if (null? (car #{w 26051}#)) + (null? (cdr #{w 26051}#)) #f) - #{value 25794}# - (if (if (vector? #{value 25794}#) - (if (= (vector-length #{value 25794}#) + #{value 26048}# + (if (if (vector? #{value 26048}#) + (if (= (vector-length #{value 26048}#) 4) - (eq? (vector-ref #{value 25794}# 0) + (eq? (vector-ref #{value 26048}# 0) 'syntax-object) #f) #f) - (let ((#{expression 27378}# - (vector-ref #{value 25794}# 1)) - (#{wrap 27379}# - (let ((#{w2 27389}# + (let ((#{expression 27688}# + (vector-ref #{value 26048}# 1)) + (#{wrap 27689}# + (let ((#{w2 27699}# (vector-ref - #{value 25794}# + #{value 26048}# 2))) - (let ((#{m1 27390}# - (car #{w 25797}#)) - (#{s1 27391}# - (cdr #{w 25797}#))) - (if (null? #{m1 27390}#) - (if (null? #{s1 27391}#) - #{w2 27389}# - (cons (car #{w2 27389}#) - (let ((#{m2 27408}# - (cdr #{w2 27389}#))) - (if (null? #{m2 27408}#) - #{s1 27391}# + (let ((#{m1 27700}# + (car #{w 26051}#)) + (#{s1 27701}# + (cdr #{w 26051}#))) + (if (null? #{m1 27700}#) + (if (null? #{s1 27701}#) + #{w2 27699}# + (cons (car #{w2 27699}#) + (let ((#{m2 27718}# + (cdr #{w2 27699}#))) + (if (null? #{m2 27718}#) + #{s1 27701}# (append - #{s1 27391}# - #{m2 27408}#))))) - (cons (let ((#{m2 27416}# - (car #{w2 27389}#))) - (if (null? #{m2 27416}#) - #{m1 27390}# + #{s1 27701}# + #{m2 27718}#))))) + (cons (let ((#{m2 27726}# + (car #{w2 27699}#))) + (if (null? #{m2 27726}#) + #{m1 27700}# (append - #{m1 27390}# - #{m2 27416}#))) - (let ((#{m2 27424}# - (cdr #{w2 27389}#))) - (if (null? #{m2 27424}#) - #{s1 27391}# + #{m1 27700}# + #{m2 27726}#))) + (let ((#{m2 27734}# + (cdr #{w2 27699}#))) + (if (null? #{m2 27734}#) + #{s1 27701}# (append - #{s1 27391}# - #{m2 27424}#)))))))) - (#{module 27380}# - (vector-ref #{value 25794}# 3))) + #{s1 27701}# + #{m2 27734}#)))))))) + (#{module 27690}# + (vector-ref #{value 26048}# 3))) (vector 'syntax-object - #{expression 27378}# - #{wrap 27379}# - #{module 27380}#)) - (if (null? #{value 25794}#) - #{value 25794}# + #{expression 27688}# + #{wrap 27689}# + #{module 27690}#)) + (if (null? #{value 26048}#) + #{value 26048}# (vector 'syntax-object - #{value 25794}# - #{w 25797}# - #{mod 25799}#))))) - (if (eqv? #{type 25793}# 'syntax) + #{value 26048}# + #{w 26051}# + #{mod 26053}#))))) + (if (eqv? #{type 26047}# 'syntax) (syntax-violation #f "reference to pattern variable outside syntax form" - (let ((#{x 27459}# + (let ((#{x 27769}# (begin - (if (if (pair? #{e 25795}#) - #{s 25798}# + (if (if (pair? #{e 26049}#) + #{s 26052}# #f) (set-source-properties! - #{e 25795}# - #{s 25798}#)) - #{e 25795}#))) - (if (if (null? (car #{w 25797}#)) - (null? (cdr #{w 25797}#)) + #{e 26049}# + #{s 26052}#)) + #{e 26049}#))) + (if (if (null? (car #{w 26051}#)) + (null? (cdr #{w 26051}#)) #f) - #{x 27459}# - (if (if (vector? #{x 27459}#) - (if (= (vector-length #{x 27459}#) + #{x 27769}# + (if (if (vector? #{x 27769}#) + (if (= (vector-length #{x 27769}#) 4) - (eq? (vector-ref #{x 27459}# 0) + (eq? (vector-ref #{x 27769}# 0) 'syntax-object) #f) #f) - (let ((#{expression 27491}# - (vector-ref #{x 27459}# 1)) - (#{wrap 27492}# - (let ((#{w2 27500}# + (let ((#{expression 27801}# + (vector-ref #{x 27769}# 1)) + (#{wrap 27802}# + (let ((#{w2 27810}# (vector-ref - #{x 27459}# + #{x 27769}# 2))) - (let ((#{m1 27501}# - (car #{w 25797}#)) - (#{s1 27502}# - (cdr #{w 25797}#))) - (if (null? #{m1 27501}#) - (if (null? #{s1 27502}#) - #{w2 27500}# - (cons (car #{w2 27500}#) - (let ((#{m2 27517}# - (cdr #{w2 27500}#))) - (if (null? #{m2 27517}#) - #{s1 27502}# + (let ((#{m1 27811}# + (car #{w 26051}#)) + (#{s1 27812}# + (cdr #{w 26051}#))) + (if (null? #{m1 27811}#) + (if (null? #{s1 27812}#) + #{w2 27810}# + (cons (car #{w2 27810}#) + (let ((#{m2 27827}# + (cdr #{w2 27810}#))) + (if (null? #{m2 27827}#) + #{s1 27812}# (append - #{s1 27502}# - #{m2 27517}#))))) - (cons (let ((#{m2 27525}# - (car #{w2 27500}#))) - (if (null? #{m2 27525}#) - #{m1 27501}# + #{s1 27812}# + #{m2 27827}#))))) + (cons (let ((#{m2 27835}# + (car #{w2 27810}#))) + (if (null? #{m2 27835}#) + #{m1 27811}# (append - #{m1 27501}# - #{m2 27525}#))) - (let ((#{m2 27533}# - (cdr #{w2 27500}#))) - (if (null? #{m2 27533}#) - #{s1 27502}# + #{m1 27811}# + #{m2 27835}#))) + (let ((#{m2 27843}# + (cdr #{w2 27810}#))) + (if (null? #{m2 27843}#) + #{s1 27812}# (append - #{s1 27502}# - #{m2 27533}#)))))))) - (#{module 27493}# - (vector-ref #{x 27459}# 3))) + #{s1 27812}# + #{m2 27843}#)))))))) + (#{module 27803}# + (vector-ref #{x 27769}# 3))) (vector 'syntax-object - #{expression 27491}# - #{wrap 27492}# - #{module 27493}#)) - (if (null? #{x 27459}#) - #{x 27459}# + #{expression 27801}# + #{wrap 27802}# + #{module 27803}#)) + (if (null? #{x 27769}#) + #{x 27769}# (vector 'syntax-object - #{x 27459}# - #{w 25797}# - #{mod 25799}#)))))) - (if (eqv? #{type 25793}# 'displaced-lexical) + #{x 27769}# + #{w 26051}# + #{mod 26053}#)))))) + (if (eqv? #{type 26047}# 'displaced-lexical) (syntax-violation #f "reference to identifier outside its scope" - (let ((#{x 27560}# + (let ((#{x 27870}# (begin - (if (if (pair? #{e 25795}#) - #{s 25798}# + (if (if (pair? #{e 26049}#) + #{s 26052}# #f) (set-source-properties! - #{e 25795}# - #{s 25798}#)) - #{e 25795}#))) - (if (if (null? (car #{w 25797}#)) - (null? (cdr #{w 25797}#)) + #{e 26049}# + #{s 26052}#)) + #{e 26049}#))) + (if (if (null? (car #{w 26051}#)) + (null? (cdr #{w 26051}#)) #f) - #{x 27560}# - (if (if (vector? #{x 27560}#) + #{x 27870}# + (if (if (vector? #{x 27870}#) (if (= (vector-length - #{x 27560}#) + #{x 27870}#) 4) (eq? (vector-ref - #{x 27560}# + #{x 27870}# 0) 'syntax-object) #f) #f) - (let ((#{expression 27592}# - (vector-ref #{x 27560}# 1)) - (#{wrap 27593}# - (let ((#{w2 27601}# + (let ((#{expression 27902}# + (vector-ref #{x 27870}# 1)) + (#{wrap 27903}# + (let ((#{w2 27911}# (vector-ref - #{x 27560}# + #{x 27870}# 2))) - (let ((#{m1 27602}# - (car #{w 25797}#)) - (#{s1 27603}# - (cdr #{w 25797}#))) - (if (null? #{m1 27602}#) - (if (null? #{s1 27603}#) - #{w2 27601}# - (cons (car #{w2 27601}#) - (let ((#{m2 27618}# - (cdr #{w2 27601}#))) - (if (null? #{m2 27618}#) - #{s1 27603}# + (let ((#{m1 27912}# + (car #{w 26051}#)) + (#{s1 27913}# + (cdr #{w 26051}#))) + (if (null? #{m1 27912}#) + (if (null? #{s1 27913}#) + #{w2 27911}# + (cons (car #{w2 27911}#) + (let ((#{m2 27928}# + (cdr #{w2 27911}#))) + (if (null? #{m2 27928}#) + #{s1 27913}# (append - #{s1 27603}# - #{m2 27618}#))))) - (cons (let ((#{m2 27626}# - (car #{w2 27601}#))) - (if (null? #{m2 27626}#) - #{m1 27602}# + #{s1 27913}# + #{m2 27928}#))))) + (cons (let ((#{m2 27936}# + (car #{w2 27911}#))) + (if (null? #{m2 27936}#) + #{m1 27912}# (append - #{m1 27602}# - #{m2 27626}#))) - (let ((#{m2 27634}# - (cdr #{w2 27601}#))) - (if (null? #{m2 27634}#) - #{s1 27603}# + #{m1 27912}# + #{m2 27936}#))) + (let ((#{m2 27944}# + (cdr #{w2 27911}#))) + (if (null? #{m2 27944}#) + #{s1 27913}# (append - #{s1 27603}# - #{m2 27634}#)))))))) - (#{module 27594}# - (vector-ref #{x 27560}# 3))) + #{s1 27913}# + #{m2 27944}#)))))))) + (#{module 27904}# + (vector-ref #{x 27870}# 3))) (vector 'syntax-object - #{expression 27592}# - #{wrap 27593}# - #{module 27594}#)) - (if (null? #{x 27560}#) - #{x 27560}# + #{expression 27902}# + #{wrap 27903}# + #{module 27904}#)) + (if (null? #{x 27870}#) + #{x 27870}# (vector 'syntax-object - #{x 27560}# - #{w 25797}# - #{mod 25799}#)))))) + #{x 27870}# + #{w 26051}# + #{mod 26053}#)))))) (syntax-violation #f "unexpected syntax" - (let ((#{x 27658}# + (let ((#{x 27968}# (begin - (if (if (pair? #{e 25795}#) - #{s 25798}# + (if (if (pair? #{e 26049}#) + #{s 26052}# #f) (set-source-properties! - #{e 25795}# - #{s 25798}#)) - #{e 25795}#))) - (if (if (null? (car #{w 25797}#)) - (null? (cdr #{w 25797}#)) + #{e 26049}# + #{s 26052}#)) + #{e 26049}#))) + (if (if (null? (car #{w 26051}#)) + (null? (cdr #{w 26051}#)) #f) - #{x 27658}# - (if (if (vector? #{x 27658}#) + #{x 27968}# + (if (if (vector? #{x 27968}#) (if (= (vector-length - #{x 27658}#) + #{x 27968}#) 4) (eq? (vector-ref - #{x 27658}# + #{x 27968}# 0) 'syntax-object) #f) #f) - (let ((#{expression 27690}# - (vector-ref #{x 27658}# 1)) - (#{wrap 27691}# - (let ((#{w2 27699}# + (let ((#{expression 28000}# + (vector-ref #{x 27968}# 1)) + (#{wrap 28001}# + (let ((#{w2 28009}# (vector-ref - #{x 27658}# + #{x 27968}# 2))) - (let ((#{m1 27700}# - (car #{w 25797}#)) - (#{s1 27701}# - (cdr #{w 25797}#))) - (if (null? #{m1 27700}#) - (if (null? #{s1 27701}#) - #{w2 27699}# - (cons (car #{w2 27699}#) - (let ((#{m2 27716}# - (cdr #{w2 27699}#))) - (if (null? #{m2 27716}#) - #{s1 27701}# + (let ((#{m1 28010}# + (car #{w 26051}#)) + (#{s1 28011}# + (cdr #{w 26051}#))) + (if (null? #{m1 28010}#) + (if (null? #{s1 28011}#) + #{w2 28009}# + (cons (car #{w2 28009}#) + (let ((#{m2 28026}# + (cdr #{w2 28009}#))) + (if (null? #{m2 28026}#) + #{s1 28011}# (append - #{s1 27701}# - #{m2 27716}#))))) - (cons (let ((#{m2 27724}# - (car #{w2 27699}#))) - (if (null? #{m2 27724}#) - #{m1 27700}# + #{s1 28011}# + #{m2 28026}#))))) + (cons (let ((#{m2 28034}# + (car #{w2 28009}#))) + (if (null? #{m2 28034}#) + #{m1 28010}# (append - #{m1 27700}# - #{m2 27724}#))) - (let ((#{m2 27732}# - (cdr #{w2 27699}#))) - (if (null? #{m2 27732}#) - #{s1 27701}# + #{m1 28010}# + #{m2 28034}#))) + (let ((#{m2 28042}# + (cdr #{w2 28009}#))) + (if (null? #{m2 28042}#) + #{s1 28011}# (append - #{s1 27701}# - #{m2 27732}#)))))))) - (#{module 27692}# - (vector-ref #{x 27658}# 3))) + #{s1 28011}# + #{m2 28042}#)))))))) + (#{module 28002}# + (vector-ref #{x 27968}# 3))) (vector 'syntax-object - #{expression 27690}# - #{wrap 27691}# - #{module 27692}#)) - (if (null? #{x 27658}#) - #{x 27658}# + #{expression 28000}# + #{wrap 28001}# + #{module 28002}#)) + (if (null? #{x 27968}#) + #{x 27968}# (vector 'syntax-object - #{x 27658}# - #{w 25797}# - #{mod 25799}#)))))))))))))))))))))) - (#{chi-call 4448}# - (lambda (#{x 27747}# - #{e 27748}# - #{r 27749}# - #{w 27750}# - #{s 27751}# - #{mod 27752}#) - (let ((#{tmp 27754}# - ($sc-dispatch #{e 27748}# '(any . each-any)))) - (if #{tmp 27754}# + #{x 27968}# + #{w 26051}# + #{mod 26053}#)))))))))))))))))))))) + (#{expand-call 4445}# + (lambda (#{x 28057}# + #{e 28058}# + #{r 28059}# + #{w 28060}# + #{s 28061}# + #{mod 28062}#) + (let ((#{tmp 28064}# + ($sc-dispatch #{e 28058}# '(any . each-any)))) + (if #{tmp 28064}# (@apply - (lambda (#{e0 27758}# #{e1 27759}#) - (#{build-call 4380}# - #{s 27751}# - #{x 27747}# - (map (lambda (#{e 27851}#) - (#{chi 4446}# - #{e 27851}# - #{r 27749}# - #{w 27750}# - #{mod 27752}#)) - #{e1 27759}#))) - #{tmp 27754}#) + (lambda (#{e0 28068}# #{e1 28069}#) + (#{build-call 4377}# + #{s 28061}# + #{x 28057}# + (map (lambda (#{e 28161}#) + (#{expand 4443}# + #{e 28161}# + #{r 28059}# + #{w 28060}# + #{mod 28062}#)) + #{e1 28069}#))) + #{tmp 28064}#) (syntax-violation #f "source expression failed to match any pattern" - #{e 27748}#))))) - (#{chi-macro 4449}# - (lambda (#{p 27939}# - #{e 27940}# - #{r 27941}# - #{w 27942}# - #{s 27943}# - #{rib 27944}# - #{mod 27945}#) + #{e 28058}#))))) + (#{expand-macro 4446}# + (lambda (#{p 28249}# + #{e 28250}# + #{r 28251}# + #{w 28252}# + #{s 28253}# + #{rib 28254}# + #{mod 28255}#) (letrec* - ((#{rebuild-macro-output 27946}# - (lambda (#{x 28053}# #{m 28054}#) - (if (pair? #{x 28053}#) - (let ((#{e 28058}# - (cons (#{rebuild-macro-output 27946}# - (car #{x 28053}#) - #{m 28054}#) - (#{rebuild-macro-output 27946}# - (cdr #{x 28053}#) - #{m 28054}#)))) + ((#{rebuild-macro-output 28256}# + (lambda (#{x 28363}# #{m 28364}#) + (if (pair? #{x 28363}#) + (let ((#{e 28368}# + (cons (#{rebuild-macro-output 28256}# + (car #{x 28363}#) + #{m 28364}#) + (#{rebuild-macro-output 28256}# + (cdr #{x 28363}#) + #{m 28364}#)))) (begin - (if (if (pair? #{e 28058}#) #{s 27943}# #f) - (set-source-properties! #{e 28058}# #{s 27943}#)) - #{e 28058}#)) - (if (if (vector? #{x 28053}#) - (if (= (vector-length #{x 28053}#) 4) - (eq? (vector-ref #{x 28053}# 0) 'syntax-object) + (if (if (pair? #{e 28368}#) #{s 28253}# #f) + (set-source-properties! #{e 28368}# #{s 28253}#)) + #{e 28368}#)) + (if (if (vector? #{x 28363}#) + (if (= (vector-length #{x 28363}#) 4) + (eq? (vector-ref #{x 28363}# 0) 'syntax-object) #f) #f) - (let ((#{w 28074}# (vector-ref #{x 28053}# 2))) - (let ((#{ms 28075}# (car #{w 28074}#)) - (#{s 28076}# (cdr #{w 28074}#))) - (if (if (pair? #{ms 28075}#) - (eq? (car #{ms 28075}#) #f) + (let ((#{w 28384}# (vector-ref #{x 28363}# 2))) + (let ((#{ms 28385}# (car #{w 28384}#)) + (#{s 28386}# (cdr #{w 28384}#))) + (if (if (pair? #{ms 28385}#) + (eq? (car #{ms 28385}#) #f) #f) - (let ((#{expression 28084}# (vector-ref #{x 28053}# 1)) - (#{wrap 28085}# - (cons (cdr #{ms 28075}#) - (if #{rib 27944}# - (cons #{rib 27944}# (cdr #{s 28076}#)) - (cdr #{s 28076}#)))) - (#{module 28086}# (vector-ref #{x 28053}# 3))) + (let ((#{expression 28394}# (vector-ref #{x 28363}# 1)) + (#{wrap 28395}# + (cons (cdr #{ms 28385}#) + (if #{rib 28254}# + (cons #{rib 28254}# (cdr #{s 28386}#)) + (cdr #{s 28386}#)))) + (#{module 28396}# (vector-ref #{x 28363}# 3))) (vector 'syntax-object - #{expression 28084}# - #{wrap 28085}# - #{module 28086}#)) - (let ((#{expression 28096}# - (let ((#{e 28101}# (vector-ref #{x 28053}# 1))) + #{expression 28394}# + #{wrap 28395}# + #{module 28396}#)) + (let ((#{expression 28406}# + (let ((#{e 28411}# (vector-ref #{x 28363}# 1))) (begin - (if (if (pair? #{e 28101}#) #{s 28076}# #f) + (if (if (pair? #{e 28411}#) #{s 28386}# #f) (set-source-properties! - #{e 28101}# - #{s 28076}#)) - #{e 28101}#))) - (#{wrap 28097}# - (cons (cons #{m 28054}# #{ms 28075}#) - (if #{rib 27944}# - (cons #{rib 27944}# - (cons 'shift #{s 28076}#)) - (cons 'shift #{s 28076}#)))) - (#{module 28098}# (vector-ref #{x 28053}# 3))) + #{e 28411}# + #{s 28386}#)) + #{e 28411}#))) + (#{wrap 28407}# + (cons (cons #{m 28364}# #{ms 28385}#) + (if #{rib 28254}# + (cons #{rib 28254}# + (cons 'shift #{s 28386}#)) + (cons 'shift #{s 28386}#)))) + (#{module 28408}# (vector-ref #{x 28363}# 3))) (vector 'syntax-object - #{expression 28096}# - #{wrap 28097}# - #{module 28098}#))))) - (if (vector? #{x 28053}#) - (let ((#{n 28113}# (vector-length #{x 28053}#))) - (let ((#{v 28114}# - (let ((#{e 28122}# (make-vector #{n 28113}#))) + #{expression 28406}# + #{wrap 28407}# + #{module 28408}#))))) + (if (vector? #{x 28363}#) + (let ((#{n 28423}# (vector-length #{x 28363}#))) + (let ((#{v 28424}# + (let ((#{e 28432}# (make-vector #{n 28423}#))) (begin - (if (if (pair? #{e 28122}#) #{x 28053}# #f) + (if (if (pair? #{e 28432}#) #{x 28363}# #f) (set-source-properties! - #{e 28122}# - #{x 28053}#)) - #{e 28122}#)))) + #{e 28432}# + #{x 28363}#)) + #{e 28432}#)))) (letrec* - ((#{loop 28115}# - (lambda (#{i 28176}#) - (if (= #{i 28176}# #{n 28113}#) - #{v 28114}# + ((#{loop 28425}# + (lambda (#{i 28486}#) + (if (= #{i 28486}# #{n 28423}#) + #{v 28424}# (begin (vector-set! - #{v 28114}# - #{i 28176}# - (#{rebuild-macro-output 27946}# - (vector-ref #{x 28053}# #{i 28176}#) - #{m 28054}#)) - (#{loop 28115}# (#{1+}# #{i 28176}#))))))) - (#{loop 28115}# 0)))) - (if (symbol? #{x 28053}#) + #{v 28424}# + #{i 28486}# + (#{rebuild-macro-output 28256}# + (vector-ref #{x 28363}# #{i 28486}#) + #{m 28364}#)) + (#{loop 28425}# (#{1+}# #{i 28486}#))))))) + (#{loop 28425}# 0)))) + (if (symbol? #{x 28363}#) (syntax-violation #f "encountered raw symbol in macro output" - (let ((#{s 28182}# (cdr #{w 27942}#))) - (let ((#{x 28186}# + (let ((#{s 28492}# (cdr #{w 28252}#))) + (let ((#{x 28496}# (begin - (if (if (pair? #{e 27940}#) #{s 28182}# #f) + (if (if (pair? #{e 28250}#) #{s 28492}# #f) (set-source-properties! - #{e 27940}# - #{s 28182}#)) - #{e 27940}#))) - (if (if (null? (car #{w 27942}#)) - (null? (cdr #{w 27942}#)) + #{e 28250}# + #{s 28492}#)) + #{e 28250}#))) + (if (if (null? (car #{w 28252}#)) + (null? (cdr #{w 28252}#)) #f) - #{x 28186}# - (if (if (vector? #{x 28186}#) - (if (= (vector-length #{x 28186}#) 4) - (eq? (vector-ref #{x 28186}# 0) + #{x 28496}# + (if (if (vector? #{x 28496}#) + (if (= (vector-length #{x 28496}#) 4) + (eq? (vector-ref #{x 28496}# 0) 'syntax-object) #f) #f) - (let ((#{expression 28218}# - (vector-ref #{x 28186}# 1)) - (#{wrap 28219}# - (let ((#{w2 28227}# - (vector-ref #{x 28186}# 2))) - (let ((#{m1 28228}# - (car #{w 27942}#)) - (#{s1 28229}# - (cdr #{w 27942}#))) - (if (null? #{m1 28228}#) - (if (null? #{s1 28229}#) - #{w2 28227}# - (cons (car #{w2 28227}#) - (let ((#{m2 28244}# - (cdr #{w2 28227}#))) - (if (null? #{m2 28244}#) - #{s1 28229}# + (let ((#{expression 28528}# + (vector-ref #{x 28496}# 1)) + (#{wrap 28529}# + (let ((#{w2 28537}# + (vector-ref #{x 28496}# 2))) + (let ((#{m1 28538}# + (car #{w 28252}#)) + (#{s1 28539}# + (cdr #{w 28252}#))) + (if (null? #{m1 28538}#) + (if (null? #{s1 28539}#) + #{w2 28537}# + (cons (car #{w2 28537}#) + (let ((#{m2 28554}# + (cdr #{w2 28537}#))) + (if (null? #{m2 28554}#) + #{s1 28539}# (append - #{s1 28229}# - #{m2 28244}#))))) - (cons (let ((#{m2 28252}# - (car #{w2 28227}#))) - (if (null? #{m2 28252}#) - #{m1 28228}# + #{s1 28539}# + #{m2 28554}#))))) + (cons (let ((#{m2 28562}# + (car #{w2 28537}#))) + (if (null? #{m2 28562}#) + #{m1 28538}# (append - #{m1 28228}# - #{m2 28252}#))) - (let ((#{m2 28260}# - (cdr #{w2 28227}#))) - (if (null? #{m2 28260}#) - #{s1 28229}# + #{m1 28538}# + #{m2 28562}#))) + (let ((#{m2 28570}# + (cdr #{w2 28537}#))) + (if (null? #{m2 28570}#) + #{s1 28539}# (append - #{s1 28229}# - #{m2 28260}#)))))))) - (#{module 28220}# - (vector-ref #{x 28186}# 3))) + #{s1 28539}# + #{m2 28570}#)))))))) + (#{module 28530}# + (vector-ref #{x 28496}# 3))) (vector 'syntax-object - #{expression 28218}# - #{wrap 28219}# - #{module 28220}#)) - (if (null? #{x 28186}#) - #{x 28186}# + #{expression 28528}# + #{wrap 28529}# + #{module 28530}#)) + (if (null? #{x 28496}#) + #{x 28496}# (vector 'syntax-object - #{x 28186}# - #{w 27942}# - #{mod 27945}#)))))) - #{x 28053}#) + #{x 28496}# + #{w 28252}# + #{mod 28255}#)))))) + #{x 28363}#) (begin - (if (if (pair? #{x 28053}#) #{s 27943}# #f) - (set-source-properties! #{x 28053}# #{s 27943}#)) - #{x 28053}#)))))))) - (#{rebuild-macro-output 27946}# - (#{p 27939}# - (let ((#{w 27953}# - (cons (cons #f (car #{w 27942}#)) - (cons 'shift (cdr #{w 27942}#))))) - (let ((#{x 27958}# + (if (if (pair? #{x 28363}#) #{s 28253}# #f) + (set-source-properties! #{x 28363}# #{s 28253}#)) + #{x 28363}#)))))))) + (#{rebuild-macro-output 28256}# + (#{p 28249}# + (let ((#{w 28263}# + (cons (cons #f (car #{w 28252}#)) + (cons 'shift (cdr #{w 28252}#))))) + (let ((#{x 28268}# (begin - (if (if (pair? #{e 27940}#) #{s 27943}# #f) - (set-source-properties! #{e 27940}# #{s 27943}#)) - #{e 27940}#))) - (if (if (null? (car #{w 27953}#)) - (null? (cdr #{w 27953}#)) + (if (if (pair? #{e 28250}#) #{s 28253}# #f) + (set-source-properties! #{e 28250}# #{s 28253}#)) + #{e 28250}#))) + (if (if (null? (car #{w 28263}#)) + (null? (cdr #{w 28263}#)) #f) - #{x 27958}# - (if (if (vector? #{x 27958}#) - (if (= (vector-length #{x 27958}#) 4) - (eq? (vector-ref #{x 27958}# 0) 'syntax-object) + #{x 28268}# + (if (if (vector? #{x 28268}#) + (if (= (vector-length #{x 28268}#) 4) + (eq? (vector-ref #{x 28268}# 0) 'syntax-object) #f) #f) - (let ((#{expression 27996}# (vector-ref #{x 27958}# 1)) - (#{wrap 27997}# - (let ((#{w2 28005}# (vector-ref #{x 27958}# 2))) - (let ((#{m1 28006}# (car #{w 27953}#)) - (#{s1 28007}# (cdr #{w 27953}#))) - (if (null? #{m1 28006}#) - (if (null? #{s1 28007}#) - #{w2 28005}# - (cons (car #{w2 28005}#) - (let ((#{m2 28022}# - (cdr #{w2 28005}#))) - (if (null? #{m2 28022}#) - #{s1 28007}# + (let ((#{expression 28306}# (vector-ref #{x 28268}# 1)) + (#{wrap 28307}# + (let ((#{w2 28315}# (vector-ref #{x 28268}# 2))) + (let ((#{m1 28316}# (car #{w 28263}#)) + (#{s1 28317}# (cdr #{w 28263}#))) + (if (null? #{m1 28316}#) + (if (null? #{s1 28317}#) + #{w2 28315}# + (cons (car #{w2 28315}#) + (let ((#{m2 28332}# + (cdr #{w2 28315}#))) + (if (null? #{m2 28332}#) + #{s1 28317}# (append - #{s1 28007}# - #{m2 28022}#))))) - (cons (let ((#{m2 28030}# - (car #{w2 28005}#))) - (if (null? #{m2 28030}#) - #{m1 28006}# + #{s1 28317}# + #{m2 28332}#))))) + (cons (let ((#{m2 28340}# + (car #{w2 28315}#))) + (if (null? #{m2 28340}#) + #{m1 28316}# (append - #{m1 28006}# - #{m2 28030}#))) - (let ((#{m2 28038}# - (cdr #{w2 28005}#))) - (if (null? #{m2 28038}#) - #{s1 28007}# + #{m1 28316}# + #{m2 28340}#))) + (let ((#{m2 28348}# + (cdr #{w2 28315}#))) + (if (null? #{m2 28348}#) + #{s1 28317}# (append - #{s1 28007}# - #{m2 28038}#)))))))) - (#{module 27998}# (vector-ref #{x 27958}# 3))) + #{s1 28317}# + #{m2 28348}#)))))))) + (#{module 28308}# (vector-ref #{x 28268}# 3))) (vector 'syntax-object - #{expression 27996}# - #{wrap 27997}# - #{module 27998}#)) - (if (null? #{x 27958}#) - #{x 27958}# + #{expression 28306}# + #{wrap 28307}# + #{module 28308}#)) + (if (null? #{x 28268}#) + #{x 28268}# (vector 'syntax-object - #{x 27958}# - #{w 27953}# - #{mod 27945}#))))))) + #{x 28268}# + #{w 28263}# + #{mod 28255}#))))))) (gensym "m"))))) - (#{chi-body 4450}# - (lambda (#{body 28290}# - #{outer-form 28291}# - #{r 28292}# - #{w 28293}# - #{mod 28294}#) - (let ((#{r 28295}# - (cons '("placeholder" placeholder) #{r 28292}#))) - (let ((#{ribcage 28296}# (vector 'ribcage '() '() '()))) - (let ((#{w 28297}# - (cons (car #{w 28293}#) - (cons #{ribcage 28296}# (cdr #{w 28293}#))))) + (#{expand-body 4447}# + (lambda (#{body 28600}# + #{outer-form 28601}# + #{r 28602}# + #{w 28603}# + #{mod 28604}#) + (let ((#{r 28605}# + (cons '("placeholder" placeholder) #{r 28602}#))) + (let ((#{ribcage 28606}# (vector 'ribcage '() '() '()))) + (let ((#{w 28607}# + (cons (car #{w 28603}#) + (cons #{ribcage 28606}# (cdr #{w 28603}#))))) (letrec* - ((#{parse 28298}# - (lambda (#{body 28406}# - #{ids 28407}# - #{labels 28408}# - #{var-ids 28409}# - #{vars 28410}# - #{vals 28411}# - #{bindings 28412}#) - (if (null? #{body 28406}#) + ((#{parse 28608}# + (lambda (#{body 28716}# + #{ids 28717}# + #{labels 28718}# + #{var-ids 28719}# + #{vars 28720}# + #{vals 28721}# + #{bindings 28722}#) + (if (null? #{body 28716}#) (syntax-violation #f "no expressions in body" - #{outer-form 28291}#) - (let ((#{e 28413}# (cdr (car #{body 28406}#))) - (#{er 28414}# (car (car #{body 28406}#)))) + #{outer-form 28601}#) + (let ((#{e 28723}# (cdr (car #{body 28716}#))) + (#{er 28724}# (car (car #{body 28716}#)))) (call-with-values (lambda () - (#{syntax-type 4445}# - #{e 28413}# - #{er 28414}# + (#{syntax-type 4442}# + #{e 28723}# + #{er 28724}# '(()) - (#{source-annotation 4407}# #{er 28414}#) - #{ribcage 28296}# - #{mod 28294}# + (#{source-annotation 4404}# #{er 28724}#) + #{ribcage 28606}# + #{mod 28604}# #f)) - (lambda (#{type 28620}# - #{value 28621}# - #{e 28622}# - #{w 28623}# - #{s 28624}# - #{mod 28625}#) - (if (eqv? #{type 28620}# 'define-form) - (let ((#{id 28629}# - (if (if (null? (car #{w 28623}#)) - (null? (cdr #{w 28623}#)) + (lambda (#{type 28930}# + #{value 28931}# + #{e 28932}# + #{w 28933}# + #{s 28934}# + #{mod 28935}#) + (if (eqv? #{type 28930}# 'define-form) + (let ((#{id 28939}# + (if (if (null? (car #{w 28933}#)) + (null? (cdr #{w 28933}#)) #f) - #{value 28621}# - (if (if (vector? #{value 28621}#) + #{value 28931}# + (if (if (vector? #{value 28931}#) (if (= (vector-length - #{value 28621}#) + #{value 28931}#) 4) (eq? (vector-ref - #{value 28621}# + #{value 28931}# 0) 'syntax-object) #f) #f) - (let ((#{expression 28674}# + (let ((#{expression 28984}# (vector-ref - #{value 28621}# + #{value 28931}# 1)) - (#{wrap 28675}# - (let ((#{w2 28685}# + (#{wrap 28985}# + (let ((#{w2 28995}# (vector-ref - #{value 28621}# + #{value 28931}# 2))) - (let ((#{m1 28686}# - (car #{w 28623}#)) - (#{s1 28687}# - (cdr #{w 28623}#))) - (if (null? #{m1 28686}#) - (if (null? #{s1 28687}#) - #{w2 28685}# - (cons (car #{w2 28685}#) - (let ((#{m2 28704}# - (cdr #{w2 28685}#))) - (if (null? #{m2 28704}#) - #{s1 28687}# + (let ((#{m1 28996}# + (car #{w 28933}#)) + (#{s1 28997}# + (cdr #{w 28933}#))) + (if (null? #{m1 28996}#) + (if (null? #{s1 28997}#) + #{w2 28995}# + (cons (car #{w2 28995}#) + (let ((#{m2 29014}# + (cdr #{w2 28995}#))) + (if (null? #{m2 29014}#) + #{s1 28997}# (append - #{s1 28687}# - #{m2 28704}#))))) - (cons (let ((#{m2 28712}# - (car #{w2 28685}#))) - (if (null? #{m2 28712}#) - #{m1 28686}# + #{s1 28997}# + #{m2 29014}#))))) + (cons (let ((#{m2 29022}# + (car #{w2 28995}#))) + (if (null? #{m2 29022}#) + #{m1 28996}# (append - #{m1 28686}# - #{m2 28712}#))) - (let ((#{m2 28720}# - (cdr #{w2 28685}#))) - (if (null? #{m2 28720}#) - #{s1 28687}# + #{m1 28996}# + #{m2 29022}#))) + (let ((#{m2 29030}# + (cdr #{w2 28995}#))) + (if (null? #{m2 29030}#) + #{s1 28997}# (append - #{s1 28687}# - #{m2 28720}#)))))))) - (#{module 28676}# + #{s1 28997}# + #{m2 29030}#)))))))) + (#{module 28986}# (vector-ref - #{value 28621}# + #{value 28931}# 3))) (vector 'syntax-object - #{expression 28674}# - #{wrap 28675}# - #{module 28676}#)) - (if (null? #{value 28621}#) - #{value 28621}# + #{expression 28984}# + #{wrap 28985}# + #{module 28986}#)) + (if (null? #{value 28931}#) + #{value 28931}# (vector 'syntax-object - #{value 28621}# - #{w 28623}# - #{mod 28625}#))))) - (#{label 28630}# + #{value 28931}# + #{w 28933}# + #{mod 28935}#))))) + (#{label 28940}# (symbol->string (gensym "i")))) - (let ((#{var 28631}# - (let ((#{id 28781}# - (if (if (vector? #{id 28629}#) + (let ((#{var 28941}# + (let ((#{id 29091}# + (if (if (vector? #{id 28939}#) (if (= (vector-length - #{id 28629}#) + #{id 28939}#) 4) (eq? (vector-ref - #{id 28629}# + #{id 28939}# 0) 'syntax-object) #f) #f) - (vector-ref #{id 28629}# 1) - #{id 28629}#))) + (vector-ref #{id 28939}# 1) + #{id 28939}#))) (gensym (string-append - (symbol->string #{id 28781}#) + (symbol->string #{id 29091}#) " "))))) (begin (begin - (let ((#{update 28640}# - (cons (vector-ref #{id 28629}# 1) + (let ((#{update 28950}# + (cons (vector-ref #{id 28939}# 1) (vector-ref - #{ribcage 28296}# + #{ribcage 28606}# 1)))) (vector-set! - #{ribcage 28296}# + #{ribcage 28606}# 1 - #{update 28640}#)) - (let ((#{update 28752}# + #{update 28950}#)) + (let ((#{update 29062}# (cons (car (vector-ref - #{id 28629}# + #{id 28939}# 2)) (vector-ref - #{ribcage 28296}# + #{ribcage 28606}# 2)))) (vector-set! - #{ribcage 28296}# + #{ribcage 28606}# 2 - #{update 28752}#)) - (let ((#{update 28767}# - (cons #{label 28630}# + #{update 29062}#)) + (let ((#{update 29077}# + (cons #{label 28940}# (vector-ref - #{ribcage 28296}# + #{ribcage 28606}# 3)))) (vector-set! - #{ribcage 28296}# + #{ribcage 28606}# 3 - #{update 28767}#))) - (#{parse 28298}# - (cdr #{body 28406}#) - (cons #{id 28629}# #{ids 28407}#) - (cons #{label 28630}# #{labels 28408}#) - (cons #{id 28629}# #{var-ids 28409}#) - (cons #{var 28631}# #{vars 28410}#) - (cons (cons #{er 28414}# - (if (if (null? (car #{w 28623}#)) - (null? (cdr #{w 28623}#)) + #{update 29077}#))) + (#{parse 28608}# + (cdr #{body 28716}#) + (cons #{id 28939}# #{ids 28717}#) + (cons #{label 28940}# #{labels 28718}#) + (cons #{id 28939}# #{var-ids 28719}#) + (cons #{var 28941}# #{vars 28720}#) + (cons (cons #{er 28724}# + (if (if (null? (car #{w 28933}#)) + (null? (cdr #{w 28933}#)) #f) - #{e 28622}# + #{e 28932}# (if (if (vector? - #{e 28622}#) + #{e 28932}#) (if (= (vector-length - #{e 28622}#) + #{e 28932}#) 4) (eq? (vector-ref - #{e 28622}# + #{e 28932}# 0) 'syntax-object) #f) #f) - (let ((#{expression 28833}# + (let ((#{expression 29143}# (vector-ref - #{e 28622}# + #{e 28932}# 1)) - (#{wrap 28834}# - (let ((#{w2 28844}# + (#{wrap 29144}# + (let ((#{w2 29154}# (vector-ref - #{e 28622}# + #{e 28932}# 2))) - (let ((#{m1 28845}# - (car #{w 28623}#)) - (#{s1 28846}# - (cdr #{w 28623}#))) - (if (null? #{m1 28845}#) - (if (null? #{s1 28846}#) - #{w2 28844}# - (cons (car #{w2 28844}#) - (let ((#{m2 28863}# - (cdr #{w2 28844}#))) - (if (null? #{m2 28863}#) - #{s1 28846}# + (let ((#{m1 29155}# + (car #{w 28933}#)) + (#{s1 29156}# + (cdr #{w 28933}#))) + (if (null? #{m1 29155}#) + (if (null? #{s1 29156}#) + #{w2 29154}# + (cons (car #{w2 29154}#) + (let ((#{m2 29173}# + (cdr #{w2 29154}#))) + (if (null? #{m2 29173}#) + #{s1 29156}# (append - #{s1 28846}# - #{m2 28863}#))))) - (cons (let ((#{m2 28871}# - (car #{w2 28844}#))) - (if (null? #{m2 28871}#) - #{m1 28845}# + #{s1 29156}# + #{m2 29173}#))))) + (cons (let ((#{m2 29181}# + (car #{w2 29154}#))) + (if (null? #{m2 29181}#) + #{m1 29155}# (append - #{m1 28845}# - #{m2 28871}#))) - (let ((#{m2 28879}# - (cdr #{w2 28844}#))) - (if (null? #{m2 28879}#) - #{s1 28846}# + #{m1 29155}# + #{m2 29181}#))) + (let ((#{m2 29189}# + (cdr #{w2 29154}#))) + (if (null? #{m2 29189}#) + #{s1 29156}# (append - #{s1 28846}# - #{m2 28879}#)))))))) - (#{module 28835}# + #{s1 29156}# + #{m2 29189}#)))))))) + (#{module 29145}# (vector-ref - #{e 28622}# + #{e 28932}# 3))) (vector 'syntax-object - #{expression 28833}# - #{wrap 28834}# - #{module 28835}#)) - (if (null? #{e 28622}#) - #{e 28622}# + #{expression 29143}# + #{wrap 29144}# + #{module 29145}#)) + (if (null? #{e 28932}#) + #{e 28932}# (vector 'syntax-object - #{e 28622}# - #{w 28623}# - #{mod 28625}#))))) - #{vals 28411}#) - (cons (cons 'lexical #{var 28631}#) - #{bindings 28412}#))))) - (if (if (eqv? #{type 28620}# 'define-syntax-form) + #{e 28932}# + #{w 28933}# + #{mod 28935}#))))) + #{vals 28721}#) + (cons (cons 'lexical #{var 28941}#) + #{bindings 28722}#))))) + (if (if (eqv? #{type 28930}# 'define-syntax-form) #t - (eqv? #{type 28620}# + (eqv? #{type 28930}# 'define-syntax-parameter-form)) - (let ((#{id 28910}# - (if (if (null? (car #{w 28623}#)) - (null? (cdr #{w 28623}#)) + (let ((#{id 29220}# + (if (if (null? (car #{w 28933}#)) + (null? (cdr #{w 28933}#)) #f) - #{value 28621}# - (if (if (vector? #{value 28621}#) + #{value 28931}# + (if (if (vector? #{value 28931}#) (if (= (vector-length - #{value 28621}#) + #{value 28931}#) 4) (eq? (vector-ref - #{value 28621}# + #{value 28931}# 0) 'syntax-object) #f) #f) - (let ((#{expression 28954}# + (let ((#{expression 29264}# (vector-ref - #{value 28621}# + #{value 28931}# 1)) - (#{wrap 28955}# - (let ((#{w2 28965}# + (#{wrap 29265}# + (let ((#{w2 29275}# (vector-ref - #{value 28621}# + #{value 28931}# 2))) - (let ((#{m1 28966}# - (car #{w 28623}#)) - (#{s1 28967}# - (cdr #{w 28623}#))) - (if (null? #{m1 28966}#) - (if (null? #{s1 28967}#) - #{w2 28965}# - (cons (car #{w2 28965}#) - (let ((#{m2 28984}# - (cdr #{w2 28965}#))) - (if (null? #{m2 28984}#) - #{s1 28967}# + (let ((#{m1 29276}# + (car #{w 28933}#)) + (#{s1 29277}# + (cdr #{w 28933}#))) + (if (null? #{m1 29276}#) + (if (null? #{s1 29277}#) + #{w2 29275}# + (cons (car #{w2 29275}#) + (let ((#{m2 29294}# + (cdr #{w2 29275}#))) + (if (null? #{m2 29294}#) + #{s1 29277}# (append - #{s1 28967}# - #{m2 28984}#))))) - (cons (let ((#{m2 28992}# - (car #{w2 28965}#))) - (if (null? #{m2 28992}#) - #{m1 28966}# + #{s1 29277}# + #{m2 29294}#))))) + (cons (let ((#{m2 29302}# + (car #{w2 29275}#))) + (if (null? #{m2 29302}#) + #{m1 29276}# (append - #{m1 28966}# - #{m2 28992}#))) - (let ((#{m2 29000}# - (cdr #{w2 28965}#))) - (if (null? #{m2 29000}#) - #{s1 28967}# + #{m1 29276}# + #{m2 29302}#))) + (let ((#{m2 29310}# + (cdr #{w2 29275}#))) + (if (null? #{m2 29310}#) + #{s1 29277}# (append - #{s1 28967}# - #{m2 29000}#)))))))) - (#{module 28956}# + #{s1 29277}# + #{m2 29310}#)))))))) + (#{module 29266}# (vector-ref - #{value 28621}# + #{value 28931}# 3))) (vector 'syntax-object - #{expression 28954}# - #{wrap 28955}# - #{module 28956}#)) - (if (null? #{value 28621}#) - #{value 28621}# + #{expression 29264}# + #{wrap 29265}# + #{module 29266}#)) + (if (null? #{value 28931}#) + #{value 28931}# (vector 'syntax-object - #{value 28621}# - #{w 28623}# - #{mod 28625}#))))) - (#{label 28911}# + #{value 28931}# + #{w 28933}# + #{mod 28935}#))))) + (#{label 29221}# (symbol->string (gensym "i")))) (begin (begin - (let ((#{update 28920}# - (cons (vector-ref #{id 28910}# 1) + (let ((#{update 29230}# + (cons (vector-ref #{id 29220}# 1) (vector-ref - #{ribcage 28296}# + #{ribcage 28606}# 1)))) (vector-set! - #{ribcage 28296}# + #{ribcage 28606}# 1 - #{update 28920}#)) - (let ((#{update 29032}# + #{update 29230}#)) + (let ((#{update 29342}# (cons (car (vector-ref - #{id 28910}# + #{id 29220}# 2)) (vector-ref - #{ribcage 28296}# + #{ribcage 28606}# 2)))) (vector-set! - #{ribcage 28296}# + #{ribcage 28606}# 2 - #{update 29032}#)) - (let ((#{update 29047}# - (cons #{label 28911}# + #{update 29342}#)) + (let ((#{update 29357}# + (cons #{label 29221}# (vector-ref - #{ribcage 28296}# + #{ribcage 28606}# 3)))) (vector-set! - #{ribcage 28296}# + #{ribcage 28606}# 3 - #{update 29047}#))) - (#{parse 28298}# - (cdr #{body 28406}#) - (cons #{id 28910}# #{ids 28407}#) - (cons #{label 28911}# #{labels 28408}#) - #{var-ids 28409}# - #{vars 28410}# - #{vals 28411}# - (cons (cons (if (eq? #{type 28620}# + #{update 29357}#))) + (#{parse 28608}# + (cdr #{body 28716}#) + (cons #{id 29220}# #{ids 28717}#) + (cons #{label 29221}# #{labels 28718}#) + #{var-ids 28719}# + #{vars 28720}# + #{vals 28721}# + (cons (cons (if (eq? #{type 28930}# 'define-syntax-parameter-form) 'syntax-parameter 'macro) - (cons #{er 28414}# - (if (if (null? (car #{w 28623}#)) - (null? (cdr #{w 28623}#)) + (cons #{er 28724}# + (if (if (null? (car #{w 28933}#)) + (null? (cdr #{w 28933}#)) #f) - #{e 28622}# + #{e 28932}# (if (if (vector? - #{e 28622}#) + #{e 28932}#) (if (= (vector-length - #{e 28622}#) + #{e 28932}#) 4) (eq? (vector-ref - #{e 28622}# + #{e 28932}# 0) 'syntax-object) #f) #f) - (let ((#{expression 29086}# + (let ((#{expression 29396}# (vector-ref - #{e 28622}# + #{e 28932}# 1)) - (#{wrap 29087}# - (let ((#{w2 29097}# + (#{wrap 29397}# + (let ((#{w2 29407}# (vector-ref - #{e 28622}# + #{e 28932}# 2))) - (let ((#{m1 29098}# - (car #{w 28623}#)) - (#{s1 29099}# - (cdr #{w 28623}#))) - (if (null? #{m1 29098}#) - (if (null? #{s1 29099}#) - #{w2 29097}# - (cons (car #{w2 29097}#) - (let ((#{m2 29116}# - (cdr #{w2 29097}#))) - (if (null? #{m2 29116}#) - #{s1 29099}# + (let ((#{m1 29408}# + (car #{w 28933}#)) + (#{s1 29409}# + (cdr #{w 28933}#))) + (if (null? #{m1 29408}#) + (if (null? #{s1 29409}#) + #{w2 29407}# + (cons (car #{w2 29407}#) + (let ((#{m2 29426}# + (cdr #{w2 29407}#))) + (if (null? #{m2 29426}#) + #{s1 29409}# (append - #{s1 29099}# - #{m2 29116}#))))) - (cons (let ((#{m2 29124}# - (car #{w2 29097}#))) - (if (null? #{m2 29124}#) - #{m1 29098}# + #{s1 29409}# + #{m2 29426}#))))) + (cons (let ((#{m2 29434}# + (car #{w2 29407}#))) + (if (null? #{m2 29434}#) + #{m1 29408}# (append - #{m1 29098}# - #{m2 29124}#))) - (let ((#{m2 29132}# - (cdr #{w2 29097}#))) - (if (null? #{m2 29132}#) - #{s1 29099}# + #{m1 29408}# + #{m2 29434}#))) + (let ((#{m2 29442}# + (cdr #{w2 29407}#))) + (if (null? #{m2 29442}#) + #{s1 29409}# (append - #{s1 29099}# - #{m2 29132}#)))))))) - (#{module 29088}# + #{s1 29409}# + #{m2 29442}#)))))))) + (#{module 29398}# (vector-ref - #{e 28622}# + #{e 28932}# 3))) (vector 'syntax-object - #{expression 29086}# - #{wrap 29087}# - #{module 29088}#)) - (if (null? #{e 28622}#) - #{e 28622}# + #{expression 29396}# + #{wrap 29397}# + #{module 29398}#)) + (if (null? #{e 28932}#) + #{e 28932}# (vector 'syntax-object - #{e 28622}# - #{w 28623}# - #{mod 28625}#)))))) - #{bindings 28412}#)))) - (if (eqv? #{type 28620}# 'begin-form) - (let ((#{tmp 29159}# + #{e 28932}# + #{w 28933}# + #{mod 28935}#)))))) + #{bindings 28722}#)))) + (if (eqv? #{type 28930}# 'begin-form) + (let ((#{tmp 29469}# ($sc-dispatch - #{e 28622}# + #{e 28932}# '(_ . each-any)))) - (if #{tmp 29159}# + (if #{tmp 29469}# (@apply - (lambda (#{e1 29163}#) - (#{parse 28298}# + (lambda (#{e1 29473}#) + (#{parse 28608}# (letrec* - ((#{f 29164}# - (lambda (#{forms 29380}#) - (if (null? #{forms 29380}#) - (cdr #{body 28406}#) - (cons (cons #{er 28414}# - (let ((#{x 29384}# - (car #{forms 29380}#))) - (if (if (null? (car #{w 28623}#)) - (null? (cdr #{w 28623}#)) + ((#{f 29474}# + (lambda (#{forms 29690}#) + (if (null? #{forms 29690}#) + (cdr #{body 28716}#) + (cons (cons #{er 28724}# + (let ((#{x 29694}# + (car #{forms 29690}#))) + (if (if (null? (car #{w 28933}#)) + (null? (cdr #{w 28933}#)) #f) - #{x 29384}# + #{x 29694}# (if (if (vector? - #{x 29384}#) + #{x 29694}#) (if (= (vector-length - #{x 29384}#) + #{x 29694}#) 4) (eq? (vector-ref - #{x 29384}# + #{x 29694}# 0) 'syntax-object) #f) #f) - (let ((#{expression 29402}# + (let ((#{expression 29712}# (vector-ref - #{x 29384}# + #{x 29694}# 1)) - (#{wrap 29403}# - (let ((#{w2 29411}# + (#{wrap 29713}# + (let ((#{w2 29721}# (vector-ref - #{x 29384}# + #{x 29694}# 2))) - (let ((#{m1 29412}# - (car #{w 28623}#)) - (#{s1 29413}# - (cdr #{w 28623}#))) - (if (null? #{m1 29412}#) - (if (null? #{s1 29413}#) - #{w2 29411}# - (cons (car #{w2 29411}#) - (let ((#{m2 29428}# - (cdr #{w2 29411}#))) - (if (null? #{m2 29428}#) - #{s1 29413}# + (let ((#{m1 29722}# + (car #{w 28933}#)) + (#{s1 29723}# + (cdr #{w 28933}#))) + (if (null? #{m1 29722}#) + (if (null? #{s1 29723}#) + #{w2 29721}# + (cons (car #{w2 29721}#) + (let ((#{m2 29738}# + (cdr #{w2 29721}#))) + (if (null? #{m2 29738}#) + #{s1 29723}# (append - #{s1 29413}# - #{m2 29428}#))))) - (cons (let ((#{m2 29436}# - (car #{w2 29411}#))) - (if (null? #{m2 29436}#) - #{m1 29412}# + #{s1 29723}# + #{m2 29738}#))))) + (cons (let ((#{m2 29746}# + (car #{w2 29721}#))) + (if (null? #{m2 29746}#) + #{m1 29722}# (append - #{m1 29412}# - #{m2 29436}#))) - (let ((#{m2 29444}# - (cdr #{w2 29411}#))) - (if (null? #{m2 29444}#) - #{s1 29413}# + #{m1 29722}# + #{m2 29746}#))) + (let ((#{m2 29754}# + (cdr #{w2 29721}#))) + (if (null? #{m2 29754}#) + #{s1 29723}# (append - #{s1 29413}# - #{m2 29444}#)))))))) - (#{module 29404}# + #{s1 29723}# + #{m2 29754}#)))))))) + (#{module 29714}# (vector-ref - #{x 29384}# + #{x 29694}# 3))) (vector 'syntax-object - #{expression 29402}# - #{wrap 29403}# - #{module 29404}#)) - (if (null? #{x 29384}#) - #{x 29384}# + #{expression 29712}# + #{wrap 29713}# + #{module 29714}#)) + (if (null? #{x 29694}#) + #{x 29694}# (vector 'syntax-object - #{x 29384}# - #{w 28623}# - #{mod 28625}#)))))) - (#{f 29164}# - (cdr #{forms 29380}#))))))) - (#{f 29164}# #{e1 29163}#)) - #{ids 28407}# - #{labels 28408}# - #{var-ids 28409}# - #{vars 28410}# - #{vals 28411}# - #{bindings 28412}#)) - #{tmp 29159}#) + #{x 29694}# + #{w 28933}# + #{mod 28935}#)))))) + (#{f 29474}# + (cdr #{forms 29690}#))))))) + (#{f 29474}# #{e1 29473}#)) + #{ids 28717}# + #{labels 28718}# + #{var-ids 28719}# + #{vars 28720}# + #{vals 28721}# + #{bindings 28722}#)) + #{tmp 29469}#) (syntax-violation #f "source expression failed to match any pattern" - #{e 28622}#))) - (if (eqv? #{type 28620}# 'local-syntax-form) - (#{chi-local-syntax 4451}# - #{value 28621}# - #{e 28622}# - #{er 28414}# - #{w 28623}# - #{s 28624}# - #{mod 28625}# - (lambda (#{forms 29470}# - #{er 29471}# - #{w 29472}# - #{s 29473}# - #{mod 29474}#) - (#{parse 28298}# + #{e 28932}#))) + (if (eqv? #{type 28930}# 'local-syntax-form) + (#{expand-local-syntax 4448}# + #{value 28931}# + #{e 28932}# + #{er 28724}# + #{w 28933}# + #{s 28934}# + #{mod 28935}# + (lambda (#{forms 29780}# + #{er 29781}# + #{w 29782}# + #{s 29783}# + #{mod 29784}#) + (#{parse 28608}# (letrec* - ((#{f 29475}# - (lambda (#{forms 29691}#) - (if (null? #{forms 29691}#) - (cdr #{body 28406}#) - (cons (cons #{er 29471}# - (let ((#{x 29695}# - (car #{forms 29691}#))) - (if (if (null? (car #{w 29472}#)) - (null? (cdr #{w 29472}#)) + ((#{f 29785}# + (lambda (#{forms 30001}#) + (if (null? #{forms 30001}#) + (cdr #{body 28716}#) + (cons (cons #{er 29781}# + (let ((#{x 30005}# + (car #{forms 30001}#))) + (if (if (null? (car #{w 29782}#)) + (null? (cdr #{w 29782}#)) #f) - #{x 29695}# + #{x 30005}# (if (if (vector? - #{x 29695}#) + #{x 30005}#) (if (= (vector-length - #{x 29695}#) + #{x 30005}#) 4) (eq? (vector-ref - #{x 29695}# + #{x 30005}# 0) 'syntax-object) #f) #f) - (let ((#{expression 29713}# + (let ((#{expression 30023}# (vector-ref - #{x 29695}# + #{x 30005}# 1)) - (#{wrap 29714}# - (let ((#{w2 29722}# + (#{wrap 30024}# + (let ((#{w2 30032}# (vector-ref - #{x 29695}# + #{x 30005}# 2))) - (let ((#{m1 29723}# - (car #{w 29472}#)) - (#{s1 29724}# - (cdr #{w 29472}#))) - (if (null? #{m1 29723}#) - (if (null? #{s1 29724}#) - #{w2 29722}# - (cons (car #{w2 29722}#) - (let ((#{m2 29739}# - (cdr #{w2 29722}#))) - (if (null? #{m2 29739}#) - #{s1 29724}# + (let ((#{m1 30033}# + (car #{w 29782}#)) + (#{s1 30034}# + (cdr #{w 29782}#))) + (if (null? #{m1 30033}#) + (if (null? #{s1 30034}#) + #{w2 30032}# + (cons (car #{w2 30032}#) + (let ((#{m2 30049}# + (cdr #{w2 30032}#))) + (if (null? #{m2 30049}#) + #{s1 30034}# (append - #{s1 29724}# - #{m2 29739}#))))) - (cons (let ((#{m2 29747}# - (car #{w2 29722}#))) - (if (null? #{m2 29747}#) - #{m1 29723}# + #{s1 30034}# + #{m2 30049}#))))) + (cons (let ((#{m2 30057}# + (car #{w2 30032}#))) + (if (null? #{m2 30057}#) + #{m1 30033}# (append - #{m1 29723}# - #{m2 29747}#))) - (let ((#{m2 29755}# - (cdr #{w2 29722}#))) - (if (null? #{m2 29755}#) - #{s1 29724}# + #{m1 30033}# + #{m2 30057}#))) + (let ((#{m2 30065}# + (cdr #{w2 30032}#))) + (if (null? #{m2 30065}#) + #{s1 30034}# (append - #{s1 29724}# - #{m2 29755}#)))))))) - (#{module 29715}# + #{s1 30034}# + #{m2 30065}#)))))))) + (#{module 30025}# (vector-ref - #{x 29695}# + #{x 30005}# 3))) (vector 'syntax-object - #{expression 29713}# - #{wrap 29714}# - #{module 29715}#)) - (if (null? #{x 29695}#) - #{x 29695}# + #{expression 30023}# + #{wrap 30024}# + #{module 30025}#)) + (if (null? #{x 30005}#) + #{x 30005}# (vector 'syntax-object - #{x 29695}# - #{w 29472}# - #{mod 29474}#)))))) - (#{f 29475}# - (cdr #{forms 29691}#))))))) - (#{f 29475}# #{forms 29470}#)) - #{ids 28407}# - #{labels 28408}# - #{var-ids 28409}# - #{vars 28410}# - #{vals 28411}# - #{bindings 28412}#))) - (if (null? #{ids 28407}#) - (#{build-sequence 4395}# + #{x 30005}# + #{w 29782}# + #{mod 29784}#)))))) + (#{f 29785}# + (cdr #{forms 30001}#))))))) + (#{f 29785}# #{forms 29780}#)) + #{ids 28717}# + #{labels 28718}# + #{var-ids 28719}# + #{vars 28720}# + #{vals 28721}# + #{bindings 28722}#))) + (if (null? #{ids 28717}#) + (#{build-sequence 4392}# #f - (map (lambda (#{x 29844}#) - (#{chi 4446}# - (cdr #{x 29844}#) - (car #{x 29844}#) + (map (lambda (#{x 30154}#) + (#{expand 4443}# + (cdr #{x 30154}#) + (car #{x 30154}#) '(()) - #{mod 28625}#)) - (cons (cons #{er 28414}# - (let ((#{x 29923}# + #{mod 28935}#)) + (cons (cons #{er 28724}# + (let ((#{x 30233}# (begin - (if (if (pair? #{e 28622}#) - #{s 28624}# + (if (if (pair? #{e 28932}#) + #{s 28934}# #f) (set-source-properties! - #{e 28622}# - #{s 28624}#)) - #{e 28622}#))) - (if (if (null? (car #{w 28623}#)) - (null? (cdr #{w 28623}#)) + #{e 28932}# + #{s 28934}#)) + #{e 28932}#))) + (if (if (null? (car #{w 28933}#)) + (null? (cdr #{w 28933}#)) #f) - #{x 29923}# + #{x 30233}# (if (if (vector? - #{x 29923}#) + #{x 30233}#) (if (= (vector-length - #{x 29923}#) + #{x 30233}#) 4) (eq? (vector-ref - #{x 29923}# + #{x 30233}# 0) 'syntax-object) #f) #f) - (let ((#{expression 29955}# + (let ((#{expression 30265}# (vector-ref - #{x 29923}# + #{x 30233}# 1)) - (#{wrap 29956}# - (let ((#{w2 29964}# + (#{wrap 30266}# + (let ((#{w2 30274}# (vector-ref - #{x 29923}# + #{x 30233}# 2))) - (let ((#{m1 29965}# - (car #{w 28623}#)) - (#{s1 29966}# - (cdr #{w 28623}#))) - (if (null? #{m1 29965}#) - (if (null? #{s1 29966}#) - #{w2 29964}# - (cons (car #{w2 29964}#) - (let ((#{m2 29981}# - (cdr #{w2 29964}#))) - (if (null? #{m2 29981}#) - #{s1 29966}# + (let ((#{m1 30275}# + (car #{w 28933}#)) + (#{s1 30276}# + (cdr #{w 28933}#))) + (if (null? #{m1 30275}#) + (if (null? #{s1 30276}#) + #{w2 30274}# + (cons (car #{w2 30274}#) + (let ((#{m2 30291}# + (cdr #{w2 30274}#))) + (if (null? #{m2 30291}#) + #{s1 30276}# (append - #{s1 29966}# - #{m2 29981}#))))) - (cons (let ((#{m2 29989}# - (car #{w2 29964}#))) - (if (null? #{m2 29989}#) - #{m1 29965}# + #{s1 30276}# + #{m2 30291}#))))) + (cons (let ((#{m2 30299}# + (car #{w2 30274}#))) + (if (null? #{m2 30299}#) + #{m1 30275}# (append - #{m1 29965}# - #{m2 29989}#))) - (let ((#{m2 29997}# - (cdr #{w2 29964}#))) - (if (null? #{m2 29997}#) - #{s1 29966}# + #{m1 30275}# + #{m2 30299}#))) + (let ((#{m2 30307}# + (cdr #{w2 30274}#))) + (if (null? #{m2 30307}#) + #{s1 30276}# (append - #{s1 29966}# - #{m2 29997}#)))))))) - (#{module 29957}# + #{s1 30276}# + #{m2 30307}#)))))))) + (#{module 30267}# (vector-ref - #{x 29923}# + #{x 30233}# 3))) (vector 'syntax-object - #{expression 29955}# - #{wrap 29956}# - #{module 29957}#)) - (if (null? #{x 29923}#) - #{x 29923}# + #{expression 30265}# + #{wrap 30266}# + #{module 30267}#)) + (if (null? #{x 30233}#) + #{x 30233}# (vector 'syntax-object - #{x 29923}# - #{w 28623}# - #{mod 28625}#)))))) - (cdr #{body 28406}#)))) + #{x 30233}# + #{w 28933}# + #{mod 28935}#)))))) + (cdr #{body 28716}#)))) (begin - (if (not (#{valid-bound-ids? 4436}# - #{ids 28407}#)) + (if (not (#{valid-bound-ids? 4433}# + #{ids 28717}#)) (syntax-violation #f "invalid or duplicate identifier in definition" - #{outer-form 28291}#)) + #{outer-form 28601}#)) (letrec* - ((#{loop 30096}# - (lambda (#{bs 30099}# - #{er-cache 30100}# - #{r-cache 30101}#) - (if (not (null? #{bs 30099}#)) - (let ((#{b 30102}# - (car #{bs 30099}#))) - (if (let ((#{t 30105}# - (car #{b 30102}#))) - (if (eq? #{t 30105}# + ((#{loop 30406}# + (lambda (#{bs 30409}# + #{er-cache 30410}# + #{r-cache 30411}#) + (if (not (null? #{bs 30409}#)) + (let ((#{b 30412}# + (car #{bs 30409}#))) + (if (let ((#{t 30415}# + (car #{b 30412}#))) + (if (eq? #{t 30415}# 'macro) #t - (eq? #{t 30105}# + (eq? #{t 30415}# 'syntax-parameter))) - (let ((#{er 30107}# - (car (cdr #{b 30102}#)))) - (let ((#{r-cache 30108}# - (if (eq? #{er 30107}# - #{er-cache 30100}#) - #{r-cache 30101}# - (#{macros-only-env 4410}# - #{er 30107}#)))) + (let ((#{er 30417}# + (car (cdr #{b 30412}#)))) + (let ((#{r-cache 30418}# + (if (eq? #{er 30417}# + #{er-cache 30410}#) + #{r-cache 30411}# + (#{macros-only-env 4407}# + #{er 30417}#)))) (begin (set-cdr! - #{b 30102}# - (#{eval-local-transformer 4452}# - (#{chi 4446}# - (cdr (cdr #{b 30102}#)) - #{r-cache 30108}# + #{b 30412}# + (#{eval-local-transformer 4449}# + (#{expand 4443}# + (cdr (cdr #{b 30412}#)) + #{r-cache 30418}# '(()) - #{mod 28625}#) - #{mod 28625}#)) - (if (eq? (car #{b 30102}#) + #{mod 28935}#) + #{mod 28935}#)) + (if (eq? (car #{b 30412}#) 'syntax-parameter) (set-cdr! - #{b 30102}# - (list (cdr #{b 30102}#)))) - (#{loop 30096}# - (cdr #{bs 30099}#) - #{er 30107}# - #{r-cache 30108}#)))) - (#{loop 30096}# - (cdr #{bs 30099}#) - #{er-cache 30100}# - #{r-cache 30101}#))))))) - (#{loop 30096}# - #{bindings 28412}# + #{b 30412}# + (list (cdr #{b 30412}#)))) + (#{loop 30406}# + (cdr #{bs 30409}#) + #{er 30417}# + #{r-cache 30418}#)))) + (#{loop 30406}# + (cdr #{bs 30409}#) + #{er-cache 30410}# + #{r-cache 30411}#))))))) + (#{loop 30406}# + #{bindings 28722}# #f #f)) (set-cdr! - #{r 28295}# - (#{extend-env 4408}# - #{labels 28408}# - #{bindings 28412}# - (cdr #{r 28295}#))) - (#{build-letrec 4398}# + #{r 28605}# + (#{extend-env 4405}# + #{labels 28718}# + #{bindings 28722}# + (cdr #{r 28605}#))) + (#{build-letrec 4395}# #f #t (reverse (map syntax->datum - #{var-ids 28409}#)) - (reverse #{vars 28410}#) - (map (lambda (#{x 30536}#) - (#{chi 4446}# - (cdr #{x 30536}#) - (car #{x 30536}#) + #{var-ids 28719}#)) + (reverse #{vars 28720}#) + (map (lambda (#{x 30846}#) + (#{expand 4443}# + (cdr #{x 30846}#) + (car #{x 30846}#) '(()) - #{mod 28625}#)) - (reverse #{vals 28411}#)) - (#{build-sequence 4395}# + #{mod 28935}#)) + (reverse #{vals 28721}#)) + (#{build-sequence 4392}# #f - (map (lambda (#{x 30680}#) - (#{chi 4446}# - (cdr #{x 30680}#) - (car #{x 30680}#) + (map (lambda (#{x 30990}#) + (#{expand 4443}# + (cdr #{x 30990}#) + (car #{x 30990}#) '(()) - #{mod 28625}#)) - (cons (cons #{er 28414}# - (let ((#{x 30759}# + #{mod 28935}#)) + (cons (cons #{er 28724}# + (let ((#{x 31069}# (begin - (if (if (pair? #{e 28622}#) - #{s 28624}# + (if (if (pair? #{e 28932}#) + #{s 28934}# #f) (set-source-properties! - #{e 28622}# - #{s 28624}#)) - #{e 28622}#))) - (if (if (null? (car #{w 28623}#)) - (null? (cdr #{w 28623}#)) + #{e 28932}# + #{s 28934}#)) + #{e 28932}#))) + (if (if (null? (car #{w 28933}#)) + (null? (cdr #{w 28933}#)) #f) - #{x 30759}# + #{x 31069}# (if (if (vector? - #{x 30759}#) + #{x 31069}#) (if (= (vector-length - #{x 30759}#) + #{x 31069}#) 4) (eq? (vector-ref - #{x 30759}# + #{x 31069}# 0) 'syntax-object) #f) #f) - (let ((#{expression 30791}# + (let ((#{expression 31101}# (vector-ref - #{x 30759}# + #{x 31069}# 1)) - (#{wrap 30792}# - (let ((#{w2 30800}# + (#{wrap 31102}# + (let ((#{w2 31110}# (vector-ref - #{x 30759}# + #{x 31069}# 2))) - (let ((#{m1 30801}# - (car #{w 28623}#)) - (#{s1 30802}# - (cdr #{w 28623}#))) - (if (null? #{m1 30801}#) - (if (null? #{s1 30802}#) - #{w2 30800}# - (cons (car #{w2 30800}#) - (let ((#{m2 30817}# - (cdr #{w2 30800}#))) - (if (null? #{m2 30817}#) - #{s1 30802}# + (let ((#{m1 31111}# + (car #{w 28933}#)) + (#{s1 31112}# + (cdr #{w 28933}#))) + (if (null? #{m1 31111}#) + (if (null? #{s1 31112}#) + #{w2 31110}# + (cons (car #{w2 31110}#) + (let ((#{m2 31127}# + (cdr #{w2 31110}#))) + (if (null? #{m2 31127}#) + #{s1 31112}# (append - #{s1 30802}# - #{m2 30817}#))))) - (cons (let ((#{m2 30825}# - (car #{w2 30800}#))) - (if (null? #{m2 30825}#) - #{m1 30801}# + #{s1 31112}# + #{m2 31127}#))))) + (cons (let ((#{m2 31135}# + (car #{w2 31110}#))) + (if (null? #{m2 31135}#) + #{m1 31111}# (append - #{m1 30801}# - #{m2 30825}#))) - (let ((#{m2 30833}# - (cdr #{w2 30800}#))) - (if (null? #{m2 30833}#) - #{s1 30802}# + #{m1 31111}# + #{m2 31135}#))) + (let ((#{m2 31143}# + (cdr #{w2 31110}#))) + (if (null? #{m2 31143}#) + #{s1 31112}# (append - #{s1 30802}# - #{m2 30833}#)))))))) - (#{module 30793}# + #{s1 31112}# + #{m2 31143}#)))))))) + (#{module 31103}# (vector-ref - #{x 30759}# + #{x 31069}# 3))) (vector 'syntax-object - #{expression 30791}# - #{wrap 30792}# - #{module 30793}#)) - (if (null? #{x 30759}#) - #{x 30759}# + #{expression 31101}# + #{wrap 31102}# + #{module 31103}#)) + (if (null? #{x 31069}#) + #{x 31069}# (vector 'syntax-object - #{x 30759}# - #{w 28623}# - #{mod 28625}#)))))) - (cdr #{body 28406}#)))))))))))))))))) - (#{parse 28298}# - (map (lambda (#{x 28301}#) - (cons #{r 28295}# - (if (if (null? (car #{w 28297}#)) - (null? (cdr #{w 28297}#)) + #{x 31069}# + #{w 28933}# + #{mod 28935}#)))))) + (cdr #{body 28716}#)))))))))))))))))) + (#{parse 28608}# + (map (lambda (#{x 28611}#) + (cons #{r 28605}# + (if (if (null? (car #{w 28607}#)) + (null? (cdr #{w 28607}#)) #f) - #{x 28301}# - (if (if (vector? #{x 28301}#) - (if (= (vector-length #{x 28301}#) 4) - (eq? (vector-ref #{x 28301}# 0) + #{x 28611}# + (if (if (vector? #{x 28611}#) + (if (= (vector-length #{x 28611}#) 4) + (eq? (vector-ref #{x 28611}# 0) 'syntax-object) #f) #f) - (let ((#{expression 28337}# - (vector-ref #{x 28301}# 1)) - (#{wrap 28338}# - (let ((#{w2 28348}# - (vector-ref #{x 28301}# 2))) - (let ((#{m1 28349}# - (car #{w 28297}#)) - (#{s1 28350}# - (cdr #{w 28297}#))) - (if (null? #{m1 28349}#) - (if (null? #{s1 28350}#) - #{w2 28348}# - (cons (car #{w2 28348}#) - (let ((#{m2 28367}# - (cdr #{w2 28348}#))) - (if (null? #{m2 28367}#) - #{s1 28350}# + (let ((#{expression 28647}# + (vector-ref #{x 28611}# 1)) + (#{wrap 28648}# + (let ((#{w2 28658}# + (vector-ref #{x 28611}# 2))) + (let ((#{m1 28659}# + (car #{w 28607}#)) + (#{s1 28660}# + (cdr #{w 28607}#))) + (if (null? #{m1 28659}#) + (if (null? #{s1 28660}#) + #{w2 28658}# + (cons (car #{w2 28658}#) + (let ((#{m2 28677}# + (cdr #{w2 28658}#))) + (if (null? #{m2 28677}#) + #{s1 28660}# (append - #{s1 28350}# - #{m2 28367}#))))) - (cons (let ((#{m2 28375}# - (car #{w2 28348}#))) - (if (null? #{m2 28375}#) - #{m1 28349}# + #{s1 28660}# + #{m2 28677}#))))) + (cons (let ((#{m2 28685}# + (car #{w2 28658}#))) + (if (null? #{m2 28685}#) + #{m1 28659}# (append - #{m1 28349}# - #{m2 28375}#))) - (let ((#{m2 28383}# - (cdr #{w2 28348}#))) - (if (null? #{m2 28383}#) - #{s1 28350}# + #{m1 28659}# + #{m2 28685}#))) + (let ((#{m2 28693}# + (cdr #{w2 28658}#))) + (if (null? #{m2 28693}#) + #{s1 28660}# (append - #{s1 28350}# - #{m2 28383}#)))))))) - (#{module 28339}# - (vector-ref #{x 28301}# 3))) + #{s1 28660}# + #{m2 28693}#)))))))) + (#{module 28649}# + (vector-ref #{x 28611}# 3))) (vector 'syntax-object - #{expression 28337}# - #{wrap 28338}# - #{module 28339}#)) - (if (null? #{x 28301}#) - #{x 28301}# + #{expression 28647}# + #{wrap 28648}# + #{module 28649}#)) + (if (null? #{x 28611}#) + #{x 28611}# (vector 'syntax-object - #{x 28301}# - #{w 28297}# - #{mod 28294}#)))))) - #{body 28290}#) + #{x 28611}# + #{w 28607}# + #{mod 28604}#)))))) + #{body 28600}#) '() '() '() '() '() '()))))))) - (#{chi-local-syntax 4451}# - (lambda (#{rec? 30848}# - #{e 30849}# - #{r 30850}# - #{w 30851}# - #{s 30852}# - #{mod 30853}# - #{k 30854}#) - (let ((#{tmp 30856}# + (#{expand-local-syntax 4448}# + (lambda (#{rec? 31158}# + #{e 31159}# + #{r 31160}# + #{w 31161}# + #{s 31162}# + #{mod 31163}# + #{k 31164}#) + (let ((#{tmp 31166}# ($sc-dispatch - #{e 30849}# + #{e 31159}# '(_ #(each (any any)) any . each-any)))) - (if #{tmp 30856}# + (if #{tmp 31166}# (@apply - (lambda (#{id 30860}# - #{val 30861}# - #{e1 30862}# - #{e2 30863}#) - (if (not (#{valid-bound-ids? 4436}# #{id 30860}#)) + (lambda (#{id 31170}# + #{val 31171}# + #{e1 31172}# + #{e2 31173}#) + (if (not (#{valid-bound-ids? 4433}# #{id 31170}#)) (syntax-violation #f "duplicate bound keyword" - #{e 30849}#) - (let ((#{labels 30960}# - (#{gen-labels 4416}# #{id 30860}#))) - (let ((#{new-w 30961}# - (#{make-binding-wrap 4427}# - #{id 30860}# - #{labels 30960}# - #{w 30851}#))) - (#{k 30854}# - (cons #{e1 30862}# #{e2 30863}#) - (#{extend-env 4408}# - #{labels 30960}# - (let ((#{trans-r 31001}# - (#{macros-only-env 4410}# #{r 30850}#))) + #{e 31159}#) + (let ((#{labels 31270}# + (#{gen-labels 4413}# #{id 31170}#))) + (let ((#{new-w 31271}# + (#{make-binding-wrap 4424}# + #{id 31170}# + #{labels 31270}# + #{w 31161}#))) + (#{k 31164}# + (cons #{e1 31172}# #{e2 31173}#) + (#{extend-env 4405}# + #{labels 31270}# + (let ((#{trans-r 31311}# + (#{macros-only-env 4407}# #{r 31160}#))) (begin - (if #{rec? 30848}# (if #f #f)) - (map (lambda (#{x 31002}#) + (if #{rec? 31158}# (if #f #f)) + (map (lambda (#{x 31312}#) (cons 'macro - (#{eval-local-transformer 4452}# - (#{chi 4446}# - #{x 31002}# - #{trans-r 31001}# - (if #{rec? 30848}# - #{new-w 30961}# - #{w 30851}#) - #{mod 30853}#) - #{mod 30853}#))) - #{val 30861}#))) - #{r 30850}#) - #{new-w 30961}# - #{s 30852}# - #{mod 30853}#))))) - #{tmp 30856}#) + (#{eval-local-transformer 4449}# + (#{expand 4443}# + #{x 31312}# + #{trans-r 31311}# + (if #{rec? 31158}# + #{new-w 31271}# + #{w 31161}#) + #{mod 31163}#) + #{mod 31163}#))) + #{val 31171}#))) + #{r 31160}#) + #{new-w 31271}# + #{s 31162}# + #{mod 31163}#))))) + #{tmp 31166}#) (syntax-violation #f "bad local syntax definition" - (let ((#{x 31335}# + (let ((#{x 31645}# (begin - (if (if (pair? #{e 30849}#) #{s 30852}# #f) - (set-source-properties! #{e 30849}# #{s 30852}#)) - #{e 30849}#))) - (if (if (null? (car #{w 30851}#)) - (null? (cdr #{w 30851}#)) + (if (if (pair? #{e 31159}#) #{s 31162}# #f) + (set-source-properties! #{e 31159}# #{s 31162}#)) + #{e 31159}#))) + (if (if (null? (car #{w 31161}#)) + (null? (cdr #{w 31161}#)) #f) - #{x 31335}# - (if (if (vector? #{x 31335}#) - (if (= (vector-length #{x 31335}#) 4) - (eq? (vector-ref #{x 31335}# 0) 'syntax-object) + #{x 31645}# + (if (if (vector? #{x 31645}#) + (if (= (vector-length #{x 31645}#) 4) + (eq? (vector-ref #{x 31645}# 0) 'syntax-object) #f) #f) - (let ((#{expression 31367}# (vector-ref #{x 31335}# 1)) - (#{wrap 31368}# - (let ((#{w2 31376}# (vector-ref #{x 31335}# 2))) - (let ((#{m1 31377}# (car #{w 30851}#)) - (#{s1 31378}# (cdr #{w 30851}#))) - (if (null? #{m1 31377}#) - (if (null? #{s1 31378}#) - #{w2 31376}# - (cons (car #{w2 31376}#) - (let ((#{m2 31393}# - (cdr #{w2 31376}#))) - (if (null? #{m2 31393}#) - #{s1 31378}# + (let ((#{expression 31677}# (vector-ref #{x 31645}# 1)) + (#{wrap 31678}# + (let ((#{w2 31686}# (vector-ref #{x 31645}# 2))) + (let ((#{m1 31687}# (car #{w 31161}#)) + (#{s1 31688}# (cdr #{w 31161}#))) + (if (null? #{m1 31687}#) + (if (null? #{s1 31688}#) + #{w2 31686}# + (cons (car #{w2 31686}#) + (let ((#{m2 31703}# + (cdr #{w2 31686}#))) + (if (null? #{m2 31703}#) + #{s1 31688}# (append - #{s1 31378}# - #{m2 31393}#))))) - (cons (let ((#{m2 31401}# (car #{w2 31376}#))) - (if (null? #{m2 31401}#) - #{m1 31377}# - (append #{m1 31377}# #{m2 31401}#))) - (let ((#{m2 31409}# (cdr #{w2 31376}#))) - (if (null? #{m2 31409}#) - #{s1 31378}# + #{s1 31688}# + #{m2 31703}#))))) + (cons (let ((#{m2 31711}# (car #{w2 31686}#))) + (if (null? #{m2 31711}#) + #{m1 31687}# + (append #{m1 31687}# #{m2 31711}#))) + (let ((#{m2 31719}# (cdr #{w2 31686}#))) + (if (null? #{m2 31719}#) + #{s1 31688}# (append - #{s1 31378}# - #{m2 31409}#)))))))) - (#{module 31369}# (vector-ref #{x 31335}# 3))) + #{s1 31688}# + #{m2 31719}#)))))))) + (#{module 31679}# (vector-ref #{x 31645}# 3))) (vector 'syntax-object - #{expression 31367}# - #{wrap 31368}# - #{module 31369}#)) - (if (null? #{x 31335}#) - #{x 31335}# + #{expression 31677}# + #{wrap 31678}# + #{module 31679}#)) + (if (null? #{x 31645}#) + #{x 31645}# (vector 'syntax-object - #{x 31335}# - #{w 30851}# - #{mod 30853}#)))))))))) - (#{eval-local-transformer 4452}# - (lambda (#{expanded 31427}# #{mod 31428}#) - (let ((#{p 31429}# (primitive-eval #{expanded 31427}#))) - (if (procedure? #{p 31429}#) - #{p 31429}# + #{x 31645}# + #{w 31161}# + #{mod 31163}#)))))))))) + (#{eval-local-transformer 4449}# + (lambda (#{expanded 31737}# #{mod 31738}#) + (let ((#{p 31739}# (primitive-eval #{expanded 31737}#))) + (if (procedure? #{p 31739}#) + #{p 31739}# (syntax-violation #f "nonprocedure transformer" - #{p 31429}#))))) - (#{ellipsis? 4454}# - (lambda (#{x 6023}#) - (if (if (if (vector? #{x 6023}#) - (if (= (vector-length #{x 6023}#) 4) - (eq? (vector-ref #{x 6023}# 0) 'syntax-object) + #{p 31739}#))))) + (#{ellipsis? 4451}# + (lambda (#{x 6020}#) + (if (if (if (vector? #{x 6020}#) + (if (= (vector-length #{x 6020}#) 4) + (eq? (vector-ref #{x 6020}# 0) 'syntax-object) #f) #f) - (symbol? (vector-ref #{x 6023}# 1)) + (symbol? (vector-ref #{x 6020}# 1)) #f) - (#{free-id=? 4434}# - #{x 6023}# + (#{free-id=? 4431}# + #{x 6020}# '#(syntax-object ... ((top) #(ribcage () () ()) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i2341")) + #(ribcage #(x) #((top)) #("i2338")) #(ribcage (lambda-var-list gen-var strip - chi-lambda-case + expand-lambda-case lambda*-formals - chi-simple-lambda + expand-simple-lambda lambda-formals ellipsis? - chi-void + expand-void eval-local-transformer - chi-local-syntax - chi-body - chi-macro - chi-call - chi-expr - chi + expand-local-syntax + expand-body + expand-macro + expand-call + expand-expr + expand syntax-type - chi-when-list - chi-install-global - chi-top-sequence - chi-sequence + parse-when-list + expand-install-global + expand-top-sequence + expand-sequence source-wrap wrap bound-id-member? @@ -6703,372 +6639,372 @@ #(ribcage () () ())) (hygiene guile))) #f))) - (#{lambda-formals 4455}# - (lambda (#{orig-args 31434}#) + (#{lambda-formals 4452}# + (lambda (#{orig-args 31744}#) (letrec* - ((#{req 31435}# - (lambda (#{args 31439}# #{rreq 31440}#) - (let ((#{tmp 31442}# ($sc-dispatch #{args 31439}# '()))) - (if #{tmp 31442}# + ((#{req 31745}# + (lambda (#{args 31749}# #{rreq 31750}#) + (let ((#{tmp 31752}# ($sc-dispatch #{args 31749}# '()))) + (if #{tmp 31752}# (@apply (lambda () - (#{check 31436}# (reverse #{rreq 31440}#) #f)) - #{tmp 31442}#) - (let ((#{tmp 31558}# - ($sc-dispatch #{args 31439}# '(any . any)))) - (if (if #{tmp 31558}# + (#{check 31746}# (reverse #{rreq 31750}#) #f)) + #{tmp 31752}#) + (let ((#{tmp 31868}# + ($sc-dispatch #{args 31749}# '(any . any)))) + (if (if #{tmp 31868}# (@apply - (lambda (#{a 31562}# #{b 31563}#) - (if (symbol? #{a 31562}#) + (lambda (#{a 31872}# #{b 31873}#) + (if (symbol? #{a 31872}#) #t - (if (if (vector? #{a 31562}#) - (if (= (vector-length #{a 31562}#) 4) - (eq? (vector-ref #{a 31562}# 0) + (if (if (vector? #{a 31872}#) + (if (= (vector-length #{a 31872}#) 4) + (eq? (vector-ref #{a 31872}# 0) 'syntax-object) #f) #f) - (symbol? (vector-ref #{a 31562}# 1)) + (symbol? (vector-ref #{a 31872}# 1)) #f))) - #{tmp 31558}#) + #{tmp 31868}#) #f) (@apply - (lambda (#{a 31590}# #{b 31591}#) - (#{req 31435}# - #{b 31591}# - (cons #{a 31590}# #{rreq 31440}#))) - #{tmp 31558}#) - (let ((#{tmp 31592}# (list #{args 31439}#))) + (lambda (#{a 31900}# #{b 31901}#) + (#{req 31745}# + #{b 31901}# + (cons #{a 31900}# #{rreq 31750}#))) + #{tmp 31868}#) + (let ((#{tmp 31902}# (list #{args 31749}#))) (if (@apply - (lambda (#{r 31594}#) - (if (symbol? #{r 31594}#) + (lambda (#{r 31904}#) + (if (symbol? #{r 31904}#) #t - (if (if (vector? #{r 31594}#) - (if (= (vector-length #{r 31594}#) 4) - (eq? (vector-ref #{r 31594}# 0) + (if (if (vector? #{r 31904}#) + (if (= (vector-length #{r 31904}#) 4) + (eq? (vector-ref #{r 31904}# 0) 'syntax-object) #f) #f) - (symbol? (vector-ref #{r 31594}# 1)) + (symbol? (vector-ref #{r 31904}# 1)) #f))) - #{tmp 31592}#) + #{tmp 31902}#) (@apply - (lambda (#{r 31624}#) - (#{check 31436}# - (reverse #{rreq 31440}#) - #{r 31624}#)) - #{tmp 31592}#) + (lambda (#{r 31934}#) + (#{check 31746}# + (reverse #{rreq 31750}#) + #{r 31934}#)) + #{tmp 31902}#) (syntax-violation 'lambda "invalid argument list" - #{orig-args 31434}# - #{args 31439}#))))))))) - (#{check 31436}# - (lambda (#{req 31748}# #{rest 31749}#) - (if (#{distinct-bound-ids? 4437}# - (if #{rest 31749}# - (cons #{rest 31749}# #{req 31748}#) - #{req 31748}#)) - (values #{req 31748}# #f #{rest 31749}# #f) + #{orig-args 31744}# + #{args 31749}#))))))))) + (#{check 31746}# + (lambda (#{req 32058}# #{rest 32059}#) + (if (#{distinct-bound-ids? 4434}# + (if #{rest 32059}# + (cons #{rest 32059}# #{req 32058}#) + #{req 32058}#)) + (values #{req 32058}# #f #{rest 32059}# #f) (syntax-violation 'lambda "duplicate identifier in argument list" - #{orig-args 31434}#))))) - (#{req 31435}# #{orig-args 31434}# '())))) - (#{chi-simple-lambda 4456}# - (lambda (#{e 31858}# - #{r 31859}# - #{w 31860}# - #{s 31861}# - #{mod 31862}# - #{req 31863}# - #{rest 31864}# - #{meta 31865}# - #{body 31866}#) - (let ((#{ids 31867}# - (if #{rest 31864}# - (append #{req 31863}# (list #{rest 31864}#)) - #{req 31863}#))) - (let ((#{vars 31868}# - (map #{gen-var 4460}# #{ids 31867}#))) - (let ((#{labels 31869}# - (#{gen-labels 4416}# #{ids 31867}#))) - (#{build-simple-lambda 4389}# - #{s 31861}# - (map syntax->datum #{req 31863}#) - (if #{rest 31864}# - (syntax->datum #{rest 31864}#) + #{orig-args 31744}#))))) + (#{req 31745}# #{orig-args 31744}# '())))) + (#{expand-simple-lambda 4453}# + (lambda (#{e 32168}# + #{r 32169}# + #{w 32170}# + #{s 32171}# + #{mod 32172}# + #{req 32173}# + #{rest 32174}# + #{meta 32175}# + #{body 32176}#) + (let ((#{ids 32177}# + (if #{rest 32174}# + (append #{req 32173}# (list #{rest 32174}#)) + #{req 32173}#))) + (let ((#{vars 32178}# + (map #{gen-var 4457}# #{ids 32177}#))) + (let ((#{labels 32179}# + (#{gen-labels 4413}# #{ids 32177}#))) + (#{build-simple-lambda 4386}# + #{s 32171}# + (map syntax->datum #{req 32173}#) + (if #{rest 32174}# + (syntax->datum #{rest 32174}#) #f) - #{vars 31868}# - #{meta 31865}# - (#{chi-body 4450}# - #{body 31866}# - (let ((#{x 32058}# + #{vars 32178}# + #{meta 32175}# + (#{expand-body 4447}# + #{body 32176}# + (let ((#{x 32368}# (begin - (if (if (pair? #{e 31858}#) #{s 31861}# #f) - (set-source-properties! #{e 31858}# #{s 31861}#)) - #{e 31858}#))) - (if (if (null? (car #{w 31860}#)) - (null? (cdr #{w 31860}#)) + (if (if (pair? #{e 32168}#) #{s 32171}# #f) + (set-source-properties! #{e 32168}# #{s 32171}#)) + #{e 32168}#))) + (if (if (null? (car #{w 32170}#)) + (null? (cdr #{w 32170}#)) #f) - #{x 32058}# - (if (if (vector? #{x 32058}#) - (if (= (vector-length #{x 32058}#) 4) - (eq? (vector-ref #{x 32058}# 0) 'syntax-object) + #{x 32368}# + (if (if (vector? #{x 32368}#) + (if (= (vector-length #{x 32368}#) 4) + (eq? (vector-ref #{x 32368}# 0) 'syntax-object) #f) #f) - (let ((#{expression 32090}# (vector-ref #{x 32058}# 1)) - (#{wrap 32091}# - (let ((#{w2 32099}# (vector-ref #{x 32058}# 2))) - (let ((#{m1 32100}# (car #{w 31860}#)) - (#{s1 32101}# (cdr #{w 31860}#))) - (if (null? #{m1 32100}#) - (if (null? #{s1 32101}#) - #{w2 32099}# - (cons (car #{w2 32099}#) - (let ((#{m2 32116}# - (cdr #{w2 32099}#))) - (if (null? #{m2 32116}#) - #{s1 32101}# + (let ((#{expression 32400}# (vector-ref #{x 32368}# 1)) + (#{wrap 32401}# + (let ((#{w2 32409}# (vector-ref #{x 32368}# 2))) + (let ((#{m1 32410}# (car #{w 32170}#)) + (#{s1 32411}# (cdr #{w 32170}#))) + (if (null? #{m1 32410}#) + (if (null? #{s1 32411}#) + #{w2 32409}# + (cons (car #{w2 32409}#) + (let ((#{m2 32426}# + (cdr #{w2 32409}#))) + (if (null? #{m2 32426}#) + #{s1 32411}# (append - #{s1 32101}# - #{m2 32116}#))))) - (cons (let ((#{m2 32124}# - (car #{w2 32099}#))) - (if (null? #{m2 32124}#) - #{m1 32100}# + #{s1 32411}# + #{m2 32426}#))))) + (cons (let ((#{m2 32434}# + (car #{w2 32409}#))) + (if (null? #{m2 32434}#) + #{m1 32410}# (append - #{m1 32100}# - #{m2 32124}#))) - (let ((#{m2 32132}# - (cdr #{w2 32099}#))) - (if (null? #{m2 32132}#) - #{s1 32101}# + #{m1 32410}# + #{m2 32434}#))) + (let ((#{m2 32442}# + (cdr #{w2 32409}#))) + (if (null? #{m2 32442}#) + #{s1 32411}# (append - #{s1 32101}# - #{m2 32132}#)))))))) - (#{module 32092}# (vector-ref #{x 32058}# 3))) + #{s1 32411}# + #{m2 32442}#)))))))) + (#{module 32402}# (vector-ref #{x 32368}# 3))) (vector 'syntax-object - #{expression 32090}# - #{wrap 32091}# - #{module 32092}#)) - (if (null? #{x 32058}#) - #{x 32058}# + #{expression 32400}# + #{wrap 32401}# + #{module 32402}#)) + (if (null? #{x 32368}#) + #{x 32368}# (vector 'syntax-object - #{x 32058}# - #{w 31860}# - #{mod 31862}#))))) - (#{extend-var-env 4409}# - #{labels 31869}# - #{vars 31868}# - #{r 31859}#) - (#{make-binding-wrap 4427}# - #{ids 31867}# - #{labels 31869}# - #{w 31860}#) - #{mod 31862}#))))))) - (#{lambda*-formals 4457}# - (lambda (#{orig-args 32363}#) + #{x 32368}# + #{w 32170}# + #{mod 32172}#))))) + (#{extend-var-env 4406}# + #{labels 32179}# + #{vars 32178}# + #{r 32169}#) + (#{make-binding-wrap 4424}# + #{ids 32177}# + #{labels 32179}# + #{w 32170}#) + #{mod 32172}#))))))) + (#{lambda*-formals 4454}# + (lambda (#{orig-args 32673}#) (letrec* - ((#{req 32364}# - (lambda (#{args 32371}# #{rreq 32372}#) - (let ((#{tmp 32374}# ($sc-dispatch #{args 32371}# '()))) - (if #{tmp 32374}# + ((#{req 32674}# + (lambda (#{args 32681}# #{rreq 32682}#) + (let ((#{tmp 32684}# ($sc-dispatch #{args 32681}# '()))) + (if #{tmp 32684}# (@apply (lambda () - (#{check 32368}# - (reverse #{rreq 32372}#) + (#{check 32678}# + (reverse #{rreq 32682}#) '() #f '())) - #{tmp 32374}#) - (let ((#{tmp 32493}# - ($sc-dispatch #{args 32371}# '(any . any)))) - (if (if #{tmp 32493}# + #{tmp 32684}#) + (let ((#{tmp 32803}# + ($sc-dispatch #{args 32681}# '(any . any)))) + (if (if #{tmp 32803}# (@apply - (lambda (#{a 32497}# #{b 32498}#) - (if (symbol? #{a 32497}#) + (lambda (#{a 32807}# #{b 32808}#) + (if (symbol? #{a 32807}#) #t - (if (if (vector? #{a 32497}#) - (if (= (vector-length #{a 32497}#) 4) - (eq? (vector-ref #{a 32497}# 0) + (if (if (vector? #{a 32807}#) + (if (= (vector-length #{a 32807}#) 4) + (eq? (vector-ref #{a 32807}# 0) 'syntax-object) #f) #f) - (symbol? (vector-ref #{a 32497}# 1)) + (symbol? (vector-ref #{a 32807}# 1)) #f))) - #{tmp 32493}#) + #{tmp 32803}#) #f) (@apply - (lambda (#{a 32525}# #{b 32526}#) - (#{req 32364}# - #{b 32526}# - (cons #{a 32525}# #{rreq 32372}#))) - #{tmp 32493}#) - (let ((#{tmp 32527}# - ($sc-dispatch #{args 32371}# '(any . any)))) - (if (if #{tmp 32527}# + (lambda (#{a 32835}# #{b 32836}#) + (#{req 32674}# + #{b 32836}# + (cons #{a 32835}# #{rreq 32682}#))) + #{tmp 32803}#) + (let ((#{tmp 32837}# + ($sc-dispatch #{args 32681}# '(any . any)))) + (if (if #{tmp 32837}# (@apply - (lambda (#{a 32531}# #{b 32532}#) - (eq? (syntax->datum #{a 32531}#) #:optional)) - #{tmp 32527}#) + (lambda (#{a 32841}# #{b 32842}#) + (eq? (syntax->datum #{a 32841}#) #:optional)) + #{tmp 32837}#) #f) (@apply - (lambda (#{a 32533}# #{b 32534}#) - (#{opt 32365}# - #{b 32534}# - (reverse #{rreq 32372}#) + (lambda (#{a 32843}# #{b 32844}#) + (#{opt 32675}# + #{b 32844}# + (reverse #{rreq 32682}#) '())) - #{tmp 32527}#) - (let ((#{tmp 32537}# - ($sc-dispatch #{args 32371}# '(any . any)))) - (if (if #{tmp 32537}# + #{tmp 32837}#) + (let ((#{tmp 32847}# + ($sc-dispatch #{args 32681}# '(any . any)))) + (if (if #{tmp 32847}# (@apply - (lambda (#{a 32541}# #{b 32542}#) - (eq? (syntax->datum #{a 32541}#) #:key)) - #{tmp 32537}#) + (lambda (#{a 32851}# #{b 32852}#) + (eq? (syntax->datum #{a 32851}#) #:key)) + #{tmp 32847}#) #f) (@apply - (lambda (#{a 32543}# #{b 32544}#) - (#{key 32366}# - #{b 32544}# - (reverse #{rreq 32372}#) + (lambda (#{a 32853}# #{b 32854}#) + (#{key 32676}# + #{b 32854}# + (reverse #{rreq 32682}#) '() '())) - #{tmp 32537}#) - (let ((#{tmp 32547}# + #{tmp 32847}#) + (let ((#{tmp 32857}# ($sc-dispatch - #{args 32371}# + #{args 32681}# '(any any)))) - (if (if #{tmp 32547}# + (if (if #{tmp 32857}# (@apply - (lambda (#{a 32551}# #{b 32552}#) - (eq? (syntax->datum #{a 32551}#) + (lambda (#{a 32861}# #{b 32862}#) + (eq? (syntax->datum #{a 32861}#) #:rest)) - #{tmp 32547}#) + #{tmp 32857}#) #f) (@apply - (lambda (#{a 32553}# #{b 32554}#) - (#{rest 32367}# - #{b 32554}# - (reverse #{rreq 32372}#) + (lambda (#{a 32863}# #{b 32864}#) + (#{rest 32677}# + #{b 32864}# + (reverse #{rreq 32682}#) '() '())) - #{tmp 32547}#) - (let ((#{tmp 32557}# (list #{args 32371}#))) + #{tmp 32857}#) + (let ((#{tmp 32867}# (list #{args 32681}#))) (if (@apply - (lambda (#{r 32559}#) - (if (symbol? #{r 32559}#) + (lambda (#{r 32869}#) + (if (symbol? #{r 32869}#) #t - (if (if (vector? #{r 32559}#) + (if (if (vector? #{r 32869}#) (if (= (vector-length - #{r 32559}#) + #{r 32869}#) 4) (eq? (vector-ref - #{r 32559}# + #{r 32869}# 0) 'syntax-object) #f) #f) (symbol? - (vector-ref #{r 32559}# 1)) + (vector-ref #{r 32869}# 1)) #f))) - #{tmp 32557}#) + #{tmp 32867}#) (@apply - (lambda (#{r 32589}#) - (#{rest 32367}# - #{r 32589}# - (reverse #{rreq 32372}#) + (lambda (#{r 32899}#) + (#{rest 32677}# + #{r 32899}# + (reverse #{rreq 32682}#) '() '())) - #{tmp 32557}#) + #{tmp 32867}#) (syntax-violation 'lambda* "invalid argument list" - #{orig-args 32363}# - #{args 32371}#))))))))))))))) - (#{opt 32365}# - (lambda (#{args 32608}# #{req 32609}# #{ropt 32610}#) - (let ((#{tmp 32612}# ($sc-dispatch #{args 32608}# '()))) - (if #{tmp 32612}# + #{orig-args 32673}# + #{args 32681}#))))))))))))))) + (#{opt 32675}# + (lambda (#{args 32918}# #{req 32919}# #{ropt 32920}#) + (let ((#{tmp 32922}# ($sc-dispatch #{args 32918}# '()))) + (if #{tmp 32922}# (@apply (lambda () - (#{check 32368}# - #{req 32609}# - (reverse #{ropt 32610}#) + (#{check 32678}# + #{req 32919}# + (reverse #{ropt 32920}#) #f '())) - #{tmp 32612}#) - (let ((#{tmp 32733}# - ($sc-dispatch #{args 32608}# '(any . any)))) - (if (if #{tmp 32733}# + #{tmp 32922}#) + (let ((#{tmp 33043}# + ($sc-dispatch #{args 32918}# '(any . any)))) + (if (if #{tmp 33043}# (@apply - (lambda (#{a 32737}# #{b 32738}#) - (if (symbol? #{a 32737}#) + (lambda (#{a 33047}# #{b 33048}#) + (if (symbol? #{a 33047}#) #t - (if (if (vector? #{a 32737}#) - (if (= (vector-length #{a 32737}#) 4) - (eq? (vector-ref #{a 32737}# 0) + (if (if (vector? #{a 33047}#) + (if (= (vector-length #{a 33047}#) 4) + (eq? (vector-ref #{a 33047}# 0) 'syntax-object) #f) #f) - (symbol? (vector-ref #{a 32737}# 1)) + (symbol? (vector-ref #{a 33047}# 1)) #f))) - #{tmp 32733}#) + #{tmp 33043}#) #f) (@apply - (lambda (#{a 32765}# #{b 32766}#) - (#{opt 32365}# - #{b 32766}# - #{req 32609}# - (cons (cons #{a 32765}# + (lambda (#{a 33075}# #{b 33076}#) + (#{opt 32675}# + #{b 33076}# + #{req 32919}# + (cons (cons #{a 33075}# '(#(syntax-object #f ((top) #(ribcage #(a b) #((top) (top)) - #("i2480" "i2481")) + #("i2477" "i2478")) #(ribcage () () ()) #(ribcage #(args req ropt) #((top) (top) (top)) - #("i2470" "i2471" "i2472")) + #("i2467" "i2468" "i2469")) #(ribcage (check rest key opt req) ((top) (top) (top) (top) (top)) - ("i2416" - "i2414" - "i2412" - "i2410" - "i2408")) + ("i2413" + "i2411" + "i2409" + "i2407" + "i2405")) #(ribcage #(orig-args) #((top)) - #("i2407")) + #("i2404")) #(ribcage (lambda-var-list gen-var strip - chi-lambda-case + expand-lambda-case lambda*-formals - chi-simple-lambda + expand-simple-lambda lambda-formals ellipsis? - chi-void + expand-void eval-local-transformer - chi-local-syntax - chi-body - chi-macro - chi-call - chi-expr - chi + expand-local-syntax + expand-body + expand-macro + expand-call + expand-expr + expand syntax-type - chi-when-list - chi-install-global - chi-top-sequence - chi-sequence + parse-when-list + expand-install-global + expand-top-sequence + expand-sequence source-wrap wrap bound-id-member? @@ -7470,147 +7406,147 @@ ("i46" "i45" "i44")) #(ribcage () () ())) (hygiene guile)))) - #{ropt 32610}#))) - #{tmp 32733}#) - (let ((#{tmp 32767}# + #{ropt 32920}#))) + #{tmp 33043}#) + (let ((#{tmp 33077}# ($sc-dispatch - #{args 32608}# + #{args 32918}# '((any any) . any)))) - (if (if #{tmp 32767}# + (if (if #{tmp 33077}# (@apply - (lambda (#{a 32771}# - #{init 32772}# - #{b 32773}#) - (if (symbol? #{a 32771}#) + (lambda (#{a 33081}# + #{init 33082}# + #{b 33083}#) + (if (symbol? #{a 33081}#) #t - (if (if (vector? #{a 32771}#) - (if (= (vector-length #{a 32771}#) 4) - (eq? (vector-ref #{a 32771}# 0) + (if (if (vector? #{a 33081}#) + (if (= (vector-length #{a 33081}#) 4) + (eq? (vector-ref #{a 33081}# 0) 'syntax-object) #f) #f) - (symbol? (vector-ref #{a 32771}# 1)) + (symbol? (vector-ref #{a 33081}# 1)) #f))) - #{tmp 32767}#) + #{tmp 33077}#) #f) (@apply - (lambda (#{a 32800}# #{init 32801}# #{b 32802}#) - (#{opt 32365}# - #{b 32802}# - #{req 32609}# - (cons (list #{a 32800}# #{init 32801}#) - #{ropt 32610}#))) - #{tmp 32767}#) - (let ((#{tmp 32803}# - ($sc-dispatch #{args 32608}# '(any . any)))) - (if (if #{tmp 32803}# + (lambda (#{a 33110}# #{init 33111}# #{b 33112}#) + (#{opt 32675}# + #{b 33112}# + #{req 32919}# + (cons (list #{a 33110}# #{init 33111}#) + #{ropt 32920}#))) + #{tmp 33077}#) + (let ((#{tmp 33113}# + ($sc-dispatch #{args 32918}# '(any . any)))) + (if (if #{tmp 33113}# (@apply - (lambda (#{a 32807}# #{b 32808}#) - (eq? (syntax->datum #{a 32807}#) #:key)) - #{tmp 32803}#) + (lambda (#{a 33117}# #{b 33118}#) + (eq? (syntax->datum #{a 33117}#) #:key)) + #{tmp 33113}#) #f) (@apply - (lambda (#{a 32809}# #{b 32810}#) - (#{key 32366}# - #{b 32810}# - #{req 32609}# - (reverse #{ropt 32610}#) + (lambda (#{a 33119}# #{b 33120}#) + (#{key 32676}# + #{b 33120}# + #{req 32919}# + (reverse #{ropt 32920}#) '())) - #{tmp 32803}#) - (let ((#{tmp 32813}# + #{tmp 33113}#) + (let ((#{tmp 33123}# ($sc-dispatch - #{args 32608}# + #{args 32918}# '(any any)))) - (if (if #{tmp 32813}# + (if (if #{tmp 33123}# (@apply - (lambda (#{a 32817}# #{b 32818}#) - (eq? (syntax->datum #{a 32817}#) + (lambda (#{a 33127}# #{b 33128}#) + (eq? (syntax->datum #{a 33127}#) #:rest)) - #{tmp 32813}#) + #{tmp 33123}#) #f) (@apply - (lambda (#{a 32819}# #{b 32820}#) - (#{rest 32367}# - #{b 32820}# - #{req 32609}# - (reverse #{ropt 32610}#) + (lambda (#{a 33129}# #{b 33130}#) + (#{rest 32677}# + #{b 33130}# + #{req 32919}# + (reverse #{ropt 32920}#) '())) - #{tmp 32813}#) - (let ((#{tmp 32823}# (list #{args 32608}#))) + #{tmp 33123}#) + (let ((#{tmp 33133}# (list #{args 32918}#))) (if (@apply - (lambda (#{r 32825}#) - (if (symbol? #{r 32825}#) + (lambda (#{r 33135}#) + (if (symbol? #{r 33135}#) #t - (if (if (vector? #{r 32825}#) + (if (if (vector? #{r 33135}#) (if (= (vector-length - #{r 32825}#) + #{r 33135}#) 4) (eq? (vector-ref - #{r 32825}# + #{r 33135}# 0) 'syntax-object) #f) #f) (symbol? - (vector-ref #{r 32825}# 1)) + (vector-ref #{r 33135}# 1)) #f))) - #{tmp 32823}#) + #{tmp 33133}#) (@apply - (lambda (#{r 32855}#) - (#{rest 32367}# - #{r 32855}# - #{req 32609}# - (reverse #{ropt 32610}#) + (lambda (#{r 33165}#) + (#{rest 32677}# + #{r 33165}# + #{req 32919}# + (reverse #{ropt 32920}#) '())) - #{tmp 32823}#) + #{tmp 33133}#) (syntax-violation 'lambda* "invalid optional argument list" - #{orig-args 32363}# - #{args 32608}#))))))))))))))) - (#{key 32366}# - (lambda (#{args 32874}# - #{req 32875}# - #{opt 32876}# - #{rkey 32877}#) - (let ((#{tmp 32879}# ($sc-dispatch #{args 32874}# '()))) - (if #{tmp 32879}# + #{orig-args 32673}# + #{args 32918}#))))))))))))))) + (#{key 32676}# + (lambda (#{args 33184}# + #{req 33185}# + #{opt 33186}# + #{rkey 33187}#) + (let ((#{tmp 33189}# ($sc-dispatch #{args 33184}# '()))) + (if #{tmp 33189}# (@apply (lambda () - (#{check 32368}# - #{req 32875}# - #{opt 32876}# + (#{check 32678}# + #{req 33185}# + #{opt 33186}# #f - (cons #f (reverse #{rkey 32877}#)))) - #{tmp 32879}#) - (let ((#{tmp 33001}# - ($sc-dispatch #{args 32874}# '(any . any)))) - (if (if #{tmp 33001}# + (cons #f (reverse #{rkey 33187}#)))) + #{tmp 33189}#) + (let ((#{tmp 33311}# + ($sc-dispatch #{args 33184}# '(any . any)))) + (if (if #{tmp 33311}# (@apply - (lambda (#{a 33005}# #{b 33006}#) - (if (symbol? #{a 33005}#) + (lambda (#{a 33315}# #{b 33316}#) + (if (symbol? #{a 33315}#) #t - (if (if (vector? #{a 33005}#) - (if (= (vector-length #{a 33005}#) 4) - (eq? (vector-ref #{a 33005}# 0) + (if (if (vector? #{a 33315}#) + (if (= (vector-length #{a 33315}#) 4) + (eq? (vector-ref #{a 33315}# 0) 'syntax-object) #f) #f) - (symbol? (vector-ref #{a 33005}# 1)) + (symbol? (vector-ref #{a 33315}# 1)) #f))) - #{tmp 33001}#) + #{tmp 33311}#) #f) (@apply - (lambda (#{a 33033}# #{b 33034}#) - (let ((#{tmp 33035}# + (lambda (#{a 33343}# #{b 33344}#) + (let ((#{tmp 33345}# (symbol->keyword - (syntax->datum #{a 33033}#)))) - (#{key 32366}# - #{b 33034}# - #{req 32875}# - #{opt 32876}# - (cons (cons #{tmp 33035}# - (cons #{a 33033}# + (syntax->datum #{a 33343}#)))) + (#{key 32676}# + #{b 33344}# + #{req 33185}# + #{opt 33186}# + (cons (cons #{tmp 33345}# + (cons #{a 33343}# '(#(syntax-object #f ((top) @@ -7618,11 +7554,11 @@ #(ribcage #(k) #((top)) - #("i2543")) + #("i2540")) #(ribcage #(a b) #((top) (top)) - #("i2537" "i2538")) + #("i2534" "i2535")) #(ribcage () () ()) #(ribcage #(args req opt rkey) @@ -7630,10 +7566,10 @@ (top) (top) (top)) - #("i2526" - "i2527" - "i2528" - "i2529")) + #("i2523" + "i2524" + "i2525" + "i2526")) #(ribcage (check rest key opt req) ((top) @@ -7641,37 +7577,37 @@ (top) (top) (top)) - ("i2416" - "i2414" - "i2412" - "i2410" - "i2408")) + ("i2413" + "i2411" + "i2409" + "i2407" + "i2405")) #(ribcage #(orig-args) #((top)) - #("i2407")) + #("i2404")) #(ribcage (lambda-var-list gen-var strip - chi-lambda-case + expand-lambda-case lambda*-formals - chi-simple-lambda + expand-simple-lambda lambda-formals ellipsis? - chi-void + expand-void eval-local-transformer - chi-local-syntax - chi-body - chi-macro - chi-call - chi-expr - chi + expand-local-syntax + expand-body + expand-macro + expand-call + expand-expr + expand syntax-type - chi-when-list - chi-install-global - chi-top-sequence - chi-sequence + parse-when-list + expand-install-global + expand-top-sequence + expand-sequence source-wrap wrap bound-id-member? @@ -8073,1009 +8009,1009 @@ ("i46" "i45" "i44")) #(ribcage () () ())) (hygiene guile))))) - #{rkey 32877}#)))) - #{tmp 33001}#) - (let ((#{tmp 33038}# + #{rkey 33187}#)))) + #{tmp 33311}#) + (let ((#{tmp 33348}# ($sc-dispatch - #{args 32874}# + #{args 33184}# '((any any) . any)))) - (if (if #{tmp 33038}# + (if (if #{tmp 33348}# (@apply - (lambda (#{a 33042}# - #{init 33043}# - #{b 33044}#) - (if (symbol? #{a 33042}#) + (lambda (#{a 33352}# + #{init 33353}# + #{b 33354}#) + (if (symbol? #{a 33352}#) #t - (if (if (vector? #{a 33042}#) - (if (= (vector-length #{a 33042}#) 4) - (eq? (vector-ref #{a 33042}# 0) + (if (if (vector? #{a 33352}#) + (if (= (vector-length #{a 33352}#) 4) + (eq? (vector-ref #{a 33352}# 0) 'syntax-object) #f) #f) - (symbol? (vector-ref #{a 33042}# 1)) + (symbol? (vector-ref #{a 33352}# 1)) #f))) - #{tmp 33038}#) + #{tmp 33348}#) #f) (@apply - (lambda (#{a 33071}# #{init 33072}# #{b 33073}#) - (let ((#{tmp 33074}# + (lambda (#{a 33381}# #{init 33382}# #{b 33383}#) + (let ((#{tmp 33384}# (symbol->keyword - (syntax->datum #{a 33071}#)))) - (#{key 32366}# - #{b 33073}# - #{req 32875}# - #{opt 32876}# - (cons (list #{tmp 33074}# - #{a 33071}# - #{init 33072}#) - #{rkey 32877}#)))) - #{tmp 33038}#) - (let ((#{tmp 33077}# + (syntax->datum #{a 33381}#)))) + (#{key 32676}# + #{b 33383}# + #{req 33185}# + #{opt 33186}# + (cons (list #{tmp 33384}# + #{a 33381}# + #{init 33382}#) + #{rkey 33187}#)))) + #{tmp 33348}#) + (let ((#{tmp 33387}# ($sc-dispatch - #{args 32874}# + #{args 33184}# '((any any any) . any)))) - (if (if #{tmp 33077}# + (if (if #{tmp 33387}# (@apply - (lambda (#{a 33081}# - #{init 33082}# - #{k 33083}# - #{b 33084}#) - (if (if (symbol? #{a 33081}#) + (lambda (#{a 33391}# + #{init 33392}# + #{k 33393}# + #{b 33394}#) + (if (if (symbol? #{a 33391}#) #t - (if (if (vector? #{a 33081}#) + (if (if (vector? #{a 33391}#) (if (= (vector-length - #{a 33081}#) + #{a 33391}#) 4) (eq? (vector-ref - #{a 33081}# + #{a 33391}# 0) 'syntax-object) #f) #f) (symbol? - (vector-ref #{a 33081}# 1)) + (vector-ref #{a 33391}# 1)) #f)) - (keyword? (syntax->datum #{k 33083}#)) + (keyword? (syntax->datum #{k 33393}#)) #f)) - #{tmp 33077}#) + #{tmp 33387}#) #f) (@apply - (lambda (#{a 33111}# - #{init 33112}# - #{k 33113}# - #{b 33114}#) - (#{key 32366}# - #{b 33114}# - #{req 32875}# - #{opt 32876}# - (cons (list #{k 33113}# - #{a 33111}# - #{init 33112}#) - #{rkey 32877}#))) - #{tmp 33077}#) - (let ((#{tmp 33115}# - ($sc-dispatch #{args 32874}# '(any)))) - (if (if #{tmp 33115}# + (lambda (#{a 33421}# + #{init 33422}# + #{k 33423}# + #{b 33424}#) + (#{key 32676}# + #{b 33424}# + #{req 33185}# + #{opt 33186}# + (cons (list #{k 33423}# + #{a 33421}# + #{init 33422}#) + #{rkey 33187}#))) + #{tmp 33387}#) + (let ((#{tmp 33425}# + ($sc-dispatch #{args 33184}# '(any)))) + (if (if #{tmp 33425}# (@apply - (lambda (#{aok 33119}#) - (eq? (syntax->datum #{aok 33119}#) + (lambda (#{aok 33429}#) + (eq? (syntax->datum #{aok 33429}#) #:allow-other-keys)) - #{tmp 33115}#) + #{tmp 33425}#) #f) (@apply - (lambda (#{aok 33120}#) - (#{check 32368}# - #{req 32875}# - #{opt 32876}# + (lambda (#{aok 33430}#) + (#{check 32678}# + #{req 33185}# + #{opt 33186}# #f - (cons #t (reverse #{rkey 32877}#)))) - #{tmp 33115}#) - (let ((#{tmp 33239}# + (cons #t (reverse #{rkey 33187}#)))) + #{tmp 33425}#) + (let ((#{tmp 33549}# ($sc-dispatch - #{args 32874}# + #{args 33184}# '(any any any)))) - (if (if #{tmp 33239}# + (if (if #{tmp 33549}# (@apply - (lambda (#{aok 33243}# - #{a 33244}# - #{b 33245}#) + (lambda (#{aok 33553}# + #{a 33554}# + #{b 33555}#) (if (eq? (syntax->datum - #{aok 33243}#) + #{aok 33553}#) #:allow-other-keys) (eq? (syntax->datum - #{a 33244}#) + #{a 33554}#) #:rest) #f)) - #{tmp 33239}#) + #{tmp 33549}#) #f) (@apply - (lambda (#{aok 33246}# - #{a 33247}# - #{b 33248}#) - (#{rest 32367}# - #{b 33248}# - #{req 32875}# - #{opt 32876}# + (lambda (#{aok 33556}# + #{a 33557}# + #{b 33558}#) + (#{rest 32677}# + #{b 33558}# + #{req 33185}# + #{opt 33186}# (cons #t - (reverse #{rkey 32877}#)))) - #{tmp 33239}#) - (let ((#{tmp 33251}# + (reverse #{rkey 33187}#)))) + #{tmp 33549}#) + (let ((#{tmp 33561}# ($sc-dispatch - #{args 32874}# + #{args 33184}# '(any . any)))) - (if (if #{tmp 33251}# + (if (if #{tmp 33561}# (@apply - (lambda (#{aok 33255}# - #{r 33256}#) + (lambda (#{aok 33565}# + #{r 33566}#) (if (eq? (syntax->datum - #{aok 33255}#) + #{aok 33565}#) #:allow-other-keys) - (if (symbol? #{r 33256}#) + (if (symbol? #{r 33566}#) #t (if (if (vector? - #{r 33256}#) + #{r 33566}#) (if (= (vector-length - #{r 33256}#) + #{r 33566}#) 4) (eq? (vector-ref - #{r 33256}# + #{r 33566}# 0) 'syntax-object) #f) #f) (symbol? (vector-ref - #{r 33256}# + #{r 33566}# 1)) #f)) #f)) - #{tmp 33251}#) + #{tmp 33561}#) #f) (@apply - (lambda (#{aok 33283}# #{r 33284}#) - (#{rest 32367}# - #{r 33284}# - #{req 32875}# - #{opt 32876}# + (lambda (#{aok 33593}# #{r 33594}#) + (#{rest 32677}# + #{r 33594}# + #{req 33185}# + #{opt 33186}# (cons #t (reverse - #{rkey 32877}#)))) - #{tmp 33251}#) - (let ((#{tmp 33287}# + #{rkey 33187}#)))) + #{tmp 33561}#) + (let ((#{tmp 33597}# ($sc-dispatch - #{args 32874}# + #{args 33184}# '(any any)))) - (if (if #{tmp 33287}# + (if (if #{tmp 33597}# (@apply - (lambda (#{a 33291}# - #{b 33292}#) + (lambda (#{a 33601}# + #{b 33602}#) (eq? (syntax->datum - #{a 33291}#) + #{a 33601}#) #:rest)) - #{tmp 33287}#) + #{tmp 33597}#) #f) (@apply - (lambda (#{a 33293}# - #{b 33294}#) - (#{rest 32367}# - #{b 33294}# - #{req 32875}# - #{opt 32876}# + (lambda (#{a 33603}# + #{b 33604}#) + (#{rest 32677}# + #{b 33604}# + #{req 33185}# + #{opt 33186}# (cons #f (reverse - #{rkey 32877}#)))) - #{tmp 33287}#) - (let ((#{tmp 33297}# - (list #{args 32874}#))) + #{rkey 33187}#)))) + #{tmp 33597}#) + (let ((#{tmp 33607}# + (list #{args 33184}#))) (if (@apply - (lambda (#{r 33299}#) + (lambda (#{r 33609}#) (if (symbol? - #{r 33299}#) + #{r 33609}#) #t (if (if (vector? - #{r 33299}#) + #{r 33609}#) (if (= (vector-length - #{r 33299}#) + #{r 33609}#) 4) (eq? (vector-ref - #{r 33299}# + #{r 33609}# 0) 'syntax-object) #f) #f) (symbol? (vector-ref - #{r 33299}# + #{r 33609}# 1)) #f))) - #{tmp 33297}#) + #{tmp 33607}#) (@apply - (lambda (#{r 33329}#) - (#{rest 32367}# - #{r 33329}# - #{req 32875}# - #{opt 32876}# + (lambda (#{r 33639}#) + (#{rest 32677}# + #{r 33639}# + #{req 33185}# + #{opt 33186}# (cons #f (reverse - #{rkey 32877}#)))) - #{tmp 33297}#) + #{rkey 33187}#)))) + #{tmp 33607}#) (syntax-violation 'lambda* "invalid keyword argument list" - #{orig-args 32363}# - #{args 32874}#))))))))))))))))))))) - (#{rest 32367}# - (lambda (#{args 33357}# - #{req 33358}# - #{opt 33359}# - #{kw 33360}#) - (let ((#{tmp 33362}# (list #{args 33357}#))) + #{orig-args 32673}# + #{args 33184}#))))))))))))))))))))) + (#{rest 32677}# + (lambda (#{args 33667}# + #{req 33668}# + #{opt 33669}# + #{kw 33670}#) + (let ((#{tmp 33672}# (list #{args 33667}#))) (if (@apply - (lambda (#{r 33364}#) - (if (symbol? #{r 33364}#) + (lambda (#{r 33674}#) + (if (symbol? #{r 33674}#) #t - (if (if (vector? #{r 33364}#) - (if (= (vector-length #{r 33364}#) 4) - (eq? (vector-ref #{r 33364}# 0) + (if (if (vector? #{r 33674}#) + (if (= (vector-length #{r 33674}#) 4) + (eq? (vector-ref #{r 33674}# 0) 'syntax-object) #f) #f) - (symbol? (vector-ref #{r 33364}# 1)) + (symbol? (vector-ref #{r 33674}# 1)) #f))) - #{tmp 33362}#) + #{tmp 33672}#) (@apply - (lambda (#{r 33394}#) - (#{check 32368}# - #{req 33358}# - #{opt 33359}# - #{r 33394}# - #{kw 33360}#)) - #{tmp 33362}#) + (lambda (#{r 33704}#) + (#{check 32678}# + #{req 33668}# + #{opt 33669}# + #{r 33704}# + #{kw 33670}#)) + #{tmp 33672}#) (syntax-violation 'lambda* "invalid rest argument" - #{orig-args 32363}# - #{args 33357}#))))) - (#{check 32368}# - (lambda (#{req 33522}# - #{opt 33523}# - #{rest 33524}# - #{kw 33525}#) - (if (#{distinct-bound-ids? 4437}# + #{orig-args 32673}# + #{args 33667}#))))) + (#{check 32678}# + (lambda (#{req 33832}# + #{opt 33833}# + #{rest 33834}# + #{kw 33835}#) + (if (#{distinct-bound-ids? 4434}# (append - #{req 33522}# - (map car #{opt 33523}#) - (if #{rest 33524}# (list #{rest 33524}#) '()) - (if (pair? #{kw 33525}#) - (map cadr (cdr #{kw 33525}#)) + #{req 33832}# + (map car #{opt 33833}#) + (if #{rest 33834}# (list #{rest 33834}#) '()) + (if (pair? #{kw 33835}#) + (map cadr (cdr #{kw 33835}#)) '()))) (values - #{req 33522}# - #{opt 33523}# - #{rest 33524}# - #{kw 33525}#) + #{req 33832}# + #{opt 33833}# + #{rest 33834}# + #{kw 33835}#) (syntax-violation 'lambda* "duplicate identifier in argument list" - #{orig-args 32363}#))))) - (#{req 32364}# #{orig-args 32363}# '())))) - (#{chi-lambda-case 4458}# - (lambda (#{e 33634}# - #{r 33635}# - #{w 33636}# - #{s 33637}# - #{mod 33638}# - #{get-formals 33639}# - #{clauses 33640}#) + #{orig-args 32673}#))))) + (#{req 32674}# #{orig-args 32673}# '())))) + (#{expand-lambda-case 4455}# + (lambda (#{e 33944}# + #{r 33945}# + #{w 33946}# + #{s 33947}# + #{mod 33948}# + #{get-formals 33949}# + #{clauses 33950}#) (letrec* - ((#{expand-req 33641}# - (lambda (#{req 33777}# - #{opt 33778}# - #{rest 33779}# - #{kw 33780}# - #{body 33781}#) - (let ((#{vars 33782}# - (map #{gen-var 4460}# #{req 33777}#)) - (#{labels 33783}# - (#{gen-labels 4416}# #{req 33777}#))) - (let ((#{r* 33784}# - (#{extend-var-env 4409}# - #{labels 33783}# - #{vars 33782}# - #{r 33635}#)) - (#{w* 33785}# - (#{make-binding-wrap 4427}# - #{req 33777}# - #{labels 33783}# - #{w 33636}#))) - (#{expand-opt 33642}# - (map syntax->datum #{req 33777}#) - #{opt 33778}# - #{rest 33779}# - #{kw 33780}# - #{body 33781}# - (reverse #{vars 33782}#) - #{r* 33784}# - #{w* 33785}# + ((#{parse-req 33951}# + (lambda (#{req 34087}# + #{opt 34088}# + #{rest 34089}# + #{kw 34090}# + #{body 34091}#) + (let ((#{vars 34092}# + (map #{gen-var 4457}# #{req 34087}#)) + (#{labels 34093}# + (#{gen-labels 4413}# #{req 34087}#))) + (let ((#{r* 34094}# + (#{extend-var-env 4406}# + #{labels 34093}# + #{vars 34092}# + #{r 33945}#)) + (#{w* 34095}# + (#{make-binding-wrap 4424}# + #{req 34087}# + #{labels 34093}# + #{w 33946}#))) + (#{parse-opt 33952}# + (map syntax->datum #{req 34087}#) + #{opt 34088}# + #{rest 34089}# + #{kw 34090}# + #{body 34091}# + (reverse #{vars 34092}#) + #{r* 34094}# + #{w* 34095}# '() '()))))) - (#{expand-opt 33642}# - (lambda (#{req 34021}# - #{opt 34022}# - #{rest 34023}# - #{kw 34024}# - #{body 34025}# - #{vars 34026}# - #{r* 34027}# - #{w* 34028}# - #{out 34029}# - #{inits 34030}#) - (if (pair? #{opt 34022}#) - (let ((#{tmp 34031}# (car #{opt 34022}#))) - (let ((#{tmp 34032}# - ($sc-dispatch #{tmp 34031}# '(any any)))) - (if #{tmp 34032}# + (#{parse-opt 33952}# + (lambda (#{req 34331}# + #{opt 34332}# + #{rest 34333}# + #{kw 34334}# + #{body 34335}# + #{vars 34336}# + #{r* 34337}# + #{w* 34338}# + #{out 34339}# + #{inits 34340}#) + (if (pair? #{opt 34332}#) + (let ((#{tmp 34341}# (car #{opt 34332}#))) + (let ((#{tmp 34342}# + ($sc-dispatch #{tmp 34341}# '(any any)))) + (if #{tmp 34342}# (@apply - (lambda (#{id 34034}# #{i 34035}#) - (let ((#{v 34036}# - (let ((#{id 34044}# - (if (if (vector? #{id 34034}#) + (lambda (#{id 34344}# #{i 34345}#) + (let ((#{v 34346}# + (let ((#{id 34354}# + (if (if (vector? #{id 34344}#) (if (= (vector-length - #{id 34034}#) + #{id 34344}#) 4) (eq? (vector-ref - #{id 34034}# + #{id 34344}# 0) 'syntax-object) #f) #f) - (vector-ref #{id 34034}# 1) - #{id 34034}#))) + (vector-ref #{id 34344}# 1) + #{id 34344}#))) (gensym (string-append - (symbol->string #{id 34044}#) + (symbol->string #{id 34354}#) " "))))) - (let ((#{l 34037}# - (#{gen-labels 4416}# (list #{v 34036}#)))) - (let ((#{r** 34038}# - (#{extend-var-env 4409}# - #{l 34037}# - (list #{v 34036}#) - #{r* 34027}#))) - (let ((#{w** 34039}# - (#{make-binding-wrap 4427}# - (list #{id 34034}#) - #{l 34037}# - #{w* 34028}#))) - (#{expand-opt 33642}# - #{req 34021}# - (cdr #{opt 34022}#) - #{rest 34023}# - #{kw 34024}# - #{body 34025}# - (cons #{v 34036}# #{vars 34026}#) - #{r** 34038}# - #{w** 34039}# - (cons (syntax->datum #{id 34034}#) - #{out 34029}#) - (cons (#{chi 4446}# - #{i 34035}# - #{r* 34027}# - #{w* 34028}# - #{mod 33638}#) - #{inits 34030}#))))))) - #{tmp 34032}#) + (let ((#{l 34347}# + (#{gen-labels 4413}# (list #{v 34346}#)))) + (let ((#{r** 34348}# + (#{extend-var-env 4406}# + #{l 34347}# + (list #{v 34346}#) + #{r* 34337}#))) + (let ((#{w** 34349}# + (#{make-binding-wrap 4424}# + (list #{id 34344}#) + #{l 34347}# + #{w* 34338}#))) + (#{parse-opt 33952}# + #{req 34331}# + (cdr #{opt 34332}#) + #{rest 34333}# + #{kw 34334}# + #{body 34335}# + (cons #{v 34346}# #{vars 34336}#) + #{r** 34348}# + #{w** 34349}# + (cons (syntax->datum #{id 34344}#) + #{out 34339}#) + (cons (#{expand 4443}# + #{i 34345}# + #{r* 34337}# + #{w* 34338}# + #{mod 33948}#) + #{inits 34340}#))))))) + #{tmp 34342}#) (syntax-violation #f "source expression failed to match any pattern" - #{tmp 34031}#)))) - (if #{rest 34023}# - (let ((#{v 34345}# - (let ((#{id 34355}# - (if (if (vector? #{rest 34023}#) - (if (= (vector-length #{rest 34023}#) + #{tmp 34341}#)))) + (if #{rest 34333}# + (let ((#{v 34655}# + (let ((#{id 34665}# + (if (if (vector? #{rest 34333}#) + (if (= (vector-length #{rest 34333}#) 4) - (eq? (vector-ref #{rest 34023}# 0) + (eq? (vector-ref #{rest 34333}# 0) 'syntax-object) #f) #f) - (vector-ref #{rest 34023}# 1) - #{rest 34023}#))) + (vector-ref #{rest 34333}# 1) + #{rest 34333}#))) (gensym (string-append - (symbol->string #{id 34355}#) + (symbol->string #{id 34665}#) " "))))) - (let ((#{l 34346}# - (#{gen-labels 4416}# (list #{v 34345}#)))) - (let ((#{r* 34347}# - (#{extend-var-env 4409}# - #{l 34346}# - (list #{v 34345}#) - #{r* 34027}#))) - (let ((#{w* 34348}# - (#{make-binding-wrap 4427}# - (list #{rest 34023}#) - #{l 34346}# - #{w* 34028}#))) - (#{expand-kw 33643}# - #{req 34021}# - (if (pair? #{out 34029}#) - (reverse #{out 34029}#) + (let ((#{l 34656}# + (#{gen-labels 4413}# (list #{v 34655}#)))) + (let ((#{r* 34657}# + (#{extend-var-env 4406}# + #{l 34656}# + (list #{v 34655}#) + #{r* 34337}#))) + (let ((#{w* 34658}# + (#{make-binding-wrap 4424}# + (list #{rest 34333}#) + #{l 34656}# + #{w* 34338}#))) + (#{parse-kw 33953}# + #{req 34331}# + (if (pair? #{out 34339}#) + (reverse #{out 34339}#) #f) - (syntax->datum #{rest 34023}#) - (if (pair? #{kw 34024}#) - (cdr #{kw 34024}#) - #{kw 34024}#) - #{body 34025}# - (cons #{v 34345}# #{vars 34026}#) - #{r* 34347}# - #{w* 34348}# - (if (pair? #{kw 34024}#) (car #{kw 34024}#) #f) + (syntax->datum #{rest 34333}#) + (if (pair? #{kw 34334}#) + (cdr #{kw 34334}#) + #{kw 34334}#) + #{body 34335}# + (cons #{v 34655}# #{vars 34336}#) + #{r* 34657}# + #{w* 34658}# + (if (pair? #{kw 34334}#) (car #{kw 34334}#) #f) '() - #{inits 34030}#))))) - (#{expand-kw 33643}# - #{req 34021}# - (if (pair? #{out 34029}#) - (reverse #{out 34029}#) + #{inits 34340}#))))) + (#{parse-kw 33953}# + #{req 34331}# + (if (pair? #{out 34339}#) + (reverse #{out 34339}#) #f) #f - (if (pair? #{kw 34024}#) - (cdr #{kw 34024}#) - #{kw 34024}#) - #{body 34025}# - #{vars 34026}# - #{r* 34027}# - #{w* 34028}# - (if (pair? #{kw 34024}#) (car #{kw 34024}#) #f) + (if (pair? #{kw 34334}#) + (cdr #{kw 34334}#) + #{kw 34334}#) + #{body 34335}# + #{vars 34336}# + #{r* 34337}# + #{w* 34338}# + (if (pair? #{kw 34334}#) (car #{kw 34334}#) #f) '() - #{inits 34030}#))))) - (#{expand-kw 33643}# - (lambda (#{req 34577}# - #{opt 34578}# - #{rest 34579}# - #{kw 34580}# - #{body 34581}# - #{vars 34582}# - #{r* 34583}# - #{w* 34584}# - #{aok 34585}# - #{out 34586}# - #{inits 34587}#) - (if (pair? #{kw 34580}#) - (let ((#{tmp 34588}# (car #{kw 34580}#))) - (let ((#{tmp 34589}# - ($sc-dispatch #{tmp 34588}# '(any any any)))) - (if #{tmp 34589}# + #{inits 34340}#))))) + (#{parse-kw 33953}# + (lambda (#{req 34887}# + #{opt 34888}# + #{rest 34889}# + #{kw 34890}# + #{body 34891}# + #{vars 34892}# + #{r* 34893}# + #{w* 34894}# + #{aok 34895}# + #{out 34896}# + #{inits 34897}#) + (if (pair? #{kw 34890}#) + (let ((#{tmp 34898}# (car #{kw 34890}#))) + (let ((#{tmp 34899}# + ($sc-dispatch #{tmp 34898}# '(any any any)))) + (if #{tmp 34899}# (@apply - (lambda (#{k 34591}# #{id 34592}# #{i 34593}#) - (let ((#{v 34594}# - (let ((#{id 34602}# - (if (if (vector? #{id 34592}#) + (lambda (#{k 34901}# #{id 34902}# #{i 34903}#) + (let ((#{v 34904}# + (let ((#{id 34912}# + (if (if (vector? #{id 34902}#) (if (= (vector-length - #{id 34592}#) + #{id 34902}#) 4) (eq? (vector-ref - #{id 34592}# + #{id 34902}# 0) 'syntax-object) #f) #f) - (vector-ref #{id 34592}# 1) - #{id 34592}#))) + (vector-ref #{id 34902}# 1) + #{id 34902}#))) (gensym (string-append - (symbol->string #{id 34602}#) + (symbol->string #{id 34912}#) " "))))) - (let ((#{l 34595}# - (#{gen-labels 4416}# (list #{v 34594}#)))) - (let ((#{r** 34596}# - (#{extend-var-env 4409}# - #{l 34595}# - (list #{v 34594}#) - #{r* 34583}#))) - (let ((#{w** 34597}# - (#{make-binding-wrap 4427}# - (list #{id 34592}#) - #{l 34595}# - #{w* 34584}#))) - (#{expand-kw 33643}# - #{req 34577}# - #{opt 34578}# - #{rest 34579}# - (cdr #{kw 34580}#) - #{body 34581}# - (cons #{v 34594}# #{vars 34582}#) - #{r** 34596}# - #{w** 34597}# - #{aok 34585}# - (cons (list (syntax->datum #{k 34591}#) - (syntax->datum #{id 34592}#) - #{v 34594}#) - #{out 34586}#) - (cons (#{chi 4446}# - #{i 34593}# - #{r* 34583}# - #{w* 34584}# - #{mod 33638}#) - #{inits 34587}#))))))) - #{tmp 34589}#) + (let ((#{l 34905}# + (#{gen-labels 4413}# (list #{v 34904}#)))) + (let ((#{r** 34906}# + (#{extend-var-env 4406}# + #{l 34905}# + (list #{v 34904}#) + #{r* 34893}#))) + (let ((#{w** 34907}# + (#{make-binding-wrap 4424}# + (list #{id 34902}#) + #{l 34905}# + #{w* 34894}#))) + (#{parse-kw 33953}# + #{req 34887}# + #{opt 34888}# + #{rest 34889}# + (cdr #{kw 34890}#) + #{body 34891}# + (cons #{v 34904}# #{vars 34892}#) + #{r** 34906}# + #{w** 34907}# + #{aok 34895}# + (cons (list (syntax->datum #{k 34901}#) + (syntax->datum #{id 34902}#) + #{v 34904}#) + #{out 34896}#) + (cons (#{expand 4443}# + #{i 34903}# + #{r* 34893}# + #{w* 34894}# + #{mod 33948}#) + #{inits 34897}#))))))) + #{tmp 34899}#) (syntax-violation #f "source expression failed to match any pattern" - #{tmp 34588}#)))) - (#{expand-body 33644}# - #{req 34577}# - #{opt 34578}# - #{rest 34579}# - (if (if #{aok 34585}# - #{aok 34585}# - (pair? #{out 34586}#)) - (cons #{aok 34585}# (reverse #{out 34586}#)) + #{tmp 34898}#)))) + (#{parse-body 33954}# + #{req 34887}# + #{opt 34888}# + #{rest 34889}# + (if (if #{aok 34895}# + #{aok 34895}# + (pair? #{out 34896}#)) + (cons #{aok 34895}# (reverse #{out 34896}#)) #f) - #{body 34581}# - (reverse #{vars 34582}#) - #{r* 34583}# - #{w* 34584}# - (reverse #{inits 34587}#) + #{body 34891}# + (reverse #{vars 34892}#) + #{r* 34893}# + #{w* 34894}# + (reverse #{inits 34897}#) '())))) - (#{expand-body 33644}# - (lambda (#{req 34912}# - #{opt 34913}# - #{rest 34914}# - #{kw 34915}# - #{body 34916}# - #{vars 34917}# - #{r* 34918}# - #{w* 34919}# - #{inits 34920}# - #{meta 34921}#) - (let ((#{tmp 34923}# + (#{parse-body 33954}# + (lambda (#{req 35222}# + #{opt 35223}# + #{rest 35224}# + #{kw 35225}# + #{body 35226}# + #{vars 35227}# + #{r* 35228}# + #{w* 35229}# + #{inits 35230}# + #{meta 35231}#) + (let ((#{tmp 35233}# ($sc-dispatch - #{body 34916}# + #{body 35226}# '(any any . each-any)))) - (if (if #{tmp 34923}# + (if (if #{tmp 35233}# (@apply - (lambda (#{docstring 34927}# #{e1 34928}# #{e2 34929}#) - (string? (syntax->datum #{docstring 34927}#))) - #{tmp 34923}#) + (lambda (#{docstring 35237}# #{e1 35238}# #{e2 35239}#) + (string? (syntax->datum #{docstring 35237}#))) + #{tmp 35233}#) #f) (@apply - (lambda (#{docstring 34930}# #{e1 34931}# #{e2 34932}#) - (#{expand-body 33644}# - #{req 34912}# - #{opt 34913}# - #{rest 34914}# - #{kw 34915}# - (cons #{e1 34931}# #{e2 34932}#) - #{vars 34917}# - #{r* 34918}# - #{w* 34919}# - #{inits 34920}# + (lambda (#{docstring 35240}# #{e1 35241}# #{e2 35242}#) + (#{parse-body 33954}# + #{req 35222}# + #{opt 35223}# + #{rest 35224}# + #{kw 35225}# + (cons #{e1 35241}# #{e2 35242}#) + #{vars 35227}# + #{r* 35228}# + #{w* 35229}# + #{inits 35230}# (append - #{meta 34921}# + #{meta 35231}# (list (cons 'documentation - (syntax->datum #{docstring 34930}#)))))) - #{tmp 34923}#) - (let ((#{tmp 34933}# + (syntax->datum #{docstring 35240}#)))))) + #{tmp 35233}#) + (let ((#{tmp 35243}# ($sc-dispatch - #{body 34916}# + #{body 35226}# '(#(vector #(each (any . any))) any . each-any)))) - (if #{tmp 34933}# + (if #{tmp 35243}# (@apply - (lambda (#{k 34937}# - #{v 34938}# - #{e1 34939}# - #{e2 34940}#) - (#{expand-body 33644}# - #{req 34912}# - #{opt 34913}# - #{rest 34914}# - #{kw 34915}# - (cons #{e1 34939}# #{e2 34940}#) - #{vars 34917}# - #{r* 34918}# - #{w* 34919}# - #{inits 34920}# + (lambda (#{k 35247}# + #{v 35248}# + #{e1 35249}# + #{e2 35250}#) + (#{parse-body 33954}# + #{req 35222}# + #{opt 35223}# + #{rest 35224}# + #{kw 35225}# + (cons #{e1 35249}# #{e2 35250}#) + #{vars 35227}# + #{r* 35228}# + #{w* 35229}# + #{inits 35230}# (append - #{meta 34921}# + #{meta 35231}# (syntax->datum - (map cons #{k 34937}# #{v 34938}#))))) - #{tmp 34933}#) - (let ((#{tmp 34941}# - ($sc-dispatch #{body 34916}# '(any . each-any)))) - (if #{tmp 34941}# + (map cons #{k 35247}# #{v 35248}#))))) + #{tmp 35243}#) + (let ((#{tmp 35251}# + ($sc-dispatch #{body 35226}# '(any . each-any)))) + (if #{tmp 35251}# (@apply - (lambda (#{e1 34945}# #{e2 34946}#) + (lambda (#{e1 35255}# #{e2 35256}#) (values - #{meta 34921}# - #{req 34912}# - #{opt 34913}# - #{rest 34914}# - #{kw 34915}# - #{inits 34920}# - #{vars 34917}# - (#{chi-body 4450}# - (cons #{e1 34945}# #{e2 34946}#) - (let ((#{x 34958}# + #{meta 35231}# + #{req 35222}# + #{opt 35223}# + #{rest 35224}# + #{kw 35225}# + #{inits 35230}# + #{vars 35227}# + (#{expand-body 4447}# + (cons #{e1 35255}# #{e2 35256}#) + (let ((#{x 35268}# (begin - (if (if (pair? #{e 33634}#) - #{s 33637}# + (if (if (pair? #{e 33944}#) + #{s 33947}# #f) (set-source-properties! - #{e 33634}# - #{s 33637}#)) - #{e 33634}#))) - (if (if (null? (car #{w 33636}#)) - (null? (cdr #{w 33636}#)) + #{e 33944}# + #{s 33947}#)) + #{e 33944}#))) + (if (if (null? (car #{w 33946}#)) + (null? (cdr #{w 33946}#)) #f) - #{x 34958}# - (if (if (vector? #{x 34958}#) - (if (= (vector-length #{x 34958}#) + #{x 35268}# + (if (if (vector? #{x 35268}#) + (if (= (vector-length #{x 35268}#) 4) - (eq? (vector-ref #{x 34958}# 0) + (eq? (vector-ref #{x 35268}# 0) 'syntax-object) #f) #f) - (let ((#{expression 34990}# - (vector-ref #{x 34958}# 1)) - (#{wrap 34991}# - (let ((#{w2 34999}# + (let ((#{expression 35300}# + (vector-ref #{x 35268}# 1)) + (#{wrap 35301}# + (let ((#{w2 35309}# (vector-ref - #{x 34958}# + #{x 35268}# 2))) - (let ((#{m1 35000}# - (car #{w 33636}#)) - (#{s1 35001}# - (cdr #{w 33636}#))) - (if (null? #{m1 35000}#) - (if (null? #{s1 35001}#) - #{w2 34999}# - (cons (car #{w2 34999}#) - (let ((#{m2 35016}# - (cdr #{w2 34999}#))) - (if (null? #{m2 35016}#) - #{s1 35001}# + (let ((#{m1 35310}# + (car #{w 33946}#)) + (#{s1 35311}# + (cdr #{w 33946}#))) + (if (null? #{m1 35310}#) + (if (null? #{s1 35311}#) + #{w2 35309}# + (cons (car #{w2 35309}#) + (let ((#{m2 35326}# + (cdr #{w2 35309}#))) + (if (null? #{m2 35326}#) + #{s1 35311}# (append - #{s1 35001}# - #{m2 35016}#))))) - (cons (let ((#{m2 35024}# - (car #{w2 34999}#))) - (if (null? #{m2 35024}#) - #{m1 35000}# + #{s1 35311}# + #{m2 35326}#))))) + (cons (let ((#{m2 35334}# + (car #{w2 35309}#))) + (if (null? #{m2 35334}#) + #{m1 35310}# (append - #{m1 35000}# - #{m2 35024}#))) - (let ((#{m2 35032}# - (cdr #{w2 34999}#))) - (if (null? #{m2 35032}#) - #{s1 35001}# + #{m1 35310}# + #{m2 35334}#))) + (let ((#{m2 35342}# + (cdr #{w2 35309}#))) + (if (null? #{m2 35342}#) + #{s1 35311}# (append - #{s1 35001}# - #{m2 35032}#)))))))) - (#{module 34992}# - (vector-ref #{x 34958}# 3))) + #{s1 35311}# + #{m2 35342}#)))))))) + (#{module 35302}# + (vector-ref #{x 35268}# 3))) (vector 'syntax-object - #{expression 34990}# - #{wrap 34991}# - #{module 34992}#)) - (if (null? #{x 34958}#) - #{x 34958}# + #{expression 35300}# + #{wrap 35301}# + #{module 35302}#)) + (if (null? #{x 35268}#) + #{x 35268}# (vector 'syntax-object - #{x 34958}# - #{w 33636}# - #{mod 33638}#))))) - #{r* 34918}# - #{w* 34919}# - #{mod 33638}#))) - #{tmp 34941}#) + #{x 35268}# + #{w 33946}# + #{mod 33948}#))))) + #{r* 35228}# + #{w* 35229}# + #{mod 33948}#))) + #{tmp 35251}#) (syntax-violation #f "source expression failed to match any pattern" - #{body 34916}#)))))))))) - (let ((#{tmp 33646}# - ($sc-dispatch #{clauses 33640}# '()))) - (if #{tmp 33646}# + #{body 35226}#)))))))))) + (let ((#{tmp 33956}# + ($sc-dispatch #{clauses 33950}# '()))) + (if #{tmp 33956}# (@apply (lambda () (values '() #f)) - #{tmp 33646}#) - (let ((#{tmp 33651}# + #{tmp 33956}#) + (let ((#{tmp 33961}# ($sc-dispatch - #{clauses 33640}# + #{clauses 33950}# '((any any . each-any) . #(each (any any . each-any)))))) - (if #{tmp 33651}# + (if #{tmp 33961}# (@apply - (lambda (#{args 33655}# - #{e1 33656}# - #{e2 33657}# - #{args* 33658}# - #{e1* 33659}# - #{e2* 33660}#) + (lambda (#{args 33965}# + #{e1 33966}# + #{e2 33967}# + #{args* 33968}# + #{e1* 33969}# + #{e2* 33970}#) (call-with-values (lambda () - (#{get-formals 33639}# #{args 33655}#)) - (lambda (#{req 33661}# - #{opt 33662}# - #{rest 33663}# - #{kw 33664}#) + (#{get-formals 33949}# #{args 33965}#)) + (lambda (#{req 33971}# + #{opt 33972}# + #{rest 33973}# + #{kw 33974}#) (call-with-values (lambda () - (#{expand-req 33641}# - #{req 33661}# - #{opt 33662}# - #{rest 33663}# - #{kw 33664}# - (cons #{e1 33656}# #{e2 33657}#))) - (lambda (#{meta 33733}# - #{req 33734}# - #{opt 33735}# - #{rest 33736}# - #{kw 33737}# - #{inits 33738}# - #{vars 33739}# - #{body 33740}#) + (#{parse-req 33951}# + #{req 33971}# + #{opt 33972}# + #{rest 33973}# + #{kw 33974}# + (cons #{e1 33966}# #{e2 33967}#))) + (lambda (#{meta 34043}# + #{req 34044}# + #{opt 34045}# + #{rest 34046}# + #{kw 34047}# + #{inits 34048}# + #{vars 34049}# + #{body 34050}#) (call-with-values (lambda () - (#{chi-lambda-case 4458}# - #{e 33634}# - #{r 33635}# - #{w 33636}# - #{s 33637}# - #{mod 33638}# - #{get-formals 33639}# - (map (lambda (#{tmp 2886 33741}# - #{tmp 2885 33742}# - #{tmp 2884 33743}#) - (cons #{tmp 2884 33743}# - (cons #{tmp 2885 33742}# - #{tmp 2886 33741}#))) - #{e2* 33660}# - #{e1* 33659}# - #{args* 33658}#))) - (lambda (#{meta* 33744}# #{else* 33745}#) + (#{expand-lambda-case 4455}# + #{e 33944}# + #{r 33945}# + #{w 33946}# + #{s 33947}# + #{mod 33948}# + #{get-formals 33949}# + (map (lambda (#{tmp 2883 34051}# + #{tmp 2882 34052}# + #{tmp 2881 34053}#) + (cons #{tmp 2881 34053}# + (cons #{tmp 2882 34052}# + #{tmp 2883 34051}#))) + #{e2* 33970}# + #{e1* 33969}# + #{args* 33968}#))) + (lambda (#{meta* 34054}# #{else* 34055}#) (values - (append #{meta 33733}# #{meta* 33744}#) + (append #{meta 34043}# #{meta* 34054}#) (make-struct/no-tail (vector-ref %expanded-vtables 15) - #{s 33637}# - #{req 33734}# - #{opt 33735}# - #{rest 33736}# - #{kw 33737}# - #{inits 33738}# - #{vars 33739}# - #{body 33740}# - #{else* 33745}#))))))))) - #{tmp 33651}#) + #{s 33947}# + #{req 34044}# + #{opt 34045}# + #{rest 34046}# + #{kw 34047}# + #{inits 34048}# + #{vars 34049}# + #{body 34050}# + #{else* 34055}#))))))))) + #{tmp 33961}#) (syntax-violation #f "source expression failed to match any pattern" - #{clauses 33640}#)))))))) - (#{strip 4459}# - (lambda (#{x 35059}# #{w 35060}#) - (if (memq 'top (car #{w 35060}#)) - #{x 35059}# + #{clauses 33950}#)))))))) + (#{strip 4456}# + (lambda (#{x 35369}# #{w 35370}#) + (if (memq 'top (car #{w 35370}#)) + #{x 35369}# (letrec* - ((#{f 35061}# - (lambda (#{x 35064}#) - (if (if (vector? #{x 35064}#) - (if (= (vector-length #{x 35064}#) 4) - (eq? (vector-ref #{x 35064}# 0) 'syntax-object) + ((#{f 35371}# + (lambda (#{x 35374}#) + (if (if (vector? #{x 35374}#) + (if (= (vector-length #{x 35374}#) 4) + (eq? (vector-ref #{x 35374}# 0) 'syntax-object) #f) #f) - (#{strip 4459}# - (vector-ref #{x 35064}# 1) - (vector-ref #{x 35064}# 2)) - (if (pair? #{x 35064}#) - (let ((#{a 35083}# (#{f 35061}# (car #{x 35064}#))) - (#{d 35084}# (#{f 35061}# (cdr #{x 35064}#)))) - (if (if (eq? #{a 35083}# (car #{x 35064}#)) - (eq? #{d 35084}# (cdr #{x 35064}#)) + (#{strip 4456}# + (vector-ref #{x 35374}# 1) + (vector-ref #{x 35374}# 2)) + (if (pair? #{x 35374}#) + (let ((#{a 35393}# (#{f 35371}# (car #{x 35374}#))) + (#{d 35394}# (#{f 35371}# (cdr #{x 35374}#)))) + (if (if (eq? #{a 35393}# (car #{x 35374}#)) + (eq? #{d 35394}# (cdr #{x 35374}#)) #f) - #{x 35064}# - (cons #{a 35083}# #{d 35084}#))) - (if (vector? #{x 35064}#) - (let ((#{old 35087}# (vector->list #{x 35064}#))) - (let ((#{new 35088}# (map #{f 35061}# #{old 35087}#))) + #{x 35374}# + (cons #{a 35393}# #{d 35394}#))) + (if (vector? #{x 35374}#) + (let ((#{old 35397}# (vector->list #{x 35374}#))) + (let ((#{new 35398}# (map #{f 35371}# #{old 35397}#))) (letrec* - ((#{lp 35089}# - (lambda (#{l1 35186}# #{l2 35187}#) - (if (null? #{l1 35186}#) - #{x 35064}# - (if (eq? (car #{l1 35186}#) - (car #{l2 35187}#)) - (#{lp 35089}# - (cdr #{l1 35186}#) - (cdr #{l2 35187}#)) - (list->vector #{new 35088}#)))))) - (#{lp 35089}# #{old 35087}# #{new 35088}#)))) - #{x 35064}#)))))) - (#{f 35061}# #{x 35059}#))))) - (#{gen-var 4460}# - (lambda (#{id 33789}#) - (let ((#{id 33790}# - (if (if (vector? #{id 33789}#) - (if (= (vector-length #{id 33789}#) 4) - (eq? (vector-ref #{id 33789}# 0) 'syntax-object) + ((#{lp 35399}# + (lambda (#{l1 35496}# #{l2 35497}#) + (if (null? #{l1 35496}#) + #{x 35374}# + (if (eq? (car #{l1 35496}#) + (car #{l2 35497}#)) + (#{lp 35399}# + (cdr #{l1 35496}#) + (cdr #{l2 35497}#)) + (list->vector #{new 35398}#)))))) + (#{lp 35399}# #{old 35397}# #{new 35398}#)))) + #{x 35374}#)))))) + (#{f 35371}# #{x 35369}#))))) + (#{gen-var 4457}# + (lambda (#{id 34099}#) + (let ((#{id 34100}# + (if (if (vector? #{id 34099}#) + (if (= (vector-length #{id 34099}#) 4) + (eq? (vector-ref #{id 34099}# 0) 'syntax-object) #f) #f) - (vector-ref #{id 33789}# 1) - #{id 33789}#))) + (vector-ref #{id 34099}# 1) + #{id 34099}#))) (gensym - (string-append (symbol->string #{id 33790}#) " "))))) - (#{lambda-var-list 4461}# - (lambda (#{vars 35188}#) + (string-append (symbol->string #{id 34100}#) " "))))) + (#{lambda-var-list 4458}# + (lambda (#{vars 35498}#) (letrec* - ((#{lvl 35189}# - (lambda (#{vars 35192}# #{ls 35193}# #{w 35194}#) - (if (pair? #{vars 35192}#) - (#{lvl 35189}# - (cdr #{vars 35192}#) - (cons (let ((#{x 35198}# (car #{vars 35192}#))) - (if (if (null? (car #{w 35194}#)) - (null? (cdr #{w 35194}#)) + ((#{lvl 35499}# + (lambda (#{vars 35502}# #{ls 35503}# #{w 35504}#) + (if (pair? #{vars 35502}#) + (#{lvl 35499}# + (cdr #{vars 35502}#) + (cons (let ((#{x 35508}# (car #{vars 35502}#))) + (if (if (null? (car #{w 35504}#)) + (null? (cdr #{w 35504}#)) #f) - #{x 35198}# - (if (if (vector? #{x 35198}#) - (if (= (vector-length #{x 35198}#) 4) - (eq? (vector-ref #{x 35198}# 0) + #{x 35508}# + (if (if (vector? #{x 35508}#) + (if (= (vector-length #{x 35508}#) 4) + (eq? (vector-ref #{x 35508}# 0) 'syntax-object) #f) #f) - (let ((#{expression 35216}# - (vector-ref #{x 35198}# 1)) - (#{wrap 35217}# - (let ((#{w2 35225}# - (vector-ref #{x 35198}# 2))) - (let ((#{m1 35226}# (car #{w 35194}#)) - (#{s1 35227}# (cdr #{w 35194}#))) - (if (null? #{m1 35226}#) - (if (null? #{s1 35227}#) - #{w2 35225}# - (cons (car #{w2 35225}#) - (let ((#{m2 35242}# - (cdr #{w2 35225}#))) - (if (null? #{m2 35242}#) - #{s1 35227}# + (let ((#{expression 35526}# + (vector-ref #{x 35508}# 1)) + (#{wrap 35527}# + (let ((#{w2 35535}# + (vector-ref #{x 35508}# 2))) + (let ((#{m1 35536}# (car #{w 35504}#)) + (#{s1 35537}# (cdr #{w 35504}#))) + (if (null? #{m1 35536}#) + (if (null? #{s1 35537}#) + #{w2 35535}# + (cons (car #{w2 35535}#) + (let ((#{m2 35552}# + (cdr #{w2 35535}#))) + (if (null? #{m2 35552}#) + #{s1 35537}# (append - #{s1 35227}# - #{m2 35242}#))))) - (cons (let ((#{m2 35250}# - (car #{w2 35225}#))) - (if (null? #{m2 35250}#) - #{m1 35226}# + #{s1 35537}# + #{m2 35552}#))))) + (cons (let ((#{m2 35560}# + (car #{w2 35535}#))) + (if (null? #{m2 35560}#) + #{m1 35536}# (append - #{m1 35226}# - #{m2 35250}#))) - (let ((#{m2 35258}# - (cdr #{w2 35225}#))) - (if (null? #{m2 35258}#) - #{s1 35227}# + #{m1 35536}# + #{m2 35560}#))) + (let ((#{m2 35568}# + (cdr #{w2 35535}#))) + (if (null? #{m2 35568}#) + #{s1 35537}# (append - #{s1 35227}# - #{m2 35258}#)))))))) - (#{module 35218}# - (vector-ref #{x 35198}# 3))) + #{s1 35537}# + #{m2 35568}#)))))))) + (#{module 35528}# + (vector-ref #{x 35508}# 3))) (vector 'syntax-object - #{expression 35216}# - #{wrap 35217}# - #{module 35218}#)) - (if (null? #{x 35198}#) - #{x 35198}# + #{expression 35526}# + #{wrap 35527}# + #{module 35528}#)) + (if (null? #{x 35508}#) + #{x 35508}# (vector 'syntax-object - #{x 35198}# - #{w 35194}# + #{x 35508}# + #{w 35504}# #f))))) - #{ls 35193}#) - #{w 35194}#) - (if (if (symbol? #{vars 35192}#) + #{ls 35503}#) + #{w 35504}#) + (if (if (symbol? #{vars 35502}#) #t - (if (if (vector? #{vars 35192}#) - (if (= (vector-length #{vars 35192}#) 4) - (eq? (vector-ref #{vars 35192}# 0) + (if (if (vector? #{vars 35502}#) + (if (= (vector-length #{vars 35502}#) 4) + (eq? (vector-ref #{vars 35502}# 0) 'syntax-object) #f) #f) - (symbol? (vector-ref #{vars 35192}# 1)) + (symbol? (vector-ref #{vars 35502}# 1)) #f)) - (cons (if (if (null? (car #{w 35194}#)) - (null? (cdr #{w 35194}#)) + (cons (if (if (null? (car #{w 35504}#)) + (null? (cdr #{w 35504}#)) #f) - #{vars 35192}# - (if (if (vector? #{vars 35192}#) - (if (= (vector-length #{vars 35192}#) 4) - (eq? (vector-ref #{vars 35192}# 0) + #{vars 35502}# + (if (if (vector? #{vars 35502}#) + (if (= (vector-length #{vars 35502}#) 4) + (eq? (vector-ref #{vars 35502}# 0) 'syntax-object) #f) #f) - (let ((#{expression 35328}# - (vector-ref #{vars 35192}# 1)) - (#{wrap 35329}# - (let ((#{w2 35339}# - (vector-ref #{vars 35192}# 2))) - (let ((#{m1 35340}# (car #{w 35194}#)) - (#{s1 35341}# (cdr #{w 35194}#))) - (if (null? #{m1 35340}#) - (if (null? #{s1 35341}#) - #{w2 35339}# - (cons (car #{w2 35339}#) - (let ((#{m2 35358}# - (cdr #{w2 35339}#))) - (if (null? #{m2 35358}#) - #{s1 35341}# + (let ((#{expression 35638}# + (vector-ref #{vars 35502}# 1)) + (#{wrap 35639}# + (let ((#{w2 35649}# + (vector-ref #{vars 35502}# 2))) + (let ((#{m1 35650}# (car #{w 35504}#)) + (#{s1 35651}# (cdr #{w 35504}#))) + (if (null? #{m1 35650}#) + (if (null? #{s1 35651}#) + #{w2 35649}# + (cons (car #{w2 35649}#) + (let ((#{m2 35668}# + (cdr #{w2 35649}#))) + (if (null? #{m2 35668}#) + #{s1 35651}# (append - #{s1 35341}# - #{m2 35358}#))))) - (cons (let ((#{m2 35366}# - (car #{w2 35339}#))) - (if (null? #{m2 35366}#) - #{m1 35340}# + #{s1 35651}# + #{m2 35668}#))))) + (cons (let ((#{m2 35676}# + (car #{w2 35649}#))) + (if (null? #{m2 35676}#) + #{m1 35650}# (append - #{m1 35340}# - #{m2 35366}#))) - (let ((#{m2 35374}# - (cdr #{w2 35339}#))) - (if (null? #{m2 35374}#) - #{s1 35341}# + #{m1 35650}# + #{m2 35676}#))) + (let ((#{m2 35684}# + (cdr #{w2 35649}#))) + (if (null? #{m2 35684}#) + #{s1 35651}# (append - #{s1 35341}# - #{m2 35374}#)))))))) - (#{module 35330}# - (vector-ref #{vars 35192}# 3))) + #{s1 35651}# + #{m2 35684}#)))))))) + (#{module 35640}# + (vector-ref #{vars 35502}# 3))) (vector 'syntax-object - #{expression 35328}# - #{wrap 35329}# - #{module 35330}#)) - (if (null? #{vars 35192}#) - #{vars 35192}# + #{expression 35638}# + #{wrap 35639}# + #{module 35640}#)) + (if (null? #{vars 35502}#) + #{vars 35502}# (vector 'syntax-object - #{vars 35192}# - #{w 35194}# + #{vars 35502}# + #{w 35504}# #f)))) - #{ls 35193}#) - (if (null? #{vars 35192}#) - #{ls 35193}# - (if (if (vector? #{vars 35192}#) - (if (= (vector-length #{vars 35192}#) 4) - (eq? (vector-ref #{vars 35192}# 0) + #{ls 35503}#) + (if (null? #{vars 35502}#) + #{ls 35503}# + (if (if (vector? #{vars 35502}#) + (if (= (vector-length #{vars 35502}#) 4) + (eq? (vector-ref #{vars 35502}# 0) 'syntax-object) #f) #f) - (#{lvl 35189}# - (vector-ref #{vars 35192}# 1) - #{ls 35193}# - (let ((#{w2 35415}# (vector-ref #{vars 35192}# 2))) - (let ((#{m1 35416}# (car #{w 35194}#)) - (#{s1 35417}# (cdr #{w 35194}#))) - (if (null? #{m1 35416}#) - (if (null? #{s1 35417}#) - #{w2 35415}# - (cons (car #{w2 35415}#) - (let ((#{m2 35428}# (cdr #{w2 35415}#))) - (if (null? #{m2 35428}#) - #{s1 35417}# + (#{lvl 35499}# + (vector-ref #{vars 35502}# 1) + #{ls 35503}# + (let ((#{w2 35725}# (vector-ref #{vars 35502}# 2))) + (let ((#{m1 35726}# (car #{w 35504}#)) + (#{s1 35727}# (cdr #{w 35504}#))) + (if (null? #{m1 35726}#) + (if (null? #{s1 35727}#) + #{w2 35725}# + (cons (car #{w2 35725}#) + (let ((#{m2 35738}# (cdr #{w2 35725}#))) + (if (null? #{m2 35738}#) + #{s1 35727}# (append - #{s1 35417}# - #{m2 35428}#))))) - (cons (let ((#{m2 35436}# (car #{w2 35415}#))) - (if (null? #{m2 35436}#) - #{m1 35416}# - (append #{m1 35416}# #{m2 35436}#))) - (let ((#{m2 35444}# (cdr #{w2 35415}#))) - (if (null? #{m2 35444}#) - #{s1 35417}# + #{s1 35727}# + #{m2 35738}#))))) + (cons (let ((#{m2 35746}# (car #{w2 35725}#))) + (if (null? #{m2 35746}#) + #{m1 35726}# + (append #{m1 35726}# #{m2 35746}#))) + (let ((#{m2 35754}# (cdr #{w2 35725}#))) + (if (null? #{m2 35754}#) + #{s1 35727}# (append - #{s1 35417}# - #{m2 35444}#)))))))) - (cons #{vars 35192}# #{ls 35193}#)))))))) - (#{lvl 35189}# #{vars 35188}# '() '(())))))) + #{s1 35727}# + #{m2 35754}#)))))))) + (cons #{vars 35502}# #{ls 35503}#)))))))) + (#{lvl 35499}# #{vars 35498}# '() '(())))))) (begin (module-define! (current-module) @@ -9091,2070 +9027,2070 @@ 'let-syntax 'local-syntax #f)) - (#{global-extend 4411}# + (#{global-extend 4408}# 'core 'syntax-parameterize - (lambda (#{e 4588}# - #{r 4589}# - #{w 4590}# - #{s 4591}# - #{mod 4592}#) - (let ((#{tmp 4594}# + (lambda (#{e 4585}# + #{r 4586}# + #{w 4587}# + #{s 4588}# + #{mod 4589}#) + (let ((#{tmp 4591}# ($sc-dispatch - #{e 4588}# + #{e 4585}# '(_ #(each (any any)) any . each-any)))) - (if (if #{tmp 4594}# + (if (if #{tmp 4591}# (@apply - (lambda (#{var 4598}# - #{val 4599}# - #{e1 4600}# - #{e2 4601}#) - (#{valid-bound-ids? 4436}# #{var 4598}#)) - #{tmp 4594}#) + (lambda (#{var 4595}# + #{val 4596}# + #{e1 4597}# + #{e2 4598}#) + (#{valid-bound-ids? 4433}# #{var 4595}#)) + #{tmp 4591}#) #f) (@apply - (lambda (#{var 4686}# - #{val 4687}# - #{e1 4688}# - #{e2 4689}#) - (let ((#{names 4690}# - (map (lambda (#{x 5039}#) + (lambda (#{var 4683}# + #{val 4684}# + #{e1 4685}# + #{e2 4686}#) + (let ((#{names 4687}# + (map (lambda (#{x 5036}#) (call-with-values (lambda () - (#{resolve-identifier 4433}# - #{x 5039}# - #{w 4590}# - #{r 4589}# - #{mod 4592}# + (#{resolve-identifier 4430}# + #{x 5036}# + #{w 4587}# + #{r 4586}# + #{mod 4589}# #f)) - (lambda (#{type 5042}# - #{value 5043}# - #{mod 5044}#) - (if (eqv? #{type 5042}# 'displaced-lexical) + (lambda (#{type 5039}# + #{value 5040}# + #{mod 5041}#) + (if (eqv? #{type 5039}# 'displaced-lexical) (syntax-violation 'syntax-parameterize "identifier out of context" - #{e 4588}# - (let ((#{x 5057}# + #{e 4585}# + (let ((#{x 5054}# (begin - (if (if (pair? #{x 5039}#) - #{s 4591}# + (if (if (pair? #{x 5036}#) + #{s 4588}# #f) (set-source-properties! - #{x 5039}# - #{s 4591}#)) - #{x 5039}#))) - (if (if (null? (car #{w 4590}#)) - (null? (cdr #{w 4590}#)) + #{x 5036}# + #{s 4588}#)) + #{x 5036}#))) + (if (if (null? (car #{w 4587}#)) + (null? (cdr #{w 4587}#)) #f) - #{x 5057}# - (if (if (vector? #{x 5057}#) + #{x 5054}# + (if (if (vector? #{x 5054}#) (if (= (vector-length - #{x 5057}#) + #{x 5054}#) 4) (eq? (vector-ref - #{x 5057}# + #{x 5054}# 0) 'syntax-object) #f) #f) - (let ((#{expression 5089}# - (vector-ref #{x 5057}# 1)) - (#{wrap 5090}# - (let ((#{w2 5098}# + (let ((#{expression 5086}# + (vector-ref #{x 5054}# 1)) + (#{wrap 5087}# + (let ((#{w2 5095}# (vector-ref - #{x 5057}# + #{x 5054}# 2))) - (let ((#{m1 5099}# - (car #{w 4590}#)) - (#{s1 5100}# - (cdr #{w 4590}#))) - (if (null? #{m1 5099}#) - (if (null? #{s1 5100}#) - #{w2 5098}# - (cons (car #{w2 5098}#) - (let ((#{m2 5115}# - (cdr #{w2 5098}#))) - (if (null? #{m2 5115}#) - #{s1 5100}# + (let ((#{m1 5096}# + (car #{w 4587}#)) + (#{s1 5097}# + (cdr #{w 4587}#))) + (if (null? #{m1 5096}#) + (if (null? #{s1 5097}#) + #{w2 5095}# + (cons (car #{w2 5095}#) + (let ((#{m2 5112}# + (cdr #{w2 5095}#))) + (if (null? #{m2 5112}#) + #{s1 5097}# (append - #{s1 5100}# - #{m2 5115}#))))) - (cons (let ((#{m2 5123}# - (car #{w2 5098}#))) - (if (null? #{m2 5123}#) - #{m1 5099}# + #{s1 5097}# + #{m2 5112}#))))) + (cons (let ((#{m2 5120}# + (car #{w2 5095}#))) + (if (null? #{m2 5120}#) + #{m1 5096}# (append - #{m1 5099}# - #{m2 5123}#))) - (let ((#{m2 5131}# - (cdr #{w2 5098}#))) - (if (null? #{m2 5131}#) - #{s1 5100}# + #{m1 5096}# + #{m2 5120}#))) + (let ((#{m2 5128}# + (cdr #{w2 5095}#))) + (if (null? #{m2 5128}#) + #{s1 5097}# (append - #{s1 5100}# - #{m2 5131}#)))))))) - (#{module 5091}# + #{s1 5097}# + #{m2 5128}#)))))))) + (#{module 5088}# (vector-ref - #{x 5057}# + #{x 5054}# 3))) (vector 'syntax-object - #{expression 5089}# - #{wrap 5090}# - #{module 5091}#)) - (if (null? #{x 5057}#) - #{x 5057}# + #{expression 5086}# + #{wrap 5087}# + #{module 5088}#)) + (if (null? #{x 5054}#) + #{x 5054}# (vector 'syntax-object - #{x 5057}# - #{w 4590}# - #{mod 5044}#)))))) - (if (eqv? #{type 5042}# 'syntax-parameter) - #{value 5043}# + #{x 5054}# + #{w 4587}# + #{mod 5041}#)))))) + (if (eqv? #{type 5039}# 'syntax-parameter) + #{value 5040}# (syntax-violation 'syntax-parameterize "invalid syntax parameter" - #{e 4588}# - (let ((#{x 5158}# + #{e 4585}# + (let ((#{x 5155}# (begin - (if (if (pair? #{x 5039}#) - #{s 4591}# + (if (if (pair? #{x 5036}#) + #{s 4588}# #f) (set-source-properties! - #{x 5039}# - #{s 4591}#)) - #{x 5039}#))) - (if (if (null? (car #{w 4590}#)) - (null? (cdr #{w 4590}#)) + #{x 5036}# + #{s 4588}#)) + #{x 5036}#))) + (if (if (null? (car #{w 4587}#)) + (null? (cdr #{w 4587}#)) #f) - #{x 5158}# - (if (if (vector? #{x 5158}#) + #{x 5155}# + (if (if (vector? #{x 5155}#) (if (= (vector-length - #{x 5158}#) + #{x 5155}#) 4) (eq? (vector-ref - #{x 5158}# + #{x 5155}# 0) 'syntax-object) #f) #f) - (let ((#{expression 5190}# + (let ((#{expression 5187}# (vector-ref - #{x 5158}# + #{x 5155}# 1)) - (#{wrap 5191}# - (let ((#{w2 5199}# + (#{wrap 5188}# + (let ((#{w2 5196}# (vector-ref - #{x 5158}# + #{x 5155}# 2))) - (let ((#{m1 5200}# - (car #{w 4590}#)) - (#{s1 5201}# - (cdr #{w 4590}#))) - (if (null? #{m1 5200}#) - (if (null? #{s1 5201}#) - #{w2 5199}# - (cons (car #{w2 5199}#) - (let ((#{m2 5216}# - (cdr #{w2 5199}#))) - (if (null? #{m2 5216}#) - #{s1 5201}# + (let ((#{m1 5197}# + (car #{w 4587}#)) + (#{s1 5198}# + (cdr #{w 4587}#))) + (if (null? #{m1 5197}#) + (if (null? #{s1 5198}#) + #{w2 5196}# + (cons (car #{w2 5196}#) + (let ((#{m2 5213}# + (cdr #{w2 5196}#))) + (if (null? #{m2 5213}#) + #{s1 5198}# (append - #{s1 5201}# - #{m2 5216}#))))) - (cons (let ((#{m2 5224}# - (car #{w2 5199}#))) - (if (null? #{m2 5224}#) - #{m1 5200}# + #{s1 5198}# + #{m2 5213}#))))) + (cons (let ((#{m2 5221}# + (car #{w2 5196}#))) + (if (null? #{m2 5221}#) + #{m1 5197}# (append - #{m1 5200}# - #{m2 5224}#))) - (let ((#{m2 5232}# - (cdr #{w2 5199}#))) - (if (null? #{m2 5232}#) - #{s1 5201}# + #{m1 5197}# + #{m2 5221}#))) + (let ((#{m2 5229}# + (cdr #{w2 5196}#))) + (if (null? #{m2 5229}#) + #{s1 5198}# (append - #{s1 5201}# - #{m2 5232}#)))))))) - (#{module 5192}# + #{s1 5198}# + #{m2 5229}#)))))))) + (#{module 5189}# (vector-ref - #{x 5158}# + #{x 5155}# 3))) (vector 'syntax-object - #{expression 5190}# - #{wrap 5191}# - #{module 5192}#)) - (if (null? #{x 5158}#) - #{x 5158}# + #{expression 5187}# + #{wrap 5188}# + #{module 5189}#)) + (if (null? #{x 5155}#) + #{x 5155}# (vector 'syntax-object - #{x 5158}# - #{w 4590}# - #{mod 5044}#))))))))))) - #{var 4686}#)) - (#{bindings 4691}# - (let ((#{trans-r 5247}# - (#{macros-only-env 4410}# #{r 4589}#))) - (map (lambda (#{x 5248}#) + #{x 5155}# + #{w 4587}# + #{mod 5041}#))))))))))) + #{var 4683}#)) + (#{bindings 4688}# + (let ((#{trans-r 5244}# + (#{macros-only-env 4407}# #{r 4586}#))) + (map (lambda (#{x 5245}#) (cons 'macro - (#{eval-local-transformer 4452}# - (#{chi 4446}# - #{x 5248}# - #{trans-r 5247}# - #{w 4590}# - #{mod 4592}#) - #{mod 4592}#))) - #{val 4687}#)))) - (#{chi-body 4450}# - (cons #{e1 4688}# #{e2 4689}#) - (let ((#{x 4703}# + (#{eval-local-transformer 4449}# + (#{expand 4443}# + #{x 5245}# + #{trans-r 5244}# + #{w 4587}# + #{mod 4589}#) + #{mod 4589}#))) + #{val 4684}#)))) + (#{expand-body 4447}# + (cons #{e1 4685}# #{e2 4686}#) + (let ((#{x 4700}# (begin - (if (if (pair? #{e 4588}#) #{s 4591}# #f) - (set-source-properties! #{e 4588}# #{s 4591}#)) - #{e 4588}#))) - (if (if (null? (car #{w 4590}#)) - (null? (cdr #{w 4590}#)) + (if (if (pair? #{e 4585}#) #{s 4588}# #f) + (set-source-properties! #{e 4585}# #{s 4588}#)) + #{e 4585}#))) + (if (if (null? (car #{w 4587}#)) + (null? (cdr #{w 4587}#)) #f) - #{x 4703}# - (if (if (vector? #{x 4703}#) - (if (= (vector-length #{x 4703}#) 4) - (eq? (vector-ref #{x 4703}# 0) 'syntax-object) + #{x 4700}# + (if (if (vector? #{x 4700}#) + (if (= (vector-length #{x 4700}#) 4) + (eq? (vector-ref #{x 4700}# 0) 'syntax-object) #f) #f) - (let ((#{expression 4735}# (vector-ref #{x 4703}# 1)) - (#{wrap 4736}# - (let ((#{w2 4744}# - (vector-ref #{x 4703}# 2))) - (let ((#{m1 4745}# (car #{w 4590}#)) - (#{s1 4746}# (cdr #{w 4590}#))) - (if (null? #{m1 4745}#) - (if (null? #{s1 4746}#) - #{w2 4744}# - (cons (car #{w2 4744}#) - (let ((#{m2 4761}# - (cdr #{w2 4744}#))) - (if (null? #{m2 4761}#) - #{s1 4746}# + (let ((#{expression 4732}# (vector-ref #{x 4700}# 1)) + (#{wrap 4733}# + (let ((#{w2 4741}# + (vector-ref #{x 4700}# 2))) + (let ((#{m1 4742}# (car #{w 4587}#)) + (#{s1 4743}# (cdr #{w 4587}#))) + (if (null? #{m1 4742}#) + (if (null? #{s1 4743}#) + #{w2 4741}# + (cons (car #{w2 4741}#) + (let ((#{m2 4758}# + (cdr #{w2 4741}#))) + (if (null? #{m2 4758}#) + #{s1 4743}# (append - #{s1 4746}# - #{m2 4761}#))))) - (cons (let ((#{m2 4769}# - (car #{w2 4744}#))) - (if (null? #{m2 4769}#) - #{m1 4745}# + #{s1 4743}# + #{m2 4758}#))))) + (cons (let ((#{m2 4766}# + (car #{w2 4741}#))) + (if (null? #{m2 4766}#) + #{m1 4742}# (append - #{m1 4745}# - #{m2 4769}#))) - (let ((#{m2 4777}# - (cdr #{w2 4744}#))) - (if (null? #{m2 4777}#) - #{s1 4746}# + #{m1 4742}# + #{m2 4766}#))) + (let ((#{m2 4774}# + (cdr #{w2 4741}#))) + (if (null? #{m2 4774}#) + #{s1 4743}# (append - #{s1 4746}# - #{m2 4777}#)))))))) - (#{module 4737}# (vector-ref #{x 4703}# 3))) + #{s1 4743}# + #{m2 4774}#)))))))) + (#{module 4734}# (vector-ref #{x 4700}# 3))) (vector 'syntax-object - #{expression 4735}# - #{wrap 4736}# - #{module 4737}#)) - (if (null? #{x 4703}#) - #{x 4703}# + #{expression 4732}# + #{wrap 4733}# + #{module 4734}#)) + (if (null? #{x 4700}#) + #{x 4700}# (vector 'syntax-object - #{x 4703}# - #{w 4590}# - #{mod 4592}#))))) - (#{extend-env 4408}# - #{names 4690}# - #{bindings 4691}# - #{r 4589}#) - #{w 4590}# - #{mod 4592}#))) - #{tmp 4594}#) + #{x 4700}# + #{w 4587}# + #{mod 4589}#))))) + (#{extend-env 4405}# + #{names 4687}# + #{bindings 4688}# + #{r 4586}#) + #{w 4587}# + #{mod 4589}#))) + #{tmp 4591}#) (syntax-violation 'syntax-parameterize "bad syntax" - (let ((#{x 5472}# + (let ((#{x 5469}# (begin - (if (if (pair? #{e 4588}#) #{s 4591}# #f) - (set-source-properties! #{e 4588}# #{s 4591}#)) - #{e 4588}#))) - (if (if (null? (car #{w 4590}#)) - (null? (cdr #{w 4590}#)) + (if (if (pair? #{e 4585}#) #{s 4588}# #f) + (set-source-properties! #{e 4585}# #{s 4588}#)) + #{e 4585}#))) + (if (if (null? (car #{w 4587}#)) + (null? (cdr #{w 4587}#)) #f) - #{x 5472}# - (if (if (vector? #{x 5472}#) - (if (= (vector-length #{x 5472}#) 4) - (eq? (vector-ref #{x 5472}# 0) 'syntax-object) + #{x 5469}# + (if (if (vector? #{x 5469}#) + (if (= (vector-length #{x 5469}#) 4) + (eq? (vector-ref #{x 5469}# 0) 'syntax-object) #f) #f) - (let ((#{expression 5504}# (vector-ref #{x 5472}# 1)) - (#{wrap 5505}# - (let ((#{w2 5513}# (vector-ref #{x 5472}# 2))) - (let ((#{m1 5514}# (car #{w 4590}#)) - (#{s1 5515}# (cdr #{w 4590}#))) - (if (null? #{m1 5514}#) - (if (null? #{s1 5515}#) - #{w2 5513}# - (cons (car #{w2 5513}#) - (let ((#{m2 5530}# - (cdr #{w2 5513}#))) - (if (null? #{m2 5530}#) - #{s1 5515}# + (let ((#{expression 5501}# (vector-ref #{x 5469}# 1)) + (#{wrap 5502}# + (let ((#{w2 5510}# (vector-ref #{x 5469}# 2))) + (let ((#{m1 5511}# (car #{w 4587}#)) + (#{s1 5512}# (cdr #{w 4587}#))) + (if (null? #{m1 5511}#) + (if (null? #{s1 5512}#) + #{w2 5510}# + (cons (car #{w2 5510}#) + (let ((#{m2 5527}# + (cdr #{w2 5510}#))) + (if (null? #{m2 5527}#) + #{s1 5512}# (append - #{s1 5515}# - #{m2 5530}#))))) - (cons (let ((#{m2 5538}# (car #{w2 5513}#))) - (if (null? #{m2 5538}#) - #{m1 5514}# - (append #{m1 5514}# #{m2 5538}#))) - (let ((#{m2 5546}# (cdr #{w2 5513}#))) - (if (null? #{m2 5546}#) - #{s1 5515}# + #{s1 5512}# + #{m2 5527}#))))) + (cons (let ((#{m2 5535}# (car #{w2 5510}#))) + (if (null? #{m2 5535}#) + #{m1 5511}# + (append #{m1 5511}# #{m2 5535}#))) + (let ((#{m2 5543}# (cdr #{w2 5510}#))) + (if (null? #{m2 5543}#) + #{s1 5512}# (append - #{s1 5515}# - #{m2 5546}#)))))))) - (#{module 5506}# (vector-ref #{x 5472}# 3))) + #{s1 5512}# + #{m2 5543}#)))))))) + (#{module 5503}# (vector-ref #{x 5469}# 3))) (vector 'syntax-object - #{expression 5504}# - #{wrap 5505}# - #{module 5506}#)) - (if (null? #{x 5472}#) - #{x 5472}# + #{expression 5501}# + #{wrap 5502}# + #{module 5503}#)) + (if (null? #{x 5469}#) + #{x 5469}# (vector 'syntax-object - #{x 5472}# - #{w 4590}# - #{mod 4592}#)))))))))) + #{x 5469}# + #{w 4587}# + #{mod 4589}#)))))))))) (module-define! (current-module) 'quote (make-syntax-transformer 'quote 'core - (lambda (#{e 5574}# - #{r 5575}# - #{w 5576}# - #{s 5577}# - #{mod 5578}#) - (let ((#{tmp 5580}# ($sc-dispatch #{e 5574}# '(_ any)))) - (if #{tmp 5580}# + (lambda (#{e 5571}# + #{r 5572}# + #{w 5573}# + #{s 5574}# + #{mod 5575}#) + (let ((#{tmp 5577}# ($sc-dispatch #{e 5571}# '(_ any)))) + (if #{tmp 5577}# (@apply - (lambda (#{e 5583}#) - (let ((#{exp 5587}# - (#{strip 4459}# #{e 5583}# #{w 5576}#))) + (lambda (#{e 5580}#) + (let ((#{exp 5584}# + (#{strip 4456}# #{e 5580}# #{w 5573}#))) (make-struct/no-tail (vector-ref %expanded-vtables 1) - #{s 5577}# - #{exp 5587}#))) - #{tmp 5580}#) + #{s 5574}# + #{exp 5584}#))) + #{tmp 5577}#) (syntax-violation 'quote "bad syntax" - (let ((#{x 5601}# + (let ((#{x 5598}# (begin - (if (if (pair? #{e 5574}#) #{s 5577}# #f) - (set-source-properties! #{e 5574}# #{s 5577}#)) - #{e 5574}#))) - (if (if (null? (car #{w 5576}#)) - (null? (cdr #{w 5576}#)) + (if (if (pair? #{e 5571}#) #{s 5574}# #f) + (set-source-properties! #{e 5571}# #{s 5574}#)) + #{e 5571}#))) + (if (if (null? (car #{w 5573}#)) + (null? (cdr #{w 5573}#)) #f) - #{x 5601}# - (if (if (vector? #{x 5601}#) - (if (= (vector-length #{x 5601}#) 4) - (eq? (vector-ref #{x 5601}# 0) 'syntax-object) + #{x 5598}# + (if (if (vector? #{x 5598}#) + (if (= (vector-length #{x 5598}#) 4) + (eq? (vector-ref #{x 5598}# 0) 'syntax-object) #f) #f) - (let ((#{expression 5633}# (vector-ref #{x 5601}# 1)) - (#{wrap 5634}# - (let ((#{w2 5642}# (vector-ref #{x 5601}# 2))) - (let ((#{m1 5643}# (car #{w 5576}#)) - (#{s1 5644}# (cdr #{w 5576}#))) - (if (null? #{m1 5643}#) - (if (null? #{s1 5644}#) - #{w2 5642}# - (cons (car #{w2 5642}#) - (let ((#{m2 5659}# - (cdr #{w2 5642}#))) - (if (null? #{m2 5659}#) - #{s1 5644}# + (let ((#{expression 5630}# (vector-ref #{x 5598}# 1)) + (#{wrap 5631}# + (let ((#{w2 5639}# (vector-ref #{x 5598}# 2))) + (let ((#{m1 5640}# (car #{w 5573}#)) + (#{s1 5641}# (cdr #{w 5573}#))) + (if (null? #{m1 5640}#) + (if (null? #{s1 5641}#) + #{w2 5639}# + (cons (car #{w2 5639}#) + (let ((#{m2 5656}# + (cdr #{w2 5639}#))) + (if (null? #{m2 5656}#) + #{s1 5641}# (append - #{s1 5644}# - #{m2 5659}#))))) - (cons (let ((#{m2 5667}# - (car #{w2 5642}#))) - (if (null? #{m2 5667}#) - #{m1 5643}# + #{s1 5641}# + #{m2 5656}#))))) + (cons (let ((#{m2 5664}# + (car #{w2 5639}#))) + (if (null? #{m2 5664}#) + #{m1 5640}# (append - #{m1 5643}# - #{m2 5667}#))) - (let ((#{m2 5675}# - (cdr #{w2 5642}#))) - (if (null? #{m2 5675}#) - #{s1 5644}# + #{m1 5640}# + #{m2 5664}#))) + (let ((#{m2 5672}# + (cdr #{w2 5639}#))) + (if (null? #{m2 5672}#) + #{s1 5641}# (append - #{s1 5644}# - #{m2 5675}#)))))))) - (#{module 5635}# (vector-ref #{x 5601}# 3))) + #{s1 5641}# + #{m2 5672}#)))))))) + (#{module 5632}# (vector-ref #{x 5598}# 3))) (vector 'syntax-object - #{expression 5633}# - #{wrap 5634}# - #{module 5635}#)) - (if (null? #{x 5601}#) - #{x 5601}# + #{expression 5630}# + #{wrap 5631}# + #{module 5632}#)) + (if (null? #{x 5598}#) + #{x 5598}# (vector 'syntax-object - #{x 5601}# - #{w 5576}# - #{mod 5578}#))))))))))) - (#{global-extend 4411}# + #{x 5598}# + #{w 5573}# + #{mod 5575}#))))))))))) + (#{global-extend 4408}# 'core 'syntax (letrec* - ((#{gen-syntax 5899}# - (lambda (#{src 6362}# - #{e 6363}# - #{r 6364}# - #{maps 6365}# - #{ellipsis? 6366}# - #{mod 6367}#) - (if (if (symbol? #{e 6363}#) + ((#{gen-syntax 5896}# + (lambda (#{src 6359}# + #{e 6360}# + #{r 6361}# + #{maps 6362}# + #{ellipsis? 6363}# + #{mod 6364}#) + (if (if (symbol? #{e 6360}#) #t - (if (if (vector? #{e 6363}#) - (if (= (vector-length #{e 6363}#) 4) - (eq? (vector-ref #{e 6363}# 0) 'syntax-object) + (if (if (vector? #{e 6360}#) + (if (= (vector-length #{e 6360}#) 4) + (eq? (vector-ref #{e 6360}# 0) 'syntax-object) #f) #f) - (symbol? (vector-ref #{e 6363}# 1)) + (symbol? (vector-ref #{e 6360}# 1)) #f)) (call-with-values (lambda () - (#{resolve-identifier 4433}# - #{e 6363}# + (#{resolve-identifier 4430}# + #{e 6360}# '(()) - #{r 6364}# - #{mod 6367}# + #{r 6361}# + #{mod 6364}# #f)) - (lambda (#{type 6396}# #{value 6397}# #{mod 6398}#) - (if (eqv? #{type 6396}# 'syntax) + (lambda (#{type 6393}# #{value 6394}# #{mod 6395}#) + (if (eqv? #{type 6393}# 'syntax) (call-with-values (lambda () - (#{gen-ref 5900}# - #{src 6362}# - (car #{value 6397}#) - (cdr #{value 6397}#) - #{maps 6365}#)) - (lambda (#{var 6404}# #{maps 6405}#) - (values (list 'ref #{var 6404}#) #{maps 6405}#))) - (if (#{ellipsis? 6366}# #{e 6363}#) + (#{gen-ref 5897}# + #{src 6359}# + (car #{value 6394}#) + (cdr #{value 6394}#) + #{maps 6362}#)) + (lambda (#{var 6401}# #{maps 6402}#) + (values (list 'ref #{var 6401}#) #{maps 6402}#))) + (if (#{ellipsis? 6363}# #{e 6360}#) (syntax-violation 'syntax "misplaced ellipsis" - #{src 6362}#) - (values (list 'quote #{e 6363}#) #{maps 6365}#))))) - (let ((#{tmp 6407}# - ($sc-dispatch #{e 6363}# '(any any)))) - (if (if #{tmp 6407}# + #{src 6359}#) + (values (list 'quote #{e 6360}#) #{maps 6362}#))))) + (let ((#{tmp 6404}# + ($sc-dispatch #{e 6360}# '(any any)))) + (if (if #{tmp 6404}# (@apply - (lambda (#{dots 6411}# #{e 6412}#) - (#{ellipsis? 6366}# #{dots 6411}#)) - #{tmp 6407}#) + (lambda (#{dots 6408}# #{e 6409}#) + (#{ellipsis? 6363}# #{dots 6408}#)) + #{tmp 6404}#) #f) (@apply - (lambda (#{dots 6413}# #{e 6414}#) - (#{gen-syntax 5899}# - #{src 6362}# - #{e 6414}# - #{r 6364}# - #{maps 6365}# - (lambda (#{x 6415}#) #f) - #{mod 6367}#)) - #{tmp 6407}#) - (let ((#{tmp 6416}# - ($sc-dispatch #{e 6363}# '(any any . any)))) - (if (if #{tmp 6416}# + (lambda (#{dots 6410}# #{e 6411}#) + (#{gen-syntax 5896}# + #{src 6359}# + #{e 6411}# + #{r 6361}# + #{maps 6362}# + (lambda (#{x 6412}#) #f) + #{mod 6364}#)) + #{tmp 6404}#) + (let ((#{tmp 6413}# + ($sc-dispatch #{e 6360}# '(any any . any)))) + (if (if #{tmp 6413}# (@apply - (lambda (#{x 6420}# #{dots 6421}# #{y 6422}#) - (#{ellipsis? 6366}# #{dots 6421}#)) - #{tmp 6416}#) + (lambda (#{x 6417}# #{dots 6418}# #{y 6419}#) + (#{ellipsis? 6363}# #{dots 6418}#)) + #{tmp 6413}#) #f) (@apply - (lambda (#{x 6423}# #{dots 6424}# #{y 6425}#) + (lambda (#{x 6420}# #{dots 6421}# #{y 6422}#) (letrec* - ((#{f 6426}# - (lambda (#{y 6434}# #{k 6435}#) - (let ((#{tmp 6437}# + ((#{f 6423}# + (lambda (#{y 6431}# #{k 6432}#) + (let ((#{tmp 6434}# ($sc-dispatch - #{y 6434}# + #{y 6431}# '(any . any)))) - (if (if #{tmp 6437}# + (if (if #{tmp 6434}# (@apply - (lambda (#{dots 6441}# #{y 6442}#) - (#{ellipsis? 6366}# - #{dots 6441}#)) - #{tmp 6437}#) + (lambda (#{dots 6438}# #{y 6439}#) + (#{ellipsis? 6363}# + #{dots 6438}#)) + #{tmp 6434}#) #f) (@apply - (lambda (#{dots 6443}# #{y 6444}#) - (#{f 6426}# - #{y 6444}# - (lambda (#{maps 6445}#) + (lambda (#{dots 6440}# #{y 6441}#) + (#{f 6423}# + #{y 6441}# + (lambda (#{maps 6442}#) (call-with-values (lambda () - (#{k 6435}# - (cons '() #{maps 6445}#))) - (lambda (#{x 6446}# - #{maps 6447}#) - (if (null? (car #{maps 6447}#)) + (#{k 6432}# + (cons '() #{maps 6442}#))) + (lambda (#{x 6443}# + #{maps 6444}#) + (if (null? (car #{maps 6444}#)) (syntax-violation 'syntax "extra ellipsis" - #{src 6362}#) + #{src 6359}#) (values - (let ((#{map-env 6451}# - (car #{maps 6447}#))) + (let ((#{map-env 6448}# + (car #{maps 6444}#))) (list 'apply '(primitive append) - (#{gen-map 5902}# - #{x 6446}# - #{map-env 6451}#))) - (cdr #{maps 6447}#)))))))) - #{tmp 6437}#) + (#{gen-map 5899}# + #{x 6443}# + #{map-env 6448}#))) + (cdr #{maps 6444}#)))))))) + #{tmp 6434}#) (call-with-values (lambda () - (#{gen-syntax 5899}# - #{src 6362}# - #{y 6434}# - #{r 6364}# - #{maps 6365}# - #{ellipsis? 6366}# - #{mod 6367}#)) - (lambda (#{y 6454}# #{maps 6455}#) + (#{gen-syntax 5896}# + #{src 6359}# + #{y 6431}# + #{r 6361}# + #{maps 6362}# + #{ellipsis? 6363}# + #{mod 6364}#)) + (lambda (#{y 6451}# #{maps 6452}#) (call-with-values (lambda () - (#{k 6435}# #{maps 6455}#)) - (lambda (#{x 6456}# #{maps 6457}#) + (#{k 6432}# #{maps 6452}#)) + (lambda (#{x 6453}# #{maps 6454}#) (values - (if (equal? #{y 6454}# ''()) - #{x 6456}# + (if (equal? #{y 6451}# ''()) + #{x 6453}# (list 'append - #{x 6456}# - #{y 6454}#)) - #{maps 6457}#)))))))))) - (#{f 6426}# - #{y 6425}# - (lambda (#{maps 6429}#) + #{x 6453}# + #{y 6451}#)) + #{maps 6454}#)))))))))) + (#{f 6423}# + #{y 6422}# + (lambda (#{maps 6426}#) (call-with-values (lambda () - (#{gen-syntax 5899}# - #{src 6362}# - #{x 6423}# - #{r 6364}# - (cons '() #{maps 6429}#) - #{ellipsis? 6366}# - #{mod 6367}#)) - (lambda (#{x 6430}# #{maps 6431}#) - (if (null? (car #{maps 6431}#)) + (#{gen-syntax 5896}# + #{src 6359}# + #{x 6420}# + #{r 6361}# + (cons '() #{maps 6426}#) + #{ellipsis? 6363}# + #{mod 6364}#)) + (lambda (#{x 6427}# #{maps 6428}#) + (if (null? (car #{maps 6428}#)) (syntax-violation 'syntax "extra ellipsis" - #{src 6362}#) + #{src 6359}#) (values - (#{gen-map 5902}# - #{x 6430}# - (car #{maps 6431}#)) - (cdr #{maps 6431}#))))))))) - #{tmp 6416}#) - (let ((#{tmp 6473}# - ($sc-dispatch #{e 6363}# '(any . any)))) - (if #{tmp 6473}# + (#{gen-map 5899}# + #{x 6427}# + (car #{maps 6428}#)) + (cdr #{maps 6428}#))))))))) + #{tmp 6413}#) + (let ((#{tmp 6470}# + ($sc-dispatch #{e 6360}# '(any . any)))) + (if #{tmp 6470}# (@apply - (lambda (#{x 6477}# #{y 6478}#) + (lambda (#{x 6474}# #{y 6475}#) (call-with-values (lambda () - (#{gen-syntax 5899}# - #{src 6362}# - #{x 6477}# - #{r 6364}# - #{maps 6365}# - #{ellipsis? 6366}# - #{mod 6367}#)) - (lambda (#{x 6479}# #{maps 6480}#) + (#{gen-syntax 5896}# + #{src 6359}# + #{x 6474}# + #{r 6361}# + #{maps 6362}# + #{ellipsis? 6363}# + #{mod 6364}#)) + (lambda (#{x 6476}# #{maps 6477}#) (call-with-values (lambda () - (#{gen-syntax 5899}# - #{src 6362}# - #{y 6478}# - #{r 6364}# - #{maps 6480}# - #{ellipsis? 6366}# - #{mod 6367}#)) - (lambda (#{y 6481}# #{maps 6482}#) + (#{gen-syntax 5896}# + #{src 6359}# + #{y 6475}# + #{r 6361}# + #{maps 6477}# + #{ellipsis? 6363}# + #{mod 6364}#)) + (lambda (#{y 6478}# #{maps 6479}#) (values - (let ((#{atom-key 6487}# - (car #{y 6481}#))) - (if (eqv? #{atom-key 6487}# 'quote) - (if (eq? (car #{x 6479}#) 'quote) + (let ((#{atom-key 6484}# + (car #{y 6478}#))) + (if (eqv? #{atom-key 6484}# 'quote) + (if (eq? (car #{x 6476}#) 'quote) (list 'quote - (cons (car (cdr #{x 6479}#)) - (car (cdr #{y 6481}#)))) - (if (eq? (car (cdr #{y 6481}#)) + (cons (car (cdr #{x 6476}#)) + (car (cdr #{y 6478}#)))) + (if (eq? (car (cdr #{y 6478}#)) '()) - (list 'list #{x 6479}#) + (list 'list #{x 6476}#) (list 'cons - #{x 6479}# - #{y 6481}#))) - (if (eqv? #{atom-key 6487}# 'list) + #{x 6476}# + #{y 6478}#))) + (if (eqv? #{atom-key 6484}# 'list) (cons 'list - (cons #{x 6479}# - (cdr #{y 6481}#))) + (cons #{x 6476}# + (cdr #{y 6478}#))) (list 'cons - #{x 6479}# - #{y 6481}#)))) - #{maps 6482}#)))))) - #{tmp 6473}#) - (let ((#{tmp 6516}# + #{x 6476}# + #{y 6478}#)))) + #{maps 6479}#)))))) + #{tmp 6470}#) + (let ((#{tmp 6513}# ($sc-dispatch - #{e 6363}# + #{e 6360}# '#(vector (any . each-any))))) - (if #{tmp 6516}# + (if #{tmp 6513}# (@apply - (lambda (#{e1 6520}# #{e2 6521}#) + (lambda (#{e1 6517}# #{e2 6518}#) (call-with-values (lambda () - (#{gen-syntax 5899}# - #{src 6362}# - (cons #{e1 6520}# #{e2 6521}#) - #{r 6364}# - #{maps 6365}# - #{ellipsis? 6366}# - #{mod 6367}#)) - (lambda (#{e 6522}# #{maps 6523}#) + (#{gen-syntax 5896}# + #{src 6359}# + (cons #{e1 6517}# #{e2 6518}#) + #{r 6361}# + #{maps 6362}# + #{ellipsis? 6363}# + #{mod 6364}#)) + (lambda (#{e 6519}# #{maps 6520}#) (values - (if (eq? (car #{e 6522}#) 'list) - (cons 'vector (cdr #{e 6522}#)) - (if (eq? (car #{e 6522}#) 'quote) + (if (eq? (car #{e 6519}#) 'list) + (cons 'vector (cdr #{e 6519}#)) + (if (eq? (car #{e 6519}#) 'quote) (list 'quote (list->vector - (car (cdr #{e 6522}#)))) - (list 'list->vector #{e 6522}#))) - #{maps 6523}#)))) - #{tmp 6516}#) + (car (cdr #{e 6519}#)))) + (list 'list->vector #{e 6519}#))) + #{maps 6520}#)))) + #{tmp 6513}#) (values - (list 'quote #{e 6363}#) - #{maps 6365}#)))))))))))) - (#{gen-ref 5900}# - (lambda (#{src 6550}# - #{var 6551}# - #{level 6552}# - #{maps 6553}#) - (if (= #{level 6552}# 0) - (values #{var 6551}# #{maps 6553}#) - (if (null? #{maps 6553}#) + (list 'quote #{e 6360}#) + #{maps 6362}#)))))))))))) + (#{gen-ref 5897}# + (lambda (#{src 6547}# + #{var 6548}# + #{level 6549}# + #{maps 6550}#) + (if (= #{level 6549}# 0) + (values #{var 6548}# #{maps 6550}#) + (if (null? #{maps 6550}#) (syntax-violation 'syntax "missing ellipsis" - #{src 6550}#) + #{src 6547}#) (call-with-values (lambda () - (#{gen-ref 5900}# - #{src 6550}# - #{var 6551}# - (#{1-}# #{level 6552}#) - (cdr #{maps 6553}#))) - (lambda (#{outer-var 6554}# #{outer-maps 6555}#) - (let ((#{b 6556}# - (assq #{outer-var 6554}# (car #{maps 6553}#)))) - (if #{b 6556}# - (values (cdr #{b 6556}#) #{maps 6553}#) - (let ((#{inner-var 6558}# + (#{gen-ref 5897}# + #{src 6547}# + #{var 6548}# + (#{1-}# #{level 6549}#) + (cdr #{maps 6550}#))) + (lambda (#{outer-var 6551}# #{outer-maps 6552}#) + (let ((#{b 6553}# + (assq #{outer-var 6551}# (car #{maps 6550}#)))) + (if #{b 6553}# + (values (cdr #{b 6553}#) #{maps 6550}#) + (let ((#{inner-var 6555}# (gensym (string-append (symbol->string 'tmp) " ")))) (values - #{inner-var 6558}# - (cons (cons (cons #{outer-var 6554}# - #{inner-var 6558}#) - (car #{maps 6553}#)) - #{outer-maps 6555}#))))))))))) - (#{gen-map 5902}# - (lambda (#{e 6572}# #{map-env 6573}#) - (let ((#{formals 6574}# (map cdr #{map-env 6573}#)) - (#{actuals 6575}# - (map (lambda (#{x 6577}#) - (list 'ref (car #{x 6577}#))) - #{map-env 6573}#))) - (if (eq? (car #{e 6572}#) 'ref) - (car #{actuals 6575}#) + #{inner-var 6555}# + (cons (cons (cons #{outer-var 6551}# + #{inner-var 6555}#) + (car #{maps 6550}#)) + #{outer-maps 6552}#))))))))))) + (#{gen-map 5899}# + (lambda (#{e 6569}# #{map-env 6570}#) + (let ((#{formals 6571}# (map cdr #{map-env 6570}#)) + (#{actuals 6572}# + (map (lambda (#{x 6574}#) + (list 'ref (car #{x 6574}#))) + #{map-env 6570}#))) + (if (eq? (car #{e 6569}#) 'ref) + (car #{actuals 6572}#) (if (and-map - (lambda (#{x 6578}#) - (if (eq? (car #{x 6578}#) 'ref) - (memq (car (cdr #{x 6578}#)) #{formals 6574}#) + (lambda (#{x 6575}#) + (if (eq? (car #{x 6575}#) 'ref) + (memq (car (cdr #{x 6575}#)) #{formals 6571}#) #f)) - (cdr #{e 6572}#)) + (cdr #{e 6569}#)) (cons 'map - (cons (list 'primitive (car #{e 6572}#)) - (map (let ((#{r 6580}# + (cons (list 'primitive (car #{e 6569}#)) + (map (let ((#{r 6577}# (map cons - #{formals 6574}# - #{actuals 6575}#))) - (lambda (#{x 6581}#) - (cdr (assq (car (cdr #{x 6581}#)) - #{r 6580}#)))) - (cdr #{e 6572}#)))) + #{formals 6571}# + #{actuals 6572}#))) + (lambda (#{x 6578}#) + (cdr (assq (car (cdr #{x 6578}#)) + #{r 6577}#)))) + (cdr #{e 6569}#)))) (cons 'map - (cons (list 'lambda #{formals 6574}# #{e 6572}#) - #{actuals 6575}#))))))) - (#{regen 5906}# - (lambda (#{x 6583}#) - (let ((#{atom-key 6584}# (car #{x 6583}#))) - (if (eqv? #{atom-key 6584}# 'ref) - (let ((#{name 6594}# (car (cdr #{x 6583}#))) - (#{var 6595}# (car (cdr #{x 6583}#)))) + (cons (list 'lambda #{formals 6571}# #{e 6569}#) + #{actuals 6572}#))))))) + (#{regen 5903}# + (lambda (#{x 6580}#) + (let ((#{atom-key 6581}# (car #{x 6580}#))) + (if (eqv? #{atom-key 6581}# 'ref) + (let ((#{name 6591}# (car (cdr #{x 6580}#))) + (#{var 6592}# (car (cdr #{x 6580}#)))) (make-struct/no-tail (vector-ref %expanded-vtables 3) #f - #{name 6594}# - #{var 6595}#)) - (if (eqv? #{atom-key 6584}# 'primitive) - (let ((#{name 6606}# (car (cdr #{x 6583}#)))) + #{name 6591}# + #{var 6592}#)) + (if (eqv? #{atom-key 6581}# 'primitive) + (let ((#{name 6603}# (car (cdr #{x 6580}#)))) (make-struct/no-tail (vector-ref %expanded-vtables 2) #f - #{name 6606}#)) - (if (eqv? #{atom-key 6584}# 'quote) - (let ((#{exp 6617}# (car (cdr #{x 6583}#)))) + #{name 6603}#)) + (if (eqv? #{atom-key 6581}# 'quote) + (let ((#{exp 6614}# (car (cdr #{x 6580}#)))) (make-struct/no-tail (vector-ref %expanded-vtables 1) #f - #{exp 6617}#)) - (if (eqv? #{atom-key 6584}# 'lambda) - (if (list? (car (cdr #{x 6583}#))) - (let ((#{req 6628}# (car (cdr #{x 6583}#))) - (#{vars 6630}# (car (cdr #{x 6583}#))) - (#{exp 6632}# - (#{regen 5906}# - (car (cdr (cdr #{x 6583}#)))))) - (let ((#{body 6637}# + #{exp 6614}#)) + (if (eqv? #{atom-key 6581}# 'lambda) + (if (list? (car (cdr #{x 6580}#))) + (let ((#{req 6625}# (car (cdr #{x 6580}#))) + (#{vars 6627}# (car (cdr #{x 6580}#))) + (#{exp 6629}# + (#{regen 5903}# + (car (cdr (cdr #{x 6580}#)))))) + (let ((#{body 6634}# (make-struct/no-tail (vector-ref %expanded-vtables 15) #f - #{req 6628}# + #{req 6625}# #f #f #f '() - #{vars 6630}# - #{exp 6632}# + #{vars 6627}# + #{exp 6629}# #f))) (make-struct/no-tail (vector-ref %expanded-vtables 14) #f '() - #{body 6637}#))) - (error "how did we get here" #{x 6583}#)) - (let ((#{name 6653}# (car #{x 6583}#)) - (#{args 6654}# - (map #{regen 5906}# (cdr #{x 6583}#)))) + #{body 6634}#))) + (error "how did we get here" #{x 6580}#)) + (let ((#{name 6650}# (car #{x 6580}#)) + (#{args 6651}# + (map #{regen 5903}# (cdr #{x 6580}#)))) (make-struct/no-tail (vector-ref %expanded-vtables 12) #f - #{name 6653}# - #{args 6654}#)))))))))) - (lambda (#{e 5907}# - #{r 5908}# - #{w 5909}# - #{s 5910}# - #{mod 5911}#) - (let ((#{e 5912}# - (let ((#{x 6273}# + #{name 6650}# + #{args 6651}#)))))))))) + (lambda (#{e 5904}# + #{r 5905}# + #{w 5906}# + #{s 5907}# + #{mod 5908}#) + (let ((#{e 5909}# + (let ((#{x 6270}# (begin - (if (if (pair? #{e 5907}#) #{s 5910}# #f) - (set-source-properties! #{e 5907}# #{s 5910}#)) - #{e 5907}#))) - (if (if (null? (car #{w 5909}#)) - (null? (cdr #{w 5909}#)) + (if (if (pair? #{e 5904}#) #{s 5907}# #f) + (set-source-properties! #{e 5904}# #{s 5907}#)) + #{e 5904}#))) + (if (if (null? (car #{w 5906}#)) + (null? (cdr #{w 5906}#)) #f) - #{x 6273}# - (if (if (vector? #{x 6273}#) - (if (= (vector-length #{x 6273}#) 4) - (eq? (vector-ref #{x 6273}# 0) 'syntax-object) + #{x 6270}# + (if (if (vector? #{x 6270}#) + (if (= (vector-length #{x 6270}#) 4) + (eq? (vector-ref #{x 6270}# 0) 'syntax-object) #f) #f) - (let ((#{expression 6305}# (vector-ref #{x 6273}# 1)) - (#{wrap 6306}# - (let ((#{w2 6314}# (vector-ref #{x 6273}# 2))) - (let ((#{m1 6315}# (car #{w 5909}#)) - (#{s1 6316}# (cdr #{w 5909}#))) - (if (null? #{m1 6315}#) - (if (null? #{s1 6316}#) - #{w2 6314}# - (cons (car #{w2 6314}#) - (let ((#{m2 6331}# - (cdr #{w2 6314}#))) - (if (null? #{m2 6331}#) - #{s1 6316}# + (let ((#{expression 6302}# (vector-ref #{x 6270}# 1)) + (#{wrap 6303}# + (let ((#{w2 6311}# (vector-ref #{x 6270}# 2))) + (let ((#{m1 6312}# (car #{w 5906}#)) + (#{s1 6313}# (cdr #{w 5906}#))) + (if (null? #{m1 6312}#) + (if (null? #{s1 6313}#) + #{w2 6311}# + (cons (car #{w2 6311}#) + (let ((#{m2 6328}# + (cdr #{w2 6311}#))) + (if (null? #{m2 6328}#) + #{s1 6313}# (append - #{s1 6316}# - #{m2 6331}#))))) - (cons (let ((#{m2 6339}# - (car #{w2 6314}#))) - (if (null? #{m2 6339}#) - #{m1 6315}# + #{s1 6313}# + #{m2 6328}#))))) + (cons (let ((#{m2 6336}# + (car #{w2 6311}#))) + (if (null? #{m2 6336}#) + #{m1 6312}# (append - #{m1 6315}# - #{m2 6339}#))) - (let ((#{m2 6347}# - (cdr #{w2 6314}#))) - (if (null? #{m2 6347}#) - #{s1 6316}# + #{m1 6312}# + #{m2 6336}#))) + (let ((#{m2 6344}# + (cdr #{w2 6311}#))) + (if (null? #{m2 6344}#) + #{s1 6313}# (append - #{s1 6316}# - #{m2 6347}#)))))))) - (#{module 6307}# (vector-ref #{x 6273}# 3))) + #{s1 6313}# + #{m2 6344}#)))))))) + (#{module 6304}# (vector-ref #{x 6270}# 3))) (vector 'syntax-object - #{expression 6305}# - #{wrap 6306}# - #{module 6307}#)) - (if (null? #{x 6273}#) - #{x 6273}# + #{expression 6302}# + #{wrap 6303}# + #{module 6304}#)) + (if (null? #{x 6270}#) + #{x 6270}# (vector 'syntax-object - #{x 6273}# - #{w 5909}# - #{mod 5911}#))))))) - (let ((#{tmp 5913}# #{e 5912}#)) - (let ((#{tmp 5914}# - ($sc-dispatch #{tmp 5913}# '(_ any)))) - (if #{tmp 5914}# + #{x 6270}# + #{w 5906}# + #{mod 5908}#))))))) + (let ((#{tmp 5910}# #{e 5909}#)) + (let ((#{tmp 5911}# + ($sc-dispatch #{tmp 5910}# '(_ any)))) + (if #{tmp 5911}# (@apply - (lambda (#{x 5966}#) + (lambda (#{x 5963}#) (call-with-values (lambda () - (#{gen-syntax 5899}# - #{e 5912}# - #{x 5966}# - #{r 5908}# + (#{gen-syntax 5896}# + #{e 5909}# + #{x 5963}# + #{r 5905}# '() - #{ellipsis? 4454}# - #{mod 5911}#)) - (lambda (#{e 6049}# #{maps 6050}#) - (#{regen 5906}# #{e 6049}#)))) - #{tmp 5914}#) + #{ellipsis? 4451}# + #{mod 5908}#)) + (lambda (#{e 6046}# #{maps 6047}#) + (#{regen 5903}# #{e 6046}#)))) + #{tmp 5911}#) (syntax-violation 'syntax "bad `syntax' form" - #{e 5912}#)))))))) - (#{global-extend 4411}# + #{e 5909}#)))))))) + (#{global-extend 4408}# 'core 'lambda - (lambda (#{e 6890}# - #{r 6891}# - #{w 6892}# - #{s 6893}# - #{mod 6894}#) - (let ((#{tmp 6896}# - ($sc-dispatch #{e 6890}# '(_ any any . each-any)))) - (if #{tmp 6896}# + (lambda (#{e 6887}# + #{r 6888}# + #{w 6889}# + #{s 6890}# + #{mod 6891}#) + (let ((#{tmp 6893}# + ($sc-dispatch #{e 6887}# '(_ any any . each-any)))) + (if #{tmp 6893}# (@apply - (lambda (#{args 6900}# #{e1 6901}# #{e2 6902}#) + (lambda (#{args 6897}# #{e1 6898}# #{e2 6899}#) (call-with-values (lambda () - (#{lambda-formals 4455}# #{args 6900}#)) - (lambda (#{req 6905}# - #{opt 6906}# - #{rest 6907}# - #{kw 6908}#) + (#{lambda-formals 4452}# #{args 6897}#)) + (lambda (#{req 6902}# + #{opt 6903}# + #{rest 6904}# + #{kw 6905}#) (letrec* - ((#{lp 6909}# - (lambda (#{body 6912}# #{meta 6913}#) - (let ((#{tmp 6915}# + ((#{lp 6906}# + (lambda (#{body 6909}# #{meta 6910}#) + (let ((#{tmp 6912}# ($sc-dispatch - #{body 6912}# + #{body 6909}# '(any any . each-any)))) - (if (if #{tmp 6915}# + (if (if #{tmp 6912}# (@apply - (lambda (#{docstring 6919}# - #{e1 6920}# - #{e2 6921}#) + (lambda (#{docstring 6916}# + #{e1 6917}# + #{e2 6918}#) (string? - (syntax->datum #{docstring 6919}#))) - #{tmp 6915}#) + (syntax->datum #{docstring 6916}#))) + #{tmp 6912}#) #f) (@apply - (lambda (#{docstring 6922}# - #{e1 6923}# - #{e2 6924}#) - (#{lp 6909}# - (cons #{e1 6923}# #{e2 6924}#) + (lambda (#{docstring 6919}# + #{e1 6920}# + #{e2 6921}#) + (#{lp 6906}# + (cons #{e1 6920}# #{e2 6921}#) (append - #{meta 6913}# + #{meta 6910}# (list (cons 'documentation (syntax->datum - #{docstring 6922}#)))))) - #{tmp 6915}#) - (let ((#{tmp 6925}# + #{docstring 6919}#)))))) + #{tmp 6912}#) + (let ((#{tmp 6922}# ($sc-dispatch - #{body 6912}# + #{body 6909}# '(#(vector #(each (any . any))) any . each-any)))) - (if #{tmp 6925}# + (if #{tmp 6922}# (@apply - (lambda (#{k 6929}# - #{v 6930}# - #{e1 6931}# - #{e2 6932}#) - (#{lp 6909}# - (cons #{e1 6931}# #{e2 6932}#) + (lambda (#{k 6926}# + #{v 6927}# + #{e1 6928}# + #{e2 6929}#) + (#{lp 6906}# + (cons #{e1 6928}# #{e2 6929}#) (append - #{meta 6913}# + #{meta 6910}# (syntax->datum (map cons - #{k 6929}# - #{v 6930}#))))) - #{tmp 6925}#) - (#{chi-simple-lambda 4456}# - #{e 6890}# - #{r 6891}# - #{w 6892}# - #{s 6893}# - #{mod 6894}# - #{req 6905}# - #{rest 6907}# - #{meta 6913}# - #{body 6912}#)))))))) - (#{lp 6909}# (cons #{e1 6901}# #{e2 6902}#) '()))))) - #{tmp 6896}#) + #{k 6926}# + #{v 6927}#))))) + #{tmp 6922}#) + (#{expand-simple-lambda 4453}# + #{e 6887}# + #{r 6888}# + #{w 6889}# + #{s 6890}# + #{mod 6891}# + #{req 6902}# + #{rest 6904}# + #{meta 6910}# + #{body 6909}#)))))))) + (#{lp 6906}# (cons #{e1 6898}# #{e2 6899}#) '()))))) + #{tmp 6893}#) (syntax-violation 'lambda "bad lambda" - #{e 6890}#))))) - (#{global-extend 4411}# + #{e 6887}#))))) + (#{global-extend 4408}# 'core 'lambda* - (lambda (#{e 7316}# - #{r 7317}# - #{w 7318}# - #{s 7319}# - #{mod 7320}#) - (let ((#{tmp 7322}# - ($sc-dispatch #{e 7316}# '(_ any any . each-any)))) - (if #{tmp 7322}# + (lambda (#{e 7313}# + #{r 7314}# + #{w 7315}# + #{s 7316}# + #{mod 7317}#) + (let ((#{tmp 7319}# + ($sc-dispatch #{e 7313}# '(_ any any . each-any)))) + (if #{tmp 7319}# (@apply - (lambda (#{args 7326}# #{e1 7327}# #{e2 7328}#) + (lambda (#{args 7323}# #{e1 7324}# #{e2 7325}#) (call-with-values (lambda () - (#{chi-lambda-case 4458}# - #{e 7316}# - #{r 7317}# - #{w 7318}# - #{s 7319}# - #{mod 7320}# - #{lambda*-formals 4457}# - (list (cons #{args 7326}# - (cons #{e1 7327}# #{e2 7328}#))))) - (lambda (#{meta 7331}# #{lcase 7332}#) + (#{expand-lambda-case 4455}# + #{e 7313}# + #{r 7314}# + #{w 7315}# + #{s 7316}# + #{mod 7317}# + #{lambda*-formals 4454}# + (list (cons #{args 7323}# + (cons #{e1 7324}# #{e2 7325}#))))) + (lambda (#{meta 7328}# #{lcase 7329}#) (make-struct/no-tail (vector-ref %expanded-vtables 14) - #{s 7319}# - #{meta 7331}# - #{lcase 7332}#)))) - #{tmp 7322}#) + #{s 7316}# + #{meta 7328}# + #{lcase 7329}#)))) + #{tmp 7319}#) (syntax-violation 'lambda "bad lambda*" - #{e 7316}#))))) - (#{global-extend 4411}# + #{e 7313}#))))) + (#{global-extend 4408}# 'core 'case-lambda - (lambda (#{e 7495}# - #{r 7496}# - #{w 7497}# - #{s 7498}# - #{mod 7499}#) - (let ((#{tmp 7501}# + (lambda (#{e 7492}# + #{r 7493}# + #{w 7494}# + #{s 7495}# + #{mod 7496}#) + (let ((#{tmp 7498}# ($sc-dispatch - #{e 7495}# + #{e 7492}# '(_ (any any . each-any) . #(each (any any . each-any)))))) - (if #{tmp 7501}# + (if #{tmp 7498}# (@apply - (lambda (#{args 7505}# - #{e1 7506}# - #{e2 7507}# - #{args* 7508}# - #{e1* 7509}# - #{e2* 7510}#) + (lambda (#{args 7502}# + #{e1 7503}# + #{e2 7504}# + #{args* 7505}# + #{e1* 7506}# + #{e2* 7507}#) (call-with-values (lambda () - (#{chi-lambda-case 4458}# - #{e 7495}# - #{r 7496}# - #{w 7497}# - #{s 7498}# - #{mod 7499}# - #{lambda-formals 4455}# - (cons (cons #{args 7505}# - (cons #{e1 7506}# #{e2 7507}#)) - (map (lambda (#{tmp 3385 7513}# - #{tmp 3384 7514}# - #{tmp 3383 7515}#) - (cons #{tmp 3383 7515}# - (cons #{tmp 3384 7514}# - #{tmp 3385 7513}#))) - #{e2* 7510}# - #{e1* 7509}# - #{args* 7508}#)))) - (lambda (#{meta 7516}# #{lcase 7517}#) + (#{expand-lambda-case 4455}# + #{e 7492}# + #{r 7493}# + #{w 7494}# + #{s 7495}# + #{mod 7496}# + #{lambda-formals 4452}# + (cons (cons #{args 7502}# + (cons #{e1 7503}# #{e2 7504}#)) + (map (lambda (#{tmp 3382 7510}# + #{tmp 3381 7511}# + #{tmp 3380 7512}#) + (cons #{tmp 3380 7512}# + (cons #{tmp 3381 7511}# + #{tmp 3382 7510}#))) + #{e2* 7507}# + #{e1* 7506}# + #{args* 7505}#)))) + (lambda (#{meta 7513}# #{lcase 7514}#) (make-struct/no-tail (vector-ref %expanded-vtables 14) - #{s 7498}# - #{meta 7516}# - #{lcase 7517}#)))) - #{tmp 7501}#) + #{s 7495}# + #{meta 7513}# + #{lcase 7514}#)))) + #{tmp 7498}#) (syntax-violation 'case-lambda "bad case-lambda" - #{e 7495}#))))) - (#{global-extend 4411}# + #{e 7492}#))))) + (#{global-extend 4408}# 'core 'case-lambda* - (lambda (#{e 7686}# - #{r 7687}# - #{w 7688}# - #{s 7689}# - #{mod 7690}#) - (let ((#{tmp 7692}# + (lambda (#{e 7683}# + #{r 7684}# + #{w 7685}# + #{s 7686}# + #{mod 7687}#) + (let ((#{tmp 7689}# ($sc-dispatch - #{e 7686}# + #{e 7683}# '(_ (any any . each-any) . #(each (any any . each-any)))))) - (if #{tmp 7692}# + (if #{tmp 7689}# (@apply - (lambda (#{args 7696}# - #{e1 7697}# - #{e2 7698}# - #{args* 7699}# - #{e1* 7700}# - #{e2* 7701}#) + (lambda (#{args 7693}# + #{e1 7694}# + #{e2 7695}# + #{args* 7696}# + #{e1* 7697}# + #{e2* 7698}#) (call-with-values (lambda () - (#{chi-lambda-case 4458}# - #{e 7686}# - #{r 7687}# - #{w 7688}# - #{s 7689}# - #{mod 7690}# - #{lambda*-formals 4457}# - (cons (cons #{args 7696}# - (cons #{e1 7697}# #{e2 7698}#)) - (map (lambda (#{tmp 3420 7704}# - #{tmp 3419 7705}# - #{tmp 3418 7706}#) - (cons #{tmp 3418 7706}# - (cons #{tmp 3419 7705}# - #{tmp 3420 7704}#))) - #{e2* 7701}# - #{e1* 7700}# - #{args* 7699}#)))) - (lambda (#{meta 7707}# #{lcase 7708}#) + (#{expand-lambda-case 4455}# + #{e 7683}# + #{r 7684}# + #{w 7685}# + #{s 7686}# + #{mod 7687}# + #{lambda*-formals 4454}# + (cons (cons #{args 7693}# + (cons #{e1 7694}# #{e2 7695}#)) + (map (lambda (#{tmp 3417 7701}# + #{tmp 3416 7702}# + #{tmp 3415 7703}#) + (cons #{tmp 3415 7703}# + (cons #{tmp 3416 7702}# + #{tmp 3417 7701}#))) + #{e2* 7698}# + #{e1* 7697}# + #{args* 7696}#)))) + (lambda (#{meta 7704}# #{lcase 7705}#) (make-struct/no-tail (vector-ref %expanded-vtables 14) - #{s 7689}# - #{meta 7707}# - #{lcase 7708}#)))) - #{tmp 7692}#) + #{s 7686}# + #{meta 7704}# + #{lcase 7705}#)))) + #{tmp 7689}#) (syntax-violation 'case-lambda "bad case-lambda*" - #{e 7686}#))))) - (#{global-extend 4411}# + #{e 7683}#))))) + (#{global-extend 4408}# 'core 'let (letrec* - ((#{chi-let 7917}# - (lambda (#{e 8127}# - #{r 8128}# - #{w 8129}# - #{s 8130}# - #{mod 8131}# - #{constructor 8132}# - #{ids 8133}# - #{vals 8134}# - #{exps 8135}#) - (if (not (#{valid-bound-ids? 4436}# #{ids 8133}#)) + ((#{expand-let 7914}# + (lambda (#{e 8124}# + #{r 8125}# + #{w 8126}# + #{s 8127}# + #{mod 8128}# + #{constructor 8129}# + #{ids 8130}# + #{vals 8131}# + #{exps 8132}#) + (if (not (#{valid-bound-ids? 4433}# #{ids 8130}#)) (syntax-violation 'let "duplicate bound variable" - #{e 8127}#) - (let ((#{labels 8220}# - (#{gen-labels 4416}# #{ids 8133}#)) - (#{new-vars 8221}# - (map #{gen-var 4460}# #{ids 8133}#))) - (let ((#{nw 8222}# - (#{make-binding-wrap 4427}# - #{ids 8133}# - #{labels 8220}# - #{w 8129}#)) - (#{nr 8223}# - (#{extend-var-env 4409}# - #{labels 8220}# - #{new-vars 8221}# - #{r 8128}#))) - (#{constructor 8132}# - #{s 8130}# - (map syntax->datum #{ids 8133}#) - #{new-vars 8221}# - (map (lambda (#{x 8240}#) - (#{chi 4446}# - #{x 8240}# - #{r 8128}# - #{w 8129}# - #{mod 8131}#)) - #{vals 8134}#) - (#{chi-body 4450}# - #{exps 8135}# - (#{source-wrap 4440}# - #{e 8127}# - #{nw 8222}# - #{s 8130}# - #{mod 8131}#) - #{nr 8223}# - #{nw 8222}# - #{mod 8131}#)))))))) - (lambda (#{e 7918}# - #{r 7919}# - #{w 7920}# - #{s 7921}# - #{mod 7922}#) - (let ((#{tmp 7924}# + #{e 8124}#) + (let ((#{labels 8217}# + (#{gen-labels 4413}# #{ids 8130}#)) + (#{new-vars 8218}# + (map #{gen-var 4457}# #{ids 8130}#))) + (let ((#{nw 8219}# + (#{make-binding-wrap 4424}# + #{ids 8130}# + #{labels 8217}# + #{w 8126}#)) + (#{nr 8220}# + (#{extend-var-env 4406}# + #{labels 8217}# + #{new-vars 8218}# + #{r 8125}#))) + (#{constructor 8129}# + #{s 8127}# + (map syntax->datum #{ids 8130}#) + #{new-vars 8218}# + (map (lambda (#{x 8237}#) + (#{expand 4443}# + #{x 8237}# + #{r 8125}# + #{w 8126}# + #{mod 8128}#)) + #{vals 8131}#) + (#{expand-body 4447}# + #{exps 8132}# + (#{source-wrap 4437}# + #{e 8124}# + #{nw 8219}# + #{s 8127}# + #{mod 8128}#) + #{nr 8220}# + #{nw 8219}# + #{mod 8128}#)))))))) + (lambda (#{e 7915}# + #{r 7916}# + #{w 7917}# + #{s 7918}# + #{mod 7919}#) + (let ((#{tmp 7921}# ($sc-dispatch - #{e 7918}# + #{e 7915}# '(_ #(each (any any)) any . each-any)))) - (if (if #{tmp 7924}# + (if (if #{tmp 7921}# (@apply - (lambda (#{id 7928}# - #{val 7929}# - #{e1 7930}# - #{e2 7931}#) - (and-map #{id? 4413}# #{id 7928}#)) - #{tmp 7924}#) + (lambda (#{id 7925}# + #{val 7926}# + #{e1 7927}# + #{e2 7928}#) + (and-map #{id? 4410}# #{id 7925}#)) + #{tmp 7921}#) #f) (@apply - (lambda (#{id 7947}# - #{val 7948}# - #{e1 7949}# - #{e2 7950}#) - (#{chi-let 7917}# - #{e 7918}# - #{r 7919}# - #{w 7920}# - #{s 7921}# - #{mod 7922}# - (lambda (#{src 7954}# - #{ids 7955}# - #{vars 7956}# - #{val-exps 7957}# - #{body-exp 7958}#) + (lambda (#{id 7944}# + #{val 7945}# + #{e1 7946}# + #{e2 7947}#) + (#{expand-let 7914}# + #{e 7915}# + #{r 7916}# + #{w 7917}# + #{s 7918}# + #{mod 7919}# + (lambda (#{src 7951}# + #{ids 7952}# + #{vars 7953}# + #{val-exps 7954}# + #{body-exp 7955}#) (begin (for-each - #{maybe-name-value! 4378}# - #{ids 7955}# - #{val-exps 7957}#) - (if (null? #{vars 7956}#) - #{body-exp 7958}# + #{maybe-name-value! 4375}# + #{ids 7952}# + #{val-exps 7954}#) + (if (null? #{vars 7953}#) + #{body-exp 7955}# (make-struct/no-tail (vector-ref %expanded-vtables 16) - #{src 7954}# - #{ids 7955}# - #{vars 7956}# - #{val-exps 7957}# - #{body-exp 7958}#)))) - #{id 7947}# - #{val 7948}# - (cons #{e1 7949}# #{e2 7950}#))) - #{tmp 7924}#) - (let ((#{tmp 7965}# + #{src 7951}# + #{ids 7952}# + #{vars 7953}# + #{val-exps 7954}# + #{body-exp 7955}#)))) + #{id 7944}# + #{val 7945}# + (cons #{e1 7946}# #{e2 7947}#))) + #{tmp 7921}#) + (let ((#{tmp 7962}# ($sc-dispatch - #{e 7918}# + #{e 7915}# '(_ any #(each (any any)) any . each-any)))) - (if (if #{tmp 7965}# + (if (if #{tmp 7962}# (@apply - (lambda (#{f 7969}# - #{id 7970}# - #{val 7971}# - #{e1 7972}# - #{e2 7973}#) - (if (if (symbol? #{f 7969}#) + (lambda (#{f 7966}# + #{id 7967}# + #{val 7968}# + #{e1 7969}# + #{e2 7970}#) + (if (if (symbol? #{f 7966}#) #t - (if (if (vector? #{f 7969}#) - (if (= (vector-length #{f 7969}#) 4) - (eq? (vector-ref #{f 7969}# 0) + (if (if (vector? #{f 7966}#) + (if (= (vector-length #{f 7966}#) 4) + (eq? (vector-ref #{f 7966}# 0) 'syntax-object) #f) #f) - (symbol? (vector-ref #{f 7969}# 1)) + (symbol? (vector-ref #{f 7966}# 1)) #f)) - (and-map #{id? 4413}# #{id 7970}#) + (and-map #{id? 4410}# #{id 7967}#) #f)) - #{tmp 7965}#) + #{tmp 7962}#) #f) (@apply - (lambda (#{f 8015}# - #{id 8016}# - #{val 8017}# - #{e1 8018}# - #{e2 8019}#) - (#{chi-let 7917}# - #{e 7918}# - #{r 7919}# - #{w 7920}# - #{s 7921}# - #{mod 7922}# - #{build-named-let 4397}# - (cons #{f 8015}# #{id 8016}#) - #{val 8017}# - (cons #{e1 8018}# #{e2 8019}#))) - #{tmp 7965}#) + (lambda (#{f 8012}# + #{id 8013}# + #{val 8014}# + #{e1 8015}# + #{e2 8016}#) + (#{expand-let 7914}# + #{e 7915}# + #{r 7916}# + #{w 7917}# + #{s 7918}# + #{mod 7919}# + #{build-named-let 4394}# + (cons #{f 8012}# #{id 8013}#) + #{val 8014}# + (cons #{e1 8015}# #{e2 8016}#))) + #{tmp 7962}#) (syntax-violation 'let "bad let" - (let ((#{x 8032}# + (let ((#{x 8029}# (begin - (if (if (pair? #{e 7918}#) #{s 7921}# #f) - (set-source-properties! #{e 7918}# #{s 7921}#)) - #{e 7918}#))) - (if (if (null? (car #{w 7920}#)) - (null? (cdr #{w 7920}#)) + (if (if (pair? #{e 7915}#) #{s 7918}# #f) + (set-source-properties! #{e 7915}# #{s 7918}#)) + #{e 7915}#))) + (if (if (null? (car #{w 7917}#)) + (null? (cdr #{w 7917}#)) #f) - #{x 8032}# - (if (if (vector? #{x 8032}#) - (if (= (vector-length #{x 8032}#) 4) - (eq? (vector-ref #{x 8032}# 0) 'syntax-object) + #{x 8029}# + (if (if (vector? #{x 8029}#) + (if (= (vector-length #{x 8029}#) 4) + (eq? (vector-ref #{x 8029}# 0) 'syntax-object) #f) #f) - (let ((#{expression 8064}# (vector-ref #{x 8032}# 1)) - (#{wrap 8065}# - (let ((#{w2 8073}# - (vector-ref #{x 8032}# 2))) - (let ((#{m1 8074}# (car #{w 7920}#)) - (#{s1 8075}# (cdr #{w 7920}#))) - (if (null? #{m1 8074}#) - (if (null? #{s1 8075}#) - #{w2 8073}# - (cons (car #{w2 8073}#) - (let ((#{m2 8090}# - (cdr #{w2 8073}#))) - (if (null? #{m2 8090}#) - #{s1 8075}# + (let ((#{expression 8061}# (vector-ref #{x 8029}# 1)) + (#{wrap 8062}# + (let ((#{w2 8070}# + (vector-ref #{x 8029}# 2))) + (let ((#{m1 8071}# (car #{w 7917}#)) + (#{s1 8072}# (cdr #{w 7917}#))) + (if (null? #{m1 8071}#) + (if (null? #{s1 8072}#) + #{w2 8070}# + (cons (car #{w2 8070}#) + (let ((#{m2 8087}# + (cdr #{w2 8070}#))) + (if (null? #{m2 8087}#) + #{s1 8072}# (append - #{s1 8075}# - #{m2 8090}#))))) - (cons (let ((#{m2 8098}# - (car #{w2 8073}#))) - (if (null? #{m2 8098}#) - #{m1 8074}# + #{s1 8072}# + #{m2 8087}#))))) + (cons (let ((#{m2 8095}# + (car #{w2 8070}#))) + (if (null? #{m2 8095}#) + #{m1 8071}# (append - #{m1 8074}# - #{m2 8098}#))) - (let ((#{m2 8106}# - (cdr #{w2 8073}#))) - (if (null? #{m2 8106}#) - #{s1 8075}# + #{m1 8071}# + #{m2 8095}#))) + (let ((#{m2 8103}# + (cdr #{w2 8070}#))) + (if (null? #{m2 8103}#) + #{s1 8072}# (append - #{s1 8075}# - #{m2 8106}#)))))))) - (#{module 8066}# (vector-ref #{x 8032}# 3))) + #{s1 8072}# + #{m2 8103}#)))))))) + (#{module 8063}# (vector-ref #{x 8029}# 3))) (vector 'syntax-object - #{expression 8064}# - #{wrap 8065}# - #{module 8066}#)) - (if (null? #{x 8032}#) - #{x 8032}# + #{expression 8061}# + #{wrap 8062}# + #{module 8063}#)) + (if (null? #{x 8029}#) + #{x 8029}# (vector 'syntax-object - #{x 8032}# - #{w 7920}# - #{mod 7922}#))))))))))))) - (#{global-extend 4411}# + #{x 8029}# + #{w 7917}# + #{mod 7919}#))))))))))))) + (#{global-extend 4408}# 'core 'letrec - (lambda (#{e 8717}# - #{r 8718}# - #{w 8719}# - #{s 8720}# - #{mod 8721}#) - (let ((#{tmp 8723}# + (lambda (#{e 8714}# + #{r 8715}# + #{w 8716}# + #{s 8717}# + #{mod 8718}#) + (let ((#{tmp 8720}# ($sc-dispatch - #{e 8717}# + #{e 8714}# '(_ #(each (any any)) any . each-any)))) - (if (if #{tmp 8723}# + (if (if #{tmp 8720}# (@apply - (lambda (#{id 8727}# - #{val 8728}# - #{e1 8729}# - #{e2 8730}#) - (and-map #{id? 4413}# #{id 8727}#)) - #{tmp 8723}#) + (lambda (#{id 8724}# + #{val 8725}# + #{e1 8726}# + #{e2 8727}#) + (and-map #{id? 4410}# #{id 8724}#)) + #{tmp 8720}#) #f) (@apply - (lambda (#{id 8746}# - #{val 8747}# - #{e1 8748}# - #{e2 8749}#) - (if (not (#{valid-bound-ids? 4436}# #{id 8746}#)) + (lambda (#{id 8743}# + #{val 8744}# + #{e1 8745}# + #{e2 8746}#) + (if (not (#{valid-bound-ids? 4433}# #{id 8743}#)) (syntax-violation 'letrec "duplicate bound variable" - #{e 8717}#) - (let ((#{labels 8846}# - (#{gen-labels 4416}# #{id 8746}#)) - (#{new-vars 8847}# - (map #{gen-var 4460}# #{id 8746}#))) - (let ((#{w 8848}# - (#{make-binding-wrap 4427}# - #{id 8746}# - #{labels 8846}# - #{w 8719}#)) - (#{r 8849}# - (#{extend-var-env 4409}# - #{labels 8846}# - #{new-vars 8847}# - #{r 8718}#))) - (#{build-letrec 4398}# - #{s 8720}# + #{e 8714}#) + (let ((#{labels 8843}# + (#{gen-labels 4413}# #{id 8743}#)) + (#{new-vars 8844}# + (map #{gen-var 4457}# #{id 8743}#))) + (let ((#{w 8845}# + (#{make-binding-wrap 4424}# + #{id 8743}# + #{labels 8843}# + #{w 8716}#)) + (#{r 8846}# + (#{extend-var-env 4406}# + #{labels 8843}# + #{new-vars 8844}# + #{r 8715}#))) + (#{build-letrec 4395}# + #{s 8717}# #f - (map syntax->datum #{id 8746}#) - #{new-vars 8847}# - (map (lambda (#{x 8928}#) - (#{chi 4446}# - #{x 8928}# - #{r 8849}# - #{w 8848}# - #{mod 8721}#)) - #{val 8747}#) - (#{chi-body 4450}# - (cons #{e1 8748}# #{e2 8749}#) - (let ((#{x 8990}# + (map syntax->datum #{id 8743}#) + #{new-vars 8844}# + (map (lambda (#{x 8925}#) + (#{expand 4443}# + #{x 8925}# + #{r 8846}# + #{w 8845}# + #{mod 8718}#)) + #{val 8744}#) + (#{expand-body 4447}# + (cons #{e1 8745}# #{e2 8746}#) + (let ((#{x 8987}# (begin - (if (if (pair? #{e 8717}#) #{s 8720}# #f) + (if (if (pair? #{e 8714}#) #{s 8717}# #f) (set-source-properties! - #{e 8717}# - #{s 8720}#)) - #{e 8717}#))) - (if (if (null? (car #{w 8848}#)) - (null? (cdr #{w 8848}#)) + #{e 8714}# + #{s 8717}#)) + #{e 8714}#))) + (if (if (null? (car #{w 8845}#)) + (null? (cdr #{w 8845}#)) #f) - #{x 8990}# - (if (if (vector? #{x 8990}#) - (if (= (vector-length #{x 8990}#) 4) - (eq? (vector-ref #{x 8990}# 0) + #{x 8987}# + (if (if (vector? #{x 8987}#) + (if (= (vector-length #{x 8987}#) 4) + (eq? (vector-ref #{x 8987}# 0) 'syntax-object) #f) #f) - (let ((#{expression 9022}# - (vector-ref #{x 8990}# 1)) - (#{wrap 9023}# - (let ((#{w2 9031}# - (vector-ref #{x 8990}# 2))) - (let ((#{m1 9032}# (car #{w 8848}#)) - (#{s1 9033}# (cdr #{w 8848}#))) - (if (null? #{m1 9032}#) - (if (null? #{s1 9033}#) - #{w2 9031}# - (cons (car #{w2 9031}#) - (let ((#{m2 9048}# - (cdr #{w2 9031}#))) - (if (null? #{m2 9048}#) - #{s1 9033}# + (let ((#{expression 9019}# + (vector-ref #{x 8987}# 1)) + (#{wrap 9020}# + (let ((#{w2 9028}# + (vector-ref #{x 8987}# 2))) + (let ((#{m1 9029}# (car #{w 8845}#)) + (#{s1 9030}# (cdr #{w 8845}#))) + (if (null? #{m1 9029}#) + (if (null? #{s1 9030}#) + #{w2 9028}# + (cons (car #{w2 9028}#) + (let ((#{m2 9045}# + (cdr #{w2 9028}#))) + (if (null? #{m2 9045}#) + #{s1 9030}# (append - #{s1 9033}# - #{m2 9048}#))))) - (cons (let ((#{m2 9056}# - (car #{w2 9031}#))) - (if (null? #{m2 9056}#) - #{m1 9032}# + #{s1 9030}# + #{m2 9045}#))))) + (cons (let ((#{m2 9053}# + (car #{w2 9028}#))) + (if (null? #{m2 9053}#) + #{m1 9029}# (append - #{m1 9032}# - #{m2 9056}#))) - (let ((#{m2 9064}# - (cdr #{w2 9031}#))) - (if (null? #{m2 9064}#) - #{s1 9033}# + #{m1 9029}# + #{m2 9053}#))) + (let ((#{m2 9061}# + (cdr #{w2 9028}#))) + (if (null? #{m2 9061}#) + #{s1 9030}# (append - #{s1 9033}# - #{m2 9064}#)))))))) - (#{module 9024}# - (vector-ref #{x 8990}# 3))) + #{s1 9030}# + #{m2 9061}#)))))))) + (#{module 9021}# + (vector-ref #{x 8987}# 3))) (vector 'syntax-object - #{expression 9022}# - #{wrap 9023}# - #{module 9024}#)) - (if (null? #{x 8990}#) - #{x 8990}# + #{expression 9019}# + #{wrap 9020}# + #{module 9021}#)) + (if (null? #{x 8987}#) + #{x 8987}# (vector 'syntax-object - #{x 8990}# - #{w 8848}# - #{mod 8721}#))))) - #{r 8849}# - #{w 8848}# - #{mod 8721}#)))))) - #{tmp 8723}#) + #{x 8987}# + #{w 8845}# + #{mod 8718}#))))) + #{r 8846}# + #{w 8845}# + #{mod 8718}#)))))) + #{tmp 8720}#) (syntax-violation 'letrec "bad letrec" - (let ((#{x 9304}# + (let ((#{x 9301}# (begin - (if (if (pair? #{e 8717}#) #{s 8720}# #f) - (set-source-properties! #{e 8717}# #{s 8720}#)) - #{e 8717}#))) - (if (if (null? (car #{w 8719}#)) - (null? (cdr #{w 8719}#)) + (if (if (pair? #{e 8714}#) #{s 8717}# #f) + (set-source-properties! #{e 8714}# #{s 8717}#)) + #{e 8714}#))) + (if (if (null? (car #{w 8716}#)) + (null? (cdr #{w 8716}#)) #f) - #{x 9304}# - (if (if (vector? #{x 9304}#) - (if (= (vector-length #{x 9304}#) 4) - (eq? (vector-ref #{x 9304}# 0) 'syntax-object) + #{x 9301}# + (if (if (vector? #{x 9301}#) + (if (= (vector-length #{x 9301}#) 4) + (eq? (vector-ref #{x 9301}# 0) 'syntax-object) #f) #f) - (let ((#{expression 9336}# (vector-ref #{x 9304}# 1)) - (#{wrap 9337}# - (let ((#{w2 9345}# (vector-ref #{x 9304}# 2))) - (let ((#{m1 9346}# (car #{w 8719}#)) - (#{s1 9347}# (cdr #{w 8719}#))) - (if (null? #{m1 9346}#) - (if (null? #{s1 9347}#) - #{w2 9345}# - (cons (car #{w2 9345}#) - (let ((#{m2 9362}# - (cdr #{w2 9345}#))) - (if (null? #{m2 9362}#) - #{s1 9347}# + (let ((#{expression 9333}# (vector-ref #{x 9301}# 1)) + (#{wrap 9334}# + (let ((#{w2 9342}# (vector-ref #{x 9301}# 2))) + (let ((#{m1 9343}# (car #{w 8716}#)) + (#{s1 9344}# (cdr #{w 8716}#))) + (if (null? #{m1 9343}#) + (if (null? #{s1 9344}#) + #{w2 9342}# + (cons (car #{w2 9342}#) + (let ((#{m2 9359}# + (cdr #{w2 9342}#))) + (if (null? #{m2 9359}#) + #{s1 9344}# (append - #{s1 9347}# - #{m2 9362}#))))) - (cons (let ((#{m2 9370}# (car #{w2 9345}#))) - (if (null? #{m2 9370}#) - #{m1 9346}# - (append #{m1 9346}# #{m2 9370}#))) - (let ((#{m2 9378}# (cdr #{w2 9345}#))) - (if (null? #{m2 9378}#) - #{s1 9347}# + #{s1 9344}# + #{m2 9359}#))))) + (cons (let ((#{m2 9367}# (car #{w2 9342}#))) + (if (null? #{m2 9367}#) + #{m1 9343}# + (append #{m1 9343}# #{m2 9367}#))) + (let ((#{m2 9375}# (cdr #{w2 9342}#))) + (if (null? #{m2 9375}#) + #{s1 9344}# (append - #{s1 9347}# - #{m2 9378}#)))))))) - (#{module 9338}# (vector-ref #{x 9304}# 3))) + #{s1 9344}# + #{m2 9375}#)))))))) + (#{module 9335}# (vector-ref #{x 9301}# 3))) (vector 'syntax-object - #{expression 9336}# - #{wrap 9337}# - #{module 9338}#)) - (if (null? #{x 9304}#) - #{x 9304}# + #{expression 9333}# + #{wrap 9334}# + #{module 9335}#)) + (if (null? #{x 9301}#) + #{x 9301}# (vector 'syntax-object - #{x 9304}# - #{w 8719}# - #{mod 8721}#)))))))))) - (#{global-extend 4411}# + #{x 9301}# + #{w 8716}# + #{mod 8718}#)))))))))) + (#{global-extend 4408}# 'core 'letrec* - (lambda (#{e 9529}# - #{r 9530}# - #{w 9531}# - #{s 9532}# - #{mod 9533}#) - (let ((#{tmp 9535}# + (lambda (#{e 9526}# + #{r 9527}# + #{w 9528}# + #{s 9529}# + #{mod 9530}#) + (let ((#{tmp 9532}# ($sc-dispatch - #{e 9529}# + #{e 9526}# '(_ #(each (any any)) any . each-any)))) - (if (if #{tmp 9535}# + (if (if #{tmp 9532}# (@apply - (lambda (#{id 9539}# - #{val 9540}# - #{e1 9541}# - #{e2 9542}#) - (and-map #{id? 4413}# #{id 9539}#)) - #{tmp 9535}#) + (lambda (#{id 9536}# + #{val 9537}# + #{e1 9538}# + #{e2 9539}#) + (and-map #{id? 4410}# #{id 9536}#)) + #{tmp 9532}#) #f) (@apply - (lambda (#{id 9558}# - #{val 9559}# - #{e1 9560}# - #{e2 9561}#) - (if (not (#{valid-bound-ids? 4436}# #{id 9558}#)) + (lambda (#{id 9555}# + #{val 9556}# + #{e1 9557}# + #{e2 9558}#) + (if (not (#{valid-bound-ids? 4433}# #{id 9555}#)) (syntax-violation 'letrec* "duplicate bound variable" - #{e 9529}#) - (let ((#{labels 9658}# - (#{gen-labels 4416}# #{id 9558}#)) - (#{new-vars 9659}# - (map #{gen-var 4460}# #{id 9558}#))) - (let ((#{w 9660}# - (#{make-binding-wrap 4427}# - #{id 9558}# - #{labels 9658}# - #{w 9531}#)) - (#{r 9661}# - (#{extend-var-env 4409}# - #{labels 9658}# - #{new-vars 9659}# - #{r 9530}#))) - (#{build-letrec 4398}# - #{s 9532}# + #{e 9526}#) + (let ((#{labels 9655}# + (#{gen-labels 4413}# #{id 9555}#)) + (#{new-vars 9656}# + (map #{gen-var 4457}# #{id 9555}#))) + (let ((#{w 9657}# + (#{make-binding-wrap 4424}# + #{id 9555}# + #{labels 9655}# + #{w 9528}#)) + (#{r 9658}# + (#{extend-var-env 4406}# + #{labels 9655}# + #{new-vars 9656}# + #{r 9527}#))) + (#{build-letrec 4395}# + #{s 9529}# #t - (map syntax->datum #{id 9558}#) - #{new-vars 9659}# - (map (lambda (#{x 9740}#) - (#{chi 4446}# - #{x 9740}# - #{r 9661}# - #{w 9660}# - #{mod 9533}#)) - #{val 9559}#) - (#{chi-body 4450}# - (cons #{e1 9560}# #{e2 9561}#) - (let ((#{x 9802}# + (map syntax->datum #{id 9555}#) + #{new-vars 9656}# + (map (lambda (#{x 9737}#) + (#{expand 4443}# + #{x 9737}# + #{r 9658}# + #{w 9657}# + #{mod 9530}#)) + #{val 9556}#) + (#{expand-body 4447}# + (cons #{e1 9557}# #{e2 9558}#) + (let ((#{x 9799}# (begin - (if (if (pair? #{e 9529}#) #{s 9532}# #f) + (if (if (pair? #{e 9526}#) #{s 9529}# #f) (set-source-properties! - #{e 9529}# - #{s 9532}#)) - #{e 9529}#))) - (if (if (null? (car #{w 9660}#)) - (null? (cdr #{w 9660}#)) + #{e 9526}# + #{s 9529}#)) + #{e 9526}#))) + (if (if (null? (car #{w 9657}#)) + (null? (cdr #{w 9657}#)) #f) - #{x 9802}# - (if (if (vector? #{x 9802}#) - (if (= (vector-length #{x 9802}#) 4) - (eq? (vector-ref #{x 9802}# 0) + #{x 9799}# + (if (if (vector? #{x 9799}#) + (if (= (vector-length #{x 9799}#) 4) + (eq? (vector-ref #{x 9799}# 0) 'syntax-object) #f) #f) - (let ((#{expression 9834}# - (vector-ref #{x 9802}# 1)) - (#{wrap 9835}# - (let ((#{w2 9843}# - (vector-ref #{x 9802}# 2))) - (let ((#{m1 9844}# (car #{w 9660}#)) - (#{s1 9845}# (cdr #{w 9660}#))) - (if (null? #{m1 9844}#) - (if (null? #{s1 9845}#) - #{w2 9843}# - (cons (car #{w2 9843}#) - (let ((#{m2 9860}# - (cdr #{w2 9843}#))) - (if (null? #{m2 9860}#) - #{s1 9845}# + (let ((#{expression 9831}# + (vector-ref #{x 9799}# 1)) + (#{wrap 9832}# + (let ((#{w2 9840}# + (vector-ref #{x 9799}# 2))) + (let ((#{m1 9841}# (car #{w 9657}#)) + (#{s1 9842}# (cdr #{w 9657}#))) + (if (null? #{m1 9841}#) + (if (null? #{s1 9842}#) + #{w2 9840}# + (cons (car #{w2 9840}#) + (let ((#{m2 9857}# + (cdr #{w2 9840}#))) + (if (null? #{m2 9857}#) + #{s1 9842}# (append - #{s1 9845}# - #{m2 9860}#))))) - (cons (let ((#{m2 9868}# - (car #{w2 9843}#))) - (if (null? #{m2 9868}#) - #{m1 9844}# + #{s1 9842}# + #{m2 9857}#))))) + (cons (let ((#{m2 9865}# + (car #{w2 9840}#))) + (if (null? #{m2 9865}#) + #{m1 9841}# (append - #{m1 9844}# - #{m2 9868}#))) - (let ((#{m2 9876}# - (cdr #{w2 9843}#))) - (if (null? #{m2 9876}#) - #{s1 9845}# + #{m1 9841}# + #{m2 9865}#))) + (let ((#{m2 9873}# + (cdr #{w2 9840}#))) + (if (null? #{m2 9873}#) + #{s1 9842}# (append - #{s1 9845}# - #{m2 9876}#)))))))) - (#{module 9836}# - (vector-ref #{x 9802}# 3))) + #{s1 9842}# + #{m2 9873}#)))))))) + (#{module 9833}# + (vector-ref #{x 9799}# 3))) (vector 'syntax-object - #{expression 9834}# - #{wrap 9835}# - #{module 9836}#)) - (if (null? #{x 9802}#) - #{x 9802}# + #{expression 9831}# + #{wrap 9832}# + #{module 9833}#)) + (if (null? #{x 9799}#) + #{x 9799}# (vector 'syntax-object - #{x 9802}# - #{w 9660}# - #{mod 9533}#))))) - #{r 9661}# - #{w 9660}# - #{mod 9533}#)))))) - #{tmp 9535}#) + #{x 9799}# + #{w 9657}# + #{mod 9530}#))))) + #{r 9658}# + #{w 9657}# + #{mod 9530}#)))))) + #{tmp 9532}#) (syntax-violation 'letrec* "bad letrec*" - (let ((#{x 10116}# + (let ((#{x 10113}# (begin - (if (if (pair? #{e 9529}#) #{s 9532}# #f) - (set-source-properties! #{e 9529}# #{s 9532}#)) - #{e 9529}#))) - (if (if (null? (car #{w 9531}#)) - (null? (cdr #{w 9531}#)) + (if (if (pair? #{e 9526}#) #{s 9529}# #f) + (set-source-properties! #{e 9526}# #{s 9529}#)) + #{e 9526}#))) + (if (if (null? (car #{w 9528}#)) + (null? (cdr #{w 9528}#)) #f) - #{x 10116}# - (if (if (vector? #{x 10116}#) - (if (= (vector-length #{x 10116}#) 4) - (eq? (vector-ref #{x 10116}# 0) 'syntax-object) + #{x 10113}# + (if (if (vector? #{x 10113}#) + (if (= (vector-length #{x 10113}#) 4) + (eq? (vector-ref #{x 10113}# 0) 'syntax-object) #f) #f) - (let ((#{expression 10148}# (vector-ref #{x 10116}# 1)) - (#{wrap 10149}# - (let ((#{w2 10157}# (vector-ref #{x 10116}# 2))) - (let ((#{m1 10158}# (car #{w 9531}#)) - (#{s1 10159}# (cdr #{w 9531}#))) - (if (null? #{m1 10158}#) - (if (null? #{s1 10159}#) - #{w2 10157}# - (cons (car #{w2 10157}#) - (let ((#{m2 10174}# - (cdr #{w2 10157}#))) - (if (null? #{m2 10174}#) - #{s1 10159}# + (let ((#{expression 10145}# (vector-ref #{x 10113}# 1)) + (#{wrap 10146}# + (let ((#{w2 10154}# (vector-ref #{x 10113}# 2))) + (let ((#{m1 10155}# (car #{w 9528}#)) + (#{s1 10156}# (cdr #{w 9528}#))) + (if (null? #{m1 10155}#) + (if (null? #{s1 10156}#) + #{w2 10154}# + (cons (car #{w2 10154}#) + (let ((#{m2 10171}# + (cdr #{w2 10154}#))) + (if (null? #{m2 10171}#) + #{s1 10156}# (append - #{s1 10159}# - #{m2 10174}#))))) - (cons (let ((#{m2 10182}# - (car #{w2 10157}#))) - (if (null? #{m2 10182}#) - #{m1 10158}# + #{s1 10156}# + #{m2 10171}#))))) + (cons (let ((#{m2 10179}# + (car #{w2 10154}#))) + (if (null? #{m2 10179}#) + #{m1 10155}# (append - #{m1 10158}# - #{m2 10182}#))) - (let ((#{m2 10190}# - (cdr #{w2 10157}#))) - (if (null? #{m2 10190}#) - #{s1 10159}# + #{m1 10155}# + #{m2 10179}#))) + (let ((#{m2 10187}# + (cdr #{w2 10154}#))) + (if (null? #{m2 10187}#) + #{s1 10156}# (append - #{s1 10159}# - #{m2 10190}#)))))))) - (#{module 10150}# (vector-ref #{x 10116}# 3))) + #{s1 10156}# + #{m2 10187}#)))))))) + (#{module 10147}# (vector-ref #{x 10113}# 3))) (vector 'syntax-object - #{expression 10148}# - #{wrap 10149}# - #{module 10150}#)) - (if (null? #{x 10116}#) - #{x 10116}# + #{expression 10145}# + #{wrap 10146}# + #{module 10147}#)) + (if (null? #{x 10113}#) + #{x 10113}# (vector 'syntax-object - #{x 10116}# - #{w 9531}# - #{mod 9533}#)))))))))) - (#{global-extend 4411}# + #{x 10113}# + #{w 9528}# + #{mod 9530}#)))))))))) + (#{global-extend 4408}# 'core 'set! - (lambda (#{e 10353}# - #{r 10354}# - #{w 10355}# - #{s 10356}# - #{mod 10357}#) - (let ((#{tmp 10359}# - ($sc-dispatch #{e 10353}# '(_ any any)))) - (if (if #{tmp 10359}# + (lambda (#{e 10350}# + #{r 10351}# + #{w 10352}# + #{s 10353}# + #{mod 10354}#) + (let ((#{tmp 10356}# + ($sc-dispatch #{e 10350}# '(_ any any)))) + (if (if #{tmp 10356}# (@apply - (lambda (#{id 10363}# #{val 10364}#) - (if (symbol? #{id 10363}#) + (lambda (#{id 10360}# #{val 10361}#) + (if (symbol? #{id 10360}#) #t - (if (if (vector? #{id 10363}#) - (if (= (vector-length #{id 10363}#) 4) - (eq? (vector-ref #{id 10363}# 0) 'syntax-object) + (if (if (vector? #{id 10360}#) + (if (= (vector-length #{id 10360}#) 4) + (eq? (vector-ref #{id 10360}# 0) 'syntax-object) #f) #f) - (symbol? (vector-ref #{id 10363}# 1)) + (symbol? (vector-ref #{id 10360}# 1)) #f))) - #{tmp 10359}#) + #{tmp 10356}#) #f) (@apply - (lambda (#{id 10391}# #{val 10392}#) + (lambda (#{id 10388}# #{val 10389}#) (call-with-values (lambda () - (#{resolve-identifier 4433}# - #{id 10391}# - #{w 10355}# - #{r 10354}# - #{mod 10357}# + (#{resolve-identifier 4430}# + #{id 10388}# + #{w 10352}# + #{r 10351}# + #{mod 10354}# #t)) - (lambda (#{type 10395}# #{value 10396}# #{id-mod 10397}#) - (if (eqv? #{type 10395}# 'lexical) - (#{build-lexical-assignment 4384}# - #{s 10356}# - (syntax->datum #{id 10391}#) - #{value 10396}# - (#{chi 4446}# - #{val 10392}# - #{r 10354}# - #{w 10355}# - #{mod 10357}#)) - (if (eqv? #{type 10395}# 'global) - (#{build-global-assignment 4387}# - #{s 10356}# - #{value 10396}# - (#{chi 4446}# - #{val 10392}# - #{r 10354}# - #{w 10355}# - #{mod 10357}#) - #{id-mod 10397}#) - (if (eqv? #{type 10395}# 'macro) + (lambda (#{type 10392}# #{value 10393}# #{id-mod 10394}#) + (if (eqv? #{type 10392}# 'lexical) + (#{build-lexical-assignment 4381}# + #{s 10353}# + (syntax->datum #{id 10388}#) + #{value 10393}# + (#{expand 4443}# + #{val 10389}# + #{r 10351}# + #{w 10352}# + #{mod 10354}#)) + (if (eqv? #{type 10392}# 'global) + (#{build-global-assignment 4384}# + #{s 10353}# + #{value 10393}# + (#{expand 4443}# + #{val 10389}# + #{r 10351}# + #{w 10352}# + #{mod 10354}#) + #{id-mod 10394}#) + (if (eqv? #{type 10392}# 'macro) (if (procedure-property - #{value 10396}# + #{value 10393}# 'variable-transformer) - (#{chi 4446}# - (#{chi-macro 4449}# - #{value 10396}# - #{e 10353}# - #{r 10354}# - #{w 10355}# - #{s 10356}# + (#{expand 4443}# + (#{expand-macro 4446}# + #{value 10393}# + #{e 10350}# + #{r 10351}# + #{w 10352}# + #{s 10353}# #f - #{mod 10357}#) - #{r 10354}# + #{mod 10354}#) + #{r 10351}# '(()) - #{mod 10357}#) + #{mod 10354}#) (syntax-violation 'set! "not a variable transformer" - (if (if (null? (car #{w 10355}#)) - (null? (cdr #{w 10355}#)) + (if (if (null? (car #{w 10352}#)) + (null? (cdr #{w 10352}#)) #f) - #{e 10353}# - (if (if (vector? #{e 10353}#) - (if (= (vector-length #{e 10353}#) 4) - (eq? (vector-ref #{e 10353}# 0) + #{e 10350}# + (if (if (vector? #{e 10350}#) + (if (= (vector-length #{e 10350}#) 4) + (eq? (vector-ref #{e 10350}# 0) 'syntax-object) #f) #f) - (let ((#{expression 10857}# - (vector-ref #{e 10353}# 1)) - (#{wrap 10858}# - (let ((#{w2 10868}# - (vector-ref #{e 10353}# 2))) - (let ((#{m1 10869}# - (car #{w 10355}#)) - (#{s1 10870}# - (cdr #{w 10355}#))) - (if (null? #{m1 10869}#) - (if (null? #{s1 10870}#) - #{w2 10868}# - (cons (car #{w2 10868}#) - (let ((#{m2 10887}# - (cdr #{w2 10868}#))) - (if (null? #{m2 10887}#) - #{s1 10870}# + (let ((#{expression 10854}# + (vector-ref #{e 10350}# 1)) + (#{wrap 10855}# + (let ((#{w2 10865}# + (vector-ref #{e 10350}# 2))) + (let ((#{m1 10866}# + (car #{w 10352}#)) + (#{s1 10867}# + (cdr #{w 10352}#))) + (if (null? #{m1 10866}#) + (if (null? #{s1 10867}#) + #{w2 10865}# + (cons (car #{w2 10865}#) + (let ((#{m2 10884}# + (cdr #{w2 10865}#))) + (if (null? #{m2 10884}#) + #{s1 10867}# (append - #{s1 10870}# - #{m2 10887}#))))) - (cons (let ((#{m2 10895}# - (car #{w2 10868}#))) - (if (null? #{m2 10895}#) - #{m1 10869}# + #{s1 10867}# + #{m2 10884}#))))) + (cons (let ((#{m2 10892}# + (car #{w2 10865}#))) + (if (null? #{m2 10892}#) + #{m1 10866}# (append - #{m1 10869}# - #{m2 10895}#))) - (let ((#{m2 10903}# - (cdr #{w2 10868}#))) - (if (null? #{m2 10903}#) - #{s1 10870}# + #{m1 10866}# + #{m2 10892}#))) + (let ((#{m2 10900}# + (cdr #{w2 10865}#))) + (if (null? #{m2 10900}#) + #{s1 10867}# (append - #{s1 10870}# - #{m2 10903}#)))))))) - (#{module 10859}# - (vector-ref #{e 10353}# 3))) + #{s1 10867}# + #{m2 10900}#)))))))) + (#{module 10856}# + (vector-ref #{e 10350}# 3))) (vector 'syntax-object - #{expression 10857}# - #{wrap 10858}# - #{module 10859}#)) - (if (null? #{e 10353}#) - #{e 10353}# + #{expression 10854}# + #{wrap 10855}# + #{module 10856}#)) + (if (null? #{e 10350}#) + #{e 10350}# (vector 'syntax-object - #{e 10353}# - #{w 10355}# - #{mod 10357}#)))) - (if (if (null? (car #{w 10355}#)) - (null? (cdr #{w 10355}#)) + #{e 10350}# + #{w 10352}# + #{mod 10354}#)))) + (if (if (null? (car #{w 10352}#)) + (null? (cdr #{w 10352}#)) #f) - #{id 10391}# - (if (if (vector? #{id 10391}#) - (if (= (vector-length #{id 10391}#) 4) - (eq? (vector-ref #{id 10391}# 0) + #{id 10388}# + (if (if (vector? #{id 10388}#) + (if (= (vector-length #{id 10388}#) 4) + (eq? (vector-ref #{id 10388}# 0) 'syntax-object) #f) #f) - (let ((#{expression 10955}# - (vector-ref #{id 10391}# 1)) - (#{wrap 10956}# - (let ((#{w2 10966}# - (vector-ref #{id 10391}# 2))) - (let ((#{m1 10967}# - (car #{w 10355}#)) - (#{s1 10968}# - (cdr #{w 10355}#))) - (if (null? #{m1 10967}#) - (if (null? #{s1 10968}#) - #{w2 10966}# - (cons (car #{w2 10966}#) - (let ((#{m2 10985}# - (cdr #{w2 10966}#))) - (if (null? #{m2 10985}#) - #{s1 10968}# + (let ((#{expression 10952}# + (vector-ref #{id 10388}# 1)) + (#{wrap 10953}# + (let ((#{w2 10963}# + (vector-ref #{id 10388}# 2))) + (let ((#{m1 10964}# + (car #{w 10352}#)) + (#{s1 10965}# + (cdr #{w 10352}#))) + (if (null? #{m1 10964}#) + (if (null? #{s1 10965}#) + #{w2 10963}# + (cons (car #{w2 10963}#) + (let ((#{m2 10982}# + (cdr #{w2 10963}#))) + (if (null? #{m2 10982}#) + #{s1 10965}# (append - #{s1 10968}# - #{m2 10985}#))))) - (cons (let ((#{m2 10993}# - (car #{w2 10966}#))) - (if (null? #{m2 10993}#) - #{m1 10967}# + #{s1 10965}# + #{m2 10982}#))))) + (cons (let ((#{m2 10990}# + (car #{w2 10963}#))) + (if (null? #{m2 10990}#) + #{m1 10964}# (append - #{m1 10967}# - #{m2 10993}#))) - (let ((#{m2 11001}# - (cdr #{w2 10966}#))) - (if (null? #{m2 11001}#) - #{s1 10968}# + #{m1 10964}# + #{m2 10990}#))) + (let ((#{m2 10998}# + (cdr #{w2 10963}#))) + (if (null? #{m2 10998}#) + #{s1 10965}# (append - #{s1 10968}# - #{m2 11001}#)))))))) - (#{module 10957}# - (vector-ref #{id 10391}# 3))) + #{s1 10965}# + #{m2 10998}#)))))))) + (#{module 10954}# + (vector-ref #{id 10388}# 3))) (vector 'syntax-object - #{expression 10955}# - #{wrap 10956}# - #{module 10957}#)) - (if (null? #{id 10391}#) - #{id 10391}# + #{expression 10952}# + #{wrap 10953}# + #{module 10954}#)) + (if (null? #{id 10388}#) + #{id 10388}# (vector 'syntax-object - #{id 10391}# - #{w 10355}# - #{id-mod 10397}#)))))) - (if (eqv? #{type 10395}# 'displaced-lexical) + #{id 10388}# + #{w 10352}# + #{id-mod 10394}#)))))) + (if (eqv? #{type 10392}# 'displaced-lexical) (syntax-violation 'set! "identifier out of context" - (if (if (null? (car #{w 10355}#)) - (null? (cdr #{w 10355}#)) + (if (if (null? (car #{w 10352}#)) + (null? (cdr #{w 10352}#)) #f) - #{id 10391}# - (if (if (vector? #{id 10391}#) - (if (= (vector-length #{id 10391}#) 4) - (eq? (vector-ref #{id 10391}# 0) + #{id 10388}# + (if (if (vector? #{id 10388}#) + (if (= (vector-length #{id 10388}#) 4) + (eq? (vector-ref #{id 10388}# 0) 'syntax-object) #f) #f) - (let ((#{expression 11056}# - (vector-ref #{id 10391}# 1)) - (#{wrap 11057}# - (let ((#{w2 11067}# - (vector-ref #{id 10391}# 2))) - (let ((#{m1 11068}# - (car #{w 10355}#)) - (#{s1 11069}# - (cdr #{w 10355}#))) - (if (null? #{m1 11068}#) - (if (null? #{s1 11069}#) - #{w2 11067}# - (cons (car #{w2 11067}#) - (let ((#{m2 11086}# - (cdr #{w2 11067}#))) - (if (null? #{m2 11086}#) - #{s1 11069}# + (let ((#{expression 11053}# + (vector-ref #{id 10388}# 1)) + (#{wrap 11054}# + (let ((#{w2 11064}# + (vector-ref #{id 10388}# 2))) + (let ((#{m1 11065}# + (car #{w 10352}#)) + (#{s1 11066}# + (cdr #{w 10352}#))) + (if (null? #{m1 11065}#) + (if (null? #{s1 11066}#) + #{w2 11064}# + (cons (car #{w2 11064}#) + (let ((#{m2 11083}# + (cdr #{w2 11064}#))) + (if (null? #{m2 11083}#) + #{s1 11066}# (append - #{s1 11069}# - #{m2 11086}#))))) - (cons (let ((#{m2 11094}# - (car #{w2 11067}#))) - (if (null? #{m2 11094}#) - #{m1 11068}# + #{s1 11066}# + #{m2 11083}#))))) + (cons (let ((#{m2 11091}# + (car #{w2 11064}#))) + (if (null? #{m2 11091}#) + #{m1 11065}# (append - #{m1 11068}# - #{m2 11094}#))) - (let ((#{m2 11102}# - (cdr #{w2 11067}#))) - (if (null? #{m2 11102}#) - #{s1 11069}# + #{m1 11065}# + #{m2 11091}#))) + (let ((#{m2 11099}# + (cdr #{w2 11064}#))) + (if (null? #{m2 11099}#) + #{s1 11066}# (append - #{s1 11069}# - #{m2 11102}#)))))))) - (#{module 11058}# - (vector-ref #{id 10391}# 3))) + #{s1 11066}# + #{m2 11099}#)))))))) + (#{module 11055}# + (vector-ref #{id 10388}# 3))) (vector 'syntax-object - #{expression 11056}# - #{wrap 11057}# - #{module 11058}#)) - (if (null? #{id 10391}#) - #{id 10391}# + #{expression 11053}# + #{wrap 11054}# + #{module 11055}#)) + (if (null? #{id 10388}#) + #{id 10388}# (vector 'syntax-object - #{id 10391}# - #{w 10355}# - #{mod 10357}#))))) + #{id 10388}# + #{w 10352}# + #{mod 10354}#))))) (syntax-violation 'set! "bad set!" - (let ((#{x 11134}# + (let ((#{x 11131}# (begin - (if (if (pair? #{e 10353}#) - #{s 10356}# + (if (if (pair? #{e 10350}#) + #{s 10353}# #f) (set-source-properties! - #{e 10353}# - #{s 10356}#)) - #{e 10353}#))) - (if (if (null? (car #{w 10355}#)) - (null? (cdr #{w 10355}#)) + #{e 10350}# + #{s 10353}#)) + #{e 10350}#))) + (if (if (null? (car #{w 10352}#)) + (null? (cdr #{w 10352}#)) #f) - #{x 11134}# - (if (if (vector? #{x 11134}#) - (if (= (vector-length #{x 11134}#) 4) - (eq? (vector-ref #{x 11134}# 0) + #{x 11131}# + (if (if (vector? #{x 11131}#) + (if (= (vector-length #{x 11131}#) 4) + (eq? (vector-ref #{x 11131}# 0) 'syntax-object) #f) #f) - (let ((#{expression 11166}# - (vector-ref #{x 11134}# 1)) - (#{wrap 11167}# - (let ((#{w2 11175}# + (let ((#{expression 11163}# + (vector-ref #{x 11131}# 1)) + (#{wrap 11164}# + (let ((#{w2 11172}# (vector-ref - #{x 11134}# + #{x 11131}# 2))) - (let ((#{m1 11176}# - (car #{w 10355}#)) - (#{s1 11177}# - (cdr #{w 10355}#))) - (if (null? #{m1 11176}#) - (if (null? #{s1 11177}#) - #{w2 11175}# - (cons (car #{w2 11175}#) - (let ((#{m2 11192}# - (cdr #{w2 11175}#))) - (if (null? #{m2 11192}#) - #{s1 11177}# + (let ((#{m1 11173}# + (car #{w 10352}#)) + (#{s1 11174}# + (cdr #{w 10352}#))) + (if (null? #{m1 11173}#) + (if (null? #{s1 11174}#) + #{w2 11172}# + (cons (car #{w2 11172}#) + (let ((#{m2 11189}# + (cdr #{w2 11172}#))) + (if (null? #{m2 11189}#) + #{s1 11174}# (append - #{s1 11177}# - #{m2 11192}#))))) - (cons (let ((#{m2 11200}# - (car #{w2 11175}#))) - (if (null? #{m2 11200}#) - #{m1 11176}# + #{s1 11174}# + #{m2 11189}#))))) + (cons (let ((#{m2 11197}# + (car #{w2 11172}#))) + (if (null? #{m2 11197}#) + #{m1 11173}# (append - #{m1 11176}# - #{m2 11200}#))) - (let ((#{m2 11208}# - (cdr #{w2 11175}#))) - (if (null? #{m2 11208}#) - #{s1 11177}# + #{m1 11173}# + #{m2 11197}#))) + (let ((#{m2 11205}# + (cdr #{w2 11172}#))) + (if (null? #{m2 11205}#) + #{s1 11174}# (append - #{s1 11177}# - #{m2 11208}#)))))))) - (#{module 11168}# - (vector-ref #{x 11134}# 3))) + #{s1 11174}# + #{m2 11205}#)))))))) + (#{module 11165}# + (vector-ref #{x 11131}# 3))) (vector 'syntax-object - #{expression 11166}# - #{wrap 11167}# - #{module 11168}#)) - (if (null? #{x 11134}#) - #{x 11134}# + #{expression 11163}# + #{wrap 11164}# + #{module 11165}#)) + (if (null? #{x 11131}#) + #{x 11131}# (vector 'syntax-object - #{x 11134}# - #{w 10355}# - #{mod 10357}#))))))))))))) - #{tmp 10359}#) - (let ((#{tmp 11223}# + #{x 11131}# + #{w 10352}# + #{mod 10354}#))))))))))))) + #{tmp 10356}#) + (let ((#{tmp 11220}# ($sc-dispatch - #{e 10353}# + #{e 10350}# '(_ (any . each-any) any)))) - (if #{tmp 11223}# + (if #{tmp 11220}# (@apply - (lambda (#{head 11227}# #{tail 11228}# #{val 11229}#) + (lambda (#{head 11224}# #{tail 11225}# #{val 11226}#) (call-with-values (lambda () - (#{syntax-type 4445}# - #{head 11227}# - #{r 10354}# + (#{syntax-type 4442}# + #{head 11224}# + #{r 10351}# '(()) #f #f - #{mod 10357}# + #{mod 10354}# #t)) - (lambda (#{type 11232}# - #{value 11233}# - #{ee 11234}# - #{ww 11235}# - #{ss 11236}# - #{modmod 11237}#) - (if (eqv? #{type 11232}# 'module-ref) - (let ((#{val 11241}# - (#{chi 4446}# - #{val 11229}# - #{r 10354}# - #{w 10355}# - #{mod 10357}#))) + (lambda (#{type 11229}# + #{value 11230}# + #{ee 11231}# + #{ww 11232}# + #{ss 11233}# + #{modmod 11234}#) + (if (eqv? #{type 11229}# 'module-ref) + (let ((#{val 11238}# + (#{expand 4443}# + #{val 11226}# + #{r 10351}# + #{w 10352}# + #{mod 10354}#))) (call-with-values (lambda () - (#{value 11233}# - (cons #{head 11227}# #{tail 11228}#) - #{r 10354}# - #{w 10355}#)) - (lambda (#{e 11242}# - #{r 11243}# - #{w 11244}# - #{s* 11245}# - #{mod 11246}#) - (let ((#{tmp 11248}# (list #{e 11242}#))) + (#{value 11230}# + (cons #{head 11224}# #{tail 11225}#) + #{r 10351}# + #{w 10352}#)) + (lambda (#{e 11239}# + #{r 11240}# + #{w 11241}# + #{s* 11242}# + #{mod 11243}#) + (let ((#{tmp 11245}# (list #{e 11239}#))) (if (@apply - (lambda (#{e 11250}#) - (if (symbol? #{e 11250}#) + (lambda (#{e 11247}#) + (if (symbol? #{e 11247}#) #t - (if (if (vector? #{e 11250}#) + (if (if (vector? #{e 11247}#) (if (= (vector-length - #{e 11250}#) + #{e 11247}#) 4) (eq? (vector-ref - #{e 11250}# + #{e 11247}# 0) 'syntax-object) #f) #f) (symbol? - (vector-ref #{e 11250}# 1)) + (vector-ref #{e 11247}# 1)) #f))) - #{tmp 11248}#) + #{tmp 11245}#) (@apply - (lambda (#{e 11280}#) - (#{build-global-assignment 4387}# - #{s 10356}# - (syntax->datum #{e 11280}#) - #{val 11241}# - #{mod 11246}#)) - #{tmp 11248}#) + (lambda (#{e 11277}#) + (#{build-global-assignment 4384}# + #{s 10353}# + (syntax->datum #{e 11277}#) + #{val 11238}# + #{mod 11243}#)) + #{tmp 11245}#) (syntax-violation #f "source expression failed to match any pattern" - #{e 11242}#)))))) - (#{build-call 4380}# - #{s 10356}# - (#{chi 4446}# + #{e 11239}#)))))) + (#{build-call 4377}# + #{s 10353}# + (#{expand 4443}# (list '#(syntax-object setter ((top) @@ -11168,47 +11104,47 @@ (top) (top) (top)) - #("i3658" + #("i3655" + "i3656" + "i3657" + "i3658" "i3659" - "i3660" - "i3661" - "i3662" - "i3663")) + "i3660")) #(ribcage #(head tail val) #((top) (top) (top)) - #("i3644" "i3645" "i3646")) + #("i3641" "i3642" "i3643")) #(ribcage () () ()) #(ribcage #(e r w s mod) #((top) (top) (top) (top) (top)) - #("i3616" - "i3617" - "i3618" - "i3619" - "i3620")) + #("i3613" + "i3614" + "i3615" + "i3616" + "i3617")) #(ribcage (lambda-var-list gen-var strip - chi-lambda-case + expand-lambda-case lambda*-formals - chi-simple-lambda + expand-simple-lambda lambda-formals ellipsis? - chi-void + expand-void eval-local-transformer - chi-local-syntax - chi-body - chi-macro - chi-call - chi-expr - chi + expand-local-syntax + expand-body + expand-macro + expand-call + expand-expr + expand syntax-type - chi-when-list - chi-install-global - chi-top-sequence - chi-sequence + parse-when-list + expand-install-global + expand-top-sequence + expand-sequence source-wrap wrap bound-id-member? @@ -11610,113 +11546,113 @@ ("i46" "i45" "i44")) #(ribcage () () ())) (hygiene guile)) - #{head 11227}#) - #{r 10354}# - #{w 10355}# - #{mod 10357}#) - (map (lambda (#{e 11609}#) - (#{chi 4446}# - #{e 11609}# - #{r 10354}# - #{w 10355}# - #{mod 10357}#)) + #{head 11224}#) + #{r 10351}# + #{w 10352}# + #{mod 10354}#) + (map (lambda (#{e 11606}#) + (#{expand 4443}# + #{e 11606}# + #{r 10351}# + #{w 10352}# + #{mod 10354}#)) (append - #{tail 11228}# - (list #{val 11229}#)))))))) - #{tmp 11223}#) + #{tail 11225}# + (list #{val 11226}#)))))))) + #{tmp 11220}#) (syntax-violation 'set! "bad set!" - (let ((#{x 11701}# + (let ((#{x 11698}# (begin - (if (if (pair? #{e 10353}#) #{s 10356}# #f) - (set-source-properties! #{e 10353}# #{s 10356}#)) - #{e 10353}#))) - (if (if (null? (car #{w 10355}#)) - (null? (cdr #{w 10355}#)) + (if (if (pair? #{e 10350}#) #{s 10353}# #f) + (set-source-properties! #{e 10350}# #{s 10353}#)) + #{e 10350}#))) + (if (if (null? (car #{w 10352}#)) + (null? (cdr #{w 10352}#)) #f) - #{x 11701}# - (if (if (vector? #{x 11701}#) - (if (= (vector-length #{x 11701}#) 4) - (eq? (vector-ref #{x 11701}# 0) 'syntax-object) + #{x 11698}# + (if (if (vector? #{x 11698}#) + (if (= (vector-length #{x 11698}#) 4) + (eq? (vector-ref #{x 11698}# 0) 'syntax-object) #f) #f) - (let ((#{expression 11733}# (vector-ref #{x 11701}# 1)) - (#{wrap 11734}# - (let ((#{w2 11742}# - (vector-ref #{x 11701}# 2))) - (let ((#{m1 11743}# (car #{w 10355}#)) - (#{s1 11744}# (cdr #{w 10355}#))) - (if (null? #{m1 11743}#) - (if (null? #{s1 11744}#) - #{w2 11742}# - (cons (car #{w2 11742}#) - (let ((#{m2 11759}# - (cdr #{w2 11742}#))) - (if (null? #{m2 11759}#) - #{s1 11744}# + (let ((#{expression 11730}# (vector-ref #{x 11698}# 1)) + (#{wrap 11731}# + (let ((#{w2 11739}# + (vector-ref #{x 11698}# 2))) + (let ((#{m1 11740}# (car #{w 10352}#)) + (#{s1 11741}# (cdr #{w 10352}#))) + (if (null? #{m1 11740}#) + (if (null? #{s1 11741}#) + #{w2 11739}# + (cons (car #{w2 11739}#) + (let ((#{m2 11756}# + (cdr #{w2 11739}#))) + (if (null? #{m2 11756}#) + #{s1 11741}# (append - #{s1 11744}# - #{m2 11759}#))))) - (cons (let ((#{m2 11767}# - (car #{w2 11742}#))) - (if (null? #{m2 11767}#) - #{m1 11743}# + #{s1 11741}# + #{m2 11756}#))))) + (cons (let ((#{m2 11764}# + (car #{w2 11739}#))) + (if (null? #{m2 11764}#) + #{m1 11740}# (append - #{m1 11743}# - #{m2 11767}#))) - (let ((#{m2 11775}# - (cdr #{w2 11742}#))) - (if (null? #{m2 11775}#) - #{s1 11744}# + #{m1 11740}# + #{m2 11764}#))) + (let ((#{m2 11772}# + (cdr #{w2 11739}#))) + (if (null? #{m2 11772}#) + #{s1 11741}# (append - #{s1 11744}# - #{m2 11775}#)))))))) - (#{module 11735}# (vector-ref #{x 11701}# 3))) + #{s1 11741}# + #{m2 11772}#)))))))) + (#{module 11732}# (vector-ref #{x 11698}# 3))) (vector 'syntax-object - #{expression 11733}# - #{wrap 11734}# - #{module 11735}#)) - (if (null? #{x 11701}#) - #{x 11701}# + #{expression 11730}# + #{wrap 11731}# + #{module 11732}#)) + (if (null? #{x 11698}#) + #{x 11698}# (vector 'syntax-object - #{x 11701}# - #{w 10355}# - #{mod 10357}#)))))))))))) + #{x 11698}# + #{w 10352}# + #{mod 10354}#)))))))))))) (module-define! (current-module) '@ (make-syntax-transformer '@ 'module-ref - (lambda (#{e 11806}# #{r 11807}# #{w 11808}#) - (let ((#{tmp 11810}# - ($sc-dispatch #{e 11806}# '(_ each-any any)))) - (if (if #{tmp 11810}# + (lambda (#{e 11803}# #{r 11804}# #{w 11805}#) + (let ((#{tmp 11807}# + ($sc-dispatch #{e 11803}# '(_ each-any any)))) + (if (if #{tmp 11807}# (@apply - (lambda (#{mod 11813}# #{id 11814}#) - (if (and-map #{id? 4413}# #{mod 11813}#) - (if (symbol? #{id 11814}#) + (lambda (#{mod 11810}# #{id 11811}#) + (if (and-map #{id? 4410}# #{mod 11810}#) + (if (symbol? #{id 11811}#) #t - (if (if (vector? #{id 11814}#) - (if (= (vector-length #{id 11814}#) 4) - (eq? (vector-ref #{id 11814}# 0) + (if (if (vector? #{id 11811}#) + (if (= (vector-length #{id 11811}#) 4) + (eq? (vector-ref #{id 11811}# 0) 'syntax-object) #f) #f) - (symbol? (vector-ref #{id 11814}# 1)) + (symbol? (vector-ref #{id 11811}# 1)) #f)) #f)) - #{tmp 11810}#) + #{tmp 11807}#) #f) (@apply - (lambda (#{mod 11854}# #{id 11855}#) + (lambda (#{mod 11851}# #{id 11852}#) (values - (syntax->datum #{id 11855}#) - #{r 11807}# - #{w 11808}# + (syntax->datum #{id 11852}#) + #{r 11804}# + #{w 11805}# #f (syntax->datum (cons '#(syntax-object @@ -11725,34 +11661,34 @@ #(ribcage #(mod id) #((top) (top)) - #("i3705" "i3706")) + #("i3702" "i3703")) #(ribcage () () ()) #(ribcage #(e r w) #((top) (top) (top)) - #("i3693" "i3694" "i3695")) + #("i3690" "i3691" "i3692")) #(ribcage (lambda-var-list gen-var strip - chi-lambda-case + expand-lambda-case lambda*-formals - chi-simple-lambda + expand-simple-lambda lambda-formals ellipsis? - chi-void + expand-void eval-local-transformer - chi-local-syntax - chi-body - chi-macro - chi-call - chi-expr - chi + expand-local-syntax + expand-body + expand-macro + expand-call + expand-expr + expand syntax-type - chi-when-list - chi-install-global - chi-top-sequence - chi-sequence + parse-when-list + expand-install-global + expand-top-sequence + expand-sequence source-wrap wrap bound-id-member? @@ -12154,70 +12090,70 @@ ("i46" "i45" "i44")) #(ribcage () () ())) (hygiene guile)) - #{mod 11854}#)))) - #{tmp 11810}#) + #{mod 11851}#)))) + #{tmp 11807}#) (syntax-violation #f "source expression failed to match any pattern" - #{e 11806}#)))))) - (#{global-extend 4411}# + #{e 11803}#)))))) + (#{global-extend 4408}# 'module-ref '@@ - (lambda (#{e 11959}# #{r 11960}# #{w 11961}#) + (lambda (#{e 11956}# #{r 11957}# #{w 11958}#) (letrec* - ((#{remodulate 11962}# - (lambda (#{x 12198}# #{mod 12199}#) - (if (pair? #{x 12198}#) - (cons (#{remodulate 11962}# - (car #{x 12198}#) - #{mod 12199}#) - (#{remodulate 11962}# - (cdr #{x 12198}#) - #{mod 12199}#)) - (if (if (vector? #{x 12198}#) - (if (= (vector-length #{x 12198}#) 4) - (eq? (vector-ref #{x 12198}# 0) 'syntax-object) + ((#{remodulate 11959}# + (lambda (#{x 12195}# #{mod 12196}#) + (if (pair? #{x 12195}#) + (cons (#{remodulate 11959}# + (car #{x 12195}#) + #{mod 12196}#) + (#{remodulate 11959}# + (cdr #{x 12195}#) + #{mod 12196}#)) + (if (if (vector? #{x 12195}#) + (if (= (vector-length #{x 12195}#) 4) + (eq? (vector-ref #{x 12195}# 0) 'syntax-object) #f) #f) - (let ((#{expression 12213}# - (#{remodulate 11962}# - (vector-ref #{x 12198}# 1) - #{mod 12199}#)) - (#{wrap 12214}# (vector-ref #{x 12198}# 2))) + (let ((#{expression 12210}# + (#{remodulate 11959}# + (vector-ref #{x 12195}# 1) + #{mod 12196}#)) + (#{wrap 12211}# (vector-ref #{x 12195}# 2))) (vector 'syntax-object - #{expression 12213}# - #{wrap 12214}# - #{mod 12199}#)) - (if (vector? #{x 12198}#) - (let ((#{n 12222}# (vector-length #{x 12198}#))) - (let ((#{v 12223}# (make-vector #{n 12222}#))) + #{expression 12210}# + #{wrap 12211}# + #{mod 12196}#)) + (if (vector? #{x 12195}#) + (let ((#{n 12219}# (vector-length #{x 12195}#))) + (let ((#{v 12220}# (make-vector #{n 12219}#))) (letrec* - ((#{loop 12224}# - (lambda (#{i 12279}#) - (if (= #{i 12279}# #{n 12222}#) - #{v 12223}# + ((#{loop 12221}# + (lambda (#{i 12276}#) + (if (= #{i 12276}# #{n 12219}#) + #{v 12220}# (begin (vector-set! - #{v 12223}# - #{i 12279}# - (#{remodulate 11962}# - (vector-ref #{x 12198}# #{i 12279}#) - #{mod 12199}#)) - (#{loop 12224}# (#{1+}# #{i 12279}#))))))) - (#{loop 12224}# 0)))) - #{x 12198}#)))))) - (let ((#{tmp 11964}# - ($sc-dispatch #{e 11959}# '(_ each-any any)))) - (if (if #{tmp 11964}# + #{v 12220}# + #{i 12276}# + (#{remodulate 11959}# + (vector-ref #{x 12195}# #{i 12276}#) + #{mod 12196}#)) + (#{loop 12221}# (#{1+}# #{i 12276}#))))))) + (#{loop 12221}# 0)))) + #{x 12195}#)))))) + (let ((#{tmp 11961}# + ($sc-dispatch #{e 11956}# '(_ each-any any)))) + (if (if #{tmp 11961}# (@apply - (lambda (#{mod 11968}# #{exp 11969}#) - (and-map #{id? 4413}# #{mod 11968}#)) - #{tmp 11964}#) + (lambda (#{mod 11965}# #{exp 11966}#) + (and-map #{id? 4410}# #{mod 11965}#)) + #{tmp 11961}#) #f) (@apply - (lambda (#{mod 11985}# #{exp 11986}#) - (let ((#{mod 11987}# + (lambda (#{mod 11982}# #{exp 11983}#) + (let ((#{mod 11984}# (syntax->datum (cons '#(syntax-object private @@ -12225,34 +12161,34 @@ #(ribcage #(mod exp) #((top) (top)) - #("i3749" "i3750")) - #(ribcage (remodulate) ((top)) ("i3716")) + #("i3746" "i3747")) + #(ribcage (remodulate) ((top)) ("i3713")) #(ribcage #(e r w) #((top) (top) (top)) - #("i3713" "i3714" "i3715")) + #("i3710" "i3711" "i3712")) #(ribcage (lambda-var-list gen-var strip - chi-lambda-case + expand-lambda-case lambda*-formals - chi-simple-lambda + expand-simple-lambda lambda-formals ellipsis? - chi-void + expand-void eval-local-transformer - chi-local-syntax - chi-body - chi-macro - chi-call - chi-expr - chi + expand-local-syntax + expand-body + expand-macro + expand-call + expand-expr + expand syntax-type - chi-when-list - chi-install-global - chi-top-sequence - chi-sequence + parse-when-list + expand-install-global + expand-top-sequence + expand-sequence source-wrap wrap bound-id-member? @@ -12654,181 +12590,181 @@ ("i46" "i45" "i44")) #(ribcage () () ())) (hygiene guile)) - #{mod 11985}#)))) + #{mod 11982}#)))) (values - (#{remodulate 11962}# - #{exp 11986}# - #{mod 11987}#) - #{r 11960}# - #{w 11961}# - (#{source-annotation 4407}# #{exp 11986}#) - #{mod 11987}#))) - #{tmp 11964}#) + (#{remodulate 11959}# + #{exp 11983}# + #{mod 11984}#) + #{r 11957}# + #{w 11958}# + (#{source-annotation 4404}# #{exp 11983}#) + #{mod 11984}#))) + #{tmp 11961}#) (syntax-violation #f "source expression failed to match any pattern" - #{e 11959}#)))))) - (#{global-extend 4411}# + #{e 11956}#)))))) + (#{global-extend 4408}# 'core 'if - (lambda (#{e 12392}# - #{r 12393}# - #{w 12394}# - #{s 12395}# - #{mod 12396}#) - (let ((#{tmp 12398}# - ($sc-dispatch #{e 12392}# '(_ any any)))) - (if #{tmp 12398}# + (lambda (#{e 12389}# + #{r 12390}# + #{w 12391}# + #{s 12392}# + #{mod 12393}#) + (let ((#{tmp 12395}# + ($sc-dispatch #{e 12389}# '(_ any any)))) + (if #{tmp 12395}# (@apply - (lambda (#{test 12402}# #{then 12403}#) - (#{build-conditional 4381}# - #{s 12395}# - (#{chi 4446}# - #{test 12402}# - #{r 12393}# - #{w 12394}# - #{mod 12396}#) - (#{chi 4446}# - #{then 12403}# - #{r 12393}# - #{w 12394}# - #{mod 12396}#) + (lambda (#{test 12399}# #{then 12400}#) + (#{build-conditional 4378}# + #{s 12392}# + (#{expand 4443}# + #{test 12399}# + #{r 12390}# + #{w 12391}# + #{mod 12393}#) + (#{expand 4443}# + #{then 12400}# + #{r 12390}# + #{w 12391}# + #{mod 12393}#) (make-struct/no-tail (vector-ref %expanded-vtables 0) #f))) - #{tmp 12398}#) - (let ((#{tmp 12664}# - ($sc-dispatch #{e 12392}# '(_ any any any)))) - (if #{tmp 12664}# + #{tmp 12395}#) + (let ((#{tmp 12661}# + ($sc-dispatch #{e 12389}# '(_ any any any)))) + (if #{tmp 12661}# (@apply - (lambda (#{test 12668}# #{then 12669}# #{else 12670}#) - (#{build-conditional 4381}# - #{s 12395}# - (#{chi 4446}# - #{test 12668}# - #{r 12393}# - #{w 12394}# - #{mod 12396}#) - (#{chi 4446}# - #{then 12669}# - #{r 12393}# - #{w 12394}# - #{mod 12396}#) - (#{chi 4446}# - #{else 12670}# - #{r 12393}# - #{w 12394}# - #{mod 12396}#))) - #{tmp 12664}#) + (lambda (#{test 12665}# #{then 12666}# #{else 12667}#) + (#{build-conditional 4378}# + #{s 12392}# + (#{expand 4443}# + #{test 12665}# + #{r 12390}# + #{w 12391}# + #{mod 12393}#) + (#{expand 4443}# + #{then 12666}# + #{r 12390}# + #{w 12391}# + #{mod 12393}#) + (#{expand 4443}# + #{else 12667}# + #{r 12390}# + #{w 12391}# + #{mod 12393}#))) + #{tmp 12661}#) (syntax-violation #f "source expression failed to match any pattern" - #{e 12392}#))))))) - (#{global-extend 4411}# + #{e 12389}#))))))) + (#{global-extend 4408}# 'core 'with-fluids - (lambda (#{e 13129}# - #{r 13130}# - #{w 13131}# - #{s 13132}# - #{mod 13133}#) - (let ((#{tmp 13135}# + (lambda (#{e 13126}# + #{r 13127}# + #{w 13128}# + #{s 13129}# + #{mod 13130}#) + (let ((#{tmp 13132}# ($sc-dispatch - #{e 13129}# + #{e 13126}# '(_ #(each (any any)) any . each-any)))) - (if #{tmp 13135}# + (if #{tmp 13132}# (@apply - (lambda (#{fluid 13139}# - #{val 13140}# - #{b 13141}# - #{b* 13142}#) - (#{build-dynlet 4382}# - #{s 13132}# - (map (lambda (#{x 13235}#) - (#{chi 4446}# - #{x 13235}# - #{r 13130}# - #{w 13131}# - #{mod 13133}#)) - #{fluid 13139}#) - (map (lambda (#{x 13317}#) - (#{chi 4446}# - #{x 13317}# - #{r 13130}# - #{w 13131}# - #{mod 13133}#)) - #{val 13140}#) - (#{chi-body 4450}# - (cons #{b 13141}# #{b* 13142}#) - (let ((#{x 13410}# + (lambda (#{fluid 13136}# + #{val 13137}# + #{b 13138}# + #{b* 13139}#) + (#{build-dynlet 4379}# + #{s 13129}# + (map (lambda (#{x 13232}#) + (#{expand 4443}# + #{x 13232}# + #{r 13127}# + #{w 13128}# + #{mod 13130}#)) + #{fluid 13136}#) + (map (lambda (#{x 13314}#) + (#{expand 4443}# + #{x 13314}# + #{r 13127}# + #{w 13128}# + #{mod 13130}#)) + #{val 13137}#) + (#{expand-body 4447}# + (cons #{b 13138}# #{b* 13139}#) + (let ((#{x 13407}# (begin - (if (if (pair? #{e 13129}#) #{s 13132}# #f) + (if (if (pair? #{e 13126}#) #{s 13129}# #f) (set-source-properties! - #{e 13129}# - #{s 13132}#)) - #{e 13129}#))) - (if (if (null? (car #{w 13131}#)) - (null? (cdr #{w 13131}#)) + #{e 13126}# + #{s 13129}#)) + #{e 13126}#))) + (if (if (null? (car #{w 13128}#)) + (null? (cdr #{w 13128}#)) #f) - #{x 13410}# - (if (if (vector? #{x 13410}#) - (if (= (vector-length #{x 13410}#) 4) - (eq? (vector-ref #{x 13410}# 0) 'syntax-object) + #{x 13407}# + (if (if (vector? #{x 13407}#) + (if (= (vector-length #{x 13407}#) 4) + (eq? (vector-ref #{x 13407}# 0) 'syntax-object) #f) #f) - (let ((#{expression 13442}# - (vector-ref #{x 13410}# 1)) - (#{wrap 13443}# - (let ((#{w2 13451}# - (vector-ref #{x 13410}# 2))) - (let ((#{m1 13452}# (car #{w 13131}#)) - (#{s1 13453}# (cdr #{w 13131}#))) - (if (null? #{m1 13452}#) - (if (null? #{s1 13453}#) - #{w2 13451}# - (cons (car #{w2 13451}#) - (let ((#{m2 13468}# - (cdr #{w2 13451}#))) - (if (null? #{m2 13468}#) - #{s1 13453}# + (let ((#{expression 13439}# + (vector-ref #{x 13407}# 1)) + (#{wrap 13440}# + (let ((#{w2 13448}# + (vector-ref #{x 13407}# 2))) + (let ((#{m1 13449}# (car #{w 13128}#)) + (#{s1 13450}# (cdr #{w 13128}#))) + (if (null? #{m1 13449}#) + (if (null? #{s1 13450}#) + #{w2 13448}# + (cons (car #{w2 13448}#) + (let ((#{m2 13465}# + (cdr #{w2 13448}#))) + (if (null? #{m2 13465}#) + #{s1 13450}# (append - #{s1 13453}# - #{m2 13468}#))))) - (cons (let ((#{m2 13476}# - (car #{w2 13451}#))) - (if (null? #{m2 13476}#) - #{m1 13452}# + #{s1 13450}# + #{m2 13465}#))))) + (cons (let ((#{m2 13473}# + (car #{w2 13448}#))) + (if (null? #{m2 13473}#) + #{m1 13449}# (append - #{m1 13452}# - #{m2 13476}#))) - (let ((#{m2 13484}# - (cdr #{w2 13451}#))) - (if (null? #{m2 13484}#) - #{s1 13453}# + #{m1 13449}# + #{m2 13473}#))) + (let ((#{m2 13481}# + (cdr #{w2 13448}#))) + (if (null? #{m2 13481}#) + #{s1 13450}# (append - #{s1 13453}# - #{m2 13484}#)))))))) - (#{module 13444}# (vector-ref #{x 13410}# 3))) + #{s1 13450}# + #{m2 13481}#)))))))) + (#{module 13441}# (vector-ref #{x 13407}# 3))) (vector 'syntax-object - #{expression 13442}# - #{wrap 13443}# - #{module 13444}#)) - (if (null? #{x 13410}#) - #{x 13410}# + #{expression 13439}# + #{wrap 13440}# + #{module 13441}#)) + (if (null? #{x 13407}#) + #{x 13407}# (vector 'syntax-object - #{x 13410}# - #{w 13131}# - #{mod 13133}#))))) - #{r 13130}# - #{w 13131}# - #{mod 13133}#))) - #{tmp 13135}#) + #{x 13407}# + #{w 13128}# + #{mod 13130}#))))) + #{r 13127}# + #{w 13128}# + #{mod 13130}#))) + #{tmp 13132}#) (syntax-violation #f "source expression failed to match any pattern" - #{e 13129}#))))) + #{e 13126}#))))) (module-define! (current-module) 'begin @@ -12858,68 +12794,68 @@ 'eval-when 'eval-when '())) - (#{global-extend 4411}# + (#{global-extend 4408}# 'core 'syntax-case (letrec* - ((#{convert-pattern 13788}# - (lambda (#{pattern 15444}# #{keys 15445}#) + ((#{convert-pattern 13785}# + (lambda (#{pattern 15441}# #{keys 15442}#) (letrec* - ((#{cvt* 15446}# - (lambda (#{p* 16245}# #{n 16246}# #{ids 16247}#) - (if (not (pair? #{p* 16245}#)) - (#{cvt 15448}# - #{p* 16245}# - #{n 16246}# - #{ids 16247}#) + ((#{cvt* 15443}# + (lambda (#{p* 16242}# #{n 16243}# #{ids 16244}#) + (if (not (pair? #{p* 16242}#)) + (#{cvt 15445}# + #{p* 16242}# + #{n 16243}# + #{ids 16244}#) (call-with-values (lambda () - (#{cvt* 15446}# - (cdr #{p* 16245}#) - #{n 16246}# - #{ids 16247}#)) - (lambda (#{y 16250}# #{ids 16251}#) + (#{cvt* 15443}# + (cdr #{p* 16242}#) + #{n 16243}# + #{ids 16244}#)) + (lambda (#{y 16247}# #{ids 16248}#) (call-with-values (lambda () - (#{cvt 15448}# - (car #{p* 16245}#) - #{n 16246}# - #{ids 16251}#)) - (lambda (#{x 16254}# #{ids 16255}#) + (#{cvt 15445}# + (car #{p* 16242}#) + #{n 16243}# + #{ids 16248}#)) + (lambda (#{x 16251}# #{ids 16252}#) (values - (cons #{x 16254}# #{y 16250}#) - #{ids 16255}#)))))))) - (#{v-reverse 15447}# - (lambda (#{x 16256}#) + (cons #{x 16251}# #{y 16247}#) + #{ids 16252}#)))))))) + (#{v-reverse 15444}# + (lambda (#{x 16253}#) (letrec* - ((#{loop 16257}# - (lambda (#{r 16358}# #{x 16359}#) - (if (not (pair? #{x 16359}#)) - (values #{r 16358}# #{x 16359}#) - (#{loop 16257}# - (cons (car #{x 16359}#) #{r 16358}#) - (cdr #{x 16359}#)))))) - (#{loop 16257}# '() #{x 16256}#)))) - (#{cvt 15448}# - (lambda (#{p 15451}# #{n 15452}# #{ids 15453}#) - (if (if (symbol? #{p 15451}#) + ((#{loop 16254}# + (lambda (#{r 16355}# #{x 16356}#) + (if (not (pair? #{x 16356}#)) + (values #{r 16355}# #{x 16356}#) + (#{loop 16254}# + (cons (car #{x 16356}#) #{r 16355}#) + (cdr #{x 16356}#)))))) + (#{loop 16254}# '() #{x 16253}#)))) + (#{cvt 15445}# + (lambda (#{p 15448}# #{n 15449}# #{ids 15450}#) + (if (if (symbol? #{p 15448}#) #t - (if (if (vector? #{p 15451}#) - (if (= (vector-length #{p 15451}#) 4) - (eq? (vector-ref #{p 15451}# 0) + (if (if (vector? #{p 15448}#) + (if (= (vector-length #{p 15448}#) 4) + (eq? (vector-ref #{p 15448}# 0) 'syntax-object) #f) #f) - (symbol? (vector-ref #{p 15451}# 1)) + (symbol? (vector-ref #{p 15448}# 1)) #f)) - (if (#{bound-id-member? 4438}# - #{p 15451}# - #{keys 15445}#) + (if (#{bound-id-member? 4435}# + #{p 15448}# + #{keys 15442}#) (values - (vector 'free-id #{p 15451}#) - #{ids 15453}#) - (if (#{free-id=? 4434}# - #{p 15451}# + (vector 'free-id #{p 15448}#) + #{ids 15450}#) + (if (#{free-id=? 4431}# + #{p 15448}# '#(syntax-object _ ((top) @@ -12927,44 +12863,44 @@ #(ribcage #(p n ids) #((top) (top) (top)) - #("i3850" "i3851" "i3852")) + #("i3847" "i3848" "i3849")) #(ribcage (cvt v-reverse cvt*) ((top) (top) (top)) - ("i3823" "i3821" "i3819")) + ("i3820" "i3818" "i3816")) #(ribcage #(pattern keys) #((top) (top)) - #("i3817" "i3818")) + #("i3814" "i3815")) #(ribcage (gen-syntax-case gen-clause build-dispatch-call convert-pattern) ((top) (top) (top) (top)) - ("i3813" "i3811" "i3809" "i3807")) + ("i3810" "i3808" "i3806" "i3804")) #(ribcage (lambda-var-list gen-var strip - chi-lambda-case + expand-lambda-case lambda*-formals - chi-simple-lambda + expand-simple-lambda lambda-formals ellipsis? - chi-void + expand-void eval-local-transformer - chi-local-syntax - chi-body - chi-macro - chi-call - chi-expr - chi + expand-local-syntax + expand-body + expand-macro + expand-call + expand-expr + expand syntax-type - chi-when-list - chi-install-global - chi-top-sequence - chi-sequence + parse-when-list + expand-install-global + expand-top-sequence + expand-sequence source-wrap wrap bound-id-member? @@ -13366,58 +13302,58 @@ ("i46" "i45" "i44")) #(ribcage () () ())) (hygiene guile))) - (values '_ #{ids 15453}#) + (values '_ #{ids 15450}#) (values 'any - (cons (cons #{p 15451}# #{n 15452}#) - #{ids 15453}#)))) - (let ((#{tmp 15585}# - ($sc-dispatch #{p 15451}# '(any any)))) - (if (if #{tmp 15585}# + (cons (cons #{p 15448}# #{n 15449}#) + #{ids 15450}#)))) + (let ((#{tmp 15582}# + ($sc-dispatch #{p 15448}# '(any any)))) + (if (if #{tmp 15582}# (@apply - (lambda (#{x 15589}# #{dots 15590}#) - (if (if (if (vector? #{dots 15590}#) + (lambda (#{x 15586}# #{dots 15587}#) + (if (if (if (vector? #{dots 15587}#) (if (= (vector-length - #{dots 15590}#) + #{dots 15587}#) 4) (eq? (vector-ref - #{dots 15590}# + #{dots 15587}# 0) 'syntax-object) #f) #f) - (symbol? (vector-ref #{dots 15590}# 1)) + (symbol? (vector-ref #{dots 15587}# 1)) #f) - (#{free-id=? 4434}# - #{dots 15590}# + (#{free-id=? 4431}# + #{dots 15587}# '#(syntax-object ... ((top) #(ribcage () () ()) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i2341")) + #(ribcage #(x) #((top)) #("i2338")) #(ribcage (lambda-var-list gen-var strip - chi-lambda-case + expand-lambda-case lambda*-formals - chi-simple-lambda + expand-simple-lambda lambda-formals ellipsis? - chi-void + expand-void eval-local-transformer - chi-local-syntax - chi-body - chi-macro - chi-call - chi-expr - chi + expand-local-syntax + expand-body + expand-macro + expand-call + expand-expr + expand syntax-type - chi-when-list - chi-install-global - chi-top-sequence - chi-sequence + parse-when-list + expand-install-global + expand-top-sequence + expand-sequence source-wrap wrap bound-id-member? @@ -13820,45 +13756,45 @@ #(ribcage () () ())) (hygiene guile))) #f)) - #{tmp 15585}#) + #{tmp 15582}#) #f) (@apply - (lambda (#{x 15629}# #{dots 15630}#) + (lambda (#{x 15626}# #{dots 15627}#) (call-with-values (lambda () - (#{cvt 15448}# - #{x 15629}# - (#{1+}# #{n 15452}#) - #{ids 15453}#)) - (lambda (#{p 15631}# #{ids 15632}#) + (#{cvt 15445}# + #{x 15626}# + (#{1+}# #{n 15449}#) + #{ids 15450}#)) + (lambda (#{p 15628}# #{ids 15629}#) (values - (if (eq? #{p 15631}# 'any) + (if (eq? #{p 15628}# 'any) 'each-any - (vector 'each #{p 15631}#)) - #{ids 15632}#)))) - #{tmp 15585}#) - (let ((#{tmp 15633}# - ($sc-dispatch #{p 15451}# '(any any . any)))) - (if (if #{tmp 15633}# + (vector 'each #{p 15628}#)) + #{ids 15629}#)))) + #{tmp 15582}#) + (let ((#{tmp 15630}# + ($sc-dispatch #{p 15448}# '(any any . any)))) + (if (if #{tmp 15630}# (@apply - (lambda (#{x 15637}# - #{dots 15638}# - #{ys 15639}#) - (if (if (if (vector? #{dots 15638}#) + (lambda (#{x 15634}# + #{dots 15635}# + #{ys 15636}#) + (if (if (if (vector? #{dots 15635}#) (if (= (vector-length - #{dots 15638}#) + #{dots 15635}#) 4) (eq? (vector-ref - #{dots 15638}# + #{dots 15635}# 0) 'syntax-object) #f) #f) (symbol? - (vector-ref #{dots 15638}# 1)) + (vector-ref #{dots 15635}# 1)) #f) - (#{free-id=? 4434}# - #{dots 15638}# + (#{free-id=? 4431}# + #{dots 15635}# '#(syntax-object ... ((top) @@ -13867,29 +13803,29 @@ #(ribcage #(x) #((top)) - #("i2341")) + #("i2338")) #(ribcage (lambda-var-list gen-var strip - chi-lambda-case + expand-lambda-case lambda*-formals - chi-simple-lambda + expand-simple-lambda lambda-formals ellipsis? - chi-void + expand-void eval-local-transformer - chi-local-syntax - chi-body - chi-macro - chi-call - chi-expr - chi + expand-local-syntax + expand-body + expand-macro + expand-call + expand-expr + expand syntax-type - chi-when-list - chi-install-global - chi-top-sequence - chi-sequence + parse-when-list + expand-install-global + expand-top-sequence + expand-sequence source-wrap wrap bound-id-member? @@ -14292,175 +14228,175 @@ #(ribcage () () ())) (hygiene guile))) #f)) - #{tmp 15633}#) + #{tmp 15630}#) #f) (@apply - (lambda (#{x 15678}# - #{dots 15679}# - #{ys 15680}#) + (lambda (#{x 15675}# + #{dots 15676}# + #{ys 15677}#) (call-with-values (lambda () - (#{cvt* 15446}# - #{ys 15680}# - #{n 15452}# - #{ids 15453}#)) - (lambda (#{ys 16165}# #{ids 16166}#) + (#{cvt* 15443}# + #{ys 15677}# + #{n 15449}# + #{ids 15450}#)) + (lambda (#{ys 16162}# #{ids 16163}#) (call-with-values (lambda () - (#{cvt 15448}# - #{x 15678}# - (#{1+}# #{n 15452}#) - #{ids 16166}#)) - (lambda (#{x 16167}# #{ids 16168}#) + (#{cvt 15445}# + #{x 15675}# + (#{1+}# #{n 15449}#) + #{ids 16163}#)) + (lambda (#{x 16164}# #{ids 16165}#) (call-with-values (lambda () - (#{v-reverse 15447}# - #{ys 16165}#)) - (lambda (#{ys 16204}# #{e 16205}#) + (#{v-reverse 15444}# + #{ys 16162}#)) + (lambda (#{ys 16201}# #{e 16202}#) (values (vector 'each+ - #{x 16167}# - #{ys 16204}# - #{e 16205}#) - #{ids 16168}#)))))))) - #{tmp 15633}#) - (let ((#{tmp 16206}# - ($sc-dispatch #{p 15451}# '(any . any)))) - (if #{tmp 16206}# + #{x 16164}# + #{ys 16201}# + #{e 16202}#) + #{ids 16165}#)))))))) + #{tmp 15630}#) + (let ((#{tmp 16203}# + ($sc-dispatch #{p 15448}# '(any . any)))) + (if #{tmp 16203}# (@apply - (lambda (#{x 16210}# #{y 16211}#) + (lambda (#{x 16207}# #{y 16208}#) (call-with-values (lambda () - (#{cvt 15448}# - #{y 16211}# - #{n 15452}# - #{ids 15453}#)) - (lambda (#{y 16212}# #{ids 16213}#) + (#{cvt 15445}# + #{y 16208}# + #{n 15449}# + #{ids 15450}#)) + (lambda (#{y 16209}# #{ids 16210}#) (call-with-values (lambda () - (#{cvt 15448}# - #{x 16210}# - #{n 15452}# - #{ids 16213}#)) - (lambda (#{x 16214}# #{ids 16215}#) + (#{cvt 15445}# + #{x 16207}# + #{n 15449}# + #{ids 16210}#)) + (lambda (#{x 16211}# #{ids 16212}#) (values - (cons #{x 16214}# #{y 16212}#) - #{ids 16215}#)))))) - #{tmp 16206}#) - (let ((#{tmp 16216}# - ($sc-dispatch #{p 15451}# '()))) - (if #{tmp 16216}# + (cons #{x 16211}# #{y 16209}#) + #{ids 16212}#)))))) + #{tmp 16203}#) + (let ((#{tmp 16213}# + ($sc-dispatch #{p 15448}# '()))) + (if #{tmp 16213}# (@apply - (lambda () (values '() #{ids 15453}#)) - #{tmp 16216}#) - (let ((#{tmp 16220}# + (lambda () (values '() #{ids 15450}#)) + #{tmp 16213}#) + (let ((#{tmp 16217}# ($sc-dispatch - #{p 15451}# + #{p 15448}# '#(vector each-any)))) - (if #{tmp 16220}# + (if #{tmp 16217}# (@apply - (lambda (#{x 16224}#) + (lambda (#{x 16221}#) (call-with-values (lambda () - (#{cvt 15448}# - #{x 16224}# - #{n 15452}# - #{ids 15453}#)) - (lambda (#{p 16225}# - #{ids 16226}#) + (#{cvt 15445}# + #{x 16221}# + #{n 15449}# + #{ids 15450}#)) + (lambda (#{p 16222}# + #{ids 16223}#) (values (vector 'vector - #{p 16225}#) - #{ids 16226}#)))) - #{tmp 16220}#) + #{p 16222}#) + #{ids 16223}#)))) + #{tmp 16217}#) (values (vector 'atom - (#{strip 4459}# - #{p 15451}# + (#{strip 4456}# + #{p 15448}# '(()))) - #{ids 15453}#))))))))))))))) - (#{cvt 15448}# #{pattern 15444}# 0 '())))) - (#{build-dispatch-call 13789}# - (lambda (#{pvars 16360}# - #{exp 16361}# - #{y 16362}# - #{r 16363}# - #{mod 16364}#) - (let ((#{ids 16365}# (map car #{pvars 16360}#))) + #{ids 15450}#))))))))))))))) + (#{cvt 15445}# #{pattern 15441}# 0 '())))) + (#{build-dispatch-call 13786}# + (lambda (#{pvars 16357}# + #{exp 16358}# + #{y 16359}# + #{r 16360}# + #{mod 16361}#) + (let ((#{ids 16362}# (map car #{pvars 16357}#))) (begin - (map cdr #{pvars 16360}#) - (let ((#{labels 16367}# - (#{gen-labels 4416}# #{ids 16365}#)) - (#{new-vars 16368}# - (map #{gen-var 4460}# #{ids 16365}#))) - (#{build-primcall 4392}# + (map cdr #{pvars 16357}#) + (let ((#{labels 16364}# + (#{gen-labels 4413}# #{ids 16362}#)) + (#{new-vars 16365}# + (map #{gen-var 4457}# #{ids 16362}#))) + (#{build-primcall 4389}# #f 'apply - (list (#{build-simple-lambda 4389}# + (list (#{build-simple-lambda 4386}# #f - (map syntax->datum #{ids 16365}#) + (map syntax->datum #{ids 16362}#) #f - #{new-vars 16368}# + #{new-vars 16365}# '() - (#{chi 4446}# - #{exp 16361}# - (#{extend-env 4408}# - #{labels 16367}# - (map (lambda (#{var 16700}# #{level 16701}#) + (#{expand 4443}# + #{exp 16358}# + (#{extend-env 4405}# + #{labels 16364}# + (map (lambda (#{var 16697}# #{level 16698}#) (cons 'syntax - (cons #{var 16700}# - #{level 16701}#))) - #{new-vars 16368}# - (map cdr #{pvars 16360}#)) - #{r 16363}#) - (#{make-binding-wrap 4427}# - #{ids 16365}# - #{labels 16367}# + (cons #{var 16697}# + #{level 16698}#))) + #{new-vars 16365}# + (map cdr #{pvars 16357}#)) + #{r 16360}#) + (#{make-binding-wrap 4424}# + #{ids 16362}# + #{labels 16364}# '(())) - #{mod 16364}#)) - #{y 16362}#))))))) - (#{gen-clause 13790}# - (lambda (#{x 15038}# - #{keys 15039}# - #{clauses 15040}# - #{r 15041}# - #{pat 15042}# - #{fender 15043}# - #{exp 15044}# - #{mod 15045}#) + #{mod 16361}#)) + #{y 16359}#))))))) + (#{gen-clause 13787}# + (lambda (#{x 15035}# + #{keys 15036}# + #{clauses 15037}# + #{r 15038}# + #{pat 15039}# + #{fender 15040}# + #{exp 15041}# + #{mod 15042}#) (call-with-values (lambda () - (#{convert-pattern 13788}# - #{pat 15042}# - #{keys 15039}#)) - (lambda (#{p 15183}# #{pvars 15184}#) - (if (not (#{distinct-bound-ids? 4437}# - (map car #{pvars 15184}#))) + (#{convert-pattern 13785}# + #{pat 15039}# + #{keys 15036}#)) + (lambda (#{p 15180}# #{pvars 15181}#) + (if (not (#{distinct-bound-ids? 4434}# + (map car #{pvars 15181}#))) (syntax-violation 'syntax-case "duplicate pattern variable" - #{pat 15042}#) + #{pat 15039}#) (if (not (and-map - (lambda (#{x 15293}#) - (not (let ((#{x 15297}# (car #{x 15293}#))) - (if (if (if (vector? #{x 15297}#) + (lambda (#{x 15290}#) + (not (let ((#{x 15294}# (car #{x 15290}#))) + (if (if (if (vector? #{x 15294}#) (if (= (vector-length - #{x 15297}#) + #{x 15294}#) 4) (eq? (vector-ref - #{x 15297}# + #{x 15294}# 0) 'syntax-object) #f) #f) (symbol? - (vector-ref #{x 15297}# 1)) + (vector-ref #{x 15294}# 1)) #f) - (#{free-id=? 4434}# - #{x 15297}# + (#{free-id=? 4431}# + #{x 15294}# '#(syntax-object ... ((top) @@ -14469,29 +14405,29 @@ #(ribcage #(x) #((top)) - #("i2341")) + #("i2338")) #(ribcage (lambda-var-list gen-var strip - chi-lambda-case + expand-lambda-case lambda*-formals - chi-simple-lambda + expand-simple-lambda lambda-formals ellipsis? - chi-void + expand-void eval-local-transformer - chi-local-syntax - chi-body - chi-macro - chi-call - chi-expr - chi + expand-local-syntax + expand-body + expand-macro + expand-call + expand-expr + expand syntax-type - chi-when-list - chi-install-global - chi-top-sequence - chi-sequence + parse-when-list + expand-install-global + expand-top-sequence + expand-sequence source-wrap wrap bound-id-member? @@ -14894,43 +14830,43 @@ #(ribcage () () ())) (hygiene guile))) #f)))) - #{pvars 15184}#)) + #{pvars 15181}#)) (syntax-violation 'syntax-case "misplaced ellipsis" - #{pat 15042}#) - (let ((#{y 15322}# + #{pat 15039}#) + (let ((#{y 15319}# (gensym (string-append (symbol->string 'tmp) " ")))) - (let ((#{fun-exp 15327}# - (let ((#{req 15336}# (list 'tmp)) - (#{vars 15338}# (list #{y 15322}#)) - (#{exp 15340}# - (let ((#{y 15369}# + (let ((#{fun-exp 15324}# + (let ((#{req 15333}# (list 'tmp)) + (#{vars 15335}# (list #{y 15319}#)) + (#{exp 15337}# + (let ((#{y 15366}# (make-struct/no-tail (vector-ref %expanded-vtables 3) #f 'tmp - #{y 15322}#))) - (let ((#{test-exp 15373}# - (let ((#{tmp 15382}# + #{y 15319}#))) + (let ((#{test-exp 15370}# + (let ((#{tmp 15379}# ($sc-dispatch - #{fender 15043}# + #{fender 15040}# '#(atom #t)))) - (if #{tmp 15382}# + (if #{tmp 15379}# (@apply - (lambda () #{y 15369}#) - #{tmp 15382}#) - (let ((#{then-exp 15400}# - (#{build-dispatch-call 13789}# - #{pvars 15184}# - #{fender 15043}# - #{y 15369}# - #{r 15041}# - #{mod 15045}#)) - (#{else-exp 15401}# + (lambda () #{y 15366}#) + #{tmp 15379}#) + (let ((#{then-exp 15397}# + (#{build-dispatch-call 13786}# + #{pvars 15181}# + #{fender 15040}# + #{y 15366}# + #{r 15038}# + #{mod 15042}#)) + (#{else-exp 15398}# (make-struct/no-tail (vector-ref %expanded-vtables @@ -14942,81 +14878,81 @@ %expanded-vtables 10) #f - #{y 15369}# - #{then-exp 15400}# - #{else-exp 15401}#))))) - (#{then-exp 15374}# - (#{build-dispatch-call 13789}# - #{pvars 15184}# - #{exp 15044}# - #{y 15369}# - #{r 15041}# - #{mod 15045}#)) - (#{else-exp 15375}# - (#{gen-syntax-case 13791}# - #{x 15038}# - #{keys 15039}# - #{clauses 15040}# - #{r 15041}# - #{mod 15045}#))) + #{y 15366}# + #{then-exp 15397}# + #{else-exp 15398}#))))) + (#{then-exp 15371}# + (#{build-dispatch-call 13786}# + #{pvars 15181}# + #{exp 15041}# + #{y 15366}# + #{r 15038}# + #{mod 15042}#)) + (#{else-exp 15372}# + (#{gen-syntax-case 13788}# + #{x 15035}# + #{keys 15036}# + #{clauses 15037}# + #{r 15038}# + #{mod 15042}#))) (make-struct/no-tail (vector-ref %expanded-vtables 10) #f - #{test-exp 15373}# - #{then-exp 15374}# - #{else-exp 15375}#))))) - (let ((#{body 15345}# + #{test-exp 15370}# + #{then-exp 15371}# + #{else-exp 15372}#))))) + (let ((#{body 15342}# (make-struct/no-tail (vector-ref %expanded-vtables 15) #f - #{req 15336}# + #{req 15333}# #f #f #f '() - #{vars 15338}# - #{exp 15340}# + #{vars 15335}# + #{exp 15337}# #f))) (make-struct/no-tail (vector-ref %expanded-vtables 14) #f '() - #{body 15345}#)))) - (#{arg-exps 15328}# - (list (if (eq? #{p 15183}# 'any) - (let ((#{args 15423}# - (list #{x 15038}#))) + #{body 15342}#)))) + (#{arg-exps 15325}# + (list (if (eq? #{p 15180}# 'any) + (let ((#{args 15420}# + (list #{x 15035}#))) (make-struct/no-tail (vector-ref %expanded-vtables 12) #f 'list - #{args 15423}#)) - (let ((#{args 15432}# - (list #{x 15038}# + #{args 15420}#)) + (let ((#{args 15429}# + (list #{x 15035}# (make-struct/no-tail (vector-ref %expanded-vtables 1) #f - #{p 15183}#)))) + #{p 15180}#)))) (make-struct/no-tail (vector-ref %expanded-vtables 12) #f '$sc-dispatch - #{args 15432}#)))))) + #{args 15429}#)))))) (make-struct/no-tail (vector-ref %expanded-vtables 11) #f - #{fun-exp 15327}# - #{arg-exps 15328}#))))))))) - (#{gen-syntax-case 13791}# - (lambda (#{x 14535}# - #{keys 14536}# - #{clauses 14537}# - #{r 14538}# - #{mod 14539}#) - (if (null? #{clauses 14537}#) - (let ((#{args 14545}# + #{fun-exp 15324}# + #{arg-exps 15325}#))))))))) + (#{gen-syntax-case 13788}# + (lambda (#{x 14532}# + #{keys 14533}# + #{clauses 14534}# + #{r 14535}# + #{mod 14536}#) + (if (null? #{clauses 14534}#) + (let ((#{args 14542}# (list (make-struct/no-tail (vector-ref %expanded-vtables 1) #f @@ -15025,79 +14961,79 @@ (vector-ref %expanded-vtables 1) #f "source expression failed to match any pattern") - #{x 14535}#))) + #{x 14532}#))) (make-struct/no-tail (vector-ref %expanded-vtables 12) #f 'syntax-violation - #{args 14545}#)) - (let ((#{tmp 14564}# (car #{clauses 14537}#))) - (let ((#{tmp 14565}# - ($sc-dispatch #{tmp 14564}# '(any any)))) - (if #{tmp 14565}# + #{args 14542}#)) + (let ((#{tmp 14561}# (car #{clauses 14534}#))) + (let ((#{tmp 14562}# + ($sc-dispatch #{tmp 14561}# '(any any)))) + (if #{tmp 14562}# (@apply - (lambda (#{pat 14567}# #{exp 14568}#) - (if (if (if (symbol? #{pat 14567}#) + (lambda (#{pat 14564}# #{exp 14565}#) + (if (if (if (symbol? #{pat 14564}#) #t - (if (if (vector? #{pat 14567}#) - (if (= (vector-length #{pat 14567}#) + (if (if (vector? #{pat 14564}#) + (if (= (vector-length #{pat 14564}#) 4) - (eq? (vector-ref #{pat 14567}# 0) + (eq? (vector-ref #{pat 14564}# 0) 'syntax-object) #f) #f) - (symbol? (vector-ref #{pat 14567}# 1)) + (symbol? (vector-ref #{pat 14564}# 1)) #f)) (and-map - (lambda (#{x 14595}#) - (not (#{free-id=? 4434}# - #{pat 14567}# - #{x 14595}#))) + (lambda (#{x 14592}#) + (not (#{free-id=? 4431}# + #{pat 14564}# + #{x 14592}#))) (cons '#(syntax-object ... ((top) #(ribcage #(pat exp) #((top) (top)) - #("i4010" "i4011")) + #("i4007" "i4008")) #(ribcage () () ()) #(ribcage #(x keys clauses r mod) #((top) (top) (top) (top) (top)) - #("i4000" - "i4001" - "i4002" - "i4003" - "i4004")) + #("i3997" + "i3998" + "i3999" + "i4000" + "i4001")) #(ribcage (gen-syntax-case gen-clause build-dispatch-call convert-pattern) ((top) (top) (top) (top)) - ("i3813" "i3811" "i3809" "i3807")) + ("i3810" "i3808" "i3806" "i3804")) #(ribcage (lambda-var-list gen-var strip - chi-lambda-case + expand-lambda-case lambda*-formals - chi-simple-lambda + expand-simple-lambda lambda-formals ellipsis? - chi-void + expand-void eval-local-transformer - chi-local-syntax - chi-body - chi-macro - chi-call - chi-expr - chi + expand-local-syntax + expand-body + expand-macro + expand-call + expand-expr + expand syntax-type - chi-when-list - chi-install-global - chi-top-sequence - chi-sequence + parse-when-list + expand-install-global + expand-top-sequence + expand-sequence source-wrap wrap bound-id-member? @@ -15499,54 +15435,54 @@ ("i46" "i45" "i44")) #(ribcage () () ())) (hygiene guile)) - #{keys 14536}#)) + #{keys 14533}#)) #f) - (if (#{free-id=? 4434}# + (if (#{free-id=? 4431}# '#(syntax-object pad ((top) #(ribcage #(pat exp) #((top) (top)) - #("i4010" "i4011")) + #("i4007" "i4008")) #(ribcage () () ()) #(ribcage #(x keys clauses r mod) #((top) (top) (top) (top) (top)) - #("i4000" - "i4001" - "i4002" - "i4003" - "i4004")) + #("i3997" + "i3998" + "i3999" + "i4000" + "i4001")) #(ribcage (gen-syntax-case gen-clause build-dispatch-call convert-pattern) ((top) (top) (top) (top)) - ("i3813" "i3811" "i3809" "i3807")) + ("i3810" "i3808" "i3806" "i3804")) #(ribcage (lambda-var-list gen-var strip - chi-lambda-case + expand-lambda-case lambda*-formals - chi-simple-lambda + expand-simple-lambda lambda-formals ellipsis? - chi-void + expand-void eval-local-transformer - chi-local-syntax - chi-body - chi-macro - chi-call - chi-expr - chi + expand-local-syntax + expand-body + expand-macro + expand-call + expand-expr + expand syntax-type - chi-when-list - chi-install-global - chi-top-sequence - chi-sequence + parse-when-list + expand-install-global + expand-top-sequence + expand-sequence source-wrap wrap bound-id-member? @@ -15954,45 +15890,45 @@ #(ribcage #(pat exp) #((top) (top)) - #("i4010" "i4011")) + #("i4007" "i4008")) #(ribcage () () ()) #(ribcage #(x keys clauses r mod) #((top) (top) (top) (top) (top)) - #("i4000" - "i4001" - "i4002" - "i4003" - "i4004")) + #("i3997" + "i3998" + "i3999" + "i4000" + "i4001")) #(ribcage (gen-syntax-case gen-clause build-dispatch-call convert-pattern) ((top) (top) (top) (top)) - ("i3813" "i3811" "i3809" "i3807")) + ("i3810" "i3808" "i3806" "i3804")) #(ribcage (lambda-var-list gen-var strip - chi-lambda-case + expand-lambda-case lambda*-formals - chi-simple-lambda + expand-simple-lambda lambda-formals ellipsis? - chi-void + expand-void eval-local-transformer - chi-local-syntax - chi-body - chi-macro - chi-call - chi-expr - chi + expand-local-syntax + expand-body + expand-macro + expand-call + expand-expr + expand syntax-type - chi-when-list - chi-install-global - chi-top-sequence - chi-sequence + parse-when-list + expand-install-global + expand-top-sequence + expand-sequence source-wrap wrap bound-id-member? @@ -16394,181 +16330,181 @@ ("i46" "i45" "i44")) #(ribcage () () ())) (hygiene guile))) - (#{chi 4446}# - #{exp 14568}# - #{r 14538}# + (#{expand 4443}# + #{exp 14565}# + #{r 14535}# '(()) - #{mod 14539}#) - (let ((#{labels 14681}# + #{mod 14536}#) + (let ((#{labels 14678}# (list (symbol->string (gensym "i")))) - (#{var 14682}# - (let ((#{id 14720}# - (if (if (vector? #{pat 14567}#) + (#{var 14679}# + (let ((#{id 14717}# + (if (if (vector? #{pat 14564}#) (if (= (vector-length - #{pat 14567}#) + #{pat 14564}#) 4) (eq? (vector-ref - #{pat 14567}# + #{pat 14564}# 0) 'syntax-object) #f) #f) - (vector-ref #{pat 14567}# 1) - #{pat 14567}#))) + (vector-ref #{pat 14564}# 1) + #{pat 14564}#))) (gensym (string-append - (symbol->string #{id 14720}#) + (symbol->string #{id 14717}#) " "))))) - (#{build-call 4380}# + (#{build-call 4377}# #f - (#{build-simple-lambda 4389}# + (#{build-simple-lambda 4386}# #f - (list (syntax->datum #{pat 14567}#)) + (list (syntax->datum #{pat 14564}#)) #f - (list #{var 14682}#) + (list #{var 14679}#) '() - (#{chi 4446}# - #{exp 14568}# - (#{extend-env 4408}# - #{labels 14681}# + (#{expand 4443}# + #{exp 14565}# + (#{extend-env 4405}# + #{labels 14678}# (list (cons 'syntax - (cons #{var 14682}# 0))) - #{r 14538}#) - (#{make-binding-wrap 4427}# - (list #{pat 14567}#) - #{labels 14681}# + (cons #{var 14679}# 0))) + #{r 14535}#) + (#{make-binding-wrap 4424}# + (list #{pat 14564}#) + #{labels 14678}# '(())) - #{mod 14539}#)) - (list #{x 14535}#)))) - (#{gen-clause 13790}# - #{x 14535}# - #{keys 14536}# - (cdr #{clauses 14537}#) - #{r 14538}# - #{pat 14567}# + #{mod 14536}#)) + (list #{x 14532}#)))) + (#{gen-clause 13787}# + #{x 14532}# + #{keys 14533}# + (cdr #{clauses 14534}#) + #{r 14535}# + #{pat 14564}# #t - #{exp 14568}# - #{mod 14539}#))) - #{tmp 14565}#) - (let ((#{tmp 15030}# - ($sc-dispatch #{tmp 14564}# '(any any any)))) - (if #{tmp 15030}# + #{exp 14565}# + #{mod 14536}#))) + #{tmp 14562}#) + (let ((#{tmp 15027}# + ($sc-dispatch #{tmp 14561}# '(any any any)))) + (if #{tmp 15027}# (@apply - (lambda (#{pat 15032}# - #{fender 15033}# - #{exp 15034}#) - (#{gen-clause 13790}# - #{x 14535}# - #{keys 14536}# - (cdr #{clauses 14537}#) - #{r 14538}# - #{pat 15032}# - #{fender 15033}# - #{exp 15034}# - #{mod 14539}#)) - #{tmp 15030}#) + (lambda (#{pat 15029}# + #{fender 15030}# + #{exp 15031}#) + (#{gen-clause 13787}# + #{x 14532}# + #{keys 14533}# + (cdr #{clauses 14534}#) + #{r 14535}# + #{pat 15029}# + #{fender 15030}# + #{exp 15031}# + #{mod 14536}#)) + #{tmp 15027}#) (syntax-violation 'syntax-case "invalid clause" - (car #{clauses 14537}#))))))))))) - (lambda (#{e 13792}# - #{r 13793}# - #{w 13794}# - #{s 13795}# - #{mod 13796}#) - (let ((#{e 13797}# - (let ((#{x 14446}# + (car #{clauses 14534}#))))))))))) + (lambda (#{e 13789}# + #{r 13790}# + #{w 13791}# + #{s 13792}# + #{mod 13793}#) + (let ((#{e 13794}# + (let ((#{x 14443}# (begin - (if (if (pair? #{e 13792}#) #{s 13795}# #f) - (set-source-properties! #{e 13792}# #{s 13795}#)) - #{e 13792}#))) - (if (if (null? (car #{w 13794}#)) - (null? (cdr #{w 13794}#)) + (if (if (pair? #{e 13789}#) #{s 13792}# #f) + (set-source-properties! #{e 13789}# #{s 13792}#)) + #{e 13789}#))) + (if (if (null? (car #{w 13791}#)) + (null? (cdr #{w 13791}#)) #f) - #{x 14446}# - (if (if (vector? #{x 14446}#) - (if (= (vector-length #{x 14446}#) 4) - (eq? (vector-ref #{x 14446}# 0) 'syntax-object) + #{x 14443}# + (if (if (vector? #{x 14443}#) + (if (= (vector-length #{x 14443}#) 4) + (eq? (vector-ref #{x 14443}# 0) 'syntax-object) #f) #f) - (let ((#{expression 14478}# (vector-ref #{x 14446}# 1)) - (#{wrap 14479}# - (let ((#{w2 14487}# - (vector-ref #{x 14446}# 2))) - (let ((#{m1 14488}# (car #{w 13794}#)) - (#{s1 14489}# (cdr #{w 13794}#))) - (if (null? #{m1 14488}#) - (if (null? #{s1 14489}#) - #{w2 14487}# - (cons (car #{w2 14487}#) - (let ((#{m2 14504}# - (cdr #{w2 14487}#))) - (if (null? #{m2 14504}#) - #{s1 14489}# + (let ((#{expression 14475}# (vector-ref #{x 14443}# 1)) + (#{wrap 14476}# + (let ((#{w2 14484}# + (vector-ref #{x 14443}# 2))) + (let ((#{m1 14485}# (car #{w 13791}#)) + (#{s1 14486}# (cdr #{w 13791}#))) + (if (null? #{m1 14485}#) + (if (null? #{s1 14486}#) + #{w2 14484}# + (cons (car #{w2 14484}#) + (let ((#{m2 14501}# + (cdr #{w2 14484}#))) + (if (null? #{m2 14501}#) + #{s1 14486}# (append - #{s1 14489}# - #{m2 14504}#))))) - (cons (let ((#{m2 14512}# - (car #{w2 14487}#))) - (if (null? #{m2 14512}#) - #{m1 14488}# + #{s1 14486}# + #{m2 14501}#))))) + (cons (let ((#{m2 14509}# + (car #{w2 14484}#))) + (if (null? #{m2 14509}#) + #{m1 14485}# (append - #{m1 14488}# - #{m2 14512}#))) - (let ((#{m2 14520}# - (cdr #{w2 14487}#))) - (if (null? #{m2 14520}#) - #{s1 14489}# + #{m1 14485}# + #{m2 14509}#))) + (let ((#{m2 14517}# + (cdr #{w2 14484}#))) + (if (null? #{m2 14517}#) + #{s1 14486}# (append - #{s1 14489}# - #{m2 14520}#)))))))) - (#{module 14480}# (vector-ref #{x 14446}# 3))) + #{s1 14486}# + #{m2 14517}#)))))))) + (#{module 14477}# (vector-ref #{x 14443}# 3))) (vector 'syntax-object - #{expression 14478}# - #{wrap 14479}# - #{module 14480}#)) - (if (null? #{x 14446}#) - #{x 14446}# + #{expression 14475}# + #{wrap 14476}# + #{module 14477}#)) + (if (null? #{x 14443}#) + #{x 14443}# (vector 'syntax-object - #{x 14446}# - #{w 13794}# - #{mod 13796}#))))))) - (let ((#{tmp 13798}# #{e 13797}#)) - (let ((#{tmp 13799}# + #{x 14443}# + #{w 13791}# + #{mod 13793}#))))))) + (let ((#{tmp 13795}# #{e 13794}#)) + (let ((#{tmp 13796}# ($sc-dispatch - #{tmp 13798}# + #{tmp 13795}# '(_ any each-any . each-any)))) - (if #{tmp 13799}# + (if #{tmp 13796}# (@apply - (lambda (#{val 13851}# #{key 13852}# #{m 13853}#) + (lambda (#{val 13848}# #{key 13849}# #{m 13850}#) (if (and-map - (lambda (#{x 13854}#) - (if (if (symbol? #{x 13854}#) + (lambda (#{x 13851}#) + (if (if (symbol? #{x 13851}#) #t - (if (if (vector? #{x 13854}#) - (if (= (vector-length #{x 13854}#) 4) - (eq? (vector-ref #{x 13854}# 0) + (if (if (vector? #{x 13851}#) + (if (= (vector-length #{x 13851}#) 4) + (eq? (vector-ref #{x 13851}# 0) 'syntax-object) #f) #f) - (symbol? (vector-ref #{x 13854}# 1)) + (symbol? (vector-ref #{x 13851}# 1)) #f)) - (not (if (if (if (vector? #{x 13854}#) + (not (if (if (if (vector? #{x 13851}#) (if (= (vector-length - #{x 13854}#) + #{x 13851}#) 4) (eq? (vector-ref - #{x 13854}# + #{x 13851}# 0) 'syntax-object) #f) #f) - (symbol? (vector-ref #{x 13854}# 1)) + (symbol? (vector-ref #{x 13851}# 1)) #f) - (#{free-id=? 4434}# - #{x 13854}# + (#{free-id=? 4431}# + #{x 13851}# '#(syntax-object ... ((top) @@ -16577,29 +16513,29 @@ #(ribcage #(x) #((top)) - #("i2341")) + #("i2338")) #(ribcage (lambda-var-list gen-var strip - chi-lambda-case + expand-lambda-case lambda*-formals - chi-simple-lambda + expand-simple-lambda lambda-formals ellipsis? - chi-void + expand-void eval-local-transformer - chi-local-syntax - chi-body - chi-macro - chi-call - chi-expr - chi + expand-local-syntax + expand-body + expand-macro + expand-call + expand-expr + expand syntax-type - chi-when-list - chi-install-global - chi-top-sequence - chi-sequence + parse-when-list + expand-install-global + expand-top-sequence + expand-sequence source-wrap wrap bound-id-member? @@ -17003,790 +16939,790 @@ (hygiene guile))) #f)) #f)) - #{key 13852}#) - (let ((#{x 13919}# + #{key 13849}#) + (let ((#{x 13916}# (gensym (string-append (symbol->string 'tmp) " ")))) - (#{build-call 4380}# - #{s 13795}# - (let ((#{req 14061}# (list 'tmp)) - (#{vars 14063}# (list #{x 13919}#)) - (#{exp 14065}# - (#{gen-syntax-case 13791}# + (#{build-call 4377}# + #{s 13792}# + (let ((#{req 14058}# (list 'tmp)) + (#{vars 14060}# (list #{x 13916}#)) + (#{exp 14062}# + (#{gen-syntax-case 13788}# (make-struct/no-tail (vector-ref %expanded-vtables 3) #f 'tmp - #{x 13919}#) - #{key 13852}# - #{m 13853}# - #{r 13793}# - #{mod 13796}#))) - (let ((#{body 14070}# + #{x 13916}#) + #{key 13849}# + #{m 13850}# + #{r 13790}# + #{mod 13793}#))) + (let ((#{body 14067}# (make-struct/no-tail (vector-ref %expanded-vtables 15) #f - #{req 14061}# + #{req 14058}# #f #f #f '() - #{vars 14063}# - #{exp 14065}# + #{vars 14060}# + #{exp 14062}# #f))) (make-struct/no-tail (vector-ref %expanded-vtables 14) #f '() - #{body 14070}#))) - (list (#{chi 4446}# - #{val 13851}# - #{r 13793}# + #{body 14067}#))) + (list (#{expand 4443}# + #{val 13848}# + #{r 13790}# '(()) - #{mod 13796}#)))) + #{mod 13793}#)))) (syntax-violation 'syntax-case "invalid literals list" - #{e 13797}#))) - #{tmp 13799}#) + #{e 13794}#))) + #{tmp 13796}#) (syntax-violation #f "source expression failed to match any pattern" - #{tmp 13798}#)))))))) + #{tmp 13795}#)))))))) (set! macroexpand (lambda* - (#{x 16802}# + (#{x 16799}# #:optional - (#{m 16803}# 'e) - (#{esew 16804}# '(eval))) - (#{chi-top-sequence 4442}# - (list #{x 16802}#) + (#{m 16800}# 'e) + (#{esew 16801}# '(eval))) + (#{expand-top-sequence 4439}# + (list #{x 16799}#) '() '((top)) #f - #{m 16803}# - #{esew 16804}# + #{m 16800}# + #{esew 16801}# (cons 'hygiene (module-name (current-module)))))) (set! identifier? - (lambda (#{x 16807}#) - (if (if (vector? #{x 16807}#) - (if (= (vector-length #{x 16807}#) 4) - (eq? (vector-ref #{x 16807}# 0) 'syntax-object) + (lambda (#{x 16804}#) + (if (if (vector? #{x 16804}#) + (if (= (vector-length #{x 16804}#) 4) + (eq? (vector-ref #{x 16804}# 0) 'syntax-object) #f) #f) - (symbol? (vector-ref #{x 16807}# 1)) + (symbol? (vector-ref #{x 16804}# 1)) #f))) (set! datum->syntax - (lambda (#{id 16832}# #{datum 16833}#) - (let ((#{wrap 16838}# (vector-ref #{id 16832}# 2)) - (#{module 16839}# (vector-ref #{id 16832}# 3))) + (lambda (#{id 16829}# #{datum 16830}#) + (let ((#{wrap 16835}# (vector-ref #{id 16829}# 2)) + (#{module 16836}# (vector-ref #{id 16829}# 3))) (vector 'syntax-object - #{datum 16833}# - #{wrap 16838}# - #{module 16839}#)))) + #{datum 16830}# + #{wrap 16835}# + #{module 16836}#)))) (set! syntax->datum - (lambda (#{x 16846}#) - (#{strip 4459}# #{x 16846}# '(())))) + (lambda (#{x 16843}#) + (#{strip 4456}# #{x 16843}# '(())))) (set! syntax-source - (lambda (#{x 16849}#) - (#{source-annotation 4407}# #{x 16849}#))) + (lambda (#{x 16846}#) + (#{source-annotation 4404}# #{x 16846}#))) (set! generate-temporaries - (lambda (#{ls 17051}#) + (lambda (#{ls 17048}#) (begin - (if (not (list? #{ls 17051}#)) + (if (not (list? #{ls 17048}#)) (syntax-violation 'generate-temporaries "invalid argument" - #{ls 17051}#)) - (let ((#{mod 17059}# + #{ls 17048}#)) + (let ((#{mod 17056}# (cons 'hygiene (module-name (current-module))))) - (map (lambda (#{x 17060}#) - (let ((#{x 17064}# (gensym))) - (if (if (vector? #{x 17064}#) - (if (= (vector-length #{x 17064}#) 4) - (eq? (vector-ref #{x 17064}# 0) 'syntax-object) + (map (lambda (#{x 17057}#) + (let ((#{x 17061}# (gensym))) + (if (if (vector? #{x 17061}#) + (if (= (vector-length #{x 17061}#) 4) + (eq? (vector-ref #{x 17061}# 0) 'syntax-object) #f) #f) - (let ((#{expression 17079}# (vector-ref #{x 17064}# 1)) - (#{wrap 17080}# - (let ((#{w2 17088}# (vector-ref #{x 17064}# 2))) - (cons (let ((#{m2 17095}# (car #{w2 17088}#))) - (if (null? #{m2 17095}#) + (let ((#{expression 17076}# (vector-ref #{x 17061}# 1)) + (#{wrap 17077}# + (let ((#{w2 17085}# (vector-ref #{x 17061}# 2))) + (cons (let ((#{m2 17092}# (car #{w2 17085}#))) + (if (null? #{m2 17092}#) '(top) - (append '(top) #{m2 17095}#))) - (let ((#{m2 17102}# (cdr #{w2 17088}#))) - (if (null? #{m2 17102}#) + (append '(top) #{m2 17092}#))) + (let ((#{m2 17099}# (cdr #{w2 17085}#))) + (if (null? #{m2 17099}#) '() - (append '() #{m2 17102}#)))))) - (#{module 17081}# (vector-ref #{x 17064}# 3))) + (append '() #{m2 17099}#)))))) + (#{module 17078}# (vector-ref #{x 17061}# 3))) (vector 'syntax-object - #{expression 17079}# - #{wrap 17080}# - #{module 17081}#)) - (if (null? #{x 17064}#) - #{x 17064}# + #{expression 17076}# + #{wrap 17077}# + #{module 17078}#)) + (if (null? #{x 17061}#) + #{x 17061}# (vector 'syntax-object - #{x 17064}# + #{x 17061}# '((top)) - #{mod 17059}#))))) - #{ls 17051}#))))) + #{mod 17056}#))))) + #{ls 17048}#))))) (set! free-identifier=? - (lambda (#{x 17111}# #{y 17112}#) + (lambda (#{x 17108}# #{y 17109}#) (begin - (if (not (if (if (vector? #{x 17111}#) - (if (= (vector-length #{x 17111}#) 4) - (eq? (vector-ref #{x 17111}# 0) 'syntax-object) + (if (not (if (if (vector? #{x 17108}#) + (if (= (vector-length #{x 17108}#) 4) + (eq? (vector-ref #{x 17108}# 0) 'syntax-object) #f) #f) - (symbol? (vector-ref #{x 17111}# 1)) + (symbol? (vector-ref #{x 17108}# 1)) #f)) (syntax-violation 'free-identifier=? "invalid argument" - #{x 17111}#)) - (if (not (if (if (vector? #{y 17112}#) - (if (= (vector-length #{y 17112}#) 4) - (eq? (vector-ref #{y 17112}# 0) 'syntax-object) + #{x 17108}#)) + (if (not (if (if (vector? #{y 17109}#) + (if (= (vector-length #{y 17109}#) 4) + (eq? (vector-ref #{y 17109}# 0) 'syntax-object) #f) #f) - (symbol? (vector-ref #{y 17112}# 1)) + (symbol? (vector-ref #{y 17109}# 1)) #f)) (syntax-violation 'free-identifier=? "invalid argument" - #{y 17112}#)) - (#{free-id=? 4434}# #{x 17111}# #{y 17112}#)))) + #{y 17109}#)) + (#{free-id=? 4431}# #{x 17108}# #{y 17109}#)))) (set! bound-identifier=? - (lambda (#{x 17187}# #{y 17188}#) + (lambda (#{x 17184}# #{y 17185}#) (begin - (if (not (if (if (vector? #{x 17187}#) - (if (= (vector-length #{x 17187}#) 4) - (eq? (vector-ref #{x 17187}# 0) 'syntax-object) + (if (not (if (if (vector? #{x 17184}#) + (if (= (vector-length #{x 17184}#) 4) + (eq? (vector-ref #{x 17184}# 0) 'syntax-object) #f) #f) - (symbol? (vector-ref #{x 17187}# 1)) + (symbol? (vector-ref #{x 17184}# 1)) #f)) (syntax-violation 'bound-identifier=? "invalid argument" - #{x 17187}#)) - (if (not (if (if (vector? #{y 17188}#) - (if (= (vector-length #{y 17188}#) 4) - (eq? (vector-ref #{y 17188}# 0) 'syntax-object) + #{x 17184}#)) + (if (not (if (if (vector? #{y 17185}#) + (if (= (vector-length #{y 17185}#) 4) + (eq? (vector-ref #{y 17185}# 0) 'syntax-object) #f) #f) - (symbol? (vector-ref #{y 17188}# 1)) + (symbol? (vector-ref #{y 17185}# 1)) #f)) (syntax-violation 'bound-identifier=? "invalid argument" - #{y 17188}#)) - (#{bound-id=? 4435}# #{x 17187}# #{y 17188}#)))) + #{y 17185}#)) + (#{bound-id=? 4432}# #{x 17184}# #{y 17185}#)))) (set! syntax-violation (lambda* - (#{who 17354}# - #{message 17355}# - #{form 17356}# + (#{who 17351}# + #{message 17352}# + #{form 17353}# #:optional - (#{subform 17357}# #f)) + (#{subform 17354}# #f)) (begin - (if (not (if (not #{who 17354}#) - (not #{who 17354}#) - (let ((#{t 17375}# (string? #{who 17354}#))) - (if #{t 17375}# - #{t 17375}# - (symbol? #{who 17354}#))))) + (if (not (if (not #{who 17351}#) + (not #{who 17351}#) + (let ((#{t 17372}# (string? #{who 17351}#))) + (if #{t 17372}# + #{t 17372}# + (symbol? #{who 17351}#))))) (syntax-violation 'syntax-violation "invalid argument" - #{who 17354}#)) - (if (not (string? #{message 17355}#)) + #{who 17351}#)) + (if (not (string? #{message 17352}#)) (syntax-violation 'syntax-violation "invalid argument" - #{message 17355}#)) + #{message 17352}#)) (throw 'syntax-error - #{who 17354}# - #{message 17355}# - (#{source-annotation 4407}# - (if #{form 17356}# - #{form 17356}# - #{subform 17357}#)) - (#{strip 4459}# #{form 17356}# '(())) - (if #{subform 17357}# - (#{strip 4459}# #{subform 17357}# '(())) + #{who 17351}# + #{message 17352}# + (#{source-annotation 4404}# + (if #{form 17353}# + #{form 17353}# + #{subform 17354}#)) + (#{strip 4456}# #{form 17353}# '(())) + (if #{subform 17354}# + (#{strip 4456}# #{subform 17354}# '(())) #f))))) (letrec* - ((#{match-each 17626}# - (lambda (#{e 18514}# - #{p 18515}# - #{w 18516}# - #{mod 18517}#) - (if (pair? #{e 18514}#) - (let ((#{first 18518}# - (#{match 17632}# - (car #{e 18514}#) - #{p 18515}# - #{w 18516}# + ((#{match-each 17623}# + (lambda (#{e 18511}# + #{p 18512}# + #{w 18513}# + #{mod 18514}#) + (if (pair? #{e 18511}#) + (let ((#{first 18515}# + (#{match 17629}# + (car #{e 18511}#) + #{p 18512}# + #{w 18513}# '() - #{mod 18517}#))) - (if #{first 18518}# - (let ((#{rest 18521}# - (#{match-each 17626}# - (cdr #{e 18514}#) - #{p 18515}# - #{w 18516}# - #{mod 18517}#))) - (if #{rest 18521}# - (cons #{first 18518}# #{rest 18521}#) + #{mod 18514}#))) + (if #{first 18515}# + (let ((#{rest 18518}# + (#{match-each 17623}# + (cdr #{e 18511}#) + #{p 18512}# + #{w 18513}# + #{mod 18514}#))) + (if #{rest 18518}# + (cons #{first 18515}# #{rest 18518}#) #f)) #f)) - (if (null? #{e 18514}#) + (if (null? #{e 18511}#) '() - (if (if (vector? #{e 18514}#) - (if (= (vector-length #{e 18514}#) 4) - (eq? (vector-ref #{e 18514}# 0) 'syntax-object) + (if (if (vector? #{e 18511}#) + (if (= (vector-length #{e 18511}#) 4) + (eq? (vector-ref #{e 18511}# 0) 'syntax-object) #f) #f) - (#{match-each 17626}# - (vector-ref #{e 18514}# 1) - #{p 18515}# - (let ((#{w2 18543}# (vector-ref #{e 18514}# 2))) - (let ((#{m1 18544}# (car #{w 18516}#)) - (#{s1 18545}# (cdr #{w 18516}#))) - (if (null? #{m1 18544}#) - (if (null? #{s1 18545}#) - #{w2 18543}# - (cons (car #{w2 18543}#) - (let ((#{m2 18556}# (cdr #{w2 18543}#))) - (if (null? #{m2 18556}#) - #{s1 18545}# - (append #{s1 18545}# #{m2 18556}#))))) - (cons (let ((#{m2 18564}# (car #{w2 18543}#))) - (if (null? #{m2 18564}#) - #{m1 18544}# - (append #{m1 18544}# #{m2 18564}#))) - (let ((#{m2 18572}# (cdr #{w2 18543}#))) - (if (null? #{m2 18572}#) - #{s1 18545}# - (append #{s1 18545}# #{m2 18572}#))))))) - (vector-ref #{e 18514}# 3)) + (#{match-each 17623}# + (vector-ref #{e 18511}# 1) + #{p 18512}# + (let ((#{w2 18540}# (vector-ref #{e 18511}# 2))) + (let ((#{m1 18541}# (car #{w 18513}#)) + (#{s1 18542}# (cdr #{w 18513}#))) + (if (null? #{m1 18541}#) + (if (null? #{s1 18542}#) + #{w2 18540}# + (cons (car #{w2 18540}#) + (let ((#{m2 18553}# (cdr #{w2 18540}#))) + (if (null? #{m2 18553}#) + #{s1 18542}# + (append #{s1 18542}# #{m2 18553}#))))) + (cons (let ((#{m2 18561}# (car #{w2 18540}#))) + (if (null? #{m2 18561}#) + #{m1 18541}# + (append #{m1 18541}# #{m2 18561}#))) + (let ((#{m2 18569}# (cdr #{w2 18540}#))) + (if (null? #{m2 18569}#) + #{s1 18542}# + (append #{s1 18542}# #{m2 18569}#))))))) + (vector-ref #{e 18511}# 3)) #f))))) - (#{match-each-any 17628}# - (lambda (#{e 18581}# #{w 18582}# #{mod 18583}#) - (if (pair? #{e 18581}#) - (let ((#{l 18584}# - (#{match-each-any 17628}# - (cdr #{e 18581}#) - #{w 18582}# - #{mod 18583}#))) - (if #{l 18584}# - (cons (let ((#{x 18589}# (car #{e 18581}#))) - (if (if (null? (car #{w 18582}#)) - (null? (cdr #{w 18582}#)) + (#{match-each-any 17625}# + (lambda (#{e 18578}# #{w 18579}# #{mod 18580}#) + (if (pair? #{e 18578}#) + (let ((#{l 18581}# + (#{match-each-any 17625}# + (cdr #{e 18578}#) + #{w 18579}# + #{mod 18580}#))) + (if #{l 18581}# + (cons (let ((#{x 18586}# (car #{e 18578}#))) + (if (if (null? (car #{w 18579}#)) + (null? (cdr #{w 18579}#)) #f) - #{x 18589}# - (if (if (vector? #{x 18589}#) - (if (= (vector-length #{x 18589}#) 4) - (eq? (vector-ref #{x 18589}# 0) + #{x 18586}# + (if (if (vector? #{x 18586}#) + (if (= (vector-length #{x 18586}#) 4) + (eq? (vector-ref #{x 18586}# 0) 'syntax-object) #f) #f) - (let ((#{expression 18607}# - (vector-ref #{x 18589}# 1)) - (#{wrap 18608}# - (let ((#{w2 18616}# - (vector-ref #{x 18589}# 2))) - (let ((#{m1 18617}# (car #{w 18582}#)) - (#{s1 18618}# (cdr #{w 18582}#))) - (if (null? #{m1 18617}#) - (if (null? #{s1 18618}#) - #{w2 18616}# - (cons (car #{w2 18616}#) - (let ((#{m2 18633}# - (cdr #{w2 18616}#))) - (if (null? #{m2 18633}#) - #{s1 18618}# + (let ((#{expression 18604}# + (vector-ref #{x 18586}# 1)) + (#{wrap 18605}# + (let ((#{w2 18613}# + (vector-ref #{x 18586}# 2))) + (let ((#{m1 18614}# (car #{w 18579}#)) + (#{s1 18615}# (cdr #{w 18579}#))) + (if (null? #{m1 18614}#) + (if (null? #{s1 18615}#) + #{w2 18613}# + (cons (car #{w2 18613}#) + (let ((#{m2 18630}# + (cdr #{w2 18613}#))) + (if (null? #{m2 18630}#) + #{s1 18615}# (append - #{s1 18618}# - #{m2 18633}#))))) - (cons (let ((#{m2 18641}# - (car #{w2 18616}#))) - (if (null? #{m2 18641}#) - #{m1 18617}# + #{s1 18615}# + #{m2 18630}#))))) + (cons (let ((#{m2 18638}# + (car #{w2 18613}#))) + (if (null? #{m2 18638}#) + #{m1 18614}# (append - #{m1 18617}# - #{m2 18641}#))) - (let ((#{m2 18649}# - (cdr #{w2 18616}#))) - (if (null? #{m2 18649}#) - #{s1 18618}# + #{m1 18614}# + #{m2 18638}#))) + (let ((#{m2 18646}# + (cdr #{w2 18613}#))) + (if (null? #{m2 18646}#) + #{s1 18615}# (append - #{s1 18618}# - #{m2 18649}#)))))))) - (#{module 18609}# - (vector-ref #{x 18589}# 3))) + #{s1 18615}# + #{m2 18646}#)))))))) + (#{module 18606}# + (vector-ref #{x 18586}# 3))) (vector 'syntax-object - #{expression 18607}# - #{wrap 18608}# - #{module 18609}#)) - (if (null? #{x 18589}#) - #{x 18589}# + #{expression 18604}# + #{wrap 18605}# + #{module 18606}#)) + (if (null? #{x 18586}#) + #{x 18586}# (vector 'syntax-object - #{x 18589}# - #{w 18582}# - #{mod 18583}#))))) - #{l 18584}#) + #{x 18586}# + #{w 18579}# + #{mod 18580}#))))) + #{l 18581}#) #f)) - (if (null? #{e 18581}#) + (if (null? #{e 18578}#) '() - (if (if (vector? #{e 18581}#) - (if (= (vector-length #{e 18581}#) 4) - (eq? (vector-ref #{e 18581}# 0) 'syntax-object) + (if (if (vector? #{e 18578}#) + (if (= (vector-length #{e 18578}#) 4) + (eq? (vector-ref #{e 18578}# 0) 'syntax-object) #f) #f) - (#{match-each-any 17628}# - (vector-ref #{e 18581}# 1) - (let ((#{w2 18682}# (vector-ref #{e 18581}# 2))) - (let ((#{m1 18683}# (car #{w 18582}#)) - (#{s1 18684}# (cdr #{w 18582}#))) - (if (null? #{m1 18683}#) - (if (null? #{s1 18684}#) - #{w2 18682}# - (cons (car #{w2 18682}#) - (let ((#{m2 18695}# (cdr #{w2 18682}#))) - (if (null? #{m2 18695}#) - #{s1 18684}# - (append #{s1 18684}# #{m2 18695}#))))) - (cons (let ((#{m2 18703}# (car #{w2 18682}#))) - (if (null? #{m2 18703}#) - #{m1 18683}# - (append #{m1 18683}# #{m2 18703}#))) - (let ((#{m2 18711}# (cdr #{w2 18682}#))) - (if (null? #{m2 18711}#) - #{s1 18684}# - (append #{s1 18684}# #{m2 18711}#))))))) - #{mod 18583}#) + (#{match-each-any 17625}# + (vector-ref #{e 18578}# 1) + (let ((#{w2 18679}# (vector-ref #{e 18578}# 2))) + (let ((#{m1 18680}# (car #{w 18579}#)) + (#{s1 18681}# (cdr #{w 18579}#))) + (if (null? #{m1 18680}#) + (if (null? #{s1 18681}#) + #{w2 18679}# + (cons (car #{w2 18679}#) + (let ((#{m2 18692}# (cdr #{w2 18679}#))) + (if (null? #{m2 18692}#) + #{s1 18681}# + (append #{s1 18681}# #{m2 18692}#))))) + (cons (let ((#{m2 18700}# (car #{w2 18679}#))) + (if (null? #{m2 18700}#) + #{m1 18680}# + (append #{m1 18680}# #{m2 18700}#))) + (let ((#{m2 18708}# (cdr #{w2 18679}#))) + (if (null? #{m2 18708}#) + #{s1 18681}# + (append #{s1 18681}# #{m2 18708}#))))))) + #{mod 18580}#) #f))))) - (#{match-empty 17629}# - (lambda (#{p 18716}# #{r 18717}#) - (if (null? #{p 18716}#) - #{r 18717}# - (if (eq? #{p 18716}# '_) - #{r 18717}# - (if (eq? #{p 18716}# 'any) - (cons '() #{r 18717}#) - (if (pair? #{p 18716}#) - (#{match-empty 17629}# - (car #{p 18716}#) - (#{match-empty 17629}# - (cdr #{p 18716}#) - #{r 18717}#)) - (if (eq? #{p 18716}# 'each-any) - (cons '() #{r 18717}#) - (let ((#{atom-key 18718}# (vector-ref #{p 18716}# 0))) - (if (eqv? #{atom-key 18718}# 'each) - (#{match-empty 17629}# - (vector-ref #{p 18716}# 1) - #{r 18717}#) - (if (eqv? #{atom-key 18718}# 'each+) - (#{match-empty 17629}# - (vector-ref #{p 18716}# 1) - (#{match-empty 17629}# - (reverse (vector-ref #{p 18716}# 2)) - (#{match-empty 17629}# - (vector-ref #{p 18716}# 3) - #{r 18717}#))) - (if (if (eqv? #{atom-key 18718}# 'free-id) + (#{match-empty 17626}# + (lambda (#{p 18713}# #{r 18714}#) + (if (null? #{p 18713}#) + #{r 18714}# + (if (eq? #{p 18713}# '_) + #{r 18714}# + (if (eq? #{p 18713}# 'any) + (cons '() #{r 18714}#) + (if (pair? #{p 18713}#) + (#{match-empty 17626}# + (car #{p 18713}#) + (#{match-empty 17626}# + (cdr #{p 18713}#) + #{r 18714}#)) + (if (eq? #{p 18713}# 'each-any) + (cons '() #{r 18714}#) + (let ((#{atom-key 18715}# (vector-ref #{p 18713}# 0))) + (if (eqv? #{atom-key 18715}# 'each) + (#{match-empty 17626}# + (vector-ref #{p 18713}# 1) + #{r 18714}#) + (if (eqv? #{atom-key 18715}# 'each+) + (#{match-empty 17626}# + (vector-ref #{p 18713}# 1) + (#{match-empty 17626}# + (reverse (vector-ref #{p 18713}# 2)) + (#{match-empty 17626}# + (vector-ref #{p 18713}# 3) + #{r 18714}#))) + (if (if (eqv? #{atom-key 18715}# 'free-id) #t - (eqv? #{atom-key 18718}# 'atom)) - #{r 18717}# - (if (eqv? #{atom-key 18718}# 'vector) - (#{match-empty 17629}# - (vector-ref #{p 18716}# 1) - #{r 18717}#))))))))))))) - (#{combine 17630}# - (lambda (#{r* 18737}# #{r 18738}#) - (if (null? (car #{r* 18737}#)) - #{r 18738}# - (cons (map car #{r* 18737}#) - (#{combine 17630}# - (map cdr #{r* 18737}#) - #{r 18738}#))))) - (#{match* 17631}# - (lambda (#{e 17661}# - #{p 17662}# - #{w 17663}# - #{r 17664}# - #{mod 17665}#) - (if (null? #{p 17662}#) - (if (null? #{e 17661}#) #{r 17664}# #f) - (if (pair? #{p 17662}#) - (if (pair? #{e 17661}#) - (#{match 17632}# - (car #{e 17661}#) - (car #{p 17662}#) - #{w 17663}# - (#{match 17632}# - (cdr #{e 17661}#) - (cdr #{p 17662}#) - #{w 17663}# - #{r 17664}# - #{mod 17665}#) - #{mod 17665}#) + (eqv? #{atom-key 18715}# 'atom)) + #{r 18714}# + (if (eqv? #{atom-key 18715}# 'vector) + (#{match-empty 17626}# + (vector-ref #{p 18713}# 1) + #{r 18714}#))))))))))))) + (#{combine 17627}# + (lambda (#{r* 18734}# #{r 18735}#) + (if (null? (car #{r* 18734}#)) + #{r 18735}# + (cons (map car #{r* 18734}#) + (#{combine 17627}# + (map cdr #{r* 18734}#) + #{r 18735}#))))) + (#{match* 17628}# + (lambda (#{e 17658}# + #{p 17659}# + #{w 17660}# + #{r 17661}# + #{mod 17662}#) + (if (null? #{p 17659}#) + (if (null? #{e 17658}#) #{r 17661}# #f) + (if (pair? #{p 17659}#) + (if (pair? #{e 17658}#) + (#{match 17629}# + (car #{e 17658}#) + (car #{p 17659}#) + #{w 17660}# + (#{match 17629}# + (cdr #{e 17658}#) + (cdr #{p 17659}#) + #{w 17660}# + #{r 17661}# + #{mod 17662}#) + #{mod 17662}#) #f) - (if (eq? #{p 17662}# 'each-any) - (let ((#{l 17670}# - (#{match-each-any 17628}# - #{e 17661}# - #{w 17663}# - #{mod 17665}#))) - (if #{l 17670}# - (cons #{l 17670}# #{r 17664}#) + (if (eq? #{p 17659}# 'each-any) + (let ((#{l 17667}# + (#{match-each-any 17625}# + #{e 17658}# + #{w 17660}# + #{mod 17662}#))) + (if #{l 17667}# + (cons #{l 17667}# #{r 17661}#) #f)) - (let ((#{atom-key 17675}# (vector-ref #{p 17662}# 0))) - (if (eqv? #{atom-key 17675}# 'each) - (if (null? #{e 17661}#) - (#{match-empty 17629}# - (vector-ref #{p 17662}# 1) - #{r 17664}#) - (let ((#{l 17682}# - (#{match-each 17626}# - #{e 17661}# - (vector-ref #{p 17662}# 1) - #{w 17663}# - #{mod 17665}#))) - (if #{l 17682}# + (let ((#{atom-key 17672}# (vector-ref #{p 17659}# 0))) + (if (eqv? #{atom-key 17672}# 'each) + (if (null? #{e 17658}#) + (#{match-empty 17626}# + (vector-ref #{p 17659}# 1) + #{r 17661}#) + (let ((#{l 17679}# + (#{match-each 17623}# + #{e 17658}# + (vector-ref #{p 17659}# 1) + #{w 17660}# + #{mod 17662}#))) + (if #{l 17679}# (letrec* - ((#{collect 17685}# - (lambda (#{l 17746}#) - (if (null? (car #{l 17746}#)) - #{r 17664}# - (cons (map car #{l 17746}#) - (#{collect 17685}# - (map cdr #{l 17746}#))))))) - (#{collect 17685}# #{l 17682}#)) + ((#{collect 17682}# + (lambda (#{l 17743}#) + (if (null? (car #{l 17743}#)) + #{r 17661}# + (cons (map car #{l 17743}#) + (#{collect 17682}# + (map cdr #{l 17743}#))))))) + (#{collect 17682}# #{l 17679}#)) #f))) - (if (eqv? #{atom-key 17675}# 'each+) + (if (eqv? #{atom-key 17672}# 'each+) (call-with-values (lambda () - (let ((#{x-pat 17755}# (vector-ref #{p 17662}# 1)) - (#{y-pat 17756}# (vector-ref #{p 17662}# 2)) - (#{z-pat 17757}# (vector-ref #{p 17662}# 3))) + (let ((#{x-pat 17752}# (vector-ref #{p 17659}# 1)) + (#{y-pat 17753}# (vector-ref #{p 17659}# 2)) + (#{z-pat 17754}# (vector-ref #{p 17659}# 3))) (letrec* - ((#{f 17761}# - (lambda (#{e 17763}# #{w 17764}#) - (if (pair? #{e 17763}#) + ((#{f 17758}# + (lambda (#{e 17760}# #{w 17761}#) + (if (pair? #{e 17760}#) (call-with-values (lambda () - (#{f 17761}# - (cdr #{e 17763}#) - #{w 17764}#)) - (lambda (#{xr* 17765}# - #{y-pat 17766}# - #{r 17767}#) - (if #{r 17767}# - (if (null? #{y-pat 17766}#) - (let ((#{xr 17768}# - (#{match 17632}# - (car #{e 17763}#) - #{x-pat 17755}# - #{w 17764}# + (#{f 17758}# + (cdr #{e 17760}#) + #{w 17761}#)) + (lambda (#{xr* 17762}# + #{y-pat 17763}# + #{r 17764}#) + (if #{r 17764}# + (if (null? #{y-pat 17763}#) + (let ((#{xr 17765}# + (#{match 17629}# + (car #{e 17760}#) + #{x-pat 17752}# + #{w 17761}# '() - #{mod 17665}#))) - (if #{xr 17768}# + #{mod 17662}#))) + (if #{xr 17765}# (values - (cons #{xr 17768}# - #{xr* 17765}#) - #{y-pat 17766}# - #{r 17767}#) + (cons #{xr 17765}# + #{xr* 17762}#) + #{y-pat 17763}# + #{r 17764}#) (values #f #f #f))) (values '() - (cdr #{y-pat 17766}#) - (#{match 17632}# - (car #{e 17763}#) - (car #{y-pat 17766}#) - #{w 17764}# - #{r 17767}# - #{mod 17665}#))) + (cdr #{y-pat 17763}#) + (#{match 17629}# + (car #{e 17760}#) + (car #{y-pat 17763}#) + #{w 17761}# + #{r 17764}# + #{mod 17662}#))) (values #f #f #f)))) - (if (if (vector? #{e 17763}#) - (if (= (vector-length #{e 17763}#) + (if (if (vector? #{e 17760}#) + (if (= (vector-length #{e 17760}#) 4) - (eq? (vector-ref #{e 17763}# 0) + (eq? (vector-ref #{e 17760}# 0) 'syntax-object) #f) #f) - (#{f 17761}# - (vector-ref #{e 17763}# 1) - (let ((#{m1 17796}# - (car #{w 17764}#)) - (#{s1 17797}# - (cdr #{w 17764}#))) - (if (null? #{m1 17796}#) - (if (null? #{s1 17797}#) - #{e 17763}# - (cons (car #{e 17763}#) - (let ((#{m2 17809}# - (cdr #{e 17763}#))) - (if (null? #{m2 17809}#) - #{s1 17797}# + (#{f 17758}# + (vector-ref #{e 17760}# 1) + (let ((#{m1 17793}# + (car #{w 17761}#)) + (#{s1 17794}# + (cdr #{w 17761}#))) + (if (null? #{m1 17793}#) + (if (null? #{s1 17794}#) + #{e 17760}# + (cons (car #{e 17760}#) + (let ((#{m2 17806}# + (cdr #{e 17760}#))) + (if (null? #{m2 17806}#) + #{s1 17794}# (append - #{s1 17797}# - #{m2 17809}#))))) - (cons (let ((#{m2 17819}# - (car #{e 17763}#))) - (if (null? #{m2 17819}#) - #{m1 17796}# + #{s1 17794}# + #{m2 17806}#))))) + (cons (let ((#{m2 17816}# + (car #{e 17760}#))) + (if (null? #{m2 17816}#) + #{m1 17793}# (append - #{m1 17796}# - #{m2 17819}#))) - (let ((#{m2 17829}# - (cdr #{e 17763}#))) - (if (null? #{m2 17829}#) - #{s1 17797}# + #{m1 17793}# + #{m2 17816}#))) + (let ((#{m2 17826}# + (cdr #{e 17760}#))) + (if (null? #{m2 17826}#) + #{s1 17794}# (append - #{s1 17797}# - #{m2 17829}#))))))) + #{s1 17794}# + #{m2 17826}#))))))) (values '() - #{y-pat 17756}# - (#{match 17632}# - #{e 17763}# - #{z-pat 17757}# - #{w 17764}# - #{r 17664}# - #{mod 17665}#))))))) - (#{f 17761}# #{e 17661}# #{w 17663}#)))) - (lambda (#{xr* 17839}# #{y-pat 17840}# #{r 17841}#) - (if #{r 17841}# - (if (null? #{y-pat 17840}#) - (if (null? #{xr* 17839}#) - (#{match-empty 17629}# - (vector-ref #{p 17662}# 1) - #{r 17841}#) - (#{combine 17630}# #{xr* 17839}# #{r 17841}#)) + #{y-pat 17753}# + (#{match 17629}# + #{e 17760}# + #{z-pat 17754}# + #{w 17761}# + #{r 17661}# + #{mod 17662}#))))))) + (#{f 17758}# #{e 17658}# #{w 17660}#)))) + (lambda (#{xr* 17836}# #{y-pat 17837}# #{r 17838}#) + (if #{r 17838}# + (if (null? #{y-pat 17837}#) + (if (null? #{xr* 17836}#) + (#{match-empty 17626}# + (vector-ref #{p 17659}# 1) + #{r 17838}#) + (#{combine 17627}# #{xr* 17836}# #{r 17838}#)) #f) #f))) - (if (eqv? #{atom-key 17675}# 'free-id) - (if (if (symbol? #{e 17661}#) + (if (eqv? #{atom-key 17672}# 'free-id) + (if (if (symbol? #{e 17658}#) #t - (if (if (vector? #{e 17661}#) - (if (= (vector-length #{e 17661}#) 4) - (eq? (vector-ref #{e 17661}# 0) + (if (if (vector? #{e 17658}#) + (if (= (vector-length #{e 17658}#) 4) + (eq? (vector-ref #{e 17658}# 0) 'syntax-object) #f) #f) - (symbol? (vector-ref #{e 17661}# 1)) + (symbol? (vector-ref #{e 17658}# 1)) #f)) - (if (#{free-id=? 4434}# - (if (if (null? (car #{w 17663}#)) - (null? (cdr #{w 17663}#)) + (if (#{free-id=? 4431}# + (if (if (null? (car #{w 17660}#)) + (null? (cdr #{w 17660}#)) #f) - #{e 17661}# - (if (if (vector? #{e 17661}#) - (if (= (vector-length #{e 17661}#) 4) - (eq? (vector-ref #{e 17661}# 0) + #{e 17658}# + (if (if (vector? #{e 17658}#) + (if (= (vector-length #{e 17658}#) 4) + (eq? (vector-ref #{e 17658}# 0) 'syntax-object) #f) #f) - (let ((#{expression 18272}# - (vector-ref #{e 17661}# 1)) - (#{wrap 18273}# - (let ((#{w2 18283}# + (let ((#{expression 18269}# + (vector-ref #{e 17658}# 1)) + (#{wrap 18270}# + (let ((#{w2 18280}# (vector-ref - #{e 17661}# + #{e 17658}# 2))) - (let ((#{m1 18284}# - (car #{w 17663}#)) - (#{s1 18285}# - (cdr #{w 17663}#))) - (if (null? #{m1 18284}#) - (if (null? #{s1 18285}#) - #{w2 18283}# - (cons (car #{w2 18283}#) - (let ((#{m2 18302}# - (cdr #{w2 18283}#))) - (if (null? #{m2 18302}#) - #{s1 18285}# + (let ((#{m1 18281}# + (car #{w 17660}#)) + (#{s1 18282}# + (cdr #{w 17660}#))) + (if (null? #{m1 18281}#) + (if (null? #{s1 18282}#) + #{w2 18280}# + (cons (car #{w2 18280}#) + (let ((#{m2 18299}# + (cdr #{w2 18280}#))) + (if (null? #{m2 18299}#) + #{s1 18282}# (append - #{s1 18285}# - #{m2 18302}#))))) - (cons (let ((#{m2 18310}# - (car #{w2 18283}#))) - (if (null? #{m2 18310}#) - #{m1 18284}# + #{s1 18282}# + #{m2 18299}#))))) + (cons (let ((#{m2 18307}# + (car #{w2 18280}#))) + (if (null? #{m2 18307}#) + #{m1 18281}# (append - #{m1 18284}# - #{m2 18310}#))) - (let ((#{m2 18318}# - (cdr #{w2 18283}#))) - (if (null? #{m2 18318}#) - #{s1 18285}# + #{m1 18281}# + #{m2 18307}#))) + (let ((#{m2 18315}# + (cdr #{w2 18280}#))) + (if (null? #{m2 18315}#) + #{s1 18282}# (append - #{s1 18285}# - #{m2 18318}#)))))))) - (#{module 18274}# - (vector-ref #{e 17661}# 3))) + #{s1 18282}# + #{m2 18315}#)))))))) + (#{module 18271}# + (vector-ref #{e 17658}# 3))) (vector 'syntax-object - #{expression 18272}# - #{wrap 18273}# - #{module 18274}#)) - (if (null? #{e 17661}#) - #{e 17661}# + #{expression 18269}# + #{wrap 18270}# + #{module 18271}#)) + (if (null? #{e 17658}#) + #{e 17658}# (vector 'syntax-object - #{e 17661}# - #{w 17663}# - #{mod 17665}#)))) - (vector-ref #{p 17662}# 1)) - #{r 17664}# + #{e 17658}# + #{w 17660}# + #{mod 17662}#)))) + (vector-ref #{p 17659}# 1)) + #{r 17661}# #f) #f) - (if (eqv? #{atom-key 17675}# 'atom) + (if (eqv? #{atom-key 17672}# 'atom) (if (equal? - (vector-ref #{p 17662}# 1) - (#{strip 4459}# #{e 17661}# #{w 17663}#)) - #{r 17664}# + (vector-ref #{p 17659}# 1) + (#{strip 4456}# #{e 17658}# #{w 17660}#)) + #{r 17661}# #f) - (if (eqv? #{atom-key 17675}# 'vector) - (if (vector? #{e 17661}#) - (#{match 17632}# - (vector->list #{e 17661}#) - (vector-ref #{p 17662}# 1) - #{w 17663}# - #{r 17664}# - #{mod 17665}#) + (if (eqv? #{atom-key 17672}# 'vector) + (if (vector? #{e 17658}#) + (#{match 17629}# + (vector->list #{e 17658}#) + (vector-ref #{p 17659}# 1) + #{w 17660}# + #{r 17661}# + #{mod 17662}#) #f)))))))))))) - (#{match 17632}# - (lambda (#{e 18351}# - #{p 18352}# - #{w 18353}# - #{r 18354}# - #{mod 18355}#) - (if (not #{r 18354}#) + (#{match 17629}# + (lambda (#{e 18348}# + #{p 18349}# + #{w 18350}# + #{r 18351}# + #{mod 18352}#) + (if (not #{r 18351}#) #f - (if (eq? #{p 18352}# '_) - #{r 18354}# - (if (eq? #{p 18352}# 'any) - (cons (if (if (null? (car #{w 18353}#)) - (null? (cdr #{w 18353}#)) + (if (eq? #{p 18349}# '_) + #{r 18351}# + (if (eq? #{p 18349}# 'any) + (cons (if (if (null? (car #{w 18350}#)) + (null? (cdr #{w 18350}#)) #f) - #{e 18351}# - (if (if (vector? #{e 18351}#) - (if (= (vector-length #{e 18351}#) 4) - (eq? (vector-ref #{e 18351}# 0) + #{e 18348}# + (if (if (vector? #{e 18348}#) + (if (= (vector-length #{e 18348}#) 4) + (eq? (vector-ref #{e 18348}# 0) 'syntax-object) #f) #f) - (let ((#{expression 18385}# - (vector-ref #{e 18351}# 1)) - (#{wrap 18386}# - (let ((#{w2 18396}# - (vector-ref #{e 18351}# 2))) - (let ((#{m1 18397}# (car #{w 18353}#)) - (#{s1 18398}# (cdr #{w 18353}#))) - (if (null? #{m1 18397}#) - (if (null? #{s1 18398}#) - #{w2 18396}# - (cons (car #{w2 18396}#) - (let ((#{m2 18415}# - (cdr #{w2 18396}#))) - (if (null? #{m2 18415}#) - #{s1 18398}# + (let ((#{expression 18382}# + (vector-ref #{e 18348}# 1)) + (#{wrap 18383}# + (let ((#{w2 18393}# + (vector-ref #{e 18348}# 2))) + (let ((#{m1 18394}# (car #{w 18350}#)) + (#{s1 18395}# (cdr #{w 18350}#))) + (if (null? #{m1 18394}#) + (if (null? #{s1 18395}#) + #{w2 18393}# + (cons (car #{w2 18393}#) + (let ((#{m2 18412}# + (cdr #{w2 18393}#))) + (if (null? #{m2 18412}#) + #{s1 18395}# (append - #{s1 18398}# - #{m2 18415}#))))) - (cons (let ((#{m2 18423}# - (car #{w2 18396}#))) - (if (null? #{m2 18423}#) - #{m1 18397}# + #{s1 18395}# + #{m2 18412}#))))) + (cons (let ((#{m2 18420}# + (car #{w2 18393}#))) + (if (null? #{m2 18420}#) + #{m1 18394}# (append - #{m1 18397}# - #{m2 18423}#))) - (let ((#{m2 18431}# - (cdr #{w2 18396}#))) - (if (null? #{m2 18431}#) - #{s1 18398}# + #{m1 18394}# + #{m2 18420}#))) + (let ((#{m2 18428}# + (cdr #{w2 18393}#))) + (if (null? #{m2 18428}#) + #{s1 18395}# (append - #{s1 18398}# - #{m2 18431}#)))))))) - (#{module 18387}# (vector-ref #{e 18351}# 3))) + #{s1 18395}# + #{m2 18428}#)))))))) + (#{module 18384}# (vector-ref #{e 18348}# 3))) (vector 'syntax-object - #{expression 18385}# - #{wrap 18386}# - #{module 18387}#)) - (if (null? #{e 18351}#) - #{e 18351}# + #{expression 18382}# + #{wrap 18383}# + #{module 18384}#)) + (if (null? #{e 18348}#) + #{e 18348}# (vector 'syntax-object - #{e 18351}# - #{w 18353}# - #{mod 18355}#)))) - #{r 18354}#) - (if (if (vector? #{e 18351}#) - (if (= (vector-length #{e 18351}#) 4) - (eq? (vector-ref #{e 18351}# 0) 'syntax-object) + #{e 18348}# + #{w 18350}# + #{mod 18352}#)))) + #{r 18351}#) + (if (if (vector? #{e 18348}#) + (if (= (vector-length #{e 18348}#) 4) + (eq? (vector-ref #{e 18348}# 0) 'syntax-object) #f) #f) - (#{match* 17631}# - (vector-ref #{e 18351}# 1) - #{p 18352}# - (let ((#{w2 18474}# (vector-ref #{e 18351}# 2))) - (let ((#{m1 18475}# (car #{w 18353}#)) - (#{s1 18476}# (cdr #{w 18353}#))) - (if (null? #{m1 18475}#) - (if (null? #{s1 18476}#) - #{w2 18474}# - (cons (car #{w2 18474}#) - (let ((#{m2 18487}# (cdr #{w2 18474}#))) - (if (null? #{m2 18487}#) - #{s1 18476}# - (append #{s1 18476}# #{m2 18487}#))))) - (cons (let ((#{m2 18495}# (car #{w2 18474}#))) - (if (null? #{m2 18495}#) - #{m1 18475}# - (append #{m1 18475}# #{m2 18495}#))) - (let ((#{m2 18503}# (cdr #{w2 18474}#))) - (if (null? #{m2 18503}#) - #{s1 18476}# - (append #{s1 18476}# #{m2 18503}#))))))) - #{r 18354}# - (vector-ref #{e 18351}# 3)) - (#{match* 17631}# - #{e 18351}# - #{p 18352}# - #{w 18353}# - #{r 18354}# - #{mod 18355}#)))))))) + (#{match* 17628}# + (vector-ref #{e 18348}# 1) + #{p 18349}# + (let ((#{w2 18471}# (vector-ref #{e 18348}# 2))) + (let ((#{m1 18472}# (car #{w 18350}#)) + (#{s1 18473}# (cdr #{w 18350}#))) + (if (null? #{m1 18472}#) + (if (null? #{s1 18473}#) + #{w2 18471}# + (cons (car #{w2 18471}#) + (let ((#{m2 18484}# (cdr #{w2 18471}#))) + (if (null? #{m2 18484}#) + #{s1 18473}# + (append #{s1 18473}# #{m2 18484}#))))) + (cons (let ((#{m2 18492}# (car #{w2 18471}#))) + (if (null? #{m2 18492}#) + #{m1 18472}# + (append #{m1 18472}# #{m2 18492}#))) + (let ((#{m2 18500}# (cdr #{w2 18471}#))) + (if (null? #{m2 18500}#) + #{s1 18473}# + (append #{s1 18473}# #{m2 18500}#))))))) + #{r 18351}# + (vector-ref #{e 18348}# 3)) + (#{match* 17628}# + #{e 18348}# + #{p 18349}# + #{w 18350}# + #{r 18351}# + #{mod 18352}#)))))))) (set! $sc-dispatch - (lambda (#{e 17633}# #{p 17634}#) - (if (eq? #{p 17634}# 'any) - (list #{e 17633}#) - (if (eq? #{p 17634}# '_) + (lambda (#{e 17630}# #{p 17631}#) + (if (eq? #{p 17631}# 'any) + (list #{e 17630}#) + (if (eq? #{p 17631}# '_) '() - (if (if (vector? #{e 17633}#) - (if (= (vector-length #{e 17633}#) 4) - (eq? (vector-ref #{e 17633}# 0) 'syntax-object) + (if (if (vector? #{e 17630}#) + (if (= (vector-length #{e 17630}#) 4) + (eq? (vector-ref #{e 17630}# 0) 'syntax-object) #f) #f) - (#{match* 17631}# - (vector-ref #{e 17633}# 1) - #{p 17634}# - (vector-ref #{e 17633}# 2) + (#{match* 17628}# + (vector-ref #{e 17630}# 1) + #{p 17631}# + (vector-ref #{e 17630}# 2) '() - (vector-ref #{e 17633}# 3)) - (#{match* 17631}# - #{e 17633}# - #{p 17634}# + (vector-ref #{e 17630}# 3)) + (#{match* 17628}# + #{e 17630}# + #{p 17631}# '(()) '() #f))))))))) @@ -17795,21 +17731,21 @@ (make-syntax-transformer 'with-syntax 'macro - (lambda (#{x 36462}#) - (let ((#{tmp 36464}# - ($sc-dispatch #{x 36462}# '(_ () any . each-any)))) - (if #{tmp 36464}# + (lambda (#{x 36772}#) + (let ((#{tmp 36774}# + ($sc-dispatch #{x 36772}# '(_ () any . each-any)))) + (if #{tmp 36774}# (@apply - (lambda (#{e1 36468}# #{e2 36469}#) + (lambda (#{e1 36778}# #{e2 36779}#) (cons '#(syntax-object let ((top) #(ribcage #(e1 e2) #((top) (top)) - #("i36435" "i36436")) + #("i36745" "i36746")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i36432")) + #(ribcage #(x) #((top)) #("i36742")) #(ribcage (with-syntax) ((top)) @@ -17820,27 +17756,27 @@ ((top)) (hygiene guile)))))) (hygiene guile)) - (cons '() (cons #{e1 36468}# #{e2 36469}#)))) - #{tmp 36464}#) - (let ((#{tmp 36470}# + (cons '() (cons #{e1 36778}# #{e2 36779}#)))) + #{tmp 36774}#) + (let ((#{tmp 36780}# ($sc-dispatch - #{x 36462}# + #{x 36772}# '(_ ((any any)) any . each-any)))) - (if #{tmp 36470}# + (if #{tmp 36780}# (@apply - (lambda (#{out 36474}# - #{in 36475}# - #{e1 36476}# - #{e2 36477}#) + (lambda (#{out 36784}# + #{in 36785}# + #{e1 36786}# + #{e2 36787}#) (list '#(syntax-object syntax-case ((top) #(ribcage #(out in e1 e2) #((top) (top) (top) (top)) - #("i36441" "i36442" "i36443" "i36444")) + #("i36751" "i36752" "i36753" "i36754")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i36432")) + #(ribcage #(x) #((top)) #("i36742")) #(ribcage (with-syntax) ((top)) @@ -17851,21 +17787,21 @@ ((top)) (hygiene guile)))))) (hygiene guile)) - #{in 36475}# + #{in 36785}# '() - (list #{out 36474}# + (list #{out 36784}# (cons '#(syntax-object let ((top) #(ribcage #(out in e1 e2) #((top) (top) (top) (top)) - #("i36441" - "i36442" - "i36443" - "i36444")) + #("i36751" + "i36752" + "i36753" + "i36754")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i36432")) + #(ribcage #(x) #((top)) #("i36742")) #(ribcage (with-syntax) ((top)) @@ -17877,27 +17813,27 @@ (hygiene guile)))))) (hygiene guile)) (cons '() - (cons #{e1 36476}# #{e2 36477}#)))))) - #{tmp 36470}#) - (let ((#{tmp 36478}# + (cons #{e1 36786}# #{e2 36787}#)))))) + #{tmp 36780}#) + (let ((#{tmp 36788}# ($sc-dispatch - #{x 36462}# + #{x 36772}# '(_ #(each (any any)) any . each-any)))) - (if #{tmp 36478}# + (if #{tmp 36788}# (@apply - (lambda (#{out 36482}# - #{in 36483}# - #{e1 36484}# - #{e2 36485}#) + (lambda (#{out 36792}# + #{in 36793}# + #{e1 36794}# + #{e2 36795}#) (list '#(syntax-object syntax-case ((top) #(ribcage #(out in e1 e2) #((top) (top) (top) (top)) - #("i36451" "i36452" "i36453" "i36454")) + #("i36761" "i36762" "i36763" "i36764")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i36432")) + #(ribcage #(x) #((top)) #("i36742")) #(ribcage (with-syntax) ((top)) @@ -17914,9 +17850,9 @@ #(ribcage #(out in e1 e2) #((top) (top) (top) (top)) - #("i36451" "i36452" "i36453" "i36454")) + #("i36761" "i36762" "i36763" "i36764")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i36432")) + #(ribcage #(x) #((top)) #("i36742")) #(ribcage (with-syntax) ((top)) @@ -17927,24 +17863,24 @@ ((top)) (hygiene guile)))))) (hygiene guile)) - #{in 36483}#) + #{in 36793}#) '() - (list #{out 36482}# + (list #{out 36792}# (cons '#(syntax-object let ((top) #(ribcage #(out in e1 e2) #((top) (top) (top) (top)) - #("i36451" - "i36452" - "i36453" - "i36454")) + #("i36761" + "i36762" + "i36763" + "i36764")) #(ribcage () () ()) #(ribcage #(x) #((top)) - #("i36432")) + #("i36742")) #(ribcage (with-syntax) ((top)) @@ -17956,38 +17892,38 @@ (hygiene guile)))))) (hygiene guile)) (cons '() - (cons #{e1 36484}# - #{e2 36485}#)))))) - #{tmp 36478}#) + (cons #{e1 36794}# + #{e2 36795}#)))))) + #{tmp 36788}#) (syntax-violation #f "source expression failed to match any pattern" - #{x 36462}#)))))))))) + #{x 36772}#)))))))))) (define syntax-rules (make-syntax-transformer 'syntax-rules 'macro - (lambda (#{x 36540}#) - (let ((#{tmp 36542}# + (lambda (#{x 36850}#) + (let ((#{tmp 36852}# ($sc-dispatch - #{x 36540}# + #{x 36850}# '(_ each-any . #(each ((any . any) any)))))) - (if #{tmp 36542}# + (if #{tmp 36852}# (@apply - (lambda (#{k 36546}# - #{keyword 36547}# - #{pattern 36548}# - #{template 36549}#) + (lambda (#{k 36856}# + #{keyword 36857}# + #{pattern 36858}# + #{template 36859}#) (list '#(syntax-object lambda ((top) #(ribcage #(k keyword pattern template) #((top) (top) (top) (top)) - #("i36503" "i36504" "i36505" "i36506")) + #("i36813" "i36814" "i36815" "i36816")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i36500")) + #(ribcage #(x) #((top)) #("i36810")) #(ribcage (syntax-rules) ((top)) @@ -18004,9 +17940,9 @@ #(ribcage #(k keyword pattern template) #((top) (top) (top) (top)) - #("i36503" "i36504" "i36505" "i36506")) + #("i36813" "i36814" "i36815" "i36816")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i36500")) + #(ribcage #(x) #((top)) #("i36810")) #(ribcage (syntax-rules) ((top)) @@ -18024,9 +17960,9 @@ #(ribcage #(k keyword pattern template) #((top) (top) (top) (top)) - #("i36503" "i36504" "i36505" "i36506")) + #("i36813" "i36814" "i36815" "i36816")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i36500")) + #(ribcage #(x) #((top)) #("i36810")) #(ribcage (syntax-rules) ((top)) @@ -18044,9 +17980,9 @@ #(ribcage #(k keyword pattern template) #((top) (top) (top) (top)) - #("i36503" "i36504" "i36505" "i36506")) + #("i36813" "i36814" "i36815" "i36816")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i36500")) + #(ribcage #(x) #((top)) #("i36810")) #(ribcage (syntax-rules) ((top)) @@ -18063,9 +17999,9 @@ #(ribcage #(k keyword pattern template) #((top) (top) (top) (top)) - #("i36503" "i36504" "i36505" "i36506")) + #("i36813" "i36814" "i36815" "i36816")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i36500")) + #(ribcage #(x) #((top)) #("i36810")) #(ribcage (syntax-rules) ((top)) @@ -18076,16 +18012,16 @@ ((top)) (hygiene guile)))))) (hygiene guile)) - #{pattern 36548}#)) + #{pattern 36858}#)) (cons '#(syntax-object syntax-case ((top) #(ribcage #(k keyword pattern template) #((top) (top) (top) (top)) - #("i36503" "i36504" "i36505" "i36506")) + #("i36813" "i36814" "i36815" "i36816")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i36500")) + #(ribcage #(x) #((top)) #("i36810")) #(ribcage (syntax-rules) ((top)) @@ -18102,9 +18038,9 @@ #(ribcage #(k keyword pattern template) #((top) (top) (top) (top)) - #("i36503" "i36504" "i36505" "i36506")) + #("i36813" "i36814" "i36815" "i36816")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i36500")) + #(ribcage #(x) #((top)) #("i36810")) #(ribcage (syntax-rules) ((top)) @@ -18115,9 +18051,9 @@ ((top)) (hygiene guile)))))) (hygiene guile)) - (cons #{k 36546}# - (map (lambda (#{tmp 36514 36550}# - #{tmp 36513 36551}#) + (cons #{k 36856}# + (map (lambda (#{tmp 36824 36860}# + #{tmp 36823 36861}#) (list (cons '#(syntax-object _ ((top) @@ -18130,10 +18066,10 @@ (top) (top) (top)) - #("i36503" - "i36504" - "i36505" - "i36506")) + #("i36813" + "i36814" + "i36815" + "i36816")) #(ribcage () () @@ -18141,7 +18077,7 @@ #(ribcage #(x) #((top)) - #("i36500")) + #("i36810")) #(ribcage (syntax-rules) ((top)) @@ -18154,7 +18090,7 @@ (hygiene guile)))))) (hygiene guile)) - #{tmp 36513 36551}#) + #{tmp 36823 36861}#) (list '#(syntax-object syntax ((top) @@ -18167,10 +18103,10 @@ (top) (top) (top)) - #("i36503" - "i36504" - "i36505" - "i36506")) + #("i36813" + "i36814" + "i36815" + "i36816")) #(ribcage () () @@ -18178,7 +18114,7 @@ #(ribcage #(x) #((top)) - #("i36500")) + #("i36810")) #(ribcage (syntax-rules) ((top)) @@ -18191,39 +18127,39 @@ (hygiene guile)))))) (hygiene guile)) - #{tmp 36514 36550}#))) - #{template 36549}# - #{pattern 36548}#)))))) - #{tmp 36542}#) - (let ((#{tmp 36552}# + #{tmp 36824 36860}#))) + #{template 36859}# + #{pattern 36858}#)))))) + #{tmp 36852}#) + (let ((#{tmp 36862}# ($sc-dispatch - #{x 36540}# + #{x 36850}# '(_ each-any any . #(each ((any . any) any)))))) - (if (if #{tmp 36552}# + (if (if #{tmp 36862}# (@apply - (lambda (#{k 36556}# - #{docstring 36557}# - #{keyword 36558}# - #{pattern 36559}# - #{template 36560}#) - (string? (syntax->datum #{docstring 36557}#))) - #{tmp 36552}#) + (lambda (#{k 36866}# + #{docstring 36867}# + #{keyword 36868}# + #{pattern 36869}# + #{template 36870}#) + (string? (syntax->datum #{docstring 36867}#))) + #{tmp 36862}#) #f) (@apply - (lambda (#{k 36561}# - #{docstring 36562}# - #{keyword 36563}# - #{pattern 36564}# - #{template 36565}#) + (lambda (#{k 36871}# + #{docstring 36872}# + #{keyword 36873}# + #{pattern 36874}# + #{template 36875}#) (list '#(syntax-object lambda ((top) #(ribcage #(k docstring keyword pattern template) #((top) (top) (top) (top) (top)) - #("i36526" "i36527" "i36528" "i36529" "i36530")) + #("i36836" "i36837" "i36838" "i36839" "i36840")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i36500")) + #(ribcage #(x) #((top)) #("i36810")) #(ribcage (syntax-rules) ((top)) @@ -18240,9 +18176,9 @@ #(ribcage #(k docstring keyword pattern template) #((top) (top) (top) (top) (top)) - #("i36526" "i36527" "i36528" "i36529" "i36530")) + #("i36836" "i36837" "i36838" "i36839" "i36840")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i36500")) + #(ribcage #(x) #((top)) #("i36810")) #(ribcage (syntax-rules) ((top)) @@ -18253,7 +18189,7 @@ ((top)) (hygiene guile)))))) (hygiene guile))) - #{docstring 36562}# + #{docstring 36872}# (vector '(#(syntax-object macro-type @@ -18261,13 +18197,13 @@ #(ribcage #(k docstring keyword pattern template) #((top) (top) (top) (top) (top)) - #("i36526" - "i36527" - "i36528" - "i36529" - "i36530")) + #("i36836" + "i36837" + "i36838" + "i36839" + "i36840")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i36500")) + #(ribcage #(x) #((top)) #("i36810")) #(ribcage (syntax-rules) ((top)) @@ -18285,13 +18221,13 @@ #(ribcage #(k docstring keyword pattern template) #((top) (top) (top) (top) (top)) - #("i36526" - "i36527" - "i36528" - "i36529" - "i36530")) + #("i36836" + "i36837" + "i36838" + "i36839" + "i36840")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i36500")) + #(ribcage #(x) #((top)) #("i36810")) #(ribcage (syntax-rules) ((top)) @@ -18308,13 +18244,13 @@ #(ribcage #(k docstring keyword pattern template) #((top) (top) (top) (top) (top)) - #("i36526" - "i36527" - "i36528" - "i36529" - "i36530")) + #("i36836" + "i36837" + "i36838" + "i36839" + "i36840")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i36500")) + #(ribcage #(x) #((top)) #("i36810")) #(ribcage (syntax-rules) ((top)) @@ -18325,20 +18261,20 @@ ((top)) (hygiene guile)))))) (hygiene guile)) - #{pattern 36564}#)) + #{pattern 36874}#)) (cons '#(syntax-object syntax-case ((top) #(ribcage #(k docstring keyword pattern template) #((top) (top) (top) (top) (top)) - #("i36526" - "i36527" - "i36528" - "i36529" - "i36530")) + #("i36836" + "i36837" + "i36838" + "i36839" + "i36840")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i36500")) + #(ribcage #(x) #((top)) #("i36810")) #(ribcage (syntax-rules) ((top)) @@ -18359,13 +18295,13 @@ pattern template) #((top) (top) (top) (top) (top)) - #("i36526" - "i36527" - "i36528" - "i36529" - "i36530")) + #("i36836" + "i36837" + "i36838" + "i36839" + "i36840")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i36500")) + #(ribcage #(x) #((top)) #("i36810")) #(ribcage (syntax-rules) ((top)) @@ -18376,9 +18312,9 @@ ((top)) (hygiene guile)))))) (hygiene guile)) - (cons #{k 36561}# - (map (lambda (#{tmp 36539 36566}# - #{tmp 36538 36567}#) + (cons #{k 36871}# + (map (lambda (#{tmp 36849 36876}# + #{tmp 36848 36877}#) (list (cons '#(syntax-object _ ((top) @@ -18393,11 +18329,11 @@ (top) (top) (top)) - #("i36526" - "i36527" - "i36528" - "i36529" - "i36530")) + #("i36836" + "i36837" + "i36838" + "i36839" + "i36840")) #(ribcage () () @@ -18405,7 +18341,7 @@ #(ribcage #(x) #((top)) - #("i36500")) + #("i36810")) #(ribcage (syntax-rules) ((top)) @@ -18419,7 +18355,7 @@ guile)))))) (hygiene guile)) - #{tmp 36538 36567}#) + #{tmp 36848 36877}#) (list '#(syntax-object syntax ((top) @@ -18434,11 +18370,11 @@ (top) (top) (top)) - #("i36526" - "i36527" - "i36528" - "i36529" - "i36530")) + #("i36836" + "i36837" + "i36838" + "i36839" + "i36840")) #(ribcage () () @@ -18446,7 +18382,7 @@ #(ribcage #(x) #((top)) - #("i36500")) + #("i36810")) #(ribcage (syntax-rules) ((top)) @@ -18460,36 +18396,36 @@ guile)))))) (hygiene guile)) - #{tmp 36539 36566}#))) - #{template 36565}# - #{pattern 36564}#)))))) - #{tmp 36552}#) + #{tmp 36849 36876}#))) + #{template 36875}# + #{pattern 36874}#)))))) + #{tmp 36862}#) (syntax-violation #f "source expression failed to match any pattern" - #{x 36540}#)))))))) + #{x 36850}#)))))))) (define define-syntax-rule (make-syntax-transformer 'define-syntax-rule 'macro - (lambda (#{x 36605}#) - (let ((#{tmp 36607}# - ($sc-dispatch #{x 36605}# '(_ (any . any) any)))) - (if #{tmp 36607}# + (lambda (#{x 36915}#) + (let ((#{tmp 36917}# + ($sc-dispatch #{x 36915}# '(_ (any . any) any)))) + (if #{tmp 36917}# (@apply - (lambda (#{name 36611}# - #{pattern 36612}# - #{template 36613}#) + (lambda (#{name 36921}# + #{pattern 36922}# + #{template 36923}#) (list '#(syntax-object define-syntax ((top) #(ribcage #(name pattern template) #((top) (top) (top)) - #("i36582" "i36583" "i36584")) + #("i36892" "i36893" "i36894")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i36579")) + #(ribcage #(x) #((top)) #("i36889")) #(ribcage (define-syntax-rule) ((top)) @@ -18500,16 +18436,16 @@ ((top)) (hygiene guile)))))) (hygiene guile)) - #{name 36611}# + #{name 36921}# (list '#(syntax-object syntax-rules ((top) #(ribcage #(name pattern template) #((top) (top) (top)) - #("i36582" "i36583" "i36584")) + #("i36892" "i36893" "i36894")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i36579")) + #(ribcage #(x) #((top)) #("i36889")) #(ribcage (define-syntax-rule) ((top)) @@ -18527,9 +18463,9 @@ #(ribcage #(name pattern template) #((top) (top) (top)) - #("i36582" "i36583" "i36584")) + #("i36892" "i36893" "i36894")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i36579")) + #(ribcage #(x) #((top)) #("i36889")) #(ribcage (define-syntax-rule) ((top)) @@ -18540,36 +18476,36 @@ ((top)) (hygiene guile)))))) (hygiene guile)) - #{pattern 36612}#) - #{template 36613}#)))) - #{tmp 36607}#) - (let ((#{tmp 36614}# + #{pattern 36922}#) + #{template 36923}#)))) + #{tmp 36917}#) + (let ((#{tmp 36924}# ($sc-dispatch - #{x 36605}# + #{x 36915}# '(_ (any . any) any any)))) - (if (if #{tmp 36614}# + (if (if #{tmp 36924}# (@apply - (lambda (#{name 36618}# - #{pattern 36619}# - #{docstring 36620}# - #{template 36621}#) - (string? (syntax->datum #{docstring 36620}#))) - #{tmp 36614}#) + (lambda (#{name 36928}# + #{pattern 36929}# + #{docstring 36930}# + #{template 36931}#) + (string? (syntax->datum #{docstring 36930}#))) + #{tmp 36924}#) #f) (@apply - (lambda (#{name 36622}# - #{pattern 36623}# - #{docstring 36624}# - #{template 36625}#) + (lambda (#{name 36932}# + #{pattern 36933}# + #{docstring 36934}# + #{template 36935}#) (list '#(syntax-object define-syntax ((top) #(ribcage #(name pattern docstring template) #((top) (top) (top) (top)) - #("i36597" "i36598" "i36599" "i36600")) + #("i36907" "i36908" "i36909" "i36910")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i36579")) + #(ribcage #(x) #((top)) #("i36889")) #(ribcage (define-syntax-rule) ((top)) @@ -18580,16 +18516,16 @@ ((top)) (hygiene guile)))))) (hygiene guile)) - #{name 36622}# + #{name 36932}# (list '#(syntax-object syntax-rules ((top) #(ribcage #(name pattern docstring template) #((top) (top) (top) (top)) - #("i36597" "i36598" "i36599" "i36600")) + #("i36907" "i36908" "i36909" "i36910")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i36579")) + #(ribcage #(x) #((top)) #("i36889")) #(ribcage (define-syntax-rule) ((top)) @@ -18601,7 +18537,7 @@ (hygiene guile)))))) (hygiene guile)) '() - #{docstring 36624}# + #{docstring 36934}# (list (cons '#(syntax-object _ ((top) @@ -18611,15 +18547,15 @@ docstring template) #((top) (top) (top) (top)) - #("i36597" - "i36598" - "i36599" - "i36600")) + #("i36907" + "i36908" + "i36909" + "i36910")) #(ribcage () () ()) #(ribcage #(x) #((top)) - #("i36579")) + #("i36889")) #(ribcage (define-syntax-rule) ((top)) @@ -18630,43 +18566,43 @@ ((top)) (hygiene guile)))))) (hygiene guile)) - #{pattern 36623}#) - #{template 36625}#)))) - #{tmp 36614}#) + #{pattern 36933}#) + #{template 36935}#)))) + #{tmp 36924}#) (syntax-violation #f "source expression failed to match any pattern" - #{x 36605}#)))))))) + #{x 36915}#)))))))) (define let* (make-syntax-transformer 'let* 'macro - (lambda (#{x 36675}#) - (let ((#{tmp 36677}# + (lambda (#{x 36985}#) + (let ((#{tmp 36987}# ($sc-dispatch - #{x 36675}# + #{x 36985}# '(any #(each (any any)) any . each-any)))) - (if (if #{tmp 36677}# + (if (if #{tmp 36987}# (@apply - (lambda (#{let* 36681}# - #{x 36682}# - #{v 36683}# - #{e1 36684}# - #{e2 36685}#) - (and-map identifier? #{x 36682}#)) - #{tmp 36677}#) + (lambda (#{let* 36991}# + #{x 36992}# + #{v 36993}# + #{e1 36994}# + #{e2 36995}#) + (and-map identifier? #{x 36992}#)) + #{tmp 36987}#) #f) (@apply - (lambda (#{let* 36686}# - #{x 36687}# - #{v 36688}# - #{e1 36689}# - #{e2 36690}#) + (lambda (#{let* 36996}# + #{x 36997}# + #{v 36998}# + #{e1 36999}# + #{e2 37000}#) (letrec* - ((#{f 36691}# - (lambda (#{bindings 36694}#) - (if (null? #{bindings 36694}#) + ((#{f 37001}# + (lambda (#{bindings 37004}#) + (if (null? #{bindings 37004}#) (cons '#(syntax-object let ((top) @@ -18674,17 +18610,17 @@ #(ribcage #(f bindings) #((top) (top)) - #("i36661" "i36662")) + #("i36971" "i36972")) #(ribcage #(let* x v e1 e2) #((top) (top) (top) (top) (top)) - #("i36651" - "i36652" - "i36653" - "i36654" - "i36655")) + #("i36961" + "i36962" + "i36963" + "i36964" + "i36965")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i36637")) + #(ribcage #(x) #((top)) #("i36947")) #(ribcage (let*) ((top)) @@ -18695,15 +18631,15 @@ ((top)) (hygiene guile)))))) (hygiene guile)) - (cons '() (cons #{e1 36689}# #{e2 36690}#))) - (let ((#{tmp 36695}# - (list (#{f 36691}# (cdr #{bindings 36694}#)) - (car #{bindings 36694}#)))) - (let ((#{tmp 36696}# - ($sc-dispatch #{tmp 36695}# '(any any)))) - (if #{tmp 36696}# + (cons '() (cons #{e1 36999}# #{e2 37000}#))) + (let ((#{tmp 37005}# + (list (#{f 37001}# (cdr #{bindings 37004}#)) + (car #{bindings 37004}#)))) + (let ((#{tmp 37006}# + ($sc-dispatch #{tmp 37005}# '(any any)))) + (if #{tmp 37006}# (@apply - (lambda (#{body 36698}# #{binding 36699}#) + (lambda (#{body 37008}# #{binding 37009}#) (list '#(syntax-object let ((top) @@ -18711,22 +18647,22 @@ #(ribcage #(body binding) #((top) (top)) - #("i36671" "i36672")) + #("i36981" "i36982")) #(ribcage () () ()) #(ribcage #(f bindings) #((top) (top)) - #("i36661" "i36662")) + #("i36971" "i36972")) #(ribcage #(let* x v e1 e2) #((top) (top) (top) (top) (top)) - #("i36651" - "i36652" - "i36653" - "i36654" - "i36655")) + #("i36961" + "i36962" + "i36963" + "i36964" + "i36965")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i36637")) + #(ribcage #(x) #((top)) #("i36947")) #(ribcage (let*) ((top)) @@ -18737,66 +18673,66 @@ ((top)) (hygiene guile)))))) (hygiene guile)) - (list #{binding 36699}#) - #{body 36698}#)) - #{tmp 36696}#) + (list #{binding 37009}#) + #{body 37008}#)) + #{tmp 37006}#) (syntax-violation #f "source expression failed to match any pattern" - #{tmp 36695}#)))))))) - (#{f 36691}# (map list #{x 36687}# #{v 36688}#)))) - #{tmp 36677}#) + #{tmp 37005}#)))))))) + (#{f 37001}# (map list #{x 36997}# #{v 36998}#)))) + #{tmp 36987}#) (syntax-violation #f "source expression failed to match any pattern" - #{x 36675}#)))))) + #{x 36985}#)))))) (define do (make-syntax-transformer 'do 'macro - (lambda (#{orig-x 36758}#) - (let ((#{tmp 36760}# + (lambda (#{orig-x 37068}#) + (let ((#{tmp 37070}# ($sc-dispatch - #{orig-x 36758}# + #{orig-x 37068}# '(_ #(each (any any . any)) (any . each-any) . each-any)))) - (if #{tmp 36760}# + (if #{tmp 37070}# (@apply - (lambda (#{var 36764}# - #{init 36765}# - #{step 36766}# - #{e0 36767}# - #{e1 36768}# - #{c 36769}#) - (let ((#{tmp 36770}# - (map (lambda (#{v 36773}# #{s 36774}#) - (let ((#{tmp 36776}# - ($sc-dispatch #{s 36774}# '()))) - (if #{tmp 36776}# - (@apply (lambda () #{v 36773}#) #{tmp 36776}#) - (let ((#{tmp 36779}# - ($sc-dispatch #{s 36774}# '(any)))) - (if #{tmp 36779}# + (lambda (#{var 37074}# + #{init 37075}# + #{step 37076}# + #{e0 37077}# + #{e1 37078}# + #{c 37079}#) + (let ((#{tmp 37080}# + (map (lambda (#{v 37083}# #{s 37084}#) + (let ((#{tmp 37086}# + ($sc-dispatch #{s 37084}# '()))) + (if #{tmp 37086}# + (@apply (lambda () #{v 37083}#) #{tmp 37086}#) + (let ((#{tmp 37089}# + ($sc-dispatch #{s 37084}# '(any)))) + (if #{tmp 37089}# (@apply - (lambda (#{e 36782}#) #{e 36782}#) - #{tmp 36779}#) + (lambda (#{e 37092}#) #{e 37092}#) + #{tmp 37089}#) (syntax-violation 'do "bad step expression" - #{orig-x 36758}# - #{s 36774}#)))))) - #{var 36764}# - #{step 36766}#))) - (let ((#{tmp 36771}# - ($sc-dispatch #{tmp 36770}# 'each-any))) - (if #{tmp 36771}# + #{orig-x 37068}# + #{s 37084}#)))))) + #{var 37074}# + #{step 37076}#))) + (let ((#{tmp 37081}# + ($sc-dispatch #{tmp 37080}# 'each-any))) + (if #{tmp 37081}# (@apply - (lambda (#{step 36788}#) - (let ((#{tmp 36790}# ($sc-dispatch #{e1 36768}# '()))) - (if #{tmp 36790}# + (lambda (#{step 37098}#) + (let ((#{tmp 37100}# ($sc-dispatch #{e1 37078}# '()))) + (if #{tmp 37100}# (@apply (lambda () (list '#(syntax-object @@ -18806,7 +18742,7 @@ #(ribcage #(step) #((top)) - #("i36726")) + #("i37036")) #(ribcage #(var init step e0 e1 c) #((top) @@ -18815,17 +18751,17 @@ (top) (top) (top)) - #("i36711" - "i36712" - "i36713" - "i36714" - "i36715" - "i36716")) + #("i37021" + "i37022" + "i37023" + "i37024" + "i37025" + "i37026")) #(ribcage () () ()) #(ribcage #(orig-x) #((top)) - #("i36708")) + #("i37018")) #(ribcage (do) ((top)) @@ -18843,7 +18779,7 @@ #(ribcage #(step) #((top)) - #("i36726")) + #("i37036")) #(ribcage #(var init step e0 e1 c) #((top) @@ -18852,17 +18788,17 @@ (top) (top) (top)) - #("i36711" - "i36712" - "i36713" - "i36714" - "i36715" - "i36716")) + #("i37021" + "i37022" + "i37023" + "i37024" + "i37025" + "i37026")) #(ribcage () () ()) #(ribcage #(orig-x) #((top)) - #("i36708")) + #("i37018")) #(ribcage (do) ((top)) @@ -18873,7 +18809,7 @@ ((top)) (hygiene guile)))))) (hygiene guile)) - (map list #{var 36764}# #{init 36765}#) + (map list #{var 37074}# #{init 37075}#) (list '#(syntax-object if ((top) @@ -18881,7 +18817,7 @@ #(ribcage #(step) #((top)) - #("i36726")) + #("i37036")) #(ribcage #(var init step e0 e1 c) #((top) @@ -18890,17 +18826,17 @@ (top) (top) (top)) - #("i36711" - "i36712" - "i36713" - "i36714" - "i36715" - "i36716")) + #("i37021" + "i37022" + "i37023" + "i37024" + "i37025" + "i37026")) #(ribcage () () ()) #(ribcage #(orig-x) #((top)) - #("i36708")) + #("i37018")) #(ribcage (do) ((top)) @@ -18918,7 +18854,7 @@ #(ribcage #(step) #((top)) - #("i36726")) + #("i37036")) #(ribcage #(var init @@ -18932,17 +18868,17 @@ (top) (top) (top)) - #("i36711" - "i36712" - "i36713" - "i36714" - "i36715" - "i36716")) + #("i37021" + "i37022" + "i37023" + "i37024" + "i37025" + "i37026")) #(ribcage () () ()) #(ribcage #(orig-x) #((top)) - #("i36708")) + #("i37018")) #(ribcage (do) ((top)) @@ -18954,7 +18890,7 @@ (hygiene guile)))))) (hygiene guile)) - #{e0 36767}#) + #{e0 37077}#) (cons '#(syntax-object begin ((top) @@ -18962,7 +18898,7 @@ #(ribcage #(step) #((top)) - #("i36726")) + #("i37036")) #(ribcage #(var init @@ -18976,17 +18912,17 @@ (top) (top) (top)) - #("i36711" - "i36712" - "i36713" - "i36714" - "i36715" - "i36716")) + #("i37021" + "i37022" + "i37023" + "i37024" + "i37025" + "i37026")) #(ribcage () () ()) #(ribcage #(orig-x) #((top)) - #("i36708")) + #("i37018")) #(ribcage (do) ((top)) @@ -18999,7 +18935,7 @@ guile)))))) (hygiene guile)) (append - #{c 36769}# + #{c 37079}# (list (cons '#(syntax-object doloop ((top) @@ -19010,7 +18946,7 @@ #(ribcage #(step) #((top)) - #("i36726")) + #("i37036")) #(ribcage #(var init @@ -19024,12 +18960,12 @@ (top) (top) (top)) - #("i36711" - "i36712" - "i36713" - "i36714" - "i36715" - "i36716")) + #("i37021" + "i37022" + "i37023" + "i37024" + "i37025" + "i37026")) #(ribcage () () @@ -19037,7 +18973,7 @@ #(ribcage #(orig-x) #((top)) - #("i36708")) + #("i37018")) #(ribcage (do) ((top)) @@ -19051,27 +18987,27 @@ guile)))))) (hygiene guile)) - #{step 36788}#))))))) - #{tmp 36790}#) - (let ((#{tmp 36794}# + #{step 37098}#))))))) + #{tmp 37100}#) + (let ((#{tmp 37104}# ($sc-dispatch - #{e1 36768}# + #{e1 37078}# '(any . each-any)))) - (if #{tmp 36794}# + (if #{tmp 37104}# (@apply - (lambda (#{e1 36798}# #{e2 36799}#) + (lambda (#{e1 37108}# #{e2 37109}#) (list '#(syntax-object let ((top) #(ribcage #(e1 e2) #((top) (top)) - #("i36735" "i36736")) + #("i37045" "i37046")) #(ribcage () () ()) #(ribcage #(step) #((top)) - #("i36726")) + #("i37036")) #(ribcage #(var init step e0 e1 c) #((top) @@ -19080,17 +19016,17 @@ (top) (top) (top)) - #("i36711" - "i36712" - "i36713" - "i36714" - "i36715" - "i36716")) + #("i37021" + "i37022" + "i37023" + "i37024" + "i37025" + "i37026")) #(ribcage () () ()) #(ribcage #(orig-x) #((top)) - #("i36708")) + #("i37018")) #(ribcage (do) ((top)) @@ -19107,12 +19043,12 @@ #(ribcage #(e1 e2) #((top) (top)) - #("i36735" "i36736")) + #("i37045" "i37046")) #(ribcage () () ()) #(ribcage #(step) #((top)) - #("i36726")) + #("i37036")) #(ribcage #(var init step e0 e1 c) #((top) @@ -19121,17 +19057,17 @@ (top) (top) (top)) - #("i36711" - "i36712" - "i36713" - "i36714" - "i36715" - "i36716")) + #("i37021" + "i37022" + "i37023" + "i37024" + "i37025" + "i37026")) #(ribcage () () ()) #(ribcage #(orig-x) #((top)) - #("i36708")) + #("i37018")) #(ribcage (do) ((top)) @@ -19143,20 +19079,20 @@ (hygiene guile)))))) (hygiene guile)) (map list - #{var 36764}# - #{init 36765}#) + #{var 37074}# + #{init 37075}#) (list '#(syntax-object if ((top) #(ribcage #(e1 e2) #((top) (top)) - #("i36735" "i36736")) + #("i37045" "i37046")) #(ribcage () () ()) #(ribcage #(step) #((top)) - #("i36726")) + #("i37036")) #(ribcage #(var init step e0 e1 c) #((top) @@ -19165,17 +19101,17 @@ (top) (top) (top)) - #("i36711" - "i36712" - "i36713" - "i36714" - "i36715" - "i36716")) + #("i37021" + "i37022" + "i37023" + "i37024" + "i37025" + "i37026")) #(ribcage () () ()) #(ribcage #(orig-x) #((top)) - #("i36708")) + #("i37018")) #(ribcage (do) ((top)) @@ -19186,20 +19122,20 @@ ((top)) (hygiene guile)))))) (hygiene guile)) - #{e0 36767}# + #{e0 37077}# (cons '#(syntax-object begin ((top) #(ribcage #(e1 e2) #((top) (top)) - #("i36735" - "i36736")) + #("i37045" + "i37046")) #(ribcage () () ()) #(ribcage #(step) #((top)) - #("i36726")) + #("i37036")) #(ribcage #(var init @@ -19213,17 +19149,17 @@ (top) (top) (top)) - #("i36711" - "i36712" - "i36713" - "i36714" - "i36715" - "i36716")) + #("i37021" + "i37022" + "i37023" + "i37024" + "i37025" + "i37026")) #(ribcage () () ()) #(ribcage #(orig-x) #((top)) - #("i36708")) + #("i37018")) #(ribcage (do) ((top)) @@ -19235,21 +19171,21 @@ (hygiene guile)))))) (hygiene guile)) - (cons #{e1 36798}# - #{e2 36799}#)) + (cons #{e1 37108}# + #{e2 37109}#)) (cons '#(syntax-object begin ((top) #(ribcage #(e1 e2) #((top) (top)) - #("i36735" - "i36736")) + #("i37045" + "i37046")) #(ribcage () () ()) #(ribcage #(step) #((top)) - #("i36726")) + #("i37036")) #(ribcage #(var init @@ -19263,17 +19199,17 @@ (top) (top) (top)) - #("i36711" - "i36712" - "i36713" - "i36714" - "i36715" - "i36716")) + #("i37021" + "i37022" + "i37023" + "i37024" + "i37025" + "i37026")) #(ribcage () () ()) #(ribcage #(orig-x) #((top)) - #("i36708")) + #("i37018")) #(ribcage (do) ((top)) @@ -19286,7 +19222,7 @@ guile)))))) (hygiene guile)) (append - #{c 36769}# + #{c 37079}# (list (cons '#(syntax-object doloop ((top) @@ -19295,8 +19231,8 @@ e2) #((top) (top)) - #("i36735" - "i36736")) + #("i37045" + "i37046")) #(ribcage () () @@ -19304,7 +19240,7 @@ #(ribcage #(step) #((top)) - #("i36726")) + #("i37036")) #(ribcage #(var init @@ -19318,12 +19254,12 @@ (top) (top) (top)) - #("i36711" - "i36712" - "i36713" - "i36714" - "i36715" - "i36716")) + #("i37021" + "i37022" + "i37023" + "i37024" + "i37025" + "i37026")) #(ribcage () () @@ -19331,7 +19267,7 @@ #(ribcage #(orig-x) #((top)) - #("i36708")) + #("i37018")) #(ribcage (do) ((top)) @@ -19345,33 +19281,33 @@ guile)))))) (hygiene guile)) - #{step 36788}#))))))) - #{tmp 36794}#) + #{step 37098}#))))))) + #{tmp 37104}#) (syntax-violation #f "source expression failed to match any pattern" - #{e1 36768}#)))))) - #{tmp 36771}#) + #{e1 37078}#)))))) + #{tmp 37081}#) (syntax-violation #f "source expression failed to match any pattern" - #{tmp 36770}#))))) - #{tmp 36760}#) + #{tmp 37080}#))))) + #{tmp 37070}#) (syntax-violation #f "source expression failed to match any pattern" - #{orig-x 36758}#)))))) + #{orig-x 37068}#)))))) (define quasiquote (make-syntax-transformer 'quasiquote 'macro (letrec* - ((#{quasi 37086}# - (lambda (#{p 37110}# #{lev 37111}#) - (let ((#{tmp 37113}# + ((#{quasi 37396}# + (lambda (#{p 37420}# #{lev 37421}#) + (let ((#{tmp 37423}# ($sc-dispatch - #{p 37110}# + #{p 37420}# '(#(free-id #(syntax-object unquote @@ -19380,7 +19316,7 @@ #(ribcage #(p lev) #((top) (top)) - #("i36832" "i36833")) + #("i37142" "i37143")) #(ribcage (emit quasivector quasilist* @@ -19389,13 +19325,13 @@ vquasi quasi) ((top) (top) (top) (top) (top) (top) (top)) - ("i36828" - "i36826" - "i36824" - "i36822" - "i36820" - "i36818" - "i36816")) + ("i37138" + "i37136" + "i37134" + "i37132" + "i37130" + "i37128" + "i37126")) #(ribcage (quasiquote) ((top)) @@ -19407,19 +19343,19 @@ (hygiene guile)))))) (hygiene guile))) any)))) - (if #{tmp 37113}# + (if #{tmp 37423}# (@apply - (lambda (#{p 37117}#) - (if (= #{lev 37111}# 0) + (lambda (#{p 37427}#) + (if (= #{lev 37421}# 0) (list '#(syntax-object "value" ((top) - #(ribcage #(p) #((top)) #("i36836")) + #(ribcage #(p) #((top)) #("i37146")) #(ribcage () () ()) #(ribcage #(p lev) #((top) (top)) - #("i36832" "i36833")) + #("i37142" "i37143")) #(ribcage (emit quasivector quasilist* @@ -19428,13 +19364,13 @@ vquasi quasi) ((top) (top) (top) (top) (top) (top) (top)) - ("i36828" - "i36826" - "i36824" - "i36822" - "i36820" - "i36818" - "i36816")) + ("i37138" + "i37136" + "i37134" + "i37132" + "i37130" + "i37128" + "i37126")) #(ribcage (quasiquote) ((top)) @@ -19445,17 +19381,17 @@ ((top)) (hygiene guile)))))) (hygiene guile)) - #{p 37117}#) - (#{quasicons 37088}# + #{p 37427}#) + (#{quasicons 37398}# '(#(syntax-object "quote" ((top) - #(ribcage #(p) #((top)) #("i36836")) + #(ribcage #(p) #((top)) #("i37146")) #(ribcage () () ()) #(ribcage #(p lev) #((top) (top)) - #("i36832" "i36833")) + #("i37142" "i37143")) #(ribcage (emit quasivector quasilist* @@ -19464,13 +19400,13 @@ vquasi quasi) ((top) (top) (top) (top) (top) (top) (top)) - ("i36828" - "i36826" - "i36824" - "i36822" - "i36820" - "i36818" - "i36816")) + ("i37138" + "i37136" + "i37134" + "i37132" + "i37130" + "i37128" + "i37126")) #(ribcage (quasiquote) ((top)) @@ -19484,12 +19420,12 @@ #(syntax-object unquote ((top) - #(ribcage #(p) #((top)) #("i36836")) + #(ribcage #(p) #((top)) #("i37146")) #(ribcage () () ()) #(ribcage #(p lev) #((top) (top)) - #("i36832" "i36833")) + #("i37142" "i37143")) #(ribcage (emit quasivector quasilist* @@ -19498,13 +19434,13 @@ vquasi quasi) ((top) (top) (top) (top) (top) (top) (top)) - ("i36828" - "i36826" - "i36824" - "i36822" - "i36820" - "i36818" - "i36816")) + ("i37138" + "i37136" + "i37134" + "i37132" + "i37130" + "i37128" + "i37126")) #(ribcage (quasiquote) ((top)) @@ -19515,13 +19451,13 @@ ((top)) (hygiene guile)))))) (hygiene guile))) - (#{quasi 37086}# - (list #{p 37117}#) - (#{1-}# #{lev 37111}#))))) - #{tmp 37113}#) - (let ((#{tmp 37120}# + (#{quasi 37396}# + (list #{p 37427}#) + (#{1-}# #{lev 37421}#))))) + #{tmp 37423}#) + (let ((#{tmp 37430}# ($sc-dispatch - #{p 37110}# + #{p 37420}# '(#(free-id #(syntax-object quasiquote @@ -19530,7 +19466,7 @@ #(ribcage #(p lev) #((top) (top)) - #("i36832" "i36833")) + #("i37142" "i37143")) #(ribcage (emit quasivector quasilist* @@ -19539,13 +19475,13 @@ vquasi quasi) ((top) (top) (top) (top) (top) (top) (top)) - ("i36828" - "i36826" - "i36824" - "i36822" - "i36820" - "i36818" - "i36816")) + ("i37138" + "i37136" + "i37134" + "i37132" + "i37130" + "i37128" + "i37126")) #(ribcage (quasiquote) ((top)) @@ -19557,19 +19493,19 @@ (hygiene guile)))))) (hygiene guile))) any)))) - (if #{tmp 37120}# + (if #{tmp 37430}# (@apply - (lambda (#{p 37124}#) - (#{quasicons 37088}# + (lambda (#{p 37434}#) + (#{quasicons 37398}# '(#(syntax-object "quote" ((top) - #(ribcage #(p) #((top)) #("i36839")) + #(ribcage #(p) #((top)) #("i37149")) #(ribcage () () ()) #(ribcage #(p lev) #((top) (top)) - #("i36832" "i36833")) + #("i37142" "i37143")) #(ribcage (emit quasivector quasilist* @@ -19578,13 +19514,13 @@ vquasi quasi) ((top) (top) (top) (top) (top) (top) (top)) - ("i36828" - "i36826" - "i36824" - "i36822" - "i36820" - "i36818" - "i36816")) + ("i37138" + "i37136" + "i37134" + "i37132" + "i37130" + "i37128" + "i37126")) #(ribcage (quasiquote) ((top)) @@ -19598,12 +19534,12 @@ #(syntax-object quasiquote ((top) - #(ribcage #(p) #((top)) #("i36839")) + #(ribcage #(p) #((top)) #("i37149")) #(ribcage () () ()) #(ribcage #(p lev) #((top) (top)) - #("i36832" "i36833")) + #("i37142" "i37143")) #(ribcage (emit quasivector quasilist* @@ -19612,13 +19548,13 @@ vquasi quasi) ((top) (top) (top) (top) (top) (top) (top)) - ("i36828" - "i36826" - "i36824" - "i36822" - "i36820" - "i36818" - "i36816")) + ("i37138" + "i37136" + "i37134" + "i37132" + "i37130" + "i37128" + "i37126")) #(ribcage (quasiquote) ((top)) @@ -19629,18 +19565,18 @@ ((top)) (hygiene guile)))))) (hygiene guile))) - (#{quasi 37086}# - (list #{p 37124}#) - (#{1+}# #{lev 37111}#)))) - #{tmp 37120}#) - (let ((#{tmp 37127}# - ($sc-dispatch #{p 37110}# '(any . any)))) - (if #{tmp 37127}# + (#{quasi 37396}# + (list #{p 37434}#) + (#{1+}# #{lev 37421}#)))) + #{tmp 37430}#) + (let ((#{tmp 37437}# + ($sc-dispatch #{p 37420}# '(any . any)))) + (if #{tmp 37437}# (@apply - (lambda (#{p 37131}# #{q 37132}#) - (let ((#{tmp 37134}# + (lambda (#{p 37441}# #{q 37442}#) + (let ((#{tmp 37444}# ($sc-dispatch - #{p 37131}# + #{p 37441}# '(#(free-id #(syntax-object unquote @@ -19648,12 +19584,12 @@ #(ribcage #(p q) #((top) (top)) - #("i36842" "i36843")) + #("i37152" "i37153")) #(ribcage () () ()) #(ribcage #(p lev) #((top) (top)) - #("i36832" "i36833")) + #("i37142" "i37143")) #(ribcage (emit quasivector quasilist* @@ -19668,13 +19604,13 @@ (top) (top) (top)) - ("i36828" - "i36826" - "i36824" - "i36822" - "i36820" - "i36818" - "i36816")) + ("i37138" + "i37136" + "i37134" + "i37132" + "i37130" + "i37128" + "i37126")) #(ribcage (quasiquote) ((top)) @@ -19687,28 +19623,28 @@ (hygiene guile))) . each-any)))) - (if #{tmp 37134}# + (if #{tmp 37444}# (@apply - (lambda (#{p 37138}#) - (if (= #{lev 37111}# 0) - (#{quasilist* 37090}# - (map (lambda (#{tmp 36850 37177}#) + (lambda (#{p 37448}#) + (if (= #{lev 37421}# 0) + (#{quasilist* 37400}# + (map (lambda (#{tmp 37160 37487}#) (list '#(syntax-object "value" ((top) #(ribcage #(p) #((top)) - #("i36848")) + #("i37158")) #(ribcage #(p q) #((top) (top)) - #("i36842" "i36843")) + #("i37152" "i37153")) #(ribcage () () ()) #(ribcage #(p lev) #((top) (top)) - #("i36832" "i36833")) + #("i37142" "i37143")) #(ribcage (emit quasivector quasilist* @@ -19723,13 +19659,13 @@ (top) (top) (top)) - ("i36828" - "i36826" - "i36824" - "i36822" - "i36820" - "i36818" - "i36816")) + ("i37138" + "i37136" + "i37134" + "i37132" + "i37130" + "i37128" + "i37126")) #(ribcage (quasiquote) ((top)) @@ -19741,29 +19677,29 @@ (hygiene guile)))))) (hygiene guile)) - #{tmp 36850 37177}#)) - #{p 37138}#) - (#{quasi 37086}# - #{q 37132}# - #{lev 37111}#)) - (#{quasicons 37088}# - (#{quasicons 37088}# + #{tmp 37160 37487}#)) + #{p 37448}#) + (#{quasi 37396}# + #{q 37442}# + #{lev 37421}#)) + (#{quasicons 37398}# + (#{quasicons 37398}# '(#(syntax-object "quote" ((top) #(ribcage #(p) #((top)) - #("i36848")) + #("i37158")) #(ribcage #(p q) #((top) (top)) - #("i36842" "i36843")) + #("i37152" "i37153")) #(ribcage () () ()) #(ribcage #(p lev) #((top) (top)) - #("i36832" "i36833")) + #("i37142" "i37143")) #(ribcage (emit quasivector quasilist* @@ -19778,13 +19714,13 @@ (top) (top) (top)) - ("i36828" - "i36826" - "i36824" - "i36822" - "i36820" - "i36818" - "i36816")) + ("i37138" + "i37136" + "i37134" + "i37132" + "i37130" + "i37128" + "i37126")) #(ribcage (quasiquote) ((top)) @@ -19801,16 +19737,16 @@ #(ribcage #(p) #((top)) - #("i36848")) + #("i37158")) #(ribcage #(p q) #((top) (top)) - #("i36842" "i36843")) + #("i37152" "i37153")) #(ribcage () () ()) #(ribcage #(p lev) #((top) (top)) - #("i36832" "i36833")) + #("i37142" "i37143")) #(ribcage (emit quasivector quasilist* @@ -19825,13 +19761,13 @@ (top) (top) (top)) - ("i36828" - "i36826" - "i36824" - "i36822" - "i36820" - "i36818" - "i36816")) + ("i37138" + "i37136" + "i37134" + "i37132" + "i37130" + "i37128" + "i37126")) #(ribcage (quasiquote) ((top)) @@ -19842,16 +19778,16 @@ ((top)) (hygiene guile)))))) (hygiene guile))) - (#{quasi 37086}# - #{p 37138}# - (#{1-}# #{lev 37111}#))) - (#{quasi 37086}# - #{q 37132}# - #{lev 37111}#)))) - #{tmp 37134}#) - (let ((#{tmp 37182}# + (#{quasi 37396}# + #{p 37448}# + (#{1-}# #{lev 37421}#))) + (#{quasi 37396}# + #{q 37442}# + #{lev 37421}#)))) + #{tmp 37444}#) + (let ((#{tmp 37492}# ($sc-dispatch - #{p 37131}# + #{p 37441}# '(#(free-id #(syntax-object unquote-splicing @@ -19859,12 +19795,12 @@ #(ribcage #(p q) #((top) (top)) - #("i36842" "i36843")) + #("i37152" "i37153")) #(ribcage () () ()) #(ribcage #(p lev) #((top) (top)) - #("i36832" "i36833")) + #("i37142" "i37143")) #(ribcage (emit quasivector quasilist* @@ -19879,13 +19815,13 @@ (top) (top) (top)) - ("i36828" - "i36826" - "i36824" - "i36822" - "i36820" - "i36818" - "i36816")) + ("i37138" + "i37136" + "i37134" + "i37132" + "i37130" + "i37128" + "i37126")) #(ribcage (quasiquote) ((top)) @@ -19898,30 +19834,30 @@ (hygiene guile))) . each-any)))) - (if #{tmp 37182}# + (if #{tmp 37492}# (@apply - (lambda (#{p 37186}#) - (if (= #{lev 37111}# 0) - (#{quasiappend 37089}# - (map (lambda (#{tmp 36855 37189}#) + (lambda (#{p 37496}#) + (if (= #{lev 37421}# 0) + (#{quasiappend 37399}# + (map (lambda (#{tmp 37165 37499}#) (list '#(syntax-object "value" ((top) #(ribcage #(p) #((top)) - #("i36853")) + #("i37163")) #(ribcage #(p q) #((top) (top)) - #("i36842" - "i36843")) + #("i37152" + "i37153")) #(ribcage () () ()) #(ribcage #(p lev) #((top) (top)) - #("i36832" - "i36833")) + #("i37142" + "i37143")) #(ribcage (emit quasivector quasilist* @@ -19936,13 +19872,13 @@ (top) (top) (top)) - ("i36828" - "i36826" - "i36824" - "i36822" - "i36820" - "i36818" - "i36816")) + ("i37138" + "i37136" + "i37134" + "i37132" + "i37130" + "i37128" + "i37126")) #(ribcage (quasiquote) ((top)) @@ -19954,29 +19890,29 @@ (hygiene guile)))))) (hygiene guile)) - #{tmp 36855 37189}#)) - #{p 37186}#) - (#{quasi 37086}# - #{q 37132}# - #{lev 37111}#)) - (#{quasicons 37088}# - (#{quasicons 37088}# + #{tmp 37165 37499}#)) + #{p 37496}#) + (#{quasi 37396}# + #{q 37442}# + #{lev 37421}#)) + (#{quasicons 37398}# + (#{quasicons 37398}# '(#(syntax-object "quote" ((top) #(ribcage #(p) #((top)) - #("i36853")) + #("i37163")) #(ribcage #(p q) #((top) (top)) - #("i36842" "i36843")) + #("i37152" "i37153")) #(ribcage () () ()) #(ribcage #(p lev) #((top) (top)) - #("i36832" "i36833")) + #("i37142" "i37143")) #(ribcage (emit quasivector quasilist* @@ -19991,13 +19927,13 @@ (top) (top) (top)) - ("i36828" - "i36826" - "i36824" - "i36822" - "i36820" - "i36818" - "i36816")) + ("i37138" + "i37136" + "i37134" + "i37132" + "i37130" + "i37128" + "i37126")) #(ribcage (quasiquote) ((top)) @@ -20014,16 +19950,16 @@ #(ribcage #(p) #((top)) - #("i36853")) + #("i37163")) #(ribcage #(p q) #((top) (top)) - #("i36842" "i36843")) + #("i37152" "i37153")) #(ribcage () () ()) #(ribcage #(p lev) #((top) (top)) - #("i36832" "i36833")) + #("i37142" "i37143")) #(ribcage (emit quasivector quasilist* @@ -20038,13 +19974,13 @@ (top) (top) (top)) - ("i36828" - "i36826" - "i36824" - "i36822" - "i36820" - "i36818" - "i36816")) + ("i37138" + "i37136" + "i37134" + "i37132" + "i37130" + "i37128" + "i37126")) #(ribcage (quasiquote) ((top)) @@ -20055,49 +19991,49 @@ ((top)) (hygiene guile)))))) (hygiene guile))) - (#{quasi 37086}# - #{p 37186}# - (#{1-}# #{lev 37111}#))) - (#{quasi 37086}# - #{q 37132}# - #{lev 37111}#)))) - #{tmp 37182}#) - (#{quasicons 37088}# - (#{quasi 37086}# - #{p 37131}# - #{lev 37111}#) - (#{quasi 37086}# - #{q 37132}# - #{lev 37111}#))))))) - #{tmp 37127}#) - (let ((#{tmp 37203}# - ($sc-dispatch #{p 37110}# '#(vector each-any)))) - (if #{tmp 37203}# + (#{quasi 37396}# + #{p 37496}# + (#{1-}# #{lev 37421}#))) + (#{quasi 37396}# + #{q 37442}# + #{lev 37421}#)))) + #{tmp 37492}#) + (#{quasicons 37398}# + (#{quasi 37396}# + #{p 37441}# + #{lev 37421}#) + (#{quasi 37396}# + #{q 37442}# + #{lev 37421}#))))))) + #{tmp 37437}#) + (let ((#{tmp 37513}# + ($sc-dispatch #{p 37420}# '#(vector each-any)))) + (if #{tmp 37513}# (@apply - (lambda (#{x 37207}#) - (let ((#{x 37210}# - (#{vquasi 37087}# - #{x 37207}# - #{lev 37111}#))) - (let ((#{tmp 37212}# + (lambda (#{x 37517}#) + (let ((#{x 37520}# + (#{vquasi 37397}# + #{x 37517}# + #{lev 37421}#))) + (let ((#{tmp 37522}# ($sc-dispatch - #{x 37210}# + #{x 37520}# '(#(atom "quote") each-any)))) - (if #{tmp 37212}# + (if #{tmp 37522}# (@apply - (lambda (#{x 37216}#) + (lambda (#{x 37526}#) (list '#(syntax-object "quote" ((top) #(ribcage #(x) #((top)) - #("i36960")) + #("i37270")) #(ribcage () () ()) #(ribcage #(x) #((top)) - #("i36957")) + #("i37267")) #(ribcage (emit quasivector quasilist* @@ -20112,13 +20048,13 @@ (top) (top) (top)) - ("i36828" - "i36826" - "i36824" - "i36822" - "i36820" - "i36818" - "i36816")) + ("i37138" + "i37136" + "i37134" + "i37132" + "i37130" + "i37128" + "i37126")) #(ribcage (quasiquote) ((top)) @@ -20129,28 +20065,28 @@ ((top)) (hygiene guile)))))) (hygiene guile)) - (list->vector #{x 37216}#))) - #{tmp 37212}#) + (list->vector #{x 37526}#))) + #{tmp 37522}#) (letrec* - ((#{f 37218}# - (lambda (#{y 37230}# #{k 37231}#) - (let ((#{tmp 37233}# + ((#{f 37528}# + (lambda (#{y 37540}# #{k 37541}#) + (let ((#{tmp 37543}# ($sc-dispatch - #{y 37230}# + #{y 37540}# '(#(atom "quote") each-any)))) - (if #{tmp 37233}# + (if #{tmp 37543}# (@apply - (lambda (#{y 37236}#) - (#{k 37231}# - (map (lambda (#{tmp 36985 37237}#) + (lambda (#{y 37546}#) + (#{k 37541}# + (map (lambda (#{tmp 37295 37547}#) (list '#(syntax-object "quote" ((top) #(ribcage #(y) #((top)) - #("i36983")) + #("i37293")) #(ribcage () () @@ -20162,13 +20098,13 @@ #((top) (top) (top)) - #("i36965" - "i36966" - "i36967")) + #("i37275" + "i37276" + "i37277")) #(ribcage #(_) #((top)) - #("i36963")) + #("i37273")) #(ribcage () () @@ -20176,7 +20112,7 @@ #(ribcage #(x) #((top)) - #("i36957")) + #("i37267")) #(ribcage (emit quasivector quasilist* @@ -20191,13 +20127,13 @@ (top) (top) (top)) - ("i36828" - "i36826" - "i36824" - "i36822" - "i36820" - "i36818" - "i36816")) + ("i37138" + "i37136" + "i37134" + "i37132" + "i37130" + "i37128" + "i37126")) #(ribcage (quasiquote) ((top)) @@ -20211,42 +20147,42 @@ guile)))))) (hygiene guile)) - #{tmp 36985 37237}#)) - #{y 37236}#))) - #{tmp 37233}#) - (let ((#{tmp 37238}# + #{tmp 37295 37547}#)) + #{y 37546}#))) + #{tmp 37543}#) + (let ((#{tmp 37548}# ($sc-dispatch - #{y 37230}# + #{y 37540}# '(#(atom "list") . each-any)))) - (if #{tmp 37238}# + (if #{tmp 37548}# (@apply - (lambda (#{y 37241}#) - (#{k 37231}# - #{y 37241}#)) - #{tmp 37238}#) - (let ((#{tmp 37242}# + (lambda (#{y 37551}#) + (#{k 37541}# + #{y 37551}#)) + #{tmp 37548}#) + (let ((#{tmp 37552}# ($sc-dispatch - #{y 37230}# + #{y 37540}# '(#(atom "list*") . #(each+ any (any) ()))))) - (if #{tmp 37242}# + (if #{tmp 37552}# (@apply - (lambda (#{y 37245}# - #{z 37246}#) - (#{f 37218}# - #{z 37246}# - (lambda (#{ls 37247}#) - (#{k 37231}# + (lambda (#{y 37555}# + #{z 37556}#) + (#{f 37528}# + #{z 37556}# + (lambda (#{ls 37557}#) + (#{k 37541}# (append - #{y 37245}# - #{ls 37247}#))))) - #{tmp 37242}#) + #{y 37555}# + #{ls 37557}#))))) + #{tmp 37552}#) (list '#(syntax-object "list->vector" ((top) @@ -20255,14 +20191,14 @@ () ()) #(ribcage - #(#{ g37000}#) - #((m37001 + #(#{ g37310}#) + #((m37311 top)) - #("i37004")) + #("i37314")) #(ribcage #(else) #((top)) - #("i36998")) + #("i37308")) #(ribcage () () @@ -20272,13 +20208,13 @@ #((top) (top) (top)) - #("i36965" - "i36966" - "i36967")) + #("i37275" + "i37276" + "i37277")) #(ribcage #(_) #((top)) - #("i36963")) + #("i37273")) #(ribcage () () @@ -20286,7 +20222,7 @@ #(ribcage #(x) #((top)) - #("i36957")) + #("i37267")) #(ribcage (emit quasivector quasilist* @@ -20301,13 +20237,13 @@ (top) (top) (top)) - ("i36828" - "i36826" - "i36824" - "i36822" - "i36820" - "i36818" - "i36816")) + ("i37138" + "i37136" + "i37134" + "i37132" + "i37130" + "i37128" + "i37126")) #(ribcage (quasiquote) ((top)) @@ -20321,17 +20257,17 @@ guile)))))) (hygiene guile)) - #{x 37210}#)))))))))) - (#{f 37218}# - #{x 37210}# - (lambda (#{ls 37220}#) - (let ((#{tmp 37222}# + #{x 37520}#)))))))))) + (#{f 37528}# + #{x 37520}# + (lambda (#{ls 37530}#) + (let ((#{tmp 37532}# ($sc-dispatch - #{ls 37220}# + #{ls 37530}# 'each-any))) - (if #{tmp 37222}# + (if #{tmp 37532}# (@apply - (lambda (#{ g36973 37225}#) + (lambda (#{ g37283 37535}#) (cons '#(syntax-object "vector" ((top) @@ -20340,9 +20276,9 @@ () ()) #(ribcage - #(#{ g36973}#) - #((m36974 top)) - #("i36978")) + #(#{ g37283}#) + #((m37284 top)) + #("i37288")) #(ribcage () () @@ -20358,11 +20294,11 @@ #(ribcage #(ls) #((top)) - #("i36972")) + #("i37282")) #(ribcage #(_) #((top)) - #("i36963")) + #("i37273")) #(ribcage () () @@ -20370,7 +20306,7 @@ #(ribcage #(x) #((top)) - #("i36957")) + #("i37267")) #(ribcage (emit quasivector quasilist* @@ -20385,13 +20321,13 @@ (top) (top) (top)) - ("i36828" - "i36826" - "i36824" - "i36822" - "i36820" - "i36818" - "i36816")) + ("i37138" + "i37136" + "i37134" + "i37132" + "i37130" + "i37128" + "i37126")) #(ribcage (quasiquote) ((top)) @@ -20404,22 +20340,22 @@ (hygiene guile)))))) (hygiene guile)) - #{ g36973 37225}#)) - #{tmp 37222}#) + #{ g37283 37535}#)) + #{tmp 37532}#) (syntax-violation #f "source expression failed to match any pattern" - #{ls 37220}#)))))))))) - #{tmp 37203}#) + #{ls 37530}#)))))))))) + #{tmp 37513}#) (list '#(syntax-object "quote" ((top) - #(ribcage #(p) #((top)) #("i36863")) + #(ribcage #(p) #((top)) #("i37173")) #(ribcage () () ()) #(ribcage #(p lev) #((top) (top)) - #("i36832" "i36833")) + #("i37142" "i37143")) #(ribcage (emit quasivector quasilist* @@ -20434,13 +20370,13 @@ (top) (top) (top)) - ("i36828" - "i36826" - "i36824" - "i36822" - "i36820" - "i36818" - "i36816")) + ("i37138" + "i37136" + "i37134" + "i37132" + "i37130" + "i37128" + "i37126")) #(ribcage (quasiquote) ((top)) @@ -20451,17 +20387,17 @@ ((top)) (hygiene guile)))))) (hygiene guile)) - #{p 37110}#))))))))))) - (#{vquasi 37087}# - (lambda (#{p 37275}# #{lev 37276}#) - (let ((#{tmp 37278}# - ($sc-dispatch #{p 37275}# '(any . any)))) - (if #{tmp 37278}# + #{p 37420}#))))))))))) + (#{vquasi 37397}# + (lambda (#{p 37585}# #{lev 37586}#) + (let ((#{tmp 37588}# + ($sc-dispatch #{p 37585}# '(any . any)))) + (if #{tmp 37588}# (@apply - (lambda (#{p 37282}# #{q 37283}#) - (let ((#{tmp 37285}# + (lambda (#{p 37592}# #{q 37593}#) + (let ((#{tmp 37595}# ($sc-dispatch - #{p 37282}# + #{p 37592}# '(#(free-id #(syntax-object unquote @@ -20469,12 +20405,12 @@ #(ribcage #(p q) #((top) (top)) - #("i36871" "i36872")) + #("i37181" "i37182")) #(ribcage () () ()) #(ribcage #(p lev) #((top) (top)) - #("i36867" "i36868")) + #("i37177" "i37178")) #(ribcage (emit quasivector quasilist* @@ -20489,13 +20425,13 @@ (top) (top) (top)) - ("i36828" - "i36826" - "i36824" - "i36822" - "i36820" - "i36818" - "i36816")) + ("i37138" + "i37136" + "i37134" + "i37132" + "i37130" + "i37128" + "i37126")) #(ribcage (quasiquote) ((top)) @@ -20508,28 +20444,28 @@ (hygiene guile))) . each-any)))) - (if #{tmp 37285}# + (if #{tmp 37595}# (@apply - (lambda (#{p 37289}#) - (if (= #{lev 37276}# 0) - (#{quasilist* 37090}# - (map (lambda (#{tmp 36879 37328}#) + (lambda (#{p 37599}#) + (if (= #{lev 37586}# 0) + (#{quasilist* 37400}# + (map (lambda (#{tmp 37189 37638}#) (list '#(syntax-object "value" ((top) #(ribcage #(p) #((top)) - #("i36877")) + #("i37187")) #(ribcage #(p q) #((top) (top)) - #("i36871" "i36872")) + #("i37181" "i37182")) #(ribcage () () ()) #(ribcage #(p lev) #((top) (top)) - #("i36867" "i36868")) + #("i37177" "i37178")) #(ribcage (emit quasivector quasilist* @@ -20544,13 +20480,13 @@ (top) (top) (top)) - ("i36828" - "i36826" - "i36824" - "i36822" - "i36820" - "i36818" - "i36816")) + ("i37138" + "i37136" + "i37134" + "i37132" + "i37130" + "i37128" + "i37126")) #(ribcage (quasiquote) ((top)) @@ -20561,24 +20497,24 @@ ((top)) (hygiene guile)))))) (hygiene guile)) - #{tmp 36879 37328}#)) - #{p 37289}#) - (#{vquasi 37087}# #{q 37283}# #{lev 37276}#)) - (#{quasicons 37088}# - (#{quasicons 37088}# + #{tmp 37189 37638}#)) + #{p 37599}#) + (#{vquasi 37397}# #{q 37593}# #{lev 37586}#)) + (#{quasicons 37398}# + (#{quasicons 37398}# '(#(syntax-object "quote" ((top) - #(ribcage #(p) #((top)) #("i36877")) + #(ribcage #(p) #((top)) #("i37187")) #(ribcage #(p q) #((top) (top)) - #("i36871" "i36872")) + #("i37181" "i37182")) #(ribcage () () ()) #(ribcage #(p lev) #((top) (top)) - #("i36867" "i36868")) + #("i37177" "i37178")) #(ribcage (emit quasivector quasilist* @@ -20593,13 +20529,13 @@ (top) (top) (top)) - ("i36828" - "i36826" - "i36824" - "i36822" - "i36820" - "i36818" - "i36816")) + ("i37138" + "i37136" + "i37134" + "i37132" + "i37130" + "i37128" + "i37126")) #(ribcage (quasiquote) ((top)) @@ -20613,16 +20549,16 @@ #(syntax-object unquote ((top) - #(ribcage #(p) #((top)) #("i36877")) + #(ribcage #(p) #((top)) #("i37187")) #(ribcage #(p q) #((top) (top)) - #("i36871" "i36872")) + #("i37181" "i37182")) #(ribcage () () ()) #(ribcage #(p lev) #((top) (top)) - #("i36867" "i36868")) + #("i37177" "i37178")) #(ribcage (emit quasivector quasilist* @@ -20637,13 +20573,13 @@ (top) (top) (top)) - ("i36828" - "i36826" - "i36824" - "i36822" - "i36820" - "i36818" - "i36816")) + ("i37138" + "i37136" + "i37134" + "i37132" + "i37130" + "i37128" + "i37126")) #(ribcage (quasiquote) ((top)) @@ -20654,14 +20590,14 @@ ((top)) (hygiene guile)))))) (hygiene guile))) - (#{quasi 37086}# - #{p 37289}# - (#{1-}# #{lev 37276}#))) - (#{vquasi 37087}# #{q 37283}# #{lev 37276}#)))) - #{tmp 37285}#) - (let ((#{tmp 37335}# + (#{quasi 37396}# + #{p 37599}# + (#{1-}# #{lev 37586}#))) + (#{vquasi 37397}# #{q 37593}# #{lev 37586}#)))) + #{tmp 37595}#) + (let ((#{tmp 37645}# ($sc-dispatch - #{p 37282}# + #{p 37592}# '(#(free-id #(syntax-object unquote-splicing @@ -20669,12 +20605,12 @@ #(ribcage #(p q) #((top) (top)) - #("i36871" "i36872")) + #("i37181" "i37182")) #(ribcage () () ()) #(ribcage #(p lev) #((top) (top)) - #("i36867" "i36868")) + #("i37177" "i37178")) #(ribcage (emit quasivector quasilist* @@ -20689,13 +20625,13 @@ (top) (top) (top)) - ("i36828" - "i36826" - "i36824" - "i36822" - "i36820" - "i36818" - "i36816")) + ("i37138" + "i37136" + "i37134" + "i37132" + "i37130" + "i37128" + "i37126")) #(ribcage (quasiquote) ((top)) @@ -20708,28 +20644,28 @@ (hygiene guile))) . each-any)))) - (if #{tmp 37335}# + (if #{tmp 37645}# (@apply - (lambda (#{p 37339}#) - (if (= #{lev 37276}# 0) - (#{quasiappend 37089}# - (map (lambda (#{tmp 36884 37342}#) + (lambda (#{p 37649}#) + (if (= #{lev 37586}# 0) + (#{quasiappend 37399}# + (map (lambda (#{tmp 37194 37652}#) (list '#(syntax-object "value" ((top) #(ribcage #(p) #((top)) - #("i36882")) + #("i37192")) #(ribcage #(p q) #((top) (top)) - #("i36871" "i36872")) + #("i37181" "i37182")) #(ribcage () () ()) #(ribcage #(p lev) #((top) (top)) - #("i36867" "i36868")) + #("i37177" "i37178")) #(ribcage (emit quasivector quasilist* @@ -20744,13 +20680,13 @@ (top) (top) (top)) - ("i36828" - "i36826" - "i36824" - "i36822" - "i36820" - "i36818" - "i36816")) + ("i37138" + "i37136" + "i37134" + "i37132" + "i37130" + "i37128" + "i37126")) #(ribcage (quasiquote) ((top)) @@ -20761,26 +20697,26 @@ ((top)) (hygiene guile)))))) (hygiene guile)) - #{tmp 36884 37342}#)) - #{p 37339}#) - (#{vquasi 37087}# - #{q 37283}# - #{lev 37276}#)) - (#{quasicons 37088}# - (#{quasicons 37088}# + #{tmp 37194 37652}#)) + #{p 37649}#) + (#{vquasi 37397}# + #{q 37593}# + #{lev 37586}#)) + (#{quasicons 37398}# + (#{quasicons 37398}# '(#(syntax-object "quote" ((top) - #(ribcage #(p) #((top)) #("i36882")) + #(ribcage #(p) #((top)) #("i37192")) #(ribcage #(p q) #((top) (top)) - #("i36871" "i36872")) + #("i37181" "i37182")) #(ribcage () () ()) #(ribcage #(p lev) #((top) (top)) - #("i36867" "i36868")) + #("i37177" "i37178")) #(ribcage (emit quasivector quasilist* @@ -20795,13 +20731,13 @@ (top) (top) (top)) - ("i36828" - "i36826" - "i36824" - "i36822" - "i36820" - "i36818" - "i36816")) + ("i37138" + "i37136" + "i37134" + "i37132" + "i37130" + "i37128" + "i37126")) #(ribcage (quasiquote) ((top)) @@ -20815,16 +20751,16 @@ #(syntax-object unquote-splicing ((top) - #(ribcage #(p) #((top)) #("i36882")) + #(ribcage #(p) #((top)) #("i37192")) #(ribcage #(p q) #((top) (top)) - #("i36871" "i36872")) + #("i37181" "i37182")) #(ribcage () () ()) #(ribcage #(p lev) #((top) (top)) - #("i36867" "i36868")) + #("i37177" "i37178")) #(ribcage (emit quasivector quasilist* @@ -20839,13 +20775,13 @@ (top) (top) (top)) - ("i36828" - "i36826" - "i36824" - "i36822" - "i36820" - "i36818" - "i36816")) + ("i37138" + "i37136" + "i37134" + "i37132" + "i37130" + "i37128" + "i37126")) #(ribcage (quasiquote) ((top)) @@ -20856,19 +20792,19 @@ ((top)) (hygiene guile)))))) (hygiene guile))) - (#{quasi 37086}# - #{p 37339}# - (#{1-}# #{lev 37276}#))) - (#{vquasi 37087}# - #{q 37283}# - #{lev 37276}#)))) - #{tmp 37335}#) - (#{quasicons 37088}# - (#{quasi 37086}# #{p 37282}# #{lev 37276}#) - (#{vquasi 37087}# #{q 37283}# #{lev 37276}#))))))) - #{tmp 37278}#) - (let ((#{tmp 37360}# ($sc-dispatch #{p 37275}# '()))) - (if #{tmp 37360}# + (#{quasi 37396}# + #{p 37649}# + (#{1-}# #{lev 37586}#))) + (#{vquasi 37397}# + #{q 37593}# + #{lev 37586}#)))) + #{tmp 37645}#) + (#{quasicons 37398}# + (#{quasi 37396}# #{p 37592}# #{lev 37586}#) + (#{vquasi 37397}# #{q 37593}# #{lev 37586}#))))))) + #{tmp 37588}#) + (let ((#{tmp 37670}# ($sc-dispatch #{p 37585}# '()))) + (if #{tmp 37670}# (@apply (lambda () '(#(syntax-object @@ -20878,7 +20814,7 @@ #(ribcage #(p lev) #((top) (top)) - #("i36867" "i36868")) + #("i37177" "i37178")) #(ribcage (emit quasivector quasilist* @@ -20887,13 +20823,13 @@ vquasi quasi) ((top) (top) (top) (top) (top) (top) (top)) - ("i36828" - "i36826" - "i36824" - "i36822" - "i36820" - "i36818" - "i36816")) + ("i37138" + "i37136" + "i37134" + "i37132" + "i37130" + "i37128" + "i37126")) #(ribcage (quasiquote) ((top)) @@ -20905,55 +20841,55 @@ (hygiene guile)))))) (hygiene guile)) ())) - #{tmp 37360}#) + #{tmp 37670}#) (syntax-violation #f "source expression failed to match any pattern" - #{p 37275}#))))))) - (#{quasicons 37088}# - (lambda (#{x 37373}# #{y 37374}#) - (let ((#{tmp 37375}# (list #{x 37373}# #{y 37374}#))) - (let ((#{tmp 37376}# - ($sc-dispatch #{tmp 37375}# '(any any)))) - (if #{tmp 37376}# + #{p 37585}#))))))) + (#{quasicons 37398}# + (lambda (#{x 37683}# #{y 37684}#) + (let ((#{tmp 37685}# (list #{x 37683}# #{y 37684}#))) + (let ((#{tmp 37686}# + ($sc-dispatch #{tmp 37685}# '(any any)))) + (if #{tmp 37686}# (@apply - (lambda (#{x 37378}# #{y 37379}#) - (let ((#{tmp 37381}# + (lambda (#{x 37688}# #{y 37689}#) + (let ((#{tmp 37691}# ($sc-dispatch - #{y 37379}# + #{y 37689}# '(#(atom "quote") any)))) - (if #{tmp 37381}# + (if #{tmp 37691}# (@apply - (lambda (#{dy 37385}#) - (let ((#{tmp 37387}# + (lambda (#{dy 37695}#) + (let ((#{tmp 37697}# ($sc-dispatch - #{x 37378}# + #{x 37688}# '(#(atom "quote") any)))) - (if #{tmp 37387}# + (if #{tmp 37697}# (@apply - (lambda (#{dx 37391}#) + (lambda (#{dx 37701}#) (list '#(syntax-object "quote" ((top) #(ribcage #(dx) #((top)) - #("i36906")) + #("i37216")) #(ribcage #(dy) #((top)) - #("i36902")) + #("i37212")) #(ribcage () () ()) #(ribcage #(x y) #((top) (top)) - #("i36896" "i36897")) + #("i37206" "i37207")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(x y) #((top) (top)) - #("i36891" "i36892")) + #("i37201" "i37202")) #(ribcage (emit quasivector quasilist* @@ -20968,13 +20904,13 @@ (top) (top) (top)) - ("i36828" - "i36826" - "i36824" - "i36822" - "i36820" - "i36818" - "i36816")) + ("i37138" + "i37136" + "i37134" + "i37132" + "i37130" + "i37128" + "i37126")) #(ribcage (quasiquote) ((top)) @@ -20985,31 +20921,31 @@ ((top)) (hygiene guile)))))) (hygiene guile)) - (cons #{dx 37391}# #{dy 37385}#))) - #{tmp 37387}#) - (if (null? #{dy 37385}#) + (cons #{dx 37701}# #{dy 37695}#))) + #{tmp 37697}#) + (if (null? #{dy 37695}#) (list '#(syntax-object "list" ((top) #(ribcage #(_) #((top)) - #("i36908")) + #("i37218")) #(ribcage #(dy) #((top)) - #("i36902")) + #("i37212")) #(ribcage () () ()) #(ribcage #(x y) #((top) (top)) - #("i36896" "i36897")) + #("i37206" "i37207")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(x y) #((top) (top)) - #("i36891" "i36892")) + #("i37201" "i37202")) #(ribcage (emit quasivector quasilist* @@ -21024,13 +20960,13 @@ (top) (top) (top)) - ("i36828" - "i36826" - "i36824" - "i36822" - "i36820" - "i36818" - "i36816")) + ("i37138" + "i37136" + "i37134" + "i37132" + "i37130" + "i37128" + "i37126")) #(ribcage (quasiquote) ((top)) @@ -21041,29 +20977,29 @@ ((top)) (hygiene guile)))))) (hygiene guile)) - #{x 37378}#) + #{x 37688}#) (list '#(syntax-object "list*" ((top) #(ribcage #(_) #((top)) - #("i36908")) + #("i37218")) #(ribcage #(dy) #((top)) - #("i36902")) + #("i37212")) #(ribcage () () ()) #(ribcage #(x y) #((top) (top)) - #("i36896" "i36897")) + #("i37206" "i37207")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(x y) #((top) (top)) - #("i36891" "i36892")) + #("i37201" "i37202")) #(ribcage (emit quasivector quasilist* @@ -21078,13 +21014,13 @@ (top) (top) (top)) - ("i36828" - "i36826" - "i36824" - "i36822" - "i36820" - "i36818" - "i36816")) + ("i37138" + "i37136" + "i37134" + "i37132" + "i37130" + "i37128" + "i37126")) #(ribcage (quasiquote) ((top)) @@ -21095,34 +21031,34 @@ ((top)) (hygiene guile)))))) (hygiene guile)) - #{x 37378}# - #{y 37379}#))))) - #{tmp 37381}#) - (let ((#{tmp 37396}# + #{x 37688}# + #{y 37689}#))))) + #{tmp 37691}#) + (let ((#{tmp 37706}# ($sc-dispatch - #{y 37379}# + #{y 37689}# '(#(atom "list") . any)))) - (if #{tmp 37396}# + (if #{tmp 37706}# (@apply - (lambda (#{stuff 37400}#) + (lambda (#{stuff 37710}#) (cons '#(syntax-object "list" ((top) #(ribcage #(stuff) #((top)) - #("i36911")) + #("i37221")) #(ribcage () () ()) #(ribcage #(x y) #((top) (top)) - #("i36896" "i36897")) + #("i37206" "i37207")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(x y) #((top) (top)) - #("i36891" "i36892")) + #("i37201" "i37202")) #(ribcage (emit quasivector quasilist* @@ -21137,13 +21073,13 @@ (top) (top) (top)) - ("i36828" - "i36826" - "i36824" - "i36822" - "i36820" - "i36818" - "i36816")) + ("i37138" + "i37136" + "i37134" + "i37132" + "i37130" + "i37128" + "i37126")) #(ribcage (quasiquote) ((top)) @@ -21154,33 +21090,33 @@ ((top)) (hygiene guile)))))) (hygiene guile)) - (cons #{x 37378}# #{stuff 37400}#))) - #{tmp 37396}#) - (let ((#{tmp 37401}# + (cons #{x 37688}# #{stuff 37710}#))) + #{tmp 37706}#) + (let ((#{tmp 37711}# ($sc-dispatch - #{y 37379}# + #{y 37689}# '(#(atom "list*") . any)))) - (if #{tmp 37401}# + (if #{tmp 37711}# (@apply - (lambda (#{stuff 37405}#) + (lambda (#{stuff 37715}#) (cons '#(syntax-object "list*" ((top) #(ribcage #(stuff) #((top)) - #("i36914")) + #("i37224")) #(ribcage () () ()) #(ribcage #(x y) #((top) (top)) - #("i36896" "i36897")) + #("i37206" "i37207")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(x y) #((top) (top)) - #("i36891" "i36892")) + #("i37201" "i37202")) #(ribcage (emit quasivector quasilist* @@ -21195,13 +21131,13 @@ (top) (top) (top)) - ("i36828" - "i36826" - "i36824" - "i36822" - "i36820" - "i36818" - "i36816")) + ("i37138" + "i37136" + "i37134" + "i37132" + "i37130" + "i37128" + "i37126")) #(ribcage (quasiquote) ((top)) @@ -21212,23 +21148,23 @@ ((top)) (hygiene guile)))))) (hygiene guile)) - (cons #{x 37378}# #{stuff 37405}#))) - #{tmp 37401}#) + (cons #{x 37688}# #{stuff 37715}#))) + #{tmp 37711}#) (list '#(syntax-object "list*" ((top) - #(ribcage #(_) #((top)) #("i36916")) + #(ribcage #(_) #((top)) #("i37226")) #(ribcage () () ()) #(ribcage #(x y) #((top) (top)) - #("i36896" "i36897")) + #("i37206" "i37207")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(x y) #((top) (top)) - #("i36891" "i36892")) + #("i37201" "i37202")) #(ribcage (emit quasivector quasilist* @@ -21243,13 +21179,13 @@ (top) (top) (top)) - ("i36828" - "i36826" - "i36824" - "i36822" - "i36820" - "i36818" - "i36816")) + ("i37138" + "i37136" + "i37134" + "i37132" + "i37130" + "i37128" + "i37126")) #(ribcage (quasiquote) ((top)) @@ -21260,21 +21196,21 @@ ((top)) (hygiene guile)))))) (hygiene guile)) - #{x 37378}# - #{y 37379}#)))))))) - #{tmp 37376}#) + #{x 37688}# + #{y 37689}#)))))))) + #{tmp 37686}#) (syntax-violation #f "source expression failed to match any pattern" - #{tmp 37375}#)))))) - (#{quasiappend 37089}# - (lambda (#{x 37416}# #{y 37417}#) - (let ((#{tmp 37419}# - ($sc-dispatch #{y 37417}# '(#(atom "quote") ())))) - (if #{tmp 37419}# + #{tmp 37685}#)))))) + (#{quasiappend 37399}# + (lambda (#{x 37726}# #{y 37727}#) + (let ((#{tmp 37729}# + ($sc-dispatch #{y 37727}# '(#(atom "quote") ())))) + (if #{tmp 37729}# (@apply (lambda () - (if (null? #{x 37416}#) + (if (null? #{x 37726}#) '(#(syntax-object "quote" ((top) @@ -21282,7 +21218,7 @@ #(ribcage #(x y) #((top) (top)) - #("i36920" "i36921")) + #("i37230" "i37231")) #(ribcage (emit quasivector quasilist* @@ -21291,13 +21227,13 @@ vquasi quasi) ((top) (top) (top) (top) (top) (top) (top)) - ("i36828" - "i36826" - "i36824" - "i36822" - "i36820" - "i36818" - "i36816")) + ("i37138" + "i37136" + "i37134" + "i37132" + "i37130" + "i37128" + "i37126")) #(ribcage (quasiquote) ((top)) @@ -21309,23 +21245,23 @@ (hygiene guile)))))) (hygiene guile)) ()) - (if (null? (cdr #{x 37416}#)) - (car #{x 37416}#) - (let ((#{tmp 37424}# - ($sc-dispatch #{x 37416}# 'each-any))) - (if #{tmp 37424}# + (if (null? (cdr #{x 37726}#)) + (car #{x 37726}#) + (let ((#{tmp 37734}# + ($sc-dispatch #{x 37726}# 'each-any))) + (if #{tmp 37734}# (@apply - (lambda (#{p 37428}#) + (lambda (#{p 37738}#) (cons '#(syntax-object "append" ((top) #(ribcage () () ()) - #(ribcage #(p) #((top)) #("i36932")) + #(ribcage #(p) #((top)) #("i37242")) #(ribcage () () ()) #(ribcage #(x y) #((top) (top)) - #("i36920" "i36921")) + #("i37230" "i37231")) #(ribcage (emit quasivector quasilist* @@ -21340,13 +21276,13 @@ (top) (top) (top)) - ("i36828" - "i36826" - "i36824" - "i36822" - "i36820" - "i36818" - "i36816")) + ("i37138" + "i37136" + "i37134" + "i37132" + "i37130" + "i37128" + "i37126")) #(ribcage (quasiquote) ((top)) @@ -21357,21 +21293,21 @@ ((top)) (hygiene guile)))))) (hygiene guile)) - #{p 37428}#)) - #{tmp 37424}#) + #{p 37738}#)) + #{tmp 37734}#) (syntax-violation #f "source expression failed to match any pattern" - #{x 37416}#)))))) - #{tmp 37419}#) - (if (null? #{x 37416}#) - #{y 37417}# - (let ((#{tmp 37436}# (list #{x 37416}# #{y 37417}#))) - (let ((#{tmp 37437}# - ($sc-dispatch #{tmp 37436}# '(each-any any)))) - (if #{tmp 37437}# + #{x 37726}#)))))) + #{tmp 37729}#) + (if (null? #{x 37726}#) + #{y 37727}# + (let ((#{tmp 37746}# (list #{x 37726}# #{y 37727}#))) + (let ((#{tmp 37747}# + ($sc-dispatch #{tmp 37746}# '(each-any any)))) + (if #{tmp 37747}# (@apply - (lambda (#{p 37439}# #{y 37440}#) + (lambda (#{p 37749}# #{y 37750}#) (cons '#(syntax-object "append" ((top) @@ -21379,13 +21315,13 @@ #(ribcage #(p y) #((top) (top)) - #("i36943" "i36944")) - #(ribcage #(_) #((top)) #("i36935")) + #("i37253" "i37254")) + #(ribcage #(_) #((top)) #("i37245")) #(ribcage () () ()) #(ribcage #(x y) #((top) (top)) - #("i36920" "i36921")) + #("i37230" "i37231")) #(ribcage (emit quasivector quasilist* @@ -21400,13 +21336,13 @@ (top) (top) (top)) - ("i36828" - "i36826" - "i36824" - "i36822" - "i36820" - "i36818" - "i36816")) + ("i37138" + "i37136" + "i37134" + "i37132" + "i37130" + "i37128" + "i37126")) #(ribcage (quasiquote) ((top)) @@ -21417,36 +21353,36 @@ ((top)) (hygiene guile)))))) (hygiene guile)) - (append #{p 37439}# (list #{y 37440}#)))) - #{tmp 37437}#) + (append #{p 37749}# (list #{y 37750}#)))) + #{tmp 37747}#) (syntax-violation #f "source expression failed to match any pattern" - #{tmp 37436}#))))))))) - (#{quasilist* 37090}# - (lambda (#{x 37444}# #{y 37445}#) + #{tmp 37746}#))))))))) + (#{quasilist* 37400}# + (lambda (#{x 37754}# #{y 37755}#) (letrec* - ((#{f 37446}# - (lambda (#{x 37550}#) - (if (null? #{x 37550}#) - #{y 37445}# - (#{quasicons 37088}# - (car #{x 37550}#) - (#{f 37446}# (cdr #{x 37550}#))))))) - (#{f 37446}# #{x 37444}#)))) - (#{emit 37092}# - (lambda (#{x 37553}#) - (let ((#{tmp 37555}# - ($sc-dispatch #{x 37553}# '(#(atom "quote") any)))) - (if #{tmp 37555}# + ((#{f 37756}# + (lambda (#{x 37860}#) + (if (null? #{x 37860}#) + #{y 37755}# + (#{quasicons 37398}# + (car #{x 37860}#) + (#{f 37756}# (cdr #{x 37860}#))))))) + (#{f 37756}# #{x 37754}#)))) + (#{emit 37402}# + (lambda (#{x 37863}#) + (let ((#{tmp 37865}# + ($sc-dispatch #{x 37863}# '(#(atom "quote") any)))) + (if #{tmp 37865}# (@apply - (lambda (#{x 37559}#) + (lambda (#{x 37869}#) (list '#(syntax-object quote ((top) - #(ribcage #(x) #((top)) #("i37010")) + #(ribcage #(x) #((top)) #("i37320")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i37007")) + #(ribcage #(x) #((top)) #("i37317")) #(ribcage (emit quasivector quasilist* @@ -21455,13 +21391,13 @@ vquasi quasi) ((top) (top) (top) (top) (top) (top) (top)) - ("i36828" - "i36826" - "i36824" - "i36822" - "i36820" - "i36818" - "i36816")) + ("i37138" + "i37136" + "i37134" + "i37132" + "i37130" + "i37128" + "i37126")) #(ribcage (quasiquote) ((top)) @@ -21472,32 +21408,32 @@ ((top)) (hygiene guile)))))) (hygiene guile)) - #{x 37559}#)) - #{tmp 37555}#) - (let ((#{tmp 37560}# + #{x 37869}#)) + #{tmp 37865}#) + (let ((#{tmp 37870}# ($sc-dispatch - #{x 37553}# + #{x 37863}# '(#(atom "list") . each-any)))) - (if #{tmp 37560}# + (if #{tmp 37870}# (@apply - (lambda (#{x 37564}#) - (let ((#{tmp 37565}# (map #{emit 37092}# #{x 37564}#))) - (let ((#{tmp 37566}# - ($sc-dispatch #{tmp 37565}# 'each-any))) - (if #{tmp 37566}# + (lambda (#{x 37874}#) + (let ((#{tmp 37875}# (map #{emit 37402}# #{x 37874}#))) + (let ((#{tmp 37876}# + ($sc-dispatch #{tmp 37875}# 'each-any))) + (if #{tmp 37876}# (@apply - (lambda (#{ g37015 37568}#) + (lambda (#{ g37325 37878}#) (cons '#(syntax-object list ((top) #(ribcage () () ()) #(ribcage - #(#{ g37015}#) - #((m37016 top)) - #("i37020")) - #(ribcage #(x) #((top)) #("i37013")) + #(#{ g37325}#) + #((m37326 top)) + #("i37330")) + #(ribcage #(x) #((top)) #("i37323")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i37007")) + #(ribcage #(x) #((top)) #("i37317")) #(ribcage (emit quasivector quasilist* @@ -21512,13 +21448,13 @@ (top) (top) (top)) - ("i36828" - "i36826" - "i36824" - "i36822" - "i36820" - "i36818" - "i36816")) + ("i37138" + "i37136" + "i37134" + "i37132" + "i37130" + "i37128" + "i37126")) #(ribcage (quasiquote) ((top)) @@ -21529,62 +21465,62 @@ ((top)) (hygiene guile)))))) (hygiene guile)) - #{ g37015 37568}#)) - #{tmp 37566}#) + #{ g37325 37878}#)) + #{tmp 37876}#) (syntax-violation #f "source expression failed to match any pattern" - #{tmp 37565}#))))) - #{tmp 37560}#) - (let ((#{tmp 37569}# + #{tmp 37875}#))))) + #{tmp 37870}#) + (let ((#{tmp 37879}# ($sc-dispatch - #{x 37553}# + #{x 37863}# '(#(atom "list*") . #(each+ any (any) ()))))) - (if #{tmp 37569}# + (if #{tmp 37879}# (@apply - (lambda (#{x 37573}# #{y 37574}#) + (lambda (#{x 37883}# #{y 37884}#) (letrec* - ((#{f 37575}# - (lambda (#{x* 37578}#) - (if (null? #{x* 37578}#) - (#{emit 37092}# #{y 37574}#) - (let ((#{tmp 37579}# - (list (#{emit 37092}# - (car #{x* 37578}#)) - (#{f 37575}# - (cdr #{x* 37578}#))))) - (let ((#{tmp 37580}# + ((#{f 37885}# + (lambda (#{x* 37888}#) + (if (null? #{x* 37888}#) + (#{emit 37402}# #{y 37884}#) + (let ((#{tmp 37889}# + (list (#{emit 37402}# + (car #{x* 37888}#)) + (#{f 37885}# + (cdr #{x* 37888}#))))) + (let ((#{tmp 37890}# ($sc-dispatch - #{tmp 37579}# + #{tmp 37889}# '(any any)))) - (if #{tmp 37580}# + (if #{tmp 37890}# (@apply - (lambda (#{ g37035 37582}# - #{ g37034 37583}#) + (lambda (#{ g37345 37892}# + #{ g37344 37893}#) (list '#(syntax-object cons ((top) #(ribcage () () ()) #(ribcage - #(#{ g37035}# - #{ g37034}#) - #((m37036 top) - (m37036 top)) - #("i37040" "i37041")) + #(#{ g37345}# + #{ g37344}#) + #((m37346 top) + (m37346 top)) + #("i37350" "i37351")) #(ribcage () () ()) #(ribcage #(f x*) #((top) (top)) - #("i37029" "i37030")) + #("i37339" "i37340")) #(ribcage #(x y) #((top) (top)) - #("i37025" "i37026")) + #("i37335" "i37336")) #(ribcage () () ()) #(ribcage #(x) #((top)) - #("i37007")) + #("i37317")) #(ribcage (emit quasivector quasilist* @@ -21599,13 +21535,13 @@ (top) (top) (top)) - ("i36828" - "i36826" - "i36824" - "i36822" - "i36820" - "i36818" - "i36816")) + ("i37138" + "i37136" + "i37134" + "i37132" + "i37130" + "i37128" + "i37126")) #(ribcage (quasiquote) ((top)) @@ -21617,48 +21553,48 @@ (hygiene guile)))))) (hygiene guile)) - #{ g37035 37582}# - #{ g37034 37583}#)) - #{tmp 37580}#) + #{ g37345 37892}# + #{ g37344 37893}#)) + #{tmp 37890}#) (syntax-violation #f "source expression failed to match any pattern" - #{tmp 37579}#)))))))) - (#{f 37575}# #{x 37573}#))) - #{tmp 37569}#) - (let ((#{tmp 37584}# + #{tmp 37889}#)))))))) + (#{f 37885}# #{x 37883}#))) + #{tmp 37879}#) + (let ((#{tmp 37894}# ($sc-dispatch - #{x 37553}# + #{x 37863}# '(#(atom "append") . each-any)))) - (if #{tmp 37584}# + (if #{tmp 37894}# (@apply - (lambda (#{x 37588}#) - (let ((#{tmp 37589}# - (map #{emit 37092}# #{x 37588}#))) - (let ((#{tmp 37590}# + (lambda (#{x 37898}#) + (let ((#{tmp 37899}# + (map #{emit 37402}# #{x 37898}#))) + (let ((#{tmp 37900}# ($sc-dispatch - #{tmp 37589}# + #{tmp 37899}# 'each-any))) - (if #{tmp 37590}# + (if #{tmp 37900}# (@apply - (lambda (#{ g37047 37592}#) + (lambda (#{ g37357 37902}#) (cons '#(syntax-object append ((top) #(ribcage () () ()) #(ribcage - #(#{ g37047}#) - #((m37048 top)) - #("i37052")) + #(#{ g37357}#) + #((m37358 top)) + #("i37362")) #(ribcage #(x) #((top)) - #("i37045")) + #("i37355")) #(ribcage () () ()) #(ribcage #(x) #((top)) - #("i37007")) + #("i37317")) #(ribcage (emit quasivector quasilist* @@ -21673,13 +21609,13 @@ (top) (top) (top)) - ("i36828" - "i36826" - "i36824" - "i36822" - "i36820" - "i36818" - "i36816")) + ("i37138" + "i37136" + "i37134" + "i37132" + "i37130" + "i37128" + "i37126")) #(ribcage (quasiquote) ((top)) @@ -21690,46 +21626,46 @@ ((top)) (hygiene guile)))))) (hygiene guile)) - #{ g37047 37592}#)) - #{tmp 37590}#) + #{ g37357 37902}#)) + #{tmp 37900}#) (syntax-violation #f "source expression failed to match any pattern" - #{tmp 37589}#))))) - #{tmp 37584}#) - (let ((#{tmp 37593}# + #{tmp 37899}#))))) + #{tmp 37894}#) + (let ((#{tmp 37903}# ($sc-dispatch - #{x 37553}# + #{x 37863}# '(#(atom "vector") . each-any)))) - (if #{tmp 37593}# + (if #{tmp 37903}# (@apply - (lambda (#{x 37597}#) - (let ((#{tmp 37598}# - (map #{emit 37092}# #{x 37597}#))) - (let ((#{tmp 37599}# + (lambda (#{x 37907}#) + (let ((#{tmp 37908}# + (map #{emit 37402}# #{x 37907}#))) + (let ((#{tmp 37909}# ($sc-dispatch - #{tmp 37598}# + #{tmp 37908}# 'each-any))) - (if #{tmp 37599}# + (if #{tmp 37909}# (@apply - (lambda (#{ g37059 37601}#) + (lambda (#{ g37369 37911}#) (cons '#(syntax-object vector ((top) #(ribcage () () ()) #(ribcage - #(#{ g37059}#) - #((m37060 top)) - #("i37064")) + #(#{ g37369}#) + #((m37370 top)) + #("i37374")) #(ribcage #(x) #((top)) - #("i37057")) + #("i37367")) #(ribcage () () ()) #(ribcage #(x) #((top)) - #("i37007")) + #("i37317")) #(ribcage (emit quasivector quasilist* @@ -21744,13 +21680,13 @@ (top) (top) (top)) - ("i36828" - "i36826" - "i36824" - "i36822" - "i36820" - "i36818" - "i36816")) + ("i37138" + "i37136" + "i37134" + "i37132" + "i37130" + "i37128" + "i37126")) #(ribcage (quasiquote) ((top)) @@ -21762,39 +21698,39 @@ (hygiene guile)))))) (hygiene guile)) - #{ g37059 37601}#)) - #{tmp 37599}#) + #{ g37369 37911}#)) + #{tmp 37909}#) (syntax-violation #f "source expression failed to match any pattern" - #{tmp 37598}#))))) - #{tmp 37593}#) - (let ((#{tmp 37602}# + #{tmp 37908}#))))) + #{tmp 37903}#) + (let ((#{tmp 37912}# ($sc-dispatch - #{x 37553}# + #{x 37863}# '(#(atom "list->vector") any)))) - (if #{tmp 37602}# + (if #{tmp 37912}# (@apply - (lambda (#{x 37606}#) - (let ((#{tmp 37607}# - (#{emit 37092}# #{x 37606}#))) + (lambda (#{x 37916}#) + (let ((#{tmp 37917}# + (#{emit 37402}# #{x 37916}#))) (list '#(syntax-object list->vector ((top) #(ribcage () () ()) #(ribcage - #(#{ g37071}#) - #((m37072 top)) - #("i37075")) + #(#{ g37381}#) + #((m37382 top)) + #("i37385")) #(ribcage #(x) #((top)) - #("i37069")) + #("i37379")) #(ribcage () () ()) #(ribcage #(x) #((top)) - #("i37007")) + #("i37317")) #(ribcage (emit quasivector quasilist* @@ -21809,13 +21745,13 @@ (top) (top) (top)) - ("i36828" - "i36826" - "i36824" - "i36822" - "i36820" - "i36818" - "i36816")) + ("i37138" + "i37136" + "i37134" + "i37132" + "i37130" + "i37128" + "i37126")) #(ribcage (quasiquote) ((top)) @@ -21826,83 +21762,83 @@ ((top)) (hygiene guile)))))) (hygiene guile)) - #{tmp 37607}#))) - #{tmp 37602}#) - (let ((#{tmp 37610}# + #{tmp 37917}#))) + #{tmp 37912}#) + (let ((#{tmp 37920}# ($sc-dispatch - #{x 37553}# + #{x 37863}# '(#(atom "value") any)))) - (if #{tmp 37610}# + (if #{tmp 37920}# (@apply - (lambda (#{x 37614}#) #{x 37614}#) - #{tmp 37610}#) + (lambda (#{x 37924}#) #{x 37924}#) + #{tmp 37920}#) (syntax-violation #f "source expression failed to match any pattern" - #{x 37553}#)))))))))))))))))) - (lambda (#{x 37093}#) - (let ((#{tmp 37095}# - ($sc-dispatch #{x 37093}# '(_ any)))) - (if #{tmp 37095}# + #{x 37863}#)))))))))))))))))) + (lambda (#{x 37403}#) + (let ((#{tmp 37405}# + ($sc-dispatch #{x 37403}# '(_ any)))) + (if #{tmp 37405}# (@apply - (lambda (#{e 37099}#) - (#{emit 37092}# (#{quasi 37086}# #{e 37099}# 0))) - #{tmp 37095}#) + (lambda (#{e 37409}#) + (#{emit 37402}# (#{quasi 37396}# #{e 37409}# 0))) + #{tmp 37405}#) (syntax-violation #f "source expression failed to match any pattern" - #{x 37093}#))))))) + #{x 37403}#))))))) (define include (make-syntax-transformer 'include 'macro - (lambda (#{x 37670}#) + (lambda (#{x 37980}#) (letrec* - ((#{read-file 37671}# - (lambda (#{fn 37787}# #{k 37788}#) - (let ((#{p 37789}# (open-input-file #{fn 37787}#))) + ((#{read-file 37981}# + (lambda (#{fn 38097}# #{k 38098}#) + (let ((#{p 38099}# (open-input-file #{fn 38097}#))) (letrec* - ((#{f 37790}# - (lambda (#{x 37847}# #{result 37848}#) - (if (eof-object? #{x 37847}#) + ((#{f 38100}# + (lambda (#{x 38157}# #{result 38158}#) + (if (eof-object? #{x 38157}#) (begin - (close-input-port #{p 37789}#) - (reverse #{result 37848}#)) - (#{f 37790}# - (read #{p 37789}#) - (cons (datum->syntax #{k 37788}# #{x 37847}#) - #{result 37848}#)))))) - (#{f 37790}# (read #{p 37789}#) '())))))) - (let ((#{tmp 37673}# - ($sc-dispatch #{x 37670}# '(any any)))) - (if #{tmp 37673}# + (close-input-port #{p 38099}#) + (reverse #{result 38158}#)) + (#{f 38100}# + (read #{p 38099}#) + (cons (datum->syntax #{k 38098}# #{x 38157}#) + #{result 38158}#)))))) + (#{f 38100}# (read #{p 38099}#) '())))))) + (let ((#{tmp 37983}# + ($sc-dispatch #{x 37980}# '(any any)))) + (if #{tmp 37983}# (@apply - (lambda (#{k 37677}# #{filename 37678}#) - (let ((#{fn 37679}# (syntax->datum #{filename 37678}#))) - (let ((#{tmp 37680}# - (#{read-file 37671}# - #{fn 37679}# - #{filename 37678}#))) - (let ((#{tmp 37681}# - ($sc-dispatch #{tmp 37680}# 'each-any))) - (if #{tmp 37681}# + (lambda (#{k 37987}# #{filename 37988}#) + (let ((#{fn 37989}# (syntax->datum #{filename 37988}#))) + (let ((#{tmp 37990}# + (#{read-file 37981}# + #{fn 37989}# + #{filename 37988}#))) + (let ((#{tmp 37991}# + ($sc-dispatch #{tmp 37990}# 'each-any))) + (if #{tmp 37991}# (@apply - (lambda (#{exp 37699}#) + (lambda (#{exp 38009}#) (cons '#(syntax-object begin ((top) #(ribcage () () ()) - #(ribcage #(exp) #((top)) #("i37667")) + #(ribcage #(exp) #((top)) #("i37977")) #(ribcage () () ()) #(ribcage () () ()) - #(ribcage #(fn) #((top)) #("i37662")) + #(ribcage #(fn) #((top)) #("i37972")) #(ribcage #(k filename) #((top) (top)) - #("i37658" "i37659")) - #(ribcage (read-file) ((top)) ("i37642")) - #(ribcage #(x) #((top)) #("i37641")) + #("i37968" "i37969")) + #(ribcage (read-file) ((top)) ("i37952")) + #(ribcage #(x) #((top)) #("i37951")) #(ribcage (include) ((top)) @@ -21913,54 +21849,54 @@ ((top)) (hygiene guile)))))) (hygiene guile)) - #{exp 37699}#)) - #{tmp 37681}#) + #{exp 38009}#)) + #{tmp 37991}#) (syntax-violation #f "source expression failed to match any pattern" - #{tmp 37680}#)))))) - #{tmp 37673}#) + #{tmp 37990}#)))))) + #{tmp 37983}#) (syntax-violation #f "source expression failed to match any pattern" - #{x 37670}#))))))) + #{x 37980}#))))))) (define include-from-path (make-syntax-transformer 'include-from-path 'macro - (lambda (#{x 37868}#) - (let ((#{tmp 37870}# - ($sc-dispatch #{x 37868}# '(any any)))) - (if #{tmp 37870}# + (lambda (#{x 38178}#) + (let ((#{tmp 38180}# + ($sc-dispatch #{x 38178}# '(any any)))) + (if #{tmp 38180}# (@apply - (lambda (#{k 37874}# #{filename 37875}#) - (let ((#{fn 37876}# (syntax->datum #{filename 37875}#))) - (let ((#{tmp 37877}# + (lambda (#{k 38184}# #{filename 38185}#) + (let ((#{fn 38186}# (syntax->datum #{filename 38185}#))) + (let ((#{tmp 38187}# (datum->syntax - #{filename 37875}# - (let ((#{t 37880}# (%search-load-path #{fn 37876}#))) - (if #{t 37880}# - #{t 37880}# + #{filename 38185}# + (let ((#{t 38190}# (%search-load-path #{fn 38186}#))) + (if #{t 38190}# + #{t 38190}# (syntax-violation 'include-from-path "file not found in path" - #{x 37868}# - #{filename 37875}#)))))) + #{x 38178}# + #{filename 38185}#)))))) (list '#(syntax-object include ((top) #(ribcage () () ()) - #(ribcage #(fn) #((top)) #("i37862")) + #(ribcage #(fn) #((top)) #("i38172")) #(ribcage () () ()) #(ribcage () () ()) - #(ribcage #(fn) #((top)) #("i37858")) + #(ribcage #(fn) #((top)) #("i38168")) #(ribcage #(k filename) #((top) (top)) - #("i37854" "i37855")) + #("i38164" "i38165")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i37851")) + #(ribcage #(x) #((top)) #("i38161")) #(ribcage (include-from-path) ((top)) @@ -21971,53 +21907,53 @@ ((top)) (hygiene guile)))))) (hygiene guile)) - #{tmp 37877}#)))) - #{tmp 37870}#) + #{tmp 38187}#)))) + #{tmp 38180}#) (syntax-violation #f "source expression failed to match any pattern" - #{x 37868}#)))))) + #{x 38178}#)))))) (define unquote (make-syntax-transformer 'unquote 'macro - (lambda (#{x 37890}#) + (lambda (#{x 38200}#) (syntax-violation 'unquote "expression not valid outside of quasiquote" - #{x 37890}#)))) + #{x 38200}#)))) (define unquote-splicing (make-syntax-transformer 'unquote-splicing 'macro - (lambda (#{x 37894}#) + (lambda (#{x 38204}#) (syntax-violation 'unquote-splicing "expression not valid outside of quasiquote" - #{x 37894}#)))) + #{x 38204}#)))) (define case (make-syntax-transformer 'case 'macro - (lambda (#{x 37951}#) - (let ((#{tmp 37953}# + (lambda (#{x 38261}#) + (let ((#{tmp 38263}# ($sc-dispatch - #{x 37951}# + #{x 38261}# '(_ any any . each-any)))) - (if #{tmp 37953}# + (if #{tmp 38263}# (@apply - (lambda (#{e 37957}# #{m1 37958}# #{m2 37959}#) - (let ((#{tmp 37960}# + (lambda (#{e 38267}# #{m1 38268}# #{m2 38269}#) + (let ((#{tmp 38270}# (letrec* - ((#{f 38021}# - (lambda (#{clause 38024}# #{clauses 38025}#) - (if (null? #{clauses 38025}#) - (let ((#{tmp 38027}# + ((#{f 38331}# + (lambda (#{clause 38334}# #{clauses 38335}#) + (if (null? #{clauses 38335}#) + (let ((#{tmp 38337}# ($sc-dispatch - #{clause 38024}# + #{clause 38334}# '(#(free-id #(syntax-object else @@ -22026,20 +21962,20 @@ #(ribcage #(f clause clauses) #((top) (top) (top)) - #("i37910" - "i37911" - "i37912")) + #("i38220" + "i38221" + "i38222")) #(ribcage #(e m1 m2) #((top) (top) (top)) - #("i37900" - "i37901" - "i37902")) + #("i38210" + "i38211" + "i38212")) #(ribcage () () ()) #(ribcage #(x) #((top)) - #("i37897")) + #("i38207")) #(ribcage (case) ((top)) @@ -22053,34 +21989,34 @@ any . each-any)))) - (if #{tmp 38027}# + (if #{tmp 38337}# (@apply - (lambda (#{e1 38031}# #{e2 38032}#) + (lambda (#{e1 38341}# #{e2 38342}#) (cons '#(syntax-object begin ((top) #(ribcage #(e1 e2) #((top) (top)) - #("i37919" "i37920")) + #("i38229" "i38230")) #(ribcage () () ()) #(ribcage #(f clause clauses) #((top) (top) (top)) - #("i37910" - "i37911" - "i37912")) + #("i38220" + "i38221" + "i38222")) #(ribcage #(e m1 m2) #((top) (top) (top)) - #("i37900" - "i37901" - "i37902")) + #("i38210" + "i38211" + "i38212")) #(ribcage () () ()) #(ribcage #(x) #((top)) - #("i37897")) + #("i38207")) #(ribcage (case) ((top)) @@ -22091,44 +22027,44 @@ ((top)) (hygiene guile)))))) (hygiene guile)) - (cons #{e1 38031}# #{e2 38032}#))) - #{tmp 38027}#) - (let ((#{tmp 38033}# + (cons #{e1 38341}# #{e2 38342}#))) + #{tmp 38337}#) + (let ((#{tmp 38343}# ($sc-dispatch - #{clause 38024}# + #{clause 38334}# '(each-any any . each-any)))) - (if #{tmp 38033}# + (if #{tmp 38343}# (@apply - (lambda (#{k 38037}# - #{e1 38038}# - #{e2 38039}#) + (lambda (#{k 38347}# + #{e1 38348}# + #{e2 38349}#) (list '#(syntax-object if ((top) #(ribcage #(k e1 e2) #((top) (top) (top)) - #("i37925" - "i37926" - "i37927")) + #("i38235" + "i38236" + "i38237")) #(ribcage () () ()) #(ribcage #(f clause clauses) #((top) (top) (top)) - #("i37910" - "i37911" - "i37912")) + #("i38220" + "i38221" + "i38222")) #(ribcage #(e m1 m2) #((top) (top) (top)) - #("i37900" - "i37901" - "i37902")) + #("i38210" + "i38211" + "i38212")) #(ribcage () () ()) #(ribcage #(x) #((top)) - #("i37897")) + #("i38207")) #(ribcage (case) ((top)) @@ -22147,9 +22083,9 @@ #((top) (top) (top)) - #("i37925" - "i37926" - "i37927")) + #("i38235" + "i38236" + "i38237")) #(ribcage () () ()) #(ribcage #(f @@ -22158,22 +22094,22 @@ #((top) (top) (top)) - #("i37910" - "i37911" - "i37912")) + #("i38220" + "i38221" + "i38222")) #(ribcage #(e m1 m2) #((top) (top) (top)) - #("i37900" - "i37901" - "i37902")) + #("i38210" + "i38211" + "i38212")) #(ribcage () () ()) #(ribcage #(x) #((top)) - #("i37897")) + #("i38207")) #(ribcage (case) ((top)) @@ -22193,9 +22129,9 @@ #((top) (top) (top)) - #("i37925" - "i37926" - "i37927")) + #("i38235" + "i38236" + "i38237")) #(ribcage () () ()) #(ribcage #(f @@ -22204,22 +22140,22 @@ #((top) (top) (top)) - #("i37910" - "i37911" - "i37912")) + #("i38220" + "i38221" + "i38222")) #(ribcage #(e m1 m2) #((top) (top) (top)) - #("i37900" - "i37901" - "i37902")) + #("i38210" + "i38211" + "i38212")) #(ribcage () () ()) #(ribcage #(x) #((top)) - #("i37897")) + #("i38207")) #(ribcage (case) ((top)) @@ -22239,9 +22175,9 @@ #((top) (top) (top)) - #("i37925" - "i37926" - "i37927")) + #("i38235" + "i38236" + "i38237")) #(ribcage () () @@ -22253,17 +22189,17 @@ #((top) (top) (top)) - #("i37910" - "i37911" - "i37912")) + #("i38220" + "i38221" + "i38222")) #(ribcage #(e m1 m2) #((top) (top) (top)) - #("i37900" - "i37901" - "i37902")) + #("i38210" + "i38211" + "i38212")) #(ribcage () () @@ -22271,7 +22207,7 @@ #(ribcage #(x) #((top)) - #("i37897")) + #("i38207")) #(ribcage (case) ((top)) @@ -22285,7 +22221,7 @@ guile)))))) (hygiene guile)) - #{k 38037}#)) + #{k 38347}#)) (cons '#(syntax-object begin ((top) @@ -22294,9 +22230,9 @@ #((top) (top) (top)) - #("i37925" - "i37926" - "i37927")) + #("i38235" + "i38236" + "i38237")) #(ribcage () () ()) #(ribcage #(f @@ -22305,22 +22241,22 @@ #((top) (top) (top)) - #("i37910" - "i37911" - "i37912")) + #("i38220" + "i38221" + "i38222")) #(ribcage #(e m1 m2) #((top) (top) (top)) - #("i37900" - "i37901" - "i37902")) + #("i38210" + "i38211" + "i38212")) #(ribcage () () ()) #(ribcage #(x) #((top)) - #("i37897")) + #("i38207")) #(ribcage (case) ((top)) @@ -22332,59 +22268,59 @@ (hygiene guile)))))) (hygiene guile)) - (cons #{e1 38038}# - #{e2 38039}#)))) - #{tmp 38033}#) + (cons #{e1 38348}# + #{e2 38349}#)))) + #{tmp 38343}#) (syntax-violation 'case "bad clause" - #{x 37951}# - #{clause 38024}#))))) - (let ((#{tmp 38047}# - (#{f 38021}# - (car #{clauses 38025}#) - (cdr #{clauses 38025}#)))) - (let ((#{tmp 38050}# + #{x 38261}# + #{clause 38334}#))))) + (let ((#{tmp 38357}# + (#{f 38331}# + (car #{clauses 38335}#) + (cdr #{clauses 38335}#)))) + (let ((#{tmp 38360}# ($sc-dispatch - #{clause 38024}# + #{clause 38334}# '(each-any any . each-any)))) - (if #{tmp 38050}# + (if #{tmp 38360}# (@apply - (lambda (#{k 38054}# - #{e1 38055}# - #{e2 38056}#) + (lambda (#{k 38364}# + #{e1 38365}# + #{e2 38366}#) (list '#(syntax-object if ((top) #(ribcage #(k e1 e2) #((top) (top) (top)) - #("i37941" - "i37942" - "i37943")) + #("i38251" + "i38252" + "i38253")) #(ribcage () () ()) #(ribcage #(rest) #((top)) - #("i37937")) + #("i38247")) #(ribcage () () ()) #(ribcage #(f clause clauses) #((top) (top) (top)) - #("i37910" - "i37911" - "i37912")) + #("i38220" + "i38221" + "i38222")) #(ribcage #(e m1 m2) #((top) (top) (top)) - #("i37900" - "i37901" - "i37902")) + #("i38210" + "i38211" + "i38212")) #(ribcage () () ()) #(ribcage #(x) #((top)) - #("i37897")) + #("i38207")) #(ribcage (case) ((top)) @@ -22401,32 +22337,32 @@ #(ribcage #(k e1 e2) #((top) (top) (top)) - #("i37941" - "i37942" - "i37943")) + #("i38251" + "i38252" + "i38253")) #(ribcage () () ()) #(ribcage #(rest) #((top)) - #("i37937")) + #("i38247")) #(ribcage () () ()) #(ribcage #(f clause clauses) #((top) (top) (top)) - #("i37910" - "i37911" - "i37912")) + #("i38220" + "i38221" + "i38222")) #(ribcage #(e m1 m2) #((top) (top) (top)) - #("i37900" - "i37901" - "i37902")) + #("i38210" + "i38211" + "i38212")) #(ribcage () () ()) #(ribcage #(x) #((top)) - #("i37897")) + #("i38207")) #(ribcage (case) ((top)) @@ -22444,32 +22380,32 @@ #(ribcage #(k e1 e2) #((top) (top) (top)) - #("i37941" - "i37942" - "i37943")) + #("i38251" + "i38252" + "i38253")) #(ribcage () () ()) #(ribcage #(rest) #((top)) - #("i37937")) + #("i38247")) #(ribcage () () ()) #(ribcage #(f clause clauses) #((top) (top) (top)) - #("i37910" - "i37911" - "i37912")) + #("i38220" + "i38221" + "i38222")) #(ribcage #(e m1 m2) #((top) (top) (top)) - #("i37900" - "i37901" - "i37902")) + #("i38210" + "i38211" + "i38212")) #(ribcage () () ()) #(ribcage #(x) #((top)) - #("i37897")) + #("i38207")) #(ribcage (case) ((top)) @@ -22489,9 +22425,9 @@ #((top) (top) (top)) - #("i37941" - "i37942" - "i37943")) + #("i38251" + "i38252" + "i38253")) #(ribcage () () @@ -22499,7 +22435,7 @@ #(ribcage #(rest) #((top)) - #("i37937")) + #("i38247")) #(ribcage () () @@ -22511,17 +22447,17 @@ #((top) (top) (top)) - #("i37910" - "i37911" - "i37912")) + #("i38220" + "i38221" + "i38222")) #(ribcage #(e m1 m2) #((top) (top) (top)) - #("i37900" - "i37901" - "i37902")) + #("i38210" + "i38211" + "i38212")) #(ribcage () () @@ -22529,7 +22465,7 @@ #(ribcage #(x) #((top)) - #("i37897")) + #("i38207")) #(ribcage (case) ((top)) @@ -22542,39 +22478,39 @@ (hygiene guile)))))) (hygiene guile)) - #{k 38054}#)) + #{k 38364}#)) (cons '#(syntax-object begin ((top) #(ribcage #(k e1 e2) #((top) (top) (top)) - #("i37941" - "i37942" - "i37943")) + #("i38251" + "i38252" + "i38253")) #(ribcage () () ()) #(ribcage #(rest) #((top)) - #("i37937")) + #("i38247")) #(ribcage () () ()) #(ribcage #(f clause clauses) #((top) (top) (top)) - #("i37910" - "i37911" - "i37912")) + #("i38220" + "i38221" + "i38222")) #(ribcage #(e m1 m2) #((top) (top) (top)) - #("i37900" - "i37901" - "i37902")) + #("i38210" + "i38211" + "i38212")) #(ribcage () () ()) #(ribcage #(x) #((top)) - #("i37897")) + #("i38207")) #(ribcage (case) ((top)) @@ -22586,28 +22522,28 @@ (hygiene guile)))))) (hygiene guile)) - (cons #{e1 38055}# - #{e2 38056}#)) - #{tmp 38047}#)) - #{tmp 38050}#) + (cons #{e1 38365}# + #{e2 38366}#)) + #{tmp 38357}#)) + #{tmp 38360}#) (syntax-violation 'case "bad clause" - #{x 37951}# - #{clause 38024}#)))))))) - (#{f 38021}# #{m1 37958}# #{m2 37959}#)))) - (let ((#{body 37961}# #{tmp 37960}#)) + #{x 38261}# + #{clause 38334}#)))))))) + (#{f 38331}# #{m1 38268}# #{m2 38269}#)))) + (let ((#{body 38271}# #{tmp 38270}#)) (list '#(syntax-object let ((top) #(ribcage () () ()) - #(ribcage #(body) #((top)) #("i37908")) + #(ribcage #(body) #((top)) #("i38218")) #(ribcage #(e m1 m2) #((top) (top) (top)) - #("i37900" "i37901" "i37902")) + #("i38210" "i38211" "i38212")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i37897")) + #(ribcage #(x) #((top)) #("i38207")) #(ribcage (case) ((top)) @@ -22622,13 +22558,13 @@ t ((top) #(ribcage () () ()) - #(ribcage #(body) #((top)) #("i37908")) + #(ribcage #(body) #((top)) #("i38218")) #(ribcage #(e m1 m2) #((top) (top) (top)) - #("i37900" "i37901" "i37902")) + #("i38210" "i38211" "i38212")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i37897")) + #(ribcage #(x) #((top)) #("i38207")) #(ribcage (case) ((top)) @@ -22639,46 +22575,46 @@ ((top)) (hygiene guile)))))) (hygiene guile)) - #{e 37957}#)) - #{body 37961}#)))) - #{tmp 37953}#) + #{e 38267}#)) + #{body 38271}#)))) + #{tmp 38263}#) (syntax-violation #f "source expression failed to match any pattern" - #{x 37951}#)))))) + #{x 38261}#)))))) (define make-variable-transformer - (lambda (#{proc 38075}#) - (if (procedure? #{proc 38075}#) + (lambda (#{proc 38385}#) + (if (procedure? #{proc 38385}#) (letrec* - ((#{trans 38076}# - (lambda (#{x 38082}#) - (#{proc 38075}# #{x 38082}#)))) + ((#{trans 38386}# + (lambda (#{x 38392}#) + (#{proc 38385}# #{x 38392}#)))) (begin (set-procedure-property! - #{trans 38076}# + #{trans 38386}# 'variable-transformer #t) - #{trans 38076}#)) + #{trans 38386}#)) (error "variable transformer not a procedure" - #{proc 38075}#)))) + #{proc 38385}#)))) (define identifier-syntax (make-syntax-transformer 'identifier-syntax 'macro - (lambda (#{x 38115}#) - (let ((#{tmp 38117}# - ($sc-dispatch #{x 38115}# '(_ any)))) - (if #{tmp 38117}# + (lambda (#{x 38425}#) + (let ((#{tmp 38427}# + ($sc-dispatch #{x 38425}# '(_ any)))) + (if #{tmp 38427}# (@apply - (lambda (#{e 38121}#) + (lambda (#{e 38431}#) (list '#(syntax-object lambda ((top) - #(ribcage #(e) #((top)) #("i38090")) + #(ribcage #(e) #((top)) #("i38400")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i38087")) + #(ribcage #(x) #((top)) #("i38397")) #(ribcage (identifier-syntax) ((top)) @@ -22692,9 +22628,9 @@ '(#(syntax-object x ((top) - #(ribcage #(e) #((top)) #("i38090")) + #(ribcage #(e) #((top)) #("i38400")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i38087")) + #(ribcage #(x) #((top)) #("i38397")) #(ribcage (identifier-syntax) ((top)) @@ -22708,9 +22644,9 @@ '#((#(syntax-object macro-type ((top) - #(ribcage #(e) #((top)) #("i38090")) + #(ribcage #(e) #((top)) #("i38400")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i38087")) + #(ribcage #(x) #((top)) #("i38397")) #(ribcage (identifier-syntax) ((top)) @@ -22725,9 +22661,9 @@ #(syntax-object identifier-syntax ((top) - #(ribcage #(e) #((top)) #("i38090")) + #(ribcage #(e) #((top)) #("i38400")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i38087")) + #(ribcage #(x) #((top)) #("i38397")) #(ribcage (identifier-syntax) ((top)) @@ -22741,9 +22677,9 @@ (list '#(syntax-object syntax-case ((top) - #(ribcage #(e) #((top)) #("i38090")) + #(ribcage #(e) #((top)) #("i38400")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i38087")) + #(ribcage #(x) #((top)) #("i38397")) #(ribcage (identifier-syntax) ((top)) @@ -22757,9 +22693,9 @@ '#(syntax-object x ((top) - #(ribcage #(e) #((top)) #("i38090")) + #(ribcage #(e) #((top)) #("i38400")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i38087")) + #(ribcage #(x) #((top)) #("i38397")) #(ribcage (identifier-syntax) ((top)) @@ -22774,9 +22710,9 @@ (list '#(syntax-object id ((top) - #(ribcage #(e) #((top)) #("i38090")) + #(ribcage #(e) #((top)) #("i38400")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i38087")) + #(ribcage #(x) #((top)) #("i38397")) #(ribcage (identifier-syntax) ((top)) @@ -22790,9 +22726,9 @@ '(#(syntax-object identifier? ((top) - #(ribcage #(e) #((top)) #("i38090")) + #(ribcage #(e) #((top)) #("i38400")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i38087")) + #(ribcage #(x) #((top)) #("i38397")) #(ribcage (identifier-syntax) ((top)) @@ -22806,9 +22742,9 @@ (#(syntax-object syntax ((top) - #(ribcage #(e) #((top)) #("i38090")) + #(ribcage #(e) #((top)) #("i38400")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i38087")) + #(ribcage #(x) #((top)) #("i38397")) #(ribcage (identifier-syntax) ((top)) @@ -22822,9 +22758,9 @@ #(syntax-object id ((top) - #(ribcage #(e) #((top)) #("i38090")) + #(ribcage #(e) #((top)) #("i38400")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i38087")) + #(ribcage #(x) #((top)) #("i38397")) #(ribcage (identifier-syntax) ((top)) @@ -22838,9 +22774,9 @@ (list '#(syntax-object syntax ((top) - #(ribcage #(e) #((top)) #("i38090")) + #(ribcage #(e) #((top)) #("i38400")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i38087")) + #(ribcage #(x) #((top)) #("i38397")) #(ribcage (identifier-syntax) ((top)) @@ -22851,13 +22787,13 @@ ((top)) (hygiene guile)))))) (hygiene guile)) - #{e 38121}#)) + #{e 38431}#)) (list '(#(syntax-object _ ((top) - #(ribcage #(e) #((top)) #("i38090")) + #(ribcage #(e) #((top)) #("i38400")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i38087")) + #(ribcage #(x) #((top)) #("i38397")) #(ribcage (identifier-syntax) ((top)) @@ -22871,9 +22807,9 @@ #(syntax-object x ((top) - #(ribcage #(e) #((top)) #("i38090")) + #(ribcage #(e) #((top)) #("i38400")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i38087")) + #(ribcage #(x) #((top)) #("i38397")) #(ribcage (identifier-syntax) ((top)) @@ -22887,9 +22823,9 @@ #(syntax-object ... ((top) - #(ribcage #(e) #((top)) #("i38090")) + #(ribcage #(e) #((top)) #("i38400")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i38087")) + #(ribcage #(x) #((top)) #("i38397")) #(ribcage (identifier-syntax) ((top)) @@ -22903,9 +22839,9 @@ (list '#(syntax-object syntax ((top) - #(ribcage #(e) #((top)) #("i38090")) + #(ribcage #(e) #((top)) #("i38400")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i38087")) + #(ribcage #(x) #((top)) #("i38397")) #(ribcage (identifier-syntax) ((top)) @@ -22916,19 +22852,19 @@ ((top)) (hygiene guile)))))) (hygiene guile)) - (cons #{e 38121}# + (cons #{e 38431}# '(#(syntax-object x ((top) #(ribcage #(e) #((top)) - #("i38090")) + #("i38400")) #(ribcage () () ()) #(ribcage #(x) #((top)) - #("i38087")) + #("i38397")) #(ribcage (identifier-syntax) ((top)) @@ -22945,12 +22881,12 @@ #(ribcage #(e) #((top)) - #("i38090")) + #("i38400")) #(ribcage () () ()) #(ribcage #(x) #((top)) - #("i38087")) + #("i38397")) #(ribcage (identifier-syntax) ((top)) @@ -22961,17 +22897,17 @@ ((top)) (hygiene guile)))))) (hygiene guile))))))))) - #{tmp 38117}#) - (let ((#{tmp 38122}# + #{tmp 38427}#) + (let ((#{tmp 38432}# ($sc-dispatch - #{x 38115}# + #{x 38425}# '(_ (any any) ((#(free-id #(syntax-object set! ((top) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i38087")) + #(ribcage #(x) #((top)) #("i38397")) #(ribcage (identifier-syntax) ((top)) @@ -22985,33 +22921,33 @@ any any) any))))) - (if (if #{tmp 38122}# + (if (if #{tmp 38432}# (@apply - (lambda (#{id 38126}# - #{exp1 38127}# - #{var 38128}# - #{val 38129}# - #{exp2 38130}#) - (if (identifier? #{id 38126}#) - (identifier? #{var 38128}#) + (lambda (#{id 38436}# + #{exp1 38437}# + #{var 38438}# + #{val 38439}# + #{exp2 38440}#) + (if (identifier? #{id 38436}#) + (identifier? #{var 38438}#) #f)) - #{tmp 38122}#) + #{tmp 38432}#) #f) (@apply - (lambda (#{id 38131}# - #{exp1 38132}# - #{var 38133}# - #{val 38134}# - #{exp2 38135}#) + (lambda (#{id 38441}# + #{exp1 38442}# + #{var 38443}# + #{val 38444}# + #{exp2 38445}#) (list '#(syntax-object make-variable-transformer ((top) #(ribcage #(id exp1 var val exp2) #((top) (top) (top) (top) (top)) - #("i38105" "i38106" "i38107" "i38108" "i38109")) + #("i38415" "i38416" "i38417" "i38418" "i38419")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i38087")) + #(ribcage #(x) #((top)) #("i38397")) #(ribcage (identifier-syntax) ((top)) @@ -23028,13 +22964,13 @@ #(ribcage #(id exp1 var val exp2) #((top) (top) (top) (top) (top)) - #("i38105" - "i38106" - "i38107" - "i38108" - "i38109")) + #("i38415" + "i38416" + "i38417" + "i38418" + "i38419")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i38087")) + #(ribcage #(x) #((top)) #("i38397")) #(ribcage (identifier-syntax) ((top)) @@ -23051,13 +22987,13 @@ #(ribcage #(id exp1 var val exp2) #((top) (top) (top) (top) (top)) - #("i38105" - "i38106" - "i38107" - "i38108" - "i38109")) + #("i38415" + "i38416" + "i38417" + "i38418" + "i38419")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i38087")) + #(ribcage #(x) #((top)) #("i38397")) #(ribcage (identifier-syntax) ((top)) @@ -23074,13 +23010,13 @@ #(ribcage #(id exp1 var val exp2) #((top) (top) (top) (top) (top)) - #("i38105" - "i38106" - "i38107" - "i38108" - "i38109")) + #("i38415" + "i38416" + "i38417" + "i38418" + "i38419")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i38087")) + #(ribcage #(x) #((top)) #("i38397")) #(ribcage (identifier-syntax) ((top)) @@ -23098,13 +23034,13 @@ #(ribcage #(id exp1 var val exp2) #((top) (top) (top) (top) (top)) - #("i38105" - "i38106" - "i38107" - "i38108" - "i38109")) + #("i38415" + "i38416" + "i38417" + "i38418" + "i38419")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i38087")) + #(ribcage #(x) #((top)) #("i38397")) #(ribcage (identifier-syntax) ((top)) @@ -23121,13 +23057,13 @@ #(ribcage #(id exp1 var val exp2) #((top) (top) (top) (top) (top)) - #("i38105" - "i38106" - "i38107" - "i38108" - "i38109")) + #("i38415" + "i38416" + "i38417" + "i38418" + "i38419")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i38087")) + #(ribcage #(x) #((top)) #("i38397")) #(ribcage (identifier-syntax) ((top)) @@ -23144,13 +23080,13 @@ #(ribcage #(id exp1 var val exp2) #((top) (top) (top) (top) (top)) - #("i38105" - "i38106" - "i38107" - "i38108" - "i38109")) + #("i38415" + "i38416" + "i38417" + "i38418" + "i38419")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i38087")) + #(ribcage #(x) #((top)) #("i38397")) #(ribcage (identifier-syntax) ((top)) @@ -23167,13 +23103,13 @@ #(ribcage #(id exp1 var val exp2) #((top) (top) (top) (top) (top)) - #("i38105" - "i38106" - "i38107" - "i38108" - "i38109")) + #("i38415" + "i38416" + "i38417" + "i38418" + "i38419")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i38087")) + #(ribcage #(x) #((top)) #("i38397")) #(ribcage (identifier-syntax) ((top)) @@ -23194,16 +23130,16 @@ (top) (top) (top)) - #("i38105" - "i38106" - "i38107" - "i38108" - "i38109")) + #("i38415" + "i38416" + "i38417" + "i38418" + "i38419")) #(ribcage () () ()) #(ribcage #(x) #((top)) - #("i38087")) + #("i38397")) #(ribcage (identifier-syntax) ((top)) @@ -23214,8 +23150,8 @@ ((top)) (hygiene guile)))))) (hygiene guile)) - #{var 38133}# - #{val 38134}#) + #{var 38443}# + #{val 38444}#) (list '#(syntax-object syntax ((top) @@ -23226,16 +23162,16 @@ (top) (top) (top)) - #("i38105" - "i38106" - "i38107" - "i38108" - "i38109")) + #("i38415" + "i38416" + "i38417" + "i38418" + "i38419")) #(ribcage () () ()) #(ribcage #(x) #((top)) - #("i38087")) + #("i38397")) #(ribcage (identifier-syntax) ((top)) @@ -23246,8 +23182,8 @@ ((top)) (hygiene guile)))))) (hygiene guile)) - #{exp2 38135}#)) - (list (cons #{id 38131}# + #{exp2 38445}#)) + (list (cons #{id 38441}# '(#(syntax-object x ((top) @@ -23258,16 +23194,16 @@ (top) (top) (top)) - #("i38105" - "i38106" - "i38107" - "i38108" - "i38109")) + #("i38415" + "i38416" + "i38417" + "i38418" + "i38419")) #(ribcage () () ()) #(ribcage #(x) #((top)) - #("i38087")) + #("i38397")) #(ribcage (identifier-syntax) ((top)) @@ -23288,16 +23224,16 @@ (top) (top) (top)) - #("i38105" - "i38106" - "i38107" - "i38108" - "i38109")) + #("i38415" + "i38416" + "i38417" + "i38418" + "i38419")) #(ribcage () () ()) #(ribcage #(x) #((top)) - #("i38087")) + #("i38397")) #(ribcage (identifier-syntax) ((top)) @@ -23318,16 +23254,16 @@ (top) (top) (top)) - #("i38105" - "i38106" - "i38107" - "i38108" - "i38109")) + #("i38415" + "i38416" + "i38417" + "i38418" + "i38419")) #(ribcage () () ()) #(ribcage #(x) #((top)) - #("i38087")) + #("i38397")) #(ribcage (identifier-syntax) ((top)) @@ -23338,7 +23274,7 @@ ((top)) (hygiene guile)))))) (hygiene guile)) - (cons #{exp1 38132}# + (cons #{exp1 38442}# '(#(syntax-object x ((top) @@ -23353,16 +23289,16 @@ (top) (top) (top)) - #("i38105" - "i38106" - "i38107" - "i38108" - "i38109")) + #("i38415" + "i38416" + "i38417" + "i38418" + "i38419")) #(ribcage () () ()) #(ribcage #(x) #((top)) - #("i38087")) + #("i38397")) #(ribcage (identifier-syntax) ((top)) @@ -23388,16 +23324,16 @@ (top) (top) (top)) - #("i38105" - "i38106" - "i38107" - "i38108" - "i38109")) + #("i38415" + "i38416" + "i38417" + "i38418" + "i38419")) #(ribcage () () ()) #(ribcage #(x) #((top)) - #("i38087")) + #("i38397")) #(ribcage (identifier-syntax) ((top)) @@ -23409,7 +23345,7 @@ (hygiene guile)))))) (hygiene guile)))))) - (list #{id 38131}# + (list #{id 38441}# (list '#(syntax-object identifier? ((top) @@ -23420,16 +23356,16 @@ (top) (top) (top)) - #("i38105" - "i38106" - "i38107" - "i38108" - "i38109")) + #("i38415" + "i38416" + "i38417" + "i38418" + "i38419")) #(ribcage () () ()) #(ribcage #(x) #((top)) - #("i38087")) + #("i38397")) #(ribcage (identifier-syntax) ((top)) @@ -23454,16 +23390,16 @@ (top) (top) (top)) - #("i38105" - "i38106" - "i38107" - "i38108" - "i38109")) + #("i38415" + "i38416" + "i38417" + "i38418" + "i38419")) #(ribcage () () ()) #(ribcage #(x) #((top)) - #("i38087")) + #("i38397")) #(ribcage (identifier-syntax) ((top)) @@ -23475,7 +23411,7 @@ (hygiene guile)))))) (hygiene guile)) - #{id 38131}#)) + #{id 38441}#)) (list '#(syntax-object syntax ((top) @@ -23486,16 +23422,16 @@ (top) (top) (top)) - #("i38105" - "i38106" - "i38107" - "i38108" - "i38109")) + #("i38415" + "i38416" + "i38417" + "i38418" + "i38419")) #(ribcage () () ()) #(ribcage #(x) #((top)) - #("i38087")) + #("i38397")) #(ribcage (identifier-syntax) ((top)) @@ -23506,37 +23442,37 @@ ((top)) (hygiene guile)))))) (hygiene guile)) - #{exp1 38132}#)))))) - #{tmp 38122}#) + #{exp1 38442}#)))))) + #{tmp 38432}#) (syntax-violation #f "source expression failed to match any pattern" - #{x 38115}#)))))))) + #{x 38425}#)))))))) (define define* (make-syntax-transformer 'define* 'macro - (lambda (#{x 38168}#) - (let ((#{tmp 38170}# + (lambda (#{x 38478}#) + (let ((#{tmp 38480}# ($sc-dispatch - #{x 38168}# + #{x 38478}# '(_ (any . any) any . each-any)))) - (if #{tmp 38170}# + (if #{tmp 38480}# (@apply - (lambda (#{id 38174}# - #{args 38175}# - #{b0 38176}# - #{b1 38177}#) + (lambda (#{id 38484}# + #{args 38485}# + #{b0 38486}# + #{b1 38487}#) (list '#(syntax-object define ((top) #(ribcage #(id args b0 b1) #((top) (top) (top) (top)) - #("i38150" "i38151" "i38152" "i38153")) + #("i38460" "i38461" "i38462" "i38463")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i38147")) + #(ribcage #(x) #((top)) #("i38457")) #(ribcage (define*) ((top)) @@ -23547,16 +23483,16 @@ ((top)) (hygiene guile)))))) (hygiene guile)) - #{id 38174}# + #{id 38484}# (cons '#(syntax-object lambda* ((top) #(ribcage #(id args b0 b1) #((top) (top) (top) (top)) - #("i38150" "i38151" "i38152" "i38153")) + #("i38460" "i38461" "i38462" "i38463")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i38147")) + #(ribcage #(x) #((top)) #("i38457")) #(ribcage (define*) ((top)) @@ -23567,14 +23503,14 @@ ((top)) (hygiene guile)))))) (hygiene guile)) - (cons #{args 38175}# - (cons #{b0 38176}# #{b1 38177}#))))) - #{tmp 38170}#) - (let ((#{tmp 38178}# - ($sc-dispatch #{x 38168}# '(_ any any)))) - (if (if #{tmp 38178}# + (cons #{args 38485}# + (cons #{b0 38486}# #{b1 38487}#))))) + #{tmp 38480}#) + (let ((#{tmp 38488}# + ($sc-dispatch #{x 38478}# '(_ any any)))) + (if (if #{tmp 38488}# (@apply - (lambda (#{id 38182}# #{val 38183}#) + (lambda (#{id 38492}# #{val 38493}#) (identifier? '#(syntax-object x @@ -23582,9 +23518,9 @@ #(ribcage #(id val) #((top) (top)) - #("i38160" "i38161")) + #("i38470" "i38471")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i38147")) + #(ribcage #(x) #((top)) #("i38457")) #(ribcage (define*) ((top)) @@ -23595,19 +23531,19 @@ ((top)) (hygiene guile)))))) (hygiene guile)))) - #{tmp 38178}#) + #{tmp 38488}#) #f) (@apply - (lambda (#{id 38184}# #{val 38185}#) + (lambda (#{id 38494}# #{val 38495}#) (list '#(syntax-object define ((top) #(ribcage #(id val) #((top) (top)) - #("i38164" "i38165")) + #("i38474" "i38475")) #(ribcage () () ()) - #(ribcage #(x) #((top)) #("i38147")) + #(ribcage #(x) #((top)) #("i38457")) #(ribcage (define*) ((top)) @@ -23618,11 +23554,11 @@ ((top)) (hygiene guile)))))) (hygiene guile)) - #{id 38184}# - #{val 38185}#)) - #{tmp 38178}#) + #{id 38494}# + #{val 38495}#)) + #{tmp 38488}#) (syntax-violation #f "source expression failed to match any pattern" - #{x 38168}#)))))))) + #{x 38478}#)))))))) diff --git a/module/ice-9/psyntax.scm b/module/ice-9/psyntax.scm index 7c3024bf8..76edfb043 100644 --- a/module/ice-9/psyntax.scm +++ b/module/ice-9/psyntax.scm @@ -952,17 +952,17 @@ ;; expanding - (define chi-sequence + (define expand-sequence (lambda (body r w s mod) (build-sequence s (let dobody ((body body) (r r) (w w) (mod mod)) (if (null? body) '() - (let ((first (chi (car body) r w mod))) + (let ((first (expand (car body) r w mod))) (cons first (dobody (cdr body) r w mod)))))))) ;; At top-level, we allow mixed definitions and expressions. Like - ;; chi-body we expand in two passes. + ;; expand-body we expand in two passes. ;; ;; First, from left to right, we expand just enough to know what ;; expressions are definitions, syntax definitions, and splicing @@ -975,7 +975,7 @@ ;; expansions of all normal definitions and expressions in the ;; sequence. ;; - (define chi-top-sequence + (define expand-top-sequence (lambda (body r w s m esew mod) (let* ((r (cons '("placeholder" . (placeholder)) r)) (ribcage (make-empty-ribcage)) @@ -1027,11 +1027,11 @@ (record-definition! id var) (list (if (eq? m 'c&e) - (let ((x (build-global-definition s var (chi e r w mod)))) + (let ((x (build-global-definition s var (expand e r w mod)))) (top-level-eval-hook x mod) (lambda () x)) (lambda () - (build-global-definition s var (chi e r w mod))))))) + (build-global-definition s var (expand e r w mod))))))) ((define-syntax-form define-syntax-parameter-form) (let* ((id (wrap value w mod)) (label (gen-label)) @@ -1043,23 +1043,23 @@ ((c) (cond ((memq 'compile esew) - (let ((e (chi-install-global var type (chi e r w mod)))) + (let ((e (expand-install-global var type (expand e r w mod)))) (top-level-eval-hook e mod) (if (memq 'load esew) (list (lambda () e)) '()))) ((memq 'load esew) (list (lambda () - (chi-install-global var type (chi e r w mod))))) + (expand-install-global var type (expand e r w mod))))) (else '()))) ((c&e) - (let ((e (chi-install-global var type (chi e r w mod)))) + (let ((e (expand-install-global var type (expand e r w mod)))) (top-level-eval-hook e mod) (list (lambda () e)))) (else (if (memq 'eval esew) (top-level-eval-hook - (chi-install-global var type (chi e r w mod)) + (expand-install-global var type (expand e r w mod)) mod)) '())))) ((begin-form) @@ -1067,13 +1067,13 @@ ((_ e1 ...) (parse #'(e1 ...) r w s m esew mod)))) ((local-syntax-form) - (chi-local-syntax value e r w s mod + (expand-local-syntax value e r w s mod (lambda (forms r w s mod) (parse forms r w s m esew mod)))) ((eval-when-form) (syntax-case e () ((_ (x ...) e1 e2 ...) - (let ((when-list (chi-when-list e #'(x ...) w)) + (let ((when-list (parse-when-list e #'(x ...))) (body #'(e1 e2 ...))) (define (recurse m esew) (parse body r w s m esew mod)) @@ -1085,7 +1085,7 @@ (begin (if (memq 'expand when-list) (top-level-eval-hook - (chi-top-sequence body r w s 'e '(eval) mod) + (expand-top-sequence body r w s 'e '(eval) mod) mod)) '()))) ((memq 'load when-list) @@ -1100,7 +1100,7 @@ (memq 'expand when-list) (and (eq? m 'c&e) (memq 'eval when-list))) (top-level-eval-hook - (chi-top-sequence body r w s 'e '(eval) mod) + (expand-top-sequence body r w s 'e '(eval) mod) mod) '()) (else @@ -1108,18 +1108,18 @@ (else (list (if (eq? m 'c&e) - (let ((x (chi-expr type value e r w s mod))) + (let ((x (expand-expr type value e r w s mod))) (top-level-eval-hook x mod) (lambda () x)) (lambda () - (chi-expr type value e r w s mod))))))))) + (expand-expr type value e r w s mod))))))))) (let ((exps (map (lambda (x) (x)) (reverse (parse body r w s m esew mod))))) (if (null? exps) (build-void s) (build-sequence s exps)))))) - (define chi-install-global + (define expand-install-global (lambda (name type e) (build-global-definition no-source @@ -1135,24 +1135,21 @@ (build-data no-source 'macro) e)))))) - (define chi-when-list - (lambda (e when-list w) + (define parse-when-list + (lambda (e when-list) ;; `when-list' is syntax'd version of list of situations. We ;; could match these keywords lexically, via free-id=?, but then ;; we twingle the definition of eval-when to the bindings of ;; eval, load, expand, and compile, which is totally unintended. ;; So do a symbolic match instead. - (let f ((when-list when-list) (situations '())) - (if (null? when-list) - situations - (f (cdr when-list) - (cons (let ((x (syntax->datum (car when-list)))) - (if (memq x '(compile load eval expand)) - x - (syntax-violation 'eval-when - "invalid situation" - e (wrap (car when-list) w #f)))) - situations)))))) + (let ((result (strip when-list empty-wrap))) + (let lp ((l result)) + (if (null? l) + result + (if (memq (car l) '(compile load eval expand)) + (lp (cdr l)) + (syntax-violation 'eval-when "invalid situation" e + (car l)))))))) ;; syntax-type returns six values: type, value, e, w, s, and mod. The ;; first two are described in the table below. @@ -1203,7 +1200,7 @@ ((macro) (if for-car? (values type value e w s mod) - (syntax-type (chi-macro value e r w s rib mod) + (syntax-type (expand-macro value e r w s rib mod) r empty-wrap s rib mod #f))) ((global) ;; Toplevel definitions may resolve to bindings with @@ -1225,7 +1222,7 @@ (values 'global-call (make-syntax-object fval w fmod) e w s mod)) ((macro) - (syntax-type (chi-macro fval e r w s rib mod) + (syntax-type (expand-macro fval e r w s rib mod) r empty-wrap s rib mod for-car?)) ((module-ref) (call-with-values (lambda () (fval e r w)) @@ -1279,14 +1276,14 @@ ((self-evaluating? e) (values 'constant #f e w s mod)) (else (values 'other #f e w s mod))))) - (define chi + (define expand (lambda (e r w mod) (call-with-values (lambda () (syntax-type e r w (source-annotation e) #f mod #f)) (lambda (type value e w s mod) - (chi-expr type value e r w s mod))))) + (expand-expr type value e r w s mod))))) - (define chi-expr + (define expand-expr (lambda (type value e r w s mod) (case type ((lexical) @@ -1297,9 +1294,9 @@ ((module-ref) (call-with-values (lambda () (value e r w)) (lambda (e r w s mod) - (chi e r w mod)))) + (expand e r w mod)))) ((lexical-call) - (chi-call + (expand-call (let ((id (car e))) (build-lexical-reference 'fun (source-annotation id) (if (syntax-object? id) @@ -1308,7 +1305,7 @@ value)) e r w s mod)) ((global-call) - (chi-call + (expand-call (build-global-reference (source-annotation (car e)) (if (syntax-object? value) (syntax-object-expression value) @@ -1319,19 +1316,19 @@ e r w s mod)) ((constant) (build-data s (strip (source-wrap e w s mod) empty-wrap))) ((global) (build-global-reference s value mod)) - ((call) (chi-call (chi (car e) r w mod) e r w s mod)) + ((call) (expand-call (expand (car e) r w mod) e r w s mod)) ((begin-form) (syntax-case e () - ((_ e1 e2 ...) (chi-sequence #'(e1 e2 ...) r w s mod)))) + ((_ e1 e2 ...) (expand-sequence #'(e1 e2 ...) r w s mod)))) ((local-syntax-form) - (chi-local-syntax value e r w s mod chi-sequence)) + (expand-local-syntax value e r w s mod expand-sequence)) ((eval-when-form) (syntax-case e () ((_ (x ...) e1 e2 ...) - (let ((when-list (chi-when-list e #'(x ...) w))) + (let ((when-list (parse-when-list e #'(x ...)))) (if (memq 'eval when-list) - (chi-sequence #'(e1 e2 ...) r w s mod) - (chi-void)))))) + (expand-sequence #'(e1 e2 ...) r w s mod) + (expand-void)))))) ((define-form define-syntax-form define-syntax-parameter-form) (syntax-violation #f "definition in expression context" e (wrap value w mod))) @@ -1344,12 +1341,12 @@ (else (syntax-violation #f "unexpected syntax" (source-wrap e w s mod)))))) - (define chi-call + (define expand-call (lambda (x e r w s mod) (syntax-case e () ((e0 e1 ...) (build-call s x - (map (lambda (e) (chi e r w mod)) #'(e1 ...))))))) + (map (lambda (e) (expand e r w mod)) #'(e1 ...))))))) ;; (What follows is my interpretation of what's going on here -- Andy) ;; @@ -1384,7 +1381,7 @@ ;; really nice if we could also annotate introduced expressions with the ;; locations corresponding to the macro definition, but that is not yet ;; possible. - (define chi-macro + (define expand-macro (lambda (p e r w s rib mod) (define rebuild-macro-output (lambda (x m) @@ -1425,7 +1422,7 @@ (rebuild-macro-output (p (source-wrap e (anti-mark w) s mod)) (new-mark)))) - (define chi-body + (define expand-body ;; In processing the forms of the body, we create a new, empty wrap. ;; This wrap is augmented (destructively) each time we discover that ;; the next form is a definition. This is done: @@ -1509,19 +1506,19 @@ (f (cdr forms))))) ids labels var-ids vars vals bindings)))) ((local-syntax-form) - (chi-local-syntax value e er w s mod - (lambda (forms er w s mod) - (parse (let f ((forms forms)) - (if (null? forms) - (cdr body) - (cons (cons er (wrap (car forms) w mod)) - (f (cdr forms))))) - ids labels var-ids vars vals bindings)))) + (expand-local-syntax value e er w s mod + (lambda (forms er w s mod) + (parse (let f ((forms forms)) + (if (null? forms) + (cdr body) + (cons (cons er (wrap (car forms) w mod)) + (f (cdr forms))))) + ids labels var-ids vars vals bindings)))) (else ; found a non-definition (if (null? ids) (build-sequence no-source (map (lambda (x) - (chi (cdr x) (car x) empty-wrap mod)) + (expand (cdr x) (car x) empty-wrap mod)) (cons (cons er (source-wrap e w s mod)) (cdr body)))) (begin @@ -1540,7 +1537,7 @@ (macros-only-env er)))) (set-cdr! b (eval-local-transformer - (chi (cddr b) r-cache empty-wrap mod) + (expand (cddr b) r-cache empty-wrap mod) mod)) (if (eq? (car b) 'syntax-parameter) (set-cdr! b (list (cdr b)))) @@ -1551,15 +1548,15 @@ (reverse (map syntax->datum var-ids)) (reverse vars) (map (lambda (x) - (chi (cdr x) (car x) empty-wrap mod)) + (expand (cdr x) (car x) empty-wrap mod)) (reverse vals)) (build-sequence no-source (map (lambda (x) - (chi (cdr x) (car x) empty-wrap mod)) + (expand (cdr x) (car x) empty-wrap mod)) (cons (cons er (source-wrap e w s mod)) (cdr body))))))))))))))))) - (define chi-local-syntax + (define expand-local-syntax (lambda (rec? e r w s mod k) (syntax-case e () ((_ ((id val) ...) e1 e2 ...) @@ -1576,7 +1573,7 @@ (map (lambda (x) (make-binding 'macro (eval-local-transformer - (chi x trans-r w mod) + (expand x trans-r w mod) mod))) #'(val ...))) r) @@ -1593,7 +1590,7 @@ p (syntax-violation #f "nonprocedure transformer" p))))) - (define chi-void + (define expand-void (lambda () (build-void no-source))) @@ -1623,7 +1620,7 @@ orig-args)))) (req orig-args '()))) - (define chi-simple-lambda + (define expand-simple-lambda (lambda (e r w s mod req rest meta body) (let* ((ids (if rest (append req (list rest)) req)) (vars (map gen-var ids)) @@ -1632,10 +1629,10 @@ s (map syntax->datum req) (and rest (syntax->datum rest)) vars meta - (chi-body body (source-wrap e w s mod) - (extend-var-env labels vars r) - (make-binding-wrap ids labels w) - mod))))) + (expand-body body (source-wrap e w s mod) + (extend-var-env labels vars r) + (make-binding-wrap ids labels w) + mod))))) (define lambda*-formals (lambda (orig-args) @@ -1718,16 +1715,16 @@ orig-args)))) (req orig-args '()))) - (define chi-lambda-case + (define expand-lambda-case (lambda (e r w s mod get-formals clauses) - (define (expand-req req opt rest kw body) + (define (parse-req req opt rest kw body) (let ((vars (map gen-var req)) (labels (gen-labels req))) (let ((r* (extend-var-env labels vars r)) (w* (make-binding-wrap req labels w))) - (expand-opt (map syntax->datum req) - opt rest kw body (reverse vars) r* w* '() '())))) - (define (expand-opt req opt rest kw body vars r* w* out inits) + (parse-opt (map syntax->datum req) + opt rest kw body (reverse vars) r* w* '() '())))) + (define (parse-opt req opt rest kw body vars r* w* out inits) (cond ((pair? opt) (syntax-case (car opt) () @@ -1736,27 +1733,27 @@ (l (gen-labels (list v))) (r** (extend-var-env l (list v) r*)) (w** (make-binding-wrap (list #'id) l w*))) - (expand-opt req (cdr opt) rest kw body (cons v vars) - r** w** (cons (syntax->datum #'id) out) - (cons (chi #'i r* w* mod) inits)))))) + (parse-opt req (cdr opt) rest kw body (cons v vars) + r** w** (cons (syntax->datum #'id) out) + (cons (expand #'i r* w* mod) inits)))))) (rest (let* ((v (gen-var rest)) (l (gen-labels (list v))) (r* (extend-var-env l (list v) r*)) (w* (make-binding-wrap (list rest) l w*))) - (expand-kw req (if (pair? out) (reverse out) #f) - (syntax->datum rest) - (if (pair? kw) (cdr kw) kw) - body (cons v vars) r* w* - (if (pair? kw) (car kw) #f) - '() inits))) + (parse-kw req (if (pair? out) (reverse out) #f) + (syntax->datum rest) + (if (pair? kw) (cdr kw) kw) + body (cons v vars) r* w* + (if (pair? kw) (car kw) #f) + '() inits))) (else - (expand-kw req (if (pair? out) (reverse out) #f) #f - (if (pair? kw) (cdr kw) kw) - body vars r* w* - (if (pair? kw) (car kw) #f) - '() inits)))) - (define (expand-kw req opt rest kw body vars r* w* aok out inits) + (parse-kw req (if (pair? out) (reverse out) #f) #f + (if (pair? kw) (cdr kw) kw) + body vars r* w* + (if (pair? kw) (car kw) #f) + '() inits)))) + (define (parse-kw req opt rest kw body vars r* w* aok out inits) (cond ((pair? kw) (syntax-case (car kw) () @@ -1765,31 +1762,31 @@ (l (gen-labels (list v))) (r** (extend-var-env l (list v) r*)) (w** (make-binding-wrap (list #'id) l w*))) - (expand-kw req opt rest (cdr kw) body (cons v vars) - r** w** aok - (cons (list (syntax->datum #'k) - (syntax->datum #'id) - v) - out) - (cons (chi #'i r* w* mod) inits)))))) + (parse-kw req opt rest (cdr kw) body (cons v vars) + r** w** aok + (cons (list (syntax->datum #'k) + (syntax->datum #'id) + v) + out) + (cons (expand #'i r* w* mod) inits)))))) (else - (expand-body req opt rest - (if (or aok (pair? out)) (cons aok (reverse out)) #f) - body (reverse vars) r* w* (reverse inits) '())))) - (define (expand-body req opt rest kw body vars r* w* inits meta) + (parse-body req opt rest + (if (or aok (pair? out)) (cons aok (reverse out)) #f) + body (reverse vars) r* w* (reverse inits) '())))) + (define (parse-body req opt rest kw body vars r* w* inits meta) (syntax-case body () ((docstring e1 e2 ...) (string? (syntax->datum #'docstring)) - (expand-body req opt rest kw #'(e1 e2 ...) vars r* w* inits - (append meta - `((documentation - . ,(syntax->datum #'docstring)))))) + (parse-body req opt rest kw #'(e1 e2 ...) vars r* w* inits + (append meta + `((documentation + . ,(syntax->datum #'docstring)))))) ((#((k . v) ...) e1 e2 ...) - (expand-body req opt rest kw #'(e1 e2 ...) vars r* w* inits - (append meta (syntax->datum #'((k . v) ...))))) + (parse-body req opt rest kw #'(e1 e2 ...) vars r* w* inits + (append meta (syntax->datum #'((k . v) ...))))) ((e1 e2 ...) (values meta req opt rest kw inits vars - (chi-body #'(e1 e2 ...) (source-wrap e w s mod) - r* w* mod))))) + (expand-body #'(e1 e2 ...) (source-wrap e w s mod) + r* w* mod))))) (syntax-case clauses () (() (values '() #f)) @@ -1797,12 +1794,12 @@ (call-with-values (lambda () (get-formals #'args)) (lambda (req opt rest kw) (call-with-values (lambda () - (expand-req req opt rest kw #'(e1 e2 ...))) + (parse-req req opt rest kw #'(e1 e2 ...))) (lambda (meta req opt rest kw inits vars body) (call-with-values (lambda () - (chi-lambda-case e r w s mod get-formals - #'((args* e1* e2* ...) ...))) + (expand-lambda-case e r w s mod get-formals + #'((args* e1* e2* ...) ...))) (lambda (meta* else*) (values (append meta meta*) @@ -1900,9 +1897,9 @@ (map (lambda (x) (make-binding 'macro - (eval-local-transformer (chi x trans-r w mod) mod))) + (eval-local-transformer (expand x trans-r w mod) mod))) #'(val ...))))) - (chi-body #'(e1 e2 ...) + (expand-body #'(e1 e2 ...) (source-wrap e w s mod) (extend-env names bindings r) w @@ -2094,7 +2091,7 @@ ((#((k . v) ...) e1 e2 ...) (lp #'(e1 e2 ...) (append meta (syntax->datum #'((k . v) ...))))) - (_ (chi-simple-lambda e r w s mod req rest meta body))))))) + (_ (expand-simple-lambda e r w s mod req rest meta body))))))) (_ (syntax-violation 'lambda "bad lambda" e))))) (global-extend 'core 'lambda* @@ -2103,8 +2100,8 @@ ((_ args e1 e2 ...) (call-with-values (lambda () - (chi-lambda-case e r w s mod - lambda*-formals #'((args e1 e2 ...)))) + (expand-lambda-case e r w s mod + lambda*-formals #'((args e1 e2 ...)))) (lambda (meta lcase) (build-case-lambda s meta lcase)))) (_ (syntax-violation 'lambda "bad lambda*" e))))) @@ -2115,9 +2112,9 @@ ((_ (args e1 e2 ...) (args* e1* e2* ...) ...) (call-with-values (lambda () - (chi-lambda-case e r w s mod - lambda-formals - #'((args e1 e2 ...) (args* e1* e2* ...) ...))) + (expand-lambda-case e r w s mod + lambda-formals + #'((args e1 e2 ...) (args* e1* e2* ...) ...))) (lambda (meta lcase) (build-case-lambda s meta lcase)))) (_ (syntax-violation 'case-lambda "bad case-lambda" e))))) @@ -2128,16 +2125,16 @@ ((_ (args e1 e2 ...) (args* e1* e2* ...) ...) (call-with-values (lambda () - (chi-lambda-case e r w s mod - lambda*-formals - #'((args e1 e2 ...) (args* e1* e2* ...) ...))) + (expand-lambda-case e r w s mod + lambda*-formals + #'((args e1 e2 ...) (args* e1* e2* ...) ...))) (lambda (meta lcase) (build-case-lambda s meta lcase)))) (_ (syntax-violation 'case-lambda "bad case-lambda*" e))))) (global-extend 'core 'let (let () - (define (chi-let e r w s mod constructor ids vals exps) + (define (expand-let e r w s mod constructor ids vals exps) (if (not (valid-bound-ids? ids)) (syntax-violation 'let "duplicate bound variable" e) (let ((labels (gen-labels ids)) @@ -2147,25 +2144,25 @@ (constructor s (map syntax->datum ids) new-vars - (map (lambda (x) (chi x r w mod)) vals) - (chi-body exps (source-wrap e nw s mod) - nr nw mod)))))) + (map (lambda (x) (expand x r w mod)) vals) + (expand-body exps (source-wrap e nw s mod) + nr nw mod)))))) (lambda (e r w s mod) (syntax-case e () ((_ ((id val) ...) e1 e2 ...) (and-map id? #'(id ...)) - (chi-let e r w s mod - build-let - #'(id ...) - #'(val ...) - #'(e1 e2 ...))) + (expand-let e r w s mod + build-let + #'(id ...) + #'(val ...) + #'(e1 e2 ...))) ((_ f ((id val) ...) e1 e2 ...) (and (id? #'f) (and-map id? #'(id ...))) - (chi-let e r w s mod - build-named-let - #'(f id ...) - #'(val ...) - #'(e1 e2 ...))) + (expand-let e r w s mod + build-named-let + #'(f id ...) + #'(val ...) + #'(e1 e2 ...))) (_ (syntax-violation 'let "bad let" (source-wrap e w s mod))))))) @@ -2184,9 +2181,9 @@ (build-letrec s #f (map syntax->datum ids) new-vars - (map (lambda (x) (chi x r w mod)) #'(val ...)) - (chi-body #'(e1 e2 ...) - (source-wrap e w s mod) r w mod))))))) + (map (lambda (x) (expand x r w mod)) #'(val ...)) + (expand-body #'(e1 e2 ...) + (source-wrap e w s mod) r w mod))))))) (_ (syntax-violation 'letrec "bad letrec" (source-wrap e w s mod)))))) @@ -2205,9 +2202,9 @@ (build-letrec s #t (map syntax->datum ids) new-vars - (map (lambda (x) (chi x r w mod)) #'(val ...)) - (chi-body #'(e1 e2 ...) - (source-wrap e w s mod) r w mod))))))) + (map (lambda (x) (expand x r w mod)) #'(val ...)) + (expand-body #'(e1 e2 ...) + (source-wrap e w s mod) r w mod))))))) (_ (syntax-violation 'letrec* "bad letrec*" (source-wrap e w s mod)))))) @@ -2223,14 +2220,14 @@ (case type ((lexical) (build-lexical-assignment s (syntax->datum #'id) value - (chi #'val r w mod))) + (expand #'val r w mod))) ((global) - (build-global-assignment s value (chi #'val r w mod) id-mod)) + (build-global-assignment s value (expand #'val r w mod) id-mod)) ((macro) (if (procedure-property value 'variable-transformer) - ;; As syntax-type does, call chi-macro with + ;; As syntax-type does, call expand-macro with ;; the mod of the expression. Hmm. - (chi (chi-macro value e r w s #f mod) r empty-wrap mod) + (expand (expand-macro value e r w s #f mod) r empty-wrap mod) (syntax-violation 'set! "not a variable transformer" (wrap e w mod) (wrap #'id w id-mod)))) @@ -2245,7 +2242,7 @@ (lambda (type value ee ww ss modmod) (case type ((module-ref) - (let ((val (chi #'val r w mod))) + (let ((val (expand #'val r w mod))) (call-with-values (lambda () (value #'(head tail ...) r w)) (lambda (e r w s* mod) (syntax-case e () @@ -2254,8 +2251,8 @@ val mod))))))) (else (build-call s - (chi #'(setter head) r w mod) - (map (lambda (e) (chi e r w mod)) + (expand #'(setter head) r w mod) + (map (lambda (e) (expand e r w mod)) #'(tail ... val)))))))) (_ (syntax-violation 'set! "bad set!" (source-wrap e w s mod)))))) @@ -2301,15 +2298,15 @@ ((_ test then) (build-conditional s - (chi #'test r w mod) - (chi #'then r w mod) + (expand #'test r w mod) + (expand #'then r w mod) (build-void no-source))) ((_ test then else) (build-conditional s - (chi #'test r w mod) - (chi #'then r w mod) - (chi #'else r w mod)))))) + (expand #'test r w mod) + (expand #'then r w mod) + (expand #'else r w mod)))))) (global-extend 'core 'with-fluids (lambda (e r w s mod) @@ -2317,10 +2314,10 @@ ((_ ((fluid val) ...) b b* ...) (build-dynlet s - (map (lambda (x) (chi x r w mod)) #'(fluid ...)) - (map (lambda (x) (chi x r w mod)) #'(val ...)) - (chi-body #'(b b* ...) - (source-wrap e w s mod) r w mod)))))) + (map (lambda (x) (expand x r w mod)) #'(fluid ...)) + (map (lambda (x) (expand x r w mod)) #'(val ...)) + (expand-body #'(b b* ...) + (source-wrap e w s mod) r w mod)))))) (global-extend 'begin 'begin '()) @@ -2410,7 +2407,7 @@ no-source 'apply (list (build-simple-lambda no-source (map syntax->datum ids) #f new-vars '() - (chi exp + (expand exp (extend-env labels (map (lambda (var level) @@ -2467,14 +2464,14 @@ (and-map (lambda (x) (not (free-id=? #'pat x))) (cons #'(... ...) keys))) (if (free-id=? #'pad #'_) - (chi #'exp r empty-wrap mod) + (expand #'exp r empty-wrap mod) (let ((labels (list (gen-label))) (var (gen-var #'pat))) (build-call no-source (build-simple-lambda no-source (list (syntax->datum #'pat)) #f (list var) '() - (chi #'exp + (expand #'exp (extend-env labels (list (make-binding 'syntax `(,var . 0))) r) @@ -2505,10 +2502,10 @@ #'(key ...) #'(m ...) r mod)) - (list (chi #'val r empty-wrap mod)))) + (list (expand #'val r empty-wrap mod)))) (syntax-violation 'syntax-case "invalid literals list" e)))))))) - ;; The portable macroexpand seeds chi-top's mode m with 'e (for + ;; The portable macroexpand seeds expand-top's mode m with 'e (for ;; evaluating) and esew (which stands for "eval syntax expanders ;; when") with '(eval). In Chez Scheme, m is set to 'c instead of e ;; if we are compiling a file, and esew is set to @@ -2519,8 +2516,8 @@ ;; the object file if we are compiling a file. (set! macroexpand (lambda* (x #:optional (m 'e) (esew '(eval))) - (chi-top-sequence (list x) null-env top-wrap #f m esew - (cons 'hygiene (module-name (current-module)))))) + (expand-top-sequence (list x) null-env top-wrap #f m esew + (cons 'hygiene (module-name (current-module)))))) (set! identifier? (lambda (x) diff --git a/module/ice-9/vlist.scm b/module/ice-9/vlist.scm index 4b40b9932..8c7c87b72 100644 --- a/module/ice-9/vlist.scm +++ b/module/ice-9/vlist.scm @@ -66,9 +66,7 @@ ;;; (define block-growth-factor - (let ((f (make-fluid))) - (fluid-set! f 2) - f)) + (make-fluid 2)) (define-syntax-rule (define-inline (name formals ...) body ...) ;; Work around the lack of an inliner. diff --git a/module/language/elisp/runtime.scm b/module/language/elisp/runtime.scm index 025dc9629..0c84d102b 100644 --- a/module/language/elisp/runtime.scm +++ b/module/language/elisp/runtime.scm @@ -1,6 +1,6 @@ ;;; Guile Emacs Lisp -;;; Copyright (C) 2009, 2010 Free Software Foundation, Inc. +;;; Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc. ;;; ;;; This library is free software; you can redistribute it and/or ;;; modify it under the terms of the GNU Lesser General Public @@ -131,8 +131,8 @@ ((_ name value) (with-syntax ((scheme-name (make-id #'name 'macro- #'name))) #'(begin - (define-public scheme-name (make-fluid)) - (fluid-set! scheme-name (cons 'macro value)))))))) + (define-public scheme-name + (make-fluid (cons 'macro value))))))))) (define-syntax defspecial (lambda (x) @@ -140,10 +140,10 @@ ((_ name args body ...) (with-syntax ((scheme-name (make-id #'name 'compile- #'name))) #'(begin - (define scheme-name (make-fluid)) - (fluid-set! scheme-name - (cons 'special-operator - (lambda args body ...))))))))) + (define scheme-name + (make-fluid + (cons 'special-operator + (lambda args body ...)))))))))) ;;; Call a guile-primitive that may be rebound for elisp and thus needs ;;; absolute addressing. diff --git a/module/scripts/compile.scm b/module/scripts/compile.scm index 0651c6804..20db94463 100644 --- a/module/scripts/compile.scm +++ b/module/scripts/compile.scm @@ -30,6 +30,7 @@ (define-module (scripts compile) #:use-module ((system base compile) #:select (compile-file)) + #:use-module (system base target) #:use-module (system base message) #:use-module (srfi srfi-1) #:use-module (srfi srfi-13) @@ -88,7 +89,12 @@ (lambda (opt name arg result) (if (assoc-ref result 'to) (fail "`--to' option cannot be specified more than once") - (alist-cons 'to (string->symbol arg) result)))))) + (alist-cons 'to (string->symbol arg) result)))) + (option '(#\T "target") #t #f + (lambda (opt name arg result) + (if (assoc-ref result 'target) + (fail "`--target' option cannot be specified more than once") + (alist-cons 'target arg result)))))) (define (parse-args args) "Parse argument list @var{args} and return an alist with all the relevant @@ -109,7 +115,7 @@ options." (define (show-version) (format #t "compile (GNU Guile) ~A~%" (version)) - (format #t "Copyright (C) 2009 Free Software Foundation, Inc. + (format #t "Copyright (C) 2009, 2011 Free Software Foundation, Inc. License LGPLv3+: GNU LGPL version 3 or later <http://gnu.org/licenses/lgpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.~%")) @@ -134,6 +140,7 @@ There is NO WARRANTY, to the extent permitted by law.~%")) o))) (from (or (assoc-ref options 'from) 'scheme)) (to (or (assoc-ref options 'to) 'objcode)) + (target (or (assoc-ref options 'target) %host-type)) (input-files (assoc-ref options 'input-files)) (output-file (assoc-ref options 'output-file)) (load-path (assoc-ref options 'load-path))) @@ -152,6 +159,7 @@ Compile each Guile source file FILE into a Guile object. -f, --from=LANG specify a source language other than `scheme' -t, --to=LANG specify a target language other than `objcode' + -T, --target=TRIPLET produce bytecode for host TRIPLET Note that auto-compilation will be turned off. @@ -171,11 +179,13 @@ Report bugs to <~A>.~%" (for-each (lambda (file) (format #t "wrote `~A'\n" (with-fluids ((*current-warning-prefix* "")) - (compile-file file - #:output-file output-file - #:from from - #:to to - #:opts compile-opts)))) + (with-target target + (lambda () + (compile-file file + #:output-file output-file + #:from from + #:to to + #:opts compile-opts)))))) input-files))) (define main compile) diff --git a/module/srfi/srfi-39.scm b/module/srfi/srfi-39.scm index dba86fdbb..d1c46d028 100644 --- a/module/srfi/srfi-39.scm +++ b/module/srfi/srfi-39.scm @@ -57,37 +57,41 @@ (define get-conv-tag (lambda () 'get-conv)) ;; arbitrary unique (as per eq?) value (define (make-parameter/helper val conv) - (let ((value (make-fluid)) - (conv conv)) - (begin - (fluid-set! value (conv val)) - (lambda new-value - (cond - ((null? new-value) (fluid-ref value)) - ((eq? (car new-value) get-fluid-tag) value) - ((eq? (car new-value) get-conv-tag) conv) - ((null? (cdr new-value)) (fluid-set! value (conv (car new-value)))) - (else (error "make-parameter expects 0 or 1 arguments" new-value))))))) + (let ((fluid (make-fluid (conv val)))) + (case-lambda + (() + (fluid-ref fluid)) + ((new-value) + (cond + ((eq? new-value get-fluid-tag) fluid) + ((eq? new-value get-conv-tag) conv) + (else (fluid-set! fluid (conv new-value)))))))) (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) - ((@ (guile) current-input-port)) - (apply set-current-input-port new-value))) +(define current-input-port + (case-lambda + (() + ((@ (guile) current-input-port))) + ((new-value) + (set-current-input-port new-value)))) -(define (current-output-port . new-value) - (if (null? new-value) - ((@ (guile) current-output-port)) - (apply set-current-output-port new-value))) +(define current-output-port + (case-lambda + (() + ((@ (guile) current-output-port))) + ((new-value) + (set-current-output-port new-value)))) -(define (current-error-port . new-value) - (if (null? new-value) - ((@ (guile) current-error-port)) - (apply set-current-error-port new-value))) +(define current-error-port + (case-lambda + (() + ((@ (guile) current-error-port))) + ((new-value) + (set-current-error-port new-value)))) (define port-list (list current-input-port current-output-port current-error-port)) diff --git a/module/system/base/language.scm b/module/system/base/language.scm index 10d2d7408..5b27bc98d 100644 --- a/module/system/base/language.scm +++ b/module/system/base/language.scm @@ -111,7 +111,7 @@ ;;; Current language ;;; -(define *current-language* (make-fluid)) +(define *current-language* (make-fluid 'scheme)) (define (current-language) - (or (fluid-ref *current-language*) 'scheme)) + (fluid-ref *current-language*)) diff --git a/module/system/base/message.scm b/module/system/base/message.scm index 95468ca9a..aed35021c 100644 --- a/module/system/base/message.scm +++ b/module/system/base/message.scm @@ -56,15 +56,13 @@ (define *current-warning-port* ;; The port where warnings are sent. - (make-fluid)) + (make-fluid (current-error-port))) (fluid-set! *current-warning-port* (current-error-port)) (define *current-warning-prefix* ;; Prefix string when emitting a warning. - (make-fluid)) - -(fluid-set! *current-warning-prefix* ";;; ") + (make-fluid ";;; ")) (define-record-type <warning-type> diff --git a/module/system/base/target.scm b/module/system/base/target.scm index 573ccca46..a81b3d9f5 100644 --- a/module/system/base/target.scm +++ b/module/system/base/target.scm @@ -21,6 +21,7 @@ (define-module (system base target) #:use-module (rnrs bytevectors) + #:use-module (ice-9 regex) #:export (target-type with-target target-cpu target-vendor target-os @@ -33,44 +34,90 @@ ;;; Target types ;;; -(define %target-type (make-fluid)) +(define %native-word-size + ;; The native word size. Note: don't use `word-size' from + ;; (system vm objcode) to avoid a circular dependency. + ((@ (system foreign) sizeof) '*)) -(define (target-type) - (or (fluid-ref %target-type) - %host-type)) +(define %target-type (make-fluid %host-type)) +(define %target-endianness (make-fluid (native-endianness))) +(define %target-word-size (make-fluid %native-word-size)) (define (validate-target target) (if (or (not (string? target)) (let ((parts (string-split target #\-))) - (or (< 3 (length parts)) + (or (< (length parts) 3) (or-map string-null? parts)))) (error "invalid target" target))) (define (with-target target thunk) (validate-target target) - (with-fluids ((%target-type target)) - (thunk))) + (let ((cpu (triplet-cpu target))) + (with-fluids ((%target-type target) + (%target-endianness (cpu-endianness cpu)) + (%target-word-size (cpu-word-size cpu))) + (thunk)))) + +(define (cpu-endianness cpu) + "Return the endianness for CPU." + (if (string=? cpu (triplet-cpu %host-type)) + (native-endianness) + (cond ((string-match "^i[0-9]86$" cpu) + (endianness little)) + ((member cpu '("x86_64" "ia64" + "powerpcle" "powerpc64le" "mipsel" "mips64el")) + (endianness little)) + ((member cpu '("sparc" "sparc64" "powerpc" "powerpc64" "spu" + "mips" "mips64")) + (endianness big)) + ((string-match "^arm.*el" cpu) + (endianness little)) + (else + (error "unknown CPU endianness" cpu))))) + +(define (cpu-word-size cpu) + "Return the word size for CPU." + (if (string=? cpu (triplet-cpu %host-type)) + %native-word-size + (cond ((string-match "^i[0-9]86$" cpu) 4) + ((string-match "64$" cpu) 8) + ((string-match "64[lbe][lbe]$" cpu) 8) + ((member cpu '("sparc" "powerpc" "mips")) 4) + ((string-match "^arm.*" cpu) 4) + (else "unknown CPU word size" cpu)))) + +(define (triplet-cpu t) + (substring t 0 (string-index t #\-))) + +(define (triplet-vendor t) + (let ((start (1+ (string-index t #\-)))) + (substring t start (string-index t #\- start)))) + +(define (triplet-os t) + (let ((start (1+ (string-index t #\- (1+ (string-index t #\-)))))) + (substring t start))) + + +(define (target-type) + "Return the GNU configuration triplet of the target platform." + (fluid-ref %target-type)) (define (target-cpu) - (let ((t (target-type))) - (substring t 0 (string-index t #\-)))) + "Return the CPU name of the target platform." + (triplet-cpu (target-type))) (define (target-vendor) - (let* ((t (target-type)) - (start (1+ (string-index t #\-)))) - (substring t start (string-index t #\- start)))) + "Return the vendor name of the target platform." + (triplet-vendor (target-type))) (define (target-os) - (let* ((t (target-type)) - (start (1+ (string-index t #\- (1+ (string-index t #\-)))))) - (substring t start))) + "Return the operating system name of the target platform." + (triplet-os (target-type))) (define (target-endianness) - (if (equal? (target-type) %host-type) - (native-endianness) - (error "cross-compilation not yet handled" %host-type (target-type)))) + "Return the endianness object of the target platform." + (fluid-ref %target-endianness)) (define (target-word-size) - (if (equal? (target-type) %host-type) - ((@ (system foreign) sizeof) '*) - (error "cross-compilation not yet handled" %host-type (target-type)))) + "Return the word size, in bytes, of the target platform." + (fluid-ref %target-word-size)) diff --git a/module/system/repl/common.scm b/module/system/repl/common.scm index 718cc0b8c..6c6ee2ae7 100644 --- a/module/system/repl/common.scm +++ b/module/system/repl/common.scm @@ -134,7 +134,9 @@ See <http://www.gnu.org/licenses/lgpl.html>, for more details.") (define %make-repl make-repl) (define* (make-repl lang #:optional debug) - (%make-repl #:language (lookup-language lang) + (%make-repl #:language (if (language? lang) + lang + (lookup-language lang)) #:options (copy-tree repl-default-options) #:tm-stats (times) #:gc-stats (gc-stats) diff --git a/module/texinfo/plain-text.scm b/module/texinfo/plain-text.scm index 93a7c1d99..87e43e5bb 100644 --- a/module/texinfo/plain-text.scm +++ b/module/texinfo/plain-text.scm @@ -1,6 +1,6 @@ ;;;; (texinfo plain-text) -- rendering stexinfo as plain text ;;;; -;;;; Copyright (C) 2009, 2010 Free Software Foundation, Inc. +;;;; Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc. ;;;; Copyright (C) 2003,2004,2009 Andy Wingo <wingo at pobox dot com> ;;;; ;;;; This library is free software; you can redistribute it and/or @@ -41,9 +41,6 @@ (or (arg-ref key %-args) (error "Missing argument:" key %-args))) -(define *indent* (make-fluid)) -(define *itemizer* (make-fluid)) - (define (make-ticker str) (lambda () str)) (define (make-enumerator n) @@ -52,9 +49,8 @@ (set! n (1+ n)) (format #f "~A. " last)))) -(fluid-set! *indent* "") -;; Shouldn't be necessary to do this, but just in case. -(fluid-set! *itemizer* (make-ticker "* ")) +(define *indent* (make-fluid "")) +(define *itemizer* (make-fluid (make-ticker "* "))) (define-macro (with-indent n . body) `(with-fluids ((*indent* (string-append (fluid-ref *indent*) diff --git a/module/web/http.scm b/module/web/http.scm index e8765f32d..dc742a14c 100644 --- a/module/web/http.scm +++ b/module/web/http.scm @@ -470,7 +470,7 @@ ordered alist." val) (define (default-val-validator k val) - (string? val)) + (or (not val) (string? val))) (define (default-val-writer k val port) (if (or (string-index val #\;) @@ -518,9 +518,9 @@ ordered alist." ((pair? elt) (let ((k (car elt)) (v (cdr elt))) - (and (or (string? k) (symbol? k)) + (and (symbol? k) (valid? k v)))) - ((or (string? elt) (symbol? elt)) + ((symbol? elt) (valid? elt #f)) (else #f))))) @@ -611,7 +611,7 @@ ordered alist." (valid? default-val-validator)) (list-of? list (lambda (elt) - (key-value-list? list valid?)))) + (key-value-list? elt valid?)))) (define* (write-param-list list port #:optional (val-writer default-val-writer)) @@ -871,7 +871,10 @@ ordered alist." (cons scheme (parse-key-value-list str default-val-parser delim end))))))) (define (validate-credentials val) - (and (pair? val) (symbol? (car val)) (key-value-list? (cdr val)))) + (and (pair? val) (symbol? (car val)) + (case (car val) + ((basic) (string? (cdr val))) + (else (key-value-list? (cdr val)))))) (define (write-credentials val port) (display (car val) port) @@ -1137,7 +1140,7 @@ phrase\"." (lambda (str) (map string->symbol (split-and-trim str))) (lambda (v) - (list-of? symbol? v)) + (list-of? v symbol?)) (lambda (v port) (write-list v port display ", ")))) @@ -1242,7 +1245,14 @@ phrase\"." ((private no-cache) (and v-str (split-header-names v-str))) (else v-str))) - default-val-validator + (lambda (k v) + (case k + ((max-age max-stale min-fresh s-maxage) + (non-negative-integer? v)) + ((private no-cache) + (or (not v) (list-of-header-names? v))) + (else + (not v)))) (lambda (k v port) (cond ((string? v) (display v port)) @@ -1522,7 +1532,7 @@ phrase\"." (lambda (k v) (if (eq? k 'q) (valid-quality? v) - (string? v))) + (or (not v) (string? v)))) (lambda (k v port) (if (eq? k 'q) (write-quality v port) diff --git a/test-suite/lib.scm b/test-suite/lib.scm index b63c5952e..ecf39245a 100644 --- a/test-suite/lib.scm +++ b/test-suite/lib.scm @@ -425,8 +425,7 @@ (append (current-test-prefix) (list name))) ;;; A fluid containing the current test prefix, as a list. -(define prefix-fluid (make-fluid)) -(fluid-set! prefix-fluid '()) +(define prefix-fluid (make-fluid '())) (define (current-test-prefix) (fluid-ref prefix-fluid)) diff --git a/test-suite/tests/asm-to-bytecode.test b/test-suite/tests/asm-to-bytecode.test index 049e4b2fd..edb9bfd99 100644 --- a/test-suite/tests/asm-to-bytecode.test +++ b/test-suite/tests/asm-to-bytecode.test @@ -1,15 +1,17 @@ ;;;; Assembly to bytecode compilation -*- mode: scheme; coding: utf-8; -*- ;;;; +;;;; 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 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 @@ -19,6 +21,8 @@ #:use-module ((rnrs io ports) #:select (open-bytevector-output-port)) #:use-module (test-suite lib) #:use-module (system vm instruction) + #:use-module (system vm objcode) + #:use-module (system base target) #:use-module (language assembly) #:use-module (language assembly compile-bytecode)) @@ -114,3 +118,80 @@ (uint32 0) ;; metalen make-int8 3 return)))) + + +(define (test-triplet cpu vendor os) + (let ((triplet (string-append cpu "-" vendor "-" os))) + (pass-if (format #f "triplet ~a" triplet) + (with-target triplet + (lambda () + (and (string=? (target-cpu) cpu) + (string=? (target-vendor) vendor) + (string=? (target-os) os))))))) + +(define %objcode-cookie-size + (string-length "GOOF----LE-8-2.0")) + +(define (test-target triplet endian word-size) + (pass-if (format #f "target `~a' honored" triplet) + (call-with-values (lambda () + (open-bytevector-output-port)) + (lambda (p get-objcode) + (with-target triplet + (lambda () + (let ((b (compile-bytecode + '(load-program () 16 #f + (assert-nargs-ee/locals 1) + (make-int8 77) + (toplevel-ref 1) + (local-ref 0) + (mul) + (add) + (return) + (nop) (nop) (nop) + (nop) (nop)) + #f))) + (write-objcode (bytecode->objcode b) p) + (let ((cookie (make-bytevector %objcode-cookie-size)) + (expected (format #f "GOOF----~a-~a-~a" + (cond ((eq? endian (endianness little)) + "LE") + ((eq? endian (endianness big)) + "BE") + (else + (error "unknown endianness" + endian))) + word-size + (effective-version)))) + (bytevector-copy! (get-objcode) 0 cookie 0 + %objcode-cookie-size) + (string=? (utf8->string cookie) expected))))))))) + +(with-test-prefix "cross-compilation" + + (test-triplet "i586" "pc" "gnu0.3") + (test-triplet "x86_64" "unknown" "linux-gnu") + (test-triplet "x86_64" "unknown" "kfreebsd-gnu") + + (test-target "i586-pc-gnu0.3" (endianness little) 4) + (test-target "x86_64-pc-linux-gnu" (endianness little) 8) + (test-target "powerpc-unknown-linux-gnu" (endianness big) 4) + (test-target "sparc64-unknown-freebsd8.2" (endianness big) 8) + + (pass-if-exception "unknown target" + exception:miscellaneous-error + (call-with-values (lambda () + (open-bytevector-output-port)) + (lambda (p get-objcode) + (let* ((b (compile-bytecode '(load-program () 3 #f + (make-int8 77) + (return)) + #f)) + (o (bytecode->objcode b))) + (with-target "fcpu-unknown-gnu1.0" + (lambda () + (write-objcode o p)))))))) + +;; Local Variables: +;; eval: (put 'with-target 'scheme-indent-function 1) +;; End: diff --git a/test-suite/tests/bytevectors.test b/test-suite/tests/bytevectors.test index 081e4ee47..3007434c4 100644 --- a/test-suite/tests/bytevectors.test +++ b/test-suite/tests/bytevectors.test @@ -1,6 +1,6 @@ ;;;; bytevectors.test --- R6RS bytevectors. -*- mode: scheme; coding: utf-8; -*- ;;;; -;;;; Copyright (C) 2009, 2010 Free Software Foundation, Inc. +;;;; Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc. ;;;; Ludovic Courtès ;;;; ;;;; This library is free software; you can redistribute it and/or @@ -42,7 +42,14 @@ (and (bytevector=? (make-bytevector 20 7) (make-bytevector 20 7)) (not (bytevector=? (make-bytevector 20 7) - (make-bytevector 20 0)))))) + (make-bytevector 20 0))))) + + (pass-if "bytevector-copy! overlapping" + ;; See <http://debbugs.gnu.org/10070>. + (let ((b (u8-list->bytevector '(1 2 3 4 5 6 7 8)))) + (bytevector-copy! b 0 b 3 4) + (bytevector->u8-list b) + (bytevector=? b #vu8(1 2 3 1 2 3 4 8))))) (with-test-prefix/c&e "2.3 Operations on Bytes and Octets" diff --git a/test-suite/tests/eval.test b/test-suite/tests/eval.test index 9d6bc6d94..a128cd7e1 100644 --- a/test-suite/tests/eval.test +++ b/test-suite/tests/eval.test @@ -231,10 +231,10 @@ (with-test-prefix "define set procedure-name" - (expect-fail "closure" + (pass-if "closure" (eq? 'foo-closure (procedure-name bar-closure))) - (expect-fail "procedure-with-setter" + (expect-fail "procedure-with-setter" ; FIXME: `pass-if' when it's supported (eq? 'foo-pws (procedure-name bar-pws)))) ;;; @@ -330,78 +330,49 @@ 0)) (with-test-prefix "stacks" - (with-debugging-evaluator - - (pass-if "stack involving a subr" - ;; The subr involving the error must appear exactly once on the stack. - (catch 'result - (lambda () - (throw 'unresolved) - (start-stack 'foo - (lazy-catch 'wrong-type-arg - (lambda () - ;; Trigger a `wrong-type-arg' exception. - (fluid-ref 'not-a-fluid)) - (lambda _ - (let* ((stack (make-stack #t)) - (frames (stack->frames stack))) - (throw 'result - (count (lambda (frame) - (and (frame-procedure? frame) - (eq? (frame-procedure frame) - fluid-ref))) - frames))))))) - (lambda (key result) - (= 1 result)))) - - (pass-if "stack involving a gsubr" - ;; The gsubr involving the error must appear exactly once on the stack. - ;; This is less obvious since gsubr application may require an - ;; additional `SCM_APPLY ()' call, which should not be visible to the - ;; application. - (catch 'result - (lambda () - (throw 'unresolved) - (start-stack 'foo - (lazy-catch 'wrong-type-arg - (lambda () - ;; Trigger a `wrong-type-arg' exception. - (hashq-ref 'wrong 'type 'arg)) - (lambda _ - (let* ((stack (make-stack #t)) - (frames (stack->frames stack))) - (throw 'result - (count (lambda (frame) - (and (frame-procedure? frame) - (eq? (frame-procedure frame) - hashq-ref))) - frames))))))) - (lambda (key result) - (= 1 result)))) - - (pass-if "arguments of a gsubr stack frame" - ;; Create a stack with two gsubr frames and make sure the arguments are - ;; correct. - (catch 'result - (lambda () - (throw 'unresolved) - (start-stack 'foo - (lazy-catch 'wrong-type-arg - (lambda () - ;; Trigger a `wrong-type-arg' exception. - (substring 'wrong 'type 'arg)) - (lambda _ - (let* ((stack (make-stack #t)) - (frames (stack->frames stack))) - (throw 'result - (map (lambda (frame) - (cons (frame-procedure frame) - (frame-arguments frame))) - frames))))))) - (lambda (key result) - (and (equal? (car result) `(,make-stack #t)) - (pair? (member `(,substring wrong type arg) - (cdr result))))))))) + (pass-if "stack involving a primitive" + ;; The primitive involving the error must appear exactly once on the + ;; stack. + (catch 'result + (lambda () + (start-stack 'foo + (with-throw-handler 'wrong-type-arg + (lambda () + ;; Trigger a `wrong-type-arg' exception. + (hashq-ref 'wrong 'type 'arg)) + (lambda _ + (let* ((stack (make-stack #t)) + (frames (stack->frames stack))) + (throw 'result + (count (lambda (frame) + (eq? (frame-procedure frame) + hashq-ref)) + frames))))))) + (lambda (key result) + (= 1 result)))) + + (pass-if "arguments of a primitive stack frame" + ;; Create a stack with two primitive frames and make sure the + ;; arguments are correct. + (catch 'result + (lambda () + (start-stack 'foo + (with-throw-handler 'wrong-type-arg + (lambda () + ;; Trigger a `wrong-type-arg' exception. + (substring 'wrong 'type 'arg)) + (lambda _ + (let* ((stack (make-stack #t)) + (frames (stack->frames stack))) + (throw 'result + (map (lambda (frame) + (cons (frame-procedure frame) + (frame-arguments frame))) + frames))))))) + (lambda (key result) + (and (equal? (car result) `(,make-stack #t)) + (pair? (member `(,substring wrong type arg) + (cdr result)))))))) ;;; ;;; letrec init evaluation diff --git a/test-suite/tests/foreign.test b/test-suite/tests/foreign.test index 5ddd31c1d..2c326c98e 100644 --- a/test-suite/tests/foreign.test +++ b/test-suite/tests/foreign.test @@ -254,6 +254,16 @@ (map proc* arg1 arg2 arg3))) (throw 'unresolved))) + (pass-if "procedures returning a pointer" + (if (defined? 'procedure->pointer) + (let* ((called? #f) + (proc (lambda (i) (set! called? #t) (make-pointer i))) + (pointer (procedure->pointer '* proc (list int))) + (proc* (pointer->procedure '* pointer (list int))) + (result (proc* 777))) + (and called? (equal? result (make-pointer 777)))) + (throw 'unresolved))) + (pass-if "procedures returning void" (if (defined? 'procedure->pointer) (let* ((called? #f) @@ -262,6 +272,22 @@ (proc* (pointer->procedure void pointer '()))) (proc*) called?) + (throw 'unresolved))) + + (pass-if "procedure is retained" + ;; The lambda passed to `procedure->pointer' must remain live. + (if (defined? 'procedure->pointer) + (let* ((ptr (procedure->pointer int + (lambda (x) (+ x 7)) + (list int))) + (procs (unfold (cut >= <> 10000) + (lambda (i) + (pointer->procedure int ptr (list int))) + 1+ + 0))) + (gc) (gc) (gc) + (every (cut = <> 9) + (map (lambda (f) (f 2)) procs))) (throw 'unresolved)))) diff --git a/test-suite/tests/procprop.test b/test-suite/tests/procprop.test index 3998a62e1..25dd4c293 100644 --- a/test-suite/tests/procprop.test +++ b/test-suite/tests/procprop.test @@ -1,7 +1,7 @@ ;;;; procprop.test --- Procedure properties -*- mode: scheme; coding: utf-8; -*- ;;;; Ludovic Courtès <ludo@gnu.org> ;;;; -;;;; 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 @@ -26,7 +26,12 @@ (eq? 'display (procedure-name display))) (pass-if "gsubr" - (eq? 'hashq-ref (procedure-name hashq-ref)))) + (eq? 'hashq-ref (procedure-name hashq-ref))) + + (pass-if "from eval" + (eq? 'foobar (procedure-name + (eval '(begin (define (foobar) #t) foobar) + (current-module)))))) (with-test-prefix "procedure-arity" @@ -52,4 +57,19 @@ (pass-if "list" (equal? (procedure-minimum-arity list) - '(0 0 #t)))) + '(0 0 #t))) + + (pass-if "fixed, eval" + (equal? (procedure-minimum-arity (eval '(lambda (a b) #t) + (current-module))) + '(2 0 #f))) + + (pass-if "rest, eval" + (equal? (procedure-minimum-arity (eval '(lambda (a b . c) #t) + (current-module))) + '(2 0 #t))) + + (pass-if "opt, eval" + (equal? (procedure-minimum-arity (eval '(lambda* (a b #:optional c) #t) + (current-module))) + '(2 1 #f)))) diff --git a/test-suite/tests/web-http.test b/test-suite/tests/web-http.test index e4d6efb8f..b6abbf370 100644 --- a/test-suite/tests/web-http.test +++ b/test-suite/tests/web-http.test @@ -41,8 +41,9 @@ (syntax-rules () ((_ sym str val) (pass-if (format #f "~a: ~s -> ~s" 'sym str val) - (equal? (parse-header 'sym str) - val))))) + (and (equal? (parse-header 'sym str) + val) + (valid-header? 'sym val)))))) (define-syntax pass-if-any-error (syntax-rules () |