1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-30 20:00:19 +02:00
guile/module/ice-9/psyntax-pp.scm
Andy Wingo b7742c6b71 new evaluator, y'all
* libguile/eval.c: So, ladies & gents, a new evaluator. It's similar to
  the old one, in that we memoize and then evaluate, but in this
  incarnation, memoization of an expression happens before evaluation,
  not lazily as the expression is evaluated. This makes the evaluation
  itself much cleaner, in addition to being threadsafe. In addition,
  since this C evaluator will in the future just serve to bootstrap the
  Scheme evaluator, we don't have to pay much concern for debugging
  conveniences. So the environment is just a list of values, and the
  memoizer pre-computes where it's going to find each individual value
  in the environment.

  Interface changes are commented below, with eval.h.

  (scm_evaluator_traps): No need to reset the debug mode after rnning te
  traps thing. But really, the whole traps system needs some love.

* libguile/memoize.h:
* libguile/memoize.c: New memoizer, which runs before evaluation,
  checking all syntax before evaluation begins. Significantly, no
  debugging information is left for lexical variables, which is not so
  great for interactive debugging; perhaps we should change this to have
  a var list in the future as per the classic interpreters. But it's
  quite fast, and the resulting code is quite good. Also note that it
  doesn't produce ilocs, memoized code is a smob whose type is in the
  first word of the smob itself.

* libguile/eval.h (scm_sym_and, scm_sym_begin, scm_sym_case)
  (scm_sym_cond, scm_sym_define, scm_sym_do, scm_sym_if, scm_sym_lambda)
  (scm_sym_let, scm_sym_letstar, scm_sym_letrec, scm_sym_quote)
  (scm_sym_quasiquote, scm_sym_unquote, scm_sym_uq_splicing, scm_sym_at)
  (scm_sym_atat, scm_sym_atapply, scm_sym_atcall_cc)
  (scm_sym_at_call_with_values, scm_sym_delay, scm_sym_eval_when)
  (scm_sym_arrow, scm_sym_else, scm_sym_apply, scm_sym_set_x)
  (scm_sym_args): Remove public declaration of these symbols.
  (scm_ilookup, scm_lookupcar, scm_eval_car, scm_eval_body)
  (scm_eval_args, scm_i_eval_x, scm_i_eval): Remove public declaration
  of these functions.
  (scm_ceval, scm_deval, scm_ceval_ptr): Remove declarations of these
  deprecated functions.
  (scm_i_print_iloc, scm_i_print_isym, scm_i_unmemocopy_expr)
  (scm_i_unmemocopy_body): Remove declarations of these internal
  functions.
  (scm_primitive_eval_x, scm_eval_x): Redefine as macros for their less
  destructive siblings.

* libguile/Makefile.am: Add memoize.[ch] to the build.

* libguile/debug.h (scm_debug_mode_p, scm_check_entry_p)
  (scm_check_apply_p, scm_check_exit_p, scm_check_memoize_p)
  (scm_debug_eframe_size): Remove these vars that were tied to the old
  evaluator's execution model.
  (SCM_RESET_DEBUG_MODE): Remove, no more need for this.
  (SCM_MEMOIZEDP, SCM_MEMOIZED_EXP, SCM_MEMOIZED_ENV): Remove macros
  referring to old memoized code representation.
  (scm_local_eval, scm_procedure_environment, scm_memoized_environment)
  (scm_make_memoized, scm_memoized_p): Remove functions operating on old
  memoized code representation.
  (scm_memcons, scm_mem_to_proc, scm_proc_to_mem): Remove debug-only
  code for old evaluator.

* libguile/debug.c: Remove code to correspond with debug.h removals.
  (scm_debug_options): No need to set the debug mode or frame limit
  here, as we don't have C stack limits any more. Perhaps this is a bug,
  but as long as we can compile eval.scm, we should be fine.

* libguile/init.c (scm_i_init_guile): Init memoize.c.

* libguile/modules.c (scm_top_level_env, scm_env_top_level)
  (scm_env_module, scm_system_module_env_p): Remove these functions.

* libguile/print.c (iprin1): No more need to handle isyms. Adapt to new
  form of interpreted procedures.

* libguile/procprop.c (scm_i_procedure_arity): Adapt to new form of
  interpreted procedures.

* libguile/procs.c (scm_thunk_p): Adapt to new form of interpreted
  procedures.
* libguile/procs.h (SCM_CLOSURE_FORMALS): Removed, this exists no more.
  (SCM_CLOSURE_NUM_REQUIRED_ARGS, SCM_CLOSURE_HAS_REST_ARGS): New
  accessors.

* libguile/srcprop.c (scm_source_properties, scm_source_property)
  (scm_set_source_property_x): Remove special cases for memoized code.

* libguile/stacks.c (read_frame): Remove a source-property case for
  interpreted code.
  (NEXT_FRAME): Remove a case that I don't fully understand, that seems
  to be designed to skip over apply frames. Will be obsolete in the
  futures.
  (read_frames): Default source value for interpreted frames to #f.
  (narrow_stack): Don't pay attention to the system_module thing.

* libguile/tags.h: Remove isyms and ilocs. Whee!

* libguile/validate.h (SCM_VALIDATE_MEMOIZED): Fix to use the new
  MEMOIZED_P formulation.

* module/ice-9/psyntax-pp.scm (do, quasiquote, case): Adapt for these no
  longer being primitive macros.
* module/ice-9/boot-9.scm: Whitespace change, but just a poke to force a
  rebuild due to and/or/cond/... not being primitives any more.

* module/ice-9/deprecated.scm (unmemoize-expr): Deprecate, it's
  unmemoize-expression now.

* test-suite/tests/eval.test ("define set procedure-name"): XFAIL a
  couple of tests here; I don't know what to do about them. I reckon the
  expander should ensure that defined values are named.

* test-suite/tests/chars.test ("basic char handling"): Fix expected
  exception when trying to apply a char.
2009-12-01 21:00:26 +01:00

14435 lines
925 KiB
Scheme

(eval-when (compile) (set-current-module (resolve-module (quote (guile)))))
(if #f #f)
(letrec ((#{and-map*\ 2581}#
(lambda (#{f\ 2619}# #{first\ 2620}# . #{rest\ 2621}#)
(let ((#{t\ 2622}# (null? #{first\ 2620}#)))
(if #{t\ 2622}#
#{t\ 2622}#
(if (null? #{rest\ 2621}#)
(letrec ((#{andmap\ 2623}#
(lambda (#{first\ 2624}#)
(let ((#{x\ 2625}# (car #{first\ 2624}#))
(#{first\ 2626}# (cdr #{first\ 2624}#)))
(if (null? #{first\ 2626}#)
(#{f\ 2619}# #{x\ 2625}#)
(if (#{f\ 2619}# #{x\ 2625}#)
(#{andmap\ 2623}# #{first\ 2626}#)
#f))))))
(#{andmap\ 2623}# #{first\ 2620}#))
(letrec ((#{andmap\ 2627}#
(lambda (#{first\ 2628}# #{rest\ 2629}#)
(let ((#{x\ 2630}# (car #{first\ 2628}#))
(#{xr\ 2631}# (map car #{rest\ 2629}#))
(#{first\ 2632}# (cdr #{first\ 2628}#))
(#{rest\ 2633}#
(map cdr #{rest\ 2629}#)))
(if (null? #{first\ 2632}#)
(apply #{f\ 2619}#
(cons #{x\ 2630}# #{xr\ 2631}#))
(if (apply #{f\ 2619}#
(cons #{x\ 2630}# #{xr\ 2631}#))
(#{andmap\ 2627}#
#{first\ 2632}#
#{rest\ 2633}#)
#f))))))
(#{andmap\ 2627}# #{first\ 2620}# #{rest\ 2621}#))))))))
(letrec ((#{lambda-var-list\ 2732}#
(lambda (#{vars\ 2856}#)
(letrec ((#{lvl\ 2857}#
(lambda (#{vars\ 2858}# #{ls\ 2859}# #{w\ 2860}#)
(if (pair? #{vars\ 2858}#)
(#{lvl\ 2857}#
(cdr #{vars\ 2858}#)
(cons (#{wrap\ 2709}#
(car #{vars\ 2858}#)
#{w\ 2860}#
#f)
#{ls\ 2859}#)
#{w\ 2860}#)
(if (#{id?\ 2681}# #{vars\ 2858}#)
(cons (#{wrap\ 2709}#
#{vars\ 2858}#
#{w\ 2860}#
#f)
#{ls\ 2859}#)
(if (null? #{vars\ 2858}#)
#{ls\ 2859}#
(if (#{syntax-object?\ 2665}# #{vars\ 2858}#)
(#{lvl\ 2857}#
(#{syntax-object-expression\ 2666}#
#{vars\ 2858}#)
#{ls\ 2859}#
(#{join-wraps\ 2700}#
#{w\ 2860}#
(#{syntax-object-wrap\ 2667}#
#{vars\ 2858}#)))
(cons #{vars\ 2858}# #{ls\ 2859}#))))))))
(#{lvl\ 2857}#
#{vars\ 2856}#
'()
'(())))))
(#{gen-var\ 2731}#
(lambda (#{id\ 2861}#)
(let ((#{id\ 2862}#
(if (#{syntax-object?\ 2665}# #{id\ 2861}#)
(#{syntax-object-expression\ 2666}# #{id\ 2861}#)
#{id\ 2861}#)))
(gensym
(string-append (symbol->string #{id\ 2862}#) " ")))))
(#{strip\ 2730}#
(lambda (#{x\ 2863}# #{w\ 2864}#)
(if (memq 'top
(#{wrap-marks\ 2684}# #{w\ 2864}#))
#{x\ 2863}#
(letrec ((#{f\ 2865}#
(lambda (#{x\ 2866}#)
(if (#{syntax-object?\ 2665}# #{x\ 2866}#)
(#{strip\ 2730}#
(#{syntax-object-expression\ 2666}#
#{x\ 2866}#)
(#{syntax-object-wrap\ 2667}# #{x\ 2866}#))
(if (pair? #{x\ 2866}#)
(let ((#{a\ 2867}#
(#{f\ 2865}# (car #{x\ 2866}#)))
(#{d\ 2868}#
(#{f\ 2865}# (cdr #{x\ 2866}#))))
(if (if (eq? #{a\ 2867}# (car #{x\ 2866}#))
(eq? #{d\ 2868}# (cdr #{x\ 2866}#))
#f)
#{x\ 2866}#
(cons #{a\ 2867}# #{d\ 2868}#)))
(if (vector? #{x\ 2866}#)
(let ((#{old\ 2869}#
(vector->list #{x\ 2866}#)))
(let ((#{new\ 2870}#
(map #{f\ 2865}# #{old\ 2869}#)))
(if (#{and-map*\ 2581}#
eq?
#{old\ 2869}#
#{new\ 2870}#)
#{x\ 2866}#
(list->vector #{new\ 2870}#))))
#{x\ 2866}#))))))
(#{f\ 2865}# #{x\ 2863}#)))))
(#{chi-lambda-case\ 2729}#
(lambda (#{e\ 2871}#
#{r\ 2872}#
#{w\ 2873}#
#{s\ 2874}#
#{mod\ 2875}#
#{get-formals\ 2876}#
#{clauses\ 2877}#)
(letrec ((#{expand-body\ 2881}#
(lambda (#{req\ 2882}#
#{opt\ 2883}#
#{rest\ 2884}#
#{kw\ 2885}#
#{body\ 2886}#
#{vars\ 2887}#
#{r*\ 2888}#
#{w*\ 2889}#
#{inits\ 2890}#)
((lambda (#{tmp\ 2891}#)
((lambda (#{tmp\ 2892}#)
(if (if #{tmp\ 2892}#
(apply (lambda (#{docstring\ 2893}#
#{e1\ 2894}#
#{e2\ 2895}#)
(string?
(syntax->datum
#{docstring\ 2893}#)))
#{tmp\ 2892}#)
#f)
(apply (lambda (#{docstring\ 2896}#
#{e1\ 2897}#
#{e2\ 2898}#)
(values
(syntax->datum
#{docstring\ 2896}#)
#{req\ 2882}#
#{opt\ 2883}#
#{rest\ 2884}#
#{kw\ 2885}#
#{inits\ 2890}#
#{vars\ 2887}#
(#{chi-body\ 2721}#
(cons #{e1\ 2897}#
#{e2\ 2898}#)
(#{source-wrap\ 2710}#
#{e\ 2871}#
#{w\ 2873}#
#{s\ 2874}#
#{mod\ 2875}#)
#{r*\ 2888}#
#{w*\ 2889}#
#{mod\ 2875}#)))
#{tmp\ 2892}#)
((lambda (#{tmp\ 2900}#)
(if #{tmp\ 2900}#
(apply (lambda (#{e1\ 2901}#
#{e2\ 2902}#)
(values
#f
#{req\ 2882}#
#{opt\ 2883}#
#{rest\ 2884}#
#{kw\ 2885}#
#{inits\ 2890}#
#{vars\ 2887}#
(#{chi-body\ 2721}#
(cons #{e1\ 2901}#
#{e2\ 2902}#)
(#{source-wrap\ 2710}#
#{e\ 2871}#
#{w\ 2873}#
#{s\ 2874}#
#{mod\ 2875}#)
#{r*\ 2888}#
#{w*\ 2889}#
#{mod\ 2875}#)))
#{tmp\ 2900}#)
(syntax-violation
#f
"source expression failed to match any pattern"
#{tmp\ 2891}#)))
($sc-dispatch
#{tmp\ 2891}#
'(any . each-any)))))
($sc-dispatch
#{tmp\ 2891}#
'(any any . each-any))))
#{body\ 2886}#)))
(#{expand-kw\ 2880}#
(lambda (#{req\ 2904}#
#{opt\ 2905}#
#{rest\ 2906}#
#{kw\ 2907}#
#{body\ 2908}#
#{vars\ 2909}#
#{r*\ 2910}#
#{w*\ 2911}#
#{aok\ 2912}#
#{out\ 2913}#
#{inits\ 2914}#)
(if (pair? #{kw\ 2907}#)
((lambda (#{tmp\ 2915}#)
((lambda (#{tmp\ 2916}#)
(if #{tmp\ 2916}#
(apply (lambda (#{k\ 2917}#
#{id\ 2918}#
#{i\ 2919}#)
(let ((#{v\ 2920}#
(#{gen-var\ 2731}#
#{id\ 2918}#)))
(let ((#{l\ 2921}#
(#{gen-labels\ 2687}#
(list #{v\ 2920}#))))
(let ((#{r**\ 2922}#
(#{extend-var-env\ 2676}#
#{l\ 2921}#
(list #{v\ 2920}#)
#{r*\ 2910}#)))
(let ((#{w**\ 2923}#
(#{make-binding-wrap\ 2698}#
(list #{id\ 2918}#)
#{l\ 2921}#
#{w*\ 2911}#)))
(#{expand-kw\ 2880}#
#{req\ 2904}#
#{opt\ 2905}#
#{rest\ 2906}#
(cdr #{kw\ 2907}#)
#{body\ 2908}#
(cons #{v\ 2920}#
#{vars\ 2909}#)
#{r**\ 2922}#
#{w**\ 2923}#
#{aok\ 2912}#
(cons (list (syntax->datum
#{k\ 2917}#)
(syntax->datum
#{id\ 2918}#)
#{v\ 2920}#)
#{out\ 2913}#)
(cons (#{chi\ 2717}#
#{i\ 2919}#
#{r*\ 2910}#
#{w*\ 2911}#
#{mod\ 2875}#)
#{inits\ 2914}#)))))))
#{tmp\ 2916}#)
(syntax-violation
#f
"source expression failed to match any pattern"
#{tmp\ 2915}#)))
($sc-dispatch
#{tmp\ 2915}#
'(any any any))))
(car #{kw\ 2907}#))
(#{expand-body\ 2881}#
#{req\ 2904}#
#{opt\ 2905}#
#{rest\ 2906}#
(if (let ((#{t\ 2924}# #{aok\ 2912}#))
(if #{t\ 2924}#
#{t\ 2924}#
(pair? #{out\ 2913}#)))
(cons #{aok\ 2912}# (reverse #{out\ 2913}#))
#f)
#{body\ 2908}#
(reverse #{vars\ 2909}#)
#{r*\ 2910}#
#{w*\ 2911}#
(reverse #{inits\ 2914}#)))))
(#{expand-opt\ 2879}#
(lambda (#{req\ 2925}#
#{opt\ 2926}#
#{rest\ 2927}#
#{kw\ 2928}#
#{body\ 2929}#
#{vars\ 2930}#
#{r*\ 2931}#
#{w*\ 2932}#
#{out\ 2933}#
#{inits\ 2934}#)
(if (pair? #{opt\ 2926}#)
((lambda (#{tmp\ 2935}#)
((lambda (#{tmp\ 2936}#)
(if #{tmp\ 2936}#
(apply (lambda (#{id\ 2937}# #{i\ 2938}#)
(let ((#{v\ 2939}#
(#{gen-var\ 2731}#
#{id\ 2937}#)))
(let ((#{l\ 2940}#
(#{gen-labels\ 2687}#
(list #{v\ 2939}#))))
(let ((#{r**\ 2941}#
(#{extend-var-env\ 2676}#
#{l\ 2940}#
(list #{v\ 2939}#)
#{r*\ 2931}#)))
(let ((#{w**\ 2942}#
(#{make-binding-wrap\ 2698}#
(list #{id\ 2937}#)
#{l\ 2940}#
#{w*\ 2932}#)))
(#{expand-opt\ 2879}#
#{req\ 2925}#
(cdr #{opt\ 2926}#)
#{rest\ 2927}#
#{kw\ 2928}#
#{body\ 2929}#
(cons #{v\ 2939}#
#{vars\ 2930}#)
#{r**\ 2941}#
#{w**\ 2942}#
(cons (syntax->datum
#{id\ 2937}#)
#{out\ 2933}#)
(cons (#{chi\ 2717}#
#{i\ 2938}#
#{r*\ 2931}#
#{w*\ 2932}#
#{mod\ 2875}#)
#{inits\ 2934}#)))))))
#{tmp\ 2936}#)
(syntax-violation
#f
"source expression failed to match any pattern"
#{tmp\ 2935}#)))
($sc-dispatch
#{tmp\ 2935}#
'(any any))))
(car #{opt\ 2926}#))
(if #{rest\ 2927}#
(let ((#{v\ 2943}#
(#{gen-var\ 2731}# #{rest\ 2927}#)))
(let ((#{l\ 2944}#
(#{gen-labels\ 2687}#
(list #{v\ 2943}#))))
(let ((#{r*\ 2945}#
(#{extend-var-env\ 2676}#
#{l\ 2944}#
(list #{v\ 2943}#)
#{r*\ 2931}#)))
(let ((#{w*\ 2946}#
(#{make-binding-wrap\ 2698}#
(list #{rest\ 2927}#)
#{l\ 2944}#
#{w*\ 2932}#)))
(#{expand-kw\ 2880}#
#{req\ 2925}#
(if (pair? #{out\ 2933}#)
(reverse #{out\ 2933}#)
#f)
(syntax->datum #{rest\ 2927}#)
(if (pair? #{kw\ 2928}#)
(cdr #{kw\ 2928}#)
#{kw\ 2928}#)
#{body\ 2929}#
(cons #{v\ 2943}# #{vars\ 2930}#)
#{r*\ 2945}#
#{w*\ 2946}#
(if (pair? #{kw\ 2928}#)
(car #{kw\ 2928}#)
#f)
'()
#{inits\ 2934}#)))))
(#{expand-kw\ 2880}#
#{req\ 2925}#
(if (pair? #{out\ 2933}#)
(reverse #{out\ 2933}#)
#f)
#f
(if (pair? #{kw\ 2928}#)
(cdr #{kw\ 2928}#)
#{kw\ 2928}#)
#{body\ 2929}#
#{vars\ 2930}#
#{r*\ 2931}#
#{w*\ 2932}#
(if (pair? #{kw\ 2928}#)
(car #{kw\ 2928}#)
#f)
'()
#{inits\ 2934}#)))))
(#{expand-req\ 2878}#
(lambda (#{req\ 2947}#
#{opt\ 2948}#
#{rest\ 2949}#
#{kw\ 2950}#
#{body\ 2951}#)
(let ((#{vars\ 2952}#
(map #{gen-var\ 2731}# #{req\ 2947}#))
(#{labels\ 2953}#
(#{gen-labels\ 2687}# #{req\ 2947}#)))
(let ((#{r*\ 2954}#
(#{extend-var-env\ 2676}#
#{labels\ 2953}#
#{vars\ 2952}#
#{r\ 2872}#))
(#{w*\ 2955}#
(#{make-binding-wrap\ 2698}#
#{req\ 2947}#
#{labels\ 2953}#
#{w\ 2873}#)))
(#{expand-opt\ 2879}#
(map syntax->datum #{req\ 2947}#)
#{opt\ 2948}#
#{rest\ 2949}#
#{kw\ 2950}#
#{body\ 2951}#
(reverse #{vars\ 2952}#)
#{r*\ 2954}#
#{w*\ 2955}#
'()
'()))))))
((lambda (#{tmp\ 2956}#)
((lambda (#{tmp\ 2957}#)
(if #{tmp\ 2957}#
(apply (lambda () (values #f #f)) #{tmp\ 2957}#)
((lambda (#{tmp\ 2958}#)
(if #{tmp\ 2958}#
(apply (lambda (#{args\ 2959}#
#{e1\ 2960}#
#{e2\ 2961}#
#{args*\ 2962}#
#{e1*\ 2963}#
#{e2*\ 2964}#)
(call-with-values
(lambda ()
(#{get-formals\ 2876}#
#{args\ 2959}#))
(lambda (#{req\ 2965}#
#{opt\ 2966}#
#{rest\ 2967}#
#{kw\ 2968}#)
(call-with-values
(lambda ()
(#{expand-req\ 2878}#
#{req\ 2965}#
#{opt\ 2966}#
#{rest\ 2967}#
#{kw\ 2968}#
(cons #{e1\ 2960}#
#{e2\ 2961}#)))
(lambda (#{docstring\ 2970}#
#{req\ 2971}#
#{opt\ 2972}#
#{rest\ 2973}#
#{kw\ 2974}#
#{inits\ 2975}#
#{vars\ 2976}#
#{body\ 2977}#)
(call-with-values
(lambda ()
(#{chi-lambda-case\ 2729}#
#{e\ 2871}#
#{r\ 2872}#
#{w\ 2873}#
#{s\ 2874}#
#{mod\ 2875}#
#{get-formals\ 2876}#
(map (lambda (#{tmp\ 2980}#
#{tmp\ 2979}#
#{tmp\ 2978}#)
(cons #{tmp\ 2978}#
(cons #{tmp\ 2979}#
#{tmp\ 2980}#)))
#{e2*\ 2964}#
#{e1*\ 2963}#
#{args*\ 2962}#)))
(lambda (#{docstring*\ 2982}#
#{else*\ 2983}#)
(values
(let ((#{t\ 2984}#
#{docstring\ 2970}#))
(if #{t\ 2984}#
#{t\ 2984}#
#{docstring*\ 2982}#))
(#{build-lambda-case\ 2657}#
#{s\ 2874}#
#{req\ 2971}#
#{opt\ 2972}#
#{rest\ 2973}#
#{kw\ 2974}#
#{inits\ 2975}#
#{vars\ 2976}#
#{body\ 2977}#
#{else*\ 2983}#)))))))))
#{tmp\ 2958}#)
(syntax-violation
#f
"source expression failed to match any pattern"
#{tmp\ 2956}#)))
($sc-dispatch
#{tmp\ 2956}#
'((any any . each-any)
.
#(each (any any . each-any)))))))
($sc-dispatch #{tmp\ 2956}# (quote ()))))
#{clauses\ 2877}#))))
(#{lambda*-formals\ 2728}#
(lambda (#{orig-args\ 2985}#)
(letrec ((#{check\ 2990}#
(lambda (#{req\ 2991}#
#{opt\ 2992}#
#{rest\ 2993}#
#{kw\ 2994}#)
(if (#{distinct-bound-ids?\ 2707}#
(append
#{req\ 2991}#
(map car #{opt\ 2992}#)
(if #{rest\ 2993}#
(list #{rest\ 2993}#)
'())
(if (pair? #{kw\ 2994}#)
(map cadr (cdr #{kw\ 2994}#))
'())))
(values
#{req\ 2991}#
#{opt\ 2992}#
#{rest\ 2993}#
#{kw\ 2994}#)
(syntax-violation
'lambda*
"duplicate identifier in argument list"
#{orig-args\ 2985}#))))
(#{rest\ 2989}#
(lambda (#{args\ 2995}#
#{req\ 2996}#
#{opt\ 2997}#
#{kw\ 2998}#)
((lambda (#{tmp\ 2999}#)
((lambda (#{tmp\ 3000}#)
(if (if #{tmp\ 3000}#
(apply (lambda (#{r\ 3001}#)
(#{id?\ 2681}# #{r\ 3001}#))
#{tmp\ 3000}#)
#f)
(apply (lambda (#{r\ 3002}#)
(#{check\ 2990}#
#{req\ 2996}#
#{opt\ 2997}#
#{r\ 3002}#
#{kw\ 2998}#))
#{tmp\ 3000}#)
((lambda (#{else\ 3003}#)
(syntax-violation
'lambda*
"invalid rest argument"
#{orig-args\ 2985}#
#{args\ 2995}#))
#{tmp\ 2999}#)))
(list #{tmp\ 2999}#)))
#{args\ 2995}#)))
(#{key\ 2988}#
(lambda (#{args\ 3004}#
#{req\ 3005}#
#{opt\ 3006}#
#{rkey\ 3007}#)
((lambda (#{tmp\ 3008}#)
((lambda (#{tmp\ 3009}#)
(if #{tmp\ 3009}#
(apply (lambda ()
(#{check\ 2990}#
#{req\ 3005}#
#{opt\ 3006}#
#f
(cons #f
(reverse
#{rkey\ 3007}#))))
#{tmp\ 3009}#)
((lambda (#{tmp\ 3010}#)
(if (if #{tmp\ 3010}#
(apply (lambda (#{a\ 3011}#
#{b\ 3012}#)
(#{id?\ 2681}#
#{a\ 3011}#))
#{tmp\ 3010}#)
#f)
(apply (lambda (#{a\ 3013}#
#{b\ 3014}#)
((lambda (#{tmp\ 3015}#)
((lambda (#{k\ 3016}#)
(#{key\ 2988}#
#{b\ 3014}#
#{req\ 3005}#
#{opt\ 3006}#
(cons (cons #{k\ 3016}#
(cons #{a\ 3013}#
'(#(syntax-object
#f
((top)
#(ribcage
#(k)
#((top))
#("i"))
#(ribcage
#(a
b)
#((top)
(top))
#("i"
"i"))
#(ribcage
()
()
())
#(ribcage
#(args
req
opt
rkey)
#((top)
(top)
(top)
(top))
#("i"
"i"
"i"
"i"))
#(ribcage
(check rest
key
opt
req)
((top)
(top)
(top)
(top)
(top))
("i"
"i"
"i"
"i"
"i"))
#(ribcage
#(orig-args)
#((top))
#("i"))
#(ribcage
(lambda-var-list
gen-var
strip
chi-lambda-case
lambda*-formals
chi-simple-lambda
lambda-formals
ellipsis?
chi-void
eval-local-transformer
chi-local-syntax
chi-body
chi-macro
chi-application
chi-expr
chi
chi-top
syntax-type
chi-when-list
chi-install-global
chi-top-sequence
chi-sequence
source-wrap
wrap
bound-id-member?
distinct-bound-ids?
valid-bound-ids?
bound-id=?
free-id=?
id-var-name
same-marks?
join-marks
join-wraps
smart-append
make-binding-wrap
extend-ribcage!
make-empty-ribcage
new-mark
anti-mark
the-anti-mark
top-marked?
top-wrap
empty-wrap
set-ribcage-labels!
set-ribcage-marks!
set-ribcage-symnames!
ribcage-labels
ribcage-marks
ribcage-symnames
ribcage?
make-ribcage
gen-labels
gen-label
make-rename
rename-marks
rename-new
rename-old
subst-rename?
wrap-subst
wrap-marks
make-wrap
id-sym-name&marks
id-sym-name
id?
nonsymbol-id?
global-extend
lookup
macros-only-env
extend-var-env
extend-env
null-env
binding-value
binding-type
make-binding
arg-check
source-annotation
no-source
set-syntax-object-module!
set-syntax-object-wrap!
set-syntax-object-expression!
syntax-object-module
syntax-object-wrap
syntax-object-expression
syntax-object?
make-syntax-object
build-lexical-var
build-letrec
build-named-let
build-let
build-sequence
build-data
build-primref
build-lambda-case
build-case-lambda
build-simple-lambda
build-global-definition
maybe-name-value!
build-global-assignment
build-global-reference
analyze-variable
build-lexical-assignment
build-lexical-reference
build-conditional
build-application
build-void
decorate-source
get-global-definition-hook
put-global-definition-hook
gensym-hook
local-eval-hook
top-level-eval-hook
fx<
fx=
fx-
fx+
*mode*
noexpand)
((top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top))
("i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"))
#(ribcage
(define-structure
and-map*)
((top)
(top))
("i"
"i")))
(hygiene
guile)))))
#{rkey\ 3007}#)))
#{tmp\ 3015}#))
(symbol->keyword
(syntax->datum
#{a\ 3013}#))))
#{tmp\ 3010}#)
((lambda (#{tmp\ 3017}#)
(if (if #{tmp\ 3017}#
(apply (lambda (#{a\ 3018}#
#{init\ 3019}#
#{b\ 3020}#)
(#{id?\ 2681}#
#{a\ 3018}#))
#{tmp\ 3017}#)
#f)
(apply (lambda (#{a\ 3021}#
#{init\ 3022}#
#{b\ 3023}#)
((lambda (#{tmp\ 3024}#)
((lambda (#{k\ 3025}#)
(#{key\ 2988}#
#{b\ 3023}#
#{req\ 3005}#
#{opt\ 3006}#
(cons (list #{k\ 3025}#
#{a\ 3021}#
#{init\ 3022}#)
#{rkey\ 3007}#)))
#{tmp\ 3024}#))
(symbol->keyword
(syntax->datum
#{a\ 3021}#))))
#{tmp\ 3017}#)
((lambda (#{tmp\ 3026}#)
(if (if #{tmp\ 3026}#
(apply (lambda (#{a\ 3027}#
#{init\ 3028}#
#{k\ 3029}#
#{b\ 3030}#)
(if (#{id?\ 2681}#
#{a\ 3027}#)
(keyword?
(syntax->datum
#{k\ 3029}#))
#f))
#{tmp\ 3026}#)
#f)
(apply (lambda (#{a\ 3031}#
#{init\ 3032}#
#{k\ 3033}#
#{b\ 3034}#)
(#{key\ 2988}#
#{b\ 3034}#
#{req\ 3005}#
#{opt\ 3006}#
(cons (list #{k\ 3033}#
#{a\ 3031}#
#{init\ 3032}#)
#{rkey\ 3007}#)))
#{tmp\ 3026}#)
((lambda (#{tmp\ 3035}#)
(if (if #{tmp\ 3035}#
(apply (lambda (#{aok\ 3036}#)
(eq? (syntax->datum
#{aok\ 3036}#)
#:allow-other-keys))
#{tmp\ 3035}#)
#f)
(apply (lambda (#{aok\ 3037}#)
(#{check\ 2990}#
#{req\ 3005}#
#{opt\ 3006}#
#f
(cons #t
(reverse
#{rkey\ 3007}#))))
#{tmp\ 3035}#)
((lambda (#{tmp\ 3038}#)
(if (if #{tmp\ 3038}#
(apply (lambda (#{aok\ 3039}#
#{a\ 3040}#
#{b\ 3041}#)
(if (eq? (syntax->datum
#{aok\ 3039}#)
#:allow-other-keys)
(eq? (syntax->datum
#{a\ 3040}#)
#:rest)
#f))
#{tmp\ 3038}#)
#f)
(apply (lambda (#{aok\ 3042}#
#{a\ 3043}#
#{b\ 3044}#)
(#{rest\ 2989}#
#{b\ 3044}#
#{req\ 3005}#
#{opt\ 3006}#
(cons #t
(reverse
#{rkey\ 3007}#))))
#{tmp\ 3038}#)
((lambda (#{tmp\ 3045}#)
(if (if #{tmp\ 3045}#
(apply (lambda (#{aok\ 3046}#
#{r\ 3047}#)
(if (eq? (syntax->datum
#{aok\ 3046}#)
#:allow-other-keys)
(#{id?\ 2681}#
#{r\ 3047}#)
#f))
#{tmp\ 3045}#)
#f)
(apply (lambda (#{aok\ 3048}#
#{r\ 3049}#)
(#{rest\ 2989}#
#{r\ 3049}#
#{req\ 3005}#
#{opt\ 3006}#
(cons #t
(reverse
#{rkey\ 3007}#))))
#{tmp\ 3045}#)
((lambda (#{tmp\ 3050}#)
(if (if #{tmp\ 3050}#
(apply (lambda (#{a\ 3051}#
#{b\ 3052}#)
(eq? (syntax->datum
#{a\ 3051}#)
#:rest))
#{tmp\ 3050}#)
#f)
(apply (lambda (#{a\ 3053}#
#{b\ 3054}#)
(#{rest\ 2989}#
#{b\ 3054}#
#{req\ 3005}#
#{opt\ 3006}#
(cons #f
(reverse
#{rkey\ 3007}#))))
#{tmp\ 3050}#)
((lambda (#{tmp\ 3055}#)
(if (if #{tmp\ 3055}#
(apply (lambda (#{r\ 3056}#)
(#{id?\ 2681}#
#{r\ 3056}#))
#{tmp\ 3055}#)
#f)
(apply (lambda (#{r\ 3057}#)
(#{rest\ 2989}#
#{r\ 3057}#
#{req\ 3005}#
#{opt\ 3006}#
(cons #f
(reverse
#{rkey\ 3007}#))))
#{tmp\ 3055}#)
((lambda (#{else\ 3058}#)
(syntax-violation
'lambda*
"invalid keyword argument list"
#{orig-args\ 2985}#
#{args\ 3004}#))
#{tmp\ 3008}#)))
(list #{tmp\ 3008}#))))
($sc-dispatch
#{tmp\ 3008}#
'(any any)))))
($sc-dispatch
#{tmp\ 3008}#
'(any .
any)))))
($sc-dispatch
#{tmp\ 3008}#
'(any any any)))))
($sc-dispatch
#{tmp\ 3008}#
'(any)))))
($sc-dispatch
#{tmp\ 3008}#
'((any any any) . any)))))
($sc-dispatch
#{tmp\ 3008}#
'((any any) . any)))))
($sc-dispatch
#{tmp\ 3008}#
'(any . any)))))
($sc-dispatch #{tmp\ 3008}# (quote ()))))
#{args\ 3004}#)))
(#{opt\ 2987}#
(lambda (#{args\ 3059}# #{req\ 3060}# #{ropt\ 3061}#)
((lambda (#{tmp\ 3062}#)
((lambda (#{tmp\ 3063}#)
(if #{tmp\ 3063}#
(apply (lambda ()
(#{check\ 2990}#
#{req\ 3060}#
(reverse #{ropt\ 3061}#)
#f
'()))
#{tmp\ 3063}#)
((lambda (#{tmp\ 3064}#)
(if (if #{tmp\ 3064}#
(apply (lambda (#{a\ 3065}#
#{b\ 3066}#)
(#{id?\ 2681}#
#{a\ 3065}#))
#{tmp\ 3064}#)
#f)
(apply (lambda (#{a\ 3067}#
#{b\ 3068}#)
(#{opt\ 2987}#
#{b\ 3068}#
#{req\ 3060}#
(cons (cons #{a\ 3067}#
'(#(syntax-object
#f
((top)
#(ribcage
#(a b)
#((top)
(top))
#("i"
"i"))
#(ribcage
()
()
())
#(ribcage
#(args
req
ropt)
#((top)
(top)
(top))
#("i"
"i"
"i"))
#(ribcage
(check rest
key
opt
req)
((top)
(top)
(top)
(top)
(top))
("i"
"i"
"i"
"i"
"i"))
#(ribcage
#(orig-args)
#((top))
#("i"))
#(ribcage
(lambda-var-list
gen-var
strip
chi-lambda-case
lambda*-formals
chi-simple-lambda
lambda-formals
ellipsis?
chi-void
eval-local-transformer
chi-local-syntax
chi-body
chi-macro
chi-application
chi-expr
chi
chi-top
syntax-type
chi-when-list
chi-install-global
chi-top-sequence
chi-sequence
source-wrap
wrap
bound-id-member?
distinct-bound-ids?
valid-bound-ids?
bound-id=?
free-id=?
id-var-name
same-marks?
join-marks
join-wraps
smart-append
make-binding-wrap
extend-ribcage!
make-empty-ribcage
new-mark
anti-mark
the-anti-mark
top-marked?
top-wrap
empty-wrap
set-ribcage-labels!
set-ribcage-marks!
set-ribcage-symnames!
ribcage-labels
ribcage-marks
ribcage-symnames
ribcage?
make-ribcage
gen-labels
gen-label
make-rename
rename-marks
rename-new
rename-old
subst-rename?
wrap-subst
wrap-marks
make-wrap
id-sym-name&marks
id-sym-name
id?
nonsymbol-id?
global-extend
lookup
macros-only-env
extend-var-env
extend-env
null-env
binding-value
binding-type
make-binding
arg-check
source-annotation
no-source
set-syntax-object-module!
set-syntax-object-wrap!
set-syntax-object-expression!
syntax-object-module
syntax-object-wrap
syntax-object-expression
syntax-object?
make-syntax-object
build-lexical-var
build-letrec
build-named-let
build-let
build-sequence
build-data
build-primref
build-lambda-case
build-case-lambda
build-simple-lambda
build-global-definition
maybe-name-value!
build-global-assignment
build-global-reference
analyze-variable
build-lexical-assignment
build-lexical-reference
build-conditional
build-application
build-void
decorate-source
get-global-definition-hook
put-global-definition-hook
gensym-hook
local-eval-hook
top-level-eval-hook
fx<
fx=
fx-
fx+
*mode*
noexpand)
((top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top))
("i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"))
#(ribcage
(define-structure
and-map*)
((top)
(top))
("i"
"i")))
(hygiene
guile))))
#{ropt\ 3061}#)))
#{tmp\ 3064}#)
((lambda (#{tmp\ 3069}#)
(if (if #{tmp\ 3069}#
(apply (lambda (#{a\ 3070}#
#{init\ 3071}#
#{b\ 3072}#)
(#{id?\ 2681}#
#{a\ 3070}#))
#{tmp\ 3069}#)
#f)
(apply (lambda (#{a\ 3073}#
#{init\ 3074}#
#{b\ 3075}#)
(#{opt\ 2987}#
#{b\ 3075}#
#{req\ 3060}#
(cons (list #{a\ 3073}#
#{init\ 3074}#)
#{ropt\ 3061}#)))
#{tmp\ 3069}#)
((lambda (#{tmp\ 3076}#)
(if (if #{tmp\ 3076}#
(apply (lambda (#{a\ 3077}#
#{b\ 3078}#)
(eq? (syntax->datum
#{a\ 3077}#)
#:key))
#{tmp\ 3076}#)
#f)
(apply (lambda (#{a\ 3079}#
#{b\ 3080}#)
(#{key\ 2988}#
#{b\ 3080}#
#{req\ 3060}#
(reverse
#{ropt\ 3061}#)
'()))
#{tmp\ 3076}#)
((lambda (#{tmp\ 3081}#)
(if (if #{tmp\ 3081}#
(apply (lambda (#{a\ 3082}#
#{b\ 3083}#)
(eq? (syntax->datum
#{a\ 3082}#)
#:rest))
#{tmp\ 3081}#)
#f)
(apply (lambda (#{a\ 3084}#
#{b\ 3085}#)
(#{rest\ 2989}#
#{b\ 3085}#
#{req\ 3060}#
(reverse
#{ropt\ 3061}#)
'()))
#{tmp\ 3081}#)
((lambda (#{tmp\ 3086}#)
(if (if #{tmp\ 3086}#
(apply (lambda (#{r\ 3087}#)
(#{id?\ 2681}#
#{r\ 3087}#))
#{tmp\ 3086}#)
#f)
(apply (lambda (#{r\ 3088}#)
(#{rest\ 2989}#
#{r\ 3088}#
#{req\ 3060}#
(reverse
#{ropt\ 3061}#)
'()))
#{tmp\ 3086}#)
((lambda (#{else\ 3089}#)
(syntax-violation
'lambda*
"invalid optional argument list"
#{orig-args\ 2985}#
#{args\ 3059}#))
#{tmp\ 3062}#)))
(list #{tmp\ 3062}#))))
($sc-dispatch
#{tmp\ 3062}#
'(any any)))))
($sc-dispatch
#{tmp\ 3062}#
'(any . any)))))
($sc-dispatch
#{tmp\ 3062}#
'((any any) . any)))))
($sc-dispatch
#{tmp\ 3062}#
'(any . any)))))
($sc-dispatch #{tmp\ 3062}# (quote ()))))
#{args\ 3059}#)))
(#{req\ 2986}#
(lambda (#{args\ 3090}# #{rreq\ 3091}#)
((lambda (#{tmp\ 3092}#)
((lambda (#{tmp\ 3093}#)
(if #{tmp\ 3093}#
(apply (lambda ()
(#{check\ 2990}#
(reverse #{rreq\ 3091}#)
'()
#f
'()))
#{tmp\ 3093}#)
((lambda (#{tmp\ 3094}#)
(if (if #{tmp\ 3094}#
(apply (lambda (#{a\ 3095}#
#{b\ 3096}#)
(#{id?\ 2681}#
#{a\ 3095}#))
#{tmp\ 3094}#)
#f)
(apply (lambda (#{a\ 3097}#
#{b\ 3098}#)
(#{req\ 2986}#
#{b\ 3098}#
(cons #{a\ 3097}#
#{rreq\ 3091}#)))
#{tmp\ 3094}#)
((lambda (#{tmp\ 3099}#)
(if (if #{tmp\ 3099}#
(apply (lambda (#{a\ 3100}#
#{b\ 3101}#)
(eq? (syntax->datum
#{a\ 3100}#)
#:optional))
#{tmp\ 3099}#)
#f)
(apply (lambda (#{a\ 3102}#
#{b\ 3103}#)
(#{opt\ 2987}#
#{b\ 3103}#
(reverse
#{rreq\ 3091}#)
'()))
#{tmp\ 3099}#)
((lambda (#{tmp\ 3104}#)
(if (if #{tmp\ 3104}#
(apply (lambda (#{a\ 3105}#
#{b\ 3106}#)
(eq? (syntax->datum
#{a\ 3105}#)
#:key))
#{tmp\ 3104}#)
#f)
(apply (lambda (#{a\ 3107}#
#{b\ 3108}#)
(#{key\ 2988}#
#{b\ 3108}#
(reverse
#{rreq\ 3091}#)
'()
'()))
#{tmp\ 3104}#)
((lambda (#{tmp\ 3109}#)
(if (if #{tmp\ 3109}#
(apply (lambda (#{a\ 3110}#
#{b\ 3111}#)
(eq? (syntax->datum
#{a\ 3110}#)
#:rest))
#{tmp\ 3109}#)
#f)
(apply (lambda (#{a\ 3112}#
#{b\ 3113}#)
(#{rest\ 2989}#
#{b\ 3113}#
(reverse
#{rreq\ 3091}#)
'()
'()))
#{tmp\ 3109}#)
((lambda (#{tmp\ 3114}#)
(if (if #{tmp\ 3114}#
(apply (lambda (#{r\ 3115}#)
(#{id?\ 2681}#
#{r\ 3115}#))
#{tmp\ 3114}#)
#f)
(apply (lambda (#{r\ 3116}#)
(#{rest\ 2989}#
#{r\ 3116}#
(reverse
#{rreq\ 3091}#)
'()
'()))
#{tmp\ 3114}#)
((lambda (#{else\ 3117}#)
(syntax-violation
'lambda*
"invalid argument list"
#{orig-args\ 2985}#
#{args\ 3090}#))
#{tmp\ 3092}#)))
(list #{tmp\ 3092}#))))
($sc-dispatch
#{tmp\ 3092}#
'(any any)))))
($sc-dispatch
#{tmp\ 3092}#
'(any . any)))))
($sc-dispatch
#{tmp\ 3092}#
'(any . any)))))
($sc-dispatch
#{tmp\ 3092}#
'(any . any)))))
($sc-dispatch #{tmp\ 3092}# (quote ()))))
#{args\ 3090}#))))
(#{req\ 2986}# #{orig-args\ 2985}# (quote ())))))
(#{chi-simple-lambda\ 2727}#
(lambda (#{e\ 3118}#
#{r\ 3119}#
#{w\ 3120}#
#{s\ 3121}#
#{mod\ 3122}#
#{req\ 3123}#
#{rest\ 3124}#
#{docstring\ 3125}#
#{body\ 3126}#)
(let ((#{ids\ 3127}#
(if #{rest\ 3124}#
(append #{req\ 3123}# (list #{rest\ 3124}#))
#{req\ 3123}#)))
(let ((#{vars\ 3128}#
(map #{gen-var\ 2731}# #{ids\ 3127}#)))
(let ((#{labels\ 3129}#
(#{gen-labels\ 2687}# #{ids\ 3127}#)))
(#{build-simple-lambda\ 2655}#
#{s\ 3121}#
(map syntax->datum #{req\ 3123}#)
(if #{rest\ 3124}#
(syntax->datum #{rest\ 3124}#)
#f)
#{vars\ 3128}#
#{docstring\ 3125}#
(#{chi-body\ 2721}#
#{body\ 3126}#
(#{source-wrap\ 2710}#
#{e\ 3118}#
#{w\ 3120}#
#{s\ 3121}#
#{mod\ 3122}#)
(#{extend-var-env\ 2676}#
#{labels\ 3129}#
#{vars\ 3128}#
#{r\ 3119}#)
(#{make-binding-wrap\ 2698}#
#{ids\ 3127}#
#{labels\ 3129}#
#{w\ 3120}#)
#{mod\ 3122}#)))))))
(#{lambda-formals\ 2726}#
(lambda (#{orig-args\ 3130}#)
(letrec ((#{check\ 3132}#
(lambda (#{req\ 3133}# #{rest\ 3134}#)
(if (#{distinct-bound-ids?\ 2707}#
(if #{rest\ 3134}#
(cons #{rest\ 3134}# #{req\ 3133}#)
#{req\ 3133}#))
(values #{req\ 3133}# #f #{rest\ 3134}# #f)
(syntax-violation
'lambda
"duplicate identifier in argument list"
#{orig-args\ 3130}#))))
(#{req\ 3131}#
(lambda (#{args\ 3135}# #{rreq\ 3136}#)
((lambda (#{tmp\ 3137}#)
((lambda (#{tmp\ 3138}#)
(if #{tmp\ 3138}#
(apply (lambda ()
(#{check\ 3132}#
(reverse #{rreq\ 3136}#)
#f))
#{tmp\ 3138}#)
((lambda (#{tmp\ 3139}#)
(if (if #{tmp\ 3139}#
(apply (lambda (#{a\ 3140}#
#{b\ 3141}#)
(#{id?\ 2681}#
#{a\ 3140}#))
#{tmp\ 3139}#)
#f)
(apply (lambda (#{a\ 3142}#
#{b\ 3143}#)
(#{req\ 3131}#
#{b\ 3143}#
(cons #{a\ 3142}#
#{rreq\ 3136}#)))
#{tmp\ 3139}#)
((lambda (#{tmp\ 3144}#)
(if (if #{tmp\ 3144}#
(apply (lambda (#{r\ 3145}#)
(#{id?\ 2681}#
#{r\ 3145}#))
#{tmp\ 3144}#)
#f)
(apply (lambda (#{r\ 3146}#)
(#{check\ 3132}#
(reverse
#{rreq\ 3136}#)
#{r\ 3146}#))
#{tmp\ 3144}#)
((lambda (#{else\ 3147}#)
(syntax-violation
'lambda
"invalid argument list"
#{orig-args\ 3130}#
#{args\ 3135}#))
#{tmp\ 3137}#)))
(list #{tmp\ 3137}#))))
($sc-dispatch
#{tmp\ 3137}#
'(any . any)))))
($sc-dispatch #{tmp\ 3137}# (quote ()))))
#{args\ 3135}#))))
(#{req\ 3131}# #{orig-args\ 3130}# (quote ())))))
(#{ellipsis?\ 2725}#
(lambda (#{x\ 3148}#)
(if (#{nonsymbol-id?\ 2680}# #{x\ 3148}#)
(#{free-id=?\ 2704}#
#{x\ 3148}#
'#(syntax-object
...
((top)
#(ribcage () () ())
#(ribcage () () ())
#(ribcage #(x) #((top)) #("i"))
#(ribcage
(lambda-var-list
gen-var
strip
chi-lambda-case
lambda*-formals
chi-simple-lambda
lambda-formals
ellipsis?
chi-void
eval-local-transformer
chi-local-syntax
chi-body
chi-macro
chi-application
chi-expr
chi
chi-top
syntax-type
chi-when-list
chi-install-global
chi-top-sequence
chi-sequence
source-wrap
wrap
bound-id-member?
distinct-bound-ids?
valid-bound-ids?
bound-id=?
free-id=?
id-var-name
same-marks?
join-marks
join-wraps
smart-append
make-binding-wrap
extend-ribcage!
make-empty-ribcage
new-mark
anti-mark
the-anti-mark
top-marked?
top-wrap
empty-wrap
set-ribcage-labels!
set-ribcage-marks!
set-ribcage-symnames!
ribcage-labels
ribcage-marks
ribcage-symnames
ribcage?
make-ribcage
gen-labels
gen-label
make-rename
rename-marks
rename-new
rename-old
subst-rename?
wrap-subst
wrap-marks
make-wrap
id-sym-name&marks
id-sym-name
id?
nonsymbol-id?
global-extend
lookup
macros-only-env
extend-var-env
extend-env
null-env
binding-value
binding-type
make-binding
arg-check
source-annotation
no-source
set-syntax-object-module!
set-syntax-object-wrap!
set-syntax-object-expression!
syntax-object-module
syntax-object-wrap
syntax-object-expression
syntax-object?
make-syntax-object
build-lexical-var
build-letrec
build-named-let
build-let
build-sequence
build-data
build-primref
build-lambda-case
build-case-lambda
build-simple-lambda
build-global-definition
maybe-name-value!
build-global-assignment
build-global-reference
analyze-variable
build-lexical-assignment
build-lexical-reference
build-conditional
build-application
build-void
decorate-source
get-global-definition-hook
put-global-definition-hook
gensym-hook
local-eval-hook
top-level-eval-hook
fx<
fx=
fx-
fx+
*mode*
noexpand)
((top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top))
("i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"))
#(ribcage
(define-structure and-map*)
((top) (top))
("i" "i")))
(hygiene guile)))
#f)))
(#{chi-void\ 2724}#
(lambda () (#{build-void\ 2645}# #f)))
(#{eval-local-transformer\ 2723}#
(lambda (#{expanded\ 3149}# #{mod\ 3150}#)
(let ((#{p\ 3151}#
(#{local-eval-hook\ 2641}#
#{expanded\ 3149}#
#{mod\ 3150}#)))
(if (procedure? #{p\ 3151}#)
#{p\ 3151}#
(syntax-violation
#f
"nonprocedure transformer"
#{p\ 3151}#)))))
(#{chi-local-syntax\ 2722}#
(lambda (#{rec?\ 3152}#
#{e\ 3153}#
#{r\ 3154}#
#{w\ 3155}#
#{s\ 3156}#
#{mod\ 3157}#
#{k\ 3158}#)
((lambda (#{tmp\ 3159}#)
((lambda (#{tmp\ 3160}#)
(if #{tmp\ 3160}#
(apply (lambda (#{_\ 3161}#
#{id\ 3162}#
#{val\ 3163}#
#{e1\ 3164}#
#{e2\ 3165}#)
(let ((#{ids\ 3166}# #{id\ 3162}#))
(if (not (#{valid-bound-ids?\ 2706}#
#{ids\ 3166}#))
(syntax-violation
#f
"duplicate bound keyword"
#{e\ 3153}#)
(let ((#{labels\ 3168}#
(#{gen-labels\ 2687}#
#{ids\ 3166}#)))
(let ((#{new-w\ 3169}#
(#{make-binding-wrap\ 2698}#
#{ids\ 3166}#
#{labels\ 3168}#
#{w\ 3155}#)))
(#{k\ 3158}#
(cons #{e1\ 3164}# #{e2\ 3165}#)
(#{extend-env\ 2675}#
#{labels\ 3168}#
(let ((#{w\ 3171}#
(if #{rec?\ 3152}#
#{new-w\ 3169}#
#{w\ 3155}#))
(#{trans-r\ 3172}#
(#{macros-only-env\ 2677}#
#{r\ 3154}#)))
(map (lambda (#{x\ 3173}#)
(cons 'macro
(#{eval-local-transformer\ 2723}#
(#{chi\ 2717}#
#{x\ 3173}#
#{trans-r\ 3172}#
#{w\ 3171}#
#{mod\ 3157}#)
#{mod\ 3157}#)))
#{val\ 3163}#))
#{r\ 3154}#)
#{new-w\ 3169}#
#{s\ 3156}#
#{mod\ 3157}#))))))
#{tmp\ 3160}#)
((lambda (#{_\ 3175}#)
(syntax-violation
#f
"bad local syntax definition"
(#{source-wrap\ 2710}#
#{e\ 3153}#
#{w\ 3155}#
#{s\ 3156}#
#{mod\ 3157}#)))
#{tmp\ 3159}#)))
($sc-dispatch
#{tmp\ 3159}#
'(any #(each (any any)) any . each-any))))
#{e\ 3153}#)))
(#{chi-body\ 2721}#
(lambda (#{body\ 3176}#
#{outer-form\ 3177}#
#{r\ 3178}#
#{w\ 3179}#
#{mod\ 3180}#)
(let ((#{r\ 3181}#
(cons '("placeholder" placeholder)
#{r\ 3178}#)))
(let ((#{ribcage\ 3182}#
(#{make-ribcage\ 2688}#
'()
'()
'())))
(let ((#{w\ 3183}#
(#{make-wrap\ 2683}#
(#{wrap-marks\ 2684}# #{w\ 3179}#)
(cons #{ribcage\ 3182}#
(#{wrap-subst\ 2685}# #{w\ 3179}#)))))
(letrec ((#{parse\ 3184}#
(lambda (#{body\ 3185}#
#{ids\ 3186}#
#{labels\ 3187}#
#{var-ids\ 3188}#
#{vars\ 3189}#
#{vals\ 3190}#
#{bindings\ 3191}#)
(if (null? #{body\ 3185}#)
(syntax-violation
#f
"no expressions in body"
#{outer-form\ 3177}#)
(let ((#{e\ 3193}# (cdar #{body\ 3185}#))
(#{er\ 3194}# (caar #{body\ 3185}#)))
(call-with-values
(lambda ()
(#{syntax-type\ 2715}#
#{e\ 3193}#
#{er\ 3194}#
'(())
(#{source-annotation\ 2672}#
#{er\ 3194}#)
#{ribcage\ 3182}#
#{mod\ 3180}#
#f))
(lambda (#{type\ 3195}#
#{value\ 3196}#
#{e\ 3197}#
#{w\ 3198}#
#{s\ 3199}#
#{mod\ 3200}#)
(if (memv #{type\ 3195}#
'(define-form))
(let ((#{id\ 3201}#
(#{wrap\ 2709}#
#{value\ 3196}#
#{w\ 3198}#
#{mod\ 3200}#))
(#{label\ 3202}#
(#{gen-label\ 2686}#)))
(let ((#{var\ 3203}#
(#{gen-var\ 2731}#
#{id\ 3201}#)))
(begin
(#{extend-ribcage!\ 2697}#
#{ribcage\ 3182}#
#{id\ 3201}#
#{label\ 3202}#)
(#{parse\ 3184}#
(cdr #{body\ 3185}#)
(cons #{id\ 3201}#
#{ids\ 3186}#)
(cons #{label\ 3202}#
#{labels\ 3187}#)
(cons #{id\ 3201}#
#{var-ids\ 3188}#)
(cons #{var\ 3203}#
#{vars\ 3189}#)
(cons (cons #{er\ 3194}#
(#{wrap\ 2709}#
#{e\ 3197}#
#{w\ 3198}#
#{mod\ 3200}#))
#{vals\ 3190}#)
(cons (cons 'lexical
#{var\ 3203}#)
#{bindings\ 3191}#)))))
(if (memv #{type\ 3195}#
'(define-syntax-form))
(let ((#{id\ 3204}#
(#{wrap\ 2709}#
#{value\ 3196}#
#{w\ 3198}#
#{mod\ 3200}#))
(#{label\ 3205}#
(#{gen-label\ 2686}#)))
(begin
(#{extend-ribcage!\ 2697}#
#{ribcage\ 3182}#
#{id\ 3204}#
#{label\ 3205}#)
(#{parse\ 3184}#
(cdr #{body\ 3185}#)
(cons #{id\ 3204}#
#{ids\ 3186}#)
(cons #{label\ 3205}#
#{labels\ 3187}#)
#{var-ids\ 3188}#
#{vars\ 3189}#
#{vals\ 3190}#
(cons (cons 'macro
(cons #{er\ 3194}#
(#{wrap\ 2709}#
#{e\ 3197}#
#{w\ 3198}#
#{mod\ 3200}#)))
#{bindings\ 3191}#))))
(if (memv #{type\ 3195}#
'(begin-form))
((lambda (#{tmp\ 3206}#)
((lambda (#{tmp\ 3207}#)
(if #{tmp\ 3207}#
(apply (lambda (#{_\ 3208}#
#{e1\ 3209}#)
(#{parse\ 3184}#
(letrec ((#{f\ 3210}#
(lambda (#{forms\ 3211}#)
(if (null? #{forms\ 3211}#)
(cdr #{body\ 3185}#)
(cons (cons #{er\ 3194}#
(#{wrap\ 2709}#
(car #{forms\ 3211}#)
#{w\ 3198}#
#{mod\ 3200}#))
(#{f\ 3210}#
(cdr #{forms\ 3211}#)))))))
(#{f\ 3210}#
#{e1\ 3209}#))
#{ids\ 3186}#
#{labels\ 3187}#
#{var-ids\ 3188}#
#{vars\ 3189}#
#{vals\ 3190}#
#{bindings\ 3191}#))
#{tmp\ 3207}#)
(syntax-violation
#f
"source expression failed to match any pattern"
#{tmp\ 3206}#)))
($sc-dispatch
#{tmp\ 3206}#
'(any . each-any))))
#{e\ 3197}#)
(if (memv #{type\ 3195}#
'(local-syntax-form))
(#{chi-local-syntax\ 2722}#
#{value\ 3196}#
#{e\ 3197}#
#{er\ 3194}#
#{w\ 3198}#
#{s\ 3199}#
#{mod\ 3200}#
(lambda (#{forms\ 3213}#
#{er\ 3214}#
#{w\ 3215}#
#{s\ 3216}#
#{mod\ 3217}#)
(#{parse\ 3184}#
(letrec ((#{f\ 3218}#
(lambda (#{forms\ 3219}#)
(if (null? #{forms\ 3219}#)
(cdr #{body\ 3185}#)
(cons (cons #{er\ 3214}#
(#{wrap\ 2709}#
(car #{forms\ 3219}#)
#{w\ 3215}#
#{mod\ 3217}#))
(#{f\ 3218}#
(cdr #{forms\ 3219}#)))))))
(#{f\ 3218}#
#{forms\ 3213}#))
#{ids\ 3186}#
#{labels\ 3187}#
#{var-ids\ 3188}#
#{vars\ 3189}#
#{vals\ 3190}#
#{bindings\ 3191}#)))
(if (null? #{ids\ 3186}#)
(#{build-sequence\ 2660}#
#f
(map (lambda (#{x\ 3220}#)
(#{chi\ 2717}#
(cdr #{x\ 3220}#)
(car #{x\ 3220}#)
'(())
#{mod\ 3200}#))
(cons (cons #{er\ 3194}#
(#{source-wrap\ 2710}#
#{e\ 3197}#
#{w\ 3198}#
#{s\ 3199}#
#{mod\ 3200}#))
(cdr #{body\ 3185}#))))
(begin
(if (not (#{valid-bound-ids?\ 2706}#
#{ids\ 3186}#))
(syntax-violation
#f
"invalid or duplicate identifier in definition"
#{outer-form\ 3177}#))
(letrec ((#{loop\ 3221}#
(lambda (#{bs\ 3222}#
#{er-cache\ 3223}#
#{r-cache\ 3224}#)
(if (not (null? #{bs\ 3222}#))
(let ((#{b\ 3225}#
(car #{bs\ 3222}#)))
(if (eq? (car #{b\ 3225}#)
'macro)
(let ((#{er\ 3226}#
(cadr #{b\ 3225}#)))
(let ((#{r-cache\ 3227}#
(if (eq? #{er\ 3226}#
#{er-cache\ 3223}#)
#{r-cache\ 3224}#
(#{macros-only-env\ 2677}#
#{er\ 3226}#))))
(begin
(set-cdr!
#{b\ 3225}#
(#{eval-local-transformer\ 2723}#
(#{chi\ 2717}#
(cddr #{b\ 3225}#)
#{r-cache\ 3227}#
'(())
#{mod\ 3200}#)
#{mod\ 3200}#))
(#{loop\ 3221}#
(cdr #{bs\ 3222}#)
#{er\ 3226}#
#{r-cache\ 3227}#))))
(#{loop\ 3221}#
(cdr #{bs\ 3222}#)
#{er-cache\ 3223}#
#{r-cache\ 3224}#)))))))
(#{loop\ 3221}#
#{bindings\ 3191}#
#f
#f))
(set-cdr!
#{r\ 3181}#
(#{extend-env\ 2675}#
#{labels\ 3187}#
#{bindings\ 3191}#
(cdr #{r\ 3181}#)))
(#{build-letrec\ 2663}#
#f
(map syntax->datum
#{var-ids\ 3188}#)
#{vars\ 3189}#
(map (lambda (#{x\ 3228}#)
(#{chi\ 2717}#
(cdr #{x\ 3228}#)
(car #{x\ 3228}#)
'(())
#{mod\ 3200}#))
#{vals\ 3190}#)
(#{build-sequence\ 2660}#
#f
(map (lambda (#{x\ 3229}#)
(#{chi\ 2717}#
(cdr #{x\ 3229}#)
(car #{x\ 3229}#)
'(())
#{mod\ 3200}#))
(cons (cons #{er\ 3194}#
(#{source-wrap\ 2710}#
#{e\ 3197}#
#{w\ 3198}#
#{s\ 3199}#
#{mod\ 3200}#))
(cdr #{body\ 3185}#))))))))))))))))))
(#{parse\ 3184}#
(map (lambda (#{x\ 3192}#)
(cons #{r\ 3181}#
(#{wrap\ 2709}#
#{x\ 3192}#
#{w\ 3183}#
#{mod\ 3180}#)))
#{body\ 3176}#)
'()
'()
'()
'()
'()
'())))))))
(#{chi-macro\ 2720}#
(lambda (#{p\ 3230}#
#{e\ 3231}#
#{r\ 3232}#
#{w\ 3233}#
#{rib\ 3234}#
#{mod\ 3235}#)
(letrec ((#{rebuild-macro-output\ 3236}#
(lambda (#{x\ 3237}# #{m\ 3238}#)
(if (pair? #{x\ 3237}#)
(cons (#{rebuild-macro-output\ 3236}#
(car #{x\ 3237}#)
#{m\ 3238}#)
(#{rebuild-macro-output\ 3236}#
(cdr #{x\ 3237}#)
#{m\ 3238}#))
(if (#{syntax-object?\ 2665}# #{x\ 3237}#)
(let ((#{w\ 3239}#
(#{syntax-object-wrap\ 2667}#
#{x\ 3237}#)))
(let ((#{ms\ 3240}#
(#{wrap-marks\ 2684}# #{w\ 3239}#))
(#{s\ 3241}#
(#{wrap-subst\ 2685}# #{w\ 3239}#)))
(if (if (pair? #{ms\ 3240}#)
(eq? (car #{ms\ 3240}#) #f)
#f)
(#{make-syntax-object\ 2664}#
(#{syntax-object-expression\ 2666}#
#{x\ 3237}#)
(#{make-wrap\ 2683}#
(cdr #{ms\ 3240}#)
(if #{rib\ 3234}#
(cons #{rib\ 3234}#
(cdr #{s\ 3241}#))
(cdr #{s\ 3241}#)))
(#{syntax-object-module\ 2668}#
#{x\ 3237}#))
(#{make-syntax-object\ 2664}#
(#{syntax-object-expression\ 2666}#
#{x\ 3237}#)
(#{make-wrap\ 2683}#
(cons #{m\ 3238}# #{ms\ 3240}#)
(if #{rib\ 3234}#
(cons #{rib\ 3234}#
(cons 'shift
#{s\ 3241}#))
(cons (quote shift) #{s\ 3241}#)))
(let ((#{pmod\ 3242}#
(procedure-module
#{p\ 3230}#)))
(if #{pmod\ 3242}#
(cons 'hygiene
(module-name #{pmod\ 3242}#))
'(hygiene guile)))))))
(if (vector? #{x\ 3237}#)
(let ((#{n\ 3243}#
(vector-length #{x\ 3237}#)))
(let ((#{v\ 3244}#
(make-vector #{n\ 3243}#)))
(letrec ((#{loop\ 3245}#
(lambda (#{i\ 3246}#)
(if (#{fx=\ 2638}#
#{i\ 3246}#
#{n\ 3243}#)
(begin
(if #f #f)
#{v\ 3244}#)
(begin
(vector-set!
#{v\ 3244}#
#{i\ 3246}#
(#{rebuild-macro-output\ 3236}#
(vector-ref
#{x\ 3237}#
#{i\ 3246}#)
#{m\ 3238}#))
(#{loop\ 3245}#
(#{fx+\ 2636}#
#{i\ 3246}#
1)))))))
(#{loop\ 3245}# 0))))
(if (symbol? #{x\ 3237}#)
(syntax-violation
#f
"encountered raw symbol in macro output"
(#{source-wrap\ 2710}#
#{e\ 3231}#
#{w\ 3233}#
(#{wrap-subst\ 2685}# #{w\ 3233}#)
#{mod\ 3235}#)
#{x\ 3237}#)
#{x\ 3237}#)))))))
(#{rebuild-macro-output\ 3236}#
(#{p\ 3230}#
(#{wrap\ 2709}#
#{e\ 3231}#
(#{anti-mark\ 2696}# #{w\ 3233}#)
#{mod\ 3235}#))
(string #\m)))))
(#{chi-application\ 2719}#
(lambda (#{x\ 3247}#
#{e\ 3248}#
#{r\ 3249}#
#{w\ 3250}#
#{s\ 3251}#
#{mod\ 3252}#)
((lambda (#{tmp\ 3253}#)
((lambda (#{tmp\ 3254}#)
(if #{tmp\ 3254}#
(apply (lambda (#{e0\ 3255}# #{e1\ 3256}#)
(#{build-application\ 2646}#
#{s\ 3251}#
#{x\ 3247}#
(map (lambda (#{e\ 3257}#)
(#{chi\ 2717}#
#{e\ 3257}#
#{r\ 3249}#
#{w\ 3250}#
#{mod\ 3252}#))
#{e1\ 3256}#)))
#{tmp\ 3254}#)
(syntax-violation
#f
"source expression failed to match any pattern"
#{tmp\ 3253}#)))
($sc-dispatch
#{tmp\ 3253}#
'(any . each-any))))
#{e\ 3248}#)))
(#{chi-expr\ 2718}#
(lambda (#{type\ 3259}#
#{value\ 3260}#
#{e\ 3261}#
#{r\ 3262}#
#{w\ 3263}#
#{s\ 3264}#
#{mod\ 3265}#)
(if (memv #{type\ 3259}# (quote (lexical)))
(#{build-lexical-reference\ 2648}#
'value
#{s\ 3264}#
#{e\ 3261}#
#{value\ 3260}#)
(if (memv #{type\ 3259}# (quote (core core-form)))
(#{value\ 3260}#
#{e\ 3261}#
#{r\ 3262}#
#{w\ 3263}#
#{s\ 3264}#
#{mod\ 3265}#)
(if (memv #{type\ 3259}# (quote (module-ref)))
(call-with-values
(lambda () (#{value\ 3260}# #{e\ 3261}#))
(lambda (#{id\ 3266}# #{mod\ 3267}#)
(#{build-global-reference\ 2651}#
#{s\ 3264}#
#{id\ 3266}#
#{mod\ 3267}#)))
(if (memv #{type\ 3259}# (quote (lexical-call)))
(#{chi-application\ 2719}#
(#{build-lexical-reference\ 2648}#
'fun
(#{source-annotation\ 2672}# (car #{e\ 3261}#))
(car #{e\ 3261}#)
#{value\ 3260}#)
#{e\ 3261}#
#{r\ 3262}#
#{w\ 3263}#
#{s\ 3264}#
#{mod\ 3265}#)
(if (memv #{type\ 3259}# (quote (global-call)))
(#{chi-application\ 2719}#
(#{build-global-reference\ 2651}#
(#{source-annotation\ 2672}# (car #{e\ 3261}#))
(if (#{syntax-object?\ 2665}# #{value\ 3260}#)
(#{syntax-object-expression\ 2666}#
#{value\ 3260}#)
#{value\ 3260}#)
(if (#{syntax-object?\ 2665}# #{value\ 3260}#)
(#{syntax-object-module\ 2668}# #{value\ 3260}#)
#{mod\ 3265}#))
#{e\ 3261}#
#{r\ 3262}#
#{w\ 3263}#
#{s\ 3264}#
#{mod\ 3265}#)
(if (memv #{type\ 3259}# (quote (constant)))
(#{build-data\ 2659}#
#{s\ 3264}#
(#{strip\ 2730}#
(#{source-wrap\ 2710}#
#{e\ 3261}#
#{w\ 3263}#
#{s\ 3264}#
#{mod\ 3265}#)
'(())))
(if (memv #{type\ 3259}# (quote (global)))
(#{build-global-reference\ 2651}#
#{s\ 3264}#
#{value\ 3260}#
#{mod\ 3265}#)
(if (memv #{type\ 3259}# (quote (call)))
(#{chi-application\ 2719}#
(#{chi\ 2717}#
(car #{e\ 3261}#)
#{r\ 3262}#
#{w\ 3263}#
#{mod\ 3265}#)
#{e\ 3261}#
#{r\ 3262}#
#{w\ 3263}#
#{s\ 3264}#
#{mod\ 3265}#)
(if (memv #{type\ 3259}# (quote (begin-form)))
((lambda (#{tmp\ 3268}#)
((lambda (#{tmp\ 3269}#)
(if #{tmp\ 3269}#
(apply (lambda (#{_\ 3270}#
#{e1\ 3271}#
#{e2\ 3272}#)
(#{chi-sequence\ 2711}#
(cons #{e1\ 3271}#
#{e2\ 3272}#)
#{r\ 3262}#
#{w\ 3263}#
#{s\ 3264}#
#{mod\ 3265}#))
#{tmp\ 3269}#)
(syntax-violation
#f
"source expression failed to match any pattern"
#{tmp\ 3268}#)))
($sc-dispatch
#{tmp\ 3268}#
'(any any . each-any))))
#{e\ 3261}#)
(if (memv #{type\ 3259}#
'(local-syntax-form))
(#{chi-local-syntax\ 2722}#
#{value\ 3260}#
#{e\ 3261}#
#{r\ 3262}#
#{w\ 3263}#
#{s\ 3264}#
#{mod\ 3265}#
#{chi-sequence\ 2711}#)
(if (memv #{type\ 3259}#
'(eval-when-form))
((lambda (#{tmp\ 3274}#)
((lambda (#{tmp\ 3275}#)
(if #{tmp\ 3275}#
(apply (lambda (#{_\ 3276}#
#{x\ 3277}#
#{e1\ 3278}#
#{e2\ 3279}#)
(let ((#{when-list\ 3280}#
(#{chi-when-list\ 2714}#
#{e\ 3261}#
#{x\ 3277}#
#{w\ 3263}#)))
(if (memq 'eval
#{when-list\ 3280}#)
(#{chi-sequence\ 2711}#
(cons #{e1\ 3278}#
#{e2\ 3279}#)
#{r\ 3262}#
#{w\ 3263}#
#{s\ 3264}#
#{mod\ 3265}#)
(#{chi-void\ 2724}#))))
#{tmp\ 3275}#)
(syntax-violation
#f
"source expression failed to match any pattern"
#{tmp\ 3274}#)))
($sc-dispatch
#{tmp\ 3274}#
'(any each-any any . each-any))))
#{e\ 3261}#)
(if (memv #{type\ 3259}#
'(define-form
define-syntax-form))
(syntax-violation
#f
"definition in expression context"
#{e\ 3261}#
(#{wrap\ 2709}#
#{value\ 3260}#
#{w\ 3263}#
#{mod\ 3265}#))
(if (memv #{type\ 3259}#
'(syntax))
(syntax-violation
#f
"reference to pattern variable outside syntax form"
(#{source-wrap\ 2710}#
#{e\ 3261}#
#{w\ 3263}#
#{s\ 3264}#
#{mod\ 3265}#))
(if (memv #{type\ 3259}#
'(displaced-lexical))
(syntax-violation
#f
"reference to identifier outside its scope"
(#{source-wrap\ 2710}#
#{e\ 3261}#
#{w\ 3263}#
#{s\ 3264}#
#{mod\ 3265}#))
(syntax-violation
#f
"unexpected syntax"
(#{source-wrap\ 2710}#
#{e\ 3261}#
#{w\ 3263}#
#{s\ 3264}#
#{mod\ 3265}#))))))))))))))))))
(#{chi\ 2717}#
(lambda (#{e\ 3283}#
#{r\ 3284}#
#{w\ 3285}#
#{mod\ 3286}#)
(call-with-values
(lambda ()
(#{syntax-type\ 2715}#
#{e\ 3283}#
#{r\ 3284}#
#{w\ 3285}#
(#{source-annotation\ 2672}# #{e\ 3283}#)
#f
#{mod\ 3286}#
#f))
(lambda (#{type\ 3287}#
#{value\ 3288}#
#{e\ 3289}#
#{w\ 3290}#
#{s\ 3291}#
#{mod\ 3292}#)
(#{chi-expr\ 2718}#
#{type\ 3287}#
#{value\ 3288}#
#{e\ 3289}#
#{r\ 3284}#
#{w\ 3290}#
#{s\ 3291}#
#{mod\ 3292}#)))))
(#{chi-top\ 2716}#
(lambda (#{e\ 3293}#
#{r\ 3294}#
#{w\ 3295}#
#{m\ 3296}#
#{esew\ 3297}#
#{mod\ 3298}#)
(call-with-values
(lambda ()
(#{syntax-type\ 2715}#
#{e\ 3293}#
#{r\ 3294}#
#{w\ 3295}#
(#{source-annotation\ 2672}# #{e\ 3293}#)
#f
#{mod\ 3298}#
#f))
(lambda (#{type\ 3306}#
#{value\ 3307}#
#{e\ 3308}#
#{w\ 3309}#
#{s\ 3310}#
#{mod\ 3311}#)
(if (memv #{type\ 3306}# (quote (begin-form)))
((lambda (#{tmp\ 3312}#)
((lambda (#{tmp\ 3313}#)
(if #{tmp\ 3313}#
(apply (lambda (#{_\ 3314}#) (#{chi-void\ 2724}#))
#{tmp\ 3313}#)
((lambda (#{tmp\ 3315}#)
(if #{tmp\ 3315}#
(apply (lambda (#{_\ 3316}#
#{e1\ 3317}#
#{e2\ 3318}#)
(#{chi-top-sequence\ 2712}#
(cons #{e1\ 3317}# #{e2\ 3318}#)
#{r\ 3294}#
#{w\ 3309}#
#{s\ 3310}#
#{m\ 3296}#
#{esew\ 3297}#
#{mod\ 3311}#))
#{tmp\ 3315}#)
(syntax-violation
#f
"source expression failed to match any pattern"
#{tmp\ 3312}#)))
($sc-dispatch
#{tmp\ 3312}#
'(any any . each-any)))))
($sc-dispatch #{tmp\ 3312}# (quote (any)))))
#{e\ 3308}#)
(if (memv #{type\ 3306}# (quote (local-syntax-form)))
(#{chi-local-syntax\ 2722}#
#{value\ 3307}#
#{e\ 3308}#
#{r\ 3294}#
#{w\ 3309}#
#{s\ 3310}#
#{mod\ 3311}#
(lambda (#{body\ 3320}#
#{r\ 3321}#
#{w\ 3322}#
#{s\ 3323}#
#{mod\ 3324}#)
(#{chi-top-sequence\ 2712}#
#{body\ 3320}#
#{r\ 3321}#
#{w\ 3322}#
#{s\ 3323}#
#{m\ 3296}#
#{esew\ 3297}#
#{mod\ 3324}#)))
(if (memv #{type\ 3306}# (quote (eval-when-form)))
((lambda (#{tmp\ 3325}#)
((lambda (#{tmp\ 3326}#)
(if #{tmp\ 3326}#
(apply (lambda (#{_\ 3327}#
#{x\ 3328}#
#{e1\ 3329}#
#{e2\ 3330}#)
(let ((#{when-list\ 3331}#
(#{chi-when-list\ 2714}#
#{e\ 3308}#
#{x\ 3328}#
#{w\ 3309}#))
(#{body\ 3332}#
(cons #{e1\ 3329}#
#{e2\ 3330}#)))
(if (eq? #{m\ 3296}# (quote e))
(if (memq 'eval
#{when-list\ 3331}#)
(#{chi-top-sequence\ 2712}#
#{body\ 3332}#
#{r\ 3294}#
#{w\ 3309}#
#{s\ 3310}#
'e
'(eval)
#{mod\ 3311}#)
(#{chi-void\ 2724}#))
(if (memq 'load
#{when-list\ 3331}#)
(if (let ((#{t\ 3335}#
(memq 'compile
#{when-list\ 3331}#)))
(if #{t\ 3335}#
#{t\ 3335}#
(if (eq? #{m\ 3296}#
'c&e)
(memq 'eval
#{when-list\ 3331}#)
#f)))
(#{chi-top-sequence\ 2712}#
#{body\ 3332}#
#{r\ 3294}#
#{w\ 3309}#
#{s\ 3310}#
'c&e
'(compile load)
#{mod\ 3311}#)
(if (memq #{m\ 3296}#
'(c c&e))
(#{chi-top-sequence\ 2712}#
#{body\ 3332}#
#{r\ 3294}#
#{w\ 3309}#
#{s\ 3310}#
'c
'(load)
#{mod\ 3311}#)
(#{chi-void\ 2724}#)))
(if (let ((#{t\ 3336}#
(memq 'compile
#{when-list\ 3331}#)))
(if #{t\ 3336}#
#{t\ 3336}#
(if (eq? #{m\ 3296}#
'c&e)
(memq 'eval
#{when-list\ 3331}#)
#f)))
(begin
(#{top-level-eval-hook\ 2640}#
(#{chi-top-sequence\ 2712}#
#{body\ 3332}#
#{r\ 3294}#
#{w\ 3309}#
#{s\ 3310}#
'e
'(eval)
#{mod\ 3311}#)
#{mod\ 3311}#)
(#{chi-void\ 2724}#))
(#{chi-void\ 2724}#))))))
#{tmp\ 3326}#)
(syntax-violation
#f
"source expression failed to match any pattern"
#{tmp\ 3325}#)))
($sc-dispatch
#{tmp\ 3325}#
'(any each-any any . each-any))))
#{e\ 3308}#)
(if (memv #{type\ 3306}#
'(define-syntax-form))
(let ((#{n\ 3337}#
(#{id-var-name\ 2703}#
#{value\ 3307}#
#{w\ 3309}#))
(#{r\ 3338}#
(#{macros-only-env\ 2677}# #{r\ 3294}#)))
(if (memv #{m\ 3296}# (quote (c)))
(if (memq (quote compile) #{esew\ 3297}#)
(let ((#{e\ 3339}#
(#{chi-install-global\ 2713}#
#{n\ 3337}#
(#{chi\ 2717}#
#{e\ 3308}#
#{r\ 3338}#
#{w\ 3309}#
#{mod\ 3311}#))))
(begin
(#{top-level-eval-hook\ 2640}#
#{e\ 3339}#
#{mod\ 3311}#)
(if (memq (quote load) #{esew\ 3297}#)
#{e\ 3339}#
(#{chi-void\ 2724}#))))
(if (memq (quote load) #{esew\ 3297}#)
(#{chi-install-global\ 2713}#
#{n\ 3337}#
(#{chi\ 2717}#
#{e\ 3308}#
#{r\ 3338}#
#{w\ 3309}#
#{mod\ 3311}#))
(#{chi-void\ 2724}#)))
(if (memv #{m\ 3296}# (quote (c&e)))
(let ((#{e\ 3340}#
(#{chi-install-global\ 2713}#
#{n\ 3337}#
(#{chi\ 2717}#
#{e\ 3308}#
#{r\ 3338}#
#{w\ 3309}#
#{mod\ 3311}#))))
(begin
(#{top-level-eval-hook\ 2640}#
#{e\ 3340}#
#{mod\ 3311}#)
#{e\ 3340}#))
(begin
(if (memq (quote eval) #{esew\ 3297}#)
(#{top-level-eval-hook\ 2640}#
(#{chi-install-global\ 2713}#
#{n\ 3337}#
(#{chi\ 2717}#
#{e\ 3308}#
#{r\ 3338}#
#{w\ 3309}#
#{mod\ 3311}#))
#{mod\ 3311}#))
(#{chi-void\ 2724}#)))))
(if (memv #{type\ 3306}# (quote (define-form)))
(let ((#{n\ 3341}#
(#{id-var-name\ 2703}#
#{value\ 3307}#
#{w\ 3309}#)))
(let ((#{type\ 3342}#
(#{binding-type\ 2673}#
(#{lookup\ 2678}#
#{n\ 3341}#
#{r\ 3294}#
#{mod\ 3311}#))))
(if (memv #{type\ 3342}#
'(global core macro module-ref))
(begin
(if (if (not (module-local-variable
(current-module)
#{n\ 3341}#))
(current-module)
#f)
(let ((#{old\ 3343}#
(module-variable
(current-module)
#{n\ 3341}#)))
(module-define!
(current-module)
#{n\ 3341}#
(if (variable? #{old\ 3343}#)
(variable-ref #{old\ 3343}#)
#f))))
(let ((#{x\ 3344}#
(#{build-global-definition\ 2654}#
#{s\ 3310}#
#{n\ 3341}#
(#{chi\ 2717}#
#{e\ 3308}#
#{r\ 3294}#
#{w\ 3309}#
#{mod\ 3311}#))))
(begin
(if (eq? #{m\ 3296}# (quote c&e))
(#{top-level-eval-hook\ 2640}#
#{x\ 3344}#
#{mod\ 3311}#))
#{x\ 3344}#)))
(if (memv #{type\ 3342}#
'(displaced-lexical))
(syntax-violation
#f
"identifier out of context"
#{e\ 3308}#
(#{wrap\ 2709}#
#{value\ 3307}#
#{w\ 3309}#
#{mod\ 3311}#))
(syntax-violation
#f
"cannot define keyword at top level"
#{e\ 3308}#
(#{wrap\ 2709}#
#{value\ 3307}#
#{w\ 3309}#
#{mod\ 3311}#))))))
(let ((#{x\ 3345}#
(#{chi-expr\ 2718}#
#{type\ 3306}#
#{value\ 3307}#
#{e\ 3308}#
#{r\ 3294}#
#{w\ 3309}#
#{s\ 3310}#
#{mod\ 3311}#)))
(begin
(if (eq? #{m\ 3296}# (quote c&e))
(#{top-level-eval-hook\ 2640}#
#{x\ 3345}#
#{mod\ 3311}#))
#{x\ 3345}#)))))))))))
(#{syntax-type\ 2715}#
(lambda (#{e\ 3346}#
#{r\ 3347}#
#{w\ 3348}#
#{s\ 3349}#
#{rib\ 3350}#
#{mod\ 3351}#
#{for-car?\ 3352}#)
(if (symbol? #{e\ 3346}#)
(let ((#{n\ 3353}#
(#{id-var-name\ 2703}# #{e\ 3346}# #{w\ 3348}#)))
(let ((#{b\ 3354}#
(#{lookup\ 2678}#
#{n\ 3353}#
#{r\ 3347}#
#{mod\ 3351}#)))
(let ((#{type\ 3355}#
(#{binding-type\ 2673}# #{b\ 3354}#)))
(if (memv #{type\ 3355}# (quote (lexical)))
(values
#{type\ 3355}#
(#{binding-value\ 2674}# #{b\ 3354}#)
#{e\ 3346}#
#{w\ 3348}#
#{s\ 3349}#
#{mod\ 3351}#)
(if (memv #{type\ 3355}# (quote (global)))
(values
#{type\ 3355}#
#{n\ 3353}#
#{e\ 3346}#
#{w\ 3348}#
#{s\ 3349}#
#{mod\ 3351}#)
(if (memv #{type\ 3355}# (quote (macro)))
(if #{for-car?\ 3352}#
(values
#{type\ 3355}#
(#{binding-value\ 2674}# #{b\ 3354}#)
#{e\ 3346}#
#{w\ 3348}#
#{s\ 3349}#
#{mod\ 3351}#)
(#{syntax-type\ 2715}#
(#{chi-macro\ 2720}#
(#{binding-value\ 2674}# #{b\ 3354}#)
#{e\ 3346}#
#{r\ 3347}#
#{w\ 3348}#
#{rib\ 3350}#
#{mod\ 3351}#)
#{r\ 3347}#
'(())
#{s\ 3349}#
#{rib\ 3350}#
#{mod\ 3351}#
#f))
(values
#{type\ 3355}#
(#{binding-value\ 2674}# #{b\ 3354}#)
#{e\ 3346}#
#{w\ 3348}#
#{s\ 3349}#
#{mod\ 3351}#)))))))
(if (pair? #{e\ 3346}#)
(let ((#{first\ 3356}# (car #{e\ 3346}#)))
(call-with-values
(lambda ()
(#{syntax-type\ 2715}#
#{first\ 3356}#
#{r\ 3347}#
#{w\ 3348}#
#{s\ 3349}#
#{rib\ 3350}#
#{mod\ 3351}#
#t))
(lambda (#{ftype\ 3357}#
#{fval\ 3358}#
#{fe\ 3359}#
#{fw\ 3360}#
#{fs\ 3361}#
#{fmod\ 3362}#)
(if (memv #{ftype\ 3357}# (quote (lexical)))
(values
'lexical-call
#{fval\ 3358}#
#{e\ 3346}#
#{w\ 3348}#
#{s\ 3349}#
#{mod\ 3351}#)
(if (memv #{ftype\ 3357}# (quote (global)))
(values
'global-call
(#{make-syntax-object\ 2664}#
#{fval\ 3358}#
#{w\ 3348}#
#{fmod\ 3362}#)
#{e\ 3346}#
#{w\ 3348}#
#{s\ 3349}#
#{mod\ 3351}#)
(if (memv #{ftype\ 3357}# (quote (macro)))
(#{syntax-type\ 2715}#
(#{chi-macro\ 2720}#
#{fval\ 3358}#
#{e\ 3346}#
#{r\ 3347}#
#{w\ 3348}#
#{rib\ 3350}#
#{mod\ 3351}#)
#{r\ 3347}#
'(())
#{s\ 3349}#
#{rib\ 3350}#
#{mod\ 3351}#
#{for-car?\ 3352}#)
(if (memv #{ftype\ 3357}# (quote (module-ref)))
(call-with-values
(lambda () (#{fval\ 3358}# #{e\ 3346}#))
(lambda (#{sym\ 3363}# #{mod\ 3364}#)
(#{syntax-type\ 2715}#
#{sym\ 3363}#
#{r\ 3347}#
#{w\ 3348}#
#{s\ 3349}#
#{rib\ 3350}#
#{mod\ 3364}#
#{for-car?\ 3352}#)))
(if (memv #{ftype\ 3357}# (quote (core)))
(values
'core-form
#{fval\ 3358}#
#{e\ 3346}#
#{w\ 3348}#
#{s\ 3349}#
#{mod\ 3351}#)
(if (memv #{ftype\ 3357}#
'(local-syntax))
(values
'local-syntax-form
#{fval\ 3358}#
#{e\ 3346}#
#{w\ 3348}#
#{s\ 3349}#
#{mod\ 3351}#)
(if (memv #{ftype\ 3357}# (quote (begin)))
(values
'begin-form
#f
#{e\ 3346}#
#{w\ 3348}#
#{s\ 3349}#
#{mod\ 3351}#)
(if (memv #{ftype\ 3357}#
'(eval-when))
(values
'eval-when-form
#f
#{e\ 3346}#
#{w\ 3348}#
#{s\ 3349}#
#{mod\ 3351}#)
(if (memv #{ftype\ 3357}#
'(define))
((lambda (#{tmp\ 3365}#)
((lambda (#{tmp\ 3366}#)
(if (if #{tmp\ 3366}#
(apply (lambda (#{_\ 3367}#
#{name\ 3368}#
#{val\ 3369}#)
(#{id?\ 2681}#
#{name\ 3368}#))
#{tmp\ 3366}#)
#f)
(apply (lambda (#{_\ 3370}#
#{name\ 3371}#
#{val\ 3372}#)
(values
'define-form
#{name\ 3371}#
#{val\ 3372}#
#{w\ 3348}#
#{s\ 3349}#
#{mod\ 3351}#))
#{tmp\ 3366}#)
((lambda (#{tmp\ 3373}#)
(if (if #{tmp\ 3373}#
(apply (lambda (#{_\ 3374}#
#{name\ 3375}#
#{args\ 3376}#
#{e1\ 3377}#
#{e2\ 3378}#)
(if (#{id?\ 2681}#
#{name\ 3375}#)
(#{valid-bound-ids?\ 2706}#
(#{lambda-var-list\ 2732}#
#{args\ 3376}#))
#f))
#{tmp\ 3373}#)
#f)
(apply (lambda (#{_\ 3379}#
#{name\ 3380}#
#{args\ 3381}#
#{e1\ 3382}#
#{e2\ 3383}#)
(values
'define-form
(#{wrap\ 2709}#
#{name\ 3380}#
#{w\ 3348}#
#{mod\ 3351}#)
(#{decorate-source\ 2644}#
(cons '#(syntax-object
lambda
((top)
#(ribcage
#(_
name
args
e1
e2)
#((top)
(top)
(top)
(top)
(top))
#("i"
"i"
"i"
"i"
"i"))
#(ribcage
()
()
())
#(ribcage
()
()
())
#(ribcage
#(ftype
fval
fe
fw
fs
fmod)
#((top)
(top)
(top)
(top)
(top)
(top))
#("i"
"i"
"i"
"i"
"i"
"i"))
#(ribcage
()
()
())
#(ribcage
#(first)
#((top))
#("i"))
#(ribcage
()
()
())
#(ribcage
()
()
())
#(ribcage
()
()
())
#(ribcage
#(e
r
w
s
rib
mod
for-car?)
#((top)
(top)
(top)
(top)
(top)
(top)
(top))
#("i"
"i"
"i"
"i"
"i"
"i"
"i"))
#(ribcage
(lambda-var-list
gen-var
strip
chi-lambda-case
lambda*-formals
chi-simple-lambda
lambda-formals
ellipsis?
chi-void
eval-local-transformer
chi-local-syntax
chi-body
chi-macro
chi-application
chi-expr
chi
chi-top
syntax-type
chi-when-list
chi-install-global
chi-top-sequence
chi-sequence
source-wrap
wrap
bound-id-member?
distinct-bound-ids?
valid-bound-ids?
bound-id=?
free-id=?
id-var-name
same-marks?
join-marks
join-wraps
smart-append
make-binding-wrap
extend-ribcage!
make-empty-ribcage
new-mark
anti-mark
the-anti-mark
top-marked?
top-wrap
empty-wrap
set-ribcage-labels!
set-ribcage-marks!
set-ribcage-symnames!
ribcage-labels
ribcage-marks
ribcage-symnames
ribcage?
make-ribcage
gen-labels
gen-label
make-rename
rename-marks
rename-new
rename-old
subst-rename?
wrap-subst
wrap-marks
make-wrap
id-sym-name&marks
id-sym-name
id?
nonsymbol-id?
global-extend
lookup
macros-only-env
extend-var-env
extend-env
null-env
binding-value
binding-type
make-binding
arg-check
source-annotation
no-source
set-syntax-object-module!
set-syntax-object-wrap!
set-syntax-object-expression!
syntax-object-module
syntax-object-wrap
syntax-object-expression
syntax-object?
make-syntax-object
build-lexical-var
build-letrec
build-named-let
build-let
build-sequence
build-data
build-primref
build-lambda-case
build-case-lambda
build-simple-lambda
build-global-definition
maybe-name-value!
build-global-assignment
build-global-reference
analyze-variable
build-lexical-assignment
build-lexical-reference
build-conditional
build-application
build-void
decorate-source
get-global-definition-hook
put-global-definition-hook
gensym-hook
local-eval-hook
top-level-eval-hook
fx<
fx=
fx-
fx+
*mode*
noexpand)
((top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top))
("i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"))
#(ribcage
(define-structure
and-map*)
((top)
(top))
("i"
"i")))
(hygiene
guile))
(#{wrap\ 2709}#
(cons #{args\ 3381}#
(cons #{e1\ 3382}#
#{e2\ 3383}#))
#{w\ 3348}#
#{mod\ 3351}#))
#{s\ 3349}#)
'(())
#{s\ 3349}#
#{mod\ 3351}#))
#{tmp\ 3373}#)
((lambda (#{tmp\ 3385}#)
(if (if #{tmp\ 3385}#
(apply (lambda (#{_\ 3386}#
#{name\ 3387}#)
(#{id?\ 2681}#
#{name\ 3387}#))
#{tmp\ 3385}#)
#f)
(apply (lambda (#{_\ 3388}#
#{name\ 3389}#)
(values
'define-form
(#{wrap\ 2709}#
#{name\ 3389}#
#{w\ 3348}#
#{mod\ 3351}#)
'(#(syntax-object
if
((top)
#(ribcage
#(_
name)
#((top)
(top))
#("i"
"i"))
#(ribcage
()
()
())
#(ribcage
()
()
())
#(ribcage
#(ftype
fval
fe
fw
fs
fmod)
#((top)
(top)
(top)
(top)
(top)
(top))
#("i"
"i"
"i"
"i"
"i"
"i"))
#(ribcage
()
()
())
#(ribcage
#(first)
#((top))
#("i"))
#(ribcage
()
()
())
#(ribcage
()
()
())
#(ribcage
()
()
())
#(ribcage
#(e
r
w
s
rib
mod
for-car?)
#((top)
(top)
(top)
(top)
(top)
(top)
(top))
#("i"
"i"
"i"
"i"
"i"
"i"
"i"))
#(ribcage
(lambda-var-list
gen-var
strip
chi-lambda-case
lambda*-formals
chi-simple-lambda
lambda-formals
ellipsis?
chi-void
eval-local-transformer
chi-local-syntax
chi-body
chi-macro
chi-application
chi-expr
chi
chi-top
syntax-type
chi-when-list
chi-install-global
chi-top-sequence
chi-sequence
source-wrap
wrap
bound-id-member?
distinct-bound-ids?
valid-bound-ids?
bound-id=?
free-id=?
id-var-name
same-marks?
join-marks
join-wraps
smart-append
make-binding-wrap
extend-ribcage!
make-empty-ribcage
new-mark
anti-mark
the-anti-mark
top-marked?
top-wrap
empty-wrap
set-ribcage-labels!
set-ribcage-marks!
set-ribcage-symnames!
ribcage-labels
ribcage-marks
ribcage-symnames
ribcage?
make-ribcage
gen-labels
gen-label
make-rename
rename-marks
rename-new
rename-old
subst-rename?
wrap-subst
wrap-marks
make-wrap
id-sym-name&marks
id-sym-name
id?
nonsymbol-id?
global-extend
lookup
macros-only-env
extend-var-env
extend-env
null-env
binding-value
binding-type
make-binding
arg-check
source-annotation
no-source
set-syntax-object-module!
set-syntax-object-wrap!
set-syntax-object-expression!
syntax-object-module
syntax-object-wrap
syntax-object-expression
syntax-object?
make-syntax-object
build-lexical-var
build-letrec
build-named-let
build-let
build-sequence
build-data
build-primref
build-lambda-case
build-case-lambda
build-simple-lambda
build-global-definition
maybe-name-value!
build-global-assignment
build-global-reference
analyze-variable
build-lexical-assignment
build-lexical-reference
build-conditional
build-application
build-void
decorate-source
get-global-definition-hook
put-global-definition-hook
gensym-hook
local-eval-hook
top-level-eval-hook
fx<
fx=
fx-
fx+
*mode*
noexpand)
((top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top))
("i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"))
#(ribcage
(define-structure
and-map*)
((top)
(top))
("i"
"i")))
(hygiene
guile))
#(syntax-object
#f
((top)
#(ribcage
#(_
name)
#((top)
(top))
#("i"
"i"))
#(ribcage
()
()
())
#(ribcage
()
()
())
#(ribcage
#(ftype
fval
fe
fw
fs
fmod)
#((top)
(top)
(top)
(top)
(top)
(top))
#("i"
"i"
"i"
"i"
"i"
"i"))
#(ribcage
()
()
())
#(ribcage
#(first)
#((top))
#("i"))
#(ribcage
()
()
())
#(ribcage
()
()
())
#(ribcage
()
()
())
#(ribcage
#(e
r
w
s
rib
mod
for-car?)
#((top)
(top)
(top)
(top)
(top)
(top)
(top))
#("i"
"i"
"i"
"i"
"i"
"i"
"i"))
#(ribcage
(lambda-var-list
gen-var
strip
chi-lambda-case
lambda*-formals
chi-simple-lambda
lambda-formals
ellipsis?
chi-void
eval-local-transformer
chi-local-syntax
chi-body
chi-macro
chi-application
chi-expr
chi
chi-top
syntax-type
chi-when-list
chi-install-global
chi-top-sequence
chi-sequence
source-wrap
wrap
bound-id-member?
distinct-bound-ids?
valid-bound-ids?
bound-id=?
free-id=?
id-var-name
same-marks?
join-marks
join-wraps
smart-append
make-binding-wrap
extend-ribcage!
make-empty-ribcage
new-mark
anti-mark
the-anti-mark
top-marked?
top-wrap
empty-wrap
set-ribcage-labels!
set-ribcage-marks!
set-ribcage-symnames!
ribcage-labels
ribcage-marks
ribcage-symnames
ribcage?
make-ribcage
gen-labels
gen-label
make-rename
rename-marks
rename-new
rename-old
subst-rename?
wrap-subst
wrap-marks
make-wrap
id-sym-name&marks
id-sym-name
id?
nonsymbol-id?
global-extend
lookup
macros-only-env
extend-var-env
extend-env
null-env
binding-value
binding-type
make-binding
arg-check
source-annotation
no-source
set-syntax-object-module!
set-syntax-object-wrap!
set-syntax-object-expression!
syntax-object-module
syntax-object-wrap
syntax-object-expression
syntax-object?
make-syntax-object
build-lexical-var
build-letrec
build-named-let
build-let
build-sequence
build-data
build-primref
build-lambda-case
build-case-lambda
build-simple-lambda
build-global-definition
maybe-name-value!
build-global-assignment
build-global-reference
analyze-variable
build-lexical-assignment
build-lexical-reference
build-conditional
build-application
build-void
decorate-source
get-global-definition-hook
put-global-definition-hook
gensym-hook
local-eval-hook
top-level-eval-hook
fx<
fx=
fx-
fx+
*mode*
noexpand)
((top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top))
("i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"))
#(ribcage
(define-structure
and-map*)
((top)
(top))
("i"
"i")))
(hygiene
guile))
#(syntax-object
#f
((top)
#(ribcage
#(_
name)
#((top)
(top))
#("i"
"i"))
#(ribcage
()
()
())
#(ribcage
()
()
())
#(ribcage
#(ftype
fval
fe
fw
fs
fmod)
#((top)
(top)
(top)
(top)
(top)
(top))
#("i"
"i"
"i"
"i"
"i"
"i"))
#(ribcage
()
()
())
#(ribcage
#(first)
#((top))
#("i"))
#(ribcage
()
()
())
#(ribcage
()
()
())
#(ribcage
()
()
())
#(ribcage
#(e
r
w
s
rib
mod
for-car?)
#((top)
(top)
(top)
(top)
(top)
(top)
(top))
#("i"
"i"
"i"
"i"
"i"
"i"
"i"))
#(ribcage
(lambda-var-list
gen-var
strip
chi-lambda-case
lambda*-formals
chi-simple-lambda
lambda-formals
ellipsis?
chi-void
eval-local-transformer
chi-local-syntax
chi-body
chi-macro
chi-application
chi-expr
chi
chi-top
syntax-type
chi-when-list
chi-install-global
chi-top-sequence
chi-sequence
source-wrap
wrap
bound-id-member?
distinct-bound-ids?
valid-bound-ids?
bound-id=?
free-id=?
id-var-name
same-marks?
join-marks
join-wraps
smart-append
make-binding-wrap
extend-ribcage!
make-empty-ribcage
new-mark
anti-mark
the-anti-mark
top-marked?
top-wrap
empty-wrap
set-ribcage-labels!
set-ribcage-marks!
set-ribcage-symnames!
ribcage-labels
ribcage-marks
ribcage-symnames
ribcage?
make-ribcage
gen-labels
gen-label
make-rename
rename-marks
rename-new
rename-old
subst-rename?
wrap-subst
wrap-marks
make-wrap
id-sym-name&marks
id-sym-name
id?
nonsymbol-id?
global-extend
lookup
macros-only-env
extend-var-env
extend-env
null-env
binding-value
binding-type
make-binding
arg-check
source-annotation
no-source
set-syntax-object-module!
set-syntax-object-wrap!
set-syntax-object-expression!
syntax-object-module
syntax-object-wrap
syntax-object-expression
syntax-object?
make-syntax-object
build-lexical-var
build-letrec
build-named-let
build-let
build-sequence
build-data
build-primref
build-lambda-case
build-case-lambda
build-simple-lambda
build-global-definition
maybe-name-value!
build-global-assignment
build-global-reference
analyze-variable
build-lexical-assignment
build-lexical-reference
build-conditional
build-application
build-void
decorate-source
get-global-definition-hook
put-global-definition-hook
gensym-hook
local-eval-hook
top-level-eval-hook
fx<
fx=
fx-
fx+
*mode*
noexpand)
((top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top))
("i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"))
#(ribcage
(define-structure
and-map*)
((top)
(top))
("i"
"i")))
(hygiene
guile)))
'(())
#{s\ 3349}#
#{mod\ 3351}#))
#{tmp\ 3385}#)
(syntax-violation
#f
"source expression failed to match any pattern"
#{tmp\ 3365}#)))
($sc-dispatch
#{tmp\ 3365}#
'(any any)))))
($sc-dispatch
#{tmp\ 3365}#
'(any (any . any)
any
.
each-any)))))
($sc-dispatch
#{tmp\ 3365}#
'(any any any))))
#{e\ 3346}#)
(if (memv #{ftype\ 3357}#
'(define-syntax))
((lambda (#{tmp\ 3390}#)
((lambda (#{tmp\ 3391}#)
(if (if #{tmp\ 3391}#
(apply (lambda (#{_\ 3392}#
#{name\ 3393}#
#{val\ 3394}#)
(#{id?\ 2681}#
#{name\ 3393}#))
#{tmp\ 3391}#)
#f)
(apply (lambda (#{_\ 3395}#
#{name\ 3396}#
#{val\ 3397}#)
(values
'define-syntax-form
#{name\ 3396}#
#{val\ 3397}#
#{w\ 3348}#
#{s\ 3349}#
#{mod\ 3351}#))
#{tmp\ 3391}#)
(syntax-violation
#f
"source expression failed to match any pattern"
#{tmp\ 3390}#)))
($sc-dispatch
#{tmp\ 3390}#
'(any any any))))
#{e\ 3346}#)
(values
'call
#f
#{e\ 3346}#
#{w\ 3348}#
#{s\ 3349}#
#{mod\ 3351}#))))))))))))))
(if (#{syntax-object?\ 2665}# #{e\ 3346}#)
(#{syntax-type\ 2715}#
(#{syntax-object-expression\ 2666}# #{e\ 3346}#)
#{r\ 3347}#
(#{join-wraps\ 2700}#
#{w\ 3348}#
(#{syntax-object-wrap\ 2667}# #{e\ 3346}#))
#{s\ 3349}#
#{rib\ 3350}#
(let ((#{t\ 3398}#
(#{syntax-object-module\ 2668}# #{e\ 3346}#)))
(if #{t\ 3398}# #{t\ 3398}# #{mod\ 3351}#))
#{for-car?\ 3352}#)
(if (self-evaluating? #{e\ 3346}#)
(values
'constant
#f
#{e\ 3346}#
#{w\ 3348}#
#{s\ 3349}#
#{mod\ 3351}#)
(values
'other
#f
#{e\ 3346}#
#{w\ 3348}#
#{s\ 3349}#
#{mod\ 3351}#)))))))
(#{chi-when-list\ 2714}#
(lambda (#{e\ 3399}# #{when-list\ 3400}# #{w\ 3401}#)
(letrec ((#{f\ 3402}#
(lambda (#{when-list\ 3403}# #{situations\ 3404}#)
(if (null? #{when-list\ 3403}#)
#{situations\ 3404}#
(#{f\ 3402}#
(cdr #{when-list\ 3403}#)
(cons (let ((#{x\ 3405}#
(car #{when-list\ 3403}#)))
(if (#{free-id=?\ 2704}#
#{x\ 3405}#
'#(syntax-object
compile
((top)
#(ribcage () () ())
#(ribcage () () ())
#(ribcage () () ())
#(ribcage
#(x)
#((top))
#("i"))
#(ribcage () () ())
#(ribcage
#(f when-list situations)
#((top) (top) (top))
#("i" "i" "i"))
#(ribcage () () ())
#(ribcage
#(e when-list w)
#((top) (top) (top))
#("i" "i" "i"))
#(ribcage
(lambda-var-list
gen-var
strip
chi-lambda-case
lambda*-formals
chi-simple-lambda
lambda-formals
ellipsis?
chi-void
eval-local-transformer
chi-local-syntax
chi-body
chi-macro
chi-application
chi-expr
chi
chi-top
syntax-type
chi-when-list
chi-install-global
chi-top-sequence
chi-sequence
source-wrap
wrap
bound-id-member?
distinct-bound-ids?
valid-bound-ids?
bound-id=?
free-id=?
id-var-name
same-marks?
join-marks
join-wraps
smart-append
make-binding-wrap
extend-ribcage!
make-empty-ribcage
new-mark
anti-mark
the-anti-mark
top-marked?
top-wrap
empty-wrap
set-ribcage-labels!
set-ribcage-marks!
set-ribcage-symnames!
ribcage-labels
ribcage-marks
ribcage-symnames
ribcage?
make-ribcage
gen-labels
gen-label
make-rename
rename-marks
rename-new
rename-old
subst-rename?
wrap-subst
wrap-marks
make-wrap
id-sym-name&marks
id-sym-name
id?
nonsymbol-id?
global-extend
lookup
macros-only-env
extend-var-env
extend-env
null-env
binding-value
binding-type
make-binding
arg-check
source-annotation
no-source
set-syntax-object-module!
set-syntax-object-wrap!
set-syntax-object-expression!
syntax-object-module
syntax-object-wrap
syntax-object-expression
syntax-object?
make-syntax-object
build-lexical-var
build-letrec
build-named-let
build-let
build-sequence
build-data
build-primref
build-lambda-case
build-case-lambda
build-simple-lambda
build-global-definition
maybe-name-value!
build-global-assignment
build-global-reference
analyze-variable
build-lexical-assignment
build-lexical-reference
build-conditional
build-application
build-void
decorate-source
get-global-definition-hook
put-global-definition-hook
gensym-hook
local-eval-hook
top-level-eval-hook
fx<
fx=
fx-
fx+
*mode*
noexpand)
((top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top))
("i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"))
#(ribcage
(define-structure and-map*)
((top) (top))
("i" "i")))
(hygiene guile)))
'compile
(if (#{free-id=?\ 2704}#
#{x\ 3405}#
'#(syntax-object
load
((top)
#(ribcage () () ())
#(ribcage () () ())
#(ribcage () () ())
#(ribcage
#(x)
#((top))
#("i"))
#(ribcage () () ())
#(ribcage
#(f when-list situations)
#((top) (top) (top))
#("i" "i" "i"))
#(ribcage () () ())
#(ribcage
#(e when-list w)
#((top) (top) (top))
#("i" "i" "i"))
#(ribcage
(lambda-var-list
gen-var
strip
chi-lambda-case
lambda*-formals
chi-simple-lambda
lambda-formals
ellipsis?
chi-void
eval-local-transformer
chi-local-syntax
chi-body
chi-macro
chi-application
chi-expr
chi
chi-top
syntax-type
chi-when-list
chi-install-global
chi-top-sequence
chi-sequence
source-wrap
wrap
bound-id-member?
distinct-bound-ids?
valid-bound-ids?
bound-id=?
free-id=?
id-var-name
same-marks?
join-marks
join-wraps
smart-append
make-binding-wrap
extend-ribcage!
make-empty-ribcage
new-mark
anti-mark
the-anti-mark
top-marked?
top-wrap
empty-wrap
set-ribcage-labels!
set-ribcage-marks!
set-ribcage-symnames!
ribcage-labels
ribcage-marks
ribcage-symnames
ribcage?
make-ribcage
gen-labels
gen-label
make-rename
rename-marks
rename-new
rename-old
subst-rename?
wrap-subst
wrap-marks
make-wrap
id-sym-name&marks
id-sym-name
id?
nonsymbol-id?
global-extend
lookup
macros-only-env
extend-var-env
extend-env
null-env
binding-value
binding-type
make-binding
arg-check
source-annotation
no-source
set-syntax-object-module!
set-syntax-object-wrap!
set-syntax-object-expression!
syntax-object-module
syntax-object-wrap
syntax-object-expression
syntax-object?
make-syntax-object
build-lexical-var
build-letrec
build-named-let
build-let
build-sequence
build-data
build-primref
build-lambda-case
build-case-lambda
build-simple-lambda
build-global-definition
maybe-name-value!
build-global-assignment
build-global-reference
analyze-variable
build-lexical-assignment
build-lexical-reference
build-conditional
build-application
build-void
decorate-source
get-global-definition-hook
put-global-definition-hook
gensym-hook
local-eval-hook
top-level-eval-hook
fx<
fx=
fx-
fx+
*mode*
noexpand)
((top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top))
("i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"))
#(ribcage
(define-structure
and-map*)
((top) (top))
("i" "i")))
(hygiene guile)))
'load
(if (#{free-id=?\ 2704}#
#{x\ 3405}#
'#(syntax-object
eval
((top)
#(ribcage () () ())
#(ribcage () () ())
#(ribcage () () ())
#(ribcage
#(x)
#((top))
#("i"))
#(ribcage () () ())
#(ribcage
#(f
when-list
situations)
#((top) (top) (top))
#("i" "i" "i"))
#(ribcage () () ())
#(ribcage
#(e when-list w)
#((top) (top) (top))
#("i" "i" "i"))
#(ribcage
(lambda-var-list
gen-var
strip
chi-lambda-case
lambda*-formals
chi-simple-lambda
lambda-formals
ellipsis?
chi-void
eval-local-transformer
chi-local-syntax
chi-body
chi-macro
chi-application
chi-expr
chi
chi-top
syntax-type
chi-when-list
chi-install-global
chi-top-sequence
chi-sequence
source-wrap
wrap
bound-id-member?
distinct-bound-ids?
valid-bound-ids?
bound-id=?
free-id=?
id-var-name
same-marks?
join-marks
join-wraps
smart-append
make-binding-wrap
extend-ribcage!
make-empty-ribcage
new-mark
anti-mark
the-anti-mark
top-marked?
top-wrap
empty-wrap
set-ribcage-labels!
set-ribcage-marks!
set-ribcage-symnames!
ribcage-labels
ribcage-marks
ribcage-symnames
ribcage?
make-ribcage
gen-labels
gen-label
make-rename
rename-marks
rename-new
rename-old
subst-rename?
wrap-subst
wrap-marks
make-wrap
id-sym-name&marks
id-sym-name
id?
nonsymbol-id?
global-extend
lookup
macros-only-env
extend-var-env
extend-env
null-env
binding-value
binding-type
make-binding
arg-check
source-annotation
no-source
set-syntax-object-module!
set-syntax-object-wrap!
set-syntax-object-expression!
syntax-object-module
syntax-object-wrap
syntax-object-expression
syntax-object?
make-syntax-object
build-lexical-var
build-letrec
build-named-let
build-let
build-sequence
build-data
build-primref
build-lambda-case
build-case-lambda
build-simple-lambda
build-global-definition
maybe-name-value!
build-global-assignment
build-global-reference
analyze-variable
build-lexical-assignment
build-lexical-reference
build-conditional
build-application
build-void
decorate-source
get-global-definition-hook
put-global-definition-hook
gensym-hook
local-eval-hook
top-level-eval-hook
fx<
fx=
fx-
fx+
*mode*
noexpand)
((top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top))
("i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"))
#(ribcage
(define-structure
and-map*)
((top) (top))
("i" "i")))
(hygiene guile)))
'eval
(syntax-violation
'eval-when
"invalid situation"
#{e\ 3399}#
(#{wrap\ 2709}#
#{x\ 3405}#
#{w\ 3401}#
#f))))))
#{situations\ 3404}#))))))
(#{f\ 3402}# #{when-list\ 3400}# (quote ())))))
(#{chi-install-global\ 2713}#
(lambda (#{name\ 3406}# #{e\ 3407}#)
(#{build-global-definition\ 2654}#
#f
#{name\ 3406}#
(if (let ((#{v\ 3408}#
(module-variable
(current-module)
#{name\ 3406}#)))
(if #{v\ 3408}#
(if (variable-bound? #{v\ 3408}#)
(if (macro? (variable-ref #{v\ 3408}#))
(not (eq? (macro-type (variable-ref #{v\ 3408}#))
'syncase-macro))
#f)
#f)
#f))
(#{build-application\ 2646}#
#f
(#{build-primref\ 2658}#
#f
'make-extended-syncase-macro)
(list (#{build-application\ 2646}#
#f
(#{build-primref\ 2658}# #f (quote module-ref))
(list (#{build-application\ 2646}#
#f
(#{build-primref\ 2658}#
#f
'current-module)
'())
(#{build-data\ 2659}# #f #{name\ 3406}#)))
(#{build-data\ 2659}# #f (quote macro))
#{e\ 3407}#))
(#{build-application\ 2646}#
#f
(#{build-primref\ 2658}#
#f
'make-syncase-macro)
(list (#{build-data\ 2659}# #f (quote macro))
#{e\ 3407}#))))))
(#{chi-top-sequence\ 2712}#
(lambda (#{body\ 3409}#
#{r\ 3410}#
#{w\ 3411}#
#{s\ 3412}#
#{m\ 3413}#
#{esew\ 3414}#
#{mod\ 3415}#)
(#{build-sequence\ 2660}#
#{s\ 3412}#
(letrec ((#{dobody\ 3416}#
(lambda (#{body\ 3417}#
#{r\ 3418}#
#{w\ 3419}#
#{m\ 3420}#
#{esew\ 3421}#
#{mod\ 3422}#)
(if (null? #{body\ 3417}#)
'()
(let ((#{first\ 3423}#
(#{chi-top\ 2716}#
(car #{body\ 3417}#)
#{r\ 3418}#
#{w\ 3419}#
#{m\ 3420}#
#{esew\ 3421}#
#{mod\ 3422}#)))
(cons #{first\ 3423}#
(#{dobody\ 3416}#
(cdr #{body\ 3417}#)
#{r\ 3418}#
#{w\ 3419}#
#{m\ 3420}#
#{esew\ 3421}#
#{mod\ 3422}#)))))))
(#{dobody\ 3416}#
#{body\ 3409}#
#{r\ 3410}#
#{w\ 3411}#
#{m\ 3413}#
#{esew\ 3414}#
#{mod\ 3415}#)))))
(#{chi-sequence\ 2711}#
(lambda (#{body\ 3424}#
#{r\ 3425}#
#{w\ 3426}#
#{s\ 3427}#
#{mod\ 3428}#)
(#{build-sequence\ 2660}#
#{s\ 3427}#
(letrec ((#{dobody\ 3429}#
(lambda (#{body\ 3430}#
#{r\ 3431}#
#{w\ 3432}#
#{mod\ 3433}#)
(if (null? #{body\ 3430}#)
'()
(let ((#{first\ 3434}#
(#{chi\ 2717}#
(car #{body\ 3430}#)
#{r\ 3431}#
#{w\ 3432}#
#{mod\ 3433}#)))
(cons #{first\ 3434}#
(#{dobody\ 3429}#
(cdr #{body\ 3430}#)
#{r\ 3431}#
#{w\ 3432}#
#{mod\ 3433}#)))))))
(#{dobody\ 3429}#
#{body\ 3424}#
#{r\ 3425}#
#{w\ 3426}#
#{mod\ 3428}#)))))
(#{source-wrap\ 2710}#
(lambda (#{x\ 3435}#
#{w\ 3436}#
#{s\ 3437}#
#{defmod\ 3438}#)
(#{wrap\ 2709}#
(#{decorate-source\ 2644}#
#{x\ 3435}#
#{s\ 3437}#)
#{w\ 3436}#
#{defmod\ 3438}#)))
(#{wrap\ 2709}#
(lambda (#{x\ 3439}# #{w\ 3440}# #{defmod\ 3441}#)
(if (if (null? (#{wrap-marks\ 2684}# #{w\ 3440}#))
(null? (#{wrap-subst\ 2685}# #{w\ 3440}#))
#f)
#{x\ 3439}#
(if (#{syntax-object?\ 2665}# #{x\ 3439}#)
(#{make-syntax-object\ 2664}#
(#{syntax-object-expression\ 2666}# #{x\ 3439}#)
(#{join-wraps\ 2700}#
#{w\ 3440}#
(#{syntax-object-wrap\ 2667}# #{x\ 3439}#))
(#{syntax-object-module\ 2668}# #{x\ 3439}#))
(if (null? #{x\ 3439}#)
#{x\ 3439}#
(#{make-syntax-object\ 2664}#
#{x\ 3439}#
#{w\ 3440}#
#{defmod\ 3441}#))))))
(#{bound-id-member?\ 2708}#
(lambda (#{x\ 3442}# #{list\ 3443}#)
(if (not (null? #{list\ 3443}#))
(let ((#{t\ 3444}#
(#{bound-id=?\ 2705}#
#{x\ 3442}#
(car #{list\ 3443}#))))
(if #{t\ 3444}#
#{t\ 3444}#
(#{bound-id-member?\ 2708}#
#{x\ 3442}#
(cdr #{list\ 3443}#))))
#f)))
(#{distinct-bound-ids?\ 2707}#
(lambda (#{ids\ 3445}#)
(letrec ((#{distinct?\ 3446}#
(lambda (#{ids\ 3447}#)
(let ((#{t\ 3448}# (null? #{ids\ 3447}#)))
(if #{t\ 3448}#
#{t\ 3448}#
(if (not (#{bound-id-member?\ 2708}#
(car #{ids\ 3447}#)
(cdr #{ids\ 3447}#)))
(#{distinct?\ 3446}# (cdr #{ids\ 3447}#))
#f))))))
(#{distinct?\ 3446}# #{ids\ 3445}#))))
(#{valid-bound-ids?\ 2706}#
(lambda (#{ids\ 3449}#)
(if (letrec ((#{all-ids?\ 3450}#
(lambda (#{ids\ 3451}#)
(let ((#{t\ 3452}# (null? #{ids\ 3451}#)))
(if #{t\ 3452}#
#{t\ 3452}#
(if (#{id?\ 2681}# (car #{ids\ 3451}#))
(#{all-ids?\ 3450}# (cdr #{ids\ 3451}#))
#f))))))
(#{all-ids?\ 3450}# #{ids\ 3449}#))
(#{distinct-bound-ids?\ 2707}# #{ids\ 3449}#)
#f)))
(#{bound-id=?\ 2705}#
(lambda (#{i\ 3453}# #{j\ 3454}#)
(if (if (#{syntax-object?\ 2665}# #{i\ 3453}#)
(#{syntax-object?\ 2665}# #{j\ 3454}#)
#f)
(if (eq? (#{syntax-object-expression\ 2666}# #{i\ 3453}#)
(#{syntax-object-expression\ 2666}# #{j\ 3454}#))
(#{same-marks?\ 2702}#
(#{wrap-marks\ 2684}#
(#{syntax-object-wrap\ 2667}# #{i\ 3453}#))
(#{wrap-marks\ 2684}#
(#{syntax-object-wrap\ 2667}# #{j\ 3454}#)))
#f)
(eq? #{i\ 3453}# #{j\ 3454}#))))
(#{free-id=?\ 2704}#
(lambda (#{i\ 3455}# #{j\ 3456}#)
(if (eq? (let ((#{x\ 3457}# #{i\ 3455}#))
(if (#{syntax-object?\ 2665}# #{x\ 3457}#)
(#{syntax-object-expression\ 2666}# #{x\ 3457}#)
#{x\ 3457}#))
(let ((#{x\ 3458}# #{j\ 3456}#))
(if (#{syntax-object?\ 2665}# #{x\ 3458}#)
(#{syntax-object-expression\ 2666}# #{x\ 3458}#)
#{x\ 3458}#)))
(eq? (#{id-var-name\ 2703}# #{i\ 3455}# (quote (())))
(#{id-var-name\ 2703}# #{j\ 3456}# (quote (()))))
#f)))
(#{id-var-name\ 2703}#
(lambda (#{id\ 3459}# #{w\ 3460}#)
(letrec ((#{search-vector-rib\ 3463}#
(lambda (#{sym\ 3469}#
#{subst\ 3470}#
#{marks\ 3471}#
#{symnames\ 3472}#
#{ribcage\ 3473}#)
(let ((#{n\ 3474}#
(vector-length #{symnames\ 3472}#)))
(letrec ((#{f\ 3475}#
(lambda (#{i\ 3476}#)
(if (#{fx=\ 2638}#
#{i\ 3476}#
#{n\ 3474}#)
(#{search\ 3461}#
#{sym\ 3469}#
(cdr #{subst\ 3470}#)
#{marks\ 3471}#)
(if (if (eq? (vector-ref
#{symnames\ 3472}#
#{i\ 3476}#)
#{sym\ 3469}#)
(#{same-marks?\ 2702}#
#{marks\ 3471}#
(vector-ref
(#{ribcage-marks\ 2691}#
#{ribcage\ 3473}#)
#{i\ 3476}#))
#f)
(values
(vector-ref
(#{ribcage-labels\ 2692}#
#{ribcage\ 3473}#)
#{i\ 3476}#)
#{marks\ 3471}#)
(#{f\ 3475}#
(#{fx+\ 2636}#
#{i\ 3476}#
1)))))))
(#{f\ 3475}# 0)))))
(#{search-list-rib\ 3462}#
(lambda (#{sym\ 3477}#
#{subst\ 3478}#
#{marks\ 3479}#
#{symnames\ 3480}#
#{ribcage\ 3481}#)
(letrec ((#{f\ 3482}#
(lambda (#{symnames\ 3483}# #{i\ 3484}#)
(if (null? #{symnames\ 3483}#)
(#{search\ 3461}#
#{sym\ 3477}#
(cdr #{subst\ 3478}#)
#{marks\ 3479}#)
(if (if (eq? (car #{symnames\ 3483}#)
#{sym\ 3477}#)
(#{same-marks?\ 2702}#
#{marks\ 3479}#
(list-ref
(#{ribcage-marks\ 2691}#
#{ribcage\ 3481}#)
#{i\ 3484}#))
#f)
(values
(list-ref
(#{ribcage-labels\ 2692}#
#{ribcage\ 3481}#)
#{i\ 3484}#)
#{marks\ 3479}#)
(#{f\ 3482}#
(cdr #{symnames\ 3483}#)
(#{fx+\ 2636}#
#{i\ 3484}#
1)))))))
(#{f\ 3482}# #{symnames\ 3480}# 0))))
(#{search\ 3461}#
(lambda (#{sym\ 3485}#
#{subst\ 3486}#
#{marks\ 3487}#)
(if (null? #{subst\ 3486}#)
(values #f #{marks\ 3487}#)
(let ((#{fst\ 3488}# (car #{subst\ 3486}#)))
(if (eq? #{fst\ 3488}# (quote shift))
(#{search\ 3461}#
#{sym\ 3485}#
(cdr #{subst\ 3486}#)
(cdr #{marks\ 3487}#))
(let ((#{symnames\ 3489}#
(#{ribcage-symnames\ 2690}#
#{fst\ 3488}#)))
(if (vector? #{symnames\ 3489}#)
(#{search-vector-rib\ 3463}#
#{sym\ 3485}#
#{subst\ 3486}#
#{marks\ 3487}#
#{symnames\ 3489}#
#{fst\ 3488}#)
(#{search-list-rib\ 3462}#
#{sym\ 3485}#
#{subst\ 3486}#
#{marks\ 3487}#
#{symnames\ 3489}#
#{fst\ 3488}#)))))))))
(if (symbol? #{id\ 3459}#)
(let ((#{t\ 3490}#
(call-with-values
(lambda ()
(#{search\ 3461}#
#{id\ 3459}#
(#{wrap-subst\ 2685}# #{w\ 3460}#)
(#{wrap-marks\ 2684}# #{w\ 3460}#)))
(lambda (#{x\ 3491}# . #{ignore\ 3492}#)
#{x\ 3491}#))))
(if #{t\ 3490}# #{t\ 3490}# #{id\ 3459}#))
(if (#{syntax-object?\ 2665}# #{id\ 3459}#)
(let ((#{id\ 3493}#
(#{syntax-object-expression\ 2666}# #{id\ 3459}#))
(#{w1\ 3494}#
(#{syntax-object-wrap\ 2667}# #{id\ 3459}#)))
(let ((#{marks\ 3495}#
(#{join-marks\ 2701}#
(#{wrap-marks\ 2684}# #{w\ 3460}#)
(#{wrap-marks\ 2684}# #{w1\ 3494}#))))
(call-with-values
(lambda ()
(#{search\ 3461}#
#{id\ 3493}#
(#{wrap-subst\ 2685}# #{w\ 3460}#)
#{marks\ 3495}#))
(lambda (#{new-id\ 3496}# #{marks\ 3497}#)
(let ((#{t\ 3498}# #{new-id\ 3496}#))
(if #{t\ 3498}#
#{t\ 3498}#
(let ((#{t\ 3499}#
(call-with-values
(lambda ()
(#{search\ 3461}#
#{id\ 3493}#
(#{wrap-subst\ 2685}#
#{w1\ 3494}#)
#{marks\ 3497}#))
(lambda (#{x\ 3500}#
.
#{ignore\ 3501}#)
#{x\ 3500}#))))
(if #{t\ 3499}#
#{t\ 3499}#
#{id\ 3493}#))))))))
(syntax-violation
'id-var-name
"invalid id"
#{id\ 3459}#))))))
(#{same-marks?\ 2702}#
(lambda (#{x\ 3502}# #{y\ 3503}#)
(let ((#{t\ 3504}# (eq? #{x\ 3502}# #{y\ 3503}#)))
(if #{t\ 3504}#
#{t\ 3504}#
(if (not (null? #{x\ 3502}#))
(if (not (null? #{y\ 3503}#))
(if (eq? (car #{x\ 3502}#) (car #{y\ 3503}#))
(#{same-marks?\ 2702}#
(cdr #{x\ 3502}#)
(cdr #{y\ 3503}#))
#f)
#f)
#f)))))
(#{join-marks\ 2701}#
(lambda (#{m1\ 3505}# #{m2\ 3506}#)
(#{smart-append\ 2699}#
#{m1\ 3505}#
#{m2\ 3506}#)))
(#{join-wraps\ 2700}#
(lambda (#{w1\ 3507}# #{w2\ 3508}#)
(let ((#{m1\ 3509}#
(#{wrap-marks\ 2684}# #{w1\ 3507}#))
(#{s1\ 3510}#
(#{wrap-subst\ 2685}# #{w1\ 3507}#)))
(if (null? #{m1\ 3509}#)
(if (null? #{s1\ 3510}#)
#{w2\ 3508}#
(#{make-wrap\ 2683}#
(#{wrap-marks\ 2684}# #{w2\ 3508}#)
(#{smart-append\ 2699}#
#{s1\ 3510}#
(#{wrap-subst\ 2685}# #{w2\ 3508}#))))
(#{make-wrap\ 2683}#
(#{smart-append\ 2699}#
#{m1\ 3509}#
(#{wrap-marks\ 2684}# #{w2\ 3508}#))
(#{smart-append\ 2699}#
#{s1\ 3510}#
(#{wrap-subst\ 2685}# #{w2\ 3508}#)))))))
(#{smart-append\ 2699}#
(lambda (#{m1\ 3511}# #{m2\ 3512}#)
(if (null? #{m2\ 3512}#)
#{m1\ 3511}#
(append #{m1\ 3511}# #{m2\ 3512}#))))
(#{make-binding-wrap\ 2698}#
(lambda (#{ids\ 3513}# #{labels\ 3514}# #{w\ 3515}#)
(if (null? #{ids\ 3513}#)
#{w\ 3515}#
(#{make-wrap\ 2683}#
(#{wrap-marks\ 2684}# #{w\ 3515}#)
(cons (let ((#{labelvec\ 3516}#
(list->vector #{labels\ 3514}#)))
(let ((#{n\ 3517}#
(vector-length #{labelvec\ 3516}#)))
(let ((#{symnamevec\ 3518}#
(make-vector #{n\ 3517}#))
(#{marksvec\ 3519}#
(make-vector #{n\ 3517}#)))
(begin
(letrec ((#{f\ 3520}#
(lambda (#{ids\ 3521}# #{i\ 3522}#)
(if (not (null? #{ids\ 3521}#))
(call-with-values
(lambda ()
(#{id-sym-name&marks\ 2682}#
(car #{ids\ 3521}#)
#{w\ 3515}#))
(lambda (#{symname\ 3523}#
#{marks\ 3524}#)
(begin
(vector-set!
#{symnamevec\ 3518}#
#{i\ 3522}#
#{symname\ 3523}#)
(vector-set!
#{marksvec\ 3519}#
#{i\ 3522}#
#{marks\ 3524}#)
(#{f\ 3520}#
(cdr #{ids\ 3521}#)
(#{fx+\ 2636}#
#{i\ 3522}#
1)))))))))
(#{f\ 3520}# #{ids\ 3513}# 0))
(#{make-ribcage\ 2688}#
#{symnamevec\ 3518}#
#{marksvec\ 3519}#
#{labelvec\ 3516}#)))))
(#{wrap-subst\ 2685}# #{w\ 3515}#))))))
(#{extend-ribcage!\ 2697}#
(lambda (#{ribcage\ 3525}# #{id\ 3526}# #{label\ 3527}#)
(begin
(#{set-ribcage-symnames!\ 2693}#
#{ribcage\ 3525}#
(cons (#{syntax-object-expression\ 2666}# #{id\ 3526}#)
(#{ribcage-symnames\ 2690}# #{ribcage\ 3525}#)))
(#{set-ribcage-marks!\ 2694}#
#{ribcage\ 3525}#
(cons (#{wrap-marks\ 2684}#
(#{syntax-object-wrap\ 2667}# #{id\ 3526}#))
(#{ribcage-marks\ 2691}# #{ribcage\ 3525}#)))
(#{set-ribcage-labels!\ 2695}#
#{ribcage\ 3525}#
(cons #{label\ 3527}#
(#{ribcage-labels\ 2692}# #{ribcage\ 3525}#))))))
(#{anti-mark\ 2696}#
(lambda (#{w\ 3528}#)
(#{make-wrap\ 2683}#
(cons #f (#{wrap-marks\ 2684}# #{w\ 3528}#))
(cons 'shift
(#{wrap-subst\ 2685}# #{w\ 3528}#)))))
(#{set-ribcage-labels!\ 2695}#
(lambda (#{x\ 3529}# #{update\ 3530}#)
(vector-set! #{x\ 3529}# 3 #{update\ 3530}#)))
(#{set-ribcage-marks!\ 2694}#
(lambda (#{x\ 3531}# #{update\ 3532}#)
(vector-set! #{x\ 3531}# 2 #{update\ 3532}#)))
(#{set-ribcage-symnames!\ 2693}#
(lambda (#{x\ 3533}# #{update\ 3534}#)
(vector-set! #{x\ 3533}# 1 #{update\ 3534}#)))
(#{ribcage-labels\ 2692}#
(lambda (#{x\ 3535}#) (vector-ref #{x\ 3535}# 3)))
(#{ribcage-marks\ 2691}#
(lambda (#{x\ 3536}#) (vector-ref #{x\ 3536}# 2)))
(#{ribcage-symnames\ 2690}#
(lambda (#{x\ 3537}#) (vector-ref #{x\ 3537}# 1)))
(#{ribcage?\ 2689}#
(lambda (#{x\ 3538}#)
(if (vector? #{x\ 3538}#)
(if (= (vector-length #{x\ 3538}#) 4)
(eq? (vector-ref #{x\ 3538}# 0) (quote ribcage))
#f)
#f)))
(#{make-ribcage\ 2688}#
(lambda (#{symnames\ 3539}#
#{marks\ 3540}#
#{labels\ 3541}#)
(vector
'ribcage
#{symnames\ 3539}#
#{marks\ 3540}#
#{labels\ 3541}#)))
(#{gen-labels\ 2687}#
(lambda (#{ls\ 3542}#)
(if (null? #{ls\ 3542}#)
'()
(cons (#{gen-label\ 2686}#)
(#{gen-labels\ 2687}# (cdr #{ls\ 3542}#))))))
(#{gen-label\ 2686}# (lambda () (string #\i)))
(#{wrap-subst\ 2685}# cdr)
(#{wrap-marks\ 2684}# car)
(#{make-wrap\ 2683}# cons)
(#{id-sym-name&marks\ 2682}#
(lambda (#{x\ 3543}# #{w\ 3544}#)
(if (#{syntax-object?\ 2665}# #{x\ 3543}#)
(values
(#{syntax-object-expression\ 2666}# #{x\ 3543}#)
(#{join-marks\ 2701}#
(#{wrap-marks\ 2684}# #{w\ 3544}#)
(#{wrap-marks\ 2684}#
(#{syntax-object-wrap\ 2667}# #{x\ 3543}#))))
(values
#{x\ 3543}#
(#{wrap-marks\ 2684}# #{w\ 3544}#)))))
(#{id?\ 2681}#
(lambda (#{x\ 3545}#)
(if (symbol? #{x\ 3545}#)
#t
(if (#{syntax-object?\ 2665}# #{x\ 3545}#)
(symbol?
(#{syntax-object-expression\ 2666}# #{x\ 3545}#))
#f))))
(#{nonsymbol-id?\ 2680}#
(lambda (#{x\ 3546}#)
(if (#{syntax-object?\ 2665}# #{x\ 3546}#)
(symbol?
(#{syntax-object-expression\ 2666}# #{x\ 3546}#))
#f)))
(#{global-extend\ 2679}#
(lambda (#{type\ 3547}# #{sym\ 3548}# #{val\ 3549}#)
(#{put-global-definition-hook\ 2642}#
#{sym\ 3548}#
#{type\ 3547}#
#{val\ 3549}#)))
(#{lookup\ 2678}#
(lambda (#{x\ 3550}# #{r\ 3551}# #{mod\ 3552}#)
(let ((#{t\ 3553}# (assq #{x\ 3550}# #{r\ 3551}#)))
(if #{t\ 3553}#
(cdr #{t\ 3553}#)
(if (symbol? #{x\ 3550}#)
(let ((#{t\ 3554}#
(#{get-global-definition-hook\ 2643}#
#{x\ 3550}#
#{mod\ 3552}#)))
(if #{t\ 3554}# #{t\ 3554}# (quote (global))))
'(displaced-lexical))))))
(#{macros-only-env\ 2677}#
(lambda (#{r\ 3555}#)
(if (null? #{r\ 3555}#)
'()
(let ((#{a\ 3556}# (car #{r\ 3555}#)))
(if (eq? (cadr #{a\ 3556}#) (quote macro))
(cons #{a\ 3556}#
(#{macros-only-env\ 2677}# (cdr #{r\ 3555}#)))
(#{macros-only-env\ 2677}# (cdr #{r\ 3555}#)))))))
(#{extend-var-env\ 2676}#
(lambda (#{labels\ 3557}# #{vars\ 3558}# #{r\ 3559}#)
(if (null? #{labels\ 3557}#)
#{r\ 3559}#
(#{extend-var-env\ 2676}#
(cdr #{labels\ 3557}#)
(cdr #{vars\ 3558}#)
(cons (cons (car #{labels\ 3557}#)
(cons (quote lexical) (car #{vars\ 3558}#)))
#{r\ 3559}#)))))
(#{extend-env\ 2675}#
(lambda (#{labels\ 3560}# #{bindings\ 3561}# #{r\ 3562}#)
(if (null? #{labels\ 3560}#)
#{r\ 3562}#
(#{extend-env\ 2675}#
(cdr #{labels\ 3560}#)
(cdr #{bindings\ 3561}#)
(cons (cons (car #{labels\ 3560}#)
(car #{bindings\ 3561}#))
#{r\ 3562}#)))))
(#{binding-value\ 2674}# cdr)
(#{binding-type\ 2673}# car)
(#{source-annotation\ 2672}#
(lambda (#{x\ 3563}#)
(if (#{syntax-object?\ 2665}# #{x\ 3563}#)
(#{source-annotation\ 2672}#
(#{syntax-object-expression\ 2666}# #{x\ 3563}#))
(if (pair? #{x\ 3563}#)
(let ((#{props\ 3564}# (source-properties #{x\ 3563}#)))
(if (pair? #{props\ 3564}#) #{props\ 3564}# #f))
#f))))
(#{set-syntax-object-module!\ 2671}#
(lambda (#{x\ 3565}# #{update\ 3566}#)
(vector-set! #{x\ 3565}# 3 #{update\ 3566}#)))
(#{set-syntax-object-wrap!\ 2670}#
(lambda (#{x\ 3567}# #{update\ 3568}#)
(vector-set! #{x\ 3567}# 2 #{update\ 3568}#)))
(#{set-syntax-object-expression!\ 2669}#
(lambda (#{x\ 3569}# #{update\ 3570}#)
(vector-set! #{x\ 3569}# 1 #{update\ 3570}#)))
(#{syntax-object-module\ 2668}#
(lambda (#{x\ 3571}#) (vector-ref #{x\ 3571}# 3)))
(#{syntax-object-wrap\ 2667}#
(lambda (#{x\ 3572}#) (vector-ref #{x\ 3572}# 2)))
(#{syntax-object-expression\ 2666}#
(lambda (#{x\ 3573}#) (vector-ref #{x\ 3573}# 1)))
(#{syntax-object?\ 2665}#
(lambda (#{x\ 3574}#)
(if (vector? #{x\ 3574}#)
(if (= (vector-length #{x\ 3574}#) 4)
(eq? (vector-ref #{x\ 3574}# 0)
'syntax-object)
#f)
#f)))
(#{make-syntax-object\ 2664}#
(lambda (#{expression\ 3575}#
#{wrap\ 3576}#
#{module\ 3577}#)
(vector
'syntax-object
#{expression\ 3575}#
#{wrap\ 3576}#
#{module\ 3577}#)))
(#{build-letrec\ 2663}#
(lambda (#{src\ 3578}#
#{ids\ 3579}#
#{vars\ 3580}#
#{val-exps\ 3581}#
#{body-exp\ 3582}#)
(if (null? #{vars\ 3580}#)
#{body-exp\ 3582}#
(let ((#{atom-key\ 3583}# (fluid-ref #{*mode*\ 2635}#)))
(if (memv #{atom-key\ 3583}# (quote (c)))
(begin
(for-each
#{maybe-name-value!\ 2653}#
#{ids\ 3579}#
#{val-exps\ 3581}#)
((@ (language tree-il) make-letrec)
#{src\ 3578}#
#{ids\ 3579}#
#{vars\ 3580}#
#{val-exps\ 3581}#
#{body-exp\ 3582}#))
(#{decorate-source\ 2644}#
(list 'letrec
(map list #{vars\ 3580}# #{val-exps\ 3581}#)
#{body-exp\ 3582}#)
#{src\ 3578}#))))))
(#{build-named-let\ 2662}#
(lambda (#{src\ 3584}#
#{ids\ 3585}#
#{vars\ 3586}#
#{val-exps\ 3587}#
#{body-exp\ 3588}#)
(let ((#{f\ 3589}# (car #{vars\ 3586}#))
(#{f-name\ 3590}# (car #{ids\ 3585}#))
(#{vars\ 3591}# (cdr #{vars\ 3586}#))
(#{ids\ 3592}# (cdr #{ids\ 3585}#)))
(let ((#{atom-key\ 3593}# (fluid-ref #{*mode*\ 2635}#)))
(if (memv #{atom-key\ 3593}# (quote (c)))
(let ((#{proc\ 3594}#
(#{build-simple-lambda\ 2655}#
#{src\ 3584}#
#{ids\ 3592}#
#f
#{vars\ 3591}#
#f
#{body-exp\ 3588}#)))
(begin
(#{maybe-name-value!\ 2653}#
#{f-name\ 3590}#
#{proc\ 3594}#)
(for-each
#{maybe-name-value!\ 2653}#
#{ids\ 3592}#
#{val-exps\ 3587}#)
((@ (language tree-il) make-letrec)
#{src\ 3584}#
(list #{f-name\ 3590}#)
(list #{f\ 3589}#)
(list #{proc\ 3594}#)
(#{build-application\ 2646}#
#{src\ 3584}#
(#{build-lexical-reference\ 2648}#
'fun
#{src\ 3584}#
#{f-name\ 3590}#
#{f\ 3589}#)
#{val-exps\ 3587}#))))
(#{decorate-source\ 2644}#
(list 'letrec
(list (list #{f\ 3589}#
(list 'lambda
#{vars\ 3591}#
#{body-exp\ 3588}#)))
(cons #{f\ 3589}# #{val-exps\ 3587}#))
#{src\ 3584}#))))))
(#{build-let\ 2661}#
(lambda (#{src\ 3595}#
#{ids\ 3596}#
#{vars\ 3597}#
#{val-exps\ 3598}#
#{body-exp\ 3599}#)
(if (null? #{vars\ 3597}#)
#{body-exp\ 3599}#
(let ((#{atom-key\ 3600}# (fluid-ref #{*mode*\ 2635}#)))
(if (memv #{atom-key\ 3600}# (quote (c)))
(begin
(for-each
#{maybe-name-value!\ 2653}#
#{ids\ 3596}#
#{val-exps\ 3598}#)
((@ (language tree-il) make-let)
#{src\ 3595}#
#{ids\ 3596}#
#{vars\ 3597}#
#{val-exps\ 3598}#
#{body-exp\ 3599}#))
(#{decorate-source\ 2644}#
(list 'let
(map list #{vars\ 3597}# #{val-exps\ 3598}#)
#{body-exp\ 3599}#)
#{src\ 3595}#))))))
(#{build-sequence\ 2660}#
(lambda (#{src\ 3601}# #{exps\ 3602}#)
(if (null? (cdr #{exps\ 3602}#))
(car #{exps\ 3602}#)
(let ((#{atom-key\ 3603}# (fluid-ref #{*mode*\ 2635}#)))
(if (memv #{atom-key\ 3603}# (quote (c)))
((@ (language tree-il) make-sequence)
#{src\ 3601}#
#{exps\ 3602}#)
(#{decorate-source\ 2644}#
(cons (quote begin) #{exps\ 3602}#)
#{src\ 3601}#))))))
(#{build-data\ 2659}#
(lambda (#{src\ 3604}# #{exp\ 3605}#)
(let ((#{atom-key\ 3606}# (fluid-ref #{*mode*\ 2635}#)))
(if (memv #{atom-key\ 3606}# (quote (c)))
((@ (language tree-il) make-const)
#{src\ 3604}#
#{exp\ 3605}#)
(#{decorate-source\ 2644}#
(if (if (self-evaluating? #{exp\ 3605}#)
(not (vector? #{exp\ 3605}#))
#f)
#{exp\ 3605}#
(list (quote quote) #{exp\ 3605}#))
#{src\ 3604}#)))))
(#{build-primref\ 2658}#
(lambda (#{src\ 3607}# #{name\ 3608}#)
(if (equal?
(module-name (current-module))
'(guile))
(let ((#{atom-key\ 3609}# (fluid-ref #{*mode*\ 2635}#)))
(if (memv #{atom-key\ 3609}# (quote (c)))
((@ (language tree-il) make-toplevel-ref)
#{src\ 3607}#
#{name\ 3608}#)
(#{decorate-source\ 2644}#
#{name\ 3608}#
#{src\ 3607}#)))
(let ((#{atom-key\ 3610}# (fluid-ref #{*mode*\ 2635}#)))
(if (memv #{atom-key\ 3610}# (quote (c)))
((@ (language tree-il) make-module-ref)
#{src\ 3607}#
'(guile)
#{name\ 3608}#
#f)
(#{decorate-source\ 2644}#
(list (quote @@) (quote (guile)) #{name\ 3608}#)
#{src\ 3607}#))))))
(#{build-lambda-case\ 2657}#
(lambda (#{src\ 3611}#
#{req\ 3612}#
#{opt\ 3613}#
#{rest\ 3614}#
#{kw\ 3615}#
#{inits\ 3616}#
#{vars\ 3617}#
#{body\ 3618}#
#{else-case\ 3619}#)
(let ((#{atom-key\ 3620}# (fluid-ref #{*mode*\ 2635}#)))
(if (memv #{atom-key\ 3620}# (quote (c)))
((@ (language tree-il) make-lambda-case)
#{src\ 3611}#
#{req\ 3612}#
#{opt\ 3613}#
#{rest\ 3614}#
#{kw\ 3615}#
#{inits\ 3616}#
#{vars\ 3617}#
#{body\ 3618}#
#{else-case\ 3619}#)
(let ((#{nreq\ 3621}# (length #{req\ 3612}#)))
(let ((#{nopt\ 3622}#
(if #{opt\ 3613}# (length #{opt\ 3613}#) 0)))
(let ((#{rest-idx\ 3623}#
(if #{rest\ 3614}#
(+ #{nreq\ 3621}# #{nopt\ 3622}#)
#f)))
(let ((#{allow-other-keys?\ 3624}#
(if #{kw\ 3615}# (car #{kw\ 3615}#) #f)))
(let ((#{kw-indices\ 3625}#
(map (lambda (#{x\ 3626}#)
(cons (car #{x\ 3626}#)
(list-index
#{vars\ 3617}#
(caddr #{x\ 3626}#))))
(if #{kw\ 3615}#
(cdr #{kw\ 3615}#)
'()))))
(let ((#{nargs\ 3627}#
(apply max
(+ #{nreq\ 3621}#
#{nopt\ 3622}#
(if #{rest\ 3614}# 1 0))
(map 1+
(map cdr
#{kw-indices\ 3625}#)))))
(begin
(let ((#{t\ 3628}#
(= #{nargs\ 3627}#
(length #{vars\ 3617}#)
(+ #{nreq\ 3621}#
(length #{inits\ 3616}#)
(if #{rest\ 3614}# 1 0)))))
(if #{t\ 3628}#
#{t\ 3628}#
(error "something went wrong"
#{req\ 3612}#
#{opt\ 3613}#
#{rest\ 3614}#
#{kw\ 3615}#
#{inits\ 3616}#
#{vars\ 3617}#
#{nreq\ 3621}#
#{nopt\ 3622}#
#{kw-indices\ 3625}#
#{nargs\ 3627}#)))
(#{decorate-source\ 2644}#
(cons (list (cons '(@@ (ice-9 optargs)
parse-lambda-case)
(cons (list 'quote
(list #{nreq\ 3621}#
#{nopt\ 3622}#
#{rest-idx\ 3623}#
#{nargs\ 3627}#
#{allow-other-keys?\ 3624}#
#{kw-indices\ 3625}#))
(cons (cons 'list
(map (lambda (#{i\ 3629}#)
(list 'lambda
#{vars\ 3617}#
#{i\ 3629}#))
#{inits\ 3616}#))
'(%%args))))
'=>
(list 'lambda
'(%%%args . _)
(cons 'apply
(cons (list 'lambda
#{vars\ 3617}#
#{body\ 3618}#)
'(%%%args)))))
(let ((#{t\ 3630}#
#{else-case\ 3619}#))
(if #{t\ 3630}#
#{t\ 3630}#
'((%%args
(error "wrong number of arguments"
%%args))))))
#{src\ 3611}#))))))))))))
(#{build-case-lambda\ 2656}#
(lambda (#{src\ 3631}#
#{docstring\ 3632}#
#{body\ 3633}#)
(let ((#{atom-key\ 3634}# (fluid-ref #{*mode*\ 2635}#)))
(if (memv #{atom-key\ 3634}# (quote (c)))
((@ (language tree-il) make-lambda)
#{src\ 3631}#
(if #{docstring\ 3632}#
(list (cons (quote documentation) #{docstring\ 3632}#))
'())
#{body\ 3633}#)
(#{decorate-source\ 2644}#
(cons 'lambda
(cons '%%args
(append
(if #{docstring\ 3632}#
(list #{docstring\ 3632}#)
'())
(list (cons (quote cond) #{body\ 3633}#)))))
#{src\ 3631}#)))))
(#{build-simple-lambda\ 2655}#
(lambda (#{src\ 3635}#
#{req\ 3636}#
#{rest\ 3637}#
#{vars\ 3638}#
#{docstring\ 3639}#
#{exp\ 3640}#)
(let ((#{atom-key\ 3641}# (fluid-ref #{*mode*\ 2635}#)))
(if (memv #{atom-key\ 3641}# (quote (c)))
((@ (language tree-il) make-lambda)
#{src\ 3635}#
(if #{docstring\ 3639}#
(list (cons (quote documentation) #{docstring\ 3639}#))
'())
((@ (language tree-il) make-lambda-case)
#{src\ 3635}#
#{req\ 3636}#
#f
#{rest\ 3637}#
#f
'()
#{vars\ 3638}#
#{exp\ 3640}#
#f))
(#{decorate-source\ 2644}#
(cons 'lambda
(cons (if #{rest\ 3637}#
(apply cons* #{vars\ 3638}#)
#{vars\ 3638}#)
(append
(if #{docstring\ 3639}#
(list #{docstring\ 3639}#)
'())
(list #{exp\ 3640}#))))
#{src\ 3635}#)))))
(#{build-global-definition\ 2654}#
(lambda (#{source\ 3642}# #{var\ 3643}# #{exp\ 3644}#)
(let ((#{atom-key\ 3645}# (fluid-ref #{*mode*\ 2635}#)))
(if (memv #{atom-key\ 3645}# (quote (c)))
(begin
(#{maybe-name-value!\ 2653}#
#{var\ 3643}#
#{exp\ 3644}#)
((@ (language tree-il) make-toplevel-define)
#{source\ 3642}#
#{var\ 3643}#
#{exp\ 3644}#))
(#{decorate-source\ 2644}#
(list (quote define) #{var\ 3643}# #{exp\ 3644}#)
#{source\ 3642}#)))))
(#{maybe-name-value!\ 2653}#
(lambda (#{name\ 3646}# #{val\ 3647}#)
(if ((@ (language tree-il) lambda?) #{val\ 3647}#)
(let ((#{meta\ 3648}#
((@ (language tree-il) lambda-meta)
#{val\ 3647}#)))
(if (not (assq (quote name) #{meta\ 3648}#))
((setter (@ (language tree-il) lambda-meta))
#{val\ 3647}#
(acons 'name
#{name\ 3646}#
#{meta\ 3648}#)))))))
(#{build-global-assignment\ 2652}#
(lambda (#{source\ 3649}#
#{var\ 3650}#
#{exp\ 3651}#
#{mod\ 3652}#)
(#{analyze-variable\ 2650}#
#{mod\ 3652}#
#{var\ 3650}#
(lambda (#{mod\ 3653}# #{var\ 3654}# #{public?\ 3655}#)
(let ((#{atom-key\ 3656}# (fluid-ref #{*mode*\ 2635}#)))
(if (memv #{atom-key\ 3656}# (quote (c)))
((@ (language tree-il) make-module-set)
#{source\ 3649}#
#{mod\ 3653}#
#{var\ 3654}#
#{public?\ 3655}#
#{exp\ 3651}#)
(#{decorate-source\ 2644}#
(list 'set!
(list (if #{public?\ 3655}#
'@
'@@)
#{mod\ 3653}#
#{var\ 3654}#)
#{exp\ 3651}#)
#{source\ 3649}#))))
(lambda (#{var\ 3657}#)
(let ((#{atom-key\ 3658}# (fluid-ref #{*mode*\ 2635}#)))
(if (memv #{atom-key\ 3658}# (quote (c)))
((@ (language tree-il) make-toplevel-set)
#{source\ 3649}#
#{var\ 3657}#
#{exp\ 3651}#)
(#{decorate-source\ 2644}#
(list (quote set!) #{var\ 3657}# #{exp\ 3651}#)
#{source\ 3649}#)))))))
(#{build-global-reference\ 2651}#
(lambda (#{source\ 3659}# #{var\ 3660}# #{mod\ 3661}#)
(#{analyze-variable\ 2650}#
#{mod\ 3661}#
#{var\ 3660}#
(lambda (#{mod\ 3662}# #{var\ 3663}# #{public?\ 3664}#)
(let ((#{atom-key\ 3665}# (fluid-ref #{*mode*\ 2635}#)))
(if (memv #{atom-key\ 3665}# (quote (c)))
((@ (language tree-il) make-module-ref)
#{source\ 3659}#
#{mod\ 3662}#
#{var\ 3663}#
#{public?\ 3664}#)
(#{decorate-source\ 2644}#
(list (if #{public?\ 3664}# (quote @) (quote @@))
#{mod\ 3662}#
#{var\ 3663}#)
#{source\ 3659}#))))
(lambda (#{var\ 3666}#)
(let ((#{atom-key\ 3667}# (fluid-ref #{*mode*\ 2635}#)))
(if (memv #{atom-key\ 3667}# (quote (c)))
((@ (language tree-il) make-toplevel-ref)
#{source\ 3659}#
#{var\ 3666}#)
(#{decorate-source\ 2644}#
#{var\ 3666}#
#{source\ 3659}#)))))))
(#{analyze-variable\ 2650}#
(lambda (#{mod\ 3668}#
#{var\ 3669}#
#{modref-cont\ 3670}#
#{bare-cont\ 3671}#)
(if (not #{mod\ 3668}#)
(#{bare-cont\ 3671}# #{var\ 3669}#)
(let ((#{kind\ 3672}# (car #{mod\ 3668}#))
(#{mod\ 3673}# (cdr #{mod\ 3668}#)))
(if (memv #{kind\ 3672}# (quote (public)))
(#{modref-cont\ 3670}#
#{mod\ 3673}#
#{var\ 3669}#
#t)
(if (memv #{kind\ 3672}# (quote (private)))
(if (not (equal?
#{mod\ 3673}#
(module-name (current-module))))
(#{modref-cont\ 3670}#
#{mod\ 3673}#
#{var\ 3669}#
#f)
(#{bare-cont\ 3671}# #{var\ 3669}#))
(if (memv #{kind\ 3672}# (quote (bare)))
(#{bare-cont\ 3671}# #{var\ 3669}#)
(if (memv #{kind\ 3672}# (quote (hygiene)))
(if (if (not (equal?
#{mod\ 3673}#
(module-name (current-module))))
(module-variable
(resolve-module #{mod\ 3673}#)
#{var\ 3669}#)
#f)
(#{modref-cont\ 3670}#
#{mod\ 3673}#
#{var\ 3669}#
#f)
(#{bare-cont\ 3671}# #{var\ 3669}#))
(syntax-violation
#f
"bad module kind"
#{var\ 3669}#
#{mod\ 3673}#)))))))))
(#{build-lexical-assignment\ 2649}#
(lambda (#{source\ 3674}#
#{name\ 3675}#
#{var\ 3676}#
#{exp\ 3677}#)
(let ((#{atom-key\ 3678}# (fluid-ref #{*mode*\ 2635}#)))
(if (memv #{atom-key\ 3678}# (quote (c)))
((@ (language tree-il) make-lexical-set)
#{source\ 3674}#
#{name\ 3675}#
#{var\ 3676}#
#{exp\ 3677}#)
(#{decorate-source\ 2644}#
(list (quote set!) #{var\ 3676}# #{exp\ 3677}#)
#{source\ 3674}#)))))
(#{build-lexical-reference\ 2648}#
(lambda (#{type\ 3679}#
#{source\ 3680}#
#{name\ 3681}#
#{var\ 3682}#)
(let ((#{atom-key\ 3683}# (fluid-ref #{*mode*\ 2635}#)))
(if (memv #{atom-key\ 3683}# (quote (c)))
((@ (language tree-il) make-lexical-ref)
#{source\ 3680}#
#{name\ 3681}#
#{var\ 3682}#)
(#{decorate-source\ 2644}#
#{var\ 3682}#
#{source\ 3680}#)))))
(#{build-conditional\ 2647}#
(lambda (#{source\ 3684}#
#{test-exp\ 3685}#
#{then-exp\ 3686}#
#{else-exp\ 3687}#)
(let ((#{atom-key\ 3688}# (fluid-ref #{*mode*\ 2635}#)))
(if (memv #{atom-key\ 3688}# (quote (c)))
((@ (language tree-il) make-conditional)
#{source\ 3684}#
#{test-exp\ 3685}#
#{then-exp\ 3686}#
#{else-exp\ 3687}#)
(#{decorate-source\ 2644}#
(if (equal? #{else-exp\ 3687}# (quote (if #f #f)))
(list 'if
#{test-exp\ 3685}#
#{then-exp\ 3686}#)
(list 'if
#{test-exp\ 3685}#
#{then-exp\ 3686}#
#{else-exp\ 3687}#))
#{source\ 3684}#)))))
(#{build-application\ 2646}#
(lambda (#{source\ 3689}#
#{fun-exp\ 3690}#
#{arg-exps\ 3691}#)
(let ((#{atom-key\ 3692}# (fluid-ref #{*mode*\ 2635}#)))
(if (memv #{atom-key\ 3692}# (quote (c)))
((@ (language tree-il) make-application)
#{source\ 3689}#
#{fun-exp\ 3690}#
#{arg-exps\ 3691}#)
(#{decorate-source\ 2644}#
(cons #{fun-exp\ 3690}# #{arg-exps\ 3691}#)
#{source\ 3689}#)))))
(#{build-void\ 2645}#
(lambda (#{source\ 3693}#)
(let ((#{atom-key\ 3694}# (fluid-ref #{*mode*\ 2635}#)))
(if (memv #{atom-key\ 3694}# (quote (c)))
((@ (language tree-il) make-void)
#{source\ 3693}#)
(#{decorate-source\ 2644}#
'(if #f #f)
#{source\ 3693}#)))))
(#{decorate-source\ 2644}#
(lambda (#{e\ 3695}# #{s\ 3696}#)
(begin
(if (if (pair? #{e\ 3695}#) #{s\ 3696}# #f)
(set-source-properties! #{e\ 3695}# #{s\ 3696}#))
#{e\ 3695}#)))
(#{get-global-definition-hook\ 2643}#
(lambda (#{symbol\ 3697}# #{module\ 3698}#)
(begin
(if (if (not #{module\ 3698}#) (current-module) #f)
(warn "module system is booted, we should have a module"
#{symbol\ 3697}#))
(let ((#{v\ 3699}#
(module-variable
(if #{module\ 3698}#
(resolve-module (cdr #{module\ 3698}#))
(current-module))
#{symbol\ 3697}#)))
(if #{v\ 3699}#
(if (variable-bound? #{v\ 3699}#)
(let ((#{val\ 3700}# (variable-ref #{v\ 3699}#)))
(if (macro? #{val\ 3700}#)
(if (syncase-macro-type #{val\ 3700}#)
(cons (syncase-macro-type #{val\ 3700}#)
(syncase-macro-binding #{val\ 3700}#))
#f)
#f))
#f)
#f)))))
(#{put-global-definition-hook\ 2642}#
(lambda (#{symbol\ 3701}# #{type\ 3702}# #{val\ 3703}#)
(let ((#{existing\ 3704}#
(let ((#{v\ 3705}#
(module-variable
(current-module)
#{symbol\ 3701}#)))
(if #{v\ 3705}#
(if (variable-bound? #{v\ 3705}#)
(let ((#{val\ 3706}# (variable-ref #{v\ 3705}#)))
(if (macro? #{val\ 3706}#)
(if (not (syncase-macro-type #{val\ 3706}#))
#{val\ 3706}#
#f)
#f))
#f)
#f))))
(module-define!
(current-module)
#{symbol\ 3701}#
(if #{existing\ 3704}#
(make-extended-syncase-macro
#{existing\ 3704}#
#{type\ 3702}#
#{val\ 3703}#)
(make-syncase-macro #{type\ 3702}# #{val\ 3703}#))))))
(#{local-eval-hook\ 2641}#
(lambda (#{x\ 3707}# #{mod\ 3708}#)
(primitive-eval
(list #{noexpand\ 2634}#
(let ((#{atom-key\ 3709}# (fluid-ref #{*mode*\ 2635}#)))
(if (memv #{atom-key\ 3709}# (quote (c)))
((@ (language tree-il) tree-il->scheme)
#{x\ 3707}#)
#{x\ 3707}#))))))
(#{top-level-eval-hook\ 2640}#
(lambda (#{x\ 3710}# #{mod\ 3711}#)
(primitive-eval
(list #{noexpand\ 2634}#
(let ((#{atom-key\ 3712}# (fluid-ref #{*mode*\ 2635}#)))
(if (memv #{atom-key\ 3712}# (quote (c)))
((@ (language tree-il) tree-il->scheme)
#{x\ 3710}#)
#{x\ 3710}#))))))
(#{fx<\ 2639}# <)
(#{fx=\ 2638}# =)
(#{fx-\ 2637}# -)
(#{fx+\ 2636}# +)
(#{*mode*\ 2635}# (make-fluid))
(#{noexpand\ 2634}# "noexpand"))
(begin
(#{global-extend\ 2679}#
'local-syntax
'letrec-syntax
#t)
(#{global-extend\ 2679}#
'local-syntax
'let-syntax
#f)
(#{global-extend\ 2679}#
'core
'fluid-let-syntax
(lambda (#{e\ 3713}#
#{r\ 3714}#
#{w\ 3715}#
#{s\ 3716}#
#{mod\ 3717}#)
((lambda (#{tmp\ 3718}#)
((lambda (#{tmp\ 3719}#)
(if (if #{tmp\ 3719}#
(apply (lambda (#{_\ 3720}#
#{var\ 3721}#
#{val\ 3722}#
#{e1\ 3723}#
#{e2\ 3724}#)
(#{valid-bound-ids?\ 2706}# #{var\ 3721}#))
#{tmp\ 3719}#)
#f)
(apply (lambda (#{_\ 3726}#
#{var\ 3727}#
#{val\ 3728}#
#{e1\ 3729}#
#{e2\ 3730}#)
(let ((#{names\ 3731}#
(map (lambda (#{x\ 3732}#)
(#{id-var-name\ 2703}#
#{x\ 3732}#
#{w\ 3715}#))
#{var\ 3727}#)))
(begin
(for-each
(lambda (#{id\ 3734}# #{n\ 3735}#)
(let ((#{atom-key\ 3736}#
(#{binding-type\ 2673}#
(#{lookup\ 2678}#
#{n\ 3735}#
#{r\ 3714}#
#{mod\ 3717}#))))
(if (memv #{atom-key\ 3736}#
'(displaced-lexical))
(syntax-violation
'fluid-let-syntax
"identifier out of context"
#{e\ 3713}#
(#{source-wrap\ 2710}#
#{id\ 3734}#
#{w\ 3715}#
#{s\ 3716}#
#{mod\ 3717}#)))))
#{var\ 3727}#
#{names\ 3731}#)
(#{chi-body\ 2721}#
(cons #{e1\ 3729}# #{e2\ 3730}#)
(#{source-wrap\ 2710}#
#{e\ 3713}#
#{w\ 3715}#
#{s\ 3716}#
#{mod\ 3717}#)
(#{extend-env\ 2675}#
#{names\ 3731}#
(let ((#{trans-r\ 3739}#
(#{macros-only-env\ 2677}#
#{r\ 3714}#)))
(map (lambda (#{x\ 3740}#)
(cons 'macro
(#{eval-local-transformer\ 2723}#
(#{chi\ 2717}#
#{x\ 3740}#
#{trans-r\ 3739}#
#{w\ 3715}#
#{mod\ 3717}#)
#{mod\ 3717}#)))
#{val\ 3728}#))
#{r\ 3714}#)
#{w\ 3715}#
#{mod\ 3717}#))))
#{tmp\ 3719}#)
((lambda (#{_\ 3742}#)
(syntax-violation
'fluid-let-syntax
"bad syntax"
(#{source-wrap\ 2710}#
#{e\ 3713}#
#{w\ 3715}#
#{s\ 3716}#
#{mod\ 3717}#)))
#{tmp\ 3718}#)))
($sc-dispatch
#{tmp\ 3718}#
'(any #(each (any any)) any . each-any))))
#{e\ 3713}#)))
(#{global-extend\ 2679}#
'core
'quote
(lambda (#{e\ 3743}#
#{r\ 3744}#
#{w\ 3745}#
#{s\ 3746}#
#{mod\ 3747}#)
((lambda (#{tmp\ 3748}#)
((lambda (#{tmp\ 3749}#)
(if #{tmp\ 3749}#
(apply (lambda (#{_\ 3750}# #{e\ 3751}#)
(#{build-data\ 2659}#
#{s\ 3746}#
(#{strip\ 2730}# #{e\ 3751}# #{w\ 3745}#)))
#{tmp\ 3749}#)
((lambda (#{_\ 3752}#)
(syntax-violation
'quote
"bad syntax"
(#{source-wrap\ 2710}#
#{e\ 3743}#
#{w\ 3745}#
#{s\ 3746}#
#{mod\ 3747}#)))
#{tmp\ 3748}#)))
($sc-dispatch #{tmp\ 3748}# (quote (any any)))))
#{e\ 3743}#)))
(#{global-extend\ 2679}#
'core
'syntax
(letrec ((#{regen\ 3760}#
(lambda (#{x\ 3761}#)
(let ((#{atom-key\ 3762}# (car #{x\ 3761}#)))
(if (memv #{atom-key\ 3762}# (quote (ref)))
(#{build-lexical-reference\ 2648}#
'value
#f
(cadr #{x\ 3761}#)
(cadr #{x\ 3761}#))
(if (memv #{atom-key\ 3762}# (quote (primitive)))
(#{build-primref\ 2658}# #f (cadr #{x\ 3761}#))
(if (memv #{atom-key\ 3762}# (quote (quote)))
(#{build-data\ 2659}# #f (cadr #{x\ 3761}#))
(if (memv #{atom-key\ 3762}# (quote (lambda)))
(if (list? (cadr #{x\ 3761}#))
(#{build-simple-lambda\ 2655}#
#f
(cadr #{x\ 3761}#)
#f
(cadr #{x\ 3761}#)
#f
(#{regen\ 3760}# (caddr #{x\ 3761}#)))
(error "how did we get here" #{x\ 3761}#))
(#{build-application\ 2646}#
#f
(#{build-primref\ 2658}# #f (car #{x\ 3761}#))
(map #{regen\ 3760}#
(cdr #{x\ 3761}#))))))))))
(#{gen-vector\ 3759}#
(lambda (#{x\ 3763}#)
(if (eq? (car #{x\ 3763}#) (quote list))
(cons (quote vector) (cdr #{x\ 3763}#))
(if (eq? (car #{x\ 3763}#) (quote quote))
(list 'quote
(list->vector (cadr #{x\ 3763}#)))
(list (quote list->vector) #{x\ 3763}#)))))
(#{gen-append\ 3758}#
(lambda (#{x\ 3764}# #{y\ 3765}#)
(if (equal? #{y\ 3765}# (quote (quote ())))
#{x\ 3764}#
(list (quote append) #{x\ 3764}# #{y\ 3765}#))))
(#{gen-cons\ 3757}#
(lambda (#{x\ 3766}# #{y\ 3767}#)
(let ((#{atom-key\ 3768}# (car #{y\ 3767}#)))
(if (memv #{atom-key\ 3768}# (quote (quote)))
(if (eq? (car #{x\ 3766}#) (quote quote))
(list 'quote
(cons (cadr #{x\ 3766}#) (cadr #{y\ 3767}#)))
(if (eq? (cadr #{y\ 3767}#) (quote ()))
(list (quote list) #{x\ 3766}#)
(list (quote cons) #{x\ 3766}# #{y\ 3767}#)))
(if (memv #{atom-key\ 3768}# (quote (list)))
(cons 'list
(cons #{x\ 3766}# (cdr #{y\ 3767}#)))
(list (quote cons) #{x\ 3766}# #{y\ 3767}#))))))
(#{gen-map\ 3756}#
(lambda (#{e\ 3769}# #{map-env\ 3770}#)
(let ((#{formals\ 3771}# (map cdr #{map-env\ 3770}#))
(#{actuals\ 3772}#
(map (lambda (#{x\ 3773}#)
(list (quote ref) (car #{x\ 3773}#)))
#{map-env\ 3770}#)))
(if (eq? (car #{e\ 3769}#) (quote ref))
(car #{actuals\ 3772}#)
(if (and-map
(lambda (#{x\ 3774}#)
(if (eq? (car #{x\ 3774}#) (quote ref))
(memq (cadr #{x\ 3774}#) #{formals\ 3771}#)
#f))
(cdr #{e\ 3769}#))
(cons 'map
(cons (list 'primitive
(car #{e\ 3769}#))
(map (let ((#{r\ 3775}#
(map cons
#{formals\ 3771}#
#{actuals\ 3772}#)))
(lambda (#{x\ 3776}#)
(cdr (assq (cadr #{x\ 3776}#)
#{r\ 3775}#))))
(cdr #{e\ 3769}#))))
(cons 'map
(cons (list 'lambda
#{formals\ 3771}#
#{e\ 3769}#)
#{actuals\ 3772}#)))))))
(#{gen-mappend\ 3755}#
(lambda (#{e\ 3777}# #{map-env\ 3778}#)
(list 'apply
'(primitive append)
(#{gen-map\ 3756}# #{e\ 3777}# #{map-env\ 3778}#))))
(#{gen-ref\ 3754}#
(lambda (#{src\ 3779}#
#{var\ 3780}#
#{level\ 3781}#
#{maps\ 3782}#)
(if (#{fx=\ 2638}# #{level\ 3781}# 0)
(values #{var\ 3780}# #{maps\ 3782}#)
(if (null? #{maps\ 3782}#)
(syntax-violation
'syntax
"missing ellipsis"
#{src\ 3779}#)
(call-with-values
(lambda ()
(#{gen-ref\ 3754}#
#{src\ 3779}#
#{var\ 3780}#
(#{fx-\ 2637}# #{level\ 3781}# 1)
(cdr #{maps\ 3782}#)))
(lambda (#{outer-var\ 3783}# #{outer-maps\ 3784}#)
(let ((#{b\ 3785}#
(assq #{outer-var\ 3783}#
(car #{maps\ 3782}#))))
(if #{b\ 3785}#
(values (cdr #{b\ 3785}#) #{maps\ 3782}#)
(let ((#{inner-var\ 3786}#
(#{gen-var\ 2731}# (quote tmp))))
(values
#{inner-var\ 3786}#
(cons (cons (cons #{outer-var\ 3783}#
#{inner-var\ 3786}#)
(car #{maps\ 3782}#))
#{outer-maps\ 3784}#)))))))))))
(#{gen-syntax\ 3753}#
(lambda (#{src\ 3787}#
#{e\ 3788}#
#{r\ 3789}#
#{maps\ 3790}#
#{ellipsis?\ 3791}#
#{mod\ 3792}#)
(if (#{id?\ 2681}# #{e\ 3788}#)
(let ((#{label\ 3793}#
(#{id-var-name\ 2703}#
#{e\ 3788}#
'(()))))
(let ((#{b\ 3794}#
(#{lookup\ 2678}#
#{label\ 3793}#
#{r\ 3789}#
#{mod\ 3792}#)))
(if (eq? (#{binding-type\ 2673}# #{b\ 3794}#)
'syntax)
(call-with-values
(lambda ()
(let ((#{var.lev\ 3795}#
(#{binding-value\ 2674}#
#{b\ 3794}#)))
(#{gen-ref\ 3754}#
#{src\ 3787}#
(car #{var.lev\ 3795}#)
(cdr #{var.lev\ 3795}#)
#{maps\ 3790}#)))
(lambda (#{var\ 3796}# #{maps\ 3797}#)
(values
(list (quote ref) #{var\ 3796}#)
#{maps\ 3797}#)))
(if (#{ellipsis?\ 3791}# #{e\ 3788}#)
(syntax-violation
'syntax
"misplaced ellipsis"
#{src\ 3787}#)
(values
(list (quote quote) #{e\ 3788}#)
#{maps\ 3790}#)))))
((lambda (#{tmp\ 3798}#)
((lambda (#{tmp\ 3799}#)
(if (if #{tmp\ 3799}#
(apply (lambda (#{dots\ 3800}# #{e\ 3801}#)
(#{ellipsis?\ 3791}#
#{dots\ 3800}#))
#{tmp\ 3799}#)
#f)
(apply (lambda (#{dots\ 3802}# #{e\ 3803}#)
(#{gen-syntax\ 3753}#
#{src\ 3787}#
#{e\ 3803}#
#{r\ 3789}#
#{maps\ 3790}#
(lambda (#{x\ 3804}#) #f)
#{mod\ 3792}#))
#{tmp\ 3799}#)
((lambda (#{tmp\ 3805}#)
(if (if #{tmp\ 3805}#
(apply (lambda (#{x\ 3806}#
#{dots\ 3807}#
#{y\ 3808}#)
(#{ellipsis?\ 3791}#
#{dots\ 3807}#))
#{tmp\ 3805}#)
#f)
(apply (lambda (#{x\ 3809}#
#{dots\ 3810}#
#{y\ 3811}#)
(letrec ((#{f\ 3812}#
(lambda (#{y\ 3813}#
#{k\ 3814}#)
((lambda (#{tmp\ 3818}#)
((lambda (#{tmp\ 3819}#)
(if (if #{tmp\ 3819}#
(apply (lambda (#{dots\ 3820}#
#{y\ 3821}#)
(#{ellipsis?\ 3791}#
#{dots\ 3820}#))
#{tmp\ 3819}#)
#f)
(apply (lambda (#{dots\ 3822}#
#{y\ 3823}#)
(#{f\ 3812}#
#{y\ 3823}#
(lambda (#{maps\ 3824}#)
(call-with-values
(lambda ()
(#{k\ 3814}#
(cons '()
#{maps\ 3824}#)))
(lambda (#{x\ 3825}#
#{maps\ 3826}#)
(if (null? (car #{maps\ 3826}#))
(syntax-violation
'syntax
"extra ellipsis"
#{src\ 3787}#)
(values
(#{gen-mappend\ 3755}#
#{x\ 3825}#
(car #{maps\ 3826}#))
(cdr #{maps\ 3826}#))))))))
#{tmp\ 3819}#)
((lambda (#{_\ 3827}#)
(call-with-values
(lambda ()
(#{gen-syntax\ 3753}#
#{src\ 3787}#
#{y\ 3813}#
#{r\ 3789}#
#{maps\ 3790}#
#{ellipsis?\ 3791}#
#{mod\ 3792}#))
(lambda (#{y\ 3828}#
#{maps\ 3829}#)
(call-with-values
(lambda ()
(#{k\ 3814}#
#{maps\ 3829}#))
(lambda (#{x\ 3830}#
#{maps\ 3831}#)
(values
(#{gen-append\ 3758}#
#{x\ 3830}#
#{y\ 3828}#)
#{maps\ 3831}#))))))
#{tmp\ 3818}#)))
($sc-dispatch
#{tmp\ 3818}#
'(any . any))))
#{y\ 3813}#))))
(#{f\ 3812}#
#{y\ 3811}#
(lambda (#{maps\ 3815}#)
(call-with-values
(lambda ()
(#{gen-syntax\ 3753}#
#{src\ 3787}#
#{x\ 3809}#
#{r\ 3789}#
(cons '()
#{maps\ 3815}#)
#{ellipsis?\ 3791}#
#{mod\ 3792}#))
(lambda (#{x\ 3816}#
#{maps\ 3817}#)
(if (null? (car #{maps\ 3817}#))
(syntax-violation
'syntax
"extra ellipsis"
#{src\ 3787}#)
(values
(#{gen-map\ 3756}#
#{x\ 3816}#
(car #{maps\ 3817}#))
(cdr #{maps\ 3817}#)))))))))
#{tmp\ 3805}#)
((lambda (#{tmp\ 3832}#)
(if #{tmp\ 3832}#
(apply (lambda (#{x\ 3833}#
#{y\ 3834}#)
(call-with-values
(lambda ()
(#{gen-syntax\ 3753}#
#{src\ 3787}#
#{x\ 3833}#
#{r\ 3789}#
#{maps\ 3790}#
#{ellipsis?\ 3791}#
#{mod\ 3792}#))
(lambda (#{x\ 3835}#
#{maps\ 3836}#)
(call-with-values
(lambda ()
(#{gen-syntax\ 3753}#
#{src\ 3787}#
#{y\ 3834}#
#{r\ 3789}#
#{maps\ 3836}#
#{ellipsis?\ 3791}#
#{mod\ 3792}#))
(lambda (#{y\ 3837}#
#{maps\ 3838}#)
(values
(#{gen-cons\ 3757}#
#{x\ 3835}#
#{y\ 3837}#)
#{maps\ 3838}#))))))
#{tmp\ 3832}#)
((lambda (#{tmp\ 3839}#)
(if #{tmp\ 3839}#
(apply (lambda (#{e1\ 3840}#
#{e2\ 3841}#)
(call-with-values
(lambda ()
(#{gen-syntax\ 3753}#
#{src\ 3787}#
(cons #{e1\ 3840}#
#{e2\ 3841}#)
#{r\ 3789}#
#{maps\ 3790}#
#{ellipsis?\ 3791}#
#{mod\ 3792}#))
(lambda (#{e\ 3843}#
#{maps\ 3844}#)
(values
(#{gen-vector\ 3759}#
#{e\ 3843}#)
#{maps\ 3844}#))))
#{tmp\ 3839}#)
((lambda (#{_\ 3845}#)
(values
(list 'quote
#{e\ 3788}#)
#{maps\ 3790}#))
#{tmp\ 3798}#)))
($sc-dispatch
#{tmp\ 3798}#
'#(vector (any . each-any))))))
($sc-dispatch
#{tmp\ 3798}#
'(any . any)))))
($sc-dispatch
#{tmp\ 3798}#
'(any any . any)))))
($sc-dispatch #{tmp\ 3798}# (quote (any any)))))
#{e\ 3788}#)))))
(lambda (#{e\ 3846}#
#{r\ 3847}#
#{w\ 3848}#
#{s\ 3849}#
#{mod\ 3850}#)
(let ((#{e\ 3851}#
(#{source-wrap\ 2710}#
#{e\ 3846}#
#{w\ 3848}#
#{s\ 3849}#
#{mod\ 3850}#)))
((lambda (#{tmp\ 3852}#)
((lambda (#{tmp\ 3853}#)
(if #{tmp\ 3853}#
(apply (lambda (#{_\ 3854}# #{x\ 3855}#)
(call-with-values
(lambda ()
(#{gen-syntax\ 3753}#
#{e\ 3851}#
#{x\ 3855}#
#{r\ 3847}#
'()
#{ellipsis?\ 2725}#
#{mod\ 3850}#))
(lambda (#{e\ 3856}# #{maps\ 3857}#)
(#{regen\ 3760}# #{e\ 3856}#))))
#{tmp\ 3853}#)
((lambda (#{_\ 3858}#)
(syntax-violation
'syntax
"bad `syntax' form"
#{e\ 3851}#))
#{tmp\ 3852}#)))
($sc-dispatch #{tmp\ 3852}# (quote (any any)))))
#{e\ 3851}#)))))
(#{global-extend\ 2679}#
'core
'lambda
(lambda (#{e\ 3859}#
#{r\ 3860}#
#{w\ 3861}#
#{s\ 3862}#
#{mod\ 3863}#)
((lambda (#{tmp\ 3864}#)
((lambda (#{tmp\ 3865}#)
(if (if #{tmp\ 3865}#
(apply (lambda (#{_\ 3866}#
#{args\ 3867}#
#{docstring\ 3868}#
#{e1\ 3869}#
#{e2\ 3870}#)
(string? (syntax->datum #{docstring\ 3868}#)))
#{tmp\ 3865}#)
#f)
(apply (lambda (#{_\ 3871}#
#{args\ 3872}#
#{docstring\ 3873}#
#{e1\ 3874}#
#{e2\ 3875}#)
(call-with-values
(lambda ()
(#{lambda-formals\ 2726}# #{args\ 3872}#))
(lambda (#{req\ 3876}#
#{opt\ 3877}#
#{rest\ 3878}#
#{kw\ 3879}#)
(#{chi-simple-lambda\ 2727}#
#{e\ 3859}#
#{r\ 3860}#
#{w\ 3861}#
#{s\ 3862}#
#{mod\ 3863}#
#{req\ 3876}#
#{rest\ 3878}#
(syntax->datum #{docstring\ 3873}#)
(cons #{e1\ 3874}# #{e2\ 3875}#)))))
#{tmp\ 3865}#)
((lambda (#{tmp\ 3881}#)
(if #{tmp\ 3881}#
(apply (lambda (#{_\ 3882}#
#{args\ 3883}#
#{e1\ 3884}#
#{e2\ 3885}#)
(call-with-values
(lambda ()
(#{lambda-formals\ 2726}# #{args\ 3883}#))
(lambda (#{req\ 3886}#
#{opt\ 3887}#
#{rest\ 3888}#
#{kw\ 3889}#)
(#{chi-simple-lambda\ 2727}#
#{e\ 3859}#
#{r\ 3860}#
#{w\ 3861}#
#{s\ 3862}#
#{mod\ 3863}#
#{req\ 3886}#
#{rest\ 3888}#
#f
(cons #{e1\ 3884}# #{e2\ 3885}#)))))
#{tmp\ 3881}#)
((lambda (#{_\ 3891}#)
(syntax-violation
'lambda
"bad lambda"
#{e\ 3859}#))
#{tmp\ 3864}#)))
($sc-dispatch
#{tmp\ 3864}#
'(any any any . each-any)))))
($sc-dispatch
#{tmp\ 3864}#
'(any any any any . each-any))))
#{e\ 3859}#)))
(#{global-extend\ 2679}#
'core
'lambda*
(lambda (#{e\ 3892}#
#{r\ 3893}#
#{w\ 3894}#
#{s\ 3895}#
#{mod\ 3896}#)
((lambda (#{tmp\ 3897}#)
((lambda (#{tmp\ 3898}#)
(if #{tmp\ 3898}#
(apply (lambda (#{_\ 3899}#
#{args\ 3900}#
#{e1\ 3901}#
#{e2\ 3902}#)
(call-with-values
(lambda ()
(#{chi-lambda-case\ 2729}#
#{e\ 3892}#
#{r\ 3893}#
#{w\ 3894}#
#{s\ 3895}#
#{mod\ 3896}#
#{lambda*-formals\ 2728}#
(list (cons #{args\ 3900}#
(cons #{e1\ 3901}#
#{e2\ 3902}#)))))
(lambda (#{docstring\ 3904}# #{lcase\ 3905}#)
(#{build-case-lambda\ 2656}#
#{s\ 3895}#
#{docstring\ 3904}#
#{lcase\ 3905}#))))
#{tmp\ 3898}#)
((lambda (#{_\ 3906}#)
(syntax-violation
'lambda
"bad lambda*"
#{e\ 3892}#))
#{tmp\ 3897}#)))
($sc-dispatch
#{tmp\ 3897}#
'(any any any . each-any))))
#{e\ 3892}#)))
(#{global-extend\ 2679}#
'core
'case-lambda
(lambda (#{e\ 3907}#
#{r\ 3908}#
#{w\ 3909}#
#{s\ 3910}#
#{mod\ 3911}#)
((lambda (#{tmp\ 3912}#)
((lambda (#{tmp\ 3913}#)
(if #{tmp\ 3913}#
(apply (lambda (#{_\ 3914}#
#{args\ 3915}#
#{e1\ 3916}#
#{e2\ 3917}#
#{args*\ 3918}#
#{e1*\ 3919}#
#{e2*\ 3920}#)
(call-with-values
(lambda ()
(#{chi-lambda-case\ 2729}#
#{e\ 3907}#
#{r\ 3908}#
#{w\ 3909}#
#{s\ 3910}#
#{mod\ 3911}#
#{lambda-formals\ 2726}#
(cons (cons #{args\ 3915}#
(cons #{e1\ 3916}# #{e2\ 3917}#))
(map (lambda (#{tmp\ 3924}#
#{tmp\ 3923}#
#{tmp\ 3922}#)
(cons #{tmp\ 3922}#
(cons #{tmp\ 3923}#
#{tmp\ 3924}#)))
#{e2*\ 3920}#
#{e1*\ 3919}#
#{args*\ 3918}#))))
(lambda (#{docstring\ 3926}# #{lcase\ 3927}#)
(#{build-case-lambda\ 2656}#
#{s\ 3910}#
#{docstring\ 3926}#
#{lcase\ 3927}#))))
#{tmp\ 3913}#)
((lambda (#{_\ 3928}#)
(syntax-violation
'case-lambda
"bad case-lambda"
#{e\ 3907}#))
#{tmp\ 3912}#)))
($sc-dispatch
#{tmp\ 3912}#
'(any (any any . each-any)
.
#(each (any any . each-any))))))
#{e\ 3907}#)))
(#{global-extend\ 2679}#
'core
'case-lambda*
(lambda (#{e\ 3929}#
#{r\ 3930}#
#{w\ 3931}#
#{s\ 3932}#
#{mod\ 3933}#)
((lambda (#{tmp\ 3934}#)
((lambda (#{tmp\ 3935}#)
(if #{tmp\ 3935}#
(apply (lambda (#{_\ 3936}#
#{args\ 3937}#
#{e1\ 3938}#
#{e2\ 3939}#
#{args*\ 3940}#
#{e1*\ 3941}#
#{e2*\ 3942}#)
(call-with-values
(lambda ()
(#{chi-lambda-case\ 2729}#
#{e\ 3929}#
#{r\ 3930}#
#{w\ 3931}#
#{s\ 3932}#
#{mod\ 3933}#
#{lambda*-formals\ 2728}#
(cons (cons #{args\ 3937}#
(cons #{e1\ 3938}# #{e2\ 3939}#))
(map (lambda (#{tmp\ 3946}#
#{tmp\ 3945}#
#{tmp\ 3944}#)
(cons #{tmp\ 3944}#
(cons #{tmp\ 3945}#
#{tmp\ 3946}#)))
#{e2*\ 3942}#
#{e1*\ 3941}#
#{args*\ 3940}#))))
(lambda (#{docstring\ 3948}# #{lcase\ 3949}#)
(#{build-case-lambda\ 2656}#
#{s\ 3932}#
#{docstring\ 3948}#
#{lcase\ 3949}#))))
#{tmp\ 3935}#)
((lambda (#{_\ 3950}#)
(syntax-violation
'case-lambda
"bad case-lambda*"
#{e\ 3929}#))
#{tmp\ 3934}#)))
($sc-dispatch
#{tmp\ 3934}#
'(any (any any . each-any)
.
#(each (any any . each-any))))))
#{e\ 3929}#)))
(#{global-extend\ 2679}#
'core
'let
(letrec ((#{chi-let\ 3951}#
(lambda (#{e\ 3952}#
#{r\ 3953}#
#{w\ 3954}#
#{s\ 3955}#
#{mod\ 3956}#
#{constructor\ 3957}#
#{ids\ 3958}#
#{vals\ 3959}#
#{exps\ 3960}#)
(if (not (#{valid-bound-ids?\ 2706}# #{ids\ 3958}#))
(syntax-violation
'let
"duplicate bound variable"
#{e\ 3952}#)
(let ((#{labels\ 3961}#
(#{gen-labels\ 2687}# #{ids\ 3958}#))
(#{new-vars\ 3962}#
(map #{gen-var\ 2731}# #{ids\ 3958}#)))
(let ((#{nw\ 3963}#
(#{make-binding-wrap\ 2698}#
#{ids\ 3958}#
#{labels\ 3961}#
#{w\ 3954}#))
(#{nr\ 3964}#
(#{extend-var-env\ 2676}#
#{labels\ 3961}#
#{new-vars\ 3962}#
#{r\ 3953}#)))
(#{constructor\ 3957}#
#{s\ 3955}#
(map syntax->datum #{ids\ 3958}#)
#{new-vars\ 3962}#
(map (lambda (#{x\ 3965}#)
(#{chi\ 2717}#
#{x\ 3965}#
#{r\ 3953}#
#{w\ 3954}#
#{mod\ 3956}#))
#{vals\ 3959}#)
(#{chi-body\ 2721}#
#{exps\ 3960}#
(#{source-wrap\ 2710}#
#{e\ 3952}#
#{nw\ 3963}#
#{s\ 3955}#
#{mod\ 3956}#)
#{nr\ 3964}#
#{nw\ 3963}#
#{mod\ 3956}#))))))))
(lambda (#{e\ 3966}#
#{r\ 3967}#
#{w\ 3968}#
#{s\ 3969}#
#{mod\ 3970}#)
((lambda (#{tmp\ 3971}#)
((lambda (#{tmp\ 3972}#)
(if (if #{tmp\ 3972}#
(apply (lambda (#{_\ 3973}#
#{id\ 3974}#
#{val\ 3975}#
#{e1\ 3976}#
#{e2\ 3977}#)
(and-map #{id?\ 2681}# #{id\ 3974}#))
#{tmp\ 3972}#)
#f)
(apply (lambda (#{_\ 3979}#
#{id\ 3980}#
#{val\ 3981}#
#{e1\ 3982}#
#{e2\ 3983}#)
(#{chi-let\ 3951}#
#{e\ 3966}#
#{r\ 3967}#
#{w\ 3968}#
#{s\ 3969}#
#{mod\ 3970}#
#{build-let\ 2661}#
#{id\ 3980}#
#{val\ 3981}#
(cons #{e1\ 3982}# #{e2\ 3983}#)))
#{tmp\ 3972}#)
((lambda (#{tmp\ 3987}#)
(if (if #{tmp\ 3987}#
(apply (lambda (#{_\ 3988}#
#{f\ 3989}#
#{id\ 3990}#
#{val\ 3991}#
#{e1\ 3992}#
#{e2\ 3993}#)
(if (#{id?\ 2681}# #{f\ 3989}#)
(and-map #{id?\ 2681}# #{id\ 3990}#)
#f))
#{tmp\ 3987}#)
#f)
(apply (lambda (#{_\ 3995}#
#{f\ 3996}#
#{id\ 3997}#
#{val\ 3998}#
#{e1\ 3999}#
#{e2\ 4000}#)
(#{chi-let\ 3951}#
#{e\ 3966}#
#{r\ 3967}#
#{w\ 3968}#
#{s\ 3969}#
#{mod\ 3970}#
#{build-named-let\ 2662}#
(cons #{f\ 3996}# #{id\ 3997}#)
#{val\ 3998}#
(cons #{e1\ 3999}# #{e2\ 4000}#)))
#{tmp\ 3987}#)
((lambda (#{_\ 4004}#)
(syntax-violation
'let
"bad let"
(#{source-wrap\ 2710}#
#{e\ 3966}#
#{w\ 3968}#
#{s\ 3969}#
#{mod\ 3970}#)))
#{tmp\ 3971}#)))
($sc-dispatch
#{tmp\ 3971}#
'(any any #(each (any any)) any . each-any)))))
($sc-dispatch
#{tmp\ 3971}#
'(any #(each (any any)) any . each-any))))
#{e\ 3966}#))))
(#{global-extend\ 2679}#
'core
'letrec
(lambda (#{e\ 4005}#
#{r\ 4006}#
#{w\ 4007}#
#{s\ 4008}#
#{mod\ 4009}#)
((lambda (#{tmp\ 4010}#)
((lambda (#{tmp\ 4011}#)
(if (if #{tmp\ 4011}#
(apply (lambda (#{_\ 4012}#
#{id\ 4013}#
#{val\ 4014}#
#{e1\ 4015}#
#{e2\ 4016}#)
(and-map #{id?\ 2681}# #{id\ 4013}#))
#{tmp\ 4011}#)
#f)
(apply (lambda (#{_\ 4018}#
#{id\ 4019}#
#{val\ 4020}#
#{e1\ 4021}#
#{e2\ 4022}#)
(let ((#{ids\ 4023}# #{id\ 4019}#))
(if (not (#{valid-bound-ids?\ 2706}#
#{ids\ 4023}#))
(syntax-violation
'letrec
"duplicate bound variable"
#{e\ 4005}#)
(let ((#{labels\ 4025}#
(#{gen-labels\ 2687}# #{ids\ 4023}#))
(#{new-vars\ 4026}#
(map #{gen-var\ 2731}# #{ids\ 4023}#)))
(let ((#{w\ 4027}#
(#{make-binding-wrap\ 2698}#
#{ids\ 4023}#
#{labels\ 4025}#
#{w\ 4007}#))
(#{r\ 4028}#
(#{extend-var-env\ 2676}#
#{labels\ 4025}#
#{new-vars\ 4026}#
#{r\ 4006}#)))
(#{build-letrec\ 2663}#
#{s\ 4008}#
(map syntax->datum #{ids\ 4023}#)
#{new-vars\ 4026}#
(map (lambda (#{x\ 4029}#)
(#{chi\ 2717}#
#{x\ 4029}#
#{r\ 4028}#
#{w\ 4027}#
#{mod\ 4009}#))
#{val\ 4020}#)
(#{chi-body\ 2721}#
(cons #{e1\ 4021}# #{e2\ 4022}#)
(#{source-wrap\ 2710}#
#{e\ 4005}#
#{w\ 4027}#
#{s\ 4008}#
#{mod\ 4009}#)
#{r\ 4028}#
#{w\ 4027}#
#{mod\ 4009}#)))))))
#{tmp\ 4011}#)
((lambda (#{_\ 4032}#)
(syntax-violation
'letrec
"bad letrec"
(#{source-wrap\ 2710}#
#{e\ 4005}#
#{w\ 4007}#
#{s\ 4008}#
#{mod\ 4009}#)))
#{tmp\ 4010}#)))
($sc-dispatch
#{tmp\ 4010}#
'(any #(each (any any)) any . each-any))))
#{e\ 4005}#)))
(#{global-extend\ 2679}#
'core
'set!
(lambda (#{e\ 4033}#
#{r\ 4034}#
#{w\ 4035}#
#{s\ 4036}#
#{mod\ 4037}#)
((lambda (#{tmp\ 4038}#)
((lambda (#{tmp\ 4039}#)
(if (if #{tmp\ 4039}#
(apply (lambda (#{_\ 4040}# #{id\ 4041}# #{val\ 4042}#)
(#{id?\ 2681}# #{id\ 4041}#))
#{tmp\ 4039}#)
#f)
(apply (lambda (#{_\ 4043}# #{id\ 4044}# #{val\ 4045}#)
(let ((#{val\ 4046}#
(#{chi\ 2717}#
#{val\ 4045}#
#{r\ 4034}#
#{w\ 4035}#
#{mod\ 4037}#))
(#{n\ 4047}#
(#{id-var-name\ 2703}#
#{id\ 4044}#
#{w\ 4035}#)))
(let ((#{b\ 4048}#
(#{lookup\ 2678}#
#{n\ 4047}#
#{r\ 4034}#
#{mod\ 4037}#)))
(let ((#{atom-key\ 4049}#
(#{binding-type\ 2673}# #{b\ 4048}#)))
(if (memv #{atom-key\ 4049}#
'(lexical))
(#{build-lexical-assignment\ 2649}#
#{s\ 4036}#
(syntax->datum #{id\ 4044}#)
(#{binding-value\ 2674}# #{b\ 4048}#)
#{val\ 4046}#)
(if (memv #{atom-key\ 4049}#
'(global))
(#{build-global-assignment\ 2652}#
#{s\ 4036}#
#{n\ 4047}#
#{val\ 4046}#
#{mod\ 4037}#)
(if (memv #{atom-key\ 4049}#
'(displaced-lexical))
(syntax-violation
'set!
"identifier out of context"
(#{wrap\ 2709}#
#{id\ 4044}#
#{w\ 4035}#
#{mod\ 4037}#))
(syntax-violation
'set!
"bad set!"
(#{source-wrap\ 2710}#
#{e\ 4033}#
#{w\ 4035}#
#{s\ 4036}#
#{mod\ 4037}#)))))))))
#{tmp\ 4039}#)
((lambda (#{tmp\ 4050}#)
(if #{tmp\ 4050}#
(apply (lambda (#{_\ 4051}#
#{head\ 4052}#
#{tail\ 4053}#
#{val\ 4054}#)
(call-with-values
(lambda ()
(#{syntax-type\ 2715}#
#{head\ 4052}#
#{r\ 4034}#
'(())
#f
#f
#{mod\ 4037}#
#t))
(lambda (#{type\ 4055}#
#{value\ 4056}#
#{ee\ 4057}#
#{ww\ 4058}#
#{ss\ 4059}#
#{modmod\ 4060}#)
(if (memv #{type\ 4055}#
'(module-ref))
(let ((#{val\ 4061}#
(#{chi\ 2717}#
#{val\ 4054}#
#{r\ 4034}#
#{w\ 4035}#
#{mod\ 4037}#)))
(call-with-values
(lambda ()
(#{value\ 4056}#
(cons #{head\ 4052}#
#{tail\ 4053}#)))
(lambda (#{id\ 4063}# #{mod\ 4064}#)
(#{build-global-assignment\ 2652}#
#{s\ 4036}#
#{id\ 4063}#
#{val\ 4061}#
#{mod\ 4064}#))))
(#{build-application\ 2646}#
#{s\ 4036}#
(#{chi\ 2717}#
(list '#(syntax-object
setter
((top)
#(ribcage () () ())
#(ribcage () () ())
#(ribcage
#(type
value
ee
ww
ss
modmod)
#((top)
(top)
(top)
(top)
(top)
(top))
#("i"
"i"
"i"
"i"
"i"
"i"))
#(ribcage
#(_ head tail val)
#((top)
(top)
(top)
(top))
#("i" "i" "i" "i"))
#(ribcage () () ())
#(ribcage
#(e r w s mod)
#((top)
(top)
(top)
(top)
(top))
#("i" "i" "i" "i" "i"))
#(ribcage
(lambda-var-list
gen-var
strip
chi-lambda-case
lambda*-formals
chi-simple-lambda
lambda-formals
ellipsis?
chi-void
eval-local-transformer
chi-local-syntax
chi-body
chi-macro
chi-application
chi-expr
chi
chi-top
syntax-type
chi-when-list
chi-install-global
chi-top-sequence
chi-sequence
source-wrap
wrap
bound-id-member?
distinct-bound-ids?
valid-bound-ids?
bound-id=?
free-id=?
id-var-name
same-marks?
join-marks
join-wraps
smart-append
make-binding-wrap
extend-ribcage!
make-empty-ribcage
new-mark
anti-mark
the-anti-mark
top-marked?
top-wrap
empty-wrap
set-ribcage-labels!
set-ribcage-marks!
set-ribcage-symnames!
ribcage-labels
ribcage-marks
ribcage-symnames
ribcage?
make-ribcage
gen-labels
gen-label
make-rename
rename-marks
rename-new
rename-old
subst-rename?
wrap-subst
wrap-marks
make-wrap
id-sym-name&marks
id-sym-name
id?
nonsymbol-id?
global-extend
lookup
macros-only-env
extend-var-env
extend-env
null-env
binding-value
binding-type
make-binding
arg-check
source-annotation
no-source
set-syntax-object-module!
set-syntax-object-wrap!
set-syntax-object-expression!
syntax-object-module
syntax-object-wrap
syntax-object-expression
syntax-object?
make-syntax-object
build-lexical-var
build-letrec
build-named-let
build-let
build-sequence
build-data
build-primref
build-lambda-case
build-case-lambda
build-simple-lambda
build-global-definition
maybe-name-value!
build-global-assignment
build-global-reference
analyze-variable
build-lexical-assignment
build-lexical-reference
build-conditional
build-application
build-void
decorate-source
get-global-definition-hook
put-global-definition-hook
gensym-hook
local-eval-hook
top-level-eval-hook
fx<
fx=
fx-
fx+
*mode*
noexpand)
((top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top))
("i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"))
#(ribcage
(define-structure
and-map*)
((top) (top))
("i" "i")))
(hygiene guile))
#{head\ 4052}#)
#{r\ 4034}#
#{w\ 4035}#
#{mod\ 4037}#)
(map (lambda (#{e\ 4065}#)
(#{chi\ 2717}#
#{e\ 4065}#
#{r\ 4034}#
#{w\ 4035}#
#{mod\ 4037}#))
(append
#{tail\ 4053}#
(list #{val\ 4054}#))))))))
#{tmp\ 4050}#)
((lambda (#{_\ 4067}#)
(syntax-violation
'set!
"bad set!"
(#{source-wrap\ 2710}#
#{e\ 4033}#
#{w\ 4035}#
#{s\ 4036}#
#{mod\ 4037}#)))
#{tmp\ 4038}#)))
($sc-dispatch
#{tmp\ 4038}#
'(any (any . each-any) any)))))
($sc-dispatch
#{tmp\ 4038}#
'(any any any))))
#{e\ 4033}#)))
(#{global-extend\ 2679}#
'module-ref
'@
(lambda (#{e\ 4068}#)
((lambda (#{tmp\ 4069}#)
((lambda (#{tmp\ 4070}#)
(if (if #{tmp\ 4070}#
(apply (lambda (#{_\ 4071}# #{mod\ 4072}# #{id\ 4073}#)
(if (and-map #{id?\ 2681}# #{mod\ 4072}#)
(#{id?\ 2681}# #{id\ 4073}#)
#f))
#{tmp\ 4070}#)
#f)
(apply (lambda (#{_\ 4075}# #{mod\ 4076}# #{id\ 4077}#)
(values
(syntax->datum #{id\ 4077}#)
(syntax->datum
(cons '#(syntax-object
public
((top)
#(ribcage
#(_ mod id)
#((top) (top) (top))
#("i" "i" "i"))
#(ribcage () () ())
#(ribcage #(e) #((top)) #("i"))
#(ribcage
(lambda-var-list
gen-var
strip
chi-lambda-case
lambda*-formals
chi-simple-lambda
lambda-formals
ellipsis?
chi-void
eval-local-transformer
chi-local-syntax
chi-body
chi-macro
chi-application
chi-expr
chi
chi-top
syntax-type
chi-when-list
chi-install-global
chi-top-sequence
chi-sequence
source-wrap
wrap
bound-id-member?
distinct-bound-ids?
valid-bound-ids?
bound-id=?
free-id=?
id-var-name
same-marks?
join-marks
join-wraps
smart-append
make-binding-wrap
extend-ribcage!
make-empty-ribcage
new-mark
anti-mark
the-anti-mark
top-marked?
top-wrap
empty-wrap
set-ribcage-labels!
set-ribcage-marks!
set-ribcage-symnames!
ribcage-labels
ribcage-marks
ribcage-symnames
ribcage?
make-ribcage
gen-labels
gen-label
make-rename
rename-marks
rename-new
rename-old
subst-rename?
wrap-subst
wrap-marks
make-wrap
id-sym-name&marks
id-sym-name
id?
nonsymbol-id?
global-extend
lookup
macros-only-env
extend-var-env
extend-env
null-env
binding-value
binding-type
make-binding
arg-check
source-annotation
no-source
set-syntax-object-module!
set-syntax-object-wrap!
set-syntax-object-expression!
syntax-object-module
syntax-object-wrap
syntax-object-expression
syntax-object?
make-syntax-object
build-lexical-var
build-letrec
build-named-let
build-let
build-sequence
build-data
build-primref
build-lambda-case
build-case-lambda
build-simple-lambda
build-global-definition
maybe-name-value!
build-global-assignment
build-global-reference
analyze-variable
build-lexical-assignment
build-lexical-reference
build-conditional
build-application
build-void
decorate-source
get-global-definition-hook
put-global-definition-hook
gensym-hook
local-eval-hook
top-level-eval-hook
fx<
fx=
fx-
fx+
*mode*
noexpand)
((top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top))
("i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"))
#(ribcage
(define-structure and-map*)
((top) (top))
("i" "i")))
(hygiene guile))
#{mod\ 4076}#))))
#{tmp\ 4070}#)
(syntax-violation
#f
"source expression failed to match any pattern"
#{tmp\ 4069}#)))
($sc-dispatch
#{tmp\ 4069}#
'(any each-any any))))
#{e\ 4068}#)))
(#{global-extend\ 2679}#
'module-ref
'@@
(lambda (#{e\ 4079}#)
((lambda (#{tmp\ 4080}#)
((lambda (#{tmp\ 4081}#)
(if (if #{tmp\ 4081}#
(apply (lambda (#{_\ 4082}# #{mod\ 4083}# #{id\ 4084}#)
(if (and-map #{id?\ 2681}# #{mod\ 4083}#)
(#{id?\ 2681}# #{id\ 4084}#)
#f))
#{tmp\ 4081}#)
#f)
(apply (lambda (#{_\ 4086}# #{mod\ 4087}# #{id\ 4088}#)
(values
(syntax->datum #{id\ 4088}#)
(syntax->datum
(cons '#(syntax-object
private
((top)
#(ribcage
#(_ mod id)
#((top) (top) (top))
#("i" "i" "i"))
#(ribcage () () ())
#(ribcage #(e) #((top)) #("i"))
#(ribcage
(lambda-var-list
gen-var
strip
chi-lambda-case
lambda*-formals
chi-simple-lambda
lambda-formals
ellipsis?
chi-void
eval-local-transformer
chi-local-syntax
chi-body
chi-macro
chi-application
chi-expr
chi
chi-top
syntax-type
chi-when-list
chi-install-global
chi-top-sequence
chi-sequence
source-wrap
wrap
bound-id-member?
distinct-bound-ids?
valid-bound-ids?
bound-id=?
free-id=?
id-var-name
same-marks?
join-marks
join-wraps
smart-append
make-binding-wrap
extend-ribcage!
make-empty-ribcage
new-mark
anti-mark
the-anti-mark
top-marked?
top-wrap
empty-wrap
set-ribcage-labels!
set-ribcage-marks!
set-ribcage-symnames!
ribcage-labels
ribcage-marks
ribcage-symnames
ribcage?
make-ribcage
gen-labels
gen-label
make-rename
rename-marks
rename-new
rename-old
subst-rename?
wrap-subst
wrap-marks
make-wrap
id-sym-name&marks
id-sym-name
id?
nonsymbol-id?
global-extend
lookup
macros-only-env
extend-var-env
extend-env
null-env
binding-value
binding-type
make-binding
arg-check
source-annotation
no-source
set-syntax-object-module!
set-syntax-object-wrap!
set-syntax-object-expression!
syntax-object-module
syntax-object-wrap
syntax-object-expression
syntax-object?
make-syntax-object
build-lexical-var
build-letrec
build-named-let
build-let
build-sequence
build-data
build-primref
build-lambda-case
build-case-lambda
build-simple-lambda
build-global-definition
maybe-name-value!
build-global-assignment
build-global-reference
analyze-variable
build-lexical-assignment
build-lexical-reference
build-conditional
build-application
build-void
decorate-source
get-global-definition-hook
put-global-definition-hook
gensym-hook
local-eval-hook
top-level-eval-hook
fx<
fx=
fx-
fx+
*mode*
noexpand)
((top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top))
("i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"))
#(ribcage
(define-structure and-map*)
((top) (top))
("i" "i")))
(hygiene guile))
#{mod\ 4087}#))))
#{tmp\ 4081}#)
(syntax-violation
#f
"source expression failed to match any pattern"
#{tmp\ 4080}#)))
($sc-dispatch
#{tmp\ 4080}#
'(any each-any any))))
#{e\ 4079}#)))
(#{global-extend\ 2679}#
'core
'if
(lambda (#{e\ 4090}#
#{r\ 4091}#
#{w\ 4092}#
#{s\ 4093}#
#{mod\ 4094}#)
((lambda (#{tmp\ 4095}#)
((lambda (#{tmp\ 4096}#)
(if #{tmp\ 4096}#
(apply (lambda (#{_\ 4097}# #{test\ 4098}# #{then\ 4099}#)
(#{build-conditional\ 2647}#
#{s\ 4093}#
(#{chi\ 2717}#
#{test\ 4098}#
#{r\ 4091}#
#{w\ 4092}#
#{mod\ 4094}#)
(#{chi\ 2717}#
#{then\ 4099}#
#{r\ 4091}#
#{w\ 4092}#
#{mod\ 4094}#)
(#{build-void\ 2645}# #f)))
#{tmp\ 4096}#)
((lambda (#{tmp\ 4100}#)
(if #{tmp\ 4100}#
(apply (lambda (#{_\ 4101}#
#{test\ 4102}#
#{then\ 4103}#
#{else\ 4104}#)
(#{build-conditional\ 2647}#
#{s\ 4093}#
(#{chi\ 2717}#
#{test\ 4102}#
#{r\ 4091}#
#{w\ 4092}#
#{mod\ 4094}#)
(#{chi\ 2717}#
#{then\ 4103}#
#{r\ 4091}#
#{w\ 4092}#
#{mod\ 4094}#)
(#{chi\ 2717}#
#{else\ 4104}#
#{r\ 4091}#
#{w\ 4092}#
#{mod\ 4094}#)))
#{tmp\ 4100}#)
(syntax-violation
#f
"source expression failed to match any pattern"
#{tmp\ 4095}#)))
($sc-dispatch
#{tmp\ 4095}#
'(any any any any)))))
($sc-dispatch
#{tmp\ 4095}#
'(any any any))))
#{e\ 4090}#)))
(#{global-extend\ 2679}#
'begin
'begin
'())
(#{global-extend\ 2679}#
'define
'define
'())
(#{global-extend\ 2679}#
'define-syntax
'define-syntax
'())
(#{global-extend\ 2679}#
'eval-when
'eval-when
'())
(#{global-extend\ 2679}#
'core
'syntax-case
(letrec ((#{gen-syntax-case\ 4108}#
(lambda (#{x\ 4109}#
#{keys\ 4110}#
#{clauses\ 4111}#
#{r\ 4112}#
#{mod\ 4113}#)
(if (null? #{clauses\ 4111}#)
(#{build-application\ 2646}#
#f
(#{build-primref\ 2658}#
#f
'syntax-violation)
(list (#{build-data\ 2659}# #f #f)
(#{build-data\ 2659}#
#f
"source expression failed to match any pattern")
#{x\ 4109}#))
((lambda (#{tmp\ 4114}#)
((lambda (#{tmp\ 4115}#)
(if #{tmp\ 4115}#
(apply (lambda (#{pat\ 4116}# #{exp\ 4117}#)
(if (if (#{id?\ 2681}# #{pat\ 4116}#)
(and-map
(lambda (#{x\ 4118}#)
(not (#{free-id=?\ 2704}#
#{pat\ 4116}#
#{x\ 4118}#)))
(cons '#(syntax-object
...
((top)
#(ribcage
#(pat exp)
#((top) (top))
#("i" "i"))
#(ribcage () () ())
#(ribcage
#(x
keys
clauses
r
mod)
#((top)
(top)
(top)
(top)
(top))
#("i"
"i"
"i"
"i"
"i"))
#(ribcage
(gen-syntax-case
gen-clause
build-dispatch-call
convert-pattern)
((top)
(top)
(top)
(top))
("i" "i" "i" "i"))
#(ribcage
(lambda-var-list
gen-var
strip
chi-lambda-case
lambda*-formals
chi-simple-lambda
lambda-formals
ellipsis?
chi-void
eval-local-transformer
chi-local-syntax
chi-body
chi-macro
chi-application
chi-expr
chi
chi-top
syntax-type
chi-when-list
chi-install-global
chi-top-sequence
chi-sequence
source-wrap
wrap
bound-id-member?
distinct-bound-ids?
valid-bound-ids?
bound-id=?
free-id=?
id-var-name
same-marks?
join-marks
join-wraps
smart-append
make-binding-wrap
extend-ribcage!
make-empty-ribcage
new-mark
anti-mark
the-anti-mark
top-marked?
top-wrap
empty-wrap
set-ribcage-labels!
set-ribcage-marks!
set-ribcage-symnames!
ribcage-labels
ribcage-marks
ribcage-symnames
ribcage?
make-ribcage
gen-labels
gen-label
make-rename
rename-marks
rename-new
rename-old
subst-rename?
wrap-subst
wrap-marks
make-wrap
id-sym-name&marks
id-sym-name
id?
nonsymbol-id?
global-extend
lookup
macros-only-env
extend-var-env
extend-env
null-env
binding-value
binding-type
make-binding
arg-check
source-annotation
no-source
set-syntax-object-module!
set-syntax-object-wrap!
set-syntax-object-expression!
syntax-object-module
syntax-object-wrap
syntax-object-expression
syntax-object?
make-syntax-object
build-lexical-var
build-letrec
build-named-let
build-let
build-sequence
build-data
build-primref
build-lambda-case
build-case-lambda
build-simple-lambda
build-global-definition
maybe-name-value!
build-global-assignment
build-global-reference
analyze-variable
build-lexical-assignment
build-lexical-reference
build-conditional
build-application
build-void
decorate-source
get-global-definition-hook
put-global-definition-hook
gensym-hook
local-eval-hook
top-level-eval-hook
fx<
fx=
fx-
fx+
*mode*
noexpand)
((top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top))
("i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"))
#(ribcage
(define-structure
and-map*)
((top) (top))
("i" "i")))
(hygiene guile))
#{keys\ 4110}#))
#f)
(let ((#{labels\ 4119}#
(list (#{gen-label\ 2686}#)))
(#{var\ 4120}#
(#{gen-var\ 2731}#
#{pat\ 4116}#)))
(#{build-application\ 2646}#
#f
(#{build-simple-lambda\ 2655}#
#f
(list (syntax->datum
#{pat\ 4116}#))
#f
(list #{var\ 4120}#)
#f
(#{chi\ 2717}#
#{exp\ 4117}#
(#{extend-env\ 2675}#
#{labels\ 4119}#
(list (cons 'syntax
(cons #{var\ 4120}#
0)))
#{r\ 4112}#)
(#{make-binding-wrap\ 2698}#
(list #{pat\ 4116}#)
#{labels\ 4119}#
'(()))
#{mod\ 4113}#))
(list #{x\ 4109}#)))
(#{gen-clause\ 4107}#
#{x\ 4109}#
#{keys\ 4110}#
(cdr #{clauses\ 4111}#)
#{r\ 4112}#
#{pat\ 4116}#
#t
#{exp\ 4117}#
#{mod\ 4113}#)))
#{tmp\ 4115}#)
((lambda (#{tmp\ 4121}#)
(if #{tmp\ 4121}#
(apply (lambda (#{pat\ 4122}#
#{fender\ 4123}#
#{exp\ 4124}#)
(#{gen-clause\ 4107}#
#{x\ 4109}#
#{keys\ 4110}#
(cdr #{clauses\ 4111}#)
#{r\ 4112}#
#{pat\ 4122}#
#{fender\ 4123}#
#{exp\ 4124}#
#{mod\ 4113}#))
#{tmp\ 4121}#)
((lambda (#{_\ 4125}#)
(syntax-violation
'syntax-case
"invalid clause"
(car #{clauses\ 4111}#)))
#{tmp\ 4114}#)))
($sc-dispatch
#{tmp\ 4114}#
'(any any any)))))
($sc-dispatch #{tmp\ 4114}# (quote (any any)))))
(car #{clauses\ 4111}#)))))
(#{gen-clause\ 4107}#
(lambda (#{x\ 4126}#
#{keys\ 4127}#
#{clauses\ 4128}#
#{r\ 4129}#
#{pat\ 4130}#
#{fender\ 4131}#
#{exp\ 4132}#
#{mod\ 4133}#)
(call-with-values
(lambda ()
(#{convert-pattern\ 4105}#
#{pat\ 4130}#
#{keys\ 4127}#))
(lambda (#{p\ 4134}# #{pvars\ 4135}#)
(if (not (#{distinct-bound-ids?\ 2707}#
(map car #{pvars\ 4135}#)))
(syntax-violation
'syntax-case
"duplicate pattern variable"
#{pat\ 4130}#)
(if (not (and-map
(lambda (#{x\ 4136}#)
(not (#{ellipsis?\ 2725}#
(car #{x\ 4136}#))))
#{pvars\ 4135}#))
(syntax-violation
'syntax-case
"misplaced ellipsis"
#{pat\ 4130}#)
(let ((#{y\ 4137}#
(#{gen-var\ 2731}# (quote tmp))))
(#{build-application\ 2646}#
#f
(#{build-simple-lambda\ 2655}#
#f
(list (quote tmp))
#f
(list #{y\ 4137}#)
#f
(let ((#{y\ 4138}#
(#{build-lexical-reference\ 2648}#
'value
#f
'tmp
#{y\ 4137}#)))
(#{build-conditional\ 2647}#
#f
((lambda (#{tmp\ 4139}#)
((lambda (#{tmp\ 4140}#)
(if #{tmp\ 4140}#
(apply (lambda () #{y\ 4138}#)
#{tmp\ 4140}#)
((lambda (#{_\ 4141}#)
(#{build-conditional\ 2647}#
#f
#{y\ 4138}#
(#{build-dispatch-call\ 4106}#
#{pvars\ 4135}#
#{fender\ 4131}#
#{y\ 4138}#
#{r\ 4129}#
#{mod\ 4133}#)
(#{build-data\ 2659}#
#f
#f)))
#{tmp\ 4139}#)))
($sc-dispatch
#{tmp\ 4139}#
'#(atom #t))))
#{fender\ 4131}#)
(#{build-dispatch-call\ 4106}#
#{pvars\ 4135}#
#{exp\ 4132}#
#{y\ 4138}#
#{r\ 4129}#
#{mod\ 4133}#)
(#{gen-syntax-case\ 4108}#
#{x\ 4126}#
#{keys\ 4127}#
#{clauses\ 4128}#
#{r\ 4129}#
#{mod\ 4133}#))))
(list (if (eq? #{p\ 4134}# (quote any))
(#{build-application\ 2646}#
#f
(#{build-primref\ 2658}#
#f
'list)
(list #{x\ 4126}#))
(#{build-application\ 2646}#
#f
(#{build-primref\ 2658}#
#f
'$sc-dispatch)
(list #{x\ 4126}#
(#{build-data\ 2659}#
#f
#{p\ 4134}#)))))))))))))
(#{build-dispatch-call\ 4106}#
(lambda (#{pvars\ 4142}#
#{exp\ 4143}#
#{y\ 4144}#
#{r\ 4145}#
#{mod\ 4146}#)
(let ((#{ids\ 4147}# (map car #{pvars\ 4142}#))
(#{levels\ 4148}# (map cdr #{pvars\ 4142}#)))
(let ((#{labels\ 4149}#
(#{gen-labels\ 2687}# #{ids\ 4147}#))
(#{new-vars\ 4150}#
(map #{gen-var\ 2731}# #{ids\ 4147}#)))
(#{build-application\ 2646}#
#f
(#{build-primref\ 2658}# #f (quote apply))
(list (#{build-simple-lambda\ 2655}#
#f
(map syntax->datum #{ids\ 4147}#)
#f
#{new-vars\ 4150}#
#f
(#{chi\ 2717}#
#{exp\ 4143}#
(#{extend-env\ 2675}#
#{labels\ 4149}#
(map (lambda (#{var\ 4151}#
#{level\ 4152}#)
(cons 'syntax
(cons #{var\ 4151}#
#{level\ 4152}#)))
#{new-vars\ 4150}#
(map cdr #{pvars\ 4142}#))
#{r\ 4145}#)
(#{make-binding-wrap\ 2698}#
#{ids\ 4147}#
#{labels\ 4149}#
'(()))
#{mod\ 4146}#))
#{y\ 4144}#))))))
(#{convert-pattern\ 4105}#
(lambda (#{pattern\ 4153}# #{keys\ 4154}#)
(letrec ((#{cvt\ 4155}#
(lambda (#{p\ 4156}# #{n\ 4157}# #{ids\ 4158}#)
(if (#{id?\ 2681}# #{p\ 4156}#)
(if (#{bound-id-member?\ 2708}#
#{p\ 4156}#
#{keys\ 4154}#)
(values
(vector (quote free-id) #{p\ 4156}#)
#{ids\ 4158}#)
(values
'any
(cons (cons #{p\ 4156}# #{n\ 4157}#)
#{ids\ 4158}#)))
((lambda (#{tmp\ 4159}#)
((lambda (#{tmp\ 4160}#)
(if (if #{tmp\ 4160}#
(apply (lambda (#{x\ 4161}#
#{dots\ 4162}#)
(#{ellipsis?\ 2725}#
#{dots\ 4162}#))
#{tmp\ 4160}#)
#f)
(apply (lambda (#{x\ 4163}#
#{dots\ 4164}#)
(call-with-values
(lambda ()
(#{cvt\ 4155}#
#{x\ 4163}#
(#{fx+\ 2636}#
#{n\ 4157}#
1)
#{ids\ 4158}#))
(lambda (#{p\ 4165}#
#{ids\ 4166}#)
(values
(if (eq? #{p\ 4165}#
'any)
'each-any
(vector
'each
#{p\ 4165}#))
#{ids\ 4166}#))))
#{tmp\ 4160}#)
((lambda (#{tmp\ 4167}#)
(if #{tmp\ 4167}#
(apply (lambda (#{x\ 4168}#
#{y\ 4169}#)
(call-with-values
(lambda ()
(#{cvt\ 4155}#
#{y\ 4169}#
#{n\ 4157}#
#{ids\ 4158}#))
(lambda (#{y\ 4170}#
#{ids\ 4171}#)
(call-with-values
(lambda ()
(#{cvt\ 4155}#
#{x\ 4168}#
#{n\ 4157}#
#{ids\ 4171}#))
(lambda (#{x\ 4172}#
#{ids\ 4173}#)
(values
(cons #{x\ 4172}#
#{y\ 4170}#)
#{ids\ 4173}#))))))
#{tmp\ 4167}#)
((lambda (#{tmp\ 4174}#)
(if #{tmp\ 4174}#
(apply (lambda ()
(values
'()
#{ids\ 4158}#))
#{tmp\ 4174}#)
((lambda (#{tmp\ 4175}#)
(if #{tmp\ 4175}#
(apply (lambda (#{x\ 4176}#)
(call-with-values
(lambda ()
(#{cvt\ 4155}#
#{x\ 4176}#
#{n\ 4157}#
#{ids\ 4158}#))
(lambda (#{p\ 4178}#
#{ids\ 4179}#)
(values
(vector
'vector
#{p\ 4178}#)
#{ids\ 4179}#))))
#{tmp\ 4175}#)
((lambda (#{x\ 4180}#)
(values
(vector
'atom
(#{strip\ 2730}#
#{p\ 4156}#
'(())))
#{ids\ 4158}#))
#{tmp\ 4159}#)))
($sc-dispatch
#{tmp\ 4159}#
'#(vector
each-any)))))
($sc-dispatch
#{tmp\ 4159}#
'()))))
($sc-dispatch
#{tmp\ 4159}#
'(any . any)))))
($sc-dispatch
#{tmp\ 4159}#
'(any any))))
#{p\ 4156}#)))))
(#{cvt\ 4155}# #{pattern\ 4153}# 0 (quote ()))))))
(lambda (#{e\ 4181}#
#{r\ 4182}#
#{w\ 4183}#
#{s\ 4184}#
#{mod\ 4185}#)
(let ((#{e\ 4186}#
(#{source-wrap\ 2710}#
#{e\ 4181}#
#{w\ 4183}#
#{s\ 4184}#
#{mod\ 4185}#)))
((lambda (#{tmp\ 4187}#)
((lambda (#{tmp\ 4188}#)
(if #{tmp\ 4188}#
(apply (lambda (#{_\ 4189}#
#{val\ 4190}#
#{key\ 4191}#
#{m\ 4192}#)
(if (and-map
(lambda (#{x\ 4193}#)
(if (#{id?\ 2681}# #{x\ 4193}#)
(not (#{ellipsis?\ 2725}#
#{x\ 4193}#))
#f))
#{key\ 4191}#)
(let ((#{x\ 4195}#
(#{gen-var\ 2731}# (quote tmp))))
(#{build-application\ 2646}#
#{s\ 4184}#
(#{build-simple-lambda\ 2655}#
#f
(list (quote tmp))
#f
(list #{x\ 4195}#)
#f
(#{gen-syntax-case\ 4108}#
(#{build-lexical-reference\ 2648}#
'value
#f
'tmp
#{x\ 4195}#)
#{key\ 4191}#
#{m\ 4192}#
#{r\ 4182}#
#{mod\ 4185}#))
(list (#{chi\ 2717}#
#{val\ 4190}#
#{r\ 4182}#
'(())
#{mod\ 4185}#))))
(syntax-violation
'syntax-case
"invalid literals list"
#{e\ 4186}#)))
#{tmp\ 4188}#)
(syntax-violation
#f
"source expression failed to match any pattern"
#{tmp\ 4187}#)))
($sc-dispatch
#{tmp\ 4187}#
'(any any each-any . each-any))))
#{e\ 4186}#)))))
(set! sc-expand
(lambda (#{x\ 4198}# . #{rest\ 4199}#)
(if (if (pair? #{x\ 4198}#)
(equal? (car #{x\ 4198}#) #{noexpand\ 2634}#)
#f)
(cadr #{x\ 4198}#)
(let ((#{m\ 4200}#
(if (null? #{rest\ 4199}#)
'e
(car #{rest\ 4199}#)))
(#{esew\ 4201}#
(if (let ((#{t\ 4202}# (null? #{rest\ 4199}#)))
(if #{t\ 4202}#
#{t\ 4202}#
(null? (cdr #{rest\ 4199}#))))
'(eval)
(cadr #{rest\ 4199}#))))
(with-fluid*
#{*mode*\ 2635}#
#{m\ 4200}#
(lambda ()
(#{chi-top\ 2716}#
#{x\ 4198}#
'()
'((top))
#{m\ 4200}#
#{esew\ 4201}#
(cons 'hygiene
(module-name (current-module))))))))))
(set! identifier?
(lambda (#{x\ 4203}#)
(#{nonsymbol-id?\ 2680}# #{x\ 4203}#)))
(set! datum->syntax
(lambda (#{id\ 4204}# #{datum\ 4205}#)
(#{make-syntax-object\ 2664}#
#{datum\ 4205}#
(#{syntax-object-wrap\ 2667}# #{id\ 4204}#)
#f)))
(set! syntax->datum
(lambda (#{x\ 4206}#)
(#{strip\ 2730}# #{x\ 4206}# (quote (())))))
(set! generate-temporaries
(lambda (#{ls\ 4207}#)
(begin
(let ((#{x\ 4208}# #{ls\ 4207}#))
(if (not (list? #{x\ 4208}#))
(syntax-violation
'generate-temporaries
"invalid argument"
#{x\ 4208}#)))
(map (lambda (#{x\ 4209}#)
(#{wrap\ 2709}# (gensym) (quote ((top))) #f))
#{ls\ 4207}#))))
(set! free-identifier=?
(lambda (#{x\ 4210}# #{y\ 4211}#)
(begin
(let ((#{x\ 4212}# #{x\ 4210}#))
(if (not (#{nonsymbol-id?\ 2680}# #{x\ 4212}#))
(syntax-violation
'free-identifier=?
"invalid argument"
#{x\ 4212}#)))
(let ((#{x\ 4213}# #{y\ 4211}#))
(if (not (#{nonsymbol-id?\ 2680}# #{x\ 4213}#))
(syntax-violation
'free-identifier=?
"invalid argument"
#{x\ 4213}#)))
(#{free-id=?\ 2704}# #{x\ 4210}# #{y\ 4211}#))))
(set! bound-identifier=?
(lambda (#{x\ 4214}# #{y\ 4215}#)
(begin
(let ((#{x\ 4216}# #{x\ 4214}#))
(if (not (#{nonsymbol-id?\ 2680}# #{x\ 4216}#))
(syntax-violation
'bound-identifier=?
"invalid argument"
#{x\ 4216}#)))
(let ((#{x\ 4217}# #{y\ 4215}#))
(if (not (#{nonsymbol-id?\ 2680}# #{x\ 4217}#))
(syntax-violation
'bound-identifier=?
"invalid argument"
#{x\ 4217}#)))
(#{bound-id=?\ 2705}# #{x\ 4214}# #{y\ 4215}#))))
(set! syntax-violation
(lambda (#{who\ 4218}#
#{message\ 4219}#
#{form\ 4220}#
.
#{subform\ 4221}#)
(begin
(let ((#{x\ 4222}# #{who\ 4218}#))
(if (not ((lambda (#{x\ 4223}#)
(let ((#{t\ 4224}# (not #{x\ 4223}#)))
(if #{t\ 4224}#
#{t\ 4224}#
(let ((#{t\ 4225}# (string? #{x\ 4223}#)))
(if #{t\ 4225}#
#{t\ 4225}#
(symbol? #{x\ 4223}#))))))
#{x\ 4222}#))
(syntax-violation
'syntax-violation
"invalid argument"
#{x\ 4222}#)))
(let ((#{x\ 4226}# #{message\ 4219}#))
(if (not (string? #{x\ 4226}#))
(syntax-violation
'syntax-violation
"invalid argument"
#{x\ 4226}#)))
(scm-error
'syntax-error
'sc-expand
(string-append
(if #{who\ 4218}# "~a: " "")
"~a "
(if (null? #{subform\ 4221}#)
"in ~a"
"in subform `~s' of `~s'"))
(let ((#{tail\ 4227}#
(cons #{message\ 4219}#
(map (lambda (#{x\ 4228}#)
(#{strip\ 2730}# #{x\ 4228}# (quote (()))))
(append
#{subform\ 4221}#
(list #{form\ 4220}#))))))
(if #{who\ 4218}#
(cons #{who\ 4218}# #{tail\ 4227}#)
#{tail\ 4227}#))
#f))))
(letrec ((#{match\ 4233}#
(lambda (#{e\ 4234}#
#{p\ 4235}#
#{w\ 4236}#
#{r\ 4237}#
#{mod\ 4238}#)
(if (not #{r\ 4237}#)
#f
(if (eq? #{p\ 4235}# (quote any))
(cons (#{wrap\ 2709}#
#{e\ 4234}#
#{w\ 4236}#
#{mod\ 4238}#)
#{r\ 4237}#)
(if (#{syntax-object?\ 2665}# #{e\ 4234}#)
(#{match*\ 4232}#
(#{syntax-object-expression\ 2666}# #{e\ 4234}#)
#{p\ 4235}#
(#{join-wraps\ 2700}#
#{w\ 4236}#
(#{syntax-object-wrap\ 2667}# #{e\ 4234}#))
#{r\ 4237}#
(#{syntax-object-module\ 2668}# #{e\ 4234}#))
(#{match*\ 4232}#
#{e\ 4234}#
#{p\ 4235}#
#{w\ 4236}#
#{r\ 4237}#
#{mod\ 4238}#))))))
(#{match*\ 4232}#
(lambda (#{e\ 4239}#
#{p\ 4240}#
#{w\ 4241}#
#{r\ 4242}#
#{mod\ 4243}#)
(if (null? #{p\ 4240}#)
(if (null? #{e\ 4239}#) #{r\ 4242}# #f)
(if (pair? #{p\ 4240}#)
(if (pair? #{e\ 4239}#)
(#{match\ 4233}#
(car #{e\ 4239}#)
(car #{p\ 4240}#)
#{w\ 4241}#
(#{match\ 4233}#
(cdr #{e\ 4239}#)
(cdr #{p\ 4240}#)
#{w\ 4241}#
#{r\ 4242}#
#{mod\ 4243}#)
#{mod\ 4243}#)
#f)
(if (eq? #{p\ 4240}# (quote each-any))
(let ((#{l\ 4244}#
(#{match-each-any\ 4230}#
#{e\ 4239}#
#{w\ 4241}#
#{mod\ 4243}#)))
(if #{l\ 4244}#
(cons #{l\ 4244}# #{r\ 4242}#)
#f))
(let ((#{atom-key\ 4245}# (vector-ref #{p\ 4240}# 0)))
(if (memv #{atom-key\ 4245}# (quote (each)))
(if (null? #{e\ 4239}#)
(#{match-empty\ 4231}#
(vector-ref #{p\ 4240}# 1)
#{r\ 4242}#)
(let ((#{l\ 4246}#
(#{match-each\ 4229}#
#{e\ 4239}#
(vector-ref #{p\ 4240}# 1)
#{w\ 4241}#
#{mod\ 4243}#)))
(if #{l\ 4246}#
(letrec ((#{collect\ 4247}#
(lambda (#{l\ 4248}#)
(if (null? (car #{l\ 4248}#))
#{r\ 4242}#
(cons (map car #{l\ 4248}#)
(#{collect\ 4247}#
(map cdr
#{l\ 4248}#)))))))
(#{collect\ 4247}# #{l\ 4246}#))
#f)))
(if (memv #{atom-key\ 4245}# (quote (free-id)))
(if (#{id?\ 2681}# #{e\ 4239}#)
(if (#{free-id=?\ 2704}#
(#{wrap\ 2709}#
#{e\ 4239}#
#{w\ 4241}#
#{mod\ 4243}#)
(vector-ref #{p\ 4240}# 1))
#{r\ 4242}#
#f)
#f)
(if (memv #{atom-key\ 4245}# (quote (atom)))
(if (equal?
(vector-ref #{p\ 4240}# 1)
(#{strip\ 2730}#
#{e\ 4239}#
#{w\ 4241}#))
#{r\ 4242}#
#f)
(if (memv #{atom-key\ 4245}# (quote (vector)))
(if (vector? #{e\ 4239}#)
(#{match\ 4233}#
(vector->list #{e\ 4239}#)
(vector-ref #{p\ 4240}# 1)
#{w\ 4241}#
#{r\ 4242}#
#{mod\ 4243}#)
#f)))))))))))
(#{match-empty\ 4231}#
(lambda (#{p\ 4249}# #{r\ 4250}#)
(if (null? #{p\ 4249}#)
#{r\ 4250}#
(if (eq? #{p\ 4249}# (quote any))
(cons (quote ()) #{r\ 4250}#)
(if (pair? #{p\ 4249}#)
(#{match-empty\ 4231}#
(car #{p\ 4249}#)
(#{match-empty\ 4231}#
(cdr #{p\ 4249}#)
#{r\ 4250}#))
(if (eq? #{p\ 4249}# (quote each-any))
(cons (quote ()) #{r\ 4250}#)
(let ((#{atom-key\ 4251}#
(vector-ref #{p\ 4249}# 0)))
(if (memv #{atom-key\ 4251}# (quote (each)))
(#{match-empty\ 4231}#
(vector-ref #{p\ 4249}# 1)
#{r\ 4250}#)
(if (memv #{atom-key\ 4251}#
'(free-id atom))
#{r\ 4250}#
(if (memv #{atom-key\ 4251}# (quote (vector)))
(#{match-empty\ 4231}#
(vector-ref #{p\ 4249}# 1)
#{r\ 4250}#)))))))))))
(#{match-each-any\ 4230}#
(lambda (#{e\ 4252}# #{w\ 4253}# #{mod\ 4254}#)
(if (pair? #{e\ 4252}#)
(let ((#{l\ 4255}#
(#{match-each-any\ 4230}#
(cdr #{e\ 4252}#)
#{w\ 4253}#
#{mod\ 4254}#)))
(if #{l\ 4255}#
(cons (#{wrap\ 2709}#
(car #{e\ 4252}#)
#{w\ 4253}#
#{mod\ 4254}#)
#{l\ 4255}#)
#f))
(if (null? #{e\ 4252}#)
'()
(if (#{syntax-object?\ 2665}# #{e\ 4252}#)
(#{match-each-any\ 4230}#
(#{syntax-object-expression\ 2666}# #{e\ 4252}#)
(#{join-wraps\ 2700}#
#{w\ 4253}#
(#{syntax-object-wrap\ 2667}# #{e\ 4252}#))
#{mod\ 4254}#)
#f)))))
(#{match-each\ 4229}#
(lambda (#{e\ 4256}#
#{p\ 4257}#
#{w\ 4258}#
#{mod\ 4259}#)
(if (pair? #{e\ 4256}#)
(let ((#{first\ 4260}#
(#{match\ 4233}#
(car #{e\ 4256}#)
#{p\ 4257}#
#{w\ 4258}#
'()
#{mod\ 4259}#)))
(if #{first\ 4260}#
(let ((#{rest\ 4261}#
(#{match-each\ 4229}#
(cdr #{e\ 4256}#)
#{p\ 4257}#
#{w\ 4258}#
#{mod\ 4259}#)))
(if #{rest\ 4261}#
(cons #{first\ 4260}# #{rest\ 4261}#)
#f))
#f))
(if (null? #{e\ 4256}#)
'()
(if (#{syntax-object?\ 2665}# #{e\ 4256}#)
(#{match-each\ 4229}#
(#{syntax-object-expression\ 2666}# #{e\ 4256}#)
#{p\ 4257}#
(#{join-wraps\ 2700}#
#{w\ 4258}#
(#{syntax-object-wrap\ 2667}# #{e\ 4256}#))
(#{syntax-object-module\ 2668}# #{e\ 4256}#))
#f))))))
(set! $sc-dispatch
(lambda (#{e\ 4262}# #{p\ 4263}#)
(if (eq? #{p\ 4263}# (quote any))
(list #{e\ 4262}#)
(if (#{syntax-object?\ 2665}# #{e\ 4262}#)
(#{match*\ 4232}#
(#{syntax-object-expression\ 2666}# #{e\ 4262}#)
#{p\ 4263}#
(#{syntax-object-wrap\ 2667}# #{e\ 4262}#)
'()
(#{syntax-object-module\ 2668}# #{e\ 4262}#))
(#{match*\ 4232}#
#{e\ 4262}#
#{p\ 4263}#
'(())
'()
#f)))))))))
(define with-syntax
(make-syncase-macro
'macro
(lambda (#{x\ 4264}#)
((lambda (#{tmp\ 4265}#)
((lambda (#{tmp\ 4266}#)
(if #{tmp\ 4266}#
(apply (lambda (#{_\ 4267}# #{e1\ 4268}# #{e2\ 4269}#)
(cons '#(syntax-object
begin
((top)
#(ribcage
#(_ e1 e2)
#((top) (top) (top))
#("i" "i" "i"))
#(ribcage () () ())
#(ribcage #(x) #((top)) #("i")))
(hygiene guile))
(cons #{e1\ 4268}# #{e2\ 4269}#)))
#{tmp\ 4266}#)
((lambda (#{tmp\ 4271}#)
(if #{tmp\ 4271}#
(apply (lambda (#{_\ 4272}#
#{out\ 4273}#
#{in\ 4274}#
#{e1\ 4275}#
#{e2\ 4276}#)
(list '#(syntax-object
syntax-case
((top)
#(ribcage
#(_ out in e1 e2)
#((top) (top) (top) (top) (top))
#("i" "i" "i" "i" "i"))
#(ribcage () () ())
#(ribcage #(x) #((top)) #("i")))
(hygiene guile))
#{in\ 4274}#
'()
(list #{out\ 4273}#
(cons '#(syntax-object
begin
((top)
#(ribcage
#(_ out in e1 e2)
#((top)
(top)
(top)
(top)
(top))
#("i" "i" "i" "i" "i"))
#(ribcage () () ())
#(ribcage
#(x)
#((top))
#("i")))
(hygiene guile))
(cons #{e1\ 4275}#
#{e2\ 4276}#)))))
#{tmp\ 4271}#)
((lambda (#{tmp\ 4278}#)
(if #{tmp\ 4278}#
(apply (lambda (#{_\ 4279}#
#{out\ 4280}#
#{in\ 4281}#
#{e1\ 4282}#
#{e2\ 4283}#)
(list '#(syntax-object
syntax-case
((top)
#(ribcage
#(_ out in e1 e2)
#((top) (top) (top) (top) (top))
#("i" "i" "i" "i" "i"))
#(ribcage () () ())
#(ribcage #(x) #((top)) #("i")))
(hygiene guile))
(cons '#(syntax-object
list
((top)
#(ribcage
#(_ out in e1 e2)
#((top)
(top)
(top)
(top)
(top))
#("i" "i" "i" "i" "i"))
#(ribcage () () ())
#(ribcage
#(x)
#((top))
#("i")))
(hygiene guile))
#{in\ 4281}#)
'()
(list #{out\ 4280}#
(cons '#(syntax-object
begin
((top)
#(ribcage
#(_ out in e1 e2)
#((top)
(top)
(top)
(top)
(top))
#("i"
"i"
"i"
"i"
"i"))
#(ribcage () () ())
#(ribcage
#(x)
#((top))
#("i")))
(hygiene guile))
(cons #{e1\ 4282}#
#{e2\ 4283}#)))))
#{tmp\ 4278}#)
(syntax-violation
#f
"source expression failed to match any pattern"
#{tmp\ 4265}#)))
($sc-dispatch
#{tmp\ 4265}#
'(any #(each (any any)) any . each-any)))))
($sc-dispatch
#{tmp\ 4265}#
'(any ((any any)) any . each-any)))))
($sc-dispatch
#{tmp\ 4265}#
'(any () any . each-any))))
#{x\ 4264}#))))
(define syntax-rules
(make-syncase-macro
'macro
(lambda (#{x\ 4287}#)
((lambda (#{tmp\ 4288}#)
((lambda (#{tmp\ 4289}#)
(if #{tmp\ 4289}#
(apply (lambda (#{_\ 4290}#
#{k\ 4291}#
#{keyword\ 4292}#
#{pattern\ 4293}#
#{template\ 4294}#)
(list '#(syntax-object
lambda
((top)
#(ribcage
#(_ k keyword pattern template)
#((top) (top) (top) (top) (top))
#("i" "i" "i" "i" "i"))
#(ribcage () () ())
#(ribcage #(x) #((top)) #("i")))
(hygiene guile))
'(#(syntax-object
x
((top)
#(ribcage
#(_ k keyword pattern template)
#((top) (top) (top) (top) (top))
#("i" "i" "i" "i" "i"))
#(ribcage () () ())
#(ribcage #(x) #((top)) #("i")))
(hygiene guile)))
(cons '#(syntax-object
syntax-case
((top)
#(ribcage
#(_ k keyword pattern template)
#((top) (top) (top) (top) (top))
#("i" "i" "i" "i" "i"))
#(ribcage () () ())
#(ribcage #(x) #((top)) #("i")))
(hygiene guile))
(cons '#(syntax-object
x
((top)
#(ribcage
#(_ k keyword pattern template)
#((top) (top) (top) (top) (top))
#("i" "i" "i" "i" "i"))
#(ribcage () () ())
#(ribcage #(x) #((top)) #("i")))
(hygiene guile))
(cons #{k\ 4291}#
(map (lambda (#{tmp\ 4297}#
#{tmp\ 4296}#)
(list (cons '#(syntax-object
dummy
((top)
#(ribcage
#(_
k
keyword
pattern
template)
#((top)
(top)
(top)
(top)
(top))
#("i"
"i"
"i"
"i"
"i"))
#(ribcage
()
()
())
#(ribcage
#(x)
#((top))
#("i")))
(hygiene
guile))
#{tmp\ 4296}#)
(list '#(syntax-object
syntax
((top)
#(ribcage
#(_
k
keyword
pattern
template)
#((top)
(top)
(top)
(top)
(top))
#("i"
"i"
"i"
"i"
"i"))
#(ribcage
()
()
())
#(ribcage
#(x)
#((top))
#("i")))
(hygiene
guile))
#{tmp\ 4297}#)))
#{template\ 4294}#
#{pattern\ 4293}#))))))
#{tmp\ 4289}#)
(syntax-violation
#f
"source expression failed to match any pattern"
#{tmp\ 4288}#)))
($sc-dispatch
#{tmp\ 4288}#
'(any each-any . #(each ((any . any) any))))))
#{x\ 4287}#))))
(define let*
(make-extended-syncase-macro
(module-ref (current-module) (quote let*))
'macro
(lambda (#{x\ 4298}#)
((lambda (#{tmp\ 4299}#)
((lambda (#{tmp\ 4300}#)
(if (if #{tmp\ 4300}#
(apply (lambda (#{let*\ 4301}#
#{x\ 4302}#
#{v\ 4303}#
#{e1\ 4304}#
#{e2\ 4305}#)
(and-map identifier? #{x\ 4302}#))
#{tmp\ 4300}#)
#f)
(apply (lambda (#{let*\ 4307}#
#{x\ 4308}#
#{v\ 4309}#
#{e1\ 4310}#
#{e2\ 4311}#)
(letrec ((#{f\ 4312}#
(lambda (#{bindings\ 4313}#)
(if (null? #{bindings\ 4313}#)
(cons '#(syntax-object
let
((top)
#(ribcage () () ())
#(ribcage
#(f bindings)
#((top) (top))
#("i" "i"))
#(ribcage
#(let* x v e1 e2)
#((top)
(top)
(top)
(top)
(top))
#("i" "i" "i" "i" "i"))
#(ribcage () () ())
#(ribcage
#(x)
#((top))
#("i")))
(hygiene guile))
(cons '()
(cons #{e1\ 4310}#
#{e2\ 4311}#)))
((lambda (#{tmp\ 4317}#)
((lambda (#{tmp\ 4318}#)
(if #{tmp\ 4318}#
(apply (lambda (#{body\ 4319}#
#{binding\ 4320}#)
(list '#(syntax-object
let
((top)
#(ribcage
#(body
binding)
#((top)
(top))
#("i" "i"))
#(ribcage
()
()
())
#(ribcage
#(f
bindings)
#((top)
(top))
#("i" "i"))
#(ribcage
#(let*
x
v
e1
e2)
#((top)
(top)
(top)
(top)
(top))
#("i"
"i"
"i"
"i"
"i"))
#(ribcage
()
()
())
#(ribcage
#(x)
#((top))
#("i")))
(hygiene
guile))
(list #{binding\ 4320}#)
#{body\ 4319}#))
#{tmp\ 4318}#)
(syntax-violation
#f
"source expression failed to match any pattern"
#{tmp\ 4317}#)))
($sc-dispatch
#{tmp\ 4317}#
'(any any))))
(list (#{f\ 4312}#
(cdr #{bindings\ 4313}#))
(car #{bindings\ 4313}#)))))))
(#{f\ 4312}# (map list #{x\ 4308}# #{v\ 4309}#))))
#{tmp\ 4300}#)
(syntax-violation
#f
"source expression failed to match any pattern"
#{tmp\ 4299}#)))
($sc-dispatch
#{tmp\ 4299}#
'(any #(each (any any)) any . each-any))))
#{x\ 4298}#))))
(define do
(make-syncase-macro
'macro
(lambda (#{orig-x\ 4321}#)
((lambda (#{tmp\ 4322}#)
((lambda (#{tmp\ 4323}#)
(if #{tmp\ 4323}#
(apply (lambda (#{_\ 4324}#
#{var\ 4325}#
#{init\ 4326}#
#{step\ 4327}#
#{e0\ 4328}#
#{e1\ 4329}#
#{c\ 4330}#)
((lambda (#{tmp\ 4331}#)
((lambda (#{tmp\ 4332}#)
(if #{tmp\ 4332}#
(apply (lambda (#{step\ 4333}#)
((lambda (#{tmp\ 4334}#)
((lambda (#{tmp\ 4335}#)
(if #{tmp\ 4335}#
(apply (lambda ()
(list '#(syntax-object
let
((top)
#(ribcage
#(step)
#((top))
#("i"))
#(ribcage
#(_
var
init
step
e0
e1
c)
#((top)
(top)
(top)
(top)
(top)
(top)
(top))
#("i"
"i"
"i"
"i"
"i"
"i"
"i"))
#(ribcage
()
()
())
#(ribcage
#(orig-x)
#((top))
#("i")))
(hygiene
guile))
'#(syntax-object
doloop
((top)
#(ribcage
#(step)
#((top))
#("i"))
#(ribcage
#(_
var
init
step
e0
e1
c)
#((top)
(top)
(top)
(top)
(top)
(top)
(top))
#("i"
"i"
"i"
"i"
"i"
"i"
"i"))
#(ribcage
()
()
())
#(ribcage
#(orig-x)
#((top))
#("i")))
(hygiene
guile))
(map list
#{var\ 4325}#
#{init\ 4326}#)
(list '#(syntax-object
if
((top)
#(ribcage
#(step)
#((top))
#("i"))
#(ribcage
#(_
var
init
step
e0
e1
c)
#((top)
(top)
(top)
(top)
(top)
(top)
(top))
#("i"
"i"
"i"
"i"
"i"
"i"
"i"))
#(ribcage
()
()
())
#(ribcage
#(orig-x)
#((top))
#("i")))
(hygiene
guile))
(list '#(syntax-object
not
((top)
#(ribcage
#(step)
#((top))
#("i"))
#(ribcage
#(_
var
init
step
e0
e1
c)
#((top)
(top)
(top)
(top)
(top)
(top)
(top))
#("i"
"i"
"i"
"i"
"i"
"i"
"i"))
#(ribcage
()
()
())
#(ribcage
#(orig-x)
#((top))
#("i")))
(hygiene
guile))
#{e0\ 4328}#)
(cons '#(syntax-object
begin
((top)
#(ribcage
#(step)
#((top))
#("i"))
#(ribcage
#(_
var
init
step
e0
e1
c)
#((top)
(top)
(top)
(top)
(top)
(top)
(top))
#("i"
"i"
"i"
"i"
"i"
"i"
"i"))
#(ribcage
()
()
())
#(ribcage
#(orig-x)
#((top))
#("i")))
(hygiene
guile))
(append
#{c\ 4330}#
(list (cons '#(syntax-object
doloop
((top)
#(ribcage
#(step)
#((top))
#("i"))
#(ribcage
#(_
var
init
step
e0
e1
c)
#((top)
(top)
(top)
(top)
(top)
(top)
(top))
#("i"
"i"
"i"
"i"
"i"
"i"
"i"))
#(ribcage
()
()
())
#(ribcage
#(orig-x)
#((top))
#("i")))
(hygiene
guile))
#{step\ 4333}#)))))))
#{tmp\ 4335}#)
((lambda (#{tmp\ 4340}#)
(if #{tmp\ 4340}#
(apply (lambda (#{e1\ 4341}#
#{e2\ 4342}#)
(list '#(syntax-object
let
((top)
#(ribcage
#(e1
e2)
#((top)
(top))
#("i"
"i"))
#(ribcage
#(step)
#((top))
#("i"))
#(ribcage
#(_
var
init
step
e0
e1
c)
#((top)
(top)
(top)
(top)
(top)
(top)
(top))
#("i"
"i"
"i"
"i"
"i"
"i"
"i"))
#(ribcage
()
()
())
#(ribcage
#(orig-x)
#((top))
#("i")))
(hygiene
guile))
'#(syntax-object
doloop
((top)
#(ribcage
#(e1
e2)
#((top)
(top))
#("i"
"i"))
#(ribcage
#(step)
#((top))
#("i"))
#(ribcage
#(_
var
init
step
e0
e1
c)
#((top)
(top)
(top)
(top)
(top)
(top)
(top))
#("i"
"i"
"i"
"i"
"i"
"i"
"i"))
#(ribcage
()
()
())
#(ribcage
#(orig-x)
#((top))
#("i")))
(hygiene
guile))
(map list
#{var\ 4325}#
#{init\ 4326}#)
(list '#(syntax-object
if
((top)
#(ribcage
#(e1
e2)
#((top)
(top))
#("i"
"i"))
#(ribcage
#(step)
#((top))
#("i"))
#(ribcage
#(_
var
init
step
e0
e1
c)
#((top)
(top)
(top)
(top)
(top)
(top)
(top))
#("i"
"i"
"i"
"i"
"i"
"i"
"i"))
#(ribcage
()
()
())
#(ribcage
#(orig-x)
#((top))
#("i")))
(hygiene
guile))
#{e0\ 4328}#
(cons '#(syntax-object
begin
((top)
#(ribcage
#(e1
e2)
#((top)
(top))
#("i"
"i"))
#(ribcage
#(step)
#((top))
#("i"))
#(ribcage
#(_
var
init
step
e0
e1
c)
#((top)
(top)
(top)
(top)
(top)
(top)
(top))
#("i"
"i"
"i"
"i"
"i"
"i"
"i"))
#(ribcage
()
()
())
#(ribcage
#(orig-x)
#((top))
#("i")))
(hygiene
guile))
(cons #{e1\ 4341}#
#{e2\ 4342}#))
(cons '#(syntax-object
begin
((top)
#(ribcage
#(e1
e2)
#((top)
(top))
#("i"
"i"))
#(ribcage
#(step)
#((top))
#("i"))
#(ribcage
#(_
var
init
step
e0
e1
c)
#((top)
(top)
(top)
(top)
(top)
(top)
(top))
#("i"
"i"
"i"
"i"
"i"
"i"
"i"))
#(ribcage
()
()
())
#(ribcage
#(orig-x)
#((top))
#("i")))
(hygiene
guile))
(append
#{c\ 4330}#
(list (cons '#(syntax-object
doloop
((top)
#(ribcage
#(e1
e2)
#((top)
(top))
#("i"
"i"))
#(ribcage
#(step)
#((top))
#("i"))
#(ribcage
#(_
var
init
step
e0
e1
c)
#((top)
(top)
(top)
(top)
(top)
(top)
(top))
#("i"
"i"
"i"
"i"
"i"
"i"
"i"))
#(ribcage
()
()
())
#(ribcage
#(orig-x)
#((top))
#("i")))
(hygiene
guile))
#{step\ 4333}#)))))))
#{tmp\ 4340}#)
(syntax-violation
#f
"source expression failed to match any pattern"
#{tmp\ 4334}#)))
($sc-dispatch
#{tmp\ 4334}#
'(any . each-any)))))
($sc-dispatch
#{tmp\ 4334}#
'())))
#{e1\ 4329}#))
#{tmp\ 4332}#)
(syntax-violation
#f
"source expression failed to match any pattern"
#{tmp\ 4331}#)))
($sc-dispatch #{tmp\ 4331}# (quote each-any))))
(map (lambda (#{v\ 4349}# #{s\ 4350}#)
((lambda (#{tmp\ 4351}#)
((lambda (#{tmp\ 4352}#)
(if #{tmp\ 4352}#
(apply (lambda () #{v\ 4349}#)
#{tmp\ 4352}#)
((lambda (#{tmp\ 4353}#)
(if #{tmp\ 4353}#
(apply (lambda (#{e\ 4354}#)
#{e\ 4354}#)
#{tmp\ 4353}#)
((lambda (#{_\ 4355}#)
(syntax-violation
'do
"bad step expression"
#{orig-x\ 4321}#
#{s\ 4350}#))
#{tmp\ 4351}#)))
($sc-dispatch
#{tmp\ 4351}#
'(any)))))
($sc-dispatch #{tmp\ 4351}# (quote ()))))
#{s\ 4350}#))
#{var\ 4325}#
#{step\ 4327}#)))
#{tmp\ 4323}#)
(syntax-violation
#f
"source expression failed to match any pattern"
#{tmp\ 4322}#)))
($sc-dispatch
#{tmp\ 4322}#
'(any #(each (any any . any))
(any . each-any)
.
each-any))))
#{orig-x\ 4321}#))))
(define quasiquote
(make-syncase-macro
'macro
(letrec ((#{quasicons\ 4358}#
(lambda (#{x\ 4362}# #{y\ 4363}#)
((lambda (#{tmp\ 4364}#)
((lambda (#{tmp\ 4365}#)
(if #{tmp\ 4365}#
(apply (lambda (#{x\ 4366}# #{y\ 4367}#)
((lambda (#{tmp\ 4368}#)
((lambda (#{tmp\ 4369}#)
(if #{tmp\ 4369}#
(apply (lambda (#{dy\ 4370}#)
((lambda (#{tmp\ 4371}#)
((lambda (#{tmp\ 4372}#)
(if #{tmp\ 4372}#
(apply (lambda (#{dx\ 4373}#)
(list '#(syntax-object
quote
((top)
#(ribcage
#(dx)
#((top))
#("i"))
#(ribcage
#(dy)
#((top))
#("i"))
#(ribcage
#(x
y)
#((top)
(top))
#("i"
"i"))
#(ribcage
()
()
())
#(ribcage
()
()
())
#(ribcage
#(x
y)
#((top)
(top))
#("i"
"i"))
#(ribcage
#(quasicons
quasiappend
quasivector
quasi)
#((top)
(top)
(top)
(top))
#("i"
"i"
"i"
"i")))
(hygiene
guile))
(cons #{dx\ 4373}#
#{dy\ 4370}#)))
#{tmp\ 4372}#)
((lambda (#{_\ 4374}#)
(if (null? #{dy\ 4370}#)
(list '#(syntax-object
list
((top)
#(ribcage
#(_)
#((top))
#("i"))
#(ribcage
#(dy)
#((top))
#("i"))
#(ribcage
#(x
y)
#((top)
(top))
#("i"
"i"))
#(ribcage
()
()
())
#(ribcage
()
()
())
#(ribcage
#(x
y)
#((top)
(top))
#("i"
"i"))
#(ribcage
#(quasicons
quasiappend
quasivector
quasi)
#((top)
(top)
(top)
(top))
#("i"
"i"
"i"
"i")))
(hygiene
guile))
#{x\ 4366}#)
(list '#(syntax-object
cons
((top)
#(ribcage
#(_)
#((top))
#("i"))
#(ribcage
#(dy)
#((top))
#("i"))
#(ribcage
#(x
y)
#((top)
(top))
#("i"
"i"))
#(ribcage
()
()
())
#(ribcage
()
()
())
#(ribcage
#(x
y)
#((top)
(top))
#("i"
"i"))
#(ribcage
#(quasicons
quasiappend
quasivector
quasi)
#((top)
(top)
(top)
(top))
#("i"
"i"
"i"
"i")))
(hygiene
guile))
#{x\ 4366}#
#{y\ 4367}#)))
#{tmp\ 4371}#)))
($sc-dispatch
#{tmp\ 4371}#
'(#(free-id
#(syntax-object
quote
((top)
#(ribcage
#(dy)
#((top))
#("i"))
#(ribcage
#(x y)
#((top)
(top))
#("i" "i"))
#(ribcage
()
()
())
#(ribcage
()
()
())
#(ribcage
#(x y)
#((top)
(top))
#("i" "i"))
#(ribcage
#(quasicons
quasiappend
quasivector
quasi)
#((top)
(top)
(top)
(top))
#("i"
"i"
"i"
"i")))
(hygiene
guile)))
any))))
#{x\ 4366}#))
#{tmp\ 4369}#)
((lambda (#{tmp\ 4375}#)
(if #{tmp\ 4375}#
(apply (lambda (#{stuff\ 4376}#)
(cons '#(syntax-object
list
((top)
#(ribcage
#(stuff)
#((top))
#("i"))
#(ribcage
#(x y)
#((top)
(top))
#("i" "i"))
#(ribcage
()
()
())
#(ribcage
()
()
())
#(ribcage
#(x y)
#((top)
(top))
#("i" "i"))
#(ribcage
#(quasicons
quasiappend
quasivector
quasi)
#((top)
(top)
(top)
(top))
#("i"
"i"
"i"
"i")))
(hygiene
guile))
(cons #{x\ 4366}#
#{stuff\ 4376}#)))
#{tmp\ 4375}#)
((lambda (#{else\ 4377}#)
(list '#(syntax-object
cons
((top)
#(ribcage
#(else)
#((top))
#("i"))
#(ribcage
#(x y)
#((top) (top))
#("i" "i"))
#(ribcage () () ())
#(ribcage () () ())
#(ribcage
#(x y)
#((top) (top))
#("i" "i"))
#(ribcage
#(quasicons
quasiappend
quasivector
quasi)
#((top)
(top)
(top)
(top))
#("i"
"i"
"i"
"i")))
(hygiene guile))
#{x\ 4366}#
#{y\ 4367}#))
#{tmp\ 4368}#)))
($sc-dispatch
#{tmp\ 4368}#
'(#(free-id
#(syntax-object
list
((top)
#(ribcage
#(x y)
#((top) (top))
#("i" "i"))
#(ribcage () () ())
#(ribcage () () ())
#(ribcage
#(x y)
#((top) (top))
#("i" "i"))
#(ribcage
#(quasicons
quasiappend
quasivector
quasi)
#((top)
(top)
(top)
(top))
#("i" "i" "i" "i")))
(hygiene guile)))
.
any)))))
($sc-dispatch
#{tmp\ 4368}#
'(#(free-id
#(syntax-object
quote
((top)
#(ribcage
#(x y)
#((top) (top))
#("i" "i"))
#(ribcage () () ())
#(ribcage () () ())
#(ribcage
#(x y)
#((top) (top))
#("i" "i"))
#(ribcage
#(quasicons
quasiappend
quasivector
quasi)
#((top) (top) (top) (top))
#("i" "i" "i" "i")))
(hygiene guile)))
any))))
#{y\ 4367}#))
#{tmp\ 4365}#)
(syntax-violation
#f
"source expression failed to match any pattern"
#{tmp\ 4364}#)))
($sc-dispatch #{tmp\ 4364}# (quote (any any)))))
(list #{x\ 4362}# #{y\ 4363}#))))
(#{quasiappend\ 4359}#
(lambda (#{x\ 4378}# #{y\ 4379}#)
((lambda (#{tmp\ 4380}#)
((lambda (#{tmp\ 4381}#)
(if #{tmp\ 4381}#
(apply (lambda (#{x\ 4382}# #{y\ 4383}#)
((lambda (#{tmp\ 4384}#)
((lambda (#{tmp\ 4385}#)
(if #{tmp\ 4385}#
(apply (lambda () #{x\ 4382}#)
#{tmp\ 4385}#)
((lambda (#{_\ 4386}#)
(list '#(syntax-object
append
((top)
#(ribcage
#(_)
#((top))
#("i"))
#(ribcage
#(x y)
#((top) (top))
#("i" "i"))
#(ribcage () () ())
#(ribcage () () ())
#(ribcage
#(x y)
#((top) (top))
#("i" "i"))
#(ribcage
#(quasicons
quasiappend
quasivector
quasi)
#((top)
(top)
(top)
(top))
#("i" "i" "i" "i")))
(hygiene guile))
#{x\ 4382}#
#{y\ 4383}#))
#{tmp\ 4384}#)))
($sc-dispatch
#{tmp\ 4384}#
'(#(free-id
#(syntax-object
quote
((top)
#(ribcage
#(x y)
#((top) (top))
#("i" "i"))
#(ribcage () () ())
#(ribcage () () ())
#(ribcage
#(x y)
#((top) (top))
#("i" "i"))
#(ribcage
#(quasicons
quasiappend
quasivector
quasi)
#((top) (top) (top) (top))
#("i" "i" "i" "i")))
(hygiene guile)))
()))))
#{y\ 4383}#))
#{tmp\ 4381}#)
(syntax-violation
#f
"source expression failed to match any pattern"
#{tmp\ 4380}#)))
($sc-dispatch #{tmp\ 4380}# (quote (any any)))))
(list #{x\ 4378}# #{y\ 4379}#))))
(#{quasivector\ 4360}#
(lambda (#{x\ 4387}#)
((lambda (#{tmp\ 4388}#)
((lambda (#{x\ 4389}#)
((lambda (#{tmp\ 4390}#)
((lambda (#{tmp\ 4391}#)
(if #{tmp\ 4391}#
(apply (lambda (#{x\ 4392}#)
(list '#(syntax-object
quote
((top)
#(ribcage
#(x)
#((top))
#("i"))
#(ribcage
#(x)
#((top))
#("i"))
#(ribcage () () ())
#(ribcage () () ())
#(ribcage
#(x)
#((top))
#("i"))
#(ribcage
#(quasicons
quasiappend
quasivector
quasi)
#((top) (top) (top) (top))
#("i" "i" "i" "i")))
(hygiene guile))
(list->vector #{x\ 4392}#)))
#{tmp\ 4391}#)
((lambda (#{tmp\ 4394}#)
(if #{tmp\ 4394}#
(apply (lambda (#{x\ 4395}#)
(cons '#(syntax-object
vector
((top)
#(ribcage
#(x)
#((top))
#("i"))
#(ribcage
#(x)
#((top))
#("i"))
#(ribcage () () ())
#(ribcage () () ())
#(ribcage
#(x)
#((top))
#("i"))
#(ribcage
#(quasicons
quasiappend
quasivector
quasi)
#((top)
(top)
(top)
(top))
#("i" "i" "i" "i")))
(hygiene guile))
#{x\ 4395}#))
#{tmp\ 4394}#)
((lambda (#{_\ 4397}#)
(list '#(syntax-object
list->vector
((top)
#(ribcage
#(_)
#((top))
#("i"))
#(ribcage
#(x)
#((top))
#("i"))
#(ribcage () () ())
#(ribcage () () ())
#(ribcage
#(x)
#((top))
#("i"))
#(ribcage
#(quasicons
quasiappend
quasivector
quasi)
#((top) (top) (top) (top))
#("i" "i" "i" "i")))
(hygiene guile))
#{x\ 4389}#))
#{tmp\ 4390}#)))
($sc-dispatch
#{tmp\ 4390}#
'(#(free-id
#(syntax-object
list
((top)
#(ribcage #(x) #((top)) #("i"))
#(ribcage () () ())
#(ribcage () () ())
#(ribcage #(x) #((top)) #("i"))
#(ribcage
#(quasicons
quasiappend
quasivector
quasi)
#((top) (top) (top) (top))
#("i" "i" "i" "i")))
(hygiene guile)))
.
each-any)))))
($sc-dispatch
#{tmp\ 4390}#
'(#(free-id
#(syntax-object
quote
((top)
#(ribcage #(x) #((top)) #("i"))
#(ribcage () () ())
#(ribcage () () ())
#(ribcage #(x) #((top)) #("i"))
#(ribcage
#(quasicons
quasiappend
quasivector
quasi)
#((top) (top) (top) (top))
#("i" "i" "i" "i")))
(hygiene guile)))
each-any))))
#{x\ 4389}#))
#{tmp\ 4388}#))
#{x\ 4387}#)))
(#{quasi\ 4361}#
(lambda (#{p\ 4398}# #{lev\ 4399}#)
((lambda (#{tmp\ 4400}#)
((lambda (#{tmp\ 4401}#)
(if #{tmp\ 4401}#
(apply (lambda (#{p\ 4402}#)
(if (= #{lev\ 4399}# 0)
#{p\ 4402}#
(#{quasicons\ 4358}#
'(#(syntax-object
quote
((top)
#(ribcage #(p) #((top)) #("i"))
#(ribcage () () ())
#(ribcage
#(p lev)
#((top) (top))
#("i" "i"))
#(ribcage
#(quasicons
quasiappend
quasivector
quasi)
#((top) (top) (top) (top))
#("i" "i" "i" "i")))
(hygiene guile))
#(syntax-object
unquote
((top)
#(ribcage #(p) #((top)) #("i"))
#(ribcage () () ())
#(ribcage
#(p lev)
#((top) (top))
#("i" "i"))
#(ribcage
#(quasicons
quasiappend
quasivector
quasi)
#((top) (top) (top) (top))
#("i" "i" "i" "i")))
(hygiene guile)))
(#{quasi\ 4361}#
(list #{p\ 4402}#)
(- #{lev\ 4399}# 1)))))
#{tmp\ 4401}#)
((lambda (#{tmp\ 4403}#)
(if (if #{tmp\ 4403}#
(apply (lambda (#{args\ 4404}#)
(= #{lev\ 4399}# 0))
#{tmp\ 4403}#)
#f)
(apply (lambda (#{args\ 4405}#)
(syntax-violation
'unquote
"unquote takes exactly one argument"
#{p\ 4398}#
(cons '#(syntax-object
unquote
((top)
#(ribcage
#(args)
#((top))
#("i"))
#(ribcage () () ())
#(ribcage
#(p lev)
#((top) (top))
#("i" "i"))
#(ribcage
#(quasicons
quasiappend
quasivector
quasi)
#((top) (top) (top) (top))
#("i" "i" "i" "i")))
(hygiene guile))
#{args\ 4405}#)))
#{tmp\ 4403}#)
((lambda (#{tmp\ 4406}#)
(if #{tmp\ 4406}#
(apply (lambda (#{p\ 4407}# #{q\ 4408}#)
(if (= #{lev\ 4399}# 0)
(#{quasiappend\ 4359}#
#{p\ 4407}#
(#{quasi\ 4361}#
#{q\ 4408}#
#{lev\ 4399}#))
(#{quasicons\ 4358}#
(#{quasicons\ 4358}#
'(#(syntax-object
quote
((top)
#(ribcage
#(p q)
#((top) (top))
#("i" "i"))
#(ribcage () () ())
#(ribcage
#(p lev)
#((top) (top))
#("i" "i"))
#(ribcage
#(quasicons
quasiappend
quasivector
quasi)
#((top)
(top)
(top)
(top))
#("i" "i" "i" "i")))
(hygiene guile))
#(syntax-object
unquote-splicing
((top)
#(ribcage
#(p q)
#((top) (top))
#("i" "i"))
#(ribcage () () ())
#(ribcage
#(p lev)
#((top) (top))
#("i" "i"))
#(ribcage
#(quasicons
quasiappend
quasivector
quasi)
#((top)
(top)
(top)
(top))
#("i" "i" "i" "i")))
(hygiene guile)))
(#{quasi\ 4361}#
(list #{p\ 4407}#)
(- #{lev\ 4399}# 1)))
(#{quasi\ 4361}#
#{q\ 4408}#
#{lev\ 4399}#))))
#{tmp\ 4406}#)
((lambda (#{tmp\ 4409}#)
(if (if #{tmp\ 4409}#
(apply (lambda (#{args\ 4410}#
#{q\ 4411}#)
(= #{lev\ 4399}# 0))
#{tmp\ 4409}#)
#f)
(apply (lambda (#{args\ 4412}#
#{q\ 4413}#)
(syntax-violation
'unquote-splicing
"unquote-splicing takes exactly one argument"
#{p\ 4398}#
(cons '#(syntax-object
unquote-splicing
((top)
#(ribcage
#(args q)
#((top) (top))
#("i" "i"))
#(ribcage
()
()
())
#(ribcage
#(p lev)
#((top) (top))
#("i" "i"))
#(ribcage
#(quasicons
quasiappend
quasivector
quasi)
#((top)
(top)
(top)
(top))
#("i"
"i"
"i"
"i")))
(hygiene guile))
#{args\ 4412}#)))
#{tmp\ 4409}#)
((lambda (#{tmp\ 4414}#)
(if #{tmp\ 4414}#
(apply (lambda (#{p\ 4415}#)
(#{quasicons\ 4358}#
'(#(syntax-object
quote
((top)
#(ribcage
#(p)
#((top))
#("i"))
#(ribcage
()
()
())
#(ribcage
#(p lev)
#((top) (top))
#("i" "i"))
#(ribcage
#(quasicons
quasiappend
quasivector
quasi)
#((top)
(top)
(top)
(top))
#("i"
"i"
"i"
"i")))
(hygiene guile))
#(syntax-object
quasiquote
((top)
#(ribcage
#(p)
#((top))
#("i"))
#(ribcage
()
()
())
#(ribcage
#(p lev)
#((top) (top))
#("i" "i"))
#(ribcage
#(quasicons
quasiappend
quasivector
quasi)
#((top)
(top)
(top)
(top))
#("i"
"i"
"i"
"i")))
(hygiene guile)))
(#{quasi\ 4361}#
(list #{p\ 4415}#)
(+ #{lev\ 4399}#
1))))
#{tmp\ 4414}#)
((lambda (#{tmp\ 4416}#)
(if #{tmp\ 4416}#
(apply (lambda (#{p\ 4417}#
#{q\ 4418}#)
(#{quasicons\ 4358}#
(#{quasi\ 4361}#
#{p\ 4417}#
#{lev\ 4399}#)
(#{quasi\ 4361}#
#{q\ 4418}#
#{lev\ 4399}#)))
#{tmp\ 4416}#)
((lambda (#{tmp\ 4419}#)
(if #{tmp\ 4419}#
(apply (lambda (#{x\ 4420}#)
(#{quasivector\ 4360}#
(#{quasi\ 4361}#
#{x\ 4420}#
#{lev\ 4399}#)))
#{tmp\ 4419}#)
((lambda (#{p\ 4422}#)
(list '#(syntax-object
quote
((top)
#(ribcage
#(p)
#((top))
#("i"))
#(ribcage
()
()
())
#(ribcage
#(p lev)
#((top)
(top))
#("i"
"i"))
#(ribcage
#(quasicons
quasiappend
quasivector
quasi)
#((top)
(top)
(top)
(top))
#("i"
"i"
"i"
"i")))
(hygiene
guile))
#{p\ 4422}#))
#{tmp\ 4400}#)))
($sc-dispatch
#{tmp\ 4400}#
'#(vector each-any)))))
($sc-dispatch
#{tmp\ 4400}#
'(any . any)))))
($sc-dispatch
#{tmp\ 4400}#
'(#(free-id
#(syntax-object
quasiquote
((top)
#(ribcage () () ())
#(ribcage
#(p lev)
#((top) (top))
#("i" "i"))
#(ribcage
#(quasicons
quasiappend
quasivector
quasi)
#((top) (top) (top) (top))
#("i" "i" "i" "i")))
(hygiene guile)))
any)))))
($sc-dispatch
#{tmp\ 4400}#
'((#(free-id
#(syntax-object
unquote-splicing
((top)
#(ribcage () () ())
#(ribcage
#(p lev)
#((top) (top))
#("i" "i"))
#(ribcage
#(quasicons
quasiappend
quasivector
quasi)
#((top) (top) (top) (top))
#("i" "i" "i" "i")))
(hygiene guile)))
.
any)
.
any)))))
($sc-dispatch
#{tmp\ 4400}#
'((#(free-id
#(syntax-object
unquote-splicing
((top)
#(ribcage () () ())
#(ribcage
#(p lev)
#((top) (top))
#("i" "i"))
#(ribcage
#(quasicons
quasiappend
quasivector
quasi)
#((top) (top) (top) (top))
#("i" "i" "i" "i")))
(hygiene guile)))
any)
.
any)))))
($sc-dispatch
#{tmp\ 4400}#
'(#(free-id
#(syntax-object
unquote
((top)
#(ribcage () () ())
#(ribcage
#(p lev)
#((top) (top))
#("i" "i"))
#(ribcage
#(quasicons quasiappend quasivector quasi)
#((top) (top) (top) (top))
#("i" "i" "i" "i")))
(hygiene guile)))
.
any)))))
($sc-dispatch
#{tmp\ 4400}#
'(#(free-id
#(syntax-object
unquote
((top)
#(ribcage () () ())
#(ribcage #(p lev) #((top) (top)) #("i" "i"))
#(ribcage
#(quasicons quasiappend quasivector quasi)
#((top) (top) (top) (top))
#("i" "i" "i" "i")))
(hygiene guile)))
any))))
#{p\ 4398}#))))
(lambda (#{x\ 4423}#)
((lambda (#{tmp\ 4424}#)
((lambda (#{tmp\ 4425}#)
(if #{tmp\ 4425}#
(apply (lambda (#{_\ 4426}# #{e\ 4427}#)
(#{quasi\ 4361}# #{e\ 4427}# 0))
#{tmp\ 4425}#)
(syntax-violation
#f
"source expression failed to match any pattern"
#{tmp\ 4424}#)))
($sc-dispatch #{tmp\ 4424}# (quote (any any)))))
#{x\ 4423}#)))))
(define include
(make-syncase-macro
'macro
(lambda (#{x\ 4428}#)
(letrec ((#{read-file\ 4429}#
(lambda (#{fn\ 4430}# #{k\ 4431}#)
(let ((#{p\ 4432}# (open-input-file #{fn\ 4430}#)))
(letrec ((#{f\ 4433}#
(lambda (#{x\ 4434}#)
(if (eof-object? #{x\ 4434}#)
(begin
(close-input-port #{p\ 4432}#)
'())
(cons (datum->syntax
#{k\ 4431}#
#{x\ 4434}#)
(#{f\ 4433}# (read #{p\ 4432}#)))))))
(#{f\ 4433}# (read #{p\ 4432}#)))))))
((lambda (#{tmp\ 4435}#)
((lambda (#{tmp\ 4436}#)
(if #{tmp\ 4436}#
(apply (lambda (#{k\ 4437}# #{filename\ 4438}#)
(let ((#{fn\ 4439}#
(syntax->datum #{filename\ 4438}#)))
((lambda (#{tmp\ 4440}#)
((lambda (#{tmp\ 4441}#)
(if #{tmp\ 4441}#
(apply (lambda (#{exp\ 4442}#)
(cons '#(syntax-object
begin
((top)
#(ribcage
#(exp)
#((top))
#("i"))
#(ribcage () () ())
#(ribcage () () ())
#(ribcage
#(fn)
#((top))
#("i"))
#(ribcage
#(k filename)
#((top) (top))
#("i" "i"))
#(ribcage
(read-file)
((top))
("i"))
#(ribcage
#(x)
#((top))
#("i")))
(hygiene guile))
#{exp\ 4442}#))
#{tmp\ 4441}#)
(syntax-violation
#f
"source expression failed to match any pattern"
#{tmp\ 4440}#)))
($sc-dispatch #{tmp\ 4440}# (quote each-any))))
(#{read-file\ 4429}# #{fn\ 4439}# #{k\ 4437}#))))
#{tmp\ 4436}#)
(syntax-violation
#f
"source expression failed to match any pattern"
#{tmp\ 4435}#)))
($sc-dispatch #{tmp\ 4435}# (quote (any any)))))
#{x\ 4428}#)))))
(define include-from-path
(make-syncase-macro
'macro
(lambda (#{x\ 4444}#)
((lambda (#{tmp\ 4445}#)
((lambda (#{tmp\ 4446}#)
(if #{tmp\ 4446}#
(apply (lambda (#{k\ 4447}# #{filename\ 4448}#)
(let ((#{fn\ 4449}# (syntax->datum #{filename\ 4448}#)))
((lambda (#{tmp\ 4450}#)
((lambda (#{fn\ 4451}#)
(list '#(syntax-object
include
((top)
#(ribcage #(fn) #((top)) #("i"))
#(ribcage () () ())
#(ribcage () () ())
#(ribcage #(fn) #((top)) #("i"))
#(ribcage
#(k filename)
#((top) (top))
#("i" "i"))
#(ribcage () () ())
#(ribcage #(x) #((top)) #("i")))
(hygiene guile))
#{fn\ 4451}#))
#{tmp\ 4450}#))
(let ((#{t\ 4452}# (%search-load-path #{fn\ 4449}#)))
(if #{t\ 4452}#
#{t\ 4452}#
(syntax-violation
'include-from-path
"file not found in path"
#{x\ 4444}#
#{filename\ 4448}#))))))
#{tmp\ 4446}#)
(syntax-violation
#f
"source expression failed to match any pattern"
#{tmp\ 4445}#)))
($sc-dispatch #{tmp\ 4445}# (quote (any any)))))
#{x\ 4444}#))))
(define unquote
(make-syncase-macro
'macro
(lambda (#{x\ 4453}#)
((lambda (#{tmp\ 4454}#)
((lambda (#{tmp\ 4455}#)
(if #{tmp\ 4455}#
(apply (lambda (#{_\ 4456}# #{e\ 4457}#)
(syntax-violation
'unquote
"expression not valid outside of quasiquote"
#{x\ 4453}#))
#{tmp\ 4455}#)
(syntax-violation
#f
"source expression failed to match any pattern"
#{tmp\ 4454}#)))
($sc-dispatch #{tmp\ 4454}# (quote (any any)))))
#{x\ 4453}#))))
(define unquote-splicing
(make-syncase-macro
'macro
(lambda (#{x\ 4458}#)
((lambda (#{tmp\ 4459}#)
((lambda (#{tmp\ 4460}#)
(if #{tmp\ 4460}#
(apply (lambda (#{_\ 4461}# #{e\ 4462}#)
(syntax-violation
'unquote-splicing
"expression not valid outside of quasiquote"
#{x\ 4458}#))
#{tmp\ 4460}#)
(syntax-violation
#f
"source expression failed to match any pattern"
#{tmp\ 4459}#)))
($sc-dispatch #{tmp\ 4459}# (quote (any any)))))
#{x\ 4458}#))))
(define case
(make-syncase-macro
'macro
(lambda (#{x\ 4463}#)
((lambda (#{tmp\ 4464}#)
((lambda (#{tmp\ 4465}#)
(if #{tmp\ 4465}#
(apply (lambda (#{_\ 4466}#
#{e\ 4467}#
#{m1\ 4468}#
#{m2\ 4469}#)
((lambda (#{tmp\ 4470}#)
((lambda (#{body\ 4471}#)
(list '#(syntax-object
let
((top)
#(ribcage #(body) #((top)) #("i"))
#(ribcage
#(_ e m1 m2)
#((top) (top) (top) (top))
#("i" "i" "i" "i"))
#(ribcage () () ())
#(ribcage #(x) #((top)) #("i")))
(hygiene guile))
(list (list '#(syntax-object
t
((top)
#(ribcage
#(body)
#((top))
#("i"))
#(ribcage
#(_ e m1 m2)
#((top) (top) (top) (top))
#("i" "i" "i" "i"))
#(ribcage () () ())
#(ribcage
#(x)
#((top))
#("i")))
(hygiene guile))
#{e\ 4467}#))
#{body\ 4471}#))
#{tmp\ 4470}#))
(letrec ((#{f\ 4472}#
(lambda (#{clause\ 4473}# #{clauses\ 4474}#)
(if (null? #{clauses\ 4474}#)
((lambda (#{tmp\ 4476}#)
((lambda (#{tmp\ 4477}#)
(if #{tmp\ 4477}#
(apply (lambda (#{e1\ 4478}#
#{e2\ 4479}#)
(cons '#(syntax-object
begin
((top)
#(ribcage
#(e1 e2)
#((top)
(top))
#("i" "i"))
#(ribcage
()
()
())
#(ribcage
#(f
clause
clauses)
#((top)
(top)
(top))
#("i"
"i"
"i"))
#(ribcage
#(_
e
m1
m2)
#((top)
(top)
(top)
(top))
#("i"
"i"
"i"
"i"))
#(ribcage
()
()
())
#(ribcage
#(x)
#((top))
#("i")))
(hygiene
guile))
(cons #{e1\ 4478}#
#{e2\ 4479}#)))
#{tmp\ 4477}#)
((lambda (#{tmp\ 4481}#)
(if #{tmp\ 4481}#
(apply (lambda (#{k\ 4482}#
#{e1\ 4483}#
#{e2\ 4484}#)
(list '#(syntax-object
if
((top)
#(ribcage
#(k
e1
e2)
#((top)
(top)
(top))
#("i"
"i"
"i"))
#(ribcage
()
()
())
#(ribcage
#(f
clause
clauses)
#((top)
(top)
(top))
#("i"
"i"
"i"))
#(ribcage
#(_
e
m1
m2)
#((top)
(top)
(top)
(top))
#("i"
"i"
"i"
"i"))
#(ribcage
()
()
())
#(ribcage
#(x)
#((top))
#("i")))
(hygiene
guile))
(list '#(syntax-object
memv
((top)
#(ribcage
#(k
e1
e2)
#((top)
(top)
(top))
#("i"
"i"
"i"))
#(ribcage
()
()
())
#(ribcage
#(f
clause
clauses)
#((top)
(top)
(top))
#("i"
"i"
"i"))
#(ribcage
#(_
e
m1
m2)
#((top)
(top)
(top)
(top))
#("i"
"i"
"i"
"i"))
#(ribcage
()
()
())
#(ribcage
#(x)
#((top))
#("i")))
(hygiene
guile))
'#(syntax-object
t
((top)
#(ribcage
#(k
e1
e2)
#((top)
(top)
(top))
#("i"
"i"
"i"))
#(ribcage
()
()
())
#(ribcage
#(f
clause
clauses)
#((top)
(top)
(top))
#("i"
"i"
"i"))
#(ribcage
#(_
e
m1
m2)
#((top)
(top)
(top)
(top))
#("i"
"i"
"i"
"i"))
#(ribcage
()
()
())
#(ribcage
#(x)
#((top))
#("i")))
(hygiene
guile))
(list '#(syntax-object
quote
((top)
#(ribcage
#(k
e1
e2)
#((top)
(top)
(top))
#("i"
"i"
"i"))
#(ribcage
()
()
())
#(ribcage
#(f
clause
clauses)
#((top)
(top)
(top))
#("i"
"i"
"i"))
#(ribcage
#(_
e
m1
m2)
#((top)
(top)
(top)
(top))
#("i"
"i"
"i"
"i"))
#(ribcage
()
()
())
#(ribcage
#(x)
#((top))
#("i")))
(hygiene
guile))
#{k\ 4482}#))
(cons '#(syntax-object
begin
((top)
#(ribcage
#(k
e1
e2)
#((top)
(top)
(top))
#("i"
"i"
"i"))
#(ribcage
()
()
())
#(ribcage
#(f
clause
clauses)
#((top)
(top)
(top))
#("i"
"i"
"i"))
#(ribcage
#(_
e
m1
m2)
#((top)
(top)
(top)
(top))
#("i"
"i"
"i"
"i"))
#(ribcage
()
()
())
#(ribcage
#(x)
#((top))
#("i")))
(hygiene
guile))
(cons #{e1\ 4483}#
#{e2\ 4484}#))))
#{tmp\ 4481}#)
((lambda (#{_\ 4487}#)
(syntax-violation
'case
"bad clause"
#{x\ 4463}#
#{clause\ 4473}#))
#{tmp\ 4476}#)))
($sc-dispatch
#{tmp\ 4476}#
'(each-any
any
.
each-any)))))
($sc-dispatch
#{tmp\ 4476}#
'(#(free-id
#(syntax-object
else
((top)
#(ribcage () () ())
#(ribcage
#(f clause clauses)
#((top) (top) (top))
#("i" "i" "i"))
#(ribcage
#(_ e m1 m2)
#((top)
(top)
(top)
(top))
#("i" "i" "i" "i"))
#(ribcage () () ())
#(ribcage
#(x)
#((top))
#("i")))
(hygiene guile)))
any
.
each-any))))
#{clause\ 4473}#)
((lambda (#{tmp\ 4488}#)
((lambda (#{rest\ 4489}#)
((lambda (#{tmp\ 4490}#)
((lambda (#{tmp\ 4491}#)
(if #{tmp\ 4491}#
(apply (lambda (#{k\ 4492}#
#{e1\ 4493}#
#{e2\ 4494}#)
(list '#(syntax-object
if
((top)
#(ribcage
#(k
e1
e2)
#((top)
(top)
(top))
#("i"
"i"
"i"))
#(ribcage
#(rest)
#((top))
#("i"))
#(ribcage
()
()
())
#(ribcage
#(f
clause
clauses)
#((top)
(top)
(top))
#("i"
"i"
"i"))
#(ribcage
#(_
e
m1
m2)
#((top)
(top)
(top)
(top))
#("i"
"i"
"i"
"i"))
#(ribcage
()
()
())
#(ribcage
#(x)
#((top))
#("i")))
(hygiene
guile))
(list '#(syntax-object
memv
((top)
#(ribcage
#(k
e1
e2)
#((top)
(top)
(top))
#("i"
"i"
"i"))
#(ribcage
#(rest)
#((top))
#("i"))
#(ribcage
()
()
())
#(ribcage
#(f
clause
clauses)
#((top)
(top)
(top))
#("i"
"i"
"i"))
#(ribcage
#(_
e
m1
m2)
#((top)
(top)
(top)
(top))
#("i"
"i"
"i"
"i"))
#(ribcage
()
()
())
#(ribcage
#(x)
#((top))
#("i")))
(hygiene
guile))
'#(syntax-object
t
((top)
#(ribcage
#(k
e1
e2)
#((top)
(top)
(top))
#("i"
"i"
"i"))
#(ribcage
#(rest)
#((top))
#("i"))
#(ribcage
()
()
())
#(ribcage
#(f
clause
clauses)
#((top)
(top)
(top))
#("i"
"i"
"i"))
#(ribcage
#(_
e
m1
m2)
#((top)
(top)
(top)
(top))
#("i"
"i"
"i"
"i"))
#(ribcage
()
()
())
#(ribcage
#(x)
#((top))
#("i")))
(hygiene
guile))
(list '#(syntax-object
quote
((top)
#(ribcage
#(k
e1
e2)
#((top)
(top)
(top))
#("i"
"i"
"i"))
#(ribcage
#(rest)
#((top))
#("i"))
#(ribcage
()
()
())
#(ribcage
#(f
clause
clauses)
#((top)
(top)
(top))
#("i"
"i"
"i"))
#(ribcage
#(_
e
m1
m2)
#((top)
(top)
(top)
(top))
#("i"
"i"
"i"
"i"))
#(ribcage
()
()
())
#(ribcage
#(x)
#((top))
#("i")))
(hygiene
guile))
#{k\ 4492}#))
(cons '#(syntax-object
begin
((top)
#(ribcage
#(k
e1
e2)
#((top)
(top)
(top))
#("i"
"i"
"i"))
#(ribcage
#(rest)
#((top))
#("i"))
#(ribcage
()
()
())
#(ribcage
#(f
clause
clauses)
#((top)
(top)
(top))
#("i"
"i"
"i"))
#(ribcage
#(_
e
m1
m2)
#((top)
(top)
(top)
(top))
#("i"
"i"
"i"
"i"))
#(ribcage
()
()
())
#(ribcage
#(x)
#((top))
#("i")))
(hygiene
guile))
(cons #{e1\ 4493}#
#{e2\ 4494}#))
#{rest\ 4489}#))
#{tmp\ 4491}#)
((lambda (#{_\ 4497}#)
(syntax-violation
'case
"bad clause"
#{x\ 4463}#
#{clause\ 4473}#))
#{tmp\ 4490}#)))
($sc-dispatch
#{tmp\ 4490}#
'(each-any
any
.
each-any))))
#{clause\ 4473}#))
#{tmp\ 4488}#))
(#{f\ 4472}#
(car #{clauses\ 4474}#)
(cdr #{clauses\ 4474}#)))))))
(#{f\ 4472}# #{m1\ 4468}# #{m2\ 4469}#))))
#{tmp\ 4465}#)
(syntax-violation
#f
"source expression failed to match any pattern"
#{tmp\ 4464}#)))
($sc-dispatch
#{tmp\ 4464}#
'(any any any . each-any))))
#{x\ 4463}#))))
(define identifier-syntax
(make-syncase-macro
'macro
(lambda (#{x\ 4498}#)
((lambda (#{tmp\ 4499}#)
((lambda (#{tmp\ 4500}#)
(if #{tmp\ 4500}#
(apply (lambda (#{_\ 4501}# #{e\ 4502}#)
(list '#(syntax-object
lambda
((top)
#(ribcage #(_ e) #((top) (top)) #("i" "i"))
#(ribcage () () ())
#(ribcage #(x) #((top)) #("i")))
(hygiene guile))
'(#(syntax-object
x
((top)
#(ribcage #(_ e) #((top) (top)) #("i" "i"))
#(ribcage () () ())
#(ribcage #(x) #((top)) #("i")))
(hygiene guile)))
(list '#(syntax-object
syntax-case
((top)
#(ribcage
#(_ e)
#((top) (top))
#("i" "i"))
#(ribcage () () ())
#(ribcage #(x) #((top)) #("i")))
(hygiene guile))
'#(syntax-object
x
((top)
#(ribcage
#(_ e)
#((top) (top))
#("i" "i"))
#(ribcage () () ())
#(ribcage #(x) #((top)) #("i")))
(hygiene guile))
'()
(list '#(syntax-object
id
((top)
#(ribcage
#(_ e)
#((top) (top))
#("i" "i"))
#(ribcage () () ())
#(ribcage #(x) #((top)) #("i")))
(hygiene guile))
'(#(syntax-object
identifier?
((top)
#(ribcage
#(_ e)
#((top) (top))
#("i" "i"))
#(ribcage () () ())
#(ribcage #(x) #((top)) #("i")))
(hygiene guile))
(#(syntax-object
syntax
((top)
#(ribcage
#(_ e)
#((top) (top))
#("i" "i"))
#(ribcage () () ())
#(ribcage #(x) #((top)) #("i")))
(hygiene guile))
#(syntax-object
id
((top)
#(ribcage
#(_ e)
#((top) (top))
#("i" "i"))
#(ribcage () () ())
#(ribcage #(x) #((top)) #("i")))
(hygiene guile))))
(list '#(syntax-object
syntax
((top)
#(ribcage
#(_ e)
#((top) (top))
#("i" "i"))
#(ribcage () () ())
#(ribcage
#(x)
#((top))
#("i")))
(hygiene guile))
#{e\ 4502}#))
(list (cons #{_\ 4501}#
'(#(syntax-object
x
((top)
#(ribcage
#(_ e)
#((top) (top))
#("i" "i"))
#(ribcage () () ())
#(ribcage
#(x)
#((top))
#("i")))
(hygiene guile))
#(syntax-object
...
((top)
#(ribcage
#(_ e)
#((top) (top))
#("i" "i"))
#(ribcage () () ())
#(ribcage
#(x)
#((top))
#("i")))
(hygiene guile))))
(list '#(syntax-object
syntax
((top)
#(ribcage
#(_ e)
#((top) (top))
#("i" "i"))
#(ribcage () () ())
#(ribcage
#(x)
#((top))
#("i")))
(hygiene guile))
(cons #{e\ 4502}#
'(#(syntax-object
x
((top)
#(ribcage
#(_ e)
#((top) (top))
#("i" "i"))
#(ribcage () () ())
#(ribcage
#(x)
#((top))
#("i")))
(hygiene guile))
#(syntax-object
...
((top)
#(ribcage
#(_ e)
#((top) (top))
#("i" "i"))
#(ribcage () () ())
#(ribcage
#(x)
#((top))
#("i")))
(hygiene
guile)))))))))
#{tmp\ 4500}#)
(syntax-violation
#f
"source expression failed to match any pattern"
#{tmp\ 4499}#)))
($sc-dispatch #{tmp\ 4499}# (quote (any any)))))
#{x\ 4498}#))))
(define define*
(make-syncase-macro
'macro
(lambda (#{x\ 4503}#)
((lambda (#{tmp\ 4504}#)
((lambda (#{tmp\ 4505}#)
(if #{tmp\ 4505}#
(apply (lambda (#{dummy\ 4506}#
#{id\ 4507}#
#{args\ 4508}#
#{b0\ 4509}#
#{b1\ 4510}#)
(list '#(syntax-object
define
((top)
#(ribcage
#(dummy id args b0 b1)
#(("m" top) (top) (top) (top) (top))
#("i" "i" "i" "i" "i"))
#(ribcage () () ())
#(ribcage #(x) #(("m" top)) #("i")))
(hygiene guile))
#{id\ 4507}#
(cons '#(syntax-object
lambda*
((top)
#(ribcage
#(dummy id args b0 b1)
#(("m" top) (top) (top) (top) (top))
#("i" "i" "i" "i" "i"))
#(ribcage () () ())
#(ribcage #(x) #(("m" top)) #("i")))
(hygiene guile))
(cons #{args\ 4508}#
(cons #{b0\ 4509}# #{b1\ 4510}#)))))
#{tmp\ 4505}#)
(syntax-violation
#f
"source expression failed to match any pattern"
#{tmp\ 4504}#)))
($sc-dispatch
#{tmp\ 4504}#
'(any (any . any) any . each-any))))
#{x\ 4503}#))))