[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] GNU Guile branch, stable-2.0, updated. v2.0.5-72-g1af6d2
From: |
Mark H Weaver |
Subject: |
[Guile-commits] GNU Guile branch, stable-2.0, updated. v2.0.5-72-g1af6d2a |
Date: |
Sat, 03 Mar 2012 23:09:28 +0000 |
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Guile".
http://git.savannah.gnu.org/cgit/guile.git/commit/?id=1af6d2a717f499564fbbc297c79e00ac14b0dcf9
The branch, stable-2.0 has been updated
via 1af6d2a717f499564fbbc297c79e00ac14b0dcf9 (commit)
via 72ee0ef71b9a0514874976cdcf3ea9d5333db4b1 (commit)
via 8c43b28a1136aba186fd211b0f6037cf0c35f006 (commit)
from 9120f130a8ccd237d31806f381a1a1a25f5d930a (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 1af6d2a717f499564fbbc297c79e00ac14b0dcf9
Author: Mark H Weaver <address@hidden>
Date: Fri Mar 2 18:40:43 2012 -0500
Minimize size of embedded syntax objects in psyntax-pp.scm
* module/ice-9/compile-psyntax.scm: Minimize syntax object literals
embedded in psyntax-pp.scm.
* module/ice-9/psyntax.scm: Rename a few variables so that syntax
objects embedded in macros have no lexical bindings, so that their
minimized syntax objects will have no embedded labels. These labels
were the last remaining gensym counters in psyntax-pp.scm.
* module/ice-9/psyntax-pp.scm: Regenerate. It is now less than one
quarter of its previous size! More importantly, this file no longer
contains any gensym counters, which means that in the future, local
changes to psyntax.scm will usually result in only local changes to
psyntax-pp.scm.
commit 72ee0ef71b9a0514874976cdcf3ea9d5333db4b1
Author: Mark H Weaver <address@hidden>
Date: Thu Mar 1 17:56:14 2012 -0500
tree-il->scheme improvements
* module/language/tree-il.scm (tree-il->scheme): New implementation that
simply calls 'decompile-tree-il'.
* module/language/scheme/decompile-tree-il.scm (choose-output-names,
do-decompile): New internal procedures.
(decompile-tree-il): New and improved implementation. Print source
identifiers where possible, otherwise add minimal numeric suffixes.
Previously we printed the gensyms. Avoid 'begin' in contexts that
provide an implicit 'begin'. Produce 'cond', 'case', 'and', 'or',
'let*', named let, and internal defines where appropriate. Recognize
keyword arguments in 'opts' to disable the production of these derived
syntactic forms, and to optionally strip numeric suffixes from
variable names.
* module/ice-9/compile-psyntax.scm: Disable partial evaluation, letrec
fixing, and primitive expansion when producing psyntax-pp.scm, in
order to produce output as close to the original source as practical.
Disable production of derived syntactic forms as needed during
bootstrap. Strip numeric suffixes from variable names. Adjust
pretty-printing parameters.
* module/ice-9/psyntax-pp.scm: Regenerate. It is now less than half
of the original size.
commit 8c43b28a1136aba186fd211b0f6037cf0c35f006
Author: Mark H Weaver <address@hidden>
Date: Sun Feb 26 15:58:30 2012 -0500
pretty-print: allow max-expr-width to be set; recognize more keywords
* module/ice-9/pretty-print.scm (pretty-print): Add new keyword argument
'#:max-expr-width'.
(generic-write): Add new argument 'max-expr-width'. Previously this
was internally defined to the constant value 50.
-----------------------------------------------------------------------
Summary of changes:
module/ice-9/compile-psyntax.scm | 80 +-
module/ice-9/pretty-print.scm | 16 +-
module/ice-9/psyntax-pp.scm |29904 +++-----------------------
module/ice-9/psyntax.scm | 8 +-
module/language/scheme/decompile-tree-il.scm | 795 +-
module/language/tree-il.scm | 155 +-
6 files changed, 4022 insertions(+), 26936 deletions(-)
diff --git a/module/ice-9/compile-psyntax.scm b/module/ice-9/compile-psyntax.scm
index 3d803e9..201ae39 100644
--- a/module/ice-9/compile-psyntax.scm
+++ b/module/ice-9/compile-psyntax.scm
@@ -17,11 +17,70 @@
;;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
USA
(use-modules (language tree-il)
- (language tree-il optimize)
+ (language tree-il primitives)
(language tree-il canonicalize)
+ (srfi srfi-1)
(ice-9 pretty-print)
(system syntax))
+;; Minimize a syntax-object such that it can no longer be used as the
+;; first argument to 'datum->syntax', but is otherwise equivalent.
+(define (squeeze-syntax-object! syn)
+ (define (ensure-list x) (if (vector? x) (vector->list x) x))
+ (let ((x (vector-ref syn 1))
+ (wrap (vector-ref syn 2))
+ (mod (vector-ref syn 3)))
+ (let ((marks (car wrap))
+ (subst (cdr wrap)))
+ (define (set-wrap! marks subst)
+ (vector-set! syn 2 (cons marks subst)))
+ (cond
+ ((symbol? x)
+ (let loop ((marks marks) (subst subst))
+ (cond
+ ((null? subst) (set-wrap! marks subst) syn)
+ ((eq? 'shift (car subst)) (loop (cdr marks) (cdr subst)))
+ ((find (lambda (entry) (and (eq? x (car entry))
+ (equal? marks (cadr entry))))
+ (apply map list (map ensure-list
+ (cdr (vector->list (car subst))))))
+ => (lambda (entry)
+ (set-wrap! marks
+ (list (list->vector
+ (cons 'ribcage
+ (map vector entry)))))
+ syn))
+ (else (loop marks (cdr subst))))))
+ ((or (pair? x) (vector? x))
+ syn)
+ (else x)))))
+
+(define (squeeze-constant! x)
+ (define (syntax-object? x)
+ (and (vector? x)
+ (= 4 (vector-length x))
+ (eq? 'syntax-object (vector-ref x 0))))
+ (cond ((syntax-object? x)
+ (squeeze-syntax-object! x))
+ ((pair? x)
+ (set-car! x (squeeze-constant! (car x)))
+ (set-cdr! x (squeeze-constant! (cdr x)))
+ x)
+ ((vector? x)
+ (for-each (lambda (i)
+ (vector-set! x i (squeeze-constant! (vector-ref x i))))
+ (iota (vector-length x)))
+ x)
+ (else x)))
+
+(define (squeeze-tree-il! x)
+ (post-order! (lambda (x)
+ (if (const? x)
+ (set! (const-exp x)
+ (squeeze-constant! (const-exp x))))
+ #f)
+ x))
+
;; Avoid gratuitous churn in psyntax-pp.scm due to the marks and labels
;; changing session identifiers.
(set! syntax-session-id (lambda () "*"))
@@ -40,12 +99,19 @@
(close-port in))
(begin
(pretty-print (tree-il->scheme
- (canonicalize!
- (optimize!
- (macroexpand x 'c '(compile load eval))
- (current-module)
- '())))
- out)
+ (squeeze-tree-il!
+ (canonicalize!
+ (resolve-primitives!
+ (macroexpand x 'c '(compile load eval))
+ (current-module))))
+ (current-module)
+ (list #:avoid-lambda? #f
+ #:use-case? #f
+ #:strip-numeric-suffixes? #t
+ #:use-derived-syntax?
+ (and (pair? x)
+ (eq? 'let (car x)))))
+ out #:width 120 #:max-expr-width 70)
(newline out)
(loop (read in))))))
(system (format #f "mv -f ~s.tmp ~s" target target)))
diff --git a/module/ice-9/pretty-print.scm b/module/ice-9/pretty-print.scm
index 8a0c0b8..bf45eed 100644
--- a/module/ice-9/pretty-print.scm
+++ b/module/ice-9/pretty-print.scm
@@ -1,6 +1,7 @@
;;;; -*- coding: utf-8; mode: scheme -*-
;;;;
-;;;; Copyright (C) 2001, 2004, 2006, 2009, 2010 Free Software Foundation,
Inc.
+;;;; Copyright (C) 2001, 2004, 2006, 2009, 2010,
+;;;; 2012 Free Software Foundation, Inc.
;;;;
;;;; This library is free software; you can redistribute it and/or
;;;; modify it under the terms of the GNU Lesser General Public
@@ -32,7 +33,8 @@
(define genwrite:newline-str (make-string 1 #\newline))
-(define (generic-write obj display? width per-line-prefix output)
+(define (generic-write
+ obj display? width max-expr-width per-line-prefix output)
(define (read-macro? l)
(define (length1? l) (and (pair? l) (null? (cdr l))))
@@ -93,7 +95,7 @@
(if (or (pair? obj) (vector? obj)) ; may have to split on multiple lines
(let ((result '())
(left (min (+ (- (- width col) extra) 1) max-expr-width)))
- (generic-write obj display? #f ""
+ (generic-write obj display? #f max-expr-width ""
(lambda (str)
(set! result (cons str result))
(set! left (- left (string-length str)))
@@ -223,12 +225,10 @@
(define max-call-head-width 5)
- (define max-expr-width 50)
-
(define (style head)
(case head
- ((lambda let* letrec define define-public
- define-syntax let-syntax letrec-syntax)
+ ((lambda lambda* let* letrec define define* define-public
+ define-syntax let-syntax letrec-syntax with-syntax)
pp-LAMBDA)
((if set!) pp-IF)
((cond) pp-COND)
@@ -273,6 +273,7 @@
#:key
(port (or port* (current-output-port)))
(width 79)
+ (max-expr-width 50)
(display? #f)
(per-line-prefix ""))
"Pretty-print OBJ on PORT, which is a keyword argument defaulting to
@@ -286,6 +287,7 @@ Instead of with a keyword argument, you can also specify
the output
port directly after OBJ, like (pretty-print OBJ PORT)."
(generic-write obj display?
(- width (string-length per-line-prefix))
+ max-expr-width
per-line-prefix
(lambda (s) (display s port) #t)))
diff --git a/module/ice-9/psyntax-pp.scm b/module/ice-9/psyntax-pp.scm
index d11a3f8..5635a6a 100644
--- a/module/ice-9/psyntax-pp.scm
+++ b/module/ice-9/psyntax-pp.scm
@@ -1,26890 +1,3264 @@
(eval-when (compile) (set-current-module (resolve-module (quote (guile)))))
(if #f #f)
-(let ((session-id-4222 (if #f #f))
- (transformer-environment-4283 (if #f #f)))
- (letrec*
- ((top-level-eval-hook-4220
- (lambda (x-24656 mod-24657)
- (primitive-eval x-24656)))
- (get-global-definition-hook-4224
- (lambda (symbol-14704 module-14705)
- (begin
- (if (if (not module-14705) (current-module) #f)
- (warn "module system is booted, we should have a module"
- symbol-14704))
- (let ((v-14706
- (module-variable
- (if module-14705
- (resolve-module (cdr module-14705))
- (current-module))
- symbol-14704)))
- (if v-14706
- (if (variable-bound? v-14706)
- (let ((val-14708 (variable-ref v-14706)))
- (if (macro? val-14708)
- (if (macro-type val-14708)
- (cons (macro-type val-14708)
- (macro-binding val-14708))
- #f)
- #f))
- #f)
- #f)))))
- (maybe-name-value!-4226
- (lambda (name-21545 val-21546)
- (if (if (struct? val-21546)
- (eq? (struct-vtable val-21546)
- (vector-ref %expanded-vtables 13))
- #f)
- (let ((meta-21553 (struct-ref val-21546 1)))
- (if (not (assq 'name meta-21553))
- (let ((v-21558
- (cons (cons 'name name-21545) meta-21553)))
- (struct-set! val-21546 1 v-21558)))))))
- (build-application-4228
- (lambda (source-14710 fun-exp-14711 arg-exps-14712)
- (make-struct/no-tail
- (vector-ref %expanded-vtables 11)
- source-14710
- fun-exp-14711
- arg-exps-14712)))
- (analyze-variable-4233
- (lambda (mod-14718
- var-14719
- modref-cont-14720
- bare-cont-14721)
- (if (not mod-14718)
- (bare-cont-14721 var-14719)
- (let ((kind-14722 (car mod-14718))
- (mod-14723 (cdr mod-14718)))
- (if (eqv? kind-14722 'public)
- (modref-cont-14720 mod-14723 var-14719 #t)
- (if (eqv? kind-14722 'private)
- (if (not (equal? mod-14723 (module-name (current-module))))
- (modref-cont-14720 mod-14723 var-14719 #f)
- (bare-cont-14721 var-14719))
- (if (eqv? kind-14722 'bare)
- (bare-cont-14721 var-14719)
- (if (eqv? kind-14722 'hygiene)
- (if (if (not (equal?
- mod-14723
- (module-name (current-module))))
- (module-variable
- (resolve-module mod-14723)
- var-14719)
- #f)
- (modref-cont-14720 mod-14723 var-14719 #f)
- (bare-cont-14721 var-14719))
- (syntax-violation
- #f
- "bad module kind"
- var-14719
- mod-14723)))))))))
- (build-simple-lambda-4237
- (lambda (src-14750
- req-14751
- rest-14752
- vars-14753
- meta-14754
- exp-14755)
- (let ((body-14761
- (make-struct/no-tail
- (vector-ref %expanded-vtables 14)
- src-14750
- req-14751
- #f
- rest-14752
- #f
- '()
- vars-14753
- exp-14755
- #f)))
- (make-struct/no-tail
- (vector-ref %expanded-vtables 13)
- src-14750
- meta-14754
- body-14761))))
- (build-sequence-4242
- (lambda (src-24658 exps-24659)
- (if (null? (cdr exps-24659))
- (car exps-24659)
- (make-struct/no-tail
- (vector-ref %expanded-vtables 12)
- src-24658
- exps-24659))))
- (build-let-4243
- (lambda (src-14773
- ids-14774
- vars-14775
- val-exps-14776
- body-exp-14777)
+(letrec*
+ ((make-void
+ (lambda (src) (make-struct (vector-ref %expanded-vtables 0) 0 src)))
+ (make-const
+ (lambda (src exp)
+ (make-struct (vector-ref %expanded-vtables 1) 0 src exp)))
+ (make-primitive-ref
+ (lambda (src name)
+ (make-struct (vector-ref %expanded-vtables 2) 0 src name)))
+ (make-lexical-ref
+ (lambda (src name gensym)
+ (make-struct (vector-ref %expanded-vtables 3) 0 src name gensym)))
+ (make-lexical-set
+ (lambda (src name gensym exp)
+ (make-struct (vector-ref %expanded-vtables 4) 0 src name gensym exp)))
+ (make-module-ref
+ (lambda (src mod name public?)
+ (make-struct (vector-ref %expanded-vtables 5) 0 src mod name public?)))
+ (make-module-set
+ (lambda (src mod name public? exp)
+ (make-struct
+ (vector-ref %expanded-vtables 6)
+ 0
+ src
+ mod
+ name
+ public?
+ exp)))
+ (make-toplevel-ref
+ (lambda (src name)
+ (make-struct (vector-ref %expanded-vtables 7) 0 src name)))
+ (make-toplevel-set
+ (lambda (src name exp)
+ (make-struct (vector-ref %expanded-vtables 8) 0 src name exp)))
+ (make-toplevel-define
+ (lambda (src name exp)
+ (make-struct (vector-ref %expanded-vtables 9) 0 src name exp)))
+ (make-conditional
+ (lambda (src test consequent alternate)
+ (make-struct
+ (vector-ref %expanded-vtables 10)
+ 0
+ src
+ test
+ consequent
+ alternate)))
+ (make-application
+ (lambda (src proc args)
+ (make-struct (vector-ref %expanded-vtables 11) 0 src proc args)))
+ (make-sequence
+ (lambda (src exps)
+ (make-struct (vector-ref %expanded-vtables 12) 0 src exps)))
+ (make-lambda
+ (lambda (src meta body)
+ (make-struct (vector-ref %expanded-vtables 13) 0 src meta body)))
+ (make-lambda-case
+ (lambda (src req opt rest kw inits gensyms body alternate)
+ (make-struct
+ (vector-ref %expanded-vtables 14)
+ 0
+ src
+ req
+ opt
+ rest
+ kw
+ inits
+ gensyms
+ body
+ alternate)))
+ (make-let
+ (lambda (src names gensyms vals body)
+ (make-struct
+ (vector-ref %expanded-vtables 15)
+ 0
+ src
+ names
+ gensyms
+ vals
+ body)))
+ (make-letrec
+ (lambda (src in-order? names gensyms vals body)
+ (make-struct
+ (vector-ref %expanded-vtables 16)
+ 0
+ src
+ in-order?
+ names
+ gensyms
+ vals
+ body)))
+ (make-dynlet
+ (lambda (src fluids vals body)
+ (make-struct
+ (vector-ref %expanded-vtables 17)
+ 0
+ src
+ fluids
+ vals
+ body)))
+ (lambda?
+ (lambda (x)
+ (and (struct? x)
+ (eq? (struct-vtable x) (vector-ref %expanded-vtables 13)))))
+ (lambda-meta (lambda (x) (struct-ref x 1)))
+ (set-lambda-meta! (lambda (x v) (struct-set! x 1 v)))
+ (top-level-eval-hook (lambda (x mod) (primitive-eval x)))
+ (local-eval-hook (lambda (x mod) (primitive-eval x)))
+ (session-id
+ (let ((v (module-variable (current-module) 'syntax-session-id)))
+ (lambda () ((variable-ref v)))))
+ (put-global-definition-hook
+ (lambda (symbol type val)
+ (module-define!
+ (current-module)
+ symbol
+ (make-syntax-transformer symbol type val))))
+ (get-global-definition-hook
+ (lambda (symbol module)
+ (if (and (not module) (current-module))
+ (warn "module system is booted, we should have a module" symbol))
+ (let ((v (module-variable
+ (if module (resolve-module (cdr module)) (current-module))
+ symbol)))
+ (and v
+ (variable-bound? v)
+ (let ((val (variable-ref v)))
+ (and (macro? val)
+ (macro-type val)
+ (cons (macro-type val) (macro-binding val))))))))
+ (decorate-source
+ (lambda (e s)
+ (if (and s (supports-source-properties? e))
+ (set-source-properties! e s))
+ e))
+ (maybe-name-value!
+ (lambda (name val)
+ (if (lambda? val)
+ (let ((meta (lambda-meta val)))
+ (if (not (assq 'name meta))
+ (set-lambda-meta! val (acons 'name name meta)))))))
+ (build-void (lambda (source) (make-void source)))
+ (build-application
+ (lambda (source fun-exp arg-exps)
+ (make-application source fun-exp arg-exps)))
+ (build-conditional
+ (lambda (source test-exp then-exp else-exp)
+ (make-conditional source test-exp then-exp else-exp)))
+ (build-dynlet
+ (lambda (source fluids vals body)
+ (make-dynlet source fluids vals body)))
+ (build-lexical-reference
+ (lambda (type source name var) (make-lexical-ref source name var)))
+ (build-lexical-assignment
+ (lambda (source name var exp)
+ (maybe-name-value! name exp)
+ (make-lexical-set source name var exp)))
+ (analyze-variable
+ (lambda (mod var modref-cont bare-cont)
+ (if (not mod)
+ (bare-cont var)
+ (let ((kind (car mod)) (mod (cdr mod)))
+ (let ((key kind))
+ (cond ((memv key '(public)) (modref-cont mod var #t))
+ ((memv key '(private))
+ (if (not (equal? mod (module-name (current-module))))
+ (modref-cont mod var #f)
+ (bare-cont var)))
+ ((memv key '(bare)) (bare-cont var))
+ ((memv key '(hygiene))
+ (if (and (not (equal? mod (module-name (current-module))))
+ (module-variable (resolve-module mod) var))
+ (modref-cont mod var #f)
+ (bare-cont var)))
+ (else (syntax-violation #f "bad module kind" var mod))))))))
+ (build-global-reference
+ (lambda (source var mod)
+ (analyze-variable
+ mod
+ var
+ (lambda (mod var public?) (make-module-ref source mod var public?))
+ (lambda (var) (make-toplevel-ref source var)))))
+ (build-global-assignment
+ (lambda (source var exp mod)
+ (maybe-name-value! var exp)
+ (analyze-variable
+ mod
+ var
+ (lambda (mod var public?)
+ (make-module-set source mod var public? exp))
+ (lambda (var) (make-toplevel-set source var exp)))))
+ (build-global-definition
+ (lambda (source var exp)
+ (maybe-name-value! var exp)
+ (make-toplevel-define source var exp)))
+ (build-simple-lambda
+ (lambda (src req rest vars meta exp)
+ (make-lambda
+ src
+ meta
+ (make-lambda-case src req #f rest #f '() vars exp #f))))
+ (build-case-lambda
+ (lambda (src meta body) (make-lambda src meta body)))
+ (build-lambda-case
+ (lambda (src req opt rest kw inits vars body else-case)
+ (make-lambda-case src req opt rest kw inits vars body else-case)))
+ (build-primref
+ (lambda (src name)
+ (if (equal? (module-name (current-module)) '(guile))
+ (make-toplevel-ref src name)
+ (make-module-ref src '(guile) name #f))))
+ (build-data (lambda (src exp) (make-const src exp)))
+ (build-sequence
+ (lambda (src exps)
+ (if (null? (cdr exps)) (car exps) (make-sequence src exps))))
+ (build-let
+ (lambda (src ids vars val-exps body-exp)
+ (for-each maybe-name-value! ids val-exps)
+ (if (null? vars) body-exp (make-let src ids vars val-exps body-exp))))
+ (build-named-let
+ (lambda (src ids vars val-exps body-exp)
+ (let ((f (car vars)) (f-name (car ids)) (vars (cdr vars)) (ids (cdr
ids)))
+ (let ((proc (build-simple-lambda src ids #f vars '() body-exp)))
+ (maybe-name-value! f-name proc)
+ (for-each maybe-name-value! ids val-exps)
+ (make-letrec
+ src
+ #f
+ (list f-name)
+ (list f)
+ (list proc)
+ (build-application
+ src
+ (build-lexical-reference 'fun src f-name f)
+ val-exps))))))
+ (build-letrec
+ (lambda (src in-order? ids vars val-exps body-exp)
+ (if (null? vars)
+ body-exp
(begin
- (for-each
- maybe-name-value!-4226
- ids-14774
- val-exps-14776)
- (if (null? vars-14775)
- body-exp-14777
- (make-struct/no-tail
- (vector-ref %expanded-vtables 15)
- src-14773
- ids-14774
- vars-14775
- val-exps-14776
- body-exp-14777)))))
- (build-named-let-4244
- (lambda (src-14801
- ids-14802
- vars-14803
- val-exps-14804
- body-exp-14805)
- (let ((f-14806 (car vars-14803))
- (f-name-14807 (car ids-14802))
- (vars-14808 (cdr vars-14803))
- (ids-14809 (cdr ids-14802)))
- (let ((proc-14810
- (let ((body-14830
- (make-struct/no-tail
- (vector-ref %expanded-vtables 14)
- src-14801
- ids-14809
- #f
- #f
- #f
- '()
- vars-14808
- body-exp-14805
- #f)))
- (make-struct/no-tail
- (vector-ref %expanded-vtables 13)
- src-14801
- '()
- body-14830))))
- (begin
- (if (if (struct? proc-14810)
- (eq? (struct-vtable proc-14810)
- (vector-ref %expanded-vtables 13))
- #f)
- (let ((meta-14854 (struct-ref proc-14810 1)))
- (if (not (assq 'name meta-14854))
- (let ((v-14861
- (cons (cons 'name f-name-14807) meta-14854)))
- (struct-set! proc-14810 1 v-14861)))))
- (for-each
- maybe-name-value!-4226
- ids-14809
- val-exps-14804)
- (let ((names-14885 (list f-name-14807))
- (gensyms-14886 (list f-14806))
- (vals-14887 (list proc-14810))
- (body-14888
- (let ((fun-exp-14892
- (make-struct/no-tail
- (vector-ref %expanded-vtables 3)
- src-14801
- f-name-14807
- f-14806)))
- (make-struct/no-tail
- (vector-ref %expanded-vtables 11)
- src-14801
- fun-exp-14892
- val-exps-14804))))
- (make-struct/no-tail
- (vector-ref %expanded-vtables 16)
- src-14801
- #f
- names-14885
- gensyms-14886
- vals-14887
- body-14888)))))))
- (build-letrec-4245
- (lambda (src-14908
- in-order?-14909
- ids-14910
- vars-14911
- val-exps-14912
- body-exp-14913)
- (if (null? vars-14911)
- body-exp-14913
- (begin
- (for-each
- maybe-name-value!-4226
- ids-14910
- val-exps-14912)
- (make-struct/no-tail
- (vector-ref %expanded-vtables 16)
- src-14908
- in-order?-14909
- ids-14910
- vars-14911
- val-exps-14912
- body-exp-14913)))))
- (extend-env-4255
- (lambda (labels-14939 bindings-14940 r-14941)
- (if (null? labels-14939)
- r-14941
- (extend-env-4255
- (cdr labels-14939)
- (cdr bindings-14940)
- (cons (cons (car labels-14939) (car bindings-14940))
- r-14941)))))
- (extend-var-env-4256
- (lambda (labels-14942 vars-14943 r-14944)
- (if (null? labels-14942)
- r-14944
- (extend-var-env-4256
- (cdr labels-14942)
- (cdr vars-14943)
- (cons (cons (car labels-14942)
- (cons 'lexical (car vars-14943)))
- r-14944)))))
- (macros-only-env-4257
- (lambda (r-14945)
- (if (null? r-14945)
- '()
- (let ((a-14946 (car r-14945)))
- (if (eq? (car (cdr a-14946)) 'macro)
- (cons a-14946
- (macros-only-env-4257 (cdr r-14945)))
- (macros-only-env-4257 (cdr r-14945)))))))
- (global-extend-4259
- (lambda (type-14948 sym-14949 val-14950)
- (module-define!
- (current-module)
- sym-14949
- (make-syntax-transformer
- sym-14949
- type-14948
- val-14950))))
- (id?-4261
- (lambda (x-9380)
- (if (symbol? x-9380)
- #t
- (if (if (vector? x-9380)
- (if (= (vector-length x-9380) 4)
- (eq? (vector-ref x-9380 0) 'syntax-object)
- #f)
- #f)
- (symbol? (vector-ref x-9380 1))
- #f))))
- (gen-labels-4264
- (lambda (ls-14960)
- (if (null? ls-14960)
- '()
- (cons (string-append
- "l-"
- (session-id-4222)
- (symbol->string (gensym "-")))
- (gen-labels-4264 (cdr ls-14960))))))
- (make-binding-wrap-4275
- (lambda (ids-14964 labels-14965 w-14966)
- (if (null? ids-14964)
- w-14966
- (cons (car w-14966)
- (cons (let ((labelvec-14967 (list->vector labels-14965)))
- (let ((n-14968 (vector-length labelvec-14967)))
- (let ((symnamevec-14969 (make-vector n-14968))
- (marksvec-14970 (make-vector n-14968)))
- (begin
- (letrec*
- ((f-14971
- (lambda (ids-14974 i-14975)
- (if (not (null? ids-14974))
- (call-with-values
- (lambda ()
- (let ((x-14978 (car ids-14974)))
- (if (if (vector? x-14978)
- (if (= (vector-length
- x-14978)
- 4)
- (eq? (vector-ref
- x-14978
- 0)
- 'syntax-object)
- #f)
- #f)
- (values
- (vector-ref x-14978 1)
- (let ((m1-14994
- (car w-14966))
- (m2-14995
- (car (vector-ref
- x-14978
- 2))))
- (if (null? m2-14995)
- m1-14994
- (append
- m1-14994
- m2-14995))))
- (values
- x-14978
- (car w-14966)))))
- (lambda (symname-15015 marks-15016)
- (begin
- (vector-set!
- symnamevec-14969
- i-14975
- symname-15015)
- (vector-set!
- marksvec-14970
- i-14975
- marks-15016)
- (f-14971
- (cdr ids-14974)
- (#{1+}# i-14975)))))))))
- (f-14971 ids-14964 0))
- (vector
- 'ribcage
- symnamevec-14969
- marksvec-14970
- labelvec-14967)))))
- (cdr w-14966))))))
- (join-wraps-4277
- (lambda (w1-15025 w2-15026)
- (let ((m1-15027 (car w1-15025))
- (s1-15028 (cdr w1-15025)))
- (if (null? m1-15027)
- (if (null? s1-15028)
- w2-15026
- (cons (car w2-15026)
- (let ((m2-15035 (cdr w2-15026)))
- (if (null? m2-15035)
- s1-15028
- (append s1-15028 m2-15035)))))
- (cons (let ((m2-15044 (car w2-15026)))
- (if (null? m2-15044)
- m1-15027
- (append m1-15027 m2-15044)))
- (let ((m2-15053 (cdr w2-15026)))
- (if (null? m2-15053)
- s1-15028
- (append s1-15028 m2-15053))))))))
- (same-marks?-4279
- (lambda (x-15058 y-15059)
- (if (eq? x-15058 y-15059)
- (eq? x-15058 y-15059)
- (if (not (null? x-15058))
- (if (not (null? y-15059))
- (if (eq? (car x-15058) (car y-15059))
- (same-marks?-4279 (cdr x-15058) (cdr y-15059))
- #f)
- #f)
- #f))))
- (id-var-name-4280
- (lambda (id-15067 w-15068)
- (letrec*
- ((search-15069
- (lambda (sym-15130 subst-15131 marks-15132)
- (if (null? subst-15131)
- (values #f marks-15132)
- (let ((fst-15133 (car subst-15131)))
- (if (eq? fst-15133 'shift)
- (search-15069
- sym-15130
- (cdr subst-15131)
- (cdr marks-15132))
- (let ((symnames-15135 (vector-ref fst-15133 1)))
- (if (vector? symnames-15135)
- (let ((n-15147 (vector-length symnames-15135)))
- (letrec*
- ((f-15148
- (lambda (i-15150)
- (if (= i-15150 n-15147)
- (search-15069
- sym-15130
- (cdr subst-15131)
- marks-15132)
- (if (if (eq? (vector-ref
- symnames-15135
- i-15150)
- sym-15130)
- (same-marks?-4279
- marks-15132
- (vector-ref
- (vector-ref fst-15133 2)
- i-15150))
- #f)
- (values
- (vector-ref
- (vector-ref fst-15133 3)
- i-15150)
- marks-15132)
- (f-15148 (#{1+}# i-15150)))))))
- (f-15148 0)))
- (letrec*
- ((f-15183
- (lambda (symnames-15185 i-15186)
- (if (null? symnames-15185)
- (search-15069
- sym-15130
- (cdr subst-15131)
- marks-15132)
- (if (if (eq? (car symnames-15185) sym-15130)
- (same-marks?-4279
- marks-15132
- (list-ref
- (vector-ref fst-15133 2)
- i-15186))
- #f)
- (values
- (list-ref
- (vector-ref fst-15133 3)
- i-15186)
- marks-15132)
- (f-15183
- (cdr symnames-15185)
- (#{1+}# i-15186)))))))
- (f-15183 symnames-15135 0))))))))))
- (if (symbol? id-15067)
- (let ((t-15072
- (search-15069
- id-15067
- (cdr w-15068)
- (car w-15068))))
- (if t-15072 t-15072 id-15067))
- (if (if (vector? id-15067)
- (if (= (vector-length id-15067) 4)
- (eq? (vector-ref id-15067 0) 'syntax-object)
- #f)
- #f)
- (let ((id-15087 (vector-ref id-15067 1))
- (w1-15088 (vector-ref id-15067 2)))
- (let ((marks-15089
- (let ((m1-15099 (car w-15068))
- (m2-15100 (car w1-15088)))
- (if (null? m2-15100)
- m1-15099
- (append m1-15099 m2-15100)))))
- (call-with-values
- (lambda ()
- (search-15069 id-15087 (cdr w-15068) marks-15089))
- (lambda (new-id-15116 marks-15117)
- (if new-id-15116
- new-id-15116
- (let ((t-15125
- (search-15069
- id-15087
- (cdr w1-15088)
- marks-15117)))
- (if t-15125 t-15125 id-15087)))))))
- (syntax-violation
- 'id-var-name
- "invalid id"
- id-15067))))))
- (locally-bound-identifiers-4281
- (lambda (w-15208 mod-15209)
- (letrec*
- ((scan-15210
- (lambda (subst-15215 results-15216)
- (if (null? subst-15215)
- results-15216
- (let ((fst-15217 (car subst-15215)))
- (if (eq? fst-15217 'shift)
- (scan-15210 (cdr subst-15215) results-15216)
- (let ((symnames-15219 (vector-ref fst-15217 1))
- (marks-15220 (vector-ref fst-15217 2)))
- (if (vector? symnames-15219)
- (scan-vector-rib-15212
- subst-15215
- symnames-15219
- marks-15220
- results-15216)
- (scan-list-rib-15211
- subst-15215
- symnames-15219
- marks-15220
- results-15216))))))))
- (scan-list-rib-15211
- (lambda (subst-15318
- symnames-15319
- marks-15320
- results-15321)
- (letrec*
- ((f-15322
- (lambda (symnames-15422 marks-15423 results-15424)
- (if (null? symnames-15422)
- (scan-15210 (cdr subst-15318) results-15424)
- (f-15322
- (cdr symnames-15422)
- (cdr marks-15423)
- (cons (wrap-4290
- (car symnames-15422)
- (let ((w-15432
- (cons (car marks-15423)
- subst-15318)))
- (cons (cons #f (car w-15432))
- (cons 'shift (cdr w-15432))))
- mod-15209)
- results-15424))))))
- (f-15322
- symnames-15319
- marks-15320
- results-15321))))
- (scan-vector-rib-15212
- (lambda (subst-15433
- symnames-15434
- marks-15435
- results-15436)
- (let ((n-15437 (vector-length symnames-15434)))
- (letrec*
- ((f-15438
- (lambda (i-15521 results-15522)
- (if (= i-15521 n-15437)
- (scan-15210 (cdr subst-15433) results-15522)
- (f-15438
- (#{1+}# i-15521)
- (cons (wrap-4290
- (vector-ref symnames-15434 i-15521)
- (let ((w-15530
- (cons (vector-ref
- marks-15435
- i-15521)
- subst-15433)))
- (cons (cons #f (car w-15530))
- (cons 'shift (cdr w-15530))))
- mod-15209)
- results-15522))))))
- (f-15438 0 results-15436))))))
- (scan-15210 (cdr w-15208) '()))))
- (valid-bound-ids?-4287
- (lambda (ids-15531)
- (if (letrec*
- ((all-ids?-15532
- (lambda (ids-15694)
- (if (null? ids-15694)
- (null? ids-15694)
- (if (let ((x-15705 (car ids-15694)))
- (if (symbol? x-15705)
- #t
- (if (if (vector? x-15705)
- (if (= (vector-length x-15705) 4)
- (eq? (vector-ref x-15705 0)
- 'syntax-object)
- #f)
- #f)
- (symbol? (vector-ref x-15705 1))
- #f)))
- (all-ids?-15532 (cdr ids-15694))
- #f)))))
- (all-ids?-15532 ids-15531))
- (distinct-bound-ids?-4288 ids-15531)
- #f)))
- (distinct-bound-ids?-4288
- (lambda (ids-15833)
- (letrec*
- ((distinct?-15834
- (lambda (ids-15946)
- (if (null? ids-15946)
- (null? ids-15946)
- (if (not (bound-id-member?-4289
- (car ids-15946)
- (cdr ids-15946)))
- (distinct?-15834 (cdr ids-15946))
- #f)))))
- (distinct?-15834 ids-15833))))
- (bound-id-member?-4289
- (lambda (x-16156 list-16157)
- (if (not (null? list-16157))
- (let ((t-16158
- (let ((j-16239 (car list-16157)))
- (if (if (if (vector? x-16156)
- (if (= (vector-length x-16156) 4)
- (eq? (vector-ref x-16156 0) 'syntax-object)
- #f)
- #f)
- (if (vector? j-16239)
- (if (= (vector-length j-16239) 4)
- (eq? (vector-ref j-16239 0) 'syntax-object)
- #f)
- #f)
- #f)
- (if (eq? (vector-ref x-16156 1)
- (vector-ref j-16239 1))
- (same-marks?-4279
- (car (vector-ref x-16156 2))
- (car (vector-ref j-16239 2)))
- #f)
- (eq? x-16156 j-16239)))))
- (if t-16158
- t-16158
- (bound-id-member?-4289 x-16156 (cdr list-16157))))
- #f)))
- (wrap-4290
- (lambda (x-16283 w-16284 defmod-16285)
- (if (if (null? (car w-16284))
- (null? (cdr w-16284))
- #f)
- x-16283
- (if (if (vector? x-16283)
- (if (= (vector-length x-16283) 4)
- (eq? (vector-ref x-16283 0) 'syntax-object)
- #f)
- #f)
- (let ((expression-16299 (vector-ref x-16283 1))
- (wrap-16300
- (join-wraps-4277 w-16284 (vector-ref x-16283 2)))
- (module-16301 (vector-ref x-16283 3)))
- (vector
- 'syntax-object
- expression-16299
- wrap-16300
- module-16301))
- (if (null? x-16283)
- x-16283
- (vector
- 'syntax-object
- x-16283
- w-16284
- defmod-16285))))))
- (source-wrap-4291
- (lambda (x-16318 w-16319 s-16320 defmod-16321)
- (wrap-4290
- (begin
- (if (if s-16320
- (supports-source-properties? x-16318)
- #f)
- (set-source-properties! x-16318 s-16320))
- x-16318)
- w-16319
- defmod-16321)))
- (expand-sequence-4292
- (lambda (body-24664 r-24665 w-24666 s-24667 mod-24668)
- (build-sequence-4242
- s-24667
- (letrec*
- ((dobody-24791
- (lambda (body-25066 r-25067 w-25068 mod-25069)
- (if (null? body-25066)
- '()
- (let ((first-25070
- (let ((e-25120 (car body-25066)))
- (call-with-values
- (lambda ()
- (syntax-type-4296
- e-25120
- r-25067
- w-25068
- (let ((props-25130
- (source-properties
- (if (if (vector? e-25120)
- (if (= (vector-length
- e-25120)
- 4)
- (eq? (vector-ref
- e-25120
- 0)
- 'syntax-object)
- #f)
- #f)
- (vector-ref e-25120 1)
- e-25120))))
- (if (pair? props-25130) props-25130 #f))
- #f
- mod-25069
- #f))
- (lambda (type-25153
- value-25154
- form-25155
- e-25156
- w-25157
- s-25158
- mod-25159)
- (expand-expr-4298
- type-25153
- value-25154
- form-25155
- e-25156
- r-25067
- w-25157
- s-25158
- mod-25159))))))
- (cons first-25070
- (dobody-24791
- (cdr body-25066)
- r-25067
- w-25068
- mod-25069)))))))
- (dobody-24791
- body-24664
- r-24665
- w-24666
- mod-24668)))))
- (expand-top-sequence-4293
- (lambda (body-16339
- r-16340
- w-16341
- s-16342
- m-16343
- esew-16344
- mod-16345)
- (letrec*
- ((scan-16346
- (lambda (body-16477
- r-16478
- w-16479
- s-16480
- m-16481
- esew-16482
- mod-16483
- exps-16484)
- (if (null? body-16477)
- exps-16484
- (call-with-values
- (lambda ()
- (call-with-values
- (lambda ()
- (let ((e-16485 (car body-16477)))
- (syntax-type-4296
- e-16485
- r-16478
- w-16479
- (let ((t-16489
- (let ((props-16521
- (source-properties
- (if (if (vector? e-16485)
- (if (= (vector-length
- e-16485)
- 4)
- (eq? (vector-ref
- e-16485
- 0)
- 'syntax-object)
- #f)
- #f)
- (vector-ref e-16485 1)
- e-16485))))
- (if (pair? props-16521)
- props-16521
- #f))))
- (if t-16489 t-16489 s-16480))
- #f
- mod-16483
- #f)))
- (lambda (type-16544
- value-16545
- form-16546
- e-16547
- w-16548
- s-16549
- mod-16550)
- (if (eqv? type-16544 'begin-form)
- (let ((tmp-16559 ($sc-dispatch e-16547 '(_))))
- (if tmp-16559
- (@apply (lambda () exps-16484) tmp-16559)
- (let ((tmp-16563
- ($sc-dispatch
- e-16547
- '(_ any . each-any))))
- (if tmp-16563
- (@apply
- (lambda (e1-16567 e2-16568)
- (scan-16346
- (cons e1-16567 e2-16568)
- r-16478
- w-16548
- s-16549
- m-16481
- esew-16482
- mod-16550
- exps-16484))
- tmp-16563)
- (syntax-violation
- #f
- "source expression failed to match any
pattern"
- e-16547)))))
- (if (eqv? type-16544 'local-syntax-form)
- (expand-local-syntax-4302
- value-16545
- e-16547
- r-16478
- w-16548
- s-16549
- mod-16550
- (lambda (body-16586
- r-16587
- w-16588
- s-16589
- mod-16590)
- (scan-16346
- body-16586
- r-16587
- w-16588
- s-16589
- m-16481
- esew-16482
- mod-16590
- exps-16484)))
- (if (eqv? type-16544 'eval-when-form)
- (let ((tmp-16598
- ($sc-dispatch
- e-16547
- '(_ each-any any . each-any))))
- (if tmp-16598
- (@apply
- (lambda (x-16602 e1-16603 e2-16604)
- (let ((when-list-16605
- (parse-when-list-4295
- e-16547
- x-16602))
- (body-16606
- (cons e1-16603 e2-16604)))
- (if (eq? m-16481 'e)
- (if (memq 'eval when-list-16605)
- (scan-16346
- body-16606
- r-16478
- w-16548
- s-16549
- (if (memq 'expand
- when-list-16605)
- 'c&e
- 'e)
- '(eval)
- mod-16550
- exps-16484)
- (begin
- (if (memq 'expand
- when-list-16605)
- (let ((x-16683
-
(expand-top-sequence-4293
- body-16606
- r-16478
- w-16548
- s-16549
- 'e
- '(eval)
- mod-16550)))
- (primitive-eval x-16683)))
- exps-16484))
- (if (memq 'load when-list-16605)
- (if (let ((t-16709
- (memq 'compile
-
when-list-16605)))
- (if t-16709
- t-16709
- (let ((t-16758
- (memq 'expand
-
when-list-16605)))
- (if t-16758
- t-16758
- (if (eq? m-16481
- 'c&e)
- (memq 'eval
-
when-list-16605)
- #f)))))
- (scan-16346
- body-16606
- r-16478
- w-16548
- s-16549
- 'c&e
- '(compile load)
- mod-16550
- exps-16484)
- (if (if (eq? m-16481 'c)
- #t
- (eq? m-16481 'c&e))
- (scan-16346
- body-16606
- r-16478
- w-16548
- s-16549
- 'c
- '(load)
- mod-16550
- exps-16484)
- exps-16484))
- (if (let ((t-16887
- (memq 'compile
-
when-list-16605)))
- (if t-16887
- t-16887
- (let ((t-16936
- (memq 'expand
-
when-list-16605)))
- (if t-16936
- t-16936
- (if (eq? m-16481
- 'c&e)
- (memq 'eval
-
when-list-16605)
- #f)))))
- (begin
- (let ((x-17060
-
(expand-top-sequence-4293
- body-16606
- r-16478
- w-16548
- s-16549
- 'e
- '(eval)
- mod-16550)))
- (primitive-eval x-17060))
- exps-16484)
- exps-16484)))))
- tmp-16598)
- (syntax-violation
- #f
- "source expression failed to match any
pattern"
- e-16547)))
- (if (if (eqv? type-16544 'define-syntax-form)
- #t
- (eqv? type-16544
- 'define-syntax-parameter-form))
- (let ((n-17109
- (id-var-name-4280
- value-16545
- w-16548))
- (r-17110
- (macros-only-env-4257 r-16478)))
- (if (eqv? m-16481 'c)
- (if (memq 'compile esew-16482)
- (let ((e-17118
- (expand-install-global-4294
- n-17109
- (call-with-values
- (lambda ()
- (syntax-type-4296
- e-16547
- r-17110
- w-16548
- (let ((props-17391
-
(source-properties
- (if (if
(vector?
-
e-16547)
- (if (=
(vector-length
-
e-16547)
-
4)
- (eq?
(vector-ref
-
e-16547
-
0)
-
'syntax-object)
- #f)
- #f)
- (vector-ref
- e-16547
- 1)
- e-16547))))
- (if (pair?
props-17391)
- props-17391
- #f))
- #f
- mod-16550
- #f))
- (lambda (type-17424
- value-17425
- form-17426
- e-17427
- w-17428
- s-17429
- mod-17430)
- (expand-expr-4298
- type-17424
- value-17425
- form-17426
- e-17427
- r-17110
- w-17428
- s-17429
- mod-17430))))))
- (begin
- (top-level-eval-hook-4220
- e-17118
- mod-16550)
- (if (memq 'load esew-16482)
- (cons e-17118 exps-16484)
- exps-16484)))
- (if (memq 'load esew-16482)
- (cons (expand-install-global-4294
- n-17109
- (call-with-values
- (lambda ()
- (syntax-type-4296
- e-16547
- r-17110
- w-16548
- (let ((props-17660
-
(source-properties
- (if (if
(vector?
-
e-16547)
- (if (=
(vector-length
-
e-16547)
-
4)
- (eq?
(vector-ref
-
e-16547
-
0)
-
'syntax-object)
- #f)
- #f)
- (vector-ref
- e-16547
- 1)
- e-16547))))
- (if (pair?
props-17660)
- props-17660
- #f))
- #f
- mod-16550
- #f))
- (lambda (type-17662
- value-17663
- form-17664
- e-17665
- w-17666
- s-17667
- mod-17668)
- (expand-expr-4298
- type-17662
- value-17663
- form-17664
- e-17665
- r-17110
- w-17666
- s-17667
- mod-17668))))
- exps-16484)
- exps-16484))
- (if (eqv? m-16481 'c&e)
- (let ((e-17677
- (expand-install-global-4294
- n-17109
- (call-with-values
- (lambda ()
- (syntax-type-4296
- e-16547
- r-17110
- w-16548
- (let ((props-17949
-
(source-properties
- (if (if
(vector?
-
e-16547)
- (if (=
(vector-length
-
e-16547)
-
4)
- (eq?
(vector-ref
-
e-16547
-
0)
-
'syntax-object)
- #f)
- #f)
- (vector-ref
- e-16547
- 1)
- e-16547))))
- (if (pair?
props-17949)
- props-17949
- #f))
- #f
- mod-16550
- #f))
- (lambda (type-17982
- value-17983
- form-17984
- e-17985
- w-17986
- s-17987
- mod-17988)
- (expand-expr-4298
- type-17982
- value-17983
- form-17984
- e-17985
- r-17110
- w-17986
- s-17987
- mod-17988))))))
- (begin
- (top-level-eval-hook-4220
- e-17677
- mod-16550)
- (cons e-17677 exps-16484)))
- (begin
- (if (memq 'eval esew-16482)
- (top-level-eval-hook-4220
- (let ((e-18087
- (call-with-values
- (lambda ()
- (syntax-type-4296
- e-16547
- r-17110
- w-16548
- (let ((props-18152
-
(source-properties
- (if (if
(vector?
-
e-16547)
-
(if (= (vector-length
-
e-16547)
-
4)
-
(eq? (vector-ref
-
e-16547
-
0)
-
'syntax-object)
-
#f)
- #f)
-
(vector-ref
-
e-16547
- 1)
-
e-16547))))
- (if (pair?
props-18152)
- props-18152
- #f))
- #f
- mod-16550
- #f))
- (lambda (type-18185
- value-18186
- form-18187
- e-18188
- w-18189
- s-18190
- mod-18191)
- (expand-expr-4298
- type-18185
- value-18186
- form-18187
- e-18188
- r-17110
- w-18189
- s-18190
- mod-18191)))))
- (let ((exp-18092
- (let ((fun-exp-18102
- (if (equal?
-
(module-name
-
(current-module))
- '(guile))
-
(make-struct/no-tail
- (vector-ref
-
%expanded-vtables
- 7)
- #f
-
'make-syntax-transformer)
-
(make-struct/no-tail
- (vector-ref
-
%expanded-vtables
- 5)
- #f
- '(guile)
-
'make-syntax-transformer
- #f)))
- (arg-exps-18103
- (list
(make-struct/no-tail
-
(vector-ref
-
%expanded-vtables
- 1)
- #f
-
n-17109)
-
(make-struct/no-tail
-
(vector-ref
-
%expanded-vtables
- 1)
- #f
- 'macro)
-
e-18087)))
- (make-struct/no-tail
- (vector-ref
- %expanded-vtables
- 11)
- #f
- fun-exp-18102
- arg-exps-18103))))
- (begin
- (if (if (struct? exp-18092)
- (eq? (struct-vtable
- exp-18092)
- (vector-ref
-
%expanded-vtables
- 13))
- #f)
- (let ((meta-18203
- (struct-ref
- exp-18092
- 1)))
- (if (not (assq 'name
-
meta-18203))
- (let ((v-18210
- (cons (cons
'name
-
n-17109)
-
meta-18203)))
- (struct-set!
- exp-18092
- 1
- v-18210)))))
- (make-struct/no-tail
- (vector-ref
- %expanded-vtables
- 9)
- #f
- n-17109
- exp-18092))))
- mod-16550))
- exps-16484))))
- (if (eqv? type-16544 'define-form)
- (let ((n-18293
- (id-var-name-4280
- value-16545
- w-16548)))
- (let ((type-18294
- (car (let ((t-18302
- (assq n-18293
- r-16478)))
- (if t-18302
- (cdr t-18302)
- (if (symbol? n-18293)
- (let ((t-18308
-
(get-global-definition-hook-4224
- n-18293
- mod-16550)))
- (if t-18308
- t-18308
- '(global)))
-
'(displaced-lexical)))))))
- (if (if (eqv? type-18294 'global)
- #t
- (if (eqv? type-18294 'core)
- #t
- (if (eqv? type-18294 'macro)
- #t
- (eqv? type-18294
- 'module-ref))))
- (begin
- (if (if (if (eq? m-16481 'c)
- #t
- (eq? m-16481 'c&e))
- (if (not
(module-local-variable
- (current-module)
- n-18293))
- (current-module)
- #f)
- #f)
- (let ((old-18341
- (module-variable
- (current-module)
- n-18293)))
- (if (if (variable? old-18341)
- (variable-bound?
- old-18341)
- #f)
- (module-define!
- (current-module)
- n-18293
- (variable-ref old-18341))
- (module-add!
- (current-module)
- n-18293
-
(make-undefined-variable)))))
- (cons (if (eq? m-16481 'c&e)
- (let ((x-18538
- (let ((exp-18567
-
(call-with-values
- (lambda
()
-
(syntax-type-4296
-
e-16547
-
r-16478
-
w-16548
- (let
((props-18570
-
(source-properties
-
(if (if (vector?
-
e-16547)
-
(if (= (vector-length
-
e-16547)
-
4)
-
(eq? (vector-ref
-
e-16547
-
0)
-
'syntax-object)
-
#f)
-
#f)
-
(vector-ref
-
e-16547
-
1)
-
e-16547))))
-
(if (pair? props-18570)
-
props-18570
-
#f))
- #f
-
mod-16550
- #f))
- (lambda
(type-18571
-
value-18572
-
form-18573
-
e-18574
-
w-18575
-
s-18576
-
mod-18577)
-
(expand-expr-4298
-
type-18571
-
value-18572
-
form-18573
-
e-18574
-
r-16478
-
w-18575
-
s-18576
-
mod-18577)))))
- (begin
- (if (if
(struct?
-
exp-18567)
- (eq?
(struct-vtable
-
exp-18567)
-
(vector-ref
-
%expanded-vtables
-
13))
- #f)
- (let
((meta-18579
-
(struct-ref
-
exp-18567
-
1)))
- (if (not
(assq 'name
-
meta-18579))
- (let
((v-18581
-
(cons (cons 'name
-
n-18293)
-
meta-18579)))
-
(struct-set!
-
exp-18567
- 1
-
v-18581)))))
-
(make-struct/no-tail
- (vector-ref
-
%expanded-vtables
- 9)
- s-16549
- n-18293
-
exp-18567)))))
- (begin
- (primitive-eval
- x-18538)
- x-18538))
- (lambda ()
- (let ((exp-18583
- (call-with-values
- (lambda ()
-
(syntax-type-4296
- e-16547
- r-16478
- w-16548
- (let
((props-18586
-
(source-properties
-
(if (if (vector?
-
e-16547)
-
(if (= (vector-length
-
e-16547)
-
4)
-
(eq? (vector-ref
-
e-16547
-
0)
-
'syntax-object)
-
#f)
-
#f)
-
(vector-ref
-
e-16547
-
1)
-
e-16547))))
- (if
(pair? props-18586)
-
props-18586
- #f))
- #f
- mod-16550
- #f))
- (lambda
(type-18587
-
value-18588
-
form-18589
-
e-18590
-
w-18591
-
s-18592
-
mod-18593)
-
(expand-expr-4298
- type-18587
- value-18588
- form-18589
- e-18590
- r-16478
- w-18591
- s-18592
-
mod-18593)))))
- (begin
- (if (if (struct?
- exp-18583)
- (eq?
(struct-vtable
-
exp-18583)
-
(vector-ref
-
%expanded-vtables
- 13))
- #f)
- (let ((meta-18595
- (struct-ref
- exp-18583
- 1)))
- (if (not (assq
'name
-
meta-18595))
- (let ((v-18597
- (cons
(cons 'name
-
n-18293)
-
meta-18595)))
- (struct-set!
- exp-18583
- 1
-
v-18597)))))
- (make-struct/no-tail
- (vector-ref
- %expanded-vtables
- 9)
- s-16549
- n-18293
- exp-18583)))))
- exps-16484))
- (if (eqv? type-18294
- 'displaced-lexical)
- (syntax-violation
- #f
- "identifier out of context"
- (wrap-4290
- (begin
- (if (if s-16549
-
(supports-source-properties?
- form-16546)
- #f)
- (set-source-properties!
- form-16546
- s-16549))
- form-16546)
- w-16548
- mod-16550)
- (wrap-4290
- value-16545
- w-16548
- mod-16550))
- (syntax-violation
- #f
- "cannot define keyword at top
level"
- (wrap-4290
- (begin
- (if (if s-16549
-
(supports-source-properties?
- form-16546)
- #f)
- (set-source-properties!
- form-16546
- s-16549))
- form-16546)
- w-16548
- mod-16550)
- (wrap-4290
- value-16545
- w-16548
- mod-16550))))))
- (cons (if (eq? m-16481 'c&e)
- (let ((x-18662
- (expand-expr-4298
- type-16544
- value-16545
- form-16546
- e-16547
- r-16478
- w-16548
- s-16549
- mod-16550)))
- (begin
- (primitive-eval x-18662)
- x-18662))
- (lambda ()
- (expand-expr-4298
- type-16544
- value-16545
- form-16546
- e-16547
- r-16478
- w-16548
- s-16549
- mod-16550)))
- exps-16484)))))))))
- (lambda (exps-18667)
- (scan-16346
- (cdr body-16477)
- r-16478
- w-16479
- s-16480
- m-16481
- esew-16482
- mod-16483
- exps-18667)))))))
- (call-with-values
- (lambda ()
- (scan-16346
- body-16339
- r-16340
- w-16341
- s-16342
- m-16343
- esew-16344
- mod-16345
- '()))
- (lambda (exps-16349)
- (if (null? exps-16349)
- (make-struct/no-tail
- (vector-ref %expanded-vtables 0)
- s-16342)
- (build-sequence-4242
- s-16342
- (letrec*
- ((lp-16389
- (lambda (in-16473 out-16474)
- (if (null? in-16473)
- out-16474
- (let ((e-16475 (car in-16473)))
- (lp-16389
- (cdr in-16473)
- (cons (if (procedure? e-16475)
- (e-16475)
- e-16475)
- out-16474)))))))
- (lp-16389 exps-16349 '())))))))))
- (expand-install-global-4294
- (lambda (name-18668 e-18669)
- (let ((exp-18675
- (let ((fun-exp-18685
- (if (equal? (module-name (current-module)) '(guile))
- (make-struct/no-tail
- (vector-ref %expanded-vtables 7)
- #f
- 'make-syntax-transformer)
- (make-struct/no-tail
- (vector-ref %expanded-vtables 5)
- #f
- '(guile)
- 'make-syntax-transformer
- #f)))
- (arg-exps-18686
- (list (make-struct/no-tail
- (vector-ref %expanded-vtables 1)
- #f
- name-18668)
- (make-struct/no-tail
- (vector-ref %expanded-vtables 1)
- #f
- 'macro)
- e-18669)))
- (make-struct/no-tail
- (vector-ref %expanded-vtables 11)
- #f
- fun-exp-18685
- arg-exps-18686))))
- (begin
- (if (if (struct? exp-18675)
- (eq? (struct-vtable exp-18675)
- (vector-ref %expanded-vtables 13))
- #f)
- (let ((meta-18727 (struct-ref exp-18675 1)))
- (if (not (assq 'name meta-18727))
- (let ((v-18734
- (cons (cons 'name name-18668) meta-18727)))
- (struct-set! exp-18675 1 v-18734)))))
- (make-struct/no-tail
- (vector-ref %expanded-vtables 9)
- #f
- name-18668
- exp-18675)))))
- (parse-when-list-4295
- (lambda (e-18745 when-list-18746)
- (let ((result-18747 (strip-4310 when-list-18746 '(()))))
- (letrec*
- ((lp-18748
- (lambda (l-18802)
- (if (null? l-18802)
- result-18747
- (if (let ((t-18804 (car l-18802)))
- (if (eq? t-18804 'compile)
- #t
- (if (eq? t-18804 'load)
- #t
- (if (eq? t-18804 'eval)
- #t
- (eq? t-18804 'expand)))))
- (lp-18748 (cdr l-18802))
- (syntax-violation
- 'eval-when
- "invalid situation"
- e-18745
- (car l-18802)))))))
- (lp-18748 result-18747)))))
- (syntax-type-4296
- (lambda (e-18806
- r-18807
- w-18808
- s-18809
- rib-18810
- mod-18811
- for-car?-18812)
- (if (symbol? e-18806)
- (let ((n-18813 (id-var-name-4280 e-18806 w-18808)))
- (let ((b-18814
- (let ((t-18823 (assq n-18813 r-18807)))
- (if t-18823
- (cdr t-18823)
- (if (symbol? n-18813)
- (let ((t-18829
- (get-global-definition-hook-4224
- n-18813
- mod-18811)))
- (if t-18829 t-18829 '(global)))
- '(displaced-lexical))))))
- (let ((type-18815 (car b-18814)))
- (if (eqv? type-18815 'lexical)
- (values
- type-18815
- (cdr b-18814)
- e-18806
- e-18806
- w-18808
- s-18809
- mod-18811)
- (if (eqv? type-18815 'global)
- (values
- type-18815
- n-18813
- e-18806
- e-18806
- w-18808
- s-18809
- mod-18811)
- (if (eqv? type-18815 'macro)
- (if for-car?-18812
- (values
- type-18815
- (cdr b-18814)
- e-18806
- e-18806
- w-18808
- s-18809
- mod-18811)
- (syntax-type-4296
- (expand-macro-4300
- (cdr b-18814)
- e-18806
- r-18807
- w-18808
- s-18809
- rib-18810
- mod-18811)
- r-18807
- '(())
- s-18809
- rib-18810
- mod-18811
- #f))
- (values
- type-18815
- (cdr b-18814)
- e-18806
- e-18806
- w-18808
- s-18809
- mod-18811)))))))
- (if (pair? e-18806)
- (let ((first-18857 (car e-18806)))
- (call-with-values
- (lambda ()
- (syntax-type-4296
- first-18857
- r-18807
- w-18808
- s-18809
- rib-18810
- mod-18811
- #t))
- (lambda (ftype-18859
- fval-18860
- fform-18861
- fe-18862
- fw-18863
- fs-18864
- fmod-18865)
- (if (eqv? ftype-18859 'lexical)
- (values
- 'lexical-call
- fval-18860
- e-18806
- e-18806
- w-18808
- s-18809
- mod-18811)
- (if (eqv? ftype-18859 'global)
- (values
- 'global-call
- (vector
- 'syntax-object
- fval-18860
- w-18808
- fmod-18865)
- e-18806
- e-18806
- w-18808
- s-18809
- mod-18811)
- (if (eqv? ftype-18859 'macro)
- (syntax-type-4296
- (expand-macro-4300
- fval-18860
- e-18806
- r-18807
- w-18808
- s-18809
- rib-18810
- mod-18811)
- r-18807
- '(())
- s-18809
- rib-18810
- mod-18811
- for-car?-18812)
- (if (eqv? ftype-18859 'module-ref)
- (call-with-values
- (lambda () (fval-18860 e-18806 r-18807 w-18808))
- (lambda (e-18899
- r-18900
- w-18901
- s-18902
- mod-18903)
- (syntax-type-4296
- e-18899
- r-18900
- w-18901
- s-18902
- rib-18810
- mod-18903
- for-car?-18812)))
- (if (eqv? ftype-18859 'core)
- (values
- 'core-form
- fval-18860
- e-18806
- e-18806
- w-18808
- s-18809
- mod-18811)
- (if (eqv? ftype-18859 'local-syntax)
- (values
- 'local-syntax-form
- fval-18860
- e-18806
- e-18806
- w-18808
- s-18809
- mod-18811)
- (if (eqv? ftype-18859 'begin)
- (values
- 'begin-form
- #f
- e-18806
- e-18806
- w-18808
- s-18809
- mod-18811)
- (if (eqv? ftype-18859 'eval-when)
- (values
- 'eval-when-form
- #f
- e-18806
- e-18806
- w-18808
- s-18809
- mod-18811)
- (if (eqv? ftype-18859 'define)
- (let ((tmp-18935
- ($sc-dispatch
- e-18806
- '(_ any any))))
- (if (if tmp-18935
- (@apply
- (lambda (name-18939 val-18940)
- (if (symbol? name-18939)
- #t
- (if (if (vector? name-18939)
- (if (= (vector-length
- name-18939)
- 4)
- (eq? (vector-ref
- name-18939
- 0)
- 'syntax-object)
- #f)
- #f)
- (symbol?
- (vector-ref
- name-18939
- 1))
- #f)))
- tmp-18935)
- #f)
- (@apply
- (lambda (name-18967 val-18968)
- (values
- 'define-form
- name-18967
- e-18806
- val-18968
- w-18808
- s-18809
- mod-18811))
- tmp-18935)
- (let ((tmp-18969
- ($sc-dispatch
- e-18806
- '(_ (any . any)
- any
- .
- each-any))))
- (if (if tmp-18969
- (@apply
- (lambda (name-18973
- args-18974
- e1-18975
- e2-18976)
- (if (if (symbol?
- name-18973)
- #t
- (if (if (vector?
-
name-18973)
- (if (=
(vector-length
-
name-18973)
- 4)
- (eq?
(vector-ref
-
name-18973
- 0)
-
'syntax-object)
- #f)
- #f)
- (symbol?
- (vector-ref
- name-18973
- 1))
- #f))
- (valid-bound-ids?-4287
- (letrec*
- ((lvl-19125
- (lambda
(vars-19127
- ls-19128
- w-19129)
- (if (pair?
vars-19127)
- (lvl-19125
- (cdr
vars-19127)
- (cons
(wrap-4290
-
(car vars-19127)
-
w-19129
- #f)
-
ls-19128)
- w-19129)
- (if (if
(symbol?
-
vars-19127)
- #t
- (if
(if (vector?
-
vars-19127)
-
(if (= (vector-length
-
vars-19127)
-
4)
-
(eq? (vector-ref
-
vars-19127
-
0)
-
'syntax-object)
-
#f)
-
#f)
-
(symbol?
-
(vector-ref
-
vars-19127
-
1))
- #f))
- (cons
(wrap-4290
-
vars-19127
-
w-19129
- #f)
-
ls-19128)
- (if (null?
vars-19127)
- ls-19128
- (if (if
(vector?
-
vars-19127)
-
(if (= (vector-length
-
vars-19127)
-
4)
-
(eq? (vector-ref
-
vars-19127
-
0)
-
'syntax-object)
-
#f)
- #f)
-
(lvl-19125
-
(vector-ref
-
vars-19127
- 1)
-
ls-19128
-
(join-wraps-4277
-
w-19129
-
(vector-ref
-
vars-19127
-
2)))
- (cons
vars-19127
-
ls-19128))))))))
- (lvl-19125
- args-18974
- '()
- '(()))))
- #f))
- tmp-18969)
- #f)
- (@apply
- (lambda (name-19173
- args-19174
- e1-19175
- e2-19176)
- (values
- 'define-form
- (wrap-4290
- name-19173
- w-18808
- mod-18811)
- (wrap-4290
- e-18806
- w-18808
- mod-18811)
- (let ((e-19184
- (cons
'#(syntax-object
- lambda
- ((top)
- #(ribcage
- #(name
- args
- e1
- e2)
- #((top)
- (top)
- (top)
- (top))
-
#("l-*-1902"
-
"l-*-1903"
-
"l-*-1904"
-
"l-*-1905"))
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(key)
-
#((m-*-1867
-
top))
-
#("l-*-1868"))
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(ftype
- fval
- fform
- fe
- fw
- fs
- fmod)
- #((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
-
#("l-*-1860"
-
"l-*-1861"
-
"l-*-1862"
-
"l-*-1863"
-
"l-*-1864"
-
"l-*-1865"
-
"l-*-1866"))
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(first)
- #((top))
-
#("l-*-1851"))
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(e
- r
- w
- s
- rib
- mod
-
for-car?)
- #((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
-
#("l-*-1827"
-
"l-*-1828"
-
"l-*-1829"
-
"l-*-1830"
-
"l-*-1831"
-
"l-*-1832"
-
"l-*-1833"))
- #(ribcage
-
(lambda-var-list
-
gen-var
- strip
-
expand-lambda-case
-
lambda*-formals
-
expand-simple-lambda
-
lambda-formals
-
ellipsis?
-
expand-void
-
eval-local-transformer
-
expand-local-syntax
-
expand-body
-
expand-macro
-
expand-application
-
expand-expr
- expand
-
syntax-type
-
parse-when-list
-
expand-install-global
-
expand-top-sequence
-
expand-sequence
-
source-wrap
- wrap
-
bound-id-member?
-
distinct-bound-ids?
-
valid-bound-ids?
-
bound-id=?
-
free-id=?
-
with-transformer-environment
-
transformer-environment
-
resolve-identifier
-
locally-bound-identifiers
-
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
-
build-global-assignment
-
build-global-reference
-
analyze-variable
-
build-lexical-assignment
-
build-lexical-reference
-
build-dynlet
-
build-conditional
-
build-application
-
build-void
-
maybe-name-value!
-
decorate-source
-
get-global-definition-hook
-
put-global-definition-hook
-
session-id
-
local-eval-hook
-
top-level-eval-hook
- fx<
- fx=
- fx-
- fx+
-
set-lambda-meta!
-
lambda-meta
-
lambda?
-
make-dynlet
-
make-letrec
-
make-let
-
make-lambda-case
-
make-lambda
-
make-sequence
-
make-application
-
make-conditional
-
make-toplevel-define
-
make-toplevel-set
-
make-toplevel-ref
-
make-module-set
-
make-module-ref
-
make-lexical-set
-
make-lexical-ref
-
make-primitive-ref
-
make-const
-
make-void)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
-
("l-*-476"
-
"l-*-474"
-
"l-*-472"
-
"l-*-470"
-
"l-*-468"
-
"l-*-466"
-
"l-*-464"
-
"l-*-462"
-
"l-*-460"
-
"l-*-458"
-
"l-*-456"
-
"l-*-454"
-
"l-*-452"
-
"l-*-450"
-
"l-*-448"
-
"l-*-446"
-
"l-*-444"
-
"l-*-442"
-
"l-*-440"
-
"l-*-438"
-
"l-*-436"
-
"l-*-434"
-
"l-*-432"
-
"l-*-430"
-
"l-*-428"
-
"l-*-426"
-
"l-*-424"
-
"l-*-422"
-
"l-*-420"
-
"l-*-418"
-
"l-*-416"
-
"l-*-414"
-
"l-*-412"
-
"l-*-410"
-
"l-*-408"
-
"l-*-406"
-
"l-*-404"
-
"l-*-402"
-
"l-*-400"
-
"l-*-399"
-
"l-*-397"
-
"l-*-394"
-
"l-*-393"
-
"l-*-392"
-
"l-*-390"
-
"l-*-389"
-
"l-*-387"
-
"l-*-385"
-
"l-*-383"
-
"l-*-381"
-
"l-*-379"
-
"l-*-377"
-
"l-*-375"
-
"l-*-373"
-
"l-*-370"
-
"l-*-368"
-
"l-*-367"
-
"l-*-365"
-
"l-*-363"
-
"l-*-361"
-
"l-*-359"
-
"l-*-358"
-
"l-*-357"
-
"l-*-356"
-
"l-*-354"
-
"l-*-353"
-
"l-*-350"
-
"l-*-348"
-
"l-*-346"
-
"l-*-344"
-
"l-*-342"
-
"l-*-340"
-
"l-*-338"
-
"l-*-337"
-
"l-*-336"
-
"l-*-334"
-
"l-*-332"
-
"l-*-331"
-
"l-*-328"
-
"l-*-327"
-
"l-*-325"
-
"l-*-323"
-
"l-*-321"
-
"l-*-319"
-
"l-*-317"
-
"l-*-315"
-
"l-*-313"
-
"l-*-311"
-
"l-*-309"
-
"l-*-306"
-
"l-*-304"
-
"l-*-302"
-
"l-*-300"
-
"l-*-298"
-
"l-*-296"
-
"l-*-294"
-
"l-*-292"
-
"l-*-290"
-
"l-*-288"
-
"l-*-286"
-
"l-*-284"
-
"l-*-282"
-
"l-*-280"
-
"l-*-278"
-
"l-*-276"
-
"l-*-274"
-
"l-*-272"
-
"l-*-270"
-
"l-*-268"
-
"l-*-266"
-
"l-*-264"
-
"l-*-262"
-
"l-*-260"
-
"l-*-258"
-
"l-*-256"
-
"l-*-255"
-
"l-*-254"
-
"l-*-253"
-
"l-*-252"
-
"l-*-250"
-
"l-*-248"
-
"l-*-246"
-
"l-*-243"
-
"l-*-241"
-
"l-*-239"
-
"l-*-237"
-
"l-*-235"
-
"l-*-233"
-
"l-*-231"
-
"l-*-229"
-
"l-*-227"
-
"l-*-225"
-
"l-*-223"
-
"l-*-221"
-
"l-*-219"
-
"l-*-217"
-
"l-*-215"
-
"l-*-213"
-
"l-*-211"
-
"l-*-209"))
- #(ribcage
-
(define-structure
-
define-expansion-accessors
-
define-expansion-constructors)
- ((top)
- (top)
- (top))
-
("l-*-47"
-
"l-*-46"
-
"l-*-45")))
- (hygiene
- guile))
- (wrap-4290
- (cons
args-19174
- (cons
e1-19175
-
e2-19176))
- w-18808
-
mod-18811))))
- (begin
- (if (if s-18809
-
(supports-source-properties?
- e-19184)
- #f)
-
(set-source-properties!
- e-19184
- s-18809))
- e-19184))
- '(())
- s-18809
- mod-18811))
- tmp-18969)
- (let ((tmp-19191
- ($sc-dispatch
- e-18806
- '(_ any))))
- (if (if tmp-19191
- (@apply
- (lambda (name-19195)
- (if (symbol?
- name-19195)
- #t
- (if (if (vector?
-
name-19195)
- (if (=
(vector-length
-
name-19195)
- 4)
- (eq?
(vector-ref
-
name-19195
- 0)
-
'syntax-object)
- #f)
- #f)
- (symbol?
- (vector-ref
- name-19195
- 1))
- #f)))
- tmp-19191)
- #f)
- (@apply
- (lambda (name-19222)
- (values
- 'define-form
- (wrap-4290
- name-19222
- w-18808
- mod-18811)
- (wrap-4290
- e-18806
- w-18808
- mod-18811)
- '(#(syntax-object
- if
- ((top)
- #(ribcage
- #(name)
- #((top))
- #("l-*-1915"))
- #(ribcage () () ())
- #(ribcage
- #(key)
- #((m-*-1867 top))
- #("l-*-1868"))
- #(ribcage () () ())
- #(ribcage () () ())
- #(ribcage
- #(ftype
- fval
- fform
- fe
- fw
- fs
- fmod)
- #((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- #("l-*-1860"
- "l-*-1861"
- "l-*-1862"
- "l-*-1863"
- "l-*-1864"
- "l-*-1865"
- "l-*-1866"))
- #(ribcage () () ())
- #(ribcage
- #(first)
- #((top))
- #("l-*-1851"))
- #(ribcage () () ())
- #(ribcage () () ())
- #(ribcage
- #(e
- r
- w
- s
- rib
- mod
- for-car?)
- #((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- #("l-*-1827"
- "l-*-1828"
- "l-*-1829"
- "l-*-1830"
- "l-*-1831"
- "l-*-1832"
- "l-*-1833"))
- #(ribcage
- (lambda-var-list
- gen-var
- strip
-
expand-lambda-case
- lambda*-formals
-
expand-simple-lambda
- lambda-formals
- ellipsis?
- expand-void
-
eval-local-transformer
-
expand-local-syntax
- expand-body
- expand-macro
-
expand-application
- expand-expr
- expand
- syntax-type
- parse-when-list
-
expand-install-global
-
expand-top-sequence
- expand-sequence
- source-wrap
- wrap
-
bound-id-member?
-
distinct-bound-ids?
-
valid-bound-ids?
- bound-id=?
- free-id=?
-
with-transformer-environment
-
transformer-environment
-
resolve-identifier
-
locally-bound-identifiers
- 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
-
build-global-assignment
-
build-global-reference
-
analyze-variable
-
build-lexical-assignment
-
build-lexical-reference
- build-dynlet
-
build-conditional
-
build-application
- build-void
-
maybe-name-value!
- decorate-source
-
get-global-definition-hook
-
put-global-definition-hook
- session-id
- local-eval-hook
-
top-level-eval-hook
- fx<
- fx=
- fx-
- fx+
-
set-lambda-meta!
- lambda-meta
- lambda?
- make-dynlet
- make-letrec
- make-let
-
make-lambda-case
- make-lambda
- make-sequence
-
make-application
-
make-conditional
-
make-toplevel-define
-
make-toplevel-set
-
make-toplevel-ref
- make-module-set
- make-module-ref
-
make-lexical-set
-
make-lexical-ref
-
make-primitive-ref
- make-const
- make-void)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-476"
- "l-*-474"
- "l-*-472"
- "l-*-470"
- "l-*-468"
- "l-*-466"
- "l-*-464"
- "l-*-462"
- "l-*-460"
- "l-*-458"
- "l-*-456"
- "l-*-454"
- "l-*-452"
- "l-*-450"
- "l-*-448"
- "l-*-446"
- "l-*-444"
- "l-*-442"
- "l-*-440"
- "l-*-438"
- "l-*-436"
- "l-*-434"
- "l-*-432"
- "l-*-430"
- "l-*-428"
- "l-*-426"
- "l-*-424"
- "l-*-422"
- "l-*-420"
- "l-*-418"
- "l-*-416"
- "l-*-414"
- "l-*-412"
- "l-*-410"
- "l-*-408"
- "l-*-406"
- "l-*-404"
- "l-*-402"
- "l-*-400"
- "l-*-399"
- "l-*-397"
- "l-*-394"
- "l-*-393"
- "l-*-392"
- "l-*-390"
- "l-*-389"
- "l-*-387"
- "l-*-385"
- "l-*-383"
- "l-*-381"
- "l-*-379"
- "l-*-377"
- "l-*-375"
- "l-*-373"
- "l-*-370"
- "l-*-368"
- "l-*-367"
- "l-*-365"
- "l-*-363"
- "l-*-361"
- "l-*-359"
- "l-*-358"
- "l-*-357"
- "l-*-356"
- "l-*-354"
- "l-*-353"
- "l-*-350"
- "l-*-348"
- "l-*-346"
- "l-*-344"
- "l-*-342"
- "l-*-340"
- "l-*-338"
- "l-*-337"
- "l-*-336"
- "l-*-334"
- "l-*-332"
- "l-*-331"
- "l-*-328"
- "l-*-327"
- "l-*-325"
- "l-*-323"
- "l-*-321"
- "l-*-319"
- "l-*-317"
- "l-*-315"
- "l-*-313"
- "l-*-311"
- "l-*-309"
- "l-*-306"
- "l-*-304"
- "l-*-302"
- "l-*-300"
- "l-*-298"
- "l-*-296"
- "l-*-294"
- "l-*-292"
- "l-*-290"
- "l-*-288"
- "l-*-286"
- "l-*-284"
- "l-*-282"
- "l-*-280"
- "l-*-278"
- "l-*-276"
- "l-*-274"
- "l-*-272"
- "l-*-270"
- "l-*-268"
- "l-*-266"
- "l-*-264"
- "l-*-262"
- "l-*-260"
- "l-*-258"
- "l-*-256"
- "l-*-255"
- "l-*-254"
- "l-*-253"
- "l-*-252"
- "l-*-250"
- "l-*-248"
- "l-*-246"
- "l-*-243"
- "l-*-241"
- "l-*-239"
- "l-*-237"
- "l-*-235"
- "l-*-233"
- "l-*-231"
- "l-*-229"
- "l-*-227"
- "l-*-225"
- "l-*-223"
- "l-*-221"
- "l-*-219"
- "l-*-217"
- "l-*-215"
- "l-*-213"
- "l-*-211"
- "l-*-209"))
- #(ribcage
- (define-structure
-
define-expansion-accessors
-
define-expansion-constructors)
- ((top)
- (top)
- (top))
- ("l-*-47"
- "l-*-46"
- "l-*-45")))
- (hygiene guile))
- #(syntax-object
- #f
- ((top)
- #(ribcage
- #(name)
- #((top))
- #("l-*-1915"))
- #(ribcage () () ())
- #(ribcage
- #(key)
- #((m-*-1867 top))
- #("l-*-1868"))
- #(ribcage () () ())
- #(ribcage () () ())
- #(ribcage
- #(ftype
- fval
- fform
- fe
- fw
- fs
- fmod)
- #((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- #("l-*-1860"
- "l-*-1861"
- "l-*-1862"
- "l-*-1863"
- "l-*-1864"
- "l-*-1865"
- "l-*-1866"))
- #(ribcage () () ())
- #(ribcage
- #(first)
- #((top))
- #("l-*-1851"))
- #(ribcage () () ())
- #(ribcage () () ())
- #(ribcage
- #(e
- r
- w
- s
- rib
- mod
- for-car?)
- #((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- #("l-*-1827"
- "l-*-1828"
- "l-*-1829"
- "l-*-1830"
- "l-*-1831"
- "l-*-1832"
- "l-*-1833"))
- #(ribcage
- (lambda-var-list
- gen-var
- strip
-
expand-lambda-case
- lambda*-formals
-
expand-simple-lambda
- lambda-formals
- ellipsis?
- expand-void
-
eval-local-transformer
-
expand-local-syntax
- expand-body
- expand-macro
-
expand-application
- expand-expr
- expand
- syntax-type
- parse-when-list
-
expand-install-global
-
expand-top-sequence
- expand-sequence
- source-wrap
- wrap
-
bound-id-member?
-
distinct-bound-ids?
-
valid-bound-ids?
- bound-id=?
- free-id=?
-
with-transformer-environment
-
transformer-environment
-
resolve-identifier
-
locally-bound-identifiers
- 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
-
build-global-assignment
-
build-global-reference
-
analyze-variable
-
build-lexical-assignment
-
build-lexical-reference
- build-dynlet
-
build-conditional
-
build-application
- build-void
-
maybe-name-value!
- decorate-source
-
get-global-definition-hook
-
put-global-definition-hook
- session-id
- local-eval-hook
-
top-level-eval-hook
- fx<
- fx=
- fx-
- fx+
-
set-lambda-meta!
- lambda-meta
- lambda?
- make-dynlet
- make-letrec
- make-let
-
make-lambda-case
- make-lambda
- make-sequence
-
make-application
-
make-conditional
-
make-toplevel-define
-
make-toplevel-set
-
make-toplevel-ref
- make-module-set
- make-module-ref
-
make-lexical-set
-
make-lexical-ref
-
make-primitive-ref
- make-const
- make-void)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-476"
- "l-*-474"
- "l-*-472"
- "l-*-470"
- "l-*-468"
- "l-*-466"
- "l-*-464"
- "l-*-462"
- "l-*-460"
- "l-*-458"
- "l-*-456"
- "l-*-454"
- "l-*-452"
- "l-*-450"
- "l-*-448"
- "l-*-446"
- "l-*-444"
- "l-*-442"
- "l-*-440"
- "l-*-438"
- "l-*-436"
- "l-*-434"
- "l-*-432"
- "l-*-430"
- "l-*-428"
- "l-*-426"
- "l-*-424"
- "l-*-422"
- "l-*-420"
- "l-*-418"
- "l-*-416"
- "l-*-414"
- "l-*-412"
- "l-*-410"
- "l-*-408"
- "l-*-406"
- "l-*-404"
- "l-*-402"
- "l-*-400"
- "l-*-399"
- "l-*-397"
- "l-*-394"
- "l-*-393"
- "l-*-392"
- "l-*-390"
- "l-*-389"
- "l-*-387"
- "l-*-385"
- "l-*-383"
- "l-*-381"
- "l-*-379"
- "l-*-377"
- "l-*-375"
- "l-*-373"
- "l-*-370"
- "l-*-368"
- "l-*-367"
- "l-*-365"
- "l-*-363"
- "l-*-361"
- "l-*-359"
- "l-*-358"
- "l-*-357"
- "l-*-356"
- "l-*-354"
- "l-*-353"
- "l-*-350"
- "l-*-348"
- "l-*-346"
- "l-*-344"
- "l-*-342"
- "l-*-340"
- "l-*-338"
- "l-*-337"
- "l-*-336"
- "l-*-334"
- "l-*-332"
- "l-*-331"
- "l-*-328"
- "l-*-327"
- "l-*-325"
- "l-*-323"
- "l-*-321"
- "l-*-319"
- "l-*-317"
- "l-*-315"
- "l-*-313"
- "l-*-311"
- "l-*-309"
- "l-*-306"
- "l-*-304"
- "l-*-302"
- "l-*-300"
- "l-*-298"
- "l-*-296"
- "l-*-294"
- "l-*-292"
- "l-*-290"
- "l-*-288"
- "l-*-286"
- "l-*-284"
- "l-*-282"
- "l-*-280"
- "l-*-278"
- "l-*-276"
- "l-*-274"
- "l-*-272"
- "l-*-270"
- "l-*-268"
- "l-*-266"
- "l-*-264"
- "l-*-262"
- "l-*-260"
- "l-*-258"
- "l-*-256"
- "l-*-255"
- "l-*-254"
- "l-*-253"
- "l-*-252"
- "l-*-250"
- "l-*-248"
- "l-*-246"
- "l-*-243"
- "l-*-241"
- "l-*-239"
- "l-*-237"
- "l-*-235"
- "l-*-233"
- "l-*-231"
- "l-*-229"
- "l-*-227"
- "l-*-225"
- "l-*-223"
- "l-*-221"
- "l-*-219"
- "l-*-217"
- "l-*-215"
- "l-*-213"
- "l-*-211"
- "l-*-209"))
- #(ribcage
- (define-structure
-
define-expansion-accessors
-
define-expansion-constructors)
- ((top)
- (top)
- (top))
- ("l-*-47"
- "l-*-46"
- "l-*-45")))
- (hygiene guile))
- #(syntax-object
- #f
- ((top)
- #(ribcage
- #(name)
- #((top))
- #("l-*-1915"))
- #(ribcage () () ())
- #(ribcage
- #(key)
- #((m-*-1867 top))
- #("l-*-1868"))
- #(ribcage () () ())
- #(ribcage () () ())
- #(ribcage
- #(ftype
- fval
- fform
- fe
- fw
- fs
- fmod)
- #((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- #("l-*-1860"
- "l-*-1861"
- "l-*-1862"
- "l-*-1863"
- "l-*-1864"
- "l-*-1865"
- "l-*-1866"))
- #(ribcage () () ())
- #(ribcage
- #(first)
- #((top))
- #("l-*-1851"))
- #(ribcage () () ())
- #(ribcage () () ())
- #(ribcage
- #(e
- r
- w
- s
- rib
- mod
- for-car?)
- #((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- #("l-*-1827"
- "l-*-1828"
- "l-*-1829"
- "l-*-1830"
- "l-*-1831"
- "l-*-1832"
- "l-*-1833"))
- #(ribcage
- (lambda-var-list
- gen-var
- strip
-
expand-lambda-case
- lambda*-formals
-
expand-simple-lambda
- lambda-formals
- ellipsis?
- expand-void
-
eval-local-transformer
-
expand-local-syntax
- expand-body
- expand-macro
-
expand-application
- expand-expr
- expand
- syntax-type
- parse-when-list
-
expand-install-global
-
expand-top-sequence
- expand-sequence
- source-wrap
- wrap
-
bound-id-member?
-
distinct-bound-ids?
-
valid-bound-ids?
- bound-id=?
- free-id=?
-
with-transformer-environment
-
transformer-environment
-
resolve-identifier
-
locally-bound-identifiers
- 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
-
build-global-assignment
-
build-global-reference
-
analyze-variable
-
build-lexical-assignment
-
build-lexical-reference
- build-dynlet
-
build-conditional
-
build-application
- build-void
-
maybe-name-value!
- decorate-source
-
get-global-definition-hook
-
put-global-definition-hook
- session-id
- local-eval-hook
-
top-level-eval-hook
- fx<
- fx=
- fx-
- fx+
-
set-lambda-meta!
- lambda-meta
- lambda?
- make-dynlet
- make-letrec
- make-let
-
make-lambda-case
- make-lambda
- make-sequence
-
make-application
-
make-conditional
-
make-toplevel-define
-
make-toplevel-set
-
make-toplevel-ref
- make-module-set
- make-module-ref
-
make-lexical-set
-
make-lexical-ref
-
make-primitive-ref
- make-const
- make-void)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-476"
- "l-*-474"
- "l-*-472"
- "l-*-470"
- "l-*-468"
- "l-*-466"
- "l-*-464"
- "l-*-462"
- "l-*-460"
- "l-*-458"
- "l-*-456"
- "l-*-454"
- "l-*-452"
- "l-*-450"
- "l-*-448"
- "l-*-446"
- "l-*-444"
- "l-*-442"
- "l-*-440"
- "l-*-438"
- "l-*-436"
- "l-*-434"
- "l-*-432"
- "l-*-430"
- "l-*-428"
- "l-*-426"
- "l-*-424"
- "l-*-422"
- "l-*-420"
- "l-*-418"
- "l-*-416"
- "l-*-414"
- "l-*-412"
- "l-*-410"
- "l-*-408"
- "l-*-406"
- "l-*-404"
- "l-*-402"
- "l-*-400"
- "l-*-399"
- "l-*-397"
- "l-*-394"
- "l-*-393"
- "l-*-392"
- "l-*-390"
- "l-*-389"
- "l-*-387"
- "l-*-385"
- "l-*-383"
- "l-*-381"
- "l-*-379"
- "l-*-377"
- "l-*-375"
- "l-*-373"
- "l-*-370"
- "l-*-368"
- "l-*-367"
- "l-*-365"
- "l-*-363"
- "l-*-361"
- "l-*-359"
- "l-*-358"
- "l-*-357"
- "l-*-356"
- "l-*-354"
- "l-*-353"
- "l-*-350"
- "l-*-348"
- "l-*-346"
- "l-*-344"
- "l-*-342"
- "l-*-340"
- "l-*-338"
- "l-*-337"
- "l-*-336"
- "l-*-334"
- "l-*-332"
- "l-*-331"
- "l-*-328"
- "l-*-327"
- "l-*-325"
- "l-*-323"
- "l-*-321"
- "l-*-319"
- "l-*-317"
- "l-*-315"
- "l-*-313"
- "l-*-311"
- "l-*-309"
- "l-*-306"
- "l-*-304"
- "l-*-302"
- "l-*-300"
- "l-*-298"
- "l-*-296"
- "l-*-294"
- "l-*-292"
- "l-*-290"
- "l-*-288"
- "l-*-286"
- "l-*-284"
- "l-*-282"
- "l-*-280"
- "l-*-278"
- "l-*-276"
- "l-*-274"
- "l-*-272"
- "l-*-270"
- "l-*-268"
- "l-*-266"
- "l-*-264"
- "l-*-262"
- "l-*-260"
- "l-*-258"
- "l-*-256"
- "l-*-255"
- "l-*-254"
- "l-*-253"
- "l-*-252"
- "l-*-250"
- "l-*-248"
- "l-*-246"
- "l-*-243"
- "l-*-241"
- "l-*-239"
- "l-*-237"
- "l-*-235"
- "l-*-233"
- "l-*-231"
- "l-*-229"
- "l-*-227"
- "l-*-225"
- "l-*-223"
- "l-*-221"
- "l-*-219"
- "l-*-217"
- "l-*-215"
- "l-*-213"
- "l-*-211"
- "l-*-209"))
- #(ribcage
- (define-structure
-
define-expansion-accessors
-
define-expansion-constructors)
- ((top)
- (top)
- (top))
- ("l-*-47"
- "l-*-46"
- "l-*-45")))
- (hygiene guile)))
- '(())
- s-18809
- mod-18811))
- tmp-19191)
- (syntax-violation
- #f
- "source expression failed
to match any pattern"
- e-18806)))))))
- (if (eqv? ftype-18859 'define-syntax)
- (let ((tmp-19246
- ($sc-dispatch
- e-18806
- '(_ any any))))
- (if (if tmp-19246
- (@apply
- (lambda (name-19250 val-19251)
- (if (symbol? name-19250)
- #t
- (if (if (vector?
- name-19250)
- (if (=
(vector-length
- name-19250)
- 4)
- (eq? (vector-ref
- name-19250
- 0)
-
'syntax-object)
- #f)
- #f)
- (symbol?
- (vector-ref
- name-19250
- 1))
- #f)))
- tmp-19246)
- #f)
- (@apply
- (lambda (name-19278 val-19279)
- (values
- 'define-syntax-form
- name-19278
- e-18806
- val-19279
- w-18808
- s-18809
- mod-18811))
- tmp-19246)
- (syntax-violation
- #f
- "source expression failed to
match any pattern"
- e-18806)))
- (if (eqv? ftype-18859
- 'define-syntax-parameter)
- (let ((tmp-19293
- ($sc-dispatch
- e-18806
- '(_ any any))))
- (if (if tmp-19293
- (@apply
- (lambda (name-19297
- val-19298)
- (if (symbol? name-19297)
- #t
- (if (if (vector?
- name-19297)
- (if (=
(vector-length
-
name-19297)
- 4)
- (eq? (vector-ref
-
name-19297
- 0)
-
'syntax-object)
- #f)
- #f)
- (symbol?
- (vector-ref
- name-19297
- 1))
- #f)))
- tmp-19293)
- #f)
- (@apply
- (lambda (name-19325 val-19326)
- (values
-
'define-syntax-parameter-form
- name-19325
- e-18806
- val-19326
- w-18808
- s-18809
- mod-18811))
- tmp-19293)
+ (for-each maybe-name-value! ids val-exps)
+ (make-letrec src in-order? ids vars val-exps body-exp)))))
+ (make-syntax-object
+ (lambda (expression wrap module)
+ (vector 'syntax-object expression wrap module)))
+ (syntax-object?
+ (lambda (x)
+ (and (vector? x)
+ (= (vector-length x) 4)
+ (eq? (vector-ref x 0) 'syntax-object))))
+ (syntax-object-expression (lambda (x) (vector-ref x 1)))
+ (syntax-object-wrap (lambda (x) (vector-ref x 2)))
+ (syntax-object-module (lambda (x) (vector-ref x 3)))
+ (set-syntax-object-expression!
+ (lambda (x update) (vector-set! x 1 update)))
+ (set-syntax-object-wrap!
+ (lambda (x update) (vector-set! x 2 update)))
+ (set-syntax-object-module!
+ (lambda (x update) (vector-set! x 3 update)))
+ (source-annotation
+ (lambda (x)
+ (let ((props (source-properties
+ (if (syntax-object? x) (syntax-object-expression x) x))))
+ (and (pair? props) props))))
+ (extend-env
+ (lambda (labels bindings r)
+ (if (null? labels)
+ r
+ (extend-env
+ (cdr labels)
+ (cdr bindings)
+ (cons (cons (car labels) (car bindings)) r)))))
+ (extend-var-env
+ (lambda (labels vars r)
+ (if (null? labels)
+ r
+ (extend-var-env
+ (cdr labels)
+ (cdr vars)
+ (cons (cons (car labels) (cons 'lexical (car vars))) r)))))
+ (macros-only-env
+ (lambda (r)
+ (if (null? r)
+ '()
+ (let ((a (car r)))
+ (if (eq? (cadr a) 'macro)
+ (cons a (macros-only-env (cdr r)))
+ (macros-only-env (cdr r)))))))
+ (lookup
+ (lambda (x r mod)
+ (let ((t (assq x r)))
+ (cond (t (cdr t))
+ ((symbol? x) (or (get-global-definition-hook x mod) '(global)))
+ (else '(displaced-lexical))))))
+ (global-extend
+ (lambda (type sym val) (put-global-definition-hook sym type val)))
+ (nonsymbol-id?
+ (lambda (x)
+ (and (syntax-object? x) (symbol? (syntax-object-expression x)))))
+ (id? (lambda (x)
+ (if (symbol? x)
+ #t
+ (and (syntax-object? x) (symbol? (syntax-object-expression x))))))
+ (id-sym-name&marks
+ (lambda (x w)
+ (if (syntax-object? x)
+ (values
+ (syntax-object-expression x)
+ (join-marks (car w) (car (syntax-object-wrap x))))
+ (values x (car w)))))
+ (gen-label
+ (lambda ()
+ (string-append "l-" (session-id) (symbol->string (gensym "-")))))
+ (gen-labels
+ (lambda (ls)
+ (if (null? ls) '() (cons (gen-label) (gen-labels (cdr ls))))))
+ (make-ribcage
+ (lambda (symnames marks labels)
+ (vector 'ribcage symnames marks labels)))
+ (ribcage?
+ (lambda (x)
+ (and (vector? x)
+ (= (vector-length x) 4)
+ (eq? (vector-ref x 0) 'ribcage))))
+ (ribcage-symnames (lambda (x) (vector-ref x 1)))
+ (ribcage-marks (lambda (x) (vector-ref x 2)))
+ (ribcage-labels (lambda (x) (vector-ref x 3)))
+ (set-ribcage-symnames! (lambda (x update) (vector-set! x 1 update)))
+ (set-ribcage-marks! (lambda (x update) (vector-set! x 2 update)))
+ (set-ribcage-labels! (lambda (x update) (vector-set! x 3 update)))
+ (anti-mark
+ (lambda (w) (cons (cons #f (car w)) (cons 'shift (cdr w)))))
+ (extend-ribcage!
+ (lambda (ribcage id label)
+ (set-ribcage-symnames!
+ ribcage
+ (cons (syntax-object-expression id) (ribcage-symnames ribcage)))
+ (set-ribcage-marks!
+ ribcage
+ (cons (car (syntax-object-wrap id)) (ribcage-marks ribcage)))
+ (set-ribcage-labels! ribcage (cons label (ribcage-labels ribcage)))))
+ (make-binding-wrap
+ (lambda (ids labels w)
+ (if (null? ids)
+ w
+ (cons (car w)
+ (cons (let* ((labelvec (list->vector labels)) (n (vector-length
labelvec)))
+ (let ((symnamevec (make-vector n)) (marksvec
(make-vector n)))
+ (let f ((ids ids) (i 0))
+ (if (not (null? ids))
+ (call-with-values
+ (lambda () (id-sym-name&marks (car ids) w))
+ (lambda (symname marks)
+ (vector-set! symnamevec i symname)
+ (vector-set! marksvec i marks)
+ (f (cdr ids) (+ i 1))))))
+ (make-ribcage symnamevec marksvec labelvec)))
+ (cdr w))))))
+ (smart-append (lambda (m1 m2) (if (null? m2) m1 (append m1 m2))))
+ (join-wraps
+ (lambda (w1 w2)
+ (let ((m1 (car w1)) (s1 (cdr w1)))
+ (if (null? m1)
+ (if (null? s1) w2 (cons (car w2) (smart-append s1 (cdr w2))))
+ (cons (smart-append m1 (car w2)) (smart-append s1 (cdr w2)))))))
+ (join-marks (lambda (m1 m2) (smart-append m1 m2)))
+ (same-marks?
+ (lambda (x y)
+ (or (eq? x y)
+ (and (not (null? x))
+ (not (null? y))
+ (eq? (car x) (car y))
+ (same-marks? (cdr x) (cdr y))))))
+ (id-var-name
+ (lambda (id w)
+ (letrec*
+ ((search
+ (lambda (sym subst marks)
+ (if (null? subst)
+ (values #f marks)
+ (let ((fst (car subst)))
+ (if (eq? fst 'shift)
+ (search sym (cdr subst) (cdr marks))
+ (let ((symnames (ribcage-symnames fst)))
+ (if (vector? symnames)
+ (search-vector-rib sym subst marks symnames fst)
+ (search-list-rib sym subst marks symnames fst))))))))
+ (search-list-rib
+ (lambda (sym subst marks symnames ribcage)
+ (let f ((symnames symnames) (i 0))
+ (cond ((null? symnames) (search sym (cdr subst) marks))
+ ((and (eq? (car symnames) sym)
+ (same-marks? marks (list-ref (ribcage-marks
ribcage) i)))
+ (values (list-ref (ribcage-labels ribcage) i) marks))
+ (else (f (cdr symnames) (+ i 1)))))))
+ (search-vector-rib
+ (lambda (sym subst marks symnames ribcage)
+ (let ((n (vector-length symnames)))
+ (let f ((i 0))
+ (cond ((= i n) (search sym (cdr subst) marks))
+ ((and (eq? (vector-ref symnames i) sym)
+ (same-marks? marks (vector-ref (ribcage-marks
ribcage) i)))
+ (values (vector-ref (ribcage-labels ribcage) i)
marks))
+ (else (f (+ i 1)))))))))
+ (cond ((symbol? id) (or (search id (cdr w) (car w)) id))
+ ((syntax-object? id)
+ (let ((id (syntax-object-expression id)) (w1
(syntax-object-wrap id)))
+ (let ((marks (join-marks (car w) (car w1))))
+ (call-with-values
+ (lambda () (search id (cdr w) marks))
+ (lambda (new-id marks) (or new-id (search id (cdr w1)
marks) id))))))
+ (else (syntax-violation 'id-var-name "invalid id" id))))))
+ (locally-bound-identifiers
+ (lambda (w mod)
+ (letrec*
+ ((scan (lambda (subst results)
+ (if (null? subst)
+ results
+ (let ((fst (car subst)))
+ (if (eq? fst 'shift)
+ (scan (cdr subst) results)
+ (let ((symnames (ribcage-symnames fst)) (marks
(ribcage-marks fst)))
+ (if (vector? symnames)
+ (scan-vector-rib subst symnames marks results)
+ (scan-list-rib subst symnames marks results))))))))
+ (scan-list-rib
+ (lambda (subst symnames marks results)
+ (let f ((symnames symnames) (marks marks) (results results))
+ (if (null? symnames)
+ (scan (cdr subst) results)
+ (f (cdr symnames)
+ (cdr marks)
+ (cons (wrap (car symnames) (anti-mark (cons (car marks)
subst)) mod)
+ results))))))
+ (scan-vector-rib
+ (lambda (subst symnames marks results)
+ (let ((n (vector-length symnames)))
+ (let f ((i 0) (results results))
+ (if (= i n)
+ (scan (cdr subst) results)
+ (f (+ i 1)
+ (cons (wrap (vector-ref symnames i)
+ (anti-mark (cons (vector-ref marks i)
subst))
+ mod)
+ results))))))))
+ (scan (cdr w) '()))))
+ (resolve-identifier
+ (lambda (id w r mod)
+ (letrec*
+ ((resolve-global
+ (lambda (var mod)
+ (let ((b (or (get-global-definition-hook var mod) '(global))))
+ (if (eq? (car b) 'global)
+ (values 'global var mod)
+ (values (car b) (cdr b) mod)))))
+ (resolve-lexical
+ (lambda (label mod)
+ (let ((b (or (assq-ref r label) '(displaced-lexical))))
+ (values (car b) (cdr b) mod)))))
+ (let ((n (id-var-name id w)))
+ (cond ((symbol? n)
+ (resolve-global
+ n
+ (if (syntax-object? id) (syntax-object-module id) mod)))
+ ((string? n)
+ (resolve-lexical
+ n
+ (if (syntax-object? id) (syntax-object-module id) mod)))
+ (else (error "unexpected id-var-name" id w n)))))))
+ (transformer-environment
+ (make-fluid
+ (lambda (k)
+ (error "called outside the dynamic extent of a syntax transformer"))))
+ (with-transformer-environment
+ (lambda (k) ((fluid-ref transformer-environment) k)))
+ (free-id=?
+ (lambda (i j)
+ (and (eq? (let ((x i)) (if (syntax-object? x) (syntax-object-expression
x) x))
+ (let ((x j)) (if (syntax-object? x) (syntax-object-expression
x) x)))
+ (eq? (id-var-name i '(())) (id-var-name j '(()))))))
+ (bound-id=?
+ (lambda (i j)
+ (if (and (syntax-object? i) (syntax-object? j))
+ (and (eq? (syntax-object-expression i) (syntax-object-expression j))
+ (same-marks?
+ (car (syntax-object-wrap i))
+ (car (syntax-object-wrap j))))
+ (eq? i j))))
+ (valid-bound-ids?
+ (lambda (ids)
+ (and (let all-ids? ((ids ids))
+ (or (null? ids) (and (id? (car ids)) (all-ids? (cdr ids)))))
+ (distinct-bound-ids? ids))))
+ (distinct-bound-ids?
+ (lambda (ids)
+ (let distinct? ((ids ids))
+ (or (null? ids)
+ (and (not (bound-id-member? (car ids) (cdr ids)))
+ (distinct? (cdr ids)))))))
+ (bound-id-member?
+ (lambda (x list)
+ (and (not (null? list))
+ (or (bound-id=? x (car list)) (bound-id-member? x (cdr list))))))
+ (wrap (lambda (x w defmod)
+ (cond ((and (null? (car w)) (null? (cdr w))) x)
+ ((syntax-object? x)
+ (make-syntax-object
+ (syntax-object-expression x)
+ (join-wraps w (syntax-object-wrap x))
+ (syntax-object-module x)))
+ ((null? x) x)
+ (else (make-syntax-object x w defmod)))))
+ (source-wrap
+ (lambda (x w s defmod) (wrap (decorate-source x s) w defmod)))
+ (expand-sequence
+ (lambda (body r w s mod)
+ (build-sequence
+ s
+ (let dobody ((body body) (r r) (w w) (mod mod))
+ (if (null? body)
+ '()
+ (let ((first (expand (car body) r w mod)))
+ (cons first (dobody (cdr body) r w mod))))))))
+ (expand-top-sequence
+ (lambda (body r w s m esew mod)
+ (letrec*
+ ((scan (lambda (body r w s m esew mod exps)
+ (if (null? body)
+ exps
+ (call-with-values
+ (lambda ()
+ (call-with-values
+ (lambda ()
+ (let ((e (car body)))
+ (syntax-type e r w (or (source-annotation e) s)
#f mod #f)))
+ (lambda (type value form e w s mod)
+ (let ((key type))
+ (cond ((memv key '(begin-form))
+ (let* ((tmp e) (tmp-1 ($sc-dispatch tmp
'(_))))
+ (if tmp-1
+ (apply (lambda () exps) tmp-1)
+ (let ((tmp-1 ($sc-dispatch tmp '(_
any . each-any))))
+ (if tmp-1
+ (apply (lambda (e1 e2) (scan
(cons e1 e2) r w s m esew mod exps))
+ tmp-1)
(syntax-violation
#f
"source expression failed to
match any pattern"
- e-18806)))
- (values
- 'call
+ tmp))))))
+ ((memv key '(local-syntax-form))
+ (expand-local-syntax
+ value
+ e
+ r
+ w
+ s
+ mod
+ (lambda (body r w s mod) (scan body r w
s m esew mod exps))))
+ ((memv key '(eval-when-form))
+ (let* ((tmp-1 e) (tmp ($sc-dispatch tmp-1
'(_ each-any any . each-any))))
+ (if tmp
+ (apply (lambda (x e1 e2)
+ (let ((when-list
(parse-when-list e x)) (body (cons e1 e2)))
+ (cond ((eq? m 'e)
+ (if (memq 'eval
when-list)
+ (scan body
+ r
+ w
+ s
+ (if (memq
'expand when-list) 'c&e 'e)
+ '(eval)
+ mod
+ exps)
+ (begin
+ (if (memq
'expand when-list)
+
(top-level-eval-hook
+
(expand-top-sequence body r w s 'e '(eval) mod)
+ mod))
+ (values exps))))
+ ((memq 'load
when-list)
+ (cond ((or (memq
'compile when-list)
+ (memq
'expand when-list)
+ (and
(eq? m 'c&e) (memq 'eval when-list)))
+ (scan body r
w s 'c&e '(compile load) mod exps))
+ ((memq m '(c
c&e))
+ (scan body r
w s 'c '(load) mod exps))
+ (else (values
exps))))
+ ((or (memq 'compile
when-list)
+ (memq 'expand
when-list)
+ (and (eq? m
'c&e) (memq 'eval when-list)))
+ (top-level-eval-hook
+
(expand-top-sequence body r w s 'e '(eval) mod)
+ mod)
+ (values exps))
+ (else (values
exps)))))
+ tmp)
+ (syntax-violation
#f
- e-18806
- e-18806
- w-18808
- s-18809
- mod-18811)))))))))))))))
- (if (if (vector? e-18806)
- (if (= (vector-length e-18806) 4)
- (eq? (vector-ref e-18806 0) 'syntax-object)
- #f)
- #f)
- (syntax-type-4296
- (vector-ref e-18806 1)
- r-18807
- (join-wraps-4277 w-18808 (vector-ref e-18806 2))
- (let ((t-19353
- (let ((props-19385
- (source-properties
- (if (if (vector? e-18806)
- (if (= (vector-length e-18806) 4)
- (eq? (vector-ref e-18806 0)
- 'syntax-object)
- #f)
- #f)
- (vector-ref e-18806 1)
- e-18806))))
- (if (pair? props-19385) props-19385 #f))))
- (if t-19353 t-19353 s-18809))
- rib-18810
- (let ((t-19408 (vector-ref e-18806 3)))
- (if t-19408 t-19408 mod-18811))
- for-car?-18812)
- (if (self-evaluating? e-18806)
- (values
- 'constant
- #f
- e-18806
- e-18806
- w-18808
- s-18809
- mod-18811)
- (values
- 'other
- #f
- e-18806
- e-18806
- w-18808
- s-18809
- mod-18811)))))))
- (expand-4297
- (lambda (e-19417 r-19418 w-19419 mod-19420)
+ "source expression failed to match
any pattern"
+ tmp-1))))
+ ((memv key '(define-syntax-form
define-syntax-parameter-form))
+ (let ((n (id-var-name value w)) (r
(macros-only-env r)))
+ (let ((key m))
+ (cond ((memv key '(c))
+ (cond ((memq 'compile esew)
+ (let ((e
(expand-install-global n (expand e r w mod))))
+ (top-level-eval-hook
e mod)
+ (if (memq 'load esew)
(values (cons e exps)) (values exps))))
+ ((memq 'load esew)
+ (values
+ (cons
(expand-install-global n (expand e r w mod)) exps)))
+ (else (values exps))))
+ ((memv key '(c&e))
+ (let ((e
(expand-install-global n (expand e r w mod))))
+ (top-level-eval-hook e mod)
+ (values (cons e exps))))
+ (else
+ (if (memq 'eval esew)
+ (top-level-eval-hook
+ (expand-install-global n
(expand e r w mod))
+ mod))
+ (values exps))))))
+ ((memv key '(define-form))
+ (let* ((n (id-var-name value w)) (type
(car (lookup n r mod))) (key type))
+ (cond ((memv key '(global core macro
module-ref))
+ (if (and (memq m '(c c&e))
+ (not
(module-local-variable (current-module) n))
+ (current-module))
+ (let ((old (module-variable
(current-module) n)))
+ (if (and (variable? old)
(variable-bound? old))
+ (module-define!
(current-module) n (variable-ref old))
+ (module-add!
(current-module) n (make-undefined-variable)))))
+ (values
+ (cons (if (eq? m 'c&e)
+ (let ((x
(build-global-definition s n (expand e r w mod))))
+ (top-level-eval-hook
x mod)
+ x)
+ (lambda ()
(build-global-definition s n (expand e r w mod))))
+ exps)))
+ ((memv key '(displaced-lexical))
+ (syntax-violation
+ #f
+ "identifier out of context"
+ (source-wrap form w s mod)
+ (wrap value w mod)))
+ (else
+ (syntax-violation
+ #f
+ "cannot define keyword at top
level"
+ (source-wrap form w s mod)
+ (wrap value w mod))))))
+ (else
+ (values
+ (cons (if (eq? m 'c&e)
+ (let ((x (expand-expr type
value form e r w s mod)))
+ (top-level-eval-hook x mod)
+ x)
+ (lambda () (expand-expr type
value form e r w s mod)))
+ exps))))))))
+ (lambda (exps) (scan (cdr body) r w s m esew mod
exps)))))))
(call-with-values
- (lambda ()
- (syntax-type-4296
- e-19417
- r-19418
- w-19419
- (let ((props-19427
- (source-properties
- (if (if (vector? e-19417)
- (if (= (vector-length e-19417) 4)
- (eq? (vector-ref e-19417 0) 'syntax-object)
- #f)
- #f)
- (vector-ref e-19417 1)
- e-19417))))
- (if (pair? props-19427) props-19427 #f))
- #f
- mod-19420
- #f))
- (lambda (type-19450
- value-19451
- form-19452
- e-19453
- w-19454
- s-19455
- mod-19456)
- (expand-expr-4298
- type-19450
- value-19451
- form-19452
- e-19453
- r-19418
- w-19454
- s-19455
- mod-19456)))))
- (expand-expr-4298
- (lambda (type-19459
- value-19460
- form-19461
- e-19462
- r-19463
- w-19464
- s-19465
- mod-19466)
- (if (eqv? type-19459 'lexical)
- (make-struct/no-tail
- (vector-ref %expanded-vtables 3)
- s-19465
- e-19462
- value-19460)
- (if (if (eqv? type-19459 'core)
- #t
- (eqv? type-19459 'core-form))
- (value-19460
- e-19462
- r-19463
- w-19464
- s-19465
- mod-19466)
- (if (eqv? type-19459 'module-ref)
- (call-with-values
- (lambda () (value-19460 e-19462 r-19463 w-19464))
- (lambda (e-19502 r-19503 w-19504 s-19505 mod-19506)
- (call-with-values
- (lambda ()
- (syntax-type-4296
- e-19502
- r-19503
- w-19504
- (let ((props-19522
- (source-properties
- (if (if (vector? e-19502)
- (if (= (vector-length e-19502) 4)
- (eq? (vector-ref e-19502 0)
- 'syntax-object)
- #f)
- #f)
- (vector-ref e-19502 1)
- e-19502))))
- (if (pair? props-19522) props-19522 #f))
- #f
- mod-19506
- #f))
- (lambda (type-19555
- value-19556
- form-19557
- e-19558
- w-19559
- s-19560
- mod-19561)
- (expand-expr-4298
- type-19555
- value-19556
- form-19557
- e-19558
- r-19503
- w-19559
- s-19560
- mod-19561)))))
- (if (eqv? type-19459 'lexical-call)
- (expand-application-4299
- (let ((id-19572 (car e-19462)))
- (let ((source-19577
- (let ((props-19587
- (source-properties
- (if (if (vector? id-19572)
- (if (= (vector-length id-19572) 4)
- (eq? (vector-ref id-19572 0)
- 'syntax-object)
- #f)
- #f)
- (vector-ref id-19572 1)
- id-19572))))
- (if (pair? props-19587) props-19587 #f)))
- (name-19578
- (if (if (vector? id-19572)
- (if (= (vector-length id-19572) 4)
- (eq? (vector-ref id-19572 0)
- 'syntax-object)
- #f)
- #f)
- (syntax->datum id-19572)
- id-19572)))
- (make-struct/no-tail
- (vector-ref %expanded-vtables 3)
- source-19577
- name-19578
- value-19460)))
- e-19462
- r-19463
- w-19464
- s-19465
- mod-19466)
- (if (eqv? type-19459 'global-call)
- (expand-application-4299
- (let ((source-19630
- (let ((x-19669 (car e-19462)))
- (let ((props-19670
- (source-properties
- (if (if (vector? x-19669)
- (if (= (vector-length x-19669)
- 4)
- (eq? (vector-ref x-19669 0)
- 'syntax-object)
- #f)
- #f)
- (vector-ref x-19669 1)
- x-19669))))
- (if (pair? props-19670) props-19670 #f))))
- (var-19631
- (if (if (vector? value-19460)
- (if (= (vector-length value-19460) 4)
- (eq? (vector-ref value-19460 0)
- 'syntax-object)
- #f)
- #f)
- (vector-ref value-19460 1)
- value-19460))
- (mod-19632
- (if (if (vector? value-19460)
- (if (= (vector-length value-19460) 4)
- (eq? (vector-ref value-19460 0)
- 'syntax-object)
- #f)
- #f)
- (vector-ref value-19460 3)
- mod-19466)))
- (analyze-variable-4233
- mod-19632
- var-19631
- (lambda (mod-19658 var-19659 public?-19660)
- (make-struct/no-tail
- (vector-ref %expanded-vtables 5)
- source-19630
- mod-19658
- var-19659
- public?-19660))
- (lambda (var-19683)
- (make-struct/no-tail
- (vector-ref %expanded-vtables 7)
- source-19630
- var-19683))))
- e-19462
- r-19463
- w-19464
- s-19465
- mod-19466)
- (if (eqv? type-19459 'constant)
- (let ((exp-19698
- (strip-4310
- (wrap-4290
- (begin
- (if (if s-19465
- (supports-source-properties? e-19462)
- #f)
- (set-source-properties! e-19462 s-19465))
- e-19462)
- w-19464
- mod-19466)
- '(()))))
- (make-struct/no-tail
- (vector-ref %expanded-vtables 1)
- s-19465
- exp-19698))
- (if (eqv? type-19459 'global)
- (analyze-variable-4233
- mod-19466
- value-19460
- (lambda (mod-19737 var-19738 public?-19739)
- (make-struct/no-tail
- (vector-ref %expanded-vtables 5)
- s-19465
- mod-19737
- var-19738
- public?-19739))
- (lambda (var-19748)
- (make-struct/no-tail
- (vector-ref %expanded-vtables 7)
- s-19465
- var-19748)))
- (if (eqv? type-19459 'call)
- (expand-application-4299
- (let ((e-19766 (car e-19462)))
+ (lambda () (scan body r w s m esew mod '()))
+ (lambda (exps)
+ (if (null? exps)
+ (build-void s)
+ (build-sequence
+ s
+ (let lp ((in exps) (out '()))
+ (if (null? in)
+ out
+ (let ((e (car in)))
+ (lp (cdr in) (cons (if (procedure? e) (e) e)
out))))))))))))
+ (expand-install-global
+ (lambda (name e)
+ (build-global-definition
+ #f
+ name
+ (build-application
+ #f
+ (build-primref #f 'make-syntax-transformer)
+ (list (build-data #f name) (build-data #f 'macro) e)))))
+ (parse-when-list
+ (lambda (e when-list)
+ (let ((result (strip when-list '(()))))
+ (let lp ((l result))
+ (cond ((null? l) result)
+ ((memq (car l) '(compile load eval expand)) (lp (cdr l)))
+ (else (syntax-violation 'eval-when "invalid situation" e (car
l))))))))
+ (syntax-type
+ (lambda (e r w s rib mod for-car?)
+ (cond ((symbol? e)
+ (let* ((n (id-var-name e w))
+ (b (lookup n r mod))
+ (type (car b))
+ (key type))
+ (cond ((memv key '(lexical)) (values type (cdr b) e e w s mod))
+ ((memv key '(global)) (values type n e e w s mod))
+ ((memv key '(macro))
+ (if for-car?
+ (values type (cdr b) e e w s mod)
+ (syntax-type
+ (expand-macro (cdr b) e r w s rib mod)
+ r
+ '(())
+ s
+ rib
+ mod
+ #f)))
+ (else (values type (cdr b) e e w s mod)))))
+ ((pair? e)
+ (let ((first (car e)))
+ (call-with-values
+ (lambda () (syntax-type first r w s rib mod #t))
+ (lambda (ftype fval fform fe fw fs fmod)
+ (let ((key ftype))
+ (cond ((memv key '(lexical)) (values 'lexical-call fval
e e w s mod))
+ ((memv key '(global))
+ (values 'global-call (make-syntax-object fval w
fmod) e e w s mod))
+ ((memv key '(macro))
+ (syntax-type
+ (expand-macro fval e r w s rib mod)
+ r
+ '(())
+ s
+ rib
+ mod
+ for-car?))
+ ((memv key '(module-ref))
(call-with-values
- (lambda ()
- (syntax-type-4296
- e-19766
- r-19463
- w-19464
- (let ((props-19776
- (source-properties
- (if (if (vector? e-19766)
- (if (= (vector-length
- e-19766)
- 4)
- (eq? (vector-ref
- e-19766
- 0)
- 'syntax-object)
- #f)
- #f)
- (vector-ref e-19766 1)
- e-19766))))
- (if (pair? props-19776) props-19776 #f))
- #f
- mod-19466
- #f))
- (lambda (type-19799
- value-19800
- form-19801
- e-19802
- w-19803
- s-19804
- mod-19805)
- (expand-expr-4298
- type-19799
- value-19800
- form-19801
- e-19802
- r-19463
- w-19803
- s-19804
- mod-19805))))
- e-19462
- r-19463
- w-19464
- s-19465
- mod-19466)
- (if (eqv? type-19459 'begin-form)
- (let ((tmp-19815
- ($sc-dispatch e-19462 '(_ any . each-any))))
- (if tmp-19815
- (@apply
- (lambda (e1-19819 e2-19820)
- (expand-sequence-4292
- (cons e1-19819 e2-19820)
- r-19463
- w-19464
- s-19465
- mod-19466))
- tmp-19815)
- (let ((tmp-19947 ($sc-dispatch e-19462 '(_))))
- (if tmp-19947
- (@apply
- (lambda ()
- (if (include-deprecated-features)
- (begin
- (issue-deprecation-warning
- "Sequences of zero expressions
are deprecated. Use *unspecified*.")
- (make-struct/no-tail
- (vector-ref %expanded-vtables 0)
- #f))
+ (lambda () (fval e r w))
+ (lambda (e r w s mod) (syntax-type e r w s rib
mod for-car?))))
+ ((memv key '(core)) (values 'core-form fval e e w
s mod))
+ ((memv key '(local-syntax))
+ (values 'local-syntax-form fval e e w s mod))
+ ((memv key '(begin)) (values 'begin-form #f e e w
s mod))
+ ((memv key '(eval-when)) (values 'eval-when-form
#f e e w s mod))
+ ((memv key '(define))
+ (let* ((tmp e) (tmp-1 ($sc-dispatch tmp '(_ any
any))))
+ (if (and tmp-1 (apply (lambda (name val) (id?
name)) tmp-1))
+ (apply (lambda (name val) (values
'define-form name e val w s mod))
+ tmp-1)
+ (let ((tmp-1 ($sc-dispatch tmp '(_ (any .
any) any . each-any))))
+ (if (and tmp-1
+ (apply (lambda (name args e1 e2)
+ (and (id? name)
(valid-bound-ids? (lambda-var-list args))))
+ tmp-1))
+ (apply (lambda (name args e1 e2)
+ (values
+ 'define-form
+ (wrap name w mod)
+ (wrap e w mod)
+ (decorate-source
+ (cons '#(syntax-object
lambda ((top)) (hygiene guile))
+ (wrap (cons args (cons
e1 e2)) w mod))
+ s)
+ '(())
+ s
+ mod))
+ tmp-1)
+ (let ((tmp-1 ($sc-dispatch tmp '(_ any))))
+ (if (and tmp-1 (apply (lambda (name)
(id? name)) tmp-1))
+ (apply (lambda (name)
+ (values
+ 'define-form
+ (wrap name w mod)
+ (wrap e w mod)
+ '(#(syntax-object if
((top)) (hygiene guile)) #f #f)
+ '(())
+ s
+ mod))
+ tmp-1)
(syntax-violation
#f
- "sequence of zero expressions"
- (wrap-4290
- (begin
- (if (if s-19465
-
(supports-source-properties?
- e-19462)
- #f)
- (set-source-properties!
- e-19462
- s-19465))
- e-19462)
- w-19464
- mod-19466))))
- tmp-19947)
- (syntax-violation
- #f
- "source expression failed to match any
pattern"
- e-19462)))))
- (if (eqv? type-19459 'local-syntax-form)
- (expand-local-syntax-4302
- value-19460
- e-19462
- r-19463
- w-19464
- s-19465
- mod-19466
- expand-sequence-4292)
- (if (eqv? type-19459 'eval-when-form)
- (let ((tmp-20059
- ($sc-dispatch
- e-19462
- '(_ each-any any . each-any))))
- (if tmp-20059
- (@apply
- (lambda (x-20063 e1-20064 e2-20065)
- (let ((when-list-20066
- (parse-when-list-4295
- e-19462
- x-20063)))
- (if (memq 'eval when-list-20066)
- (expand-sequence-4292
- (cons e1-20064 e2-20065)
- r-19463
- w-19464
- s-19465
- mod-19466)
- (make-struct/no-tail
- (vector-ref %expanded-vtables 0)
- #f))))
- tmp-20059)
- (syntax-violation
- #f
- "source expression failed to match any
pattern"
- e-19462)))
- (if (if (eqv? type-19459 'define-form)
- #t
- (if (eqv? type-19459 'define-syntax-form)
- #t
- (eqv? type-19459
- 'define-syntax-parameter-form)))
+ "source expression failed to match
any pattern"
+ tmp))))))))
+ ((memv key '(define-syntax))
+ (let* ((tmp-1 e) (tmp ($sc-dispatch tmp-1 '(_ any
any))))
+ (if (and tmp (apply (lambda (name val) (id?
name)) tmp))
+ (apply (lambda (name val) (values
'define-syntax-form name e val w s mod))
+ tmp)
+ (syntax-violation
+ #f
+ "source expression failed to match any
pattern"
+ tmp-1))))
+ ((memv key '(define-syntax-parameter))
+ (let* ((tmp-1 e) (tmp ($sc-dispatch tmp-1 '(_ any
any))))
+ (if (and tmp (apply (lambda (name val) (id?
name)) tmp))
+ (apply (lambda (name val)
+ (values
'define-syntax-parameter-form name e val w s mod))
+ tmp)
(syntax-violation
#f
- "definition in expression context, where
definitions are not allowed,"
- (wrap-4290
- (begin
- (if (if s-19465
- (supports-source-properties?
- form-19461)
- #f)
- (set-source-properties!
- form-19461
- s-19465))
- form-19461)
- w-19464
- mod-19466))
- (if (eqv? type-19459 'syntax)
+ "source expression failed to match any
pattern"
+ tmp-1))))
+ (else (values 'call #f e e w s mod))))))))
+ ((syntax-object? e)
+ (syntax-type
+ (syntax-object-expression e)
+ r
+ (join-wraps w (syntax-object-wrap e))
+ (or (source-annotation e) s)
+ rib
+ (or (syntax-object-module e) mod)
+ for-car?))
+ ((self-evaluating? e) (values 'constant #f e e w s mod))
+ (else (values 'other #f e e w s mod)))))
+ (expand
+ (lambda (e r w mod)
+ (call-with-values
+ (lambda () (syntax-type e r w (source-annotation e) #f mod #f))
+ (lambda (type value form e w s mod)
+ (expand-expr type value form e r w s mod)))))
+ (expand-expr
+ (lambda (type value form e r w s mod)
+ (let ((key type))
+ (cond ((memv key '(lexical)) (build-lexical-reference 'value s e
value))
+ ((memv key '(core core-form)) (value e r w s mod))
+ ((memv key '(module-ref))
+ (call-with-values
+ (lambda () (value e r w))
+ (lambda (e r w s mod) (expand e r w mod))))
+ ((memv key '(lexical-call))
+ (expand-application
+ (let ((id (car e)))
+ (build-lexical-reference
+ 'fun
+ (source-annotation id)
+ (if (syntax-object? id) (syntax->datum id) id)
+ value))
+ e
+ r
+ w
+ s
+ mod))
+ ((memv key '(global-call))
+ (expand-application
+ (build-global-reference
+ (source-annotation (car e))
+ (if (syntax-object? value) (syntax-object-expression
value) value)
+ (if (syntax-object? value) (syntax-object-module value)
mod))
+ e
+ r
+ w
+ s
+ mod))
+ ((memv key '(constant))
+ (build-data s (strip (source-wrap e w s mod) '(()))))
+ ((memv key '(global)) (build-global-reference s value mod))
+ ((memv key '(call))
+ (expand-application (expand (car e) r w mod) e r w s mod))
+ ((memv key '(begin-form))
+ (let* ((tmp e) (tmp-1 ($sc-dispatch tmp '(_ any . each-any))))
+ (if tmp-1
+ (apply (lambda (e1 e2) (expand-sequence (cons e1 e2) r w s
mod))
+ tmp-1)
+ (let ((tmp-1 ($sc-dispatch tmp '(_))))
+ (if tmp-1
+ (apply (lambda ()
+ (if (include-deprecated-features)
+ (begin
+ (issue-deprecation-warning
+ "Sequences of zero expressions are
deprecated. Use *unspecified*.")
+ (expand-void))
(syntax-violation
#f
- "reference to pattern variable outside
syntax form"
- (wrap-4290
- (begin
- (if (if s-19465
- (supports-source-properties?
- e-19462)
- #f)
- (set-source-properties!
- e-19462
- s-19465))
- e-19462)
- w-19464
- mod-19466))
- (if (eqv? type-19459 'displaced-lexical)
- (syntax-violation
- #f
- "reference to identifier outside its
scope"
- (wrap-4290
- (begin
- (if (if s-19465
- (supports-source-properties?
- e-19462)
- #f)
- (set-source-properties!
- e-19462
- s-19465))
- e-19462)
- w-19464
- mod-19466))
- (syntax-violation
- #f
- "unexpected syntax"
- (wrap-4290
- (begin
- (if (if s-19465
- (supports-source-properties?
- e-19462)
- #f)
- (set-source-properties!
- e-19462
- s-19465))
- e-19462)
- w-19464
- mod-19466))))))))))))))))))
- (expand-application-4299
- (lambda (x-20375
- e-20376
- r-20377
- w-20378
- s-20379
- mod-20380)
- (let ((tmp-20382
- ($sc-dispatch e-20376 '(any . each-any))))
- (if tmp-20382
- (@apply
- (lambda (e0-20386 e1-20387)
- (let ((arg-exps-20393
- (map (lambda (e-20398)
- (call-with-values
- (lambda ()
- (syntax-type-4296
- e-20398
- r-20377
- w-20378
- (let ((props-20413
- (source-properties
- (if (if (vector? e-20398)
- (if (= (vector-length
- e-20398)
- 4)
- (eq? (vector-ref
- e-20398
- 0)
- 'syntax-object)
- #f)
- #f)
- (vector-ref e-20398 1)
- e-20398))))
- (if (pair? props-20413)
- props-20413
- #f))
- #f
- mod-20380
- #f))
- (lambda (type-20446
- value-20447
- form-20448
- e-20449
- w-20450
- s-20451
- mod-20452)
- (expand-expr-4298
- type-20446
- value-20447
- form-20448
- e-20449
- r-20377
- w-20450
- s-20451
- mod-20452))))
- e1-20387)))
- (make-struct/no-tail
- (vector-ref %expanded-vtables 11)
- s-20379
- x-20375
- arg-exps-20393)))
- tmp-20382)
- (syntax-violation
- #f
- "source expression failed to match any pattern"
- e-20376)))))
- (expand-macro-4300
- (lambda (p-20462
- e-20463
- r-20464
- w-20465
- s-20466
- rib-20467
- mod-20468)
- (letrec*
- ((rebuild-macro-output-20469
- (lambda (x-20502 m-20503)
- (if (pair? x-20502)
- (let ((e-20507
- (cons (rebuild-macro-output-20469
- (car x-20502)
- m-20503)
- (rebuild-macro-output-20469
- (cdr x-20502)
- m-20503))))
- (begin
- (if (if s-20466
- (supports-source-properties? e-20507)
- #f)
- (set-source-properties! e-20507 s-20466))
- e-20507))
- (if (if (vector? x-20502)
- (if (= (vector-length x-20502) 4)
- (eq? (vector-ref x-20502 0) 'syntax-object)
- #f)
- #f)
- (let ((w-20523 (vector-ref x-20502 2)))
- (let ((ms-20524 (car w-20523))
- (ss-20525 (cdr w-20523)))
- (if (if (pair? ms-20524) (eq? (car ms-20524) #f) #f)
- (let ((expression-20533 (vector-ref x-20502 1))
- (wrap-20534
- (cons (cdr ms-20524)
- (if rib-20467
- (cons rib-20467 (cdr ss-20525))
- (cdr ss-20525))))
- (module-20535 (vector-ref x-20502 3)))
- (vector
- 'syntax-object
- expression-20533
- wrap-20534
- module-20535))
- (let ((expression-20545
- (let ((e-20550 (vector-ref x-20502 1)))
- (begin
- (if (if s-20466
- (supports-source-properties?
- e-20550)
- #f)
- (set-source-properties!
- e-20550
- s-20466))
- e-20550)))
- (wrap-20546
- (cons (cons m-20503 ms-20524)
- (if rib-20467
- (cons rib-20467
- (cons 'shift ss-20525))
- (cons 'shift ss-20525))))
- (module-20547 (vector-ref x-20502 3)))
- (vector
- 'syntax-object
- expression-20545
- wrap-20546
- module-20547)))))
- (if (vector? x-20502)
- (let ((n-20562 (vector-length x-20502)))
- (let ((v-20563
- (let ((e-20571 (make-vector n-20562)))
- (begin
- (if (if s-20466
- (supports-source-properties? e-20571)
- #f)
- (set-source-properties! e-20571 s-20466))
- e-20571))))
- (letrec*
- ((loop-20564
- (lambda (i-20616)
- (if (= i-20616 n-20562)
- v-20563
- (begin
- (vector-set!
- v-20563
- i-20616
- (rebuild-macro-output-20469
- (vector-ref x-20502 i-20616)
- m-20503))
- (loop-20564 (#{1+}# i-20616)))))))
- (loop-20564 0))))
- (if (symbol? x-20502)
- (syntax-violation
- #f
- "encountered raw symbol in macro output"
- (let ((s-20622 (cdr w-20465)))
- (wrap-4290
- (begin
- (if (if s-20622
- (supports-source-properties? e-20463)
- #f)
- (set-source-properties! e-20463 s-20622))
- e-20463)
- w-20465
- mod-20468))
- x-20502)
- (begin
- (if (if s-20466
- (supports-source-properties? x-20502)
- #f)
- (set-source-properties! x-20502 s-20466))
- x-20502))))))))
- (with-fluids
- ((transformer-environment-4283
- (lambda (k-20470)
- (k-20470
- e-20463
- r-20464
- w-20465
- s-20466
- rib-20467
- mod-20468))))
- (rebuild-macro-output-20469
- (p-20462
- (let ((w-20477
- (cons (cons #f (car w-20465))
- (cons 'shift (cdr w-20465)))))
- (wrap-4290
- (begin
- (if (if s-20466
- (supports-source-properties? e-20463)
- #f)
- (set-source-properties! e-20463 s-20466))
- e-20463)
- w-20477
- mod-20468)))
- (gensym
- (string-append "m-" (session-id-4222) "-")))))))
- (expand-body-4301
- (lambda (body-20654
- outer-form-20655
- r-20656
- w-20657
- mod-20658)
- (let ((r-20659
- (cons '("placeholder" placeholder) r-20656)))
- (let ((ribcage-20660 (vector 'ribcage '() '() '())))
- (let ((w-20661
- (cons (car w-20657)
- (cons ribcage-20660 (cdr w-20657)))))
- (letrec*
- ((parse-20662
- (lambda (body-20675
- ids-20676
- labels-20677
- var-ids-20678
- vars-20679
- vals-20680
- bindings-20681)
- (if (null? body-20675)
- (syntax-violation
- #f
- "no expressions in body"
- outer-form-20655)
- (let ((e-20682 (cdr (car body-20675)))
- (er-20683 (car (car body-20675))))
- (call-with-values
- (lambda ()
- (syntax-type-4296
- e-20682
- er-20683
- '(())
- (let ((props-20692
- (source-properties
- (if (if (vector? er-20683)
- (if (= (vector-length er-20683)
- 4)
- (eq? (vector-ref er-20683 0)
- 'syntax-object)
- #f)
- #f)
- (vector-ref er-20683 1)
- er-20683))))
- (if (pair? props-20692) props-20692 #f))
- ribcage-20660
- mod-20658
- #f))
- (lambda (type-20715
- value-20716
- form-20717
- e-20718
- w-20719
- s-20720
- mod-20721)
- (if (eqv? type-20715 'define-form)
- (let ((id-20729
- (wrap-4290
- value-20716
- w-20719
- mod-20721))
- (label-20730
- (string-append
- "l-"
- (session-id-4222)
- (symbol->string (gensym "-")))))
- (let ((var-20731
- (let ((id-20791
- (if (if (vector? id-20729)
- (if (= (vector-length
- id-20729)
- 4)
- (eq? (vector-ref
- id-20729
- 0)
- 'syntax-object)
- #f)
- #f)
- (vector-ref id-20729 1)
- id-20729)))
- (gensym
- (string-append
- (symbol->string id-20791)
- "-")))))
- (begin
- (let ((update-20781
- (cons (vector-ref id-20729 1)
- (vector-ref
- ribcage-20660
- 1))))
- (vector-set!
- ribcage-20660
- 1
- update-20781))
- (let ((update-20783
- (cons (car (vector-ref
- id-20729
- 2))
- (vector-ref
- ribcage-20660
- 2))))
- (vector-set!
- ribcage-20660
- 2
- update-20783))
- (let ((update-20785
- (cons label-20730
- (vector-ref
- ribcage-20660
- 3))))
- (vector-set!
- ribcage-20660
- 3
- update-20785))
- (parse-20662
- (cdr body-20675)
- (cons id-20729 ids-20676)
- (cons label-20730 labels-20677)
- (cons id-20729 var-ids-20678)
- (cons var-20731 vars-20679)
- (cons (cons er-20683
- (wrap-4290
- e-20718
- w-20719
- mod-20721))
- vals-20680)
- (cons (cons 'lexical var-20731)
- bindings-20681)))))
- (if (if (eqv? type-20715 'define-syntax-form)
- #t
- (eqv? type-20715
- 'define-syntax-parameter-form))
- (let ((id-20827
- (wrap-4290
- value-20716
- w-20719
- mod-20721))
- (label-20828
- (string-append
- "l-"
- (session-id-4222)
- (symbol->string (gensym "-")))))
- (begin
- (let ((update-20878
- (cons (vector-ref id-20827 1)
- (vector-ref
- ribcage-20660
- 1))))
- (vector-set!
- ribcage-20660
- 1
- update-20878))
- (let ((update-20880
- (cons (car (vector-ref
- id-20827
- 2))
- (vector-ref
- ribcage-20660
- 2))))
- (vector-set!
- ribcage-20660
- 2
- update-20880))
- (let ((update-20882
- (cons label-20828
- (vector-ref
- ribcage-20660
- 3))))
- (vector-set!
- ribcage-20660
- 3
- update-20882))
- (parse-20662
- (cdr body-20675)
- (cons id-20827 ids-20676)
- (cons label-20828 labels-20677)
- var-ids-20678
- vars-20679
- vals-20680
- (cons (cons 'macro
- (cons er-20683
- (wrap-4290
- e-20718
- w-20719
- mod-20721)))
- bindings-20681))))
- (if (eqv? type-20715 'begin-form)
- (let ((tmp-20893
- ($sc-dispatch
- e-20718
- '(_ . each-any))))
- (if tmp-20893
- (@apply
- (lambda (e1-20897)
- (parse-20662
- (letrec*
- ((f-20898
- (lambda (forms-20961)
- (if (null? forms-20961)
- (cdr body-20675)
- (cons (cons er-20683
- (wrap-4290
- (car
forms-20961)
- w-20719
-
mod-20721))
- (f-20898
- (cdr
forms-20961)))))))
- (f-20898 e1-20897))
- ids-20676
- labels-20677
- var-ids-20678
- vars-20679
- vals-20680
- bindings-20681))
- tmp-20893)
- (syntax-violation
- #f
- "source expression failed to match
any pattern"
- e-20718)))
- (if (eqv? type-20715 'local-syntax-form)
- (expand-local-syntax-4302
- value-20716
- e-20718
- er-20683
- w-20719
- s-20720
- mod-20721
- (lambda (forms-20978
- er-20979
- w-20980
- s-20981
- mod-20982)
- (parse-20662
- (letrec*
- ((f-20983
- (lambda (forms-21046)
- (if (null? forms-21046)
- (cdr body-20675)
- (cons (cons er-20979
- (wrap-4290
- (car
forms-21046)
- w-20980
- mod-20982))
- (f-20983
- (cdr
forms-21046)))))))
- (f-20983 forms-20978))
- ids-20676
- labels-20677
- var-ids-20678
- vars-20679
- vals-20680
- bindings-20681)))
- (if (null? ids-20676)
- (let ((exps-21053
- (map (lambda (x-21054)
- (let ((e-21057
- (cdr x-21054))
- (r-21058
- (car x-21054)))
- (call-with-values
- (lambda ()
- (syntax-type-4296
- e-21057
- r-21058
- '(())
- (let
((props-21065
-
(source-properties
- (if
(if (vector?
-
e-21057)
-
(if (= (vector-length
-
e-21057)
-
4)
-
(eq? (vector-ref
-
e-21057
-
0)
-
'syntax-object)
-
#f)
-
#f)
-
(vector-ref
-
e-21057
- 1)
-
e-21057))))
- (if (pair?
props-21065)
- props-21065
- #f))
- #f
- mod-20721
- #f))
- (lambda (type-21088
- value-21089
- form-21090
- e-21091
- w-21092
- s-21093
- mod-21094)
- (expand-expr-4298
- type-21088
- value-21089
- form-21090
- e-21091
- r-21058
- w-21092
- s-21093
- mod-21094)))))
- (cons (cons er-20683
- (wrap-4290
- (begin
- (if (if
s-20720
-
(supports-source-properties?
-
e-20718)
- #f)
-
(set-source-properties!
-
e-20718
-
s-20720))
- e-20718)
- w-20719
- mod-20721))
- (cdr body-20675)))))
- (if (null? (cdr exps-21053))
- (car exps-21053)
- (make-struct/no-tail
- (vector-ref %expanded-vtables 12)
- #f
- exps-21053)))
- (begin
- (if (not (valid-bound-ids?-4287
- ids-20676))
- (syntax-violation
- #f
- "invalid or duplicate identifier
in definition"
- outer-form-20655))
- (letrec*
- ((loop-21197
- (lambda (bs-21200
- er-cache-21201
- r-cache-21202)
- (if (not (null? bs-21200))
- (let ((b-21203
- (car bs-21200)))
- (if (eq? (car b-21203)
- 'macro)
- (let ((er-21205
- (car (cdr
b-21203))))
- (let ((r-cache-21206
- (if (eq?
er-21205
-
er-cache-21201)
-
r-cache-21202
-
(macros-only-env-4257
-
er-21205))))
- (begin
- (set-cdr!
- b-21203
-
(eval-local-transformer-4303
- (let ((e-21249
- (cdr
(cdr b-21203))))
-
(call-with-values
- (lambda ()
-
(syntax-type-4296
-
e-21249
-
r-cache-21206
- '(())
- (let
((props-21259
-
(source-properties
-
(if (if (vector?
-
e-21249)
-
(if (= (vector-length
-
e-21249)
-
4)
-
(eq? (vector-ref
-
e-21249
-
0)
-
'syntax-object)
-
#f)
-
#f)
-
(vector-ref
-
e-21249
-
1)
-
e-21249))))
- (if
(pair? props-21259)
-
props-21259
-
#f))
- #f
-
mod-20721
- #f))
- (lambda
(type-21282
-
value-21283
-
form-21284
-
e-21285
-
w-21286
-
s-21287
-
mod-21288)
-
(expand-expr-4298
-
type-21282
-
value-21283
-
form-21284
-
e-21285
-
r-cache-21206
-
w-21286
-
s-21287
-
mod-21288))))
- mod-20721))
- (loop-21197
- (cdr bs-21200)
- er-21205
-
r-cache-21206))))
- (loop-21197
- (cdr bs-21200)
- er-cache-21201
- r-cache-21202)))))))
- (loop-21197 bindings-20681 #f #f))
- (set-cdr!
- r-20659
- (extend-env-4255
- labels-20677
- bindings-20681
- (cdr r-20659)))
- (let ((ids-21471
- (reverse
- (map syntax->datum
- var-ids-20678)))
- (vars-21472
- (reverse vars-20679))
- (val-exps-21473
- (map (lambda (x-21560)
- (let ((e-21563
- (cdr x-21560))
- (r-21564
- (car
x-21560)))
- (call-with-values
- (lambda ()
-
(syntax-type-4296
- e-21563
- r-21564
- '(())
- (let
((props-21571
-
(source-properties
- (if
(if (vector?
-
e-21563)
-
(if (= (vector-length
-
e-21563)
-
4)
-
(eq? (vector-ref
-
e-21563
-
0)
-
'syntax-object)
-
#f)
-
#f)
-
(vector-ref
-
e-21563
-
1)
-
e-21563))))
- (if (pair?
props-21571)
-
props-21571
- #f))
- #f
- mod-20721
- #f))
- (lambda
(type-21594
-
value-21595
-
form-21596
- e-21597
- w-21598
- s-21599
-
mod-21600)
-
(expand-expr-4298
- type-21594
- value-21595
- form-21596
- e-21597
- r-21564
- w-21598
- s-21599
- mod-21600)))))
- (reverse vals-20680)))
- (body-exp-21474
- (let ((exps-21478
- (map (lambda
(x-21479)
- (let ((e-21482
- (cdr
x-21479))
- (r-21483
- (car
x-21479)))
-
(call-with-values
- (lambda ()
-
(syntax-type-4296
-
e-21482
-
r-21483
- '(())
- (let
((props-21490
-
(source-properties
-
(if (if (vector?
-
e-21482)
-
(if (= (vector-length
-
e-21482)
-
4)
-
(eq? (vector-ref
-
e-21482
-
0)
-
'syntax-object)
-
#f)
-
#f)
-
(vector-ref
-
e-21482
-
1)
-
e-21482))))
- (if
(pair? props-21490)
-
props-21490
-
#f))
- #f
-
mod-20721
- #f))
- (lambda
(type-21513
-
value-21514
-
form-21515
-
e-21516
-
w-21517
-
s-21518
-
mod-21519)
-
(expand-expr-4298
-
type-21513
-
value-21514
-
form-21515
-
e-21516
-
r-21483
-
w-21517
-
s-21518
-
mod-21519)))))
- (cons (cons
er-20683
-
(wrap-4290
-
(begin
-
(if (if s-20720
-
(supports-source-properties?
-
e-20718)
-
#f)
-
(set-source-properties!
-
e-20718
-
s-20720))
-
e-20718)
-
w-20719
-
mod-20721))
- (cdr
body-20675)))))
- (if (null? (cdr
exps-21478))
- (car exps-21478)
- (make-struct/no-tail
- (vector-ref
- %expanded-vtables
- 12)
- #f
- exps-21478)))))
- (if (null? vars-21472)
- body-exp-21474
- (begin
- (for-each
- maybe-name-value!-4226
- ids-21471
- val-exps-21473)
- (make-struct/no-tail
- (vector-ref
- %expanded-vtables
- 16)
- #f
- #t
- ids-21471
- vars-21472
- val-exps-21473
-
body-exp-21474)))))))))))))))))
- (parse-20662
- (map (lambda (x-20665)
- (cons r-20659
- (wrap-4290 x-20665 w-20661 mod-20658)))
- body-20654)
- '()
- '()
- '()
- '()
- '()
- '())))))))
- (expand-local-syntax-4302
- (lambda (rec?-21610
- e-21611
- r-21612
- w-21613
- s-21614
- mod-21615
- k-21616)
- (let ((tmp-21618
- ($sc-dispatch
- e-21611
- '(_ #(each (any any)) any . each-any))))
- (if tmp-21618
- (@apply
- (lambda (id-21620 val-21621 e1-21622 e2-21623)
- (if (not (valid-bound-ids?-4287 id-21620))
- (syntax-violation
- #f
- "duplicate bound keyword"
- e-21611)
- (let ((labels-21713 (gen-labels-4264 id-21620)))
- (let ((new-w-21714
- (make-binding-wrap-4275
- id-21620
- labels-21713
- w-21613)))
- (k-21616
- (cons e1-21622 e2-21623)
- (extend-env-4255
- labels-21713
- (let ((trans-r-21750
- (macros-only-env-4257 r-21612)))
- (begin
- (if rec?-21610 new-w-21714 w-21613)
- (map (lambda (x-21751)
- (cons 'macro
- (eval-local-transformer-4303
- (call-with-values
- (lambda ()
- (syntax-type-4296
- x-21751
- trans-r-21750
- (values
- (if rec?-21610
- new-w-21714
- w-21613))
- (let ((props-21811
- (source-properties
- (if (if (vector?
-
x-21751)
- (if (=
(vector-length
-
x-21751)
- 4)
- (eq?
(vector-ref
-
x-21751
- 0)
-
'syntax-object)
- #f)
- #f)
- (vector-ref
- x-21751
- 1)
- x-21751))))
- (if (pair? props-21811)
- props-21811
- #f))
- #f
- mod-21615
- #f))
- (lambda (type-21844
- value-21845
- form-21846
- e-21847
- w-21848
- s-21849
- mod-21850)
- (expand-expr-4298
- type-21844
- value-21845
- form-21846
- e-21847
- trans-r-21750
- w-21848
- s-21849
- mod-21850)))
- mod-21615)))
- val-21621)))
- r-21612)
- new-w-21714
- s-21614
- mod-21615)))))
- tmp-21618)
- (syntax-violation
- #f
- "bad local syntax definition"
- (wrap-4290
- (begin
- (if (if s-21614
- (supports-source-properties? e-21611)
- #f)
- (set-source-properties! e-21611 s-21614))
- e-21611)
- w-21613
- mod-21615))))))
- (eval-local-transformer-4303
- (lambda (expanded-22016 mod-22017)
- (let ((p-22018 (primitive-eval expanded-22016)))
- (if (procedure? p-22018)
- p-22018
- (syntax-violation
- #f
- "nonprocedure transformer"
- p-22018)))))
- (ellipsis?-4305
- (lambda (x-4941)
- (if (if (if (vector? x-4941)
- (if (= (vector-length x-4941) 4)
- (eq? (vector-ref x-4941 0) 'syntax-object)
- #f)
- #f)
- (symbol? (vector-ref x-4941 1))
- #f)
- (if (eq? (if (if (vector? x-4941)
- (if (= (vector-length x-4941) 4)
- (eq? (vector-ref x-4941 0) 'syntax-object)
- #f)
- #f)
- (vector-ref x-4941 1)
- x-4941)
- (if (if (= (vector-length
- '#(syntax-object
- ...
- ((top)
- #(ribcage () () ())
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("l-*-2265"))
- #(ribcage
- (lambda-var-list
- gen-var
- strip
- expand-lambda-case
- lambda*-formals
- expand-simple-lambda
- lambda-formals
- ellipsis?
- expand-void
- eval-local-transformer
- expand-local-syntax
- expand-body
- expand-macro
- expand-application
- expand-expr
- expand
- syntax-type
- parse-when-list
- expand-install-global
- expand-top-sequence
- expand-sequence
- source-wrap
- wrap
- bound-id-member?
- distinct-bound-ids?
- valid-bound-ids?
- bound-id=?
- free-id=?
- with-transformer-environment
- transformer-environment
- resolve-identifier
- locally-bound-identifiers
- 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
- build-global-assignment
- build-global-reference
- analyze-variable
- build-lexical-assignment
- build-lexical-reference
- build-dynlet
- build-conditional
- build-application
- build-void
- maybe-name-value!
- decorate-source
- get-global-definition-hook
- put-global-definition-hook
- session-id
- local-eval-hook
- top-level-eval-hook
- fx<
- fx=
- fx-
- fx+
- set-lambda-meta!
- lambda-meta
- lambda?
- make-dynlet
- make-letrec
- make-let
- make-lambda-case
- make-lambda
- make-sequence
- make-application
- make-conditional
- make-toplevel-define
- make-toplevel-set
- make-toplevel-ref
- make-module-set
- make-module-ref
- make-lexical-set
- make-lexical-ref
- make-primitive-ref
- make-const
- make-void)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-476"
- "l-*-474"
- "l-*-472"
- "l-*-470"
- "l-*-468"
- "l-*-466"
- "l-*-464"
- "l-*-462"
- "l-*-460"
- "l-*-458"
- "l-*-456"
- "l-*-454"
- "l-*-452"
- "l-*-450"
- "l-*-448"
- "l-*-446"
- "l-*-444"
- "l-*-442"
- "l-*-440"
- "l-*-438"
- "l-*-436"
- "l-*-434"
- "l-*-432"
- "l-*-430"
- "l-*-428"
- "l-*-426"
- "l-*-424"
- "l-*-422"
- "l-*-420"
- "l-*-418"
- "l-*-416"
- "l-*-414"
- "l-*-412"
- "l-*-410"
- "l-*-408"
- "l-*-406"
- "l-*-404"
- "l-*-402"
- "l-*-400"
- "l-*-399"
- "l-*-397"
- "l-*-394"
- "l-*-393"
- "l-*-392"
- "l-*-390"
- "l-*-389"
- "l-*-387"
- "l-*-385"
- "l-*-383"
- "l-*-381"
- "l-*-379"
- "l-*-377"
- "l-*-375"
- "l-*-373"
- "l-*-370"
- "l-*-368"
- "l-*-367"
- "l-*-365"
- "l-*-363"
- "l-*-361"
- "l-*-359"
- "l-*-358"
- "l-*-357"
- "l-*-356"
- "l-*-354"
- "l-*-353"
- "l-*-350"
- "l-*-348"
- "l-*-346"
- "l-*-344"
- "l-*-342"
- "l-*-340"
- "l-*-338"
- "l-*-337"
- "l-*-336"
- "l-*-334"
- "l-*-332"
- "l-*-331"
- "l-*-328"
- "l-*-327"
- "l-*-325"
- "l-*-323"
- "l-*-321"
- "l-*-319"
- "l-*-317"
- "l-*-315"
- "l-*-313"
- "l-*-311"
- "l-*-309"
- "l-*-306"
- "l-*-304"
- "l-*-302"
- "l-*-300"
- "l-*-298"
- "l-*-296"
- "l-*-294"
- "l-*-292"
- "l-*-290"
- "l-*-288"
- "l-*-286"
- "l-*-284"
- "l-*-282"
- "l-*-280"
- "l-*-278"
- "l-*-276"
- "l-*-274"
- "l-*-272"
- "l-*-270"
- "l-*-268"
- "l-*-266"
- "l-*-264"
- "l-*-262"
- "l-*-260"
- "l-*-258"
- "l-*-256"
- "l-*-255"
- "l-*-254"
- "l-*-253"
- "l-*-252"
- "l-*-250"
- "l-*-248"
- "l-*-246"
- "l-*-243"
- "l-*-241"
- "l-*-239"
- "l-*-237"
- "l-*-235"
- "l-*-233"
- "l-*-231"
- "l-*-229"
- "l-*-227"
- "l-*-225"
- "l-*-223"
- "l-*-221"
- "l-*-219"
- "l-*-217"
- "l-*-215"
- "l-*-213"
- "l-*-211"
- "l-*-209"))
- #(ribcage
- (define-structure
- define-expansion-accessors
- define-expansion-constructors)
- ((top) (top) (top))
- ("l-*-47" "l-*-46" "l-*-45")))
- (hygiene guile)))
- 4)
- #t
- #f)
- '...
- '#(syntax-object
- ...
- ((top)
- #(ribcage () () ())
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("l-*-2265"))
- #(ribcage
- (lambda-var-list
- gen-var
- strip
- expand-lambda-case
- lambda*-formals
- expand-simple-lambda
- lambda-formals
- ellipsis?
- expand-void
- eval-local-transformer
- expand-local-syntax
- expand-body
- expand-macro
- expand-application
- expand-expr
- expand
- syntax-type
- parse-when-list
- expand-install-global
- expand-top-sequence
- expand-sequence
- source-wrap
- wrap
- bound-id-member?
- distinct-bound-ids?
- valid-bound-ids?
- bound-id=?
- free-id=?
- with-transformer-environment
- transformer-environment
- resolve-identifier
- locally-bound-identifiers
- 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
- build-global-assignment
- build-global-reference
- analyze-variable
- build-lexical-assignment
- build-lexical-reference
- build-dynlet
- build-conditional
- build-application
- build-void
- maybe-name-value!
- decorate-source
- get-global-definition-hook
- put-global-definition-hook
- session-id
- local-eval-hook
- top-level-eval-hook
- fx<
- fx=
- fx-
- fx+
- set-lambda-meta!
- lambda-meta
- lambda?
- make-dynlet
- make-letrec
- make-let
- make-lambda-case
- make-lambda
- make-sequence
- make-application
- make-conditional
- make-toplevel-define
- make-toplevel-set
- make-toplevel-ref
- make-module-set
- make-module-ref
- make-lexical-set
- make-lexical-ref
- make-primitive-ref
- make-const
- make-void)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-476"
- "l-*-474"
- "l-*-472"
- "l-*-470"
- "l-*-468"
- "l-*-466"
- "l-*-464"
- "l-*-462"
- "l-*-460"
- "l-*-458"
- "l-*-456"
- "l-*-454"
- "l-*-452"
- "l-*-450"
- "l-*-448"
- "l-*-446"
- "l-*-444"
- "l-*-442"
- "l-*-440"
- "l-*-438"
- "l-*-436"
- "l-*-434"
- "l-*-432"
- "l-*-430"
- "l-*-428"
- "l-*-426"
- "l-*-424"
- "l-*-422"
- "l-*-420"
- "l-*-418"
- "l-*-416"
- "l-*-414"
- "l-*-412"
- "l-*-410"
- "l-*-408"
- "l-*-406"
- "l-*-404"
- "l-*-402"
- "l-*-400"
- "l-*-399"
- "l-*-397"
- "l-*-394"
- "l-*-393"
- "l-*-392"
- "l-*-390"
- "l-*-389"
- "l-*-387"
- "l-*-385"
- "l-*-383"
- "l-*-381"
- "l-*-379"
- "l-*-377"
- "l-*-375"
- "l-*-373"
- "l-*-370"
- "l-*-368"
- "l-*-367"
- "l-*-365"
- "l-*-363"
- "l-*-361"
- "l-*-359"
- "l-*-358"
- "l-*-357"
- "l-*-356"
- "l-*-354"
- "l-*-353"
- "l-*-350"
- "l-*-348"
- "l-*-346"
- "l-*-344"
- "l-*-342"
- "l-*-340"
- "l-*-338"
- "l-*-337"
- "l-*-336"
- "l-*-334"
- "l-*-332"
- "l-*-331"
- "l-*-328"
- "l-*-327"
- "l-*-325"
- "l-*-323"
- "l-*-321"
- "l-*-319"
- "l-*-317"
- "l-*-315"
- "l-*-313"
- "l-*-311"
- "l-*-309"
- "l-*-306"
- "l-*-304"
- "l-*-302"
- "l-*-300"
- "l-*-298"
- "l-*-296"
- "l-*-294"
- "l-*-292"
- "l-*-290"
- "l-*-288"
- "l-*-286"
- "l-*-284"
- "l-*-282"
- "l-*-280"
- "l-*-278"
- "l-*-276"
- "l-*-274"
- "l-*-272"
- "l-*-270"
- "l-*-268"
- "l-*-266"
- "l-*-264"
- "l-*-262"
- "l-*-260"
- "l-*-258"
- "l-*-256"
- "l-*-255"
- "l-*-254"
- "l-*-253"
- "l-*-252"
- "l-*-250"
- "l-*-248"
- "l-*-246"
- "l-*-243"
- "l-*-241"
- "l-*-239"
- "l-*-237"
- "l-*-235"
- "l-*-233"
- "l-*-231"
- "l-*-229"
- "l-*-227"
- "l-*-225"
- "l-*-223"
- "l-*-221"
- "l-*-219"
- "l-*-217"
- "l-*-215"
- "l-*-213"
- "l-*-211"
- "l-*-209"))
- #(ribcage
- (define-structure
- define-expansion-accessors
- define-expansion-constructors)
- ((top) (top) (top))
- ("l-*-47" "l-*-46" "l-*-45")))
- (hygiene guile))))
- (eq? (id-var-name-4280 x-4941 '(()))
- (id-var-name-4280
- '#(syntax-object
- ...
- ((top)
- #(ribcage () () ())
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("l-*-2265"))
- #(ribcage
- (lambda-var-list
- gen-var
- strip
- expand-lambda-case
- lambda*-formals
- expand-simple-lambda
- lambda-formals
- ellipsis?
- expand-void
- eval-local-transformer
- expand-local-syntax
- expand-body
- expand-macro
- expand-application
- expand-expr
- expand
- syntax-type
- parse-when-list
- expand-install-global
- expand-top-sequence
- expand-sequence
- source-wrap
- wrap
- bound-id-member?
- distinct-bound-ids?
- valid-bound-ids?
- bound-id=?
- free-id=?
- with-transformer-environment
- transformer-environment
- resolve-identifier
- locally-bound-identifiers
- 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
- build-global-assignment
- build-global-reference
- analyze-variable
- build-lexical-assignment
- build-lexical-reference
- build-dynlet
- build-conditional
- build-application
- build-void
- maybe-name-value!
- decorate-source
- get-global-definition-hook
- put-global-definition-hook
- session-id
- local-eval-hook
- top-level-eval-hook
- fx<
- fx=
- fx-
- fx+
- set-lambda-meta!
- lambda-meta
- lambda?
- make-dynlet
- make-letrec
- make-let
- make-lambda-case
- make-lambda
- make-sequence
- make-application
- make-conditional
- make-toplevel-define
- make-toplevel-set
- make-toplevel-ref
- make-module-set
- make-module-ref
- make-lexical-set
- make-lexical-ref
- make-primitive-ref
- make-const
- make-void)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-476"
- "l-*-474"
- "l-*-472"
- "l-*-470"
- "l-*-468"
- "l-*-466"
- "l-*-464"
- "l-*-462"
- "l-*-460"
- "l-*-458"
- "l-*-456"
- "l-*-454"
- "l-*-452"
- "l-*-450"
- "l-*-448"
- "l-*-446"
- "l-*-444"
- "l-*-442"
- "l-*-440"
- "l-*-438"
- "l-*-436"
- "l-*-434"
- "l-*-432"
- "l-*-430"
- "l-*-428"
- "l-*-426"
- "l-*-424"
- "l-*-422"
- "l-*-420"
- "l-*-418"
- "l-*-416"
- "l-*-414"
- "l-*-412"
- "l-*-410"
- "l-*-408"
- "l-*-406"
- "l-*-404"
- "l-*-402"
- "l-*-400"
- "l-*-399"
- "l-*-397"
- "l-*-394"
- "l-*-393"
- "l-*-392"
- "l-*-390"
- "l-*-389"
- "l-*-387"
- "l-*-385"
- "l-*-383"
- "l-*-381"
- "l-*-379"
- "l-*-377"
- "l-*-375"
- "l-*-373"
- "l-*-370"
- "l-*-368"
- "l-*-367"
- "l-*-365"
- "l-*-363"
- "l-*-361"
- "l-*-359"
- "l-*-358"
- "l-*-357"
- "l-*-356"
- "l-*-354"
- "l-*-353"
- "l-*-350"
- "l-*-348"
- "l-*-346"
- "l-*-344"
- "l-*-342"
- "l-*-340"
- "l-*-338"
- "l-*-337"
- "l-*-336"
- "l-*-334"
- "l-*-332"
- "l-*-331"
- "l-*-328"
- "l-*-327"
- "l-*-325"
- "l-*-323"
- "l-*-321"
- "l-*-319"
- "l-*-317"
- "l-*-315"
- "l-*-313"
- "l-*-311"
- "l-*-309"
- "l-*-306"
- "l-*-304"
- "l-*-302"
- "l-*-300"
- "l-*-298"
- "l-*-296"
- "l-*-294"
- "l-*-292"
- "l-*-290"
- "l-*-288"
- "l-*-286"
- "l-*-284"
- "l-*-282"
- "l-*-280"
- "l-*-278"
- "l-*-276"
- "l-*-274"
- "l-*-272"
- "l-*-270"
- "l-*-268"
- "l-*-266"
- "l-*-264"
- "l-*-262"
- "l-*-260"
- "l-*-258"
- "l-*-256"
- "l-*-255"
- "l-*-254"
- "l-*-253"
- "l-*-252"
- "l-*-250"
- "l-*-248"
- "l-*-246"
- "l-*-243"
- "l-*-241"
- "l-*-239"
- "l-*-237"
- "l-*-235"
- "l-*-233"
- "l-*-231"
- "l-*-229"
- "l-*-227"
- "l-*-225"
- "l-*-223"
- "l-*-221"
- "l-*-219"
- "l-*-217"
- "l-*-215"
- "l-*-213"
- "l-*-211"
- "l-*-209"))
- #(ribcage
- (define-structure
- define-expansion-accessors
- define-expansion-constructors)
- ((top) (top) (top))
- ("l-*-47" "l-*-46" "l-*-45")))
- (hygiene guile))
- '(())))
- #f)
- #f)))
- (lambda-formals-4306
- (lambda (orig-args-22023)
- (letrec*
- ((req-22024
- (lambda (args-22028 rreq-22029)
- (let ((tmp-22031 ($sc-dispatch args-22028 '())))
- (if tmp-22031
- (@apply
- (lambda () (check-22025 (reverse rreq-22029) #f))
- tmp-22031)
- (let ((tmp-22154
- ($sc-dispatch args-22028 '(any . any))))
- (if (if tmp-22154
- (@apply
- (lambda (a-22158 b-22159)
- (if (symbol? a-22158)
- #t
- (if (if (vector? a-22158)
- (if (= (vector-length a-22158) 4)
- (eq? (vector-ref a-22158 0)
- 'syntax-object)
- #f)
- #f)
- (symbol? (vector-ref a-22158 1))
- #f)))
- tmp-22154)
- #f)
- (@apply
- (lambda (a-22186 b-22187)
- (req-22024 b-22187 (cons a-22186 rreq-22029)))
- tmp-22154)
- (let ((tmp-22188 (list args-22028)))
- (if (@apply
- (lambda (r-22190)
- (if (symbol? r-22190)
- #t
- (if (if (vector? r-22190)
- (if (= (vector-length r-22190) 4)
- (eq? (vector-ref r-22190 0)
- 'syntax-object)
- #f)
- #f)
- (symbol? (vector-ref r-22190 1))
- #f)))
- tmp-22188)
- (@apply
- (lambda (r-22220)
- (check-22025 (reverse rreq-22029) r-22220))
- tmp-22188)
- (syntax-violation
- 'lambda
- "invalid argument list"
- orig-args-22023
- args-22028)))))))))
- (check-22025
- (lambda (req-22351 rest-22352)
- (if (distinct-bound-ids?-4288
- (if rest-22352
- (cons rest-22352 req-22351)
- req-22351))
- (values req-22351 #f rest-22352 #f)
- (syntax-violation
- 'lambda
- "duplicate identifier in argument list"
- orig-args-22023)))))
- (req-22024 orig-args-22023 '()))))
- (expand-simple-lambda-4307
- (lambda (e-22468
- r-22469
- w-22470
- s-22471
- mod-22472
- req-22473
- rest-22474
- meta-22475
- body-22476)
- (let ((ids-22477
- (if rest-22474
- (append req-22473 (list rest-22474))
- req-22473)))
- (let ((vars-22478 (map gen-var-4311 ids-22477)))
- (let ((labels-22479 (gen-labels-4264 ids-22477)))
- (build-simple-lambda-4237
- s-22471
- (map syntax->datum req-22473)
- (if rest-22474 (syntax->datum rest-22474) #f)
- vars-22478
- meta-22475
- (expand-body-4301
- body-22476
- (wrap-4290
- (begin
- (if (if s-22471
- (supports-source-properties? e-22468)
- #f)
- (set-source-properties! e-22468 s-22471))
- e-22468)
- w-22470
- mod-22472)
- (extend-var-env-4256
- labels-22479
- vars-22478
- r-22469)
- (make-binding-wrap-4275
- ids-22477
- labels-22479
- w-22470)
- mod-22472)))))))
- (lambda*-formals-4308
- (lambda (orig-args-22759)
- (letrec*
- ((req-22760
- (lambda (args-22767 rreq-22768)
- (let ((tmp-22770 ($sc-dispatch args-22767 '())))
- (if tmp-22770
- (@apply
- (lambda ()
- (check-22764 (reverse rreq-22768) '() #f '()))
- tmp-22770)
- (let ((tmp-22776
- ($sc-dispatch args-22767 '(any . any))))
- (if (if tmp-22776
- (@apply
- (lambda (a-22780 b-22781)
- (if (symbol? a-22780)
- #t
- (if (if (vector? a-22780)
- (if (= (vector-length a-22780) 4)
- (eq? (vector-ref a-22780 0)
- 'syntax-object)
- #f)
- #f)
- (symbol? (vector-ref a-22780 1))
- #f)))
- tmp-22776)
- #f)
- (@apply
- (lambda (a-22808 b-22809)
- (req-22760 b-22809 (cons a-22808 rreq-22768)))
- tmp-22776)
- (let ((tmp-22810
- ($sc-dispatch args-22767 '(any . any))))
- (if (if tmp-22810
- (@apply
- (lambda (a-22814 b-22815)
- (eq? (syntax->datum a-22814) #:optional))
- tmp-22810)
- #f)
- (@apply
- (lambda (a-22816 b-22817)
- (opt-22761 b-22817 (reverse rreq-22768) '()))
- tmp-22810)
- (let ((tmp-22820
- ($sc-dispatch args-22767 '(any . any))))
- (if (if tmp-22820
- (@apply
- (lambda (a-22824 b-22825)
- (eq? (syntax->datum a-22824) #:key))
- tmp-22820)
- #f)
- (@apply
- (lambda (a-22826 b-22827)
- (key-22762
- b-22827
- (reverse rreq-22768)
- '()
- '()))
- tmp-22820)
- (let ((tmp-22830
- ($sc-dispatch args-22767 '(any any))))
- (if (if tmp-22830
- (@apply
- (lambda (a-22834 b-22835)
- (eq? (syntax->datum a-22834)
- #:rest))
- tmp-22830)
- #f)
- (@apply
- (lambda (a-22836 b-22837)
- (rest-22763
- b-22837
- (reverse rreq-22768)
- '()
- '()))
- tmp-22830)
- (let ((tmp-22840 (list args-22767)))
- (if (@apply
- (lambda (r-22842)
- (if (symbol? r-22842)
- #t
- (if (if (vector? r-22842)
- (if (= (vector-length
- r-22842)
- 4)
- (eq? (vector-ref
- r-22842
- 0)
- 'syntax-object)
- #f)
- #f)
- (symbol?
- (vector-ref r-22842 1))
- #f)))
- tmp-22840)
- (@apply
- (lambda (r-22872)
- (rest-22763
- r-22872
- (reverse rreq-22768)
- '()
- '()))
- tmp-22840)
- (syntax-violation
- 'lambda*
- "invalid argument list"
- orig-args-22759
- args-22767)))))))))))))))
- (opt-22761
- (lambda (args-22891 req-22892 ropt-22893)
- (let ((tmp-22895 ($sc-dispatch args-22891 '())))
- (if tmp-22895
- (@apply
- (lambda ()
- (check-22764
- req-22892
- (reverse ropt-22893)
- #f
- '()))
- tmp-22895)
- (let ((tmp-22901
- ($sc-dispatch args-22891 '(any . any))))
- (if (if tmp-22901
- (@apply
- (lambda (a-22905 b-22906)
- (if (symbol? a-22905)
- #t
- (if (if (vector? a-22905)
- (if (= (vector-length a-22905) 4)
- (eq? (vector-ref a-22905 0)
- 'syntax-object)
- #f)
- #f)
- (symbol? (vector-ref a-22905 1))
- #f)))
- tmp-22901)
- #f)
- (@apply
- (lambda (a-22933 b-22934)
- (opt-22761
- b-22934
- req-22892
- (cons (cons a-22933
- '(#(syntax-object
- #f
- ((top)
- #(ribcage
- #(a b)
- #((top) (top))
- #("l-*-2402" "l-*-2403"))
- #(ribcage () () ())
- #(ribcage
- #(args req ropt)
- #((top) (top) (top))
- #("l-*-2392"
- "l-*-2393"
- "l-*-2394"))
- #(ribcage
- (check rest key opt req)
- ((top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-2338"
- "l-*-2336"
- "l-*-2334"
- "l-*-2332"
- "l-*-2330"))
- #(ribcage
- #(orig-args)
- #((top))
- #("l-*-2329"))
- #(ribcage
- (lambda-var-list
- gen-var
- strip
- expand-lambda-case
- lambda*-formals
- expand-simple-lambda
- lambda-formals
- ellipsis?
- expand-void
- eval-local-transformer
- expand-local-syntax
- expand-body
- expand-macro
- expand-application
- expand-expr
- expand
- syntax-type
- parse-when-list
- expand-install-global
- expand-top-sequence
- expand-sequence
- source-wrap
- wrap
- bound-id-member?
- distinct-bound-ids?
- valid-bound-ids?
- bound-id=?
- free-id=?
- with-transformer-environment
- transformer-environment
- resolve-identifier
- locally-bound-identifiers
- 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
- build-global-assignment
- build-global-reference
- analyze-variable
- build-lexical-assignment
- build-lexical-reference
- build-dynlet
- build-conditional
- build-application
- build-void
- maybe-name-value!
- decorate-source
- get-global-definition-hook
- put-global-definition-hook
- session-id
- local-eval-hook
- top-level-eval-hook
- fx<
- fx=
- fx-
- fx+
- set-lambda-meta!
- lambda-meta
- lambda?
- make-dynlet
- make-letrec
- make-let
- make-lambda-case
- make-lambda
- make-sequence
- make-application
- make-conditional
- make-toplevel-define
- make-toplevel-set
- make-toplevel-ref
- make-module-set
- make-module-ref
- make-lexical-set
- make-lexical-ref
- make-primitive-ref
- make-const
- make-void)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-476"
- "l-*-474"
- "l-*-472"
- "l-*-470"
- "l-*-468"
- "l-*-466"
- "l-*-464"
- "l-*-462"
- "l-*-460"
- "l-*-458"
- "l-*-456"
- "l-*-454"
- "l-*-452"
- "l-*-450"
- "l-*-448"
- "l-*-446"
- "l-*-444"
- "l-*-442"
- "l-*-440"
- "l-*-438"
- "l-*-436"
- "l-*-434"
- "l-*-432"
- "l-*-430"
- "l-*-428"
- "l-*-426"
- "l-*-424"
- "l-*-422"
- "l-*-420"
- "l-*-418"
- "l-*-416"
- "l-*-414"
- "l-*-412"
- "l-*-410"
- "l-*-408"
- "l-*-406"
- "l-*-404"
- "l-*-402"
- "l-*-400"
- "l-*-399"
- "l-*-397"
- "l-*-394"
- "l-*-393"
- "l-*-392"
- "l-*-390"
- "l-*-389"
- "l-*-387"
- "l-*-385"
- "l-*-383"
- "l-*-381"
- "l-*-379"
- "l-*-377"
- "l-*-375"
- "l-*-373"
- "l-*-370"
- "l-*-368"
- "l-*-367"
- "l-*-365"
- "l-*-363"
- "l-*-361"
- "l-*-359"
- "l-*-358"
- "l-*-357"
- "l-*-356"
- "l-*-354"
- "l-*-353"
- "l-*-350"
- "l-*-348"
- "l-*-346"
- "l-*-344"
- "l-*-342"
- "l-*-340"
- "l-*-338"
- "l-*-337"
- "l-*-336"
- "l-*-334"
- "l-*-332"
- "l-*-331"
- "l-*-328"
- "l-*-327"
- "l-*-325"
- "l-*-323"
- "l-*-321"
- "l-*-319"
- "l-*-317"
- "l-*-315"
- "l-*-313"
- "l-*-311"
- "l-*-309"
- "l-*-306"
- "l-*-304"
- "l-*-302"
- "l-*-300"
- "l-*-298"
- "l-*-296"
- "l-*-294"
- "l-*-292"
- "l-*-290"
- "l-*-288"
- "l-*-286"
- "l-*-284"
- "l-*-282"
- "l-*-280"
- "l-*-278"
- "l-*-276"
- "l-*-274"
- "l-*-272"
- "l-*-270"
- "l-*-268"
- "l-*-266"
- "l-*-264"
- "l-*-262"
- "l-*-260"
- "l-*-258"
- "l-*-256"
- "l-*-255"
- "l-*-254"
- "l-*-253"
- "l-*-252"
- "l-*-250"
- "l-*-248"
- "l-*-246"
- "l-*-243"
- "l-*-241"
- "l-*-239"
- "l-*-237"
- "l-*-235"
- "l-*-233"
- "l-*-231"
- "l-*-229"
- "l-*-227"
- "l-*-225"
- "l-*-223"
- "l-*-221"
- "l-*-219"
- "l-*-217"
- "l-*-215"
- "l-*-213"
- "l-*-211"
- "l-*-209"))
- #(ribcage
- (define-structure
- define-expansion-accessors
-
define-expansion-constructors)
- ((top) (top) (top))
- ("l-*-47" "l-*-46" "l-*-45")))
- (hygiene guile))))
- ropt-22893)))
- tmp-22901)
- (let ((tmp-22935
- ($sc-dispatch args-22891 '((any any) . any))))
- (if (if tmp-22935
- (@apply
- (lambda (a-22939 init-22940 b-22941)
- (if (symbol? a-22939)
- #t
- (if (if (vector? a-22939)
- (if (= (vector-length a-22939) 4)
- (eq? (vector-ref a-22939 0)
- 'syntax-object)
- #f)
- #f)
- (symbol? (vector-ref a-22939 1))
- #f)))
- tmp-22935)
- #f)
- (@apply
- (lambda (a-22968 init-22969 b-22970)
- (opt-22761
- b-22970
- req-22892
- (cons (list a-22968 init-22969) ropt-22893)))
- tmp-22935)
- (let ((tmp-22971
- ($sc-dispatch args-22891 '(any . any))))
- (if (if tmp-22971
- (@apply
- (lambda (a-22975 b-22976)
- (eq? (syntax->datum a-22975) #:key))
- tmp-22971)
- #f)
- (@apply
- (lambda (a-22977 b-22978)
- (key-22762
- b-22978
- req-22892
- (reverse ropt-22893)
- '()))
- tmp-22971)
- (let ((tmp-22981
- ($sc-dispatch args-22891 '(any any))))
- (if (if tmp-22981
- (@apply
- (lambda (a-22985 b-22986)
- (eq? (syntax->datum a-22985)
- #:rest))
- tmp-22981)
- #f)
- (@apply
- (lambda (a-22987 b-22988)
- (rest-22763
- b-22988
- req-22892
- (reverse ropt-22893)
- '()))
- tmp-22981)
- (let ((tmp-22991 (list args-22891)))
- (if (@apply
- (lambda (r-22993)
- (if (symbol? r-22993)
- #t
- (if (if (vector? r-22993)
- (if (= (vector-length
- r-22993)
- 4)
- (eq? (vector-ref
- r-22993
- 0)
- 'syntax-object)
- #f)
- #f)
- (symbol?
- (vector-ref r-22993 1))
- #f)))
- tmp-22991)
- (@apply
- (lambda (r-23023)
- (rest-22763
- r-23023
- req-22892
- (reverse ropt-22893)
- '()))
- tmp-22991)
- (syntax-violation
- 'lambda*
- "invalid optional argument list"
- orig-args-22759
- args-22891)))))))))))))))
- (key-22762
- (lambda (args-23042 req-23043 opt-23044 rkey-23045)
- (let ((tmp-23047 ($sc-dispatch args-23042 '())))
- (if tmp-23047
- (@apply
- (lambda ()
- (check-22764
- req-23043
- opt-23044
- #f
- (cons #f (reverse rkey-23045))))
- tmp-23047)
- (let ((tmp-23053
- ($sc-dispatch args-23042 '(any . any))))
- (if (if tmp-23053
- (@apply
- (lambda (a-23057 b-23058)
- (if (symbol? a-23057)
- #t
- (if (if (vector? a-23057)
- (if (= (vector-length a-23057) 4)
- (eq? (vector-ref a-23057 0)
- 'syntax-object)
- #f)
- #f)
- (symbol? (vector-ref a-23057 1))
- #f)))
- tmp-23053)
- #f)
- (@apply
- (lambda (a-23085 b-23086)
- (let ((tmp-23087
- (symbol->keyword (syntax->datum a-23085))))
- (key-22762
- b-23086
- req-23043
- opt-23044
- (cons (cons tmp-23087
- (cons a-23085
- '(#(syntax-object
- #f
- ((top)
- #(ribcage () () ())
- #(ribcage
- #(k)
- #((top))
- #("l-*-2465"))
- #(ribcage
- #(a b)
- #((top) (top))
- #("l-*-2459"
- "l-*-2460"))
- #(ribcage () () ())
- #(ribcage
- #(args req opt rkey)
- #((top)
- (top)
- (top)
- (top))
- #("l-*-2448"
- "l-*-2449"
- "l-*-2450"
- "l-*-2451"))
- #(ribcage
- (check rest
- key
- opt
- req)
- ((top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-2338"
- "l-*-2336"
- "l-*-2334"
- "l-*-2332"
- "l-*-2330"))
- #(ribcage
- #(orig-args)
- #((top))
- #("l-*-2329"))
- #(ribcage
- (lambda-var-list
- gen-var
- strip
- expand-lambda-case
- lambda*-formals
- expand-simple-lambda
- lambda-formals
- ellipsis?
- expand-void
-
eval-local-transformer
- expand-local-syntax
- expand-body
- expand-macro
- expand-application
- expand-expr
- expand
- syntax-type
- parse-when-list
-
expand-install-global
- expand-top-sequence
- expand-sequence
- source-wrap
- wrap
- bound-id-member?
- distinct-bound-ids?
- valid-bound-ids?
- bound-id=?
- free-id=?
-
with-transformer-environment
-
transformer-environment
- resolve-identifier
-
locally-bound-identifiers
- 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
-
build-global-assignment
-
build-global-reference
- analyze-variable
-
build-lexical-assignment
-
build-lexical-reference
- build-dynlet
- build-conditional
- build-application
- build-void
- maybe-name-value!
- decorate-source
-
get-global-definition-hook
-
put-global-definition-hook
- session-id
- local-eval-hook
- top-level-eval-hook
- fx<
- fx=
- fx-
- fx+
- set-lambda-meta!
- lambda-meta
- lambda?
- make-dynlet
- make-letrec
- make-let
- make-lambda-case
- make-lambda
- make-sequence
- make-application
- make-conditional
- make-toplevel-define
- make-toplevel-set
- make-toplevel-ref
- make-module-set
- make-module-ref
- make-lexical-set
- make-lexical-ref
- make-primitive-ref
- make-const
- make-void)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-476"
- "l-*-474"
- "l-*-472"
- "l-*-470"
- "l-*-468"
- "l-*-466"
- "l-*-464"
- "l-*-462"
- "l-*-460"
- "l-*-458"
- "l-*-456"
- "l-*-454"
- "l-*-452"
- "l-*-450"
- "l-*-448"
- "l-*-446"
- "l-*-444"
- "l-*-442"
- "l-*-440"
- "l-*-438"
- "l-*-436"
- "l-*-434"
- "l-*-432"
- "l-*-430"
- "l-*-428"
- "l-*-426"
- "l-*-424"
- "l-*-422"
- "l-*-420"
- "l-*-418"
- "l-*-416"
- "l-*-414"
- "l-*-412"
- "l-*-410"
- "l-*-408"
- "l-*-406"
- "l-*-404"
- "l-*-402"
- "l-*-400"
- "l-*-399"
- "l-*-397"
- "l-*-394"
- "l-*-393"
- "l-*-392"
- "l-*-390"
- "l-*-389"
- "l-*-387"
- "l-*-385"
- "l-*-383"
- "l-*-381"
- "l-*-379"
- "l-*-377"
- "l-*-375"
- "l-*-373"
- "l-*-370"
- "l-*-368"
- "l-*-367"
- "l-*-365"
- "l-*-363"
- "l-*-361"
- "l-*-359"
- "l-*-358"
- "l-*-357"
- "l-*-356"
- "l-*-354"
- "l-*-353"
- "l-*-350"
- "l-*-348"
- "l-*-346"
- "l-*-344"
- "l-*-342"
- "l-*-340"
- "l-*-338"
- "l-*-337"
- "l-*-336"
- "l-*-334"
- "l-*-332"
- "l-*-331"
- "l-*-328"
- "l-*-327"
- "l-*-325"
- "l-*-323"
- "l-*-321"
- "l-*-319"
- "l-*-317"
- "l-*-315"
- "l-*-313"
- "l-*-311"
- "l-*-309"
- "l-*-306"
- "l-*-304"
- "l-*-302"
- "l-*-300"
- "l-*-298"
- "l-*-296"
- "l-*-294"
- "l-*-292"
- "l-*-290"
- "l-*-288"
- "l-*-286"
- "l-*-284"
- "l-*-282"
- "l-*-280"
- "l-*-278"
- "l-*-276"
- "l-*-274"
- "l-*-272"
- "l-*-270"
- "l-*-268"
- "l-*-266"
- "l-*-264"
- "l-*-262"
- "l-*-260"
- "l-*-258"
- "l-*-256"
- "l-*-255"
- "l-*-254"
- "l-*-253"
- "l-*-252"
- "l-*-250"
- "l-*-248"
- "l-*-246"
- "l-*-243"
- "l-*-241"
- "l-*-239"
- "l-*-237"
- "l-*-235"
- "l-*-233"
- "l-*-231"
- "l-*-229"
- "l-*-227"
- "l-*-225"
- "l-*-223"
- "l-*-221"
- "l-*-219"
- "l-*-217"
- "l-*-215"
- "l-*-213"
- "l-*-211"
- "l-*-209"))
- #(ribcage
- (define-structure
-
define-expansion-accessors
-
define-expansion-constructors)
- ((top) (top) (top))
- ("l-*-47"
- "l-*-46"
- "l-*-45")))
- (hygiene guile)))))
- rkey-23045))))
- tmp-23053)
- (let ((tmp-23090
- ($sc-dispatch args-23042 '((any any) . any))))
- (if (if tmp-23090
- (@apply
- (lambda (a-23094 init-23095 b-23096)
- (if (symbol? a-23094)
- #t
- (if (if (vector? a-23094)
- (if (= (vector-length a-23094) 4)
- (eq? (vector-ref a-23094 0)
- 'syntax-object)
- #f)
- #f)
- (symbol? (vector-ref a-23094 1))
- #f)))
- tmp-23090)
- #f)
- (@apply
- (lambda (a-23123 init-23124 b-23125)
- (let ((tmp-23126
- (symbol->keyword
- (syntax->datum a-23123))))
- (key-22762
- b-23125
- req-23043
- opt-23044
- (cons (list tmp-23126 a-23123 init-23124)
- rkey-23045))))
- tmp-23090)
- (let ((tmp-23129
- ($sc-dispatch
- args-23042
- '((any any any) . any))))
- (if (if tmp-23129
- (@apply
- (lambda (a-23133
- init-23134
- k-23135
- b-23136)
- (if (if (symbol? a-23133)
- #t
- (if (if (vector? a-23133)
- (if (= (vector-length
- a-23133)
- 4)
- (eq? (vector-ref
- a-23133
- 0)
- 'syntax-object)
- #f)
- #f)
- (symbol?
- (vector-ref a-23133 1))
- #f))
- (keyword? (syntax->datum k-23135))
- #f))
- tmp-23129)
- #f)
- (@apply
- (lambda (a-23163 init-23164 k-23165 b-23166)
- (key-22762
- b-23166
- req-23043
- opt-23044
- (cons (list k-23165 a-23163 init-23164)
- rkey-23045)))
- tmp-23129)
- (let ((tmp-23167
- ($sc-dispatch args-23042 '(any))))
- (if (if tmp-23167
- (@apply
- (lambda (aok-23171)
- (eq? (syntax->datum aok-23171)
- #:allow-other-keys))
- tmp-23167)
- #f)
- (@apply
- (lambda (aok-23172)
- (check-22764
- req-23043
- opt-23044
- #f
- (cons #t (reverse rkey-23045))))
- tmp-23167)
- (let ((tmp-23175
- ($sc-dispatch
- args-23042
- '(any any any))))
- (if (if tmp-23175
- (@apply
- (lambda (aok-23179
- a-23180
- b-23181)
- (if (eq? (syntax->datum
- aok-23179)
- #:allow-other-keys)
- (eq? (syntax->datum a-23180)
- #:rest)
- #f))
- tmp-23175)
- #f)
- (@apply
- (lambda (aok-23182 a-23183 b-23184)
- (rest-22763
- b-23184
- req-23043
- opt-23044
- (cons #t (reverse rkey-23045))))
- tmp-23175)
- (let ((tmp-23187
- ($sc-dispatch
- args-23042
- '(any . any))))
- (if (if tmp-23187
- (@apply
- (lambda (aok-23191 r-23192)
- (if (eq? (syntax->datum
- aok-23191)
-
#:allow-other-keys)
- (if (symbol? r-23192)
- #t
- (if (if (vector?
- r-23192)
- (if (=
(vector-length
- r-23192)
- 4)
- (eq?
(vector-ref
- r-23192
- 0)
-
'syntax-object)
- #f)
- #f)
- (symbol?
- (vector-ref
- r-23192
- 1))
- #f))
- #f))
- tmp-23187)
- #f)
- (@apply
- (lambda (aok-23219 r-23220)
- (rest-22763
- r-23220
- req-23043
- opt-23044
- (cons #t
- (reverse rkey-23045))))
- tmp-23187)
- (let ((tmp-23223
- ($sc-dispatch
- args-23042
- '(any any))))
- (if (if tmp-23223
- (@apply
- (lambda (a-23227 b-23228)
- (eq? (syntax->datum
- a-23227)
- #:rest))
- tmp-23223)
- #f)
- (@apply
- (lambda (a-23229 b-23230)
- (rest-22763
- b-23230
- req-23043
- opt-23044
- (cons #f
- (reverse
- rkey-23045))))
- tmp-23223)
- (let ((tmp-23233
- (list args-23042)))
- (if (@apply
- (lambda (r-23235)
- (if (symbol? r-23235)
- #t
- (if (if (vector?
- r-23235)
- (if (=
(vector-length
-
r-23235)
- 4)
- (eq?
(vector-ref
-
r-23235
- 0)
-
'syntax-object)
- #f)
- #f)
- (symbol?
- (vector-ref
- r-23235
- 1))
- #f)))
- tmp-23233)
- (@apply
- (lambda (r-23265)
- (rest-22763
- r-23265
- req-23043
- opt-23044
- (cons #f
- (reverse
-
rkey-23045))))
- tmp-23233)
- (syntax-violation
- 'lambda*
- "invalid keyword
argument list"
- orig-args-22759
-
args-23042)))))))))))))))))))))
- (rest-22763
- (lambda (args-23293 req-23294 opt-23295 kw-23296)
- (let ((tmp-23298 (list args-23293)))
- (if (@apply
- (lambda (r-23300)
- (if (symbol? r-23300)
- #t
- (if (if (vector? r-23300)
- (if (= (vector-length r-23300) 4)
- (eq? (vector-ref r-23300 0) 'syntax-object)
- #f)
- #f)
- (symbol? (vector-ref r-23300 1))
- #f)))
- tmp-23298)
- (@apply
- (lambda (r-23330)
- (check-22764
- req-23294
- opt-23295
- r-23330
- kw-23296))
- tmp-23298)
- (syntax-violation
- 'lambda*
- "invalid rest argument"
- orig-args-22759
- args-23293)))))
- (check-22764
- (lambda (req-23334 opt-23335 rest-23336 kw-23337)
- (if (distinct-bound-ids?-4288
- (append
- req-23334
- (map car opt-23335)
- (if rest-23336 (list rest-23336) '())
- (if (pair? kw-23337)
- (map cadr (cdr kw-23337))
- '())))
- (values req-23334 opt-23335 rest-23336 kw-23337)
- (syntax-violation
- 'lambda*
- "duplicate identifier in argument list"
- orig-args-22759)))))
- (req-22760 orig-args-22759 '()))))
- (expand-lambda-case-4309
- (lambda (e-23453
- r-23454
- w-23455
- s-23456
- mod-23457
- get-formals-23458
- clauses-23459)
- (letrec*
- ((parse-req-23460
- (lambda (req-23591
- opt-23592
- rest-23593
- kw-23594
- body-23595)
- (let ((vars-23596 (map gen-var-4311 req-23591))
- (labels-23597 (gen-labels-4264 req-23591)))
- (let ((r*-23598
- (extend-var-env-4256
- labels-23597
- vars-23596
- r-23454))
- (w*-23599
- (make-binding-wrap-4275
- req-23591
- labels-23597
- w-23455)))
- (parse-opt-23461
- (map syntax->datum req-23591)
- opt-23592
- rest-23593
- kw-23594
- body-23595
- (reverse vars-23596)
- r*-23598
- w*-23599
- '()
- '())))))
- (parse-opt-23461
- (lambda (req-23785
- opt-23786
- rest-23787
- kw-23788
- body-23789
- vars-23790
- r*-23791
- w*-23792
- out-23793
- inits-23794)
- (if (pair? opt-23786)
- (let ((tmp-23795 (car opt-23786)))
- (let ((tmp-23796 ($sc-dispatch tmp-23795 '(any any))))
- (if tmp-23796
- (@apply
- (lambda (id-23798 i-23799)
- (let ((v-23800
- (let ((id-23808
- (if (if (vector? id-23798)
- (if (= (vector-length
- id-23798)
- 4)
- (eq? (vector-ref
- id-23798
- 0)
- 'syntax-object)
- #f)
- #f)
- (vector-ref id-23798 1)
- id-23798)))
- (gensym
- (string-append
- (symbol->string id-23808)
- "-")))))
- (let ((l-23801 (gen-labels-4264 (list v-23800))))
- (let ((r**-23802
- (extend-var-env-4256
- l-23801
- (list v-23800)
- r*-23791)))
- (let ((w**-23803
- (make-binding-wrap-4275
- (list id-23798)
- l-23801
- w*-23792)))
- (parse-opt-23461
- req-23785
- (cdr opt-23786)
- rest-23787
- kw-23788
- body-23789
- (cons v-23800 vars-23790)
- r**-23802
- w**-23803
- (cons (syntax->datum id-23798) out-23793)
- (cons (call-with-values
- (lambda ()
- (syntax-type-4296
- i-23799
- r*-23791
- w*-23792
- (let ((props-23882
- (source-properties
- (if (if (vector?
- i-23799)
- (if (=
(vector-length
-
i-23799)
- 4)
- (eq?
(vector-ref
-
i-23799
- 0)
-
'syntax-object)
- #f)
- #f)
- (vector-ref
- i-23799
- 1)
- i-23799))))
- (if (pair? props-23882)
- props-23882
- #f))
- #f
- mod-23457
- #f))
- (lambda (type-23915
- value-23916
- form-23917
- e-23918
- w-23919
- s-23920
- mod-23921)
- (expand-expr-4298
- type-23915
- value-23916
- form-23917
- e-23918
- r*-23791
- w-23919
- s-23920
- mod-23921)))
- inits-23794)))))))
- tmp-23796)
+ "sequence of zero expressions"
+ (source-wrap e w s mod))))
+ tmp-1)
(syntax-violation
#f
"source expression failed to match any pattern"
- tmp-23795))))
- (if rest-23787
- (let ((v-24035
- (let ((id-24045
- (if (if (vector? rest-23787)
- (if (= (vector-length rest-23787) 4)
- (eq? (vector-ref rest-23787 0)
- 'syntax-object)
- #f)
- #f)
- (vector-ref rest-23787 1)
- rest-23787)))
- (gensym
- (string-append
- (symbol->string id-24045)
- "-")))))
- (let ((l-24036 (gen-labels-4264 (list v-24035))))
- (let ((r*-24037
- (extend-var-env-4256
- l-24036
- (list v-24035)
- r*-23791)))
- (let ((w*-24038
- (make-binding-wrap-4275
- (list rest-23787)
- l-24036
- w*-23792)))
- (parse-kw-23462
- req-23785
- (if (pair? out-23793) (reverse out-23793) #f)
- (syntax->datum rest-23787)
- (if (pair? kw-23788) (cdr kw-23788) kw-23788)
- body-23789
- (cons v-24035 vars-23790)
- r*-24037
- w*-24038
- (if (pair? kw-23788) (car kw-23788) #f)
- '()
- inits-23794)))))
- (parse-kw-23462
- req-23785
- (if (pair? out-23793) (reverse out-23793) #f)
+ tmp))))))
+ ((memv key '(local-syntax-form))
+ (expand-local-syntax value e r w s mod expand-sequence))
+ ((memv key '(eval-when-form))
+ (let* ((tmp-1 e) (tmp ($sc-dispatch tmp-1 '(_ each-any any .
each-any))))
+ (if tmp
+ (apply (lambda (x e1 e2)
+ (let ((when-list (parse-when-list e x)))
+ (if (memq 'eval when-list)
+ (expand-sequence (cons e1 e2) r w s mod)
+ (expand-void))))
+ tmp)
+ (syntax-violation
#f
- (if (pair? kw-23788) (cdr kw-23788) kw-23788)
- body-23789
- vars-23790
- r*-23791
- w*-23792
- (if (pair? kw-23788) (car kw-23788) #f)
- '()
- inits-23794)))))
- (parse-kw-23462
- (lambda (req-24216
- opt-24217
- rest-24218
- kw-24219
- body-24220
- vars-24221
- r*-24222
- w*-24223
- aok-24224
- out-24225
- inits-24226)
- (if (pair? kw-24219)
- (let ((tmp-24227 (car kw-24219)))
- (let ((tmp-24228
- ($sc-dispatch tmp-24227 '(any any any))))
- (if tmp-24228
- (@apply
- (lambda (k-24230 id-24231 i-24232)
- (let ((v-24233
- (let ((id-24241
- (if (if (vector? id-24231)
- (if (= (vector-length
- id-24231)
- 4)
- (eq? (vector-ref
- id-24231
- 0)
- 'syntax-object)
- #f)
- #f)
- (vector-ref id-24231 1)
- id-24231)))
- (gensym
- (string-append
- (symbol->string id-24241)
- "-")))))
- (let ((l-24234 (gen-labels-4264 (list v-24233))))
- (let ((r**-24235
- (extend-var-env-4256
- l-24234
- (list v-24233)
- r*-24222)))
- (let ((w**-24236
- (make-binding-wrap-4275
- (list id-24231)
- l-24234
- w*-24223)))
- (parse-kw-23462
- req-24216
- opt-24217
- rest-24218
- (cdr kw-24219)
- body-24220
- (cons v-24233 vars-24221)
- r**-24235
- w**-24236
- aok-24224
- (cons (list (syntax->datum k-24230)
- (syntax->datum id-24231)
- v-24233)
- out-24225)
- (cons (call-with-values
- (lambda ()
- (syntax-type-4296
- i-24232
- r*-24222
- w*-24223
- (let ((props-24315
- (source-properties
- (if (if (vector?
- i-24232)
- (if (=
(vector-length
-
i-24232)
- 4)
- (eq?
(vector-ref
-
i-24232
- 0)
-
'syntax-object)
- #f)
- #f)
- (vector-ref
- i-24232
- 1)
- i-24232))))
- (if (pair? props-24315)
- props-24315
- #f))
- #f
- mod-23457
- #f))
- (lambda (type-24348
- value-24349
- form-24350
- e-24351
- w-24352
- s-24353
- mod-24354)
- (expand-expr-4298
- type-24348
- value-24349
- form-24350
- e-24351
- r*-24222
- w-24352
- s-24353
- mod-24354)))
- inits-24226)))))))
- tmp-24228)
- (syntax-violation
- #f
- "source expression failed to match any pattern"
- tmp-24227))))
- (parse-body-23463
- req-24216
- opt-24217
- rest-24218
- (if (if aok-24224 aok-24224 (pair? out-24225))
- (cons aok-24224 (reverse out-24225))
- #f)
- body-24220
- (reverse vars-24221)
- r*-24222
- w*-24223
- (reverse inits-24226)
- '()))))
- (parse-body-23463
- (lambda (req-24477
- opt-24478
- rest-24479
- kw-24480
- body-24481
- vars-24482
- r*-24483
- w*-24484
- inits-24485
- meta-24486)
- (let ((tmp-24488
- ($sc-dispatch body-24481 '(any any . each-any))))
- (if (if tmp-24488
- (@apply
- (lambda (docstring-24492 e1-24493 e2-24494)
- (string? (syntax->datum docstring-24492)))
- tmp-24488)
- #f)
- (@apply
- (lambda (docstring-24495 e1-24496 e2-24497)
- (parse-body-23463
- req-24477
- opt-24478
- rest-24479
- kw-24480
- (cons e1-24496 e2-24497)
- vars-24482
- r*-24483
- w*-24484
- inits-24485
- (append
- meta-24486
- (list (cons 'documentation
- (syntax->datum docstring-24495))))))
- tmp-24488)
- (let ((tmp-24498
- ($sc-dispatch
- body-24481
- '(#(vector #(each (any . any)))
- any
- .
- each-any))))
- (if tmp-24498
- (@apply
- (lambda (k-24502 v-24503 e1-24504 e2-24505)
- (parse-body-23463
- req-24477
- opt-24478
- rest-24479
- kw-24480
- (cons e1-24504 e2-24505)
- vars-24482
- r*-24483
- w*-24484
- inits-24485
- (append
- meta-24486
- (syntax->datum (map cons k-24502 v-24503)))))
- tmp-24498)
- (let ((tmp-24506
- ($sc-dispatch body-24481 '(any . each-any))))
- (if tmp-24506
- (@apply
- (lambda (e1-24510 e2-24511)
- (values
- meta-24486
- req-24477
- opt-24478
- rest-24479
- kw-24480
- inits-24485
- vars-24482
- (expand-body-4301
- (cons e1-24510 e2-24511)
- (wrap-4290
- (begin
- (if (if s-23456
- (supports-source-properties?
- e-23453)
- #f)
- (set-source-properties!
- e-23453
- s-23456))
- e-23453)
- w-23455
- mod-23457)
- r*-24483
- w*-24484
- mod-23457)))
- tmp-24506)
- (syntax-violation
+ "source expression failed to match any pattern"
+ tmp-1))))
+ ((memv key
+ '(define-form define-syntax-form
define-syntax-parameter-form))
+ (syntax-violation
+ #f
+ "definition in expression context, where definitions are not
allowed,"
+ (source-wrap form w s mod)))
+ ((memv key '(syntax))
+ (syntax-violation
+ #f
+ "reference to pattern variable outside syntax form"
+ (source-wrap e w s mod)))
+ ((memv key '(displaced-lexical))
+ (syntax-violation
+ #f
+ "reference to identifier outside its scope"
+ (source-wrap e w s mod)))
+ (else
+ (syntax-violation #f "unexpected syntax" (source-wrap e w s
mod)))))))
+ (expand-application
+ (lambda (x e r w s mod)
+ (let* ((tmp-1 e) (tmp ($sc-dispatch tmp-1 '(any . each-any))))
+ (if tmp
+ (apply (lambda (e0 e1)
+ (build-application s x (map (lambda (e) (expand e r w
mod)) e1)))
+ tmp)
+ (syntax-violation
+ #f
+ "source expression failed to match any pattern"
+ tmp-1)))))
+ (expand-macro
+ (lambda (p e r w s rib mod)
+ (letrec*
+ ((rebuild-macro-output
+ (lambda (x m)
+ (cond ((pair? x)
+ (decorate-source
+ (cons (rebuild-macro-output (car x) m)
+ (rebuild-macro-output (cdr x) m))
+ s))
+ ((syntax-object? x)
+ (let ((w (syntax-object-wrap x)))
+ (let ((ms (car w)) (ss (cdr w)))
+ (if (and (pair? ms) (eq? (car ms) #f))
+ (make-syntax-object
+ (syntax-object-expression x)
+ (cons (cdr ms) (if rib (cons rib (cdr ss)) (cdr
ss)))
+ (syntax-object-module x))
+ (make-syntax-object
+ (decorate-source (syntax-object-expression x) s)
+ (cons (cons m ms)
+ (if rib (cons rib (cons 'shift ss)) (cons
'shift ss)))
+ (syntax-object-module x))))))
+ ((vector? x)
+ (let* ((n (vector-length x)) (v (decorate-source
(make-vector n) s)))
+ (let loop ((i 0))
+ (if (= i n)
+ (begin (if #f #f) v)
+ (begin
+ (vector-set! v i (rebuild-macro-output
(vector-ref x i) m))
+ (loop (+ i 1)))))))
+ ((symbol? x)
+ (syntax-violation
+ #f
+ "encountered raw symbol in macro output"
+ (source-wrap e w (cdr w) mod)
+ x))
+ (else (decorate-source x s))))))
+ (with-fluids
+ ((transformer-environment (lambda (k) (k e r w s rib mod))))
+ (rebuild-macro-output
+ (p (source-wrap e (anti-mark w) s mod))
+ (gensym (string-append "m-" (session-id) "-")))))))
+ (expand-body
+ (lambda (body outer-form r w mod)
+ (let* ((r (cons '("placeholder" placeholder) r))
+ (ribcage (make-ribcage '() '() '()))
+ (w (cons (car w) (cons ribcage (cdr w)))))
+ (let parse ((body (map (lambda (x) (cons r (wrap x w mod))) body))
+ (ids '())
+ (labels '())
+ (var-ids '())
+ (vars '())
+ (vals '())
+ (bindings '()))
+ (if (null? body)
+ (syntax-violation #f "no expressions in body" outer-form)
+ (let ((e (cdar body)) (er (caar body)))
+ (call-with-values
+ (lambda ()
+ (syntax-type e er '(()) (source-annotation er) ribcage mod
#f))
+ (lambda (type value form e w s mod)
+ (let ((key type))
+ (cond ((memv key '(define-form))
+ (let ((id (wrap value w mod)) (label (gen-label)))
+ (let ((var (gen-var id)))
+ (extend-ribcage! ribcage id label)
+ (parse (cdr body)
+ (cons id ids)
+ (cons label labels)
+ (cons id var-ids)
+ (cons var vars)
+ (cons (cons er (wrap e w mod)) vals)
+ (cons (cons 'lexical var) bindings)))))
+ ((memv key '(define-syntax-form
define-syntax-parameter-form))
+ (let ((id (wrap value w mod)) (label (gen-label)))
+ (extend-ribcage! ribcage id label)
+ (parse (cdr body)
+ (cons id ids)
+ (cons label labels)
+ var-ids
+ vars
+ vals
+ (cons (cons 'macro (cons er (wrap e w
mod))) bindings))))
+ ((memv key '(begin-form))
+ (let* ((tmp-1 e) (tmp ($sc-dispatch tmp-1 '(_ .
each-any))))
+ (if tmp
+ (apply (lambda (e1)
+ (parse (let f ((forms e1))
+ (if (null? forms)
+ (cdr body)
+ (cons (cons er (wrap (car
forms) w mod)) (f (cdr forms)))))
+ ids
+ labels
+ var-ids
+ vars
+ vals
+ bindings))
+ tmp)
+ (syntax-violation
+ #f
+ "source expression failed to match any
pattern"
+ tmp-1))))
+ ((memv key '(local-syntax-form))
+ (expand-local-syntax
+ value
+ e
+ er
+ w
+ s
+ mod
+ (lambda (forms er w s mod)
+ (parse (let f ((forms forms))
+ (if (null? forms)
+ (cdr body)
+ (cons (cons er (wrap (car forms) w
mod)) (f (cdr forms)))))
+ ids
+ labels
+ var-ids
+ vars
+ vals
+ bindings))))
+ ((null? ids)
+ (build-sequence
#f
- "source expression failed to match any pattern"
- body-24481))))))))))
- (let ((tmp-23465 ($sc-dispatch clauses-23459 '())))
- (if tmp-23465
- (@apply (lambda () (values '() #f)) tmp-23465)
- (let ((tmp-23469
- ($sc-dispatch
- clauses-23459
- '((any any . each-any)
- .
- #(each (any any . each-any))))))
- (if tmp-23469
- (@apply
- (lambda (args-23473
- e1-23474
- e2-23475
- args*-23476
- e1*-23477
- e2*-23478)
- (call-with-values
- (lambda () (get-formals-23458 args-23473))
- (lambda (req-23479 opt-23480 rest-23481 kw-23482)
- (call-with-values
- (lambda ()
- (parse-req-23460
- req-23479
- opt-23480
- rest-23481
- kw-23482
- (cons e1-23474 e2-23475)))
- (lambda (meta-23547
- req-23548
- opt-23549
- rest-23550
- kw-23551
- inits-23552
- vars-23553
- body-23554)
- (call-with-values
- (lambda ()
- (expand-lambda-case-4309
- e-23453
- r-23454
- w-23455
- s-23456
- mod-23457
- get-formals-23458
- (map (lambda (tmp-2800-23555
- tmp-2799-23556
- tmp-2798-23557)
- (cons tmp-2798-23557
- (cons tmp-2799-23556
- tmp-2800-23555)))
- e2*-23478
- e1*-23477
- args*-23476)))
- (lambda (meta*-23558 else*-23559)
- (values
- (append meta-23547 meta*-23558)
- (make-struct/no-tail
- (vector-ref %expanded-vtables 14)
- s-23456
- req-23548
- opt-23549
- rest-23550
- kw-23551
- inits-23552
- vars-23553
- body-23554
- else*-23559)))))))))
- tmp-23469)
- (syntax-violation
- #f
- "source expression failed to match any pattern"
- clauses-23459))))))))
- (strip-4310
- (lambda (x-24548 w-24549)
- (if (memq 'top (car w-24549))
- x-24548
- (letrec*
- ((f-24550
- (lambda (x-24553)
- (if (if (vector? x-24553)
- (if (= (vector-length x-24553) 4)
- (eq? (vector-ref x-24553 0) 'syntax-object)
- #f)
- #f)
- (strip-4310
- (vector-ref x-24553 1)
- (vector-ref x-24553 2))
- (if (pair? x-24553)
- (let ((a-24572 (f-24550 (car x-24553)))
- (d-24573 (f-24550 (cdr x-24553))))
- (if (if (eq? a-24572 (car x-24553))
- (eq? d-24573 (cdr x-24553))
- #f)
- x-24553
- (cons a-24572 d-24573)))
- (if (vector? x-24553)
- (let ((old-24576 (vector->list x-24553)))
- (let ((new-24577 (map f-24550 old-24576)))
- (letrec*
- ((lp-24578
- (lambda (l1-24654 l2-24655)
- (if (null? l1-24654)
- x-24553
- (if (eq? (car l1-24654) (car l2-24655))
- (lp-24578 (cdr l1-24654) (cdr l2-24655))
- (list->vector new-24577))))))
- (lp-24578 old-24576 new-24577))))
- x-24553))))))
- (f-24550 x-24548)))))
- (gen-var-4311
- (lambda (id-23603)
- (let ((id-23604
- (if (if (vector? id-23603)
- (if (= (vector-length id-23603) 4)
- (eq? (vector-ref id-23603 0) 'syntax-object)
- #f)
- #f)
- (vector-ref id-23603 1)
- id-23603)))
- (gensym
- (string-append (symbol->string id-23604) "-"))))))
- (begin
- (set! session-id-4222
- (let ((v-14702
- (module-variable
- (current-module)
- 'syntax-session-id)))
- (lambda () ((variable-ref v-14702)))))
- (set! transformer-environment-4283
- (make-fluid
- (lambda (k-13734)
- (error "called outside the dynamic extent of a syntax
transformer"))))
- (module-define!
- (current-module)
- 'letrec-syntax
- (make-syntax-transformer
- 'letrec-syntax
- 'local-syntax
- #t))
- (module-define!
- (current-module)
- 'let-syntax
- (make-syntax-transformer
- 'let-syntax
- 'local-syntax
- #f))
- (global-extend-4259
- 'core
- 'syntax-parameterize
- (lambda (e-4430 r-4431 w-4432 s-4433 mod-4434)
- (let ((tmp-4436
- ($sc-dispatch
- e-4430
- '(_ #(each (any any)) any . each-any))))
- (if (if tmp-4436
- (@apply
- (lambda (var-4438 val-4439 e1-4440 e2-4441)
- (valid-bound-ids?-4287 var-4438))
- tmp-4436)
- #f)
- (@apply
- (lambda (var-4519 val-4520 e1-4521 e2-4522)
- (let ((names-4523
- (map (lambda (x-4573)
- (id-var-name-4280 x-4573 w-4432))
- var-4519)))
- (begin
- (for-each
- (lambda (id-4524 n-4525)
- (let ((key-4526
- (car (let ((t-4533 (assq n-4525 r-4431)))
- (if t-4533
- (cdr t-4533)
- (if (symbol? n-4525)
- (let ((t-4538
-
(get-global-definition-hook-4224
- n-4525
- mod-4434)))
- (if t-4538 t-4538 '(global)))
- '(displaced-lexical)))))))
- (if (eqv? key-4526 'displaced-lexical)
+ (map (lambda (x) (expand (cdr x) (car x) '(())
mod))
+ (cons (cons er (source-wrap e w s mod))
(cdr body)))))
+ (else
+ (if (not (valid-bound-ids? ids))
(syntax-violation
- 'syntax-parameterize
- "identifier out of context"
- e-4430
- (wrap-4290
- (begin
- (if (if s-4433
- (supports-source-properties? id-4524)
- #f)
- (set-source-properties! id-4524 s-4433))
- id-4524)
- w-4432
- mod-4434)))))
- var-4519
- names-4523)
- (expand-body-4301
- (cons e1-4521 e2-4522)
- (wrap-4290
- (begin
- (if (if s-4433
- (supports-source-properties? e-4430)
- #f)
- (set-source-properties! e-4430 s-4433))
- e-4430)
- w-4432
- mod-4434)
- (extend-env-4255
- names-4523
- (let ((trans-r-4659 (macros-only-env-4257 r-4431)))
- (map (lambda (x-4660)
- (cons 'macro
- (eval-local-transformer-4303
- (call-with-values
- (lambda ()
- (syntax-type-4296
- x-4660
- trans-r-4659
- w-4432
- (let ((props-4717
- (source-properties
- (if (if (vector?
- x-4660)
- (if (=
(vector-length
-
x-4660)
- 4)
- (eq?
(vector-ref
-
x-4660
- 0)
-
'syntax-object)
- #f)
- #f)
- (vector-ref
- x-4660
- 1)
- x-4660))))
- (if (pair? props-4717)
- props-4717
- #f))
- #f
- mod-4434
- #f))
- (lambda (type-4750
- value-4751
- form-4752
- e-4753
- w-4754
- s-4755
- mod-4756)
- (expand-expr-4298
- type-4750
- value-4751
- form-4752
- e-4753
- trans-r-4659
- w-4754
- s-4755
- mod-4756)))
- mod-4434)))
- val-4520))
- r-4431)
- w-4432
- mod-4434))))
- tmp-4436)
- (syntax-violation
- 'syntax-parameterize
- "bad syntax"
- (wrap-4290
- (begin
- (if (if s-4433
- (supports-source-properties? e-4430)
- #f)
- (set-source-properties! e-4430 s-4433))
- e-4430)
- w-4432
- mod-4434))))))
- (module-define!
- (current-module)
- 'quote
- (make-syntax-transformer
- 'quote
- 'core
- (lambda (e-4855 r-4856 w-4857 s-4858 mod-4859)
- (let ((tmp-4861 ($sc-dispatch e-4855 '(_ any))))
- (if tmp-4861
- (@apply
- (lambda (e-4862)
- (let ((exp-4866 (strip-4310 e-4862 w-4857)))
- (make-struct/no-tail
- (vector-ref %expanded-vtables 1)
- s-4858
- exp-4866)))
- tmp-4861)
- (syntax-violation
- 'quote
- "bad syntax"
- (wrap-4290
- (begin
- (if (if s-4858
- (supports-source-properties? e-4855)
- #f)
- (set-source-properties! e-4855 s-4858))
- e-4855)
- w-4857
- mod-4859)))))))
- (global-extend-4259
- 'core
- 'syntax
- (letrec*
- ((gen-syntax-5078
- (lambda (src-5175
- e-5176
- r-5177
- maps-5178
- ellipsis?-5179
- mod-5180)
- (if (if (symbol? e-5176)
- #t
- (if (if (vector? e-5176)
- (if (= (vector-length e-5176) 4)
- (eq? (vector-ref e-5176 0) 'syntax-object)
- #f)
- #f)
- (symbol? (vector-ref e-5176 1))
- #f))
- (let ((label-5207 (id-var-name-4280 e-5176 '(()))))
- (let ((b-5208
- (let ((t-5215 (assq label-5207 r-5177)))
- (if t-5215
- (cdr t-5215)
- (if (symbol? label-5207)
- (let ((t-5221
- (get-global-definition-hook-4224
- label-5207
- mod-5180)))
- (if t-5221 t-5221 '(global)))
- '(displaced-lexical))))))
- (if (eq? (car b-5208) 'syntax)
- (call-with-values
- (lambda ()
- (let ((var.lev-5230 (cdr b-5208)))
- (gen-ref-5079
- src-5175
- (car var.lev-5230)
- (cdr var.lev-5230)
- maps-5178)))
- (lambda (var-5234 maps-5235)
- (values (list 'ref var-5234) maps-5235)))
- (if (ellipsis?-5179 e-5176)
+ #f
+ "invalid or duplicate identifier in definition"
+ outer-form))
+ (let loop ((bs bindings) (er-cache #f) (r-cache
#f))
+ (if (not (null? bs))
+ (let ((b (car bs)))
+ (if (eq? (car b) 'macro)
+ (let* ((er (cadr b))
+ (r-cache (if (eq? er er-cache)
r-cache (macros-only-env er))))
+ (set-cdr!
+ b
+ (eval-local-transformer (expand (cddr
b) r-cache '(()) mod) mod))
+ (loop (cdr bs) er r-cache))
+ (loop (cdr bs) er-cache r-cache)))))
+ (set-cdr! r (extend-env labels bindings (cdr r)))
+ (build-letrec
+ #f
+ #t
+ (reverse (map syntax->datum var-ids))
+ (reverse vars)
+ (map (lambda (x) (expand (cdr x) (car x) '(())
mod)) (reverse vals))
+ (build-sequence
+ #f
+ (map (lambda (x) (expand (cdr x) (car x) '(())
mod))
+ (cons (cons er (source-wrap e w s mod))
(cdr body))))))))))))))))
+ (expand-local-syntax
+ (lambda (rec? e r w s mod k)
+ (let* ((tmp e)
+ (tmp ($sc-dispatch tmp '(_ #(each (any any)) any . each-any))))
+ (if tmp
+ (apply (lambda (id val e1 e2)
+ (let ((ids id))
+ (if (not (valid-bound-ids? ids))
+ (syntax-violation #f "duplicate bound keyword" e)
+ (let* ((labels (gen-labels ids)) (new-w
(make-binding-wrap ids labels w)))
+ (k (cons e1 e2)
+ (extend-env
+ labels
+ (let ((w (if rec? new-w w)) (trans-r
(macros-only-env r)))
+ (map (lambda (x)
+ (cons 'macro (eval-local-transformer
(expand x trans-r w mod) mod)))
+ val))
+ r)
+ new-w
+ s
+ mod)))))
+ tmp)
+ (syntax-violation
+ #f
+ "bad local syntax definition"
+ (source-wrap e w s mod))))))
+ (eval-local-transformer
+ (lambda (expanded mod)
+ (let ((p (local-eval-hook expanded mod)))
+ (if (procedure? p)
+ p
+ (syntax-violation #f "nonprocedure transformer" p)))))
+ (expand-void (lambda () (build-void #f)))
+ (ellipsis?
+ (lambda (x)
+ (and (nonsymbol-id? x)
+ (free-id=? x '#(syntax-object ... ((top)) (hygiene guile))))))
+ (lambda-formals
+ (lambda (orig-args)
+ (letrec*
+ ((req (lambda (args rreq)
+ (let* ((tmp args) (tmp-1 ($sc-dispatch tmp '())))
+ (if tmp-1
+ (apply (lambda () (check (reverse rreq) #f)) tmp-1)
+ (let ((tmp-1 ($sc-dispatch tmp '(any . any))))
+ (if (and tmp-1 (apply (lambda (a b) (id? a)) tmp-1))
+ (apply (lambda (a b) (req b (cons a rreq))) tmp-1)
+ (let ((tmp-1 (list tmp)))
+ (if (and tmp-1 (apply (lambda (r) (id? r)) tmp-1))
+ (apply (lambda (r) (check (reverse rreq) r))
tmp-1)
+ (let ((else tmp))
+ (syntax-violation 'lambda "invalid argument
list" orig-args args))))))))))
+ (check (lambda (req rest)
+ (if (distinct-bound-ids? (if rest (cons rest req) req))
+ (values req #f rest #f)
+ (syntax-violation
+ 'lambda
+ "duplicate identifier in argument list"
+ orig-args)))))
+ (req orig-args '()))))
+ (expand-simple-lambda
+ (lambda (e r w s mod req rest meta body)
+ (let* ((ids (if rest (append req (list rest)) req))
+ (vars (map gen-var ids))
+ (labels (gen-labels ids)))
+ (build-simple-lambda
+ s
+ (map syntax->datum req)
+ (and rest (syntax->datum rest))
+ vars
+ meta
+ (expand-body
+ body
+ (source-wrap e w s mod)
+ (extend-var-env labels vars r)
+ (make-binding-wrap ids labels w)
+ mod)))))
+ (lambda*-formals
+ (lambda (orig-args)
+ (letrec*
+ ((req (lambda (args rreq)
+ (let* ((tmp args) (tmp-1 ($sc-dispatch tmp '())))
+ (if tmp-1
+ (apply (lambda () (check (reverse rreq) '() #f '()))
tmp-1)
+ (let ((tmp-1 ($sc-dispatch tmp '(any . any))))
+ (if (and tmp-1 (apply (lambda (a b) (id? a)) tmp-1))
+ (apply (lambda (a b) (req b (cons a rreq))) tmp-1)
+ (let ((tmp-1 ($sc-dispatch tmp '(any . any))))
+ (if (and tmp-1
+ (apply (lambda (a b) (eq? (syntax->datum
a) #:optional)) tmp-1))
+ (apply (lambda (a b) (opt b (reverse rreq) '()))
tmp-1)
+ (let ((tmp-1 ($sc-dispatch tmp '(any . any))))
+ (if (and tmp-1
+ (apply (lambda (a b) (eq?
(syntax->datum a) #:key)) tmp-1))
+ (apply (lambda (a b) (key b (reverse rreq)
'() '())) tmp-1)
+ (let ((tmp-1 ($sc-dispatch tmp '(any any))))
+ (if (and tmp-1
+ (apply (lambda (a b) (eq?
(syntax->datum a) #:rest)) tmp-1))
+ (apply (lambda (a b) (rest b (reverse
rreq) '() '())) tmp-1)
+ (let ((tmp-1 (list tmp)))
+ (if (and tmp-1 (apply (lambda (r) (id?
r)) tmp-1))
+ (apply (lambda (r) (rest r (reverse
rreq) '() '())) tmp-1)
+ (let ((else tmp))
+ (syntax-violation
+ 'lambda*
+ "invalid argument list"
+ orig-args
+ args))))))))))))))))
+ (opt (lambda (args req ropt)
+ (let* ((tmp args) (tmp-1 ($sc-dispatch tmp '())))
+ (if tmp-1
+ (apply (lambda () (check req (reverse ropt) #f '()))
tmp-1)
+ (let ((tmp-1 ($sc-dispatch tmp '(any . any))))
+ (if (and tmp-1 (apply (lambda (a b) (id? a)) tmp-1))
+ (apply (lambda (a b) (opt b req (cons (cons a '(#f))
ropt))) tmp-1)
+ (let ((tmp-1 ($sc-dispatch tmp '((any any) . any))))
+ (if (and tmp-1 (apply (lambda (a init b) (id? a))
tmp-1))
+ (apply (lambda (a init b) (opt b req (cons (list
a init) ropt)))
+ tmp-1)
+ (let ((tmp-1 ($sc-dispatch tmp '(any . any))))
+ (if (and tmp-1
+ (apply (lambda (a b) (eq?
(syntax->datum a) #:key)) tmp-1))
+ (apply (lambda (a b) (key b req (reverse
ropt) '())) tmp-1)
+ (let ((tmp-1 ($sc-dispatch tmp '(any any))))
+ (if (and tmp-1
+ (apply (lambda (a b) (eq?
(syntax->datum a) #:rest)) tmp-1))
+ (apply (lambda (a b) (rest b req (reverse
ropt) '())) tmp-1)
+ (let ((tmp-1 (list tmp)))
+ (if (and tmp-1 (apply (lambda (r) (id?
r)) tmp-1))
+ (apply (lambda (r) (rest r req
(reverse ropt) '())) tmp-1)
+ (let ((else tmp))
+ (syntax-violation
+ 'lambda*
+ "invalid optional argument list"
+ orig-args
+ args))))))))))))))))
+ (key (lambda (args req opt rkey)
+ (let* ((tmp args) (tmp-1 ($sc-dispatch tmp '())))
+ (if tmp-1
+ (apply (lambda () (check req opt #f (cons #f (reverse
rkey)))) tmp-1)
+ (let ((tmp-1 ($sc-dispatch tmp '(any . any))))
+ (if (and tmp-1 (apply (lambda (a b) (id? a)) tmp-1))
+ (apply (lambda (a b)
+ (let* ((tmp (symbol->keyword (syntax->datum
a))) (k tmp))
+ (key b req opt (cons (cons k (cons a
'(#f))) rkey))))
+ tmp-1)
+ (let ((tmp-1 ($sc-dispatch tmp '((any any) . any))))
+ (if (and tmp-1 (apply (lambda (a init b) (id? a))
tmp-1))
+ (apply (lambda (a init b)
+ (let* ((tmp (symbol->keyword
(syntax->datum a))) (k tmp))
+ (key b req opt (cons (list k a init)
rkey))))
+ tmp-1)
+ (let ((tmp-1 ($sc-dispatch tmp '((any any any) .
any))))
+ (if (and tmp-1
+ (apply (lambda (a init k b) (and (id?
a) (keyword? (syntax->datum k))))
+ tmp-1))
+ (apply (lambda (a init k b) (key b req opt
(cons (list k a init) rkey)))
+ tmp-1)
+ (let ((tmp-1 ($sc-dispatch tmp '(any))))
+ (if (and tmp-1
+ (apply (lambda (aok) (eq?
(syntax->datum aok) #:allow-other-keys))
+ tmp-1))
+ (apply (lambda (aok) (check req opt #f
(cons #t (reverse rkey))))
+ tmp-1)
+ (let ((tmp-1 ($sc-dispatch tmp '(any any
any))))
+ (if (and tmp-1
+ (apply (lambda (aok a b)
+ (and (eq?
(syntax->datum aok) #:allow-other-keys)
+ (eq?
(syntax->datum a) #:rest)))
+ tmp-1))
+ (apply (lambda (aok a b) (rest b req
opt (cons #t (reverse rkey))))
+ tmp-1)
+ (let ((tmp-1 ($sc-dispatch tmp '(any
. any))))
+ (if (and tmp-1
+ (apply (lambda (aok r)
+ (and (eq?
(syntax->datum aok) #:allow-other-keys) (id? r)))
+ tmp-1))
+ (apply (lambda (aok r) (rest r
req opt (cons #t (reverse rkey))))
+ tmp-1)
+ (let ((tmp-1 ($sc-dispatch tmp
'(any any))))
+ (if (and tmp-1
+ (apply (lambda (a b)
(eq? (syntax->datum a) #:rest)) tmp-1))
+ (apply (lambda (a b) (rest b
req opt (cons #f (reverse rkey))))
+ tmp-1)
+ (let ((tmp-1 (list tmp)))
+ (if (and tmp-1 (apply
(lambda (r) (id? r)) tmp-1))
+ (apply (lambda (r) (rest
r req opt (cons #f (reverse rkey))))
+ tmp-1)
+ (let ((else tmp))
+ (syntax-violation
+ 'lambda*
+ "invalid keyword
argument list"
+ orig-args
+
args))))))))))))))))))))))
+ (rest (lambda (args req opt kw)
+ (let* ((tmp-1 args) (tmp (list tmp-1)))
+ (if (and tmp (apply (lambda (r) (id? r)) tmp))
+ (apply (lambda (r) (check req opt r kw)) tmp)
+ (let ((else tmp-1))
+ (syntax-violation 'lambda* "invalid rest argument"
orig-args args))))))
+ (check (lambda (req opt rest kw)
+ (if (distinct-bound-ids?
+ (append
+ req
+ (map car opt)
+ (if rest (list rest) '())
+ (if (pair? kw) (map cadr (cdr kw)) '())))
+ (values req opt rest kw)
+ (syntax-violation
+ 'lambda*
+ "duplicate identifier in argument list"
+ orig-args)))))
+ (req orig-args '()))))
+ (expand-lambda-case
+ (lambda (e r w s mod get-formals clauses)
+ (letrec*
+ ((parse-req
+ (lambda (req opt rest kw body)
+ (let ((vars (map gen-var req)) (labels (gen-labels req)))
+ (let ((r* (extend-var-env labels vars r))
+ (w* (make-binding-wrap req labels w)))
+ (parse-opt
+ (map syntax->datum req)
+ opt
+ rest
+ kw
+ body
+ (reverse vars)
+ r*
+ w*
+ '()
+ '())))))
+ (parse-opt
+ (lambda (req opt rest kw body vars r* w* out inits)
+ (cond ((pair? opt)
+ (let* ((tmp-1 (car opt)) (tmp ($sc-dispatch tmp-1 '(any
any))))
+ (if tmp
+ (apply (lambda (id i)
+ (let* ((v (gen-var id))
+ (l (gen-labels (list v)))
+ (r** (extend-var-env l (list v) r*))
+ (w** (make-binding-wrap (list id) l
w*)))
+ (parse-opt
+ req
+ (cdr opt)
+ rest
+ kw
+ body
+ (cons v vars)
+ r**
+ w**
+ (cons (syntax->datum id) out)
+ (cons (expand i r* w* mod) inits))))
+ tmp)
(syntax-violation
- 'syntax
- "misplaced ellipsis"
- src-5175)
- (values (list 'quote e-5176) maps-5178)))))
- (let ((tmp-5237 ($sc-dispatch e-5176 '(any any))))
- (if (if tmp-5237
- (@apply
- (lambda (dots-5241 e-5242)
- (ellipsis?-5179 dots-5241))
- tmp-5237)
- #f)
- (@apply
- (lambda (dots-5243 e-5244)
- (gen-syntax-5078
- src-5175
- e-5244
- r-5177
- maps-5178
- (lambda (x-5245) #f)
- mod-5180))
- tmp-5237)
- (let ((tmp-5246 ($sc-dispatch e-5176 '(any any . any))))
- (if (if tmp-5246
- (@apply
- (lambda (x-5250 dots-5251 y-5252)
- (ellipsis?-5179 dots-5251))
- tmp-5246)
- #f)
- (@apply
- (lambda (x-5253 dots-5254 y-5255)
- (letrec*
- ((f-5256
- (lambda (y-5264 k-5265)
- (let ((tmp-5267
- ($sc-dispatch
- y-5264
- '(any . any))))
- (if (if tmp-5267
- (@apply
- (lambda (dots-5269 y-5270)
- (ellipsis?-5179 dots-5269))
- tmp-5267)
- #f)
- (@apply
- (lambda (dots-5271 y-5272)
- (f-5256
- y-5272
- (lambda (maps-5273)
- (call-with-values
- (lambda ()
- (k-5265
- (cons '() maps-5273)))
- (lambda (x-5274 maps-5275)
- (if (null? (car maps-5275))
- (syntax-violation
- 'syntax
- "extra ellipsis"
- src-5175)
- (values
- (let ((map-env-5279
- (car
maps-5275)))
- (list 'apply
- '(primitive
- append)
- (gen-map-5081
- x-5274
-
map-env-5279)))
- (cdr maps-5275))))))))
- tmp-5267)
- (call-with-values
- (lambda ()
- (gen-syntax-5078
- src-5175
- y-5264
- r-5177
- maps-5178
- ellipsis?-5179
- mod-5180))
- (lambda (y-5281 maps-5282)
- (call-with-values
- (lambda () (k-5265 maps-5282))
- (lambda (x-5283 maps-5284)
- (values
- (if (equal? y-5281 ''())
- x-5283
- (list 'append
- x-5283
- y-5281))
- maps-5284))))))))))
- (f-5256
- y-5255
- (lambda (maps-5259)
- (call-with-values
- (lambda ()
- (gen-syntax-5078
- src-5175
- x-5253
- r-5177
- (cons '() maps-5259)
- ellipsis?-5179
- mod-5180))
- (lambda (x-5260 maps-5261)
- (if (null? (car maps-5261))
- (syntax-violation
- 'syntax
- "extra ellipsis"
- src-5175)
- (values
- (gen-map-5081
- x-5260
- (car maps-5261))
- (cdr maps-5261)))))))))
- tmp-5246)
- (let ((tmp-5298 ($sc-dispatch e-5176 '(any . any))))
- (if tmp-5298
- (@apply
- (lambda (x-5302 y-5303)
- (call-with-values
- (lambda ()
- (gen-syntax-5078
- src-5175
- x-5302
- r-5177
- maps-5178
- ellipsis?-5179
- mod-5180))
- (lambda (x-5304 maps-5305)
- (call-with-values
- (lambda ()
- (gen-syntax-5078
- src-5175
- y-5303
- r-5177
- maps-5305
- ellipsis?-5179
- mod-5180))
- (lambda (y-5306 maps-5307)
- (values
- (let ((key-5312 (car y-5306)))
- (if (eqv? key-5312 'quote)
- (if (eq? (car x-5304) 'quote)
- (list 'quote
- (cons (car (cdr x-5304))
- (car (cdr
y-5306))))
- (if (eq? (car (cdr y-5306))
- '())
- (list 'list x-5304)
- (list 'cons x-5304 y-5306)))
- (if (eqv? key-5312 'list)
- (cons 'list
- (cons x-5304
- (cdr y-5306)))
- (list 'cons x-5304 y-5306))))
- maps-5307))))))
- tmp-5298)
- (let ((tmp-5341
- ($sc-dispatch
- e-5176
- '#(vector (any . each-any)))))
- (if tmp-5341
- (@apply
- (lambda (e1-5345 e2-5346)
- (call-with-values
- (lambda ()
- (gen-syntax-5078
- src-5175
- (cons e1-5345 e2-5346)
- r-5177
- maps-5178
- ellipsis?-5179
- mod-5180))
- (lambda (e-5347 maps-5348)
- (values
- (if (eq? (car e-5347) 'list)
- (cons 'vector (cdr e-5347))
- (if (eq? (car e-5347) 'quote)
- (list 'quote
- (list->vector
- (car (cdr e-5347))))
- (list 'list->vector e-5347)))
- maps-5348))))
- tmp-5341)
- (values
- (list 'quote e-5176)
- maps-5178))))))))))))
- (gen-ref-5079
- (lambda (src-5374 var-5375 level-5376 maps-5377)
- (if (= level-5376 0)
- (values var-5375 maps-5377)
- (if (null? maps-5377)
- (syntax-violation
- 'syntax
- "missing ellipsis"
- src-5374)
- (call-with-values
- (lambda ()
- (gen-ref-5079
- src-5374
- var-5375
- (#{1-}# level-5376)
- (cdr maps-5377)))
- (lambda (outer-var-5378 outer-maps-5379)
- (let ((b-5380 (assq outer-var-5378 (car maps-5377))))
- (if b-5380
- (values (cdr b-5380) maps-5377)
- (let ((inner-var-5382
- (gensym
- (string-append
- (symbol->string 'tmp)
- "-"))))
- (values
- inner-var-5382
- (cons (cons (cons outer-var-5378 inner-var-5382)
- (car maps-5377))
- outer-maps-5379)))))))))))
- (gen-map-5081
- (lambda (e-5396 map-env-5397)
- (let ((formals-5398 (map cdr map-env-5397))
- (actuals-5399
- (map (lambda (x-5401) (list 'ref (car x-5401)))
- map-env-5397)))
- (if (eq? (car e-5396) 'ref)
- (car actuals-5399)
- (if (and-map
- (lambda (x-5402)
- (if (eq? (car x-5402) 'ref)
- (memq (car (cdr x-5402)) formals-5398)
- #f))
- (cdr e-5396))
- (cons 'map
- (cons (list 'primitive (car e-5396))
- (map (let ((r-5404
- (map cons
- formals-5398
- actuals-5399)))
- (lambda (x-5405)
- (cdr (assq (car (cdr x-5405))
- r-5404))))
- (cdr e-5396))))
- (cons 'map
- (cons (list 'lambda formals-5398 e-5396)
- actuals-5399)))))))
- (regen-5085
- (lambda (x-5407)
- (let ((key-5408 (car x-5407)))
- (if (eqv? key-5408 'ref)
- (let ((name-5418 (car (cdr x-5407)))
- (var-5419 (car (cdr x-5407))))
- (make-struct/no-tail
- (vector-ref %expanded-vtables 3)
- #f
- name-5418
- var-5419))
- (if (eqv? key-5408 'primitive)
- (let ((name-5431 (car (cdr x-5407))))
- (if (equal? (module-name (current-module)) '(guile))
- (make-struct/no-tail
- (vector-ref %expanded-vtables 7)
#f
- name-5431)
- (make-struct/no-tail
- (vector-ref %expanded-vtables 5)
- #f
- '(guile)
- name-5431
- #f)))
- (if (eqv? key-5408 'quote)
- (let ((exp-5449 (car (cdr x-5407))))
- (make-struct/no-tail
- (vector-ref %expanded-vtables 1)
- #f
- exp-5449))
- (if (eqv? key-5408 'lambda)
- (if (list? (car (cdr x-5407)))
- (let ((req-5460 (car (cdr x-5407)))
- (vars-5462 (car (cdr x-5407)))
- (exp-5464
- (regen-5085 (car (cdr (cdr x-5407))))))
- (let ((body-5469
- (make-struct/no-tail
- (vector-ref %expanded-vtables 14)
- #f
- req-5460
- #f
- #f
- #f
- '()
- vars-5462
- exp-5464
- #f)))
- (make-struct/no-tail
- (vector-ref %expanded-vtables 13)
- #f
- '()
- body-5469)))
- (error "how did we get here" x-5407))
- (let ((fun-exp-5485
- (let ((name-5494 (car x-5407)))
- (if (equal?
- (module-name (current-module))
- '(guile))
- (make-struct/no-tail
- (vector-ref %expanded-vtables 7)
- #f
- name-5494)
- (make-struct/no-tail
- (vector-ref %expanded-vtables 5)
- #f
- '(guile)
- name-5494
- #f))))
- (arg-exps-5486 (map regen-5085 (cdr x-5407))))
- (make-struct/no-tail
- (vector-ref %expanded-vtables 11)
- #f
- fun-exp-5485
- arg-exps-5486))))))))))
- (lambda (e-5086 r-5087 w-5088 s-5089 mod-5090)
- (let ((e-5091
- (wrap-4290
- (begin
- (if (if s-5089
- (supports-source-properties? e-5086)
- #f)
- (set-source-properties! e-5086 s-5089))
- e-5086)
- w-5088
- mod-5090)))
- (let ((tmp-5093 ($sc-dispatch e-5091 '(_ any))))
- (if tmp-5093
- (@apply
- (lambda (x-5116)
- (call-with-values
- (lambda ()
- (gen-syntax-5078
- e-5091
- x-5116
- r-5087
- '()
- ellipsis?-4305
- mod-5090))
- (lambda (e-5170 maps-5171) (regen-5085 e-5170))))
- tmp-5093)
- (syntax-violation
- 'syntax
- "bad `syntax' form"
- e-5091)))))))
- (global-extend-4259
- 'core
- 'lambda
- (lambda (e-5679 r-5680 w-5681 s-5682 mod-5683)
- (let ((tmp-5685
- ($sc-dispatch e-5679 '(_ any any . each-any))))
- (if tmp-5685
- (@apply
- (lambda (args-5687 e1-5688 e2-5689)
- (call-with-values
- (lambda () (lambda-formals-4306 args-5687))
- (lambda (req-5692 opt-5693 rest-5694 kw-5695)
- (letrec*
- ((lp-5696
- (lambda (body-5699 meta-5700)
- (let ((tmp-5702
- ($sc-dispatch
- body-5699
- '(any any . each-any))))
- (if (if tmp-5702
- (@apply
- (lambda (docstring-5706 e1-5707 e2-5708)
- (string?
- (syntax->datum docstring-5706)))
- tmp-5702)
- #f)
- (@apply
- (lambda (docstring-5709 e1-5710 e2-5711)
- (lp-5696
- (cons e1-5710 e2-5711)
- (append
- meta-5700
- (list (cons 'documentation
- (syntax->datum
- docstring-5709))))))
- tmp-5702)
- (let ((tmp-5712
- ($sc-dispatch
- body-5699
- '(#(vector #(each (any . any)))
- any
- .
- each-any))))
- (if tmp-5712
- (@apply
- (lambda (k-5716 v-5717 e1-5718 e2-5719)
- (lp-5696
- (cons e1-5718 e2-5719)
- (append
- meta-5700
- (syntax->datum
- (map cons k-5716 v-5717)))))
- tmp-5712)
- (expand-simple-lambda-4307
- e-5679
- r-5680
- w-5681
- s-5682
- mod-5683
- req-5692
- rest-5694
- meta-5700
- body-5699))))))))
- (lp-5696 (cons e1-5688 e2-5689) '())))))
- tmp-5685)
- (syntax-violation 'lambda "bad lambda" e-5679)))))
- (global-extend-4259
- 'core
- 'lambda*
- (lambda (e-6002 r-6003 w-6004 s-6005 mod-6006)
- (let ((tmp-6008
- ($sc-dispatch e-6002 '(_ any any . each-any))))
- (if tmp-6008
- (@apply
- (lambda (args-6010 e1-6011 e2-6012)
- (call-with-values
- (lambda ()
- (expand-lambda-case-4309
- e-6002
- r-6003
- w-6004
- s-6005
- mod-6006
- lambda*-formals-4308
- (list (cons args-6010 (cons e1-6011 e2-6012)))))
- (lambda (meta-6015 lcase-6016)
- (make-struct/no-tail
- (vector-ref %expanded-vtables 13)
- s-6005
- meta-6015
- lcase-6016))))
- tmp-6008)
- (syntax-violation 'lambda "bad lambda*" e-6002)))))
- (global-extend-4259
- 'core
- 'case-lambda
- (lambda (e-6181 r-6182 w-6183 s-6184 mod-6185)
- (let ((tmp-6187
- ($sc-dispatch
- e-6181
- '(_ (any any . each-any)
- .
- #(each (any any . each-any))))))
- (if tmp-6187
- (@apply
- (lambda (args-6189
- e1-6190
- e2-6191
- args*-6192
- e1*-6193
- e2*-6194)
- (call-with-values
- (lambda ()
- (expand-lambda-case-4309
- e-6181
- r-6182
- w-6183
- s-6184
- mod-6185
- lambda-formals-4306
- (cons (cons args-6189 (cons e1-6190 e2-6191))
- (map (lambda (tmp-3252-6197
- tmp-3251-6198
- tmp-3250-6199)
- (cons tmp-3250-6199
- (cons tmp-3251-6198 tmp-3252-6197)))
- e2*-6194
- e1*-6193
- args*-6192))))
- (lambda (meta-6200 lcase-6201)
- (make-struct/no-tail
- (vector-ref %expanded-vtables 13)
- s-6184
- meta-6200
- lcase-6201))))
- tmp-6187)
- (syntax-violation
- 'case-lambda
- "bad case-lambda"
- e-6181)))))
- (global-extend-4259
- 'core
- 'case-lambda*
- (lambda (e-6358 r-6359 w-6360 s-6361 mod-6362)
- (let ((tmp-6364
- ($sc-dispatch
- e-6358
- '(_ (any any . each-any)
- .
- #(each (any any . each-any))))))
- (if tmp-6364
- (@apply
- (lambda (args-6366
- e1-6367
- e2-6368
- args*-6369
- e1*-6370
- e2*-6371)
- (call-with-values
- (lambda ()
- (expand-lambda-case-4309
- e-6358
- r-6359
- w-6360
- s-6361
- mod-6362
- lambda*-formals-4308
- (cons (cons args-6366 (cons e1-6367 e2-6368))
- (map (lambda (tmp-3285-6374
- tmp-3284-6375
- tmp-3283-6376)
- (cons tmp-3283-6376
- (cons tmp-3284-6375 tmp-3285-6374)))
- e2*-6371
- e1*-6370
- args*-6369))))
- (lambda (meta-6377 lcase-6378)
- (make-struct/no-tail
- (vector-ref %expanded-vtables 13)
- s-6361
- meta-6377
- lcase-6378))))
- tmp-6364)
- (syntax-violation
- 'case-lambda
- "bad case-lambda*"
- e-6358)))))
- (global-extend-4259
- 'core
- 'let
- (letrec*
- ((expand-let-6566
- (lambda (e-6714
- r-6715
- w-6716
- s-6717
- mod-6718
- constructor-6719
- ids-6720
- vals-6721
- exps-6722)
- (if (not (valid-bound-ids?-4287 ids-6720))
- (syntax-violation
- 'let
- "duplicate bound variable"
- e-6714)
- (let ((labels-6800 (gen-labels-4264 ids-6720))
- (new-vars-6801 (map gen-var-4311 ids-6720)))
- (let ((nw-6802
- (make-binding-wrap-4275
- ids-6720
- labels-6800
- w-6716))
- (nr-6803
- (extend-var-env-4256
- labels-6800
- new-vars-6801
- r-6715)))
- (constructor-6719
- s-6717
- (map syntax->datum ids-6720)
- new-vars-6801
- (map (lambda (x-6820)
- (call-with-values
- (lambda ()
- (syntax-type-4296
- x-6820
- r-6715
- w-6716
- (let ((props-6836
- (source-properties
- (if (if (vector? x-6820)
- (if (= (vector-length
- x-6820)
- 4)
- (eq? (vector-ref
- x-6820
- 0)
- 'syntax-object)
- #f)
- #f)
- (vector-ref x-6820 1)
- x-6820))))
- (if (pair? props-6836) props-6836 #f))
- #f
- mod-6718
- #f))
- (lambda (type-6869
- value-6870
- form-6871
- e-6872
- w-6873
- s-6874
- mod-6875)
- (expand-expr-4298
- type-6869
- value-6870
- form-6871
- e-6872
- r-6715
- w-6873
- s-6874
- mod-6875))))
- vals-6721)
- (expand-body-4301
- exps-6722
- (source-wrap-4291 e-6714 nw-6802 s-6717 mod-6718)
- nr-6803
- nw-6802
- mod-6718))))))))
- (lambda (e-6567 r-6568 w-6569 s-6570 mod-6571)
- (let ((tmp-6573
- ($sc-dispatch
- e-6567
- '(_ #(each (any any)) any . each-any))))
- (if (if tmp-6573
- (@apply
- (lambda (id-6577 val-6578 e1-6579 e2-6580)
- (and-map id?-4261 id-6577))
- tmp-6573)
- #f)
- (@apply
- (lambda (id-6596 val-6597 e1-6598 e2-6599)
- (expand-let-6566
- e-6567
- r-6568
- w-6569
- s-6570
- mod-6571
- build-let-4243
- id-6596
- val-6597
- (cons e1-6598 e2-6599)))
- tmp-6573)
- (let ((tmp-6629
- ($sc-dispatch
- e-6567
- '(_ any #(each (any any)) any . each-any))))
- (if (if tmp-6629
- (@apply
- (lambda (f-6633 id-6634 val-6635 e1-6636 e2-6637)
- (if (if (symbol? f-6633)
- #t
- (if (if (vector? f-6633)
- (if (= (vector-length f-6633) 4)
- (eq? (vector-ref f-6633 0)
- 'syntax-object)
- #f)
- #f)
- (symbol? (vector-ref f-6633 1))
- #f))
- (and-map id?-4261 id-6634)
- #f))
- tmp-6629)
- #f)
- (@apply
- (lambda (f-6679 id-6680 val-6681 e1-6682 e2-6683)
- (expand-let-6566
- e-6567
- r-6568
- w-6569
- s-6570
- mod-6571
- build-named-let-4244
- (cons f-6679 id-6680)
- val-6681
- (cons e1-6682 e2-6683)))
- tmp-6629)
- (syntax-violation
- 'let
- "bad let"
- (wrap-4290
- (begin
- (if (if s-6570
- (supports-source-properties? e-6567)
- #f)
- (set-source-properties! e-6567 s-6570))
- e-6567)
- w-6569
- mod-6571)))))))))
- (global-extend-4259
- 'core
- 'letrec
- (lambda (e-7219 r-7220 w-7221 s-7222 mod-7223)
- (let ((tmp-7225
- ($sc-dispatch
- e-7219
- '(_ #(each (any any)) any . each-any))))
- (if (if tmp-7225
- (@apply
- (lambda (id-7227 val-7228 e1-7229 e2-7230)
- (and-map id?-4261 id-7227))
- tmp-7225)
- #f)
- (@apply
- (lambda (id-7246 val-7247 e1-7248 e2-7249)
- (if (not (valid-bound-ids?-4287 id-7246))
- (syntax-violation
- 'letrec
- "duplicate bound variable"
- e-7219)
- (let ((labels-7339 (gen-labels-4264 id-7246))
- (new-vars-7340 (map gen-var-4311 id-7246)))
- (let ((w-7341
- (make-binding-wrap-4275
- id-7246
- labels-7339
- w-7221))
- (r-7342
- (extend-var-env-4256
- labels-7339
- new-vars-7340
- r-7220)))
- (build-letrec-4245
- s-7222
- #f
- (map syntax->datum id-7246)
- new-vars-7340
- (map (lambda (x-7427)
- (expand-4297 x-7427 r-7342 w-7341 mod-7223))
- val-7247)
- (expand-body-4301
- (cons e1-7248 e2-7249)
- (wrap-4290
- (begin
- (if (if s-7222
- (supports-source-properties? e-7219)
- #f)
- (set-source-properties! e-7219 s-7222))
- e-7219)
- w-7341
- mod-7223)
- r-7342
- w-7341
- mod-7223))))))
- tmp-7225)
- (syntax-violation
- 'letrec
- "bad letrec"
- (wrap-4290
- (begin
- (if (if s-7222
- (supports-source-properties? e-7219)
- #f)
- (set-source-properties! e-7219 s-7222))
- e-7219)
- w-7221
- mod-7223))))))
- (global-extend-4259
- 'core
- 'letrec*
- (lambda (e-7817 r-7818 w-7819 s-7820 mod-7821)
- (let ((tmp-7823
- ($sc-dispatch
- e-7817
- '(_ #(each (any any)) any . each-any))))
- (if (if tmp-7823
- (@apply
- (lambda (id-7825 val-7826 e1-7827 e2-7828)
- (and-map id?-4261 id-7825))
- tmp-7823)
- #f)
- (@apply
- (lambda (id-7844 val-7845 e1-7846 e2-7847)
- (if (not (valid-bound-ids?-4287 id-7844))
+ "source expression failed to match any pattern"
+ tmp-1))))
+ (rest
+ (let* ((v (gen-var rest))
+ (l (gen-labels (list v)))
+ (r* (extend-var-env l (list v) r*))
+ (w* (make-binding-wrap (list rest) l w*)))
+ (parse-kw
+ req
+ (and (pair? out) (reverse out))
+ (syntax->datum rest)
+ (if (pair? kw) (cdr kw) kw)
+ body
+ (cons v vars)
+ r*
+ w*
+ (and (pair? kw) (car kw))
+ '()
+ inits)))
+ (else
+ (parse-kw
+ req
+ (and (pair? out) (reverse out))
+ #f
+ (if (pair? kw) (cdr kw) kw)
+ body
+ vars
+ r*
+ w*
+ (and (pair? kw) (car kw))
+ '()
+ inits)))))
+ (parse-kw
+ (lambda (req opt rest kw body vars r* w* aok out inits)
+ (if (pair? kw)
+ (let* ((tmp-1 (car kw)) (tmp ($sc-dispatch tmp-1 '(any any
any))))
+ (if tmp
+ (apply (lambda (k id i)
+ (let* ((v (gen-var id))
+ (l (gen-labels (list v)))
+ (r** (extend-var-env l (list v) r*))
+ (w** (make-binding-wrap (list id) l w*)))
+ (parse-kw
+ req
+ opt
+ rest
+ (cdr kw)
+ body
+ (cons v vars)
+ r**
+ w**
+ aok
+ (cons (list (syntax->datum k) (syntax->datum
id) v) out)
+ (cons (expand i r* w* mod) inits))))
+ tmp)
(syntax-violation
- 'letrec*
- "duplicate bound variable"
- e-7817)
- (let ((labels-7937 (gen-labels-4264 id-7844))
- (new-vars-7938 (map gen-var-4311 id-7844)))
- (let ((w-7939
- (make-binding-wrap-4275
- id-7844
- labels-7937
- w-7819))
- (r-7940
- (extend-var-env-4256
- labels-7937
- new-vars-7938
- r-7818)))
- (build-letrec-4245
- s-7820
- #t
- (map syntax->datum id-7844)
- new-vars-7938
- (map (lambda (x-8025)
- (expand-4297 x-8025 r-7940 w-7939 mod-7821))
- val-7845)
- (expand-body-4301
- (cons e1-7846 e2-7847)
- (wrap-4290
- (begin
- (if (if s-7820
- (supports-source-properties? e-7817)
- #f)
- (set-source-properties! e-7817 s-7820))
- e-7817)
- w-7939
- mod-7821)
- r-7940
- w-7939
- mod-7821))))))
- tmp-7823)
- (syntax-violation
- 'letrec*
- "bad letrec*"
- (wrap-4290
- (begin
- (if (if s-7820
- (supports-source-properties? e-7817)
- #f)
- (set-source-properties! e-7817 s-7820))
- e-7817)
- w-7819
- mod-7821))))))
- (global-extend-4259
- 'core
- 'set!
- (lambda (e-8488 r-8489 w-8490 s-8491 mod-8492)
- (let ((tmp-8494 ($sc-dispatch e-8488 '(_ any any))))
- (if (if tmp-8494
- (@apply
- (lambda (id-8498 val-8499)
- (if (symbol? id-8498)
- #t
- (if (if (vector? id-8498)
- (if (= (vector-length id-8498) 4)
- (eq? (vector-ref id-8498 0) 'syntax-object)
- #f)
- #f)
- (symbol? (vector-ref id-8498 1))
- #f)))
- tmp-8494)
- #f)
- (@apply
- (lambda (id-8526 val-8527)
- (let ((n-8528 (id-var-name-4280 id-8526 w-8490))
- (id-mod-8529
- (if (if (vector? id-8526)
- (if (= (vector-length id-8526) 4)
- (eq? (vector-ref id-8526 0) 'syntax-object)
- #f)
- #f)
- (vector-ref id-8526 3)
- mod-8492)))
- (let ((b-8530
- (let ((t-8571 (assq n-8528 r-8489)))
- (if t-8571
- (cdr t-8571)
- (if (symbol? n-8528)
- (let ((t-8576
- (get-global-definition-hook-4224
- n-8528
- id-mod-8529)))
- (if t-8576 t-8576 '(global)))
- '(displaced-lexical))))))
- (let ((key-8531 (car b-8530)))
- (if (eqv? key-8531 'lexical)
- (let ((name-8588 (syntax->datum id-8526))
- (var-8589 (cdr b-8530))
- (exp-8590
+ #f
+ "source expression failed to match any pattern"
+ tmp-1)))
+ (parse-body
+ req
+ opt
+ rest
+ (and (or aok (pair? out)) (cons aok (reverse out)))
+ body
+ (reverse vars)
+ r*
+ w*
+ (reverse inits)
+ '()))))
+ (parse-body
+ (lambda (req opt rest kw body vars r* w* inits meta)
+ (let* ((tmp body) (tmp-1 ($sc-dispatch tmp '(any any .
each-any))))
+ (if (and tmp-1
+ (apply (lambda (docstring e1 e2) (string?
(syntax->datum docstring)))
+ tmp-1))
+ (apply (lambda (docstring e1 e2)
+ (parse-body
+ req
+ opt
+ rest
+ kw
+ (cons e1 e2)
+ vars
+ r*
+ w*
+ inits
+ (append meta (list (cons 'documentation
(syntax->datum docstring))))))
+ tmp-1)
+ (let ((tmp-1 ($sc-dispatch tmp '(#(vector #(each (any .
any))) any . each-any))))
+ (if tmp-1
+ (apply (lambda (k v e1 e2)
+ (parse-body
+ req
+ opt
+ rest
+ kw
+ (cons e1 e2)
+ vars
+ r*
+ w*
+ inits
+ (append meta (syntax->datum (map cons k v)))))
+ tmp-1)
+ (let ((tmp-1 ($sc-dispatch tmp '(any . each-any))))
+ (if tmp-1
+ (apply (lambda (e1 e2)
+ (values
+ meta
+ req
+ opt
+ rest
+ kw
+ inits
+ vars
+ (expand-body (cons e1 e2) (source-wrap e
w s mod) r* w* mod)))
+ tmp-1)
+ (syntax-violation
+ #f
+ "source expression failed to match any pattern"
+ tmp))))))))))
+ (let* ((tmp clauses) (tmp-1 ($sc-dispatch tmp '())))
+ (if tmp-1
+ (apply (lambda () (values '() #f)) tmp-1)
+ (let ((tmp-1 ($sc-dispatch
+ tmp
+ '((any any . each-any) . #(each (any any .
each-any))))))
+ (if tmp-1
+ (apply (lambda (args e1 e2 args* e1* e2*)
+ (call-with-values
+ (lambda () (get-formals args))
+ (lambda (req opt rest kw)
+ (call-with-values
+ (lambda () (parse-req req opt rest kw (cons e1
e2)))
+ (lambda (meta req opt rest kw inits vars body)
(call-with-values
(lambda ()
- (syntax-type-4296
- val-8527
- r-8489
- w-8490
- (let ((props-8611
- (source-properties
- (if (if (vector? val-8527)
- (if (= (vector-length
- val-8527)
- 4)
- (eq? (vector-ref
- val-8527
- 0)
- 'syntax-object)
- #f)
- #f)
- (vector-ref val-8527 1)
- val-8527))))
- (if (pair? props-8611)
- props-8611
- #f))
- #f
- mod-8492
- #f))
- (lambda (type-8644
- value-8645
- form-8646
- e-8647
- w-8648
- s-8649
- mod-8650)
- (expand-expr-4298
- type-8644
- value-8645
- form-8646
- e-8647
- r-8489
- w-8648
- s-8649
- mod-8650)))))
- (begin
- (if (if (struct? exp-8590)
- (eq? (struct-vtable exp-8590)
- (vector-ref %expanded-vtables 13))
- #f)
- (let ((meta-8662 (struct-ref exp-8590 1)))
- (if (not (assq 'name meta-8662))
- (let ((v-8669
- (cons (cons 'name name-8588)
- meta-8662)))
- (struct-set! exp-8590 1 v-8669)))))
- (make-struct/no-tail
- (vector-ref %expanded-vtables 4)
- s-8491
- name-8588
- var-8589
- exp-8590)))
- (if (eqv? key-8531 'global)
- (let ((exp-8685
- (call-with-values
- (lambda ()
- (syntax-type-4296
- val-8527
- r-8489
- w-8490
- (let ((props-8707
- (source-properties
- (if (if (vector? val-8527)
- (if (= (vector-length
- val-8527)
- 4)
- (eq? (vector-ref
- val-8527
- 0)
-
'syntax-object)
- #f)
- #f)
- (vector-ref val-8527 1)
- val-8527))))
- (if (pair? props-8707)
- props-8707
- #f))
- #f
- mod-8492
- #f))
- (lambda (type-8740
- value-8741
- form-8742
- e-8743
- w-8744
- s-8745
- mod-8746)
- (expand-expr-4298
- type-8740
- value-8741
- form-8742
- e-8743
- r-8489
- w-8744
- s-8745
- mod-8746)))))
- (begin
- (if (if (struct? exp-8685)
- (eq? (struct-vtable exp-8685)
- (vector-ref %expanded-vtables 13))
- #f)
- (let ((meta-8758 (struct-ref exp-8685 1)))
- (if (not (assq 'name meta-8758))
- (let ((v-8765
- (cons (cons 'name n-8528)
- meta-8758)))
- (struct-set! exp-8685 1 v-8765)))))
- (analyze-variable-4233
- id-mod-8529
- n-8528
- (lambda (mod-8773 var-8774 public?-8775)
- (make-struct/no-tail
- (vector-ref %expanded-vtables 6)
- s-8491
- mod-8773
- var-8774
- public?-8775
- exp-8685))
- (lambda (var-8784)
- (make-struct/no-tail
- (vector-ref %expanded-vtables 8)
- s-8491
- var-8784
- exp-8685)))))
- (if (eqv? key-8531 'macro)
- (let ((p-8794 (cdr b-8530)))
- (if (procedure-property
- p-8794
- 'variable-transformer)
- (let ((e-8799
- (expand-macro-4300
- p-8794
- e-8488
- r-8489
- w-8490
- s-8491
- #f
- mod-8492)))
- (call-with-values
- (lambda ()
- (syntax-type-4296
- e-8799
- r-8489
- '(())
- (let ((props-8810
- (source-properties
- (if (if (vector? e-8799)
- (if (= (vector-length
- e-8799)
- 4)
- (eq? (vector-ref
- e-8799
- 0)
-
'syntax-object)
- #f)
- #f)
- (vector-ref e-8799 1)
- e-8799))))
- (if (pair? props-8810)
- props-8810
- #f))
- #f
- mod-8492
- #f))
- (lambda (type-8833
- value-8834
- form-8835
- e-8836
- w-8837
- s-8838
- mod-8839)
- (expand-expr-4298
- type-8833
- value-8834
- form-8835
- e-8836
- r-8489
- w-8837
- s-8838
- mod-8839))))
- (syntax-violation
- 'set!
- "not a variable transformer"
- (wrap-4290 e-8488 w-8490 mod-8492)
- (wrap-4290 id-8526 w-8490 id-mod-8529))))
- (if (eqv? key-8531 'displaced-lexical)
- (syntax-violation
- 'set!
- "identifier out of context"
- (wrap-4290 id-8526 w-8490 mod-8492))
- (syntax-violation
- 'set!
- "bad set!"
- (wrap-4290
- (begin
- (if (if s-8491
- (supports-source-properties?
- e-8488)
- #f)
- (set-source-properties! e-8488 s-8491))
- e-8488)
- w-8490
- mod-8492))))))))))
- tmp-8494)
- (let ((tmp-8874
- ($sc-dispatch e-8488 '(_ (any . each-any) any))))
- (if tmp-8874
- (@apply
- (lambda (head-8878 tail-8879 val-8880)
+ (expand-lambda-case
+ e
+ r
+ w
+ s
+ mod
+ get-formals
+ (map (lambda (tmp-2 tmp-1 tmp) (cons
tmp (cons tmp-1 tmp-2)))
+ e2*
+ e1*
+ args*)))
+ (lambda (meta* else*)
+ (values
+ (append meta meta*)
+ (build-lambda-case s req opt rest kw
inits vars body else*)))))))))
+ tmp-1)
+ (syntax-violation
+ #f
+ "source expression failed to match any pattern"
+ tmp))))))))
+ (strip (lambda (x w)
+ (if (memq 'top (car w))
+ x
+ (let f ((x x))
+ (cond ((syntax-object? x)
+ (strip (syntax-object-expression x) (syntax-object-wrap
x)))
+ ((pair? x)
+ (let ((a (f (car x))) (d (f (cdr x))))
+ (if (and (eq? a (car x)) (eq? d (cdr x))) x (cons a
d))))
+ ((vector? x)
+ (let* ((old (vector->list x)) (new (map f old)))
+ (let lp ((l1 old) (l2 new))
+ (cond ((null? l1) x)
+ ((eq? (car l1) (car l2)) (lp (cdr l1) (cdr
l2)))
+ (else (list->vector new))))))
+ (else x))))))
+ (gen-var
+ (lambda (id)
+ (let ((id (if (syntax-object? id) (syntax-object-expression id) id)))
+ (gensym (string-append (symbol->string id) "-")))))
+ (lambda-var-list
+ (lambda (vars)
+ (let lvl ((vars vars) (ls '()) (w '(())))
+ (cond ((pair? vars) (lvl (cdr vars) (cons (wrap (car vars) w #f) ls)
w))
+ ((id? vars) (cons (wrap vars w #f) ls))
+ ((null? vars) ls)
+ ((syntax-object? vars)
+ (lvl (syntax-object-expression vars)
+ ls
+ (join-wraps w (syntax-object-wrap vars))))
+ (else (cons vars ls)))))))
+ (global-extend 'local-syntax 'letrec-syntax #t)
+ (global-extend 'local-syntax 'let-syntax #f)
+ (global-extend
+ 'core
+ 'syntax-parameterize
+ (lambda (e r w s mod)
+ (let* ((tmp e)
+ (tmp ($sc-dispatch tmp '(_ #(each (any any)) any . each-any))))
+ (if (and tmp (apply (lambda (var val e1 e2) (valid-bound-ids? var))
tmp))
+ (apply (lambda (var val e1 e2)
+ (let ((names (map (lambda (x) (id-var-name x w)) var)))
+ (for-each
+ (lambda (id n)
+ (let ((key (car (lookup n r mod))))
+ (if (memv key '(displaced-lexical))
+ (syntax-violation
+ 'syntax-parameterize
+ "identifier out of context"
+ e
+ (source-wrap id w s mod)))))
+ var
+ names)
+ (expand-body
+ (cons e1 e2)
+ (source-wrap e w s mod)
+ (extend-env
+ names
+ (let ((trans-r (macros-only-env r)))
+ (map (lambda (x)
+ (cons 'macro (eval-local-transformer (expand
x trans-r w mod) mod)))
+ val))
+ r)
+ w
+ mod)))
+ tmp)
+ (syntax-violation
+ 'syntax-parameterize
+ "bad syntax"
+ (source-wrap e w s mod))))))
+ (global-extend
+ 'core
+ 'quote
+ (lambda (e r w s mod)
+ (let* ((tmp e) (tmp ($sc-dispatch tmp '(_ any))))
+ (if tmp
+ (apply (lambda (e) (build-data s (strip e w))) tmp)
+ (syntax-violation 'quote "bad syntax" (source-wrap e w s mod))))))
+ (global-extend
+ 'core
+ 'syntax
+ (letrec*
+ ((gen-syntax
+ (lambda (src e r maps ellipsis? mod)
+ (if (id? e)
+ (let* ((label (id-var-name e '(()))) (b (lookup label r mod)))
+ (cond ((eq? (car b) 'syntax)
(call-with-values
(lambda ()
- (syntax-type-4296
- head-8878
- r-8489
- '(())
- #f
- #f
- mod-8492
- #t))
- (lambda (type-8883
- value-8884
- formform-8885
- ee-8886
- ww-8887
- ss-8888
- modmod-8889)
- (if (eqv? type-8883 'module-ref)
- (let ((val-8895
+ (let ((var.lev (cdr b)))
+ (gen-ref src (car var.lev) (cdr var.lev) maps)))
+ (lambda (var maps) (values (list 'ref var) maps))))
+ ((ellipsis? e) (syntax-violation 'syntax "misplaced
ellipsis" src))
+ (else (values (list 'quote e) maps))))
+ (let* ((tmp e) (tmp-1 ($sc-dispatch tmp '(any any))))
+ (if (and tmp-1 (apply (lambda (dots e) (ellipsis? dots)) tmp-1))
+ (apply (lambda (dots e) (gen-syntax src e r maps (lambda (x)
#f) mod))
+ tmp-1)
+ (let ((tmp-1 ($sc-dispatch tmp '(any any . any))))
+ (if (and tmp-1 (apply (lambda (x dots y) (ellipsis? dots))
tmp-1))
+ (apply (lambda (x dots y)
+ (let f ((y y)
+ (k (lambda (maps)
+ (call-with-values
+ (lambda () (gen-syntax src x r
(cons '() maps) ellipsis? mod))
+ (lambda (x maps)
+ (if (null? (car maps))
+ (syntax-violation 'syntax
"extra ellipsis" src)
+ (values (gen-map x (car
maps)) (cdr maps))))))))
+ (let* ((tmp y) (tmp ($sc-dispatch tmp '(any .
any))))
+ (if (and tmp (apply (lambda (dots y)
(ellipsis? dots)) tmp))
+ (apply (lambda (dots y)
+ (f y
+ (lambda (maps)
+ (call-with-values
+ (lambda () (k (cons '()
maps)))
+ (lambda (x maps)
+ (if (null? (car maps))
+ (syntax-violation
'syntax "extra ellipsis" src)
+ (values (gen-mappend x
(car maps)) (cdr maps))))))))
+ tmp)
(call-with-values
- (lambda ()
- (syntax-type-4296
- val-8880
- r-8489
- w-8490
- (let ((props-8962
- (source-properties
- (if (if (vector? val-8880)
- (if (= (vector-length
- val-8880)
- 4)
- (eq? (vector-ref
- val-8880
- 0)
-
'syntax-object)
- #f)
- #f)
- (vector-ref val-8880 1)
- val-8880))))
- (if (pair? props-8962)
- props-8962
- #f))
- #f
- mod-8492
- #f))
- (lambda (type-8995
- value-8996
- form-8997
- e-8998
- w-8999
- s-9000
- mod-9001)
- (expand-expr-4298
- type-8995
- value-8996
- form-8997
- e-8998
- r-8489
- w-8999
- s-9000
- mod-9001)))))
- (call-with-values
- (lambda ()
- (value-8884
- (cons head-8878 tail-8879)
- r-8489
- w-8490))
- (lambda (e-8896 r-8897 w-8898 s*-8899 mod-8900)
- (let ((tmp-8902 (list e-8896)))
- (if (@apply
- (lambda (e-8904)
- (if (symbol? e-8904)
- #t
- (if (if (vector? e-8904)
- (if (= (vector-length
- e-8904)
- 4)
- (eq? (vector-ref
- e-8904
- 0)
- 'syntax-object)
- #f)
- #f)
- (symbol? (vector-ref e-8904 1))
- #f)))
- tmp-8902)
- (@apply
- (lambda (e-8934)
- (let ((var-8939
- (syntax->datum e-8934)))
- (begin
- (if (if (struct? val-8895)
- (eq? (struct-vtable
- val-8895)
- (vector-ref
- %expanded-vtables
- 13))
- #f)
- (let ((meta-9017
- (struct-ref
- val-8895
- 1)))
- (if (not (assq 'name
- meta-9017))
- (let ((v-9026
- (cons (cons 'name
-
var-8939)
- meta-9017)))
- (struct-set!
- val-8895
- 1
- v-9026)))))
- (analyze-variable-4233
- mod-8900
- var-8939
- (lambda (mod-9032
- var-9033
- public?-9034)
- (make-struct/no-tail
- (vector-ref
- %expanded-vtables
- 6)
- s-8491
- mod-9032
- var-9033
- public?-9034
- val-8895))
- (lambda (var-9045)
- (make-struct/no-tail
- (vector-ref
- %expanded-vtables
- 8)
- s-8491
- var-9045
- val-8895))))))
- tmp-8902)
- (syntax-violation
- #f
- "source expression failed to match any
pattern"
- e-8896))))))
- (let ((fun-exp-9061
- (let ((e-9069
- (list '#(syntax-object
- setter
- ((top)
- #(ribcage () () ())
- #(ribcage
- #(key)
- #((m-*-3526 top))
- #("l-*-3527"))
- #(ribcage () () ())
- #(ribcage () () ())
- #(ribcage
- #(type
- value
- formform
- ee
- ww
- ss
- modmod)
- #((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- #("l-*-3519"
- "l-*-3520"
- "l-*-3521"
- "l-*-3522"
- "l-*-3523"
- "l-*-3524"
- "l-*-3525"))
- #(ribcage
- #(head tail val)
- #((top) (top) (top))
- #("l-*-3504"
- "l-*-3505"
- "l-*-3506"))
- #(ribcage () () ())
- #(ribcage
- #(e r w s mod)
- #((top)
- (top)
- (top)
- (top)
- (top))
- #("l-*-3473"
- "l-*-3474"
- "l-*-3475"
- "l-*-3476"
- "l-*-3477"))
- #(ribcage
- (lambda-var-list
- gen-var
- strip
- expand-lambda-case
- lambda*-formals
- expand-simple-lambda
- lambda-formals
- ellipsis?
- expand-void
-
eval-local-transformer
- expand-local-syntax
- expand-body
- expand-macro
- expand-application
- expand-expr
- expand
- syntax-type
- parse-when-list
- expand-install-global
- expand-top-sequence
- expand-sequence
- source-wrap
- wrap
- bound-id-member?
- distinct-bound-ids?
- valid-bound-ids?
- bound-id=?
- free-id=?
-
with-transformer-environment
-
transformer-environment
- resolve-identifier
-
locally-bound-identifiers
- 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
-
build-global-assignment
-
build-global-reference
- analyze-variable
-
build-lexical-assignment
-
build-lexical-reference
- build-dynlet
- build-conditional
- build-application
- build-void
- maybe-name-value!
- decorate-source
-
get-global-definition-hook
-
put-global-definition-hook
- session-id
- local-eval-hook
- top-level-eval-hook
- fx<
- fx=
- fx-
- fx+
- set-lambda-meta!
- lambda-meta
- lambda?
- make-dynlet
- make-letrec
- make-let
- make-lambda-case
- make-lambda
- make-sequence
- make-application
- make-conditional
- make-toplevel-define
- make-toplevel-set
- make-toplevel-ref
- make-module-set
- make-module-ref
- make-lexical-set
- make-lexical-ref
- make-primitive-ref
- make-const
- make-void)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-476"
- "l-*-474"
- "l-*-472"
- "l-*-470"
- "l-*-468"
- "l-*-466"
- "l-*-464"
- "l-*-462"
- "l-*-460"
- "l-*-458"
- "l-*-456"
- "l-*-454"
- "l-*-452"
- "l-*-450"
- "l-*-448"
- "l-*-446"
- "l-*-444"
- "l-*-442"
- "l-*-440"
- "l-*-438"
- "l-*-436"
- "l-*-434"
- "l-*-432"
- "l-*-430"
- "l-*-428"
- "l-*-426"
- "l-*-424"
- "l-*-422"
- "l-*-420"
- "l-*-418"
- "l-*-416"
- "l-*-414"
- "l-*-412"
- "l-*-410"
- "l-*-408"
- "l-*-406"
- "l-*-404"
- "l-*-402"
- "l-*-400"
- "l-*-399"
- "l-*-397"
- "l-*-394"
- "l-*-393"
- "l-*-392"
- "l-*-390"
- "l-*-389"
- "l-*-387"
- "l-*-385"
- "l-*-383"
- "l-*-381"
- "l-*-379"
- "l-*-377"
- "l-*-375"
- "l-*-373"
- "l-*-370"
- "l-*-368"
- "l-*-367"
- "l-*-365"
- "l-*-363"
- "l-*-361"
- "l-*-359"
- "l-*-358"
- "l-*-357"
- "l-*-356"
- "l-*-354"
- "l-*-353"
- "l-*-350"
- "l-*-348"
- "l-*-346"
- "l-*-344"
- "l-*-342"
- "l-*-340"
- "l-*-338"
- "l-*-337"
- "l-*-336"
- "l-*-334"
- "l-*-332"
- "l-*-331"
- "l-*-328"
- "l-*-327"
- "l-*-325"
- "l-*-323"
- "l-*-321"
- "l-*-319"
- "l-*-317"
- "l-*-315"
- "l-*-313"
- "l-*-311"
- "l-*-309"
- "l-*-306"
- "l-*-304"
- "l-*-302"
- "l-*-300"
- "l-*-298"
- "l-*-296"
- "l-*-294"
- "l-*-292"
- "l-*-290"
- "l-*-288"
- "l-*-286"
- "l-*-284"
- "l-*-282"
- "l-*-280"
- "l-*-278"
- "l-*-276"
- "l-*-274"
- "l-*-272"
- "l-*-270"
- "l-*-268"
- "l-*-266"
- "l-*-264"
- "l-*-262"
- "l-*-260"
- "l-*-258"
- "l-*-256"
- "l-*-255"
- "l-*-254"
- "l-*-253"
- "l-*-252"
- "l-*-250"
- "l-*-248"
- "l-*-246"
- "l-*-243"
- "l-*-241"
- "l-*-239"
- "l-*-237"
- "l-*-235"
- "l-*-233"
- "l-*-231"
- "l-*-229"
- "l-*-227"
- "l-*-225"
- "l-*-223"
- "l-*-221"
- "l-*-219"
- "l-*-217"
- "l-*-215"
- "l-*-213"
- "l-*-211"
- "l-*-209"))
- #(ribcage
- (define-structure
-
define-expansion-accessors
-
define-expansion-constructors)
- ((top) (top) (top))
- ("l-*-47"
- "l-*-46"
- "l-*-45")))
- (hygiene guile))
- head-8878)))
+ (lambda () (gen-syntax src y r maps
ellipsis? mod))
+ (lambda (y maps)
+ (call-with-values
+ (lambda () (k maps))
+ (lambda (x maps) (values (gen-append
x y) maps)))))))))
+ tmp-1)
+ (let ((tmp-1 ($sc-dispatch tmp '(any . any))))
+ (if tmp-1
+ (apply (lambda (x y)
+ (call-with-values
+ (lambda () (gen-syntax src x r maps
ellipsis? mod))
+ (lambda (x maps)
(call-with-values
- (lambda ()
- (syntax-type-4296
- e-9069
- r-8489
- w-8490
- (let ((props-9079
- (source-properties
- (if (if (vector? e-9069)
- (if (=
(vector-length
- e-9069)
- 4)
- (eq? (vector-ref
- e-9069
- 0)
-
'syntax-object)
- #f)
- #f)
- (vector-ref e-9069 1)
- e-9069))))
- (if (pair? props-9079)
- props-9079
- #f))
- #f
- mod-8492
- #f))
- (lambda (type-9102
- value-9103
- form-9104
- e-9105
- w-9106
- s-9107
- mod-9108)
- (expand-expr-4298
- type-9102
- value-9103
- form-9104
- e-9105
- r-8489
- w-9106
- s-9107
- mod-9108)))))
- (arg-exps-9062
- (map (lambda (e-9112)
- (call-with-values
- (lambda ()
- (syntax-type-4296
- e-9112
- r-8489
- w-8490
- (let ((props-9127
- (source-properties
- (if (if (vector?
- e-9112)
- (if (=
(vector-length
-
e-9112)
- 4)
- (eq?
(vector-ref
-
e-9112
- 0)
-
'syntax-object)
- #f)
- #f)
- (vector-ref
- e-9112
- 1)
- e-9112))))
- (if (pair? props-9127)
- props-9127
- #f))
- #f
- mod-8492
- #f))
- (lambda (type-9160
- value-9161
- form-9162
- e-9163
- w-9164
- s-9165
- mod-9166)
- (expand-expr-4298
- type-9160
- value-9161
- form-9162
- e-9163
- r-8489
- w-9164
- s-9165
- mod-9166))))
- (append tail-8879 (list val-8880)))))
- (make-struct/no-tail
- (vector-ref %expanded-vtables 11)
- s-8491
- fun-exp-9061
- arg-exps-9062))))))
- tmp-8874)
- (syntax-violation
- 'set!
- "bad set!"
- (wrap-4290
- (begin
- (if (if s-8491
- (supports-source-properties? e-8488)
- #f)
- (set-source-properties! e-8488 s-8491))
- e-8488)
- w-8490
- mod-8492))))))))
- (module-define!
- (current-module)
- '@
- (make-syntax-transformer
- '@
- 'module-ref
- (lambda (e-9208 r-9209 w-9210)
- (let ((tmp-9212
- ($sc-dispatch e-9208 '(_ each-any any))))
- (if (if tmp-9212
- (@apply
- (lambda (mod-9215 id-9216)
- (if (and-map id?-4261 mod-9215)
- (if (symbol? id-9216)
- #t
- (if (if (vector? id-9216)
- (if (= (vector-length id-9216) 4)
- (eq? (vector-ref id-9216 0) 'syntax-object)
- #f)
- #f)
- (symbol? (vector-ref id-9216 1))
- #f))
- #f))
- tmp-9212)
- #f)
- (@apply
- (lambda (mod-9256 id-9257)
- (values
- (syntax->datum id-9257)
- r-9209
- w-9210
- #f
- (syntax->datum
- (cons '#(syntax-object
- public
- ((top)
- #(ribcage
- #(mod id)
- #((top) (top))
- #("l-*-3566" "l-*-3567"))
- #(ribcage () () ())
- #(ribcage
- #(e r w)
- #((top) (top) (top))
- #("l-*-3554" "l-*-3555" "l-*-3556"))
- #(ribcage
- (lambda-var-list
- gen-var
- strip
- expand-lambda-case
- lambda*-formals
- expand-simple-lambda
- lambda-formals
- ellipsis?
- expand-void
- eval-local-transformer
- expand-local-syntax
- expand-body
- expand-macro
- expand-application
- expand-expr
- expand
- syntax-type
- parse-when-list
- expand-install-global
- expand-top-sequence
- expand-sequence
- source-wrap
- wrap
- bound-id-member?
- distinct-bound-ids?
- valid-bound-ids?
- bound-id=?
- free-id=?
- with-transformer-environment
- transformer-environment
- resolve-identifier
- locally-bound-identifiers
- 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
- build-global-assignment
- build-global-reference
- analyze-variable
- build-lexical-assignment
- build-lexical-reference
- build-dynlet
- build-conditional
- build-application
- build-void
- maybe-name-value!
- decorate-source
- get-global-definition-hook
- put-global-definition-hook
- session-id
- local-eval-hook
- top-level-eval-hook
- fx<
- fx=
- fx-
- fx+
- set-lambda-meta!
- lambda-meta
- lambda?
- make-dynlet
- make-letrec
- make-let
- make-lambda-case
- make-lambda
- make-sequence
- make-application
- make-conditional
- make-toplevel-define
- make-toplevel-set
- make-toplevel-ref
- make-module-set
- make-module-ref
- make-lexical-set
- make-lexical-ref
- make-primitive-ref
- make-const
- make-void)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-476"
- "l-*-474"
- "l-*-472"
- "l-*-470"
- "l-*-468"
- "l-*-466"
- "l-*-464"
- "l-*-462"
- "l-*-460"
- "l-*-458"
- "l-*-456"
- "l-*-454"
- "l-*-452"
- "l-*-450"
- "l-*-448"
- "l-*-446"
- "l-*-444"
- "l-*-442"
- "l-*-440"
- "l-*-438"
- "l-*-436"
- "l-*-434"
- "l-*-432"
- "l-*-430"
- "l-*-428"
- "l-*-426"
- "l-*-424"
- "l-*-422"
- "l-*-420"
- "l-*-418"
- "l-*-416"
- "l-*-414"
- "l-*-412"
- "l-*-410"
- "l-*-408"
- "l-*-406"
- "l-*-404"
- "l-*-402"
- "l-*-400"
- "l-*-399"
- "l-*-397"
- "l-*-394"
- "l-*-393"
- "l-*-392"
- "l-*-390"
- "l-*-389"
- "l-*-387"
- "l-*-385"
- "l-*-383"
- "l-*-381"
- "l-*-379"
- "l-*-377"
- "l-*-375"
- "l-*-373"
- "l-*-370"
- "l-*-368"
- "l-*-367"
- "l-*-365"
- "l-*-363"
- "l-*-361"
- "l-*-359"
- "l-*-358"
- "l-*-357"
- "l-*-356"
- "l-*-354"
- "l-*-353"
- "l-*-350"
- "l-*-348"
- "l-*-346"
- "l-*-344"
- "l-*-342"
- "l-*-340"
- "l-*-338"
- "l-*-337"
- "l-*-336"
- "l-*-334"
- "l-*-332"
- "l-*-331"
- "l-*-328"
- "l-*-327"
- "l-*-325"
- "l-*-323"
- "l-*-321"
- "l-*-319"
- "l-*-317"
- "l-*-315"
- "l-*-313"
- "l-*-311"
- "l-*-309"
- "l-*-306"
- "l-*-304"
- "l-*-302"
- "l-*-300"
- "l-*-298"
- "l-*-296"
- "l-*-294"
- "l-*-292"
- "l-*-290"
- "l-*-288"
- "l-*-286"
- "l-*-284"
- "l-*-282"
- "l-*-280"
- "l-*-278"
- "l-*-276"
- "l-*-274"
- "l-*-272"
- "l-*-270"
- "l-*-268"
- "l-*-266"
- "l-*-264"
- "l-*-262"
- "l-*-260"
- "l-*-258"
- "l-*-256"
- "l-*-255"
- "l-*-254"
- "l-*-253"
- "l-*-252"
- "l-*-250"
- "l-*-248"
- "l-*-246"
- "l-*-243"
- "l-*-241"
- "l-*-239"
- "l-*-237"
- "l-*-235"
- "l-*-233"
- "l-*-231"
- "l-*-229"
- "l-*-227"
- "l-*-225"
- "l-*-223"
- "l-*-221"
- "l-*-219"
- "l-*-217"
- "l-*-215"
- "l-*-213"
- "l-*-211"
- "l-*-209"))
- #(ribcage
- (define-structure
- define-expansion-accessors
- define-expansion-constructors)
- ((top) (top) (top))
- ("l-*-47" "l-*-46" "l-*-45")))
- (hygiene guile))
- mod-9256))))
- tmp-9212)
- (syntax-violation
- #f
- "source expression failed to match any pattern"
- e-9208))))))
- (global-extend-4259
- 'module-ref
- '@@
- (lambda (e-9368 r-9369 w-9370)
- (letrec*
- ((remodulate-9371
- (lambda (x-9433 mod-9434)
- (if (pair? x-9433)
- (cons (remodulate-9371 (car x-9433) mod-9434)
- (remodulate-9371 (cdr x-9433) mod-9434))
- (if (if (vector? x-9433)
- (if (= (vector-length x-9433) 4)
- (eq? (vector-ref x-9433 0) 'syntax-object)
- #f)
- #f)
- (let ((expression-9448
- (remodulate-9371 (vector-ref x-9433 1) mod-9434))
- (wrap-9449 (vector-ref x-9433 2)))
- (vector
- 'syntax-object
- expression-9448
- wrap-9449
- mod-9434))
- (if (vector? x-9433)
- (let ((n-9457 (vector-length x-9433)))
- (let ((v-9458 (make-vector n-9457)))
- (letrec*
- ((loop-9459
- (lambda (i-9506)
- (if (= i-9506 n-9457)
- v-9458
- (begin
- (vector-set!
- v-9458
- i-9506
- (remodulate-9371
- (vector-ref x-9433 i-9506)
- mod-9434))
- (loop-9459 (#{1+}# i-9506)))))))
- (loop-9459 0))))
- x-9433))))))
- (let ((tmp-9373
- ($sc-dispatch e-9368 '(_ each-any any))))
- (if (if tmp-9373
- (@apply
- (lambda (mod-9377 exp-9378)
- (and-map id?-4261 mod-9377))
- tmp-9373)
- #f)
- (@apply
- (lambda (mod-9394 exp-9395)
- (let ((mod-9396
- (syntax->datum
- (cons '#(syntax-object
- private
- ((top)
- #(ribcage
- #(mod exp)
- #((top) (top))
- #("l-*-3604" "l-*-3605"))
- #(ribcage
- (remodulate)
- ((top))
- ("l-*-3577"))
- #(ribcage
- #(e r w)
- #((top) (top) (top))
- #("l-*-3574" "l-*-3575" "l-*-3576"))
- #(ribcage
- (lambda-var-list
- gen-var
- strip
- expand-lambda-case
- lambda*-formals
- expand-simple-lambda
- lambda-formals
- ellipsis?
- expand-void
- eval-local-transformer
- expand-local-syntax
- expand-body
- expand-macro
- expand-application
- expand-expr
- expand
- syntax-type
- parse-when-list
- expand-install-global
- expand-top-sequence
- expand-sequence
- source-wrap
- wrap
- bound-id-member?
- distinct-bound-ids?
- valid-bound-ids?
- bound-id=?
- free-id=?
- with-transformer-environment
- transformer-environment
- resolve-identifier
- locally-bound-identifiers
- 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
- build-global-assignment
- build-global-reference
- analyze-variable
- build-lexical-assignment
- build-lexical-reference
- build-dynlet
- build-conditional
- build-application
- build-void
- maybe-name-value!
- decorate-source
- get-global-definition-hook
- put-global-definition-hook
- session-id
- local-eval-hook
- top-level-eval-hook
- fx<
- fx=
- fx-
- fx+
- set-lambda-meta!
- lambda-meta
- lambda?
- make-dynlet
- make-letrec
- make-let
- make-lambda-case
- make-lambda
- make-sequence
- make-application
- make-conditional
- make-toplevel-define
- make-toplevel-set
- make-toplevel-ref
- make-module-set
- make-module-ref
- make-lexical-set
- make-lexical-ref
- make-primitive-ref
- make-const
- make-void)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-476"
- "l-*-474"
- "l-*-472"
- "l-*-470"
- "l-*-468"
- "l-*-466"
- "l-*-464"
- "l-*-462"
- "l-*-460"
- "l-*-458"
- "l-*-456"
- "l-*-454"
- "l-*-452"
- "l-*-450"
- "l-*-448"
- "l-*-446"
- "l-*-444"
- "l-*-442"
- "l-*-440"
- "l-*-438"
- "l-*-436"
- "l-*-434"
- "l-*-432"
- "l-*-430"
- "l-*-428"
- "l-*-426"
- "l-*-424"
- "l-*-422"
- "l-*-420"
- "l-*-418"
- "l-*-416"
- "l-*-414"
- "l-*-412"
- "l-*-410"
- "l-*-408"
- "l-*-406"
- "l-*-404"
- "l-*-402"
- "l-*-400"
- "l-*-399"
- "l-*-397"
- "l-*-394"
- "l-*-393"
- "l-*-392"
- "l-*-390"
- "l-*-389"
- "l-*-387"
- "l-*-385"
- "l-*-383"
- "l-*-381"
- "l-*-379"
- "l-*-377"
- "l-*-375"
- "l-*-373"
- "l-*-370"
- "l-*-368"
- "l-*-367"
- "l-*-365"
- "l-*-363"
- "l-*-361"
- "l-*-359"
- "l-*-358"
- "l-*-357"
- "l-*-356"
- "l-*-354"
- "l-*-353"
- "l-*-350"
- "l-*-348"
- "l-*-346"
- "l-*-344"
- "l-*-342"
- "l-*-340"
- "l-*-338"
- "l-*-337"
- "l-*-336"
- "l-*-334"
- "l-*-332"
- "l-*-331"
- "l-*-328"
- "l-*-327"
- "l-*-325"
- "l-*-323"
- "l-*-321"
- "l-*-319"
- "l-*-317"
- "l-*-315"
- "l-*-313"
- "l-*-311"
- "l-*-309"
- "l-*-306"
- "l-*-304"
- "l-*-302"
- "l-*-300"
- "l-*-298"
- "l-*-296"
- "l-*-294"
- "l-*-292"
- "l-*-290"
- "l-*-288"
- "l-*-286"
- "l-*-284"
- "l-*-282"
- "l-*-280"
- "l-*-278"
- "l-*-276"
- "l-*-274"
- "l-*-272"
- "l-*-270"
- "l-*-268"
- "l-*-266"
- "l-*-264"
- "l-*-262"
- "l-*-260"
- "l-*-258"
- "l-*-256"
- "l-*-255"
- "l-*-254"
- "l-*-253"
- "l-*-252"
- "l-*-250"
- "l-*-248"
- "l-*-246"
- "l-*-243"
- "l-*-241"
- "l-*-239"
- "l-*-237"
- "l-*-235"
- "l-*-233"
- "l-*-231"
- "l-*-229"
- "l-*-227"
- "l-*-225"
- "l-*-223"
- "l-*-221"
- "l-*-219"
- "l-*-217"
- "l-*-215"
- "l-*-213"
- "l-*-211"
- "l-*-209"))
- #(ribcage
- (define-structure
- define-expansion-accessors
- define-expansion-constructors)
- ((top) (top) (top))
- ("l-*-47" "l-*-46" "l-*-45")))
- (hygiene guile))
- mod-9394))))
- (values
- (remodulate-9371 exp-9395 mod-9396)
- r-9369
- w-9370
- (let ((props-9404
- (source-properties
- (if (if (vector? exp-9395)
- (if (= (vector-length exp-9395) 4)
- (eq? (vector-ref exp-9395 0)
- 'syntax-object)
- #f)
- #f)
- (vector-ref exp-9395 1)
- exp-9395))))
- (if (pair? props-9404) props-9404 #f))
- mod-9396)))
- tmp-9373)
- (syntax-violation
- #f
- "source expression failed to match any pattern"
- e-9368))))))
- (global-extend-4259
- 'core
- 'if
- (lambda (e-9750 r-9751 w-9752 s-9753 mod-9754)
- (let ((tmp-9756 ($sc-dispatch e-9750 '(_ any any))))
- (if tmp-9756
- (@apply
- (lambda (test-9760 then-9761)
- (let ((test-exp-9766
- (call-with-values
- (lambda ()
- (syntax-type-4296
- test-9760
- r-9751
- w-9752
- (let ((props-9788
- (source-properties
- (if (if (vector? test-9760)
- (if (= (vector-length
- test-9760)
- 4)
- (eq? (vector-ref test-9760 0)
- 'syntax-object)
- #f)
- #f)
- (vector-ref test-9760 1)
- test-9760))))
- (if (pair? props-9788) props-9788 #f))
- #f
- mod-9754
- #f))
- (lambda (type-9821
- value-9822
- form-9823
- e-9824
- w-9825
- s-9826
- mod-9827)
- (expand-expr-4298
- type-9821
- value-9822
- form-9823
- e-9824
- r-9751
- w-9825
- s-9826
- mod-9827))))
- (then-exp-9767
- (call-with-values
- (lambda ()
- (syntax-type-4296
- then-9761
- r-9751
- w-9752
- (let ((props-9845
- (source-properties
- (if (if (vector? then-9761)
- (if (= (vector-length
- then-9761)
- 4)
- (eq? (vector-ref then-9761 0)
- 'syntax-object)
- #f)
- #f)
- (vector-ref then-9761 1)
- then-9761))))
- (if (pair? props-9845) props-9845 #f))
- #f
- mod-9754
- #f))
- (lambda (type-9878
- value-9879
- form-9880
- e-9881
- w-9882
- s-9883
- mod-9884)
- (expand-expr-4298
- type-9878
- value-9879
- form-9880
- e-9881
- r-9751
- w-9882
- s-9883
- mod-9884))))
- (else-exp-9768
- (make-struct/no-tail
- (vector-ref %expanded-vtables 0)
- #f)))
- (make-struct/no-tail
- (vector-ref %expanded-vtables 10)
- s-9753
- test-exp-9766
- then-exp-9767
- else-exp-9768)))
- tmp-9756)
- (let ((tmp-9893 ($sc-dispatch e-9750 '(_ any any any))))
- (if tmp-9893
- (@apply
- (lambda (test-9897 then-9898 else-9899)
- (let ((test-exp-9904
- (call-with-values
- (lambda ()
- (syntax-type-4296
- test-9897
- r-9751
- w-9752
- (let ((props-9926
- (source-properties
- (if (if (vector? test-9897)
- (if (= (vector-length
- test-9897)
- 4)
- (eq? (vector-ref
- test-9897
- 0)
- 'syntax-object)
- #f)
- #f)
- (vector-ref test-9897 1)
- test-9897))))
- (if (pair? props-9926) props-9926 #f))
- #f
- mod-9754
- #f))
- (lambda (type-9959
- value-9960
- form-9961
- e-9962
- w-9963
- s-9964
- mod-9965)
- (expand-expr-4298
- type-9959
- value-9960
- form-9961
- e-9962
- r-9751
- w-9963
- s-9964
- mod-9965))))
- (then-exp-9905
- (call-with-values
- (lambda ()
- (syntax-type-4296
- then-9898
- r-9751
- w-9752
- (let ((props-9983
- (source-properties
- (if (if (vector? then-9898)
- (if (= (vector-length
- then-9898)
- 4)
- (eq? (vector-ref
- then-9898
- 0)
- 'syntax-object)
- #f)
- #f)
- (vector-ref then-9898 1)
- then-9898))))
- (if (pair? props-9983) props-9983 #f))
- #f
- mod-9754
- #f))
- (lambda (type-10016
- value-10017
- form-10018
- e-10019
- w-10020
- s-10021
- mod-10022)
- (expand-expr-4298
- type-10016
- value-10017
- form-10018
- e-10019
- r-9751
- w-10020
- s-10021
- mod-10022))))
- (else-exp-9906
- (call-with-values
- (lambda ()
- (syntax-type-4296
- else-9899
- r-9751
- w-9752
- (let ((props-10040
- (source-properties
- (if (if (vector? else-9899)
- (if (= (vector-length
- else-9899)
- 4)
- (eq? (vector-ref
- else-9899
- 0)
- 'syntax-object)
- #f)
- #f)
- (vector-ref else-9899 1)
- else-9899))))
- (if (pair? props-10040) props-10040 #f))
- #f
- mod-9754
- #f))
- (lambda (type-10073
- value-10074
- form-10075
- e-10076
- w-10077
- s-10078
- mod-10079)
- (expand-expr-4298
- type-10073
- value-10074
- form-10075
- e-10076
- r-9751
- w-10077
- s-10078
- mod-10079)))))
- (make-struct/no-tail
- (vector-ref %expanded-vtables 10)
- s-9753
- test-exp-9904
- then-exp-9905
- else-exp-9906)))
- tmp-9893)
- (syntax-violation
- #f
- "source expression failed to match any pattern"
- e-9750)))))))
- (module-define!
- (current-module)
- 'with-fluids
- (make-syntax-transformer
- 'with-fluids
- 'core
- (lambda (e-10102 r-10103 w-10104 s-10105 mod-10106)
- (let ((tmp-10108
- ($sc-dispatch
- e-10102
- '(_ #(each (any any)) any . each-any))))
- (if tmp-10108
- (@apply
- (lambda (fluid-10111 val-10112 b-10113 b*-10114)
- (let ((fluids-10117
- (map (lambda (x-10125)
- (call-with-values
- (lambda ()
- (syntax-type-4296
- x-10125
- r-10103
- w-10104
- (let ((props-10140
- (source-properties
- (if (if (vector? x-10125)
- (if (= (vector-length
- x-10125)
- 4)
- (eq? (vector-ref
- x-10125
- 0)
- 'syntax-object)
- #f)
- #f)
- (vector-ref x-10125 1)
- x-10125))))
- (if (pair? props-10140)
- props-10140
- #f))
- #f
- mod-10106
- #f))
- (lambda (type-10173
- value-10174
- form-10175
- e-10176
- w-10177
- s-10178
- mod-10179)
- (expand-expr-4298
- type-10173
- value-10174
- form-10175
- e-10176
- r-10103
- w-10177
- s-10178
- mod-10179))))
- fluid-10111))
- (vals-10118
- (map (lambda (x-10183)
- (call-with-values
- (lambda ()
- (syntax-type-4296
- x-10183
- r-10103
- w-10104
- (let ((props-10198
- (source-properties
- (if (if (vector? x-10183)
- (if (= (vector-length
- x-10183)
- 4)
- (eq? (vector-ref
- x-10183
- 0)
- 'syntax-object)
- #f)
- #f)
- (vector-ref x-10183 1)
- x-10183))))
- (if (pair? props-10198)
- props-10198
- #f))
- #f
- mod-10106
- #f))
- (lambda (type-10231
- value-10232
- form-10233
- e-10234
- w-10235
- s-10236
- mod-10237)
- (expand-expr-4298
- type-10231
- value-10232
- form-10233
- e-10234
- r-10103
- w-10235
- s-10236
- mod-10237))))
- val-10112))
- (body-10119
- (expand-body-4301
- (cons b-10113 b*-10114)
- (wrap-4290
- (begin
- (if (if s-10105
- (supports-source-properties? e-10102)
- #f)
- (set-source-properties! e-10102 s-10105))
- e-10102)
- w-10104
- mod-10106)
- r-10103
- w-10104
- mod-10106)))
- (make-struct/no-tail
- (vector-ref %expanded-vtables 17)
- s-10105
- fluids-10117
- vals-10118
- body-10119)))
- tmp-10108)
- (syntax-violation
- #f
- "source expression failed to match any pattern"
- e-10102))))))
- (module-define!
- (current-module)
- 'begin
- (make-syntax-transformer 'begin 'begin '()))
- (module-define!
- (current-module)
- 'define
- (make-syntax-transformer 'define 'define '()))
- (module-define!
- (current-module)
- 'define-syntax
- (make-syntax-transformer
- 'define-syntax
- 'define-syntax
- '()))
- (module-define!
- (current-module)
- 'define-syntax-parameter
- (make-syntax-transformer
- 'define-syntax-parameter
- 'define-syntax-parameter
- '()))
- (module-define!
- (current-module)
- 'eval-when
- (make-syntax-transformer
- 'eval-when
- 'eval-when
- '()))
- (global-extend-4259
- 'core
- 'syntax-case
- (letrec*
- ((convert-pattern-10535
- (lambda (pattern-12018 keys-12019)
- (letrec*
- ((cvt*-12020
- (lambda (p*-12644 n-12645 ids-12646)
- (if (not (pair? p*-12644))
- (cvt-12022 p*-12644 n-12645 ids-12646)
+ (lambda () (gen-syntax src y r maps
ellipsis? mod))
+ (lambda (y maps) (values (gen-cons x
y) maps))))))
+ tmp-1)
+ (let ((tmp ($sc-dispatch tmp '#(vector (any .
each-any)))))
+ (if tmp
+ (apply (lambda (e1 e2)
+ (call-with-values
+ (lambda () (gen-syntax src (cons e1
e2) r maps ellipsis? mod))
+ (lambda (e maps) (values (gen-vector
e) maps))))
+ tmp)
+ (values (list 'quote e) maps))))))))))))
+ (gen-ref
+ (lambda (src var level maps)
+ (cond ((= level 0) (values var maps))
+ ((null? maps) (syntax-violation 'syntax "missing ellipsis"
src))
+ (else
+ (call-with-values
+ (lambda () (gen-ref src var (- level 1) (cdr maps)))
+ (lambda (outer-var outer-maps)
+ (let ((b (assq outer-var (car maps))))
+ (if b
+ (values (cdr b) maps)
+ (let ((inner-var (gen-var 'tmp)))
+ (values
+ inner-var
+ (cons (cons (cons outer-var inner-var) (car
maps)) outer-maps)))))))))))
+ (gen-mappend
+ (lambda (e map-env)
+ (list 'apply '(primitive append) (gen-map e map-env))))
+ (gen-map
+ (lambda (e map-env)
+ (let ((formals (map cdr map-env))
+ (actuals (map (lambda (x) (list 'ref (car x))) map-env)))
+ (cond ((eq? (car e) 'ref) (car actuals))
+ ((and-map
+ (lambda (x) (and (eq? (car x) 'ref) (memq (cadr x)
formals)))
+ (cdr e))
+ (cons 'map
+ (cons (list 'primitive (car e))
+ (map (let ((r (map cons formals actuals)))
+ (lambda (x) (cdr (assq (cadr x) r))))
+ (cdr e)))))
+ (else (cons 'map (cons (list 'lambda formals e)
actuals)))))))
+ (gen-cons
+ (lambda (x y)
+ (let ((key (car y)))
+ (cond ((memv key '(quote))
+ (cond ((eq? (car x) 'quote) (list 'quote (cons (cadr x)
(cadr y))))
+ ((eq? (cadr y) '()) (list 'list x))
+ (else (list 'cons x y))))
+ ((memv key '(list)) (cons 'list (cons x (cdr y))))
+ (else (list 'cons x y))))))
+ (gen-append (lambda (x y) (if (equal? y ''()) x (list 'append x y))))
+ (gen-vector
+ (lambda (x)
+ (cond ((eq? (car x) 'list) (cons 'vector (cdr x)))
+ ((eq? (car x) 'quote) (list 'quote (list->vector (cadr x))))
+ (else (list 'list->vector x)))))
+ (regen (lambda (x)
+ (let ((key (car x)))
+ (cond ((memv key '(ref))
+ (build-lexical-reference 'value #f (cadr x) (cadr x)))
+ ((memv key '(primitive)) (build-primref #f (cadr x)))
+ ((memv key '(quote)) (build-data #f (cadr x)))
+ ((memv key '(lambda))
+ (if (list? (cadr x))
+ (build-simple-lambda #f (cadr x) #f (cadr x) '()
(regen (caddr x)))
+ (error "how did we get here" x)))
+ (else
+ (build-application #f (build-primref #f (car x)) (map
regen (cdr x)))))))))
+ (lambda (e r w s mod)
+ (let* ((e (source-wrap e w s mod))
+ (tmp e)
+ (tmp ($sc-dispatch tmp '(_ any))))
+ (if tmp
+ (apply (lambda (x)
+ (call-with-values
+ (lambda () (gen-syntax e x r '() ellipsis? mod))
+ (lambda (e maps) (regen e))))
+ tmp)
+ (syntax-violation 'syntax "bad `syntax' form" e))))))
+ (global-extend
+ 'core
+ 'lambda
+ (lambda (e r w s mod)
+ (let* ((tmp e) (tmp ($sc-dispatch tmp '(_ any any . each-any))))
+ (if tmp
+ (apply (lambda (args e1 e2)
+ (call-with-values
+ (lambda () (lambda-formals args))
+ (lambda (req opt rest kw)
+ (let lp ((body (cons e1 e2)) (meta '()))
+ (let* ((tmp-1 body) (tmp ($sc-dispatch tmp-1 '(any
any . each-any))))
+ (if (and tmp
+ (apply (lambda (docstring e1 e2) (string?
(syntax->datum docstring)))
+ tmp))
+ (apply (lambda (docstring e1 e2)
+ (lp (cons e1 e2)
+ (append meta (list (cons
'documentation (syntax->datum docstring))))))
+ tmp)
+ (let ((tmp ($sc-dispatch tmp-1 '(#(vector #(each
(any . any))) any . each-any))))
+ (if tmp
+ (apply (lambda (k v e1 e2)
+ (lp (cons e1 e2) (append meta
(syntax->datum (map cons k v)))))
+ tmp)
+ (expand-simple-lambda e r w s mod req rest
meta body)))))))))
+ tmp)
+ (syntax-violation 'lambda "bad lambda" e)))))
+ (global-extend
+ 'core
+ 'lambda*
+ (lambda (e r w s mod)
+ (let* ((tmp e) (tmp ($sc-dispatch tmp '(_ any any . each-any))))
+ (if tmp
+ (apply (lambda (args e1 e2)
+ (call-with-values
+ (lambda ()
+ (expand-lambda-case
+ e
+ r
+ w
+ s
+ mod
+ lambda*-formals
+ (list (cons args (cons e1 e2)))))
+ (lambda (meta lcase) (build-case-lambda s meta lcase))))
+ tmp)
+ (syntax-violation 'lambda "bad lambda*" e)))))
+ (global-extend
+ 'core
+ 'case-lambda
+ (lambda (e r w s mod)
+ (let* ((tmp e)
+ (tmp ($sc-dispatch
+ tmp
+ '(_ (any any . each-any) . #(each (any any . each-any))))))
+ (if tmp
+ (apply (lambda (args e1 e2 args* e1* e2*)
+ (call-with-values
+ (lambda ()
+ (expand-lambda-case
+ e
+ r
+ w
+ s
+ mod
+ lambda-formals
+ (cons (cons args (cons e1 e2))
+ (map (lambda (tmp-2 tmp-1 tmp) (cons tmp (cons
tmp-1 tmp-2)))
+ e2*
+ e1*
+ args*))))
+ (lambda (meta lcase) (build-case-lambda s meta lcase))))
+ tmp)
+ (syntax-violation 'case-lambda "bad case-lambda" e)))))
+ (global-extend
+ 'core
+ 'case-lambda*
+ (lambda (e r w s mod)
+ (let* ((tmp e)
+ (tmp ($sc-dispatch
+ tmp
+ '(_ (any any . each-any) . #(each (any any . each-any))))))
+ (if tmp
+ (apply (lambda (args e1 e2 args* e1* e2*)
+ (call-with-values
+ (lambda ()
+ (expand-lambda-case
+ e
+ r
+ w
+ s
+ mod
+ lambda*-formals
+ (cons (cons args (cons e1 e2))
+ (map (lambda (tmp-2 tmp-1 tmp) (cons tmp (cons
tmp-1 tmp-2)))
+ e2*
+ e1*
+ args*))))
+ (lambda (meta lcase) (build-case-lambda s meta lcase))))
+ tmp)
+ (syntax-violation 'case-lambda "bad case-lambda*" e)))))
+ (global-extend
+ 'core
+ 'let
+ (letrec*
+ ((expand-let
+ (lambda (e r w s mod constructor ids vals exps)
+ (if (not (valid-bound-ids? ids))
+ (syntax-violation 'let "duplicate bound variable" e)
+ (let ((labels (gen-labels ids)) (new-vars (map gen-var ids)))
+ (let ((nw (make-binding-wrap ids labels w))
+ (nr (extend-var-env labels new-vars r)))
+ (constructor
+ s
+ (map syntax->datum ids)
+ new-vars
+ (map (lambda (x) (expand x r w mod)) vals)
+ (expand-body exps (source-wrap e nw s mod) nr nw mod))))))))
+ (lambda (e r w s mod)
+ (let* ((tmp-1 e)
+ (tmp ($sc-dispatch tmp-1 '(_ #(each (any any)) any .
each-any))))
+ (if (and tmp (apply (lambda (id val e1 e2) (and-map id? id)) tmp))
+ (apply (lambda (id val e1 e2)
+ (expand-let e r w s mod build-let id val (cons e1 e2)))
+ tmp)
+ (let ((tmp ($sc-dispatch tmp-1 '(_ any #(each (any any)) any .
each-any))))
+ (if (and tmp
+ (apply (lambda (f id val e1 e2) (and (id? f) (and-map
id? id))) tmp))
+ (apply (lambda (f id val e1 e2)
+ (expand-let e r w s mod build-named-let (cons f id)
val (cons e1 e2)))
+ tmp)
+ (syntax-violation 'let "bad let" (source-wrap e w s
mod)))))))))
+ (global-extend
+ 'core
+ 'letrec
+ (lambda (e r w s mod)
+ (let* ((tmp e)
+ (tmp ($sc-dispatch tmp '(_ #(each (any any)) any . each-any))))
+ (if (and tmp (apply (lambda (id val e1 e2) (and-map id? id)) tmp))
+ (apply (lambda (id val e1 e2)
+ (let ((ids id))
+ (if (not (valid-bound-ids? ids))
+ (syntax-violation 'letrec "duplicate bound variable" e)
+ (let ((labels (gen-labels ids)) (new-vars (map gen-var
ids)))
+ (let ((w (make-binding-wrap ids labels w))
+ (r (extend-var-env labels new-vars r)))
+ (build-letrec
+ s
+ #f
+ (map syntax->datum ids)
+ new-vars
+ (map (lambda (x) (expand x r w mod)) val)
+ (expand-body (cons e1 e2) (source-wrap e w s mod)
r w mod)))))))
+ tmp)
+ (syntax-violation 'letrec "bad letrec" (source-wrap e w s mod))))))
+ (global-extend
+ 'core
+ 'letrec*
+ (lambda (e r w s mod)
+ (let* ((tmp e)
+ (tmp ($sc-dispatch tmp '(_ #(each (any any)) any . each-any))))
+ (if (and tmp (apply (lambda (id val e1 e2) (and-map id? id)) tmp))
+ (apply (lambda (id val e1 e2)
+ (let ((ids id))
+ (if (not (valid-bound-ids? ids))
+ (syntax-violation 'letrec* "duplicate bound variable" e)
+ (let ((labels (gen-labels ids)) (new-vars (map gen-var
ids)))
+ (let ((w (make-binding-wrap ids labels w))
+ (r (extend-var-env labels new-vars r)))
+ (build-letrec
+ s
+ #t
+ (map syntax->datum ids)
+ new-vars
+ (map (lambda (x) (expand x r w mod)) val)
+ (expand-body (cons e1 e2) (source-wrap e w s mod)
r w mod)))))))
+ tmp)
+ (syntax-violation 'letrec* "bad letrec*" (source-wrap e w s mod))))))
+ (global-extend
+ 'core
+ 'set!
+ (lambda (e r w s mod)
+ (let* ((tmp-1 e) (tmp ($sc-dispatch tmp-1 '(_ any any))))
+ (if (and tmp (apply (lambda (id val) (id? id)) tmp))
+ (apply (lambda (id val)
+ (let ((n (id-var-name id w))
+ (id-mod (if (syntax-object? id) (syntax-object-module
id) mod)))
+ (let* ((b (lookup n r id-mod)) (key (car b)))
+ (cond ((memv key '(lexical))
+ (build-lexical-assignment
+ s
+ (syntax->datum id)
+ (cdr b)
+ (expand val r w mod)))
+ ((memv key '(global))
+ (build-global-assignment s n (expand val r w
mod) id-mod))
+ ((memv key '(macro))
+ (let ((p (cdr b)))
+ (if (procedure-property p
'variable-transformer)
+ (expand (expand-macro p e r w s #f mod) r
'(()) mod)
+ (syntax-violation
+ 'set!
+ "not a variable transformer"
+ (wrap e w mod)
+ (wrap id w id-mod)))))
+ ((memv key '(displaced-lexical))
+ (syntax-violation 'set! "identifier out of
context" (wrap id w mod)))
+ (else (syntax-violation 'set! "bad set!"
(source-wrap e w s mod)))))))
+ tmp)
+ (let ((tmp ($sc-dispatch tmp-1 '(_ (any . each-any) any))))
+ (if tmp
+ (apply (lambda (head tail val)
+ (call-with-values
+ (lambda () (syntax-type head r '(()) #f #f mod #t))
+ (lambda (type value formform ee ww ss modmod)
+ (let ((key type))
+ (if (memv key '(module-ref))
+ (let ((val (expand val r w mod)))
+ (call-with-values
+ (lambda () (value (cons head tail) r w))
+ (lambda (e r w s* mod)
+ (let* ((tmp-1 e) (tmp (list tmp-1)))
+ (if (and tmp (apply (lambda (e) (id?
e)) tmp))
+ (apply (lambda (e)
(build-global-assignment s (syntax->datum e) val mod))
+ tmp)
+ (syntax-violation
+ #f
+ "source expression failed to match
any pattern"
+ tmp-1))))))
+ (build-application
+ s
+ (expand
+ (list '#(syntax-object setter ((top))
(hygiene guile)) head)
+ r
+ w
+ mod)
+ (map (lambda (e) (expand e r w mod)) (append
tail (list val)))))))))
+ tmp)
+ (syntax-violation 'set! "bad set!" (source-wrap e w s mod))))))))
+ (global-extend
+ 'module-ref
+ '@
+ (lambda (e r w)
+ (let* ((tmp-1 e) (tmp ($sc-dispatch tmp-1 '(_ each-any any))))
+ (if (and tmp
+ (apply (lambda (mod id) (and (and-map id? mod) (id? id)))
tmp))
+ (apply (lambda (mod id)
+ (values
+ (syntax->datum id)
+ r
+ w
+ #f
+ (syntax->datum
+ (cons '#(syntax-object public ((top)) (hygiene guile))
mod))))
+ tmp)
+ (syntax-violation
+ #f
+ "source expression failed to match any pattern"
+ tmp-1)))))
+ (global-extend
+ 'module-ref
+ '@@
+ (lambda (e r w)
+ (letrec*
+ ((remodulate
+ (lambda (x mod)
+ (cond ((pair? x) (cons (remodulate (car x) mod) (remodulate (cdr
x) mod)))
+ ((syntax-object? x)
+ (make-syntax-object
+ (remodulate (syntax-object-expression x) mod)
+ (syntax-object-wrap x)
+ mod))
+ ((vector? x)
+ (let* ((n (vector-length x)) (v (make-vector n)))
+ (let loop ((i 0))
+ (if (= i n)
+ (begin (if #f #f) v)
+ (begin
+ (vector-set! v i (remodulate (vector-ref x i) mod))
+ (loop (+ i 1)))))))
+ (else x)))))
+ (let* ((tmp-1 e) (tmp ($sc-dispatch tmp-1 '(_ each-any any))))
+ (if (and tmp (apply (lambda (mod exp) (and-map id? mod)) tmp))
+ (apply (lambda (mod exp)
+ (let ((mod (syntax->datum
+ (cons '#(syntax-object private ((top))
(hygiene guile)) mod))))
+ (values (remodulate exp mod) r w (source-annotation
exp) mod)))
+ tmp)
+ (syntax-violation
+ #f
+ "source expression failed to match any pattern"
+ tmp-1))))))
+ (global-extend
+ 'core
+ 'if
+ (lambda (e r w s mod)
+ (let* ((tmp e) (tmp-1 ($sc-dispatch tmp '(_ any any))))
+ (if tmp-1
+ (apply (lambda (test then)
+ (build-conditional
+ s
+ (expand test r w mod)
+ (expand then r w mod)
+ (build-void #f)))
+ tmp-1)
+ (let ((tmp-1 ($sc-dispatch tmp '(_ any any any))))
+ (if tmp-1
+ (apply (lambda (test then else)
+ (build-conditional
+ s
+ (expand test r w mod)
+ (expand then r w mod)
+ (expand else r w mod)))
+ tmp-1)
+ (syntax-violation
+ #f
+ "source expression failed to match any pattern"
+ tmp)))))))
+ (global-extend
+ 'core
+ 'with-fluids
+ (lambda (e r w s mod)
+ (let* ((tmp-1 e)
+ (tmp ($sc-dispatch tmp-1 '(_ #(each (any any)) any . each-any))))
+ (if tmp
+ (apply (lambda (fluid val b b*)
+ (build-dynlet
+ s
+ (map (lambda (x) (expand x r w mod)) fluid)
+ (map (lambda (x) (expand x r w mod)) val)
+ (expand-body (cons b b*) (source-wrap e w s mod) r w
mod)))
+ tmp)
+ (syntax-violation
+ #f
+ "source expression failed to match any pattern"
+ tmp-1)))))
+ (global-extend 'begin 'begin '())
+ (global-extend 'define 'define '())
+ (global-extend 'define-syntax 'define-syntax '())
+ (global-extend 'define-syntax-parameter 'define-syntax-parameter '())
+ (global-extend 'eval-when 'eval-when '())
+ (global-extend
+ 'core
+ 'syntax-case
+ (letrec*
+ ((convert-pattern
+ (lambda (pattern keys)
+ (letrec*
+ ((cvt* (lambda (p* n ids)
+ (if (not (pair? p*))
+ (cvt p* n ids)
(call-with-values
- (lambda ()
- (cvt*-12020 (cdr p*-12644) n-12645 ids-12646))
- (lambda (y-12649 ids-12650)
+ (lambda () (cvt* (cdr p*) n ids))
+ (lambda (y ids)
(call-with-values
- (lambda ()
- (cvt-12022 (car p*-12644) n-12645 ids-12650))
- (lambda (x-12653 ids-12654)
- (values
- (cons x-12653 y-12649)
- ids-12654))))))))
- (v-reverse-12021
- (lambda (x-12655)
- (letrec*
- ((loop-12656
- (lambda (r-12736 x-12737)
- (if (not (pair? x-12737))
- (values r-12736 x-12737)
- (loop-12656
- (cons (car x-12737) r-12736)
- (cdr x-12737))))))
- (loop-12656 '() x-12655))))
- (cvt-12022
- (lambda (p-12025 n-12026 ids-12027)
- (if (if (symbol? p-12025)
- #t
- (if (if (vector? p-12025)
- (if (= (vector-length p-12025) 4)
- (eq? (vector-ref p-12025 0) 'syntax-object)
- #f)
- #f)
- (symbol? (vector-ref p-12025 1))
- #f))
- (if (bound-id-member?-4289 p-12025 keys-12019)
- (values (vector 'free-id p-12025) ids-12027)
- (if (if (eq? (if (if (vector? p-12025)
- (if (= (vector-length p-12025) 4)
- (eq? (vector-ref p-12025 0)
- 'syntax-object)
- #f)
- #f)
- (vector-ref p-12025 1)
- p-12025)
- (if (if (= (vector-length
- '#(syntax-object
- _
- ((top)
- #(ribcage () () ())
- #(ribcage
- #(p n ids)
- #((top) (top) (top))
- #("l-*-3705"
- "l-*-3706"
- "l-*-3707"))
- #(ribcage
- (cvt v-reverse cvt*)
- ((top) (top) (top))
- ("l-*-3678"
- "l-*-3676"
- "l-*-3674"))
- #(ribcage
- #(pattern keys)
- #((top) (top))
- #("l-*-3672"
- "l-*-3673"))
- #(ribcage
- (gen-syntax-case
- gen-clause
- build-dispatch-call
- convert-pattern)
- ((top)
- (top)
- (top)
- (top))
- ("l-*-3668"
- "l-*-3666"
- "l-*-3664"
- "l-*-3662"))
- #(ribcage
- (lambda-var-list
- gen-var
- strip
- expand-lambda-case
- lambda*-formals
-
expand-simple-lambda
- lambda-formals
- ellipsis?
- expand-void
-
eval-local-transformer
- expand-local-syntax
- expand-body
- expand-macro
- expand-application
- expand-expr
- expand
- syntax-type
- parse-when-list
-
expand-install-global
- expand-top-sequence
- expand-sequence
- source-wrap
- wrap
- bound-id-member?
- distinct-bound-ids?
- valid-bound-ids?
- bound-id=?
- free-id=?
-
with-transformer-environment
-
transformer-environment
- resolve-identifier
-
locally-bound-identifiers
- 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
-
build-global-assignment
-
build-global-reference
- analyze-variable
-
build-lexical-assignment
-
build-lexical-reference
- build-dynlet
- build-conditional
- build-application
- build-void
- maybe-name-value!
- decorate-source
-
get-global-definition-hook
-
put-global-definition-hook
- session-id
- local-eval-hook
- top-level-eval-hook
- fx<
- fx=
- fx-
- fx+
- set-lambda-meta!
- lambda-meta
- lambda?
- make-dynlet
- make-letrec
- make-let
- make-lambda-case
- make-lambda
- make-sequence
- make-application
- make-conditional
-
make-toplevel-define
- make-toplevel-set
- make-toplevel-ref
- make-module-set
- make-module-ref
- make-lexical-set
- make-lexical-ref
- make-primitive-ref
- make-const
- make-void)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-476"
- "l-*-474"
- "l-*-472"
- "l-*-470"
- "l-*-468"
- "l-*-466"
- "l-*-464"
- "l-*-462"
- "l-*-460"
- "l-*-458"
- "l-*-456"
- "l-*-454"
- "l-*-452"
- "l-*-450"
- "l-*-448"
- "l-*-446"
- "l-*-444"
- "l-*-442"
- "l-*-440"
- "l-*-438"
- "l-*-436"
- "l-*-434"
- "l-*-432"
- "l-*-430"
- "l-*-428"
- "l-*-426"
- "l-*-424"
- "l-*-422"
- "l-*-420"
- "l-*-418"
- "l-*-416"
- "l-*-414"
- "l-*-412"
- "l-*-410"
- "l-*-408"
- "l-*-406"
- "l-*-404"
- "l-*-402"
- "l-*-400"
- "l-*-399"
- "l-*-397"
- "l-*-394"
- "l-*-393"
- "l-*-392"
- "l-*-390"
- "l-*-389"
- "l-*-387"
- "l-*-385"
- "l-*-383"
- "l-*-381"
- "l-*-379"
- "l-*-377"
- "l-*-375"
- "l-*-373"
- "l-*-370"
- "l-*-368"
- "l-*-367"
- "l-*-365"
- "l-*-363"
- "l-*-361"
- "l-*-359"
- "l-*-358"
- "l-*-357"
- "l-*-356"
- "l-*-354"
- "l-*-353"
- "l-*-350"
- "l-*-348"
- "l-*-346"
- "l-*-344"
- "l-*-342"
- "l-*-340"
- "l-*-338"
- "l-*-337"
- "l-*-336"
- "l-*-334"
- "l-*-332"
- "l-*-331"
- "l-*-328"
- "l-*-327"
- "l-*-325"
- "l-*-323"
- "l-*-321"
- "l-*-319"
- "l-*-317"
- "l-*-315"
- "l-*-313"
- "l-*-311"
- "l-*-309"
- "l-*-306"
- "l-*-304"
- "l-*-302"
- "l-*-300"
- "l-*-298"
- "l-*-296"
- "l-*-294"
- "l-*-292"
- "l-*-290"
- "l-*-288"
- "l-*-286"
- "l-*-284"
- "l-*-282"
- "l-*-280"
- "l-*-278"
- "l-*-276"
- "l-*-274"
- "l-*-272"
- "l-*-270"
- "l-*-268"
- "l-*-266"
- "l-*-264"
- "l-*-262"
- "l-*-260"
- "l-*-258"
- "l-*-256"
- "l-*-255"
- "l-*-254"
- "l-*-253"
- "l-*-252"
- "l-*-250"
- "l-*-248"
- "l-*-246"
- "l-*-243"
- "l-*-241"
- "l-*-239"
- "l-*-237"
- "l-*-235"
- "l-*-233"
- "l-*-231"
- "l-*-229"
- "l-*-227"
- "l-*-225"
- "l-*-223"
- "l-*-221"
- "l-*-219"
- "l-*-217"
- "l-*-215"
- "l-*-213"
- "l-*-211"
- "l-*-209"))
- #(ribcage
- (define-structure
-
define-expansion-accessors
-
define-expansion-constructors)
- ((top) (top) (top))
- ("l-*-47"
- "l-*-46"
- "l-*-45")))
- (hygiene guile)))
- 4)
- #t
- #f)
- '_
- '#(syntax-object
- _
- ((top)
- #(ribcage () () ())
- #(ribcage
- #(p n ids)
- #((top) (top) (top))
- #("l-*-3705"
- "l-*-3706"
- "l-*-3707"))
- #(ribcage
- (cvt v-reverse cvt*)
- ((top) (top) (top))
- ("l-*-3678"
- "l-*-3676"
- "l-*-3674"))
- #(ribcage
- #(pattern keys)
- #((top) (top))
- #("l-*-3672" "l-*-3673"))
- #(ribcage
- (gen-syntax-case
- gen-clause
- build-dispatch-call
- convert-pattern)
- ((top) (top) (top) (top))
- ("l-*-3668"
- "l-*-3666"
- "l-*-3664"
- "l-*-3662"))
- #(ribcage
- (lambda-var-list
- gen-var
- strip
- expand-lambda-case
- lambda*-formals
- expand-simple-lambda
- lambda-formals
- ellipsis?
- expand-void
- eval-local-transformer
- expand-local-syntax
- expand-body
- expand-macro
- expand-application
- expand-expr
- expand
- syntax-type
- parse-when-list
- expand-install-global
- expand-top-sequence
- expand-sequence
- source-wrap
- wrap
- bound-id-member?
- distinct-bound-ids?
- valid-bound-ids?
- bound-id=?
- free-id=?
- with-transformer-environment
- transformer-environment
- resolve-identifier
- locally-bound-identifiers
- 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
- build-global-assignment
- build-global-reference
- analyze-variable
- build-lexical-assignment
- build-lexical-reference
- build-dynlet
- build-conditional
- build-application
- build-void
- maybe-name-value!
- decorate-source
- get-global-definition-hook
- put-global-definition-hook
- session-id
- local-eval-hook
- top-level-eval-hook
- fx<
- fx=
- fx-
- fx+
- set-lambda-meta!
- lambda-meta
- lambda?
- make-dynlet
- make-letrec
- make-let
- make-lambda-case
- make-lambda
- make-sequence
- make-application
- make-conditional
- make-toplevel-define
- make-toplevel-set
- make-toplevel-ref
- make-module-set
- make-module-ref
- make-lexical-set
- make-lexical-ref
- make-primitive-ref
- make-const
- make-void)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-476"
- "l-*-474"
- "l-*-472"
- "l-*-470"
- "l-*-468"
- "l-*-466"
- "l-*-464"
- "l-*-462"
- "l-*-460"
- "l-*-458"
- "l-*-456"
- "l-*-454"
- "l-*-452"
- "l-*-450"
- "l-*-448"
- "l-*-446"
- "l-*-444"
- "l-*-442"
- "l-*-440"
- "l-*-438"
- "l-*-436"
- "l-*-434"
- "l-*-432"
- "l-*-430"
- "l-*-428"
- "l-*-426"
- "l-*-424"
- "l-*-422"
- "l-*-420"
- "l-*-418"
- "l-*-416"
- "l-*-414"
- "l-*-412"
- "l-*-410"
- "l-*-408"
- "l-*-406"
- "l-*-404"
- "l-*-402"
- "l-*-400"
- "l-*-399"
- "l-*-397"
- "l-*-394"
- "l-*-393"
- "l-*-392"
- "l-*-390"
- "l-*-389"
- "l-*-387"
- "l-*-385"
- "l-*-383"
- "l-*-381"
- "l-*-379"
- "l-*-377"
- "l-*-375"
- "l-*-373"
- "l-*-370"
- "l-*-368"
- "l-*-367"
- "l-*-365"
- "l-*-363"
- "l-*-361"
- "l-*-359"
- "l-*-358"
- "l-*-357"
- "l-*-356"
- "l-*-354"
- "l-*-353"
- "l-*-350"
- "l-*-348"
- "l-*-346"
- "l-*-344"
- "l-*-342"
- "l-*-340"
- "l-*-338"
- "l-*-337"
- "l-*-336"
- "l-*-334"
- "l-*-332"
- "l-*-331"
- "l-*-328"
- "l-*-327"
- "l-*-325"
- "l-*-323"
- "l-*-321"
- "l-*-319"
- "l-*-317"
- "l-*-315"
- "l-*-313"
- "l-*-311"
- "l-*-309"
- "l-*-306"
- "l-*-304"
- "l-*-302"
- "l-*-300"
- "l-*-298"
- "l-*-296"
- "l-*-294"
- "l-*-292"
- "l-*-290"
- "l-*-288"
- "l-*-286"
- "l-*-284"
- "l-*-282"
- "l-*-280"
- "l-*-278"
- "l-*-276"
- "l-*-274"
- "l-*-272"
- "l-*-270"
- "l-*-268"
- "l-*-266"
- "l-*-264"
- "l-*-262"
- "l-*-260"
- "l-*-258"
- "l-*-256"
- "l-*-255"
- "l-*-254"
- "l-*-253"
- "l-*-252"
- "l-*-250"
- "l-*-248"
- "l-*-246"
- "l-*-243"
- "l-*-241"
- "l-*-239"
- "l-*-237"
- "l-*-235"
- "l-*-233"
- "l-*-231"
- "l-*-229"
- "l-*-227"
- "l-*-225"
- "l-*-223"
- "l-*-221"
- "l-*-219"
- "l-*-217"
- "l-*-215"
- "l-*-213"
- "l-*-211"
- "l-*-209"))
- #(ribcage
- (define-structure
- define-expansion-accessors
- define-expansion-constructors)
- ((top) (top) (top))
- ("l-*-47" "l-*-46" "l-*-45")))
- (hygiene guile))))
- (eq? (id-var-name-4280 p-12025 '(()))
- (id-var-name-4280
- '#(syntax-object
- _
- ((top)
- #(ribcage () () ())
- #(ribcage
- #(p n ids)
- #((top) (top) (top))
- #("l-*-3705"
- "l-*-3706"
- "l-*-3707"))
- #(ribcage
- (cvt v-reverse cvt*)
- ((top) (top) (top))
- ("l-*-3678"
- "l-*-3676"
- "l-*-3674"))
- #(ribcage
- #(pattern keys)
- #((top) (top))
- #("l-*-3672" "l-*-3673"))
- #(ribcage
- (gen-syntax-case
- gen-clause
- build-dispatch-call
- convert-pattern)
- ((top) (top) (top) (top))
- ("l-*-3668"
- "l-*-3666"
- "l-*-3664"
- "l-*-3662"))
- #(ribcage
- (lambda-var-list
- gen-var
- strip
- expand-lambda-case
- lambda*-formals
- expand-simple-lambda
- lambda-formals
- ellipsis?
- expand-void
- eval-local-transformer
- expand-local-syntax
- expand-body
- expand-macro
- expand-application
- expand-expr
- expand
- syntax-type
- parse-when-list
- expand-install-global
- expand-top-sequence
- expand-sequence
- source-wrap
- wrap
- bound-id-member?
- distinct-bound-ids?
- valid-bound-ids?
- bound-id=?
- free-id=?
- with-transformer-environment
- transformer-environment
- resolve-identifier
- locally-bound-identifiers
- 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
- build-global-assignment
- build-global-reference
- analyze-variable
- build-lexical-assignment
- build-lexical-reference
- build-dynlet
- build-conditional
- build-application
- build-void
- maybe-name-value!
- decorate-source
- get-global-definition-hook
- put-global-definition-hook
- session-id
- local-eval-hook
- top-level-eval-hook
- fx<
- fx=
- fx-
- fx+
- set-lambda-meta!
- lambda-meta
- lambda?
- make-dynlet
- make-letrec
- make-let
- make-lambda-case
- make-lambda
- make-sequence
- make-application
- make-conditional
- make-toplevel-define
- make-toplevel-set
- make-toplevel-ref
- make-module-set
- make-module-ref
- make-lexical-set
- make-lexical-ref
- make-primitive-ref
- make-const
- make-void)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-476"
- "l-*-474"
- "l-*-472"
- "l-*-470"
- "l-*-468"
- "l-*-466"
- "l-*-464"
- "l-*-462"
- "l-*-460"
- "l-*-458"
- "l-*-456"
- "l-*-454"
- "l-*-452"
- "l-*-450"
- "l-*-448"
- "l-*-446"
- "l-*-444"
- "l-*-442"
- "l-*-440"
- "l-*-438"
- "l-*-436"
- "l-*-434"
- "l-*-432"
- "l-*-430"
- "l-*-428"
- "l-*-426"
- "l-*-424"
- "l-*-422"
- "l-*-420"
- "l-*-418"
- "l-*-416"
- "l-*-414"
- "l-*-412"
- "l-*-410"
- "l-*-408"
- "l-*-406"
- "l-*-404"
- "l-*-402"
- "l-*-400"
- "l-*-399"
- "l-*-397"
- "l-*-394"
- "l-*-393"
- "l-*-392"
- "l-*-390"
- "l-*-389"
- "l-*-387"
- "l-*-385"
- "l-*-383"
- "l-*-381"
- "l-*-379"
- "l-*-377"
- "l-*-375"
- "l-*-373"
- "l-*-370"
- "l-*-368"
- "l-*-367"
- "l-*-365"
- "l-*-363"
- "l-*-361"
- "l-*-359"
- "l-*-358"
- "l-*-357"
- "l-*-356"
- "l-*-354"
- "l-*-353"
- "l-*-350"
- "l-*-348"
- "l-*-346"
- "l-*-344"
- "l-*-342"
- "l-*-340"
- "l-*-338"
- "l-*-337"
- "l-*-336"
- "l-*-334"
- "l-*-332"
- "l-*-331"
- "l-*-328"
- "l-*-327"
- "l-*-325"
- "l-*-323"
- "l-*-321"
- "l-*-319"
- "l-*-317"
- "l-*-315"
- "l-*-313"
- "l-*-311"
- "l-*-309"
- "l-*-306"
- "l-*-304"
- "l-*-302"
- "l-*-300"
- "l-*-298"
- "l-*-296"
- "l-*-294"
- "l-*-292"
- "l-*-290"
- "l-*-288"
- "l-*-286"
- "l-*-284"
- "l-*-282"
- "l-*-280"
- "l-*-278"
- "l-*-276"
- "l-*-274"
- "l-*-272"
- "l-*-270"
- "l-*-268"
- "l-*-266"
- "l-*-264"
- "l-*-262"
- "l-*-260"
- "l-*-258"
- "l-*-256"
- "l-*-255"
- "l-*-254"
- "l-*-253"
- "l-*-252"
- "l-*-250"
- "l-*-248"
- "l-*-246"
- "l-*-243"
- "l-*-241"
- "l-*-239"
- "l-*-237"
- "l-*-235"
- "l-*-233"
- "l-*-231"
- "l-*-229"
- "l-*-227"
- "l-*-225"
- "l-*-223"
- "l-*-221"
- "l-*-219"
- "l-*-217"
- "l-*-215"
- "l-*-213"
- "l-*-211"
- "l-*-209"))
- #(ribcage
- (define-structure
- define-expansion-accessors
- define-expansion-constructors)
- ((top) (top) (top))
- ("l-*-47" "l-*-46" "l-*-45")))
- (hygiene guile))
- '(())))
- #f)
- (values '_ ids-12027)
- (values
- 'any
- (cons (cons p-12025 n-12026) ids-12027))))
- (let ((tmp-12347 ($sc-dispatch p-12025 '(any any))))
- (if (if tmp-12347
- (@apply
- (lambda (x-12351 dots-12352)
- (if (if (if (vector? dots-12352)
- (if (= (vector-length dots-12352)
- 4)
- (eq? (vector-ref dots-12352 0)
- 'syntax-object)
- #f)
- #f)
- (symbol? (vector-ref dots-12352 1))
- #f)
- (if (eq? (if (if (vector? dots-12352)
- (if (= (vector-length
- dots-12352)
- 4)
- (eq? (vector-ref
- dots-12352
- 0)
- 'syntax-object)
- #f)
- #f)
- (vector-ref dots-12352 1)
- dots-12352)
- (if (if (= (vector-length
- '#(syntax-object
- ...
- ((top)
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(x)
- #((top))
-
#("l-*-2265"))
- #(ribcage
-
(lambda-var-list
- gen-var
- strip
-
expand-lambda-case
-
lambda*-formals
-
expand-simple-lambda
-
lambda-formals
- ellipsis?
- expand-void
-
eval-local-transformer
-
expand-local-syntax
- expand-body
-
expand-macro
-
expand-application
- expand-expr
- expand
- syntax-type
-
parse-when-list
-
expand-install-global
-
expand-top-sequence
-
expand-sequence
- source-wrap
- wrap
-
bound-id-member?
-
distinct-bound-ids?
-
valid-bound-ids?
- bound-id=?
- free-id=?
-
with-transformer-environment
-
transformer-environment
-
resolve-identifier
-
locally-bound-identifiers
- 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
-
build-global-assignment
-
build-global-reference
-
analyze-variable
-
build-lexical-assignment
-
build-lexical-reference
-
build-dynlet
-
build-conditional
-
build-application
- build-void
-
maybe-name-value!
-
decorate-source
-
get-global-definition-hook
-
put-global-definition-hook
- session-id
-
local-eval-hook
-
top-level-eval-hook
- fx<
- fx=
- fx-
- fx+
-
set-lambda-meta!
- lambda-meta
- lambda?
- make-dynlet
- make-letrec
- make-let
-
make-lambda-case
- make-lambda
-
make-sequence
-
make-application
-
make-conditional
-
make-toplevel-define
-
make-toplevel-set
-
make-toplevel-ref
-
make-module-set
-
make-module-ref
-
make-lexical-set
-
make-lexical-ref
-
make-primitive-ref
- make-const
- make-void)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-476"
- "l-*-474"
- "l-*-472"
- "l-*-470"
- "l-*-468"
- "l-*-466"
- "l-*-464"
- "l-*-462"
- "l-*-460"
- "l-*-458"
- "l-*-456"
- "l-*-454"
- "l-*-452"
- "l-*-450"
- "l-*-448"
- "l-*-446"
- "l-*-444"
- "l-*-442"
- "l-*-440"
- "l-*-438"
- "l-*-436"
- "l-*-434"
- "l-*-432"
- "l-*-430"
- "l-*-428"
- "l-*-426"
- "l-*-424"
- "l-*-422"
- "l-*-420"
- "l-*-418"
- "l-*-416"
- "l-*-414"
- "l-*-412"
- "l-*-410"
- "l-*-408"
- "l-*-406"
- "l-*-404"
- "l-*-402"
- "l-*-400"
- "l-*-399"
- "l-*-397"
- "l-*-394"
- "l-*-393"
- "l-*-392"
- "l-*-390"
- "l-*-389"
- "l-*-387"
- "l-*-385"
- "l-*-383"
- "l-*-381"
- "l-*-379"
- "l-*-377"
- "l-*-375"
- "l-*-373"
- "l-*-370"
- "l-*-368"
- "l-*-367"
- "l-*-365"
- "l-*-363"
- "l-*-361"
- "l-*-359"
- "l-*-358"
- "l-*-357"
- "l-*-356"
- "l-*-354"
- "l-*-353"
- "l-*-350"
- "l-*-348"
- "l-*-346"
- "l-*-344"
- "l-*-342"
- "l-*-340"
- "l-*-338"
- "l-*-337"
- "l-*-336"
- "l-*-334"
- "l-*-332"
- "l-*-331"
- "l-*-328"
- "l-*-327"
- "l-*-325"
- "l-*-323"
- "l-*-321"
- "l-*-319"
- "l-*-317"
- "l-*-315"
- "l-*-313"
- "l-*-311"
- "l-*-309"
- "l-*-306"
- "l-*-304"
- "l-*-302"
- "l-*-300"
- "l-*-298"
- "l-*-296"
- "l-*-294"
- "l-*-292"
- "l-*-290"
- "l-*-288"
- "l-*-286"
- "l-*-284"
- "l-*-282"
- "l-*-280"
- "l-*-278"
- "l-*-276"
- "l-*-274"
- "l-*-272"
- "l-*-270"
- "l-*-268"
- "l-*-266"
- "l-*-264"
- "l-*-262"
- "l-*-260"
- "l-*-258"
- "l-*-256"
- "l-*-255"
- "l-*-254"
- "l-*-253"
- "l-*-252"
- "l-*-250"
- "l-*-248"
- "l-*-246"
- "l-*-243"
- "l-*-241"
- "l-*-239"
- "l-*-237"
- "l-*-235"
- "l-*-233"
- "l-*-231"
- "l-*-229"
- "l-*-227"
- "l-*-225"
- "l-*-223"
- "l-*-221"
- "l-*-219"
- "l-*-217"
- "l-*-215"
- "l-*-213"
- "l-*-211"
- "l-*-209"))
- #(ribcage
-
(define-structure
-
define-expansion-accessors
-
define-expansion-constructors)
- ((top)
- (top)
- (top))
- ("l-*-47"
- "l-*-46"
- "l-*-45")))
- (hygiene
- guile)))
- 4)
- #t
- #f)
- '...
- '#(syntax-object
- ...
- ((top)
- #(ribcage () () ())
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("l-*-2265"))
- #(ribcage
- (lambda-var-list
- gen-var
- strip
- expand-lambda-case
- lambda*-formals
- expand-simple-lambda
- lambda-formals
- ellipsis?
- expand-void
- eval-local-transformer
- expand-local-syntax
- expand-body
- expand-macro
- expand-application
- expand-expr
- expand
- syntax-type
- parse-when-list
- expand-install-global
- expand-top-sequence
- expand-sequence
- source-wrap
- wrap
- bound-id-member?
- distinct-bound-ids?
- valid-bound-ids?
- bound-id=?
- free-id=?
-
with-transformer-environment
-
transformer-environment
- resolve-identifier
-
locally-bound-identifiers
- 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
-
build-global-assignment
- build-global-reference
- analyze-variable
-
build-lexical-assignment
-
build-lexical-reference
- build-dynlet
- build-conditional
- build-application
- build-void
- maybe-name-value!
- decorate-source
-
get-global-definition-hook
-
put-global-definition-hook
- session-id
- local-eval-hook
- top-level-eval-hook
- fx<
- fx=
- fx-
- fx+
- set-lambda-meta!
- lambda-meta
- lambda?
- make-dynlet
- make-letrec
- make-let
- make-lambda-case
- make-lambda
- make-sequence
- make-application
- make-conditional
- make-toplevel-define
- make-toplevel-set
- make-toplevel-ref
- make-module-set
- make-module-ref
- make-lexical-set
- make-lexical-ref
- make-primitive-ref
- make-const
- make-void)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-476"
- "l-*-474"
- "l-*-472"
- "l-*-470"
- "l-*-468"
- "l-*-466"
- "l-*-464"
- "l-*-462"
- "l-*-460"
- "l-*-458"
- "l-*-456"
- "l-*-454"
- "l-*-452"
- "l-*-450"
- "l-*-448"
- "l-*-446"
- "l-*-444"
- "l-*-442"
- "l-*-440"
- "l-*-438"
- "l-*-436"
- "l-*-434"
- "l-*-432"
- "l-*-430"
- "l-*-428"
- "l-*-426"
- "l-*-424"
- "l-*-422"
- "l-*-420"
- "l-*-418"
- "l-*-416"
- "l-*-414"
- "l-*-412"
- "l-*-410"
- "l-*-408"
- "l-*-406"
- "l-*-404"
- "l-*-402"
- "l-*-400"
- "l-*-399"
- "l-*-397"
- "l-*-394"
- "l-*-393"
- "l-*-392"
- "l-*-390"
- "l-*-389"
- "l-*-387"
- "l-*-385"
- "l-*-383"
- "l-*-381"
- "l-*-379"
- "l-*-377"
- "l-*-375"
- "l-*-373"
- "l-*-370"
- "l-*-368"
- "l-*-367"
- "l-*-365"
- "l-*-363"
- "l-*-361"
- "l-*-359"
- "l-*-358"
- "l-*-357"
- "l-*-356"
- "l-*-354"
- "l-*-353"
- "l-*-350"
- "l-*-348"
- "l-*-346"
- "l-*-344"
- "l-*-342"
- "l-*-340"
- "l-*-338"
- "l-*-337"
- "l-*-336"
- "l-*-334"
- "l-*-332"
- "l-*-331"
- "l-*-328"
- "l-*-327"
- "l-*-325"
- "l-*-323"
- "l-*-321"
- "l-*-319"
- "l-*-317"
- "l-*-315"
- "l-*-313"
- "l-*-311"
- "l-*-309"
- "l-*-306"
- "l-*-304"
- "l-*-302"
- "l-*-300"
- "l-*-298"
- "l-*-296"
- "l-*-294"
- "l-*-292"
- "l-*-290"
- "l-*-288"
- "l-*-286"
- "l-*-284"
- "l-*-282"
- "l-*-280"
- "l-*-278"
- "l-*-276"
- "l-*-274"
- "l-*-272"
- "l-*-270"
- "l-*-268"
- "l-*-266"
- "l-*-264"
- "l-*-262"
- "l-*-260"
- "l-*-258"
- "l-*-256"
- "l-*-255"
- "l-*-254"
- "l-*-253"
- "l-*-252"
- "l-*-250"
- "l-*-248"
- "l-*-246"
- "l-*-243"
- "l-*-241"
- "l-*-239"
- "l-*-237"
- "l-*-235"
- "l-*-233"
- "l-*-231"
- "l-*-229"
- "l-*-227"
- "l-*-225"
- "l-*-223"
- "l-*-221"
- "l-*-219"
- "l-*-217"
- "l-*-215"
- "l-*-213"
- "l-*-211"
- "l-*-209"))
- #(ribcage
- (define-structure
-
define-expansion-accessors
-
define-expansion-constructors)
- ((top) (top) (top))
- ("l-*-47"
- "l-*-46"
- "l-*-45")))
- (hygiene guile))))
- (eq? (id-var-name-4280
- dots-12352
- '(()))
- (id-var-name-4280
- '#(syntax-object
- ...
- ((top)
- #(ribcage () () ())
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("l-*-2265"))
- #(ribcage
- (lambda-var-list
- gen-var
- strip
- expand-lambda-case
- lambda*-formals
- expand-simple-lambda
- lambda-formals
- ellipsis?
- expand-void
- eval-local-transformer
- expand-local-syntax
- expand-body
- expand-macro
- expand-application
- expand-expr
- expand
- syntax-type
- parse-when-list
- expand-install-global
- expand-top-sequence
- expand-sequence
- source-wrap
- wrap
- bound-id-member?
- distinct-bound-ids?
- valid-bound-ids?
- bound-id=?
- free-id=?
-
with-transformer-environment
- transformer-environment
- resolve-identifier
-
locally-bound-identifiers
- 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
- build-global-assignment
- build-global-reference
- analyze-variable
- build-lexical-assignment
- build-lexical-reference
- build-dynlet
- build-conditional
- build-application
- build-void
- maybe-name-value!
- decorate-source
-
get-global-definition-hook
-
put-global-definition-hook
- session-id
- local-eval-hook
- top-level-eval-hook
- fx<
- fx=
- fx-
- fx+
- set-lambda-meta!
- lambda-meta
- lambda?
- make-dynlet
- make-letrec
- make-let
- make-lambda-case
- make-lambda
- make-sequence
- make-application
- make-conditional
- make-toplevel-define
- make-toplevel-set
- make-toplevel-ref
- make-module-set
- make-module-ref
- make-lexical-set
- make-lexical-ref
- make-primitive-ref
- make-const
- make-void)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-476"
- "l-*-474"
- "l-*-472"
- "l-*-470"
- "l-*-468"
- "l-*-466"
- "l-*-464"
- "l-*-462"
- "l-*-460"
- "l-*-458"
- "l-*-456"
- "l-*-454"
- "l-*-452"
- "l-*-450"
- "l-*-448"
- "l-*-446"
- "l-*-444"
- "l-*-442"
- "l-*-440"
- "l-*-438"
- "l-*-436"
- "l-*-434"
- "l-*-432"
- "l-*-430"
- "l-*-428"
- "l-*-426"
- "l-*-424"
- "l-*-422"
- "l-*-420"
- "l-*-418"
- "l-*-416"
- "l-*-414"
- "l-*-412"
- "l-*-410"
- "l-*-408"
- "l-*-406"
- "l-*-404"
- "l-*-402"
- "l-*-400"
- "l-*-399"
- "l-*-397"
- "l-*-394"
- "l-*-393"
- "l-*-392"
- "l-*-390"
- "l-*-389"
- "l-*-387"
- "l-*-385"
- "l-*-383"
- "l-*-381"
- "l-*-379"
- "l-*-377"
- "l-*-375"
- "l-*-373"
- "l-*-370"
- "l-*-368"
- "l-*-367"
- "l-*-365"
- "l-*-363"
- "l-*-361"
- "l-*-359"
- "l-*-358"
- "l-*-357"
- "l-*-356"
- "l-*-354"
- "l-*-353"
- "l-*-350"
- "l-*-348"
- "l-*-346"
- "l-*-344"
- "l-*-342"
- "l-*-340"
- "l-*-338"
- "l-*-337"
- "l-*-336"
- "l-*-334"
- "l-*-332"
- "l-*-331"
- "l-*-328"
- "l-*-327"
- "l-*-325"
- "l-*-323"
- "l-*-321"
- "l-*-319"
- "l-*-317"
- "l-*-315"
- "l-*-313"
- "l-*-311"
- "l-*-309"
- "l-*-306"
- "l-*-304"
- "l-*-302"
- "l-*-300"
- "l-*-298"
- "l-*-296"
- "l-*-294"
- "l-*-292"
- "l-*-290"
- "l-*-288"
- "l-*-286"
- "l-*-284"
- "l-*-282"
- "l-*-280"
- "l-*-278"
- "l-*-276"
- "l-*-274"
- "l-*-272"
- "l-*-270"
- "l-*-268"
- "l-*-266"
- "l-*-264"
- "l-*-262"
- "l-*-260"
- "l-*-258"
- "l-*-256"
- "l-*-255"
- "l-*-254"
- "l-*-253"
- "l-*-252"
- "l-*-250"
- "l-*-248"
- "l-*-246"
- "l-*-243"
- "l-*-241"
- "l-*-239"
- "l-*-237"
- "l-*-235"
- "l-*-233"
- "l-*-231"
- "l-*-229"
- "l-*-227"
- "l-*-225"
- "l-*-223"
- "l-*-221"
- "l-*-219"
- "l-*-217"
- "l-*-215"
- "l-*-213"
- "l-*-211"
- "l-*-209"))
- #(ribcage
- (define-structure
-
define-expansion-accessors
-
define-expansion-constructors)
- ((top) (top) (top))
- ("l-*-47"
- "l-*-46"
- "l-*-45")))
- (hygiene guile))
- '(())))
- #f)
- #f))
- tmp-12347)
- #f)
- (@apply
- (lambda (x-12452 dots-12453)
- (call-with-values
- (lambda ()
- (cvt-12022
- x-12452
- (#{1+}# n-12026)
- ids-12027))
- (lambda (p-12454 ids-12455)
- (values
- (if (eq? p-12454 'any)
- 'each-any
- (vector 'each p-12454))
- ids-12455))))
- tmp-12347)
- (let ((tmp-12456
- ($sc-dispatch p-12025 '(any any . any))))
- (if (if tmp-12456
- (@apply
- (lambda (x-12460 dots-12461 ys-12462)
- (if (if (if (vector? dots-12461)
- (if (= (vector-length
- dots-12461)
- 4)
- (eq? (vector-ref
- dots-12461
- 0)
- 'syntax-object)
- #f)
- #f)
- (symbol?
- (vector-ref dots-12461 1))
- #f)
- (if (eq? (if (if (vector? dots-12461)
- (if (= (vector-length
- dots-12461)
- 4)
- (eq? (vector-ref
- dots-12461
- 0)
- 'syntax-object)
- #f)
- #f)
- (vector-ref dots-12461 1)
- dots-12461)
- (if (if (= (vector-length
-
'#(syntax-object
- ...
- ((top)
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(x)
- #((top))
-
#("l-*-2265"))
- #(ribcage
-
(lambda-var-list
- gen-var
- strip
-
expand-lambda-case
-
lambda*-formals
-
expand-simple-lambda
-
lambda-formals
-
ellipsis?
-
expand-void
-
eval-local-transformer
-
expand-local-syntax
-
expand-body
-
expand-macro
-
expand-application
-
expand-expr
- expand
-
syntax-type
-
parse-when-list
-
expand-install-global
-
expand-top-sequence
-
expand-sequence
-
source-wrap
- wrap
-
bound-id-member?
-
distinct-bound-ids?
-
valid-bound-ids?
-
bound-id=?
-
free-id=?
-
with-transformer-environment
-
transformer-environment
-
resolve-identifier
-
locally-bound-identifiers
-
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
-
build-global-assignment
-
build-global-reference
-
analyze-variable
-
build-lexical-assignment
-
build-lexical-reference
-
build-dynlet
-
build-conditional
-
build-application
-
build-void
-
maybe-name-value!
-
decorate-source
-
get-global-definition-hook
-
put-global-definition-hook
-
session-id
-
local-eval-hook
-
top-level-eval-hook
- fx<
- fx=
- fx-
- fx+
-
set-lambda-meta!
-
lambda-meta
- lambda?
-
make-dynlet
-
make-letrec
-
make-let
-
make-lambda-case
-
make-lambda
-
make-sequence
-
make-application
-
make-conditional
-
make-toplevel-define
-
make-toplevel-set
-
make-toplevel-ref
-
make-module-set
-
make-module-ref
-
make-lexical-set
-
make-lexical-ref
-
make-primitive-ref
-
make-const
-
make-void)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
-
("l-*-476"
-
"l-*-474"
-
"l-*-472"
-
"l-*-470"
-
"l-*-468"
-
"l-*-466"
-
"l-*-464"
-
"l-*-462"
-
"l-*-460"
-
"l-*-458"
-
"l-*-456"
-
"l-*-454"
-
"l-*-452"
-
"l-*-450"
-
"l-*-448"
-
"l-*-446"
-
"l-*-444"
-
"l-*-442"
-
"l-*-440"
-
"l-*-438"
-
"l-*-436"
-
"l-*-434"
-
"l-*-432"
-
"l-*-430"
-
"l-*-428"
-
"l-*-426"
-
"l-*-424"
-
"l-*-422"
-
"l-*-420"
-
"l-*-418"
-
"l-*-416"
-
"l-*-414"
-
"l-*-412"
-
"l-*-410"
-
"l-*-408"
-
"l-*-406"
-
"l-*-404"
-
"l-*-402"
-
"l-*-400"
-
"l-*-399"
-
"l-*-397"
-
"l-*-394"
-
"l-*-393"
-
"l-*-392"
-
"l-*-390"
-
"l-*-389"
-
"l-*-387"
-
"l-*-385"
-
"l-*-383"
-
"l-*-381"
-
"l-*-379"
-
"l-*-377"
-
"l-*-375"
-
"l-*-373"
-
"l-*-370"
-
"l-*-368"
-
"l-*-367"
-
"l-*-365"
-
"l-*-363"
-
"l-*-361"
-
"l-*-359"
-
"l-*-358"
-
"l-*-357"
-
"l-*-356"
-
"l-*-354"
-
"l-*-353"
-
"l-*-350"
-
"l-*-348"
-
"l-*-346"
-
"l-*-344"
-
"l-*-342"
-
"l-*-340"
-
"l-*-338"
-
"l-*-337"
-
"l-*-336"
-
"l-*-334"
-
"l-*-332"
-
"l-*-331"
-
"l-*-328"
-
"l-*-327"
-
"l-*-325"
-
"l-*-323"
-
"l-*-321"
-
"l-*-319"
-
"l-*-317"
-
"l-*-315"
-
"l-*-313"
-
"l-*-311"
-
"l-*-309"
-
"l-*-306"
-
"l-*-304"
-
"l-*-302"
-
"l-*-300"
-
"l-*-298"
-
"l-*-296"
-
"l-*-294"
-
"l-*-292"
-
"l-*-290"
-
"l-*-288"
-
"l-*-286"
-
"l-*-284"
-
"l-*-282"
-
"l-*-280"
-
"l-*-278"
-
"l-*-276"
-
"l-*-274"
-
"l-*-272"
-
"l-*-270"
-
"l-*-268"
-
"l-*-266"
-
"l-*-264"
-
"l-*-262"
-
"l-*-260"
-
"l-*-258"
-
"l-*-256"
-
"l-*-255"
-
"l-*-254"
-
"l-*-253"
-
"l-*-252"
-
"l-*-250"
-
"l-*-248"
-
"l-*-246"
-
"l-*-243"
-
"l-*-241"
-
"l-*-239"
-
"l-*-237"
-
"l-*-235"
-
"l-*-233"
-
"l-*-231"
-
"l-*-229"
-
"l-*-227"
-
"l-*-225"
-
"l-*-223"
-
"l-*-221"
-
"l-*-219"
-
"l-*-217"
-
"l-*-215"
-
"l-*-213"
-
"l-*-211"
-
"l-*-209"))
- #(ribcage
-
(define-structure
-
define-expansion-accessors
-
define-expansion-constructors)
- ((top)
- (top)
- (top))
- ("l-*-47"
- "l-*-46"
-
"l-*-45")))
- (hygiene
- guile)))
- 4)
- #t
- #f)
- '...
- '#(syntax-object
- ...
- ((top)
- #(ribcage () () ())
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("l-*-2265"))
- #(ribcage
- (lambda-var-list
- gen-var
- strip
- expand-lambda-case
- lambda*-formals
-
expand-simple-lambda
- lambda-formals
- ellipsis?
- expand-void
-
eval-local-transformer
-
expand-local-syntax
- expand-body
- expand-macro
- expand-application
- expand-expr
- expand
- syntax-type
- parse-when-list
-
expand-install-global
-
expand-top-sequence
- expand-sequence
- source-wrap
- wrap
- bound-id-member?
-
distinct-bound-ids?
- valid-bound-ids?
- bound-id=?
- free-id=?
-
with-transformer-environment
-
transformer-environment
- resolve-identifier
-
locally-bound-identifiers
- 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
-
build-global-assignment
-
build-global-reference
- analyze-variable
-
build-lexical-assignment
-
build-lexical-reference
- build-dynlet
- build-conditional
- build-application
- build-void
- maybe-name-value!
- decorate-source
-
get-global-definition-hook
-
put-global-definition-hook
- session-id
- local-eval-hook
-
top-level-eval-hook
- fx<
- fx=
- fx-
- fx+
- set-lambda-meta!
- lambda-meta
- lambda?
- make-dynlet
- make-letrec
- make-let
- make-lambda-case
- make-lambda
- make-sequence
- make-application
- make-conditional
-
make-toplevel-define
- make-toplevel-set
- make-toplevel-ref
- make-module-set
- make-module-ref
- make-lexical-set
- make-lexical-ref
- make-primitive-ref
- make-const
- make-void)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-476"
- "l-*-474"
- "l-*-472"
- "l-*-470"
- "l-*-468"
- "l-*-466"
- "l-*-464"
- "l-*-462"
- "l-*-460"
- "l-*-458"
- "l-*-456"
- "l-*-454"
- "l-*-452"
- "l-*-450"
- "l-*-448"
- "l-*-446"
- "l-*-444"
- "l-*-442"
- "l-*-440"
- "l-*-438"
- "l-*-436"
- "l-*-434"
- "l-*-432"
- "l-*-430"
- "l-*-428"
- "l-*-426"
- "l-*-424"
- "l-*-422"
- "l-*-420"
- "l-*-418"
- "l-*-416"
- "l-*-414"
- "l-*-412"
- "l-*-410"
- "l-*-408"
- "l-*-406"
- "l-*-404"
- "l-*-402"
- "l-*-400"
- "l-*-399"
- "l-*-397"
- "l-*-394"
- "l-*-393"
- "l-*-392"
- "l-*-390"
- "l-*-389"
- "l-*-387"
- "l-*-385"
- "l-*-383"
- "l-*-381"
- "l-*-379"
- "l-*-377"
- "l-*-375"
- "l-*-373"
- "l-*-370"
- "l-*-368"
- "l-*-367"
- "l-*-365"
- "l-*-363"
- "l-*-361"
- "l-*-359"
- "l-*-358"
- "l-*-357"
- "l-*-356"
- "l-*-354"
- "l-*-353"
- "l-*-350"
- "l-*-348"
- "l-*-346"
- "l-*-344"
- "l-*-342"
- "l-*-340"
- "l-*-338"
- "l-*-337"
- "l-*-336"
- "l-*-334"
- "l-*-332"
- "l-*-331"
- "l-*-328"
- "l-*-327"
- "l-*-325"
- "l-*-323"
- "l-*-321"
- "l-*-319"
- "l-*-317"
- "l-*-315"
- "l-*-313"
- "l-*-311"
- "l-*-309"
- "l-*-306"
- "l-*-304"
- "l-*-302"
- "l-*-300"
- "l-*-298"
- "l-*-296"
- "l-*-294"
- "l-*-292"
- "l-*-290"
- "l-*-288"
- "l-*-286"
- "l-*-284"
- "l-*-282"
- "l-*-280"
- "l-*-278"
- "l-*-276"
- "l-*-274"
- "l-*-272"
- "l-*-270"
- "l-*-268"
- "l-*-266"
- "l-*-264"
- "l-*-262"
- "l-*-260"
- "l-*-258"
- "l-*-256"
- "l-*-255"
- "l-*-254"
- "l-*-253"
- "l-*-252"
- "l-*-250"
- "l-*-248"
- "l-*-246"
- "l-*-243"
- "l-*-241"
- "l-*-239"
- "l-*-237"
- "l-*-235"
- "l-*-233"
- "l-*-231"
- "l-*-229"
- "l-*-227"
- "l-*-225"
- "l-*-223"
- "l-*-221"
- "l-*-219"
- "l-*-217"
- "l-*-215"
- "l-*-213"
- "l-*-211"
- "l-*-209"))
- #(ribcage
- (define-structure
-
define-expansion-accessors
-
define-expansion-constructors)
- ((top) (top) (top))
- ("l-*-47"
- "l-*-46"
- "l-*-45")))
- (hygiene guile))))
- (eq? (id-var-name-4280
- dots-12461
- '(()))
- (id-var-name-4280
- '#(syntax-object
- ...
- ((top)
- #(ribcage () () ())
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("l-*-2265"))
- #(ribcage
- (lambda-var-list
- gen-var
- strip
- expand-lambda-case
- lambda*-formals
- expand-simple-lambda
- lambda-formals
- ellipsis?
- expand-void
-
eval-local-transformer
- expand-local-syntax
- expand-body
- expand-macro
- expand-application
- expand-expr
- expand
- syntax-type
- parse-when-list
-
expand-install-global
- expand-top-sequence
- expand-sequence
- source-wrap
- wrap
- bound-id-member?
- distinct-bound-ids?
- valid-bound-ids?
- bound-id=?
- free-id=?
-
with-transformer-environment
-
transformer-environment
- resolve-identifier
-
locally-bound-identifiers
- 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
-
build-global-assignment
-
build-global-reference
- analyze-variable
-
build-lexical-assignment
-
build-lexical-reference
- build-dynlet
- build-conditional
- build-application
- build-void
- maybe-name-value!
- decorate-source
-
get-global-definition-hook
-
put-global-definition-hook
- session-id
- local-eval-hook
- top-level-eval-hook
- fx<
- fx=
- fx-
- fx+
- set-lambda-meta!
- lambda-meta
- lambda?
- make-dynlet
- make-letrec
- make-let
- make-lambda-case
- make-lambda
- make-sequence
- make-application
- make-conditional
- make-toplevel-define
- make-toplevel-set
- make-toplevel-ref
- make-module-set
- make-module-ref
- make-lexical-set
- make-lexical-ref
- make-primitive-ref
- make-const
- make-void)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-476"
- "l-*-474"
- "l-*-472"
- "l-*-470"
- "l-*-468"
- "l-*-466"
- "l-*-464"
- "l-*-462"
- "l-*-460"
- "l-*-458"
- "l-*-456"
- "l-*-454"
- "l-*-452"
- "l-*-450"
- "l-*-448"
- "l-*-446"
- "l-*-444"
- "l-*-442"
- "l-*-440"
- "l-*-438"
- "l-*-436"
- "l-*-434"
- "l-*-432"
- "l-*-430"
- "l-*-428"
- "l-*-426"
- "l-*-424"
- "l-*-422"
- "l-*-420"
- "l-*-418"
- "l-*-416"
- "l-*-414"
- "l-*-412"
- "l-*-410"
- "l-*-408"
- "l-*-406"
- "l-*-404"
- "l-*-402"
- "l-*-400"
- "l-*-399"
- "l-*-397"
- "l-*-394"
- "l-*-393"
- "l-*-392"
- "l-*-390"
- "l-*-389"
- "l-*-387"
- "l-*-385"
- "l-*-383"
- "l-*-381"
- "l-*-379"
- "l-*-377"
- "l-*-375"
- "l-*-373"
- "l-*-370"
- "l-*-368"
- "l-*-367"
- "l-*-365"
- "l-*-363"
- "l-*-361"
- "l-*-359"
- "l-*-358"
- "l-*-357"
- "l-*-356"
- "l-*-354"
- "l-*-353"
- "l-*-350"
- "l-*-348"
- "l-*-346"
- "l-*-344"
- "l-*-342"
- "l-*-340"
- "l-*-338"
- "l-*-337"
- "l-*-336"
- "l-*-334"
- "l-*-332"
- "l-*-331"
- "l-*-328"
- "l-*-327"
- "l-*-325"
- "l-*-323"
- "l-*-321"
- "l-*-319"
- "l-*-317"
- "l-*-315"
- "l-*-313"
- "l-*-311"
- "l-*-309"
- "l-*-306"
- "l-*-304"
- "l-*-302"
- "l-*-300"
- "l-*-298"
- "l-*-296"
- "l-*-294"
- "l-*-292"
- "l-*-290"
- "l-*-288"
- "l-*-286"
- "l-*-284"
- "l-*-282"
- "l-*-280"
- "l-*-278"
- "l-*-276"
- "l-*-274"
- "l-*-272"
- "l-*-270"
- "l-*-268"
- "l-*-266"
- "l-*-264"
- "l-*-262"
- "l-*-260"
- "l-*-258"
- "l-*-256"
- "l-*-255"
- "l-*-254"
- "l-*-253"
- "l-*-252"
- "l-*-250"
- "l-*-248"
- "l-*-246"
- "l-*-243"
- "l-*-241"
- "l-*-239"
- "l-*-237"
- "l-*-235"
- "l-*-233"
- "l-*-231"
- "l-*-229"
- "l-*-227"
- "l-*-225"
- "l-*-223"
- "l-*-221"
- "l-*-219"
- "l-*-217"
- "l-*-215"
- "l-*-213"
- "l-*-211"
- "l-*-209"))
- #(ribcage
- (define-structure
-
define-expansion-accessors
-
define-expansion-constructors)
- ((top) (top) (top))
- ("l-*-47"
- "l-*-46"
- "l-*-45")))
- (hygiene guile))
- '(())))
- #f)
- #f))
- tmp-12456)
- #f)
- (@apply
- (lambda (x-12562 dots-12563 ys-12564)
+ (lambda () (cvt (car p*) n ids))
+ (lambda (x ids) (values (cons x y) ids))))))))
+ (v-reverse
+ (lambda (x)
+ (let loop ((r '()) (x x))
+ (if (not (pair? x)) (values r x) (loop (cons (car x) r)
(cdr x))))))
+ (cvt (lambda (p n ids)
+ (if (id? p)
+ (cond ((bound-id-member? p keys) (values (vector
'free-id p) ids))
+ ((free-id=? p '#(syntax-object _ ((top)) (hygiene
guile)))
+ (values '_ ids))
+ (else (values 'any (cons (cons p n) ids))))
+ (let* ((tmp p) (tmp-1 ($sc-dispatch tmp '(any any))))
+ (if (and tmp-1 (apply (lambda (x dots) (ellipsis?
dots)) tmp-1))
+ (apply (lambda (x dots)
(call-with-values
- (lambda ()
- (cvt*-12020
- ys-12564
- n-12026
- ids-12027))
- (lambda (ys-12567 ids-12568)
+ (lambda () (cvt x (+ n 1) ids))
+ (lambda (p ids)
+ (values (if (eq? p 'any) 'each-any
(vector 'each p)) ids))))
+ tmp-1)
+ (let ((tmp-1 ($sc-dispatch tmp '(any any . any))))
+ (if (and tmp-1 (apply (lambda (x dots ys)
(ellipsis? dots)) tmp-1))
+ (apply (lambda (x dots ys)
(call-with-values
- (lambda ()
- (cvt-12022
- x-12562
- (#{1+}# n-12026)
- ids-12568))
- (lambda (x-12569 ids-12570)
+ (lambda () (cvt* ys n ids))
+ (lambda (ys ids)
(call-with-values
- (lambda ()
- (v-reverse-12021 ys-12567))
- (lambda (ys-12603 e-12604)
- (values
- (vector
- 'each+
- x-12569
- ys-12603
- e-12604)
- ids-12570))))))))
- tmp-12456)
- (let ((tmp-12605
- ($sc-dispatch p-12025 '(any . any))))
- (if tmp-12605
- (@apply
- (lambda (x-12609 y-12610)
- (call-with-values
- (lambda ()
- (cvt-12022
- y-12610
- n-12026
- ids-12027))
- (lambda (y-12611 ids-12612)
+ (lambda () (cvt x (+ n 1) ids))
+ (lambda (x ids)
+ (call-with-values
+ (lambda () (v-reverse ys))
+ (lambda (ys e) (values
(vector 'each+ x ys e) ids))))))))
+ tmp-1)
+ (let ((tmp-1 ($sc-dispatch tmp '(any . any))))
+ (if tmp-1
+ (apply (lambda (x y)
(call-with-values
- (lambda ()
- (cvt-12022
- x-12609
- n-12026
- ids-12612))
- (lambda (x-12613 ids-12614)
- (values
- (cons x-12613 y-12611)
- ids-12614))))))
- tmp-12605)
- (let ((tmp-12615
- ($sc-dispatch p-12025 '())))
- (if tmp-12615
- (@apply
- (lambda () (values '() ids-12027))
- tmp-12615)
- (let ((tmp-12619
- ($sc-dispatch
- p-12025
- '#(vector each-any))))
- (if tmp-12619
- (@apply
- (lambda (x-12623)
+ (lambda () (cvt y n ids))
+ (lambda (y ids)
(call-with-values
- (lambda ()
- (cvt-12022
- x-12623
- n-12026
- ids-12027))
- (lambda (p-12624 ids-12625)
- (values
- (vector 'vector p-12624)
- ids-12625))))
- tmp-12619)
- (values
- (vector
- 'atom
- (strip-4310 p-12025 '(())))
- ids-12027)))))))))))))))
- (cvt-12022 pattern-12018 0 '()))))
- (build-dispatch-call-10536
- (lambda (pvars-12738 exp-12739 y-12740 r-12741 mod-12742)
- (let ((ids-12743 (map car pvars-12738)))
- (begin
- (map cdr pvars-12738)
- (let ((labels-12745 (gen-labels-4264 ids-12743))
- (new-vars-12746 (map gen-var-4311 ids-12743)))
- (build-application-4228
- #f
- (if (equal? (module-name (current-module)) '(guile))
- (make-struct/no-tail
- (vector-ref %expanded-vtables 7)
- #f
- 'apply)
- (make-struct/no-tail
- (vector-ref %expanded-vtables 5)
- #f
- '(guile)
- 'apply
- #f))
- (list (build-simple-lambda-4237
- #f
- (map syntax->datum ids-12743)
- #f
- new-vars-12746
- '()
- (expand-4297
- exp-12739
- (extend-env-4255
- labels-12745
- (map (lambda (var-13069 level-13070)
- (cons 'syntax
- (cons var-13069 level-13070)))
- new-vars-12746
- (map cdr pvars-12738))
- r-12741)
- (make-binding-wrap-4275
- ids-12743
- labels-12745
- '(()))
- mod-12742))
- y-12740)))))))
- (gen-clause-10537
- (lambda (x-11400
- keys-11401
- clauses-11402
- r-11403
- pat-11404
- fender-11405
- exp-11406
- mod-11407)
- (call-with-values
- (lambda ()
- (convert-pattern-10535 pat-11404 keys-11401))
- (lambda (p-11562 pvars-11563)
- (if (not (distinct-bound-ids?-4288 (map car pvars-11563)))
- (syntax-violation
- 'syntax-case
- "duplicate pattern variable"
- pat-11404)
- (if (not (and-map
- (lambda (x-11679)
- (not (let ((x-11683 (car x-11679)))
- (if (if (if (vector? x-11683)
- (if (= (vector-length
- x-11683)
- 4)
- (eq? (vector-ref
- x-11683
- 0)
- 'syntax-object)
- #f)
- #f)
- (symbol? (vector-ref x-11683 1))
- #f)
- (if (eq? (if (if (vector? x-11683)
- (if (= (vector-length
- x-11683)
- 4)
- (eq? (vector-ref
- x-11683
- 0)
-
'syntax-object)
- #f)
- #f)
- (vector-ref x-11683 1)
- x-11683)
- (if (if (= (vector-length
-
'#(syntax-object
- ...
- ((top)
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(x)
- #((top))
-
#("l-*-2265"))
- #(ribcage
-
(lambda-var-list
-
gen-var
- strip
-
expand-lambda-case
-
lambda*-formals
-
expand-simple-lambda
-
lambda-formals
-
ellipsis?
-
expand-void
-
eval-local-transformer
-
expand-local-syntax
-
expand-body
-
expand-macro
-
expand-application
-
expand-expr
- expand
-
syntax-type
-
parse-when-list
-
expand-install-global
-
expand-top-sequence
-
expand-sequence
-
source-wrap
- wrap
-
bound-id-member?
-
distinct-bound-ids?
-
valid-bound-ids?
-
bound-id=?
-
free-id=?
-
with-transformer-environment
-
transformer-environment
-
resolve-identifier
-
locally-bound-identifiers
-
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
-
build-global-assignment
-
build-global-reference
-
analyze-variable
-
build-lexical-assignment
-
build-lexical-reference
-
build-dynlet
-
build-conditional
-
build-application
-
build-void
-
maybe-name-value!
-
decorate-source
-
get-global-definition-hook
-
put-global-definition-hook
-
session-id
-
local-eval-hook
-
top-level-eval-hook
- fx<
- fx=
- fx-
- fx+
-
set-lambda-meta!
-
lambda-meta
-
lambda?
-
make-dynlet
-
make-letrec
-
make-let
-
make-lambda-case
-
make-lambda
-
make-sequence
-
make-application
-
make-conditional
-
make-toplevel-define
-
make-toplevel-set
-
make-toplevel-ref
-
make-module-set
-
make-module-ref
-
make-lexical-set
-
make-lexical-ref
-
make-primitive-ref
-
make-const
-
make-void)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
-
("l-*-476"
-
"l-*-474"
-
"l-*-472"
-
"l-*-470"
-
"l-*-468"
-
"l-*-466"
-
"l-*-464"
-
"l-*-462"
-
"l-*-460"
-
"l-*-458"
-
"l-*-456"
-
"l-*-454"
-
"l-*-452"
-
"l-*-450"
-
"l-*-448"
-
"l-*-446"
-
"l-*-444"
-
"l-*-442"
-
"l-*-440"
-
"l-*-438"
-
"l-*-436"
-
"l-*-434"
-
"l-*-432"
-
"l-*-430"
-
"l-*-428"
-
"l-*-426"
-
"l-*-424"
-
"l-*-422"
-
"l-*-420"
-
"l-*-418"
-
"l-*-416"
-
"l-*-414"
-
"l-*-412"
-
"l-*-410"
-
"l-*-408"
-
"l-*-406"
-
"l-*-404"
-
"l-*-402"
-
"l-*-400"
-
"l-*-399"
-
"l-*-397"
-
"l-*-394"
-
"l-*-393"
-
"l-*-392"
-
"l-*-390"
-
"l-*-389"
-
"l-*-387"
-
"l-*-385"
-
"l-*-383"
-
"l-*-381"
-
"l-*-379"
-
"l-*-377"
-
"l-*-375"
-
"l-*-373"
-
"l-*-370"
-
"l-*-368"
-
"l-*-367"
-
"l-*-365"
-
"l-*-363"
-
"l-*-361"
-
"l-*-359"
-
"l-*-358"
-
"l-*-357"
-
"l-*-356"
-
"l-*-354"
-
"l-*-353"
-
"l-*-350"
-
"l-*-348"
-
"l-*-346"
-
"l-*-344"
-
"l-*-342"
-
"l-*-340"
-
"l-*-338"
-
"l-*-337"
-
"l-*-336"
-
"l-*-334"
-
"l-*-332"
-
"l-*-331"
-
"l-*-328"
-
"l-*-327"
-
"l-*-325"
-
"l-*-323"
-
"l-*-321"
-
"l-*-319"
-
"l-*-317"
-
"l-*-315"
-
"l-*-313"
-
"l-*-311"
-
"l-*-309"
-
"l-*-306"
-
"l-*-304"
-
"l-*-302"
-
"l-*-300"
-
"l-*-298"
-
"l-*-296"
-
"l-*-294"
-
"l-*-292"
-
"l-*-290"
-
"l-*-288"
-
"l-*-286"
-
"l-*-284"
-
"l-*-282"
-
"l-*-280"
-
"l-*-278"
-
"l-*-276"
-
"l-*-274"
-
"l-*-272"
-
"l-*-270"
-
"l-*-268"
-
"l-*-266"
-
"l-*-264"
-
"l-*-262"
-
"l-*-260"
-
"l-*-258"
-
"l-*-256"
-
"l-*-255"
-
"l-*-254"
-
"l-*-253"
-
"l-*-252"
-
"l-*-250"
-
"l-*-248"
-
"l-*-246"
-
"l-*-243"
-
"l-*-241"
-
"l-*-239"
-
"l-*-237"
-
"l-*-235"
-
"l-*-233"
-
"l-*-231"
-
"l-*-229"
-
"l-*-227"
-
"l-*-225"
-
"l-*-223"
-
"l-*-221"
-
"l-*-219"
-
"l-*-217"
-
"l-*-215"
-
"l-*-213"
-
"l-*-211"
-
"l-*-209"))
- #(ribcage
-
(define-structure
-
define-expansion-accessors
-
define-expansion-constructors)
- ((top)
- (top)
- (top))
-
("l-*-47"
-
"l-*-46"
-
"l-*-45")))
- (hygiene
- guile)))
- 4)
- #t
- #f)
- '...
- '#(syntax-object
- ...
- ((top)
- #(ribcage () () ())
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("l-*-2265"))
- #(ribcage
- (lambda-var-list
- gen-var
- strip
-
expand-lambda-case
- lambda*-formals
-
expand-simple-lambda
- lambda-formals
- ellipsis?
- expand-void
-
eval-local-transformer
-
expand-local-syntax
- expand-body
- expand-macro
-
expand-application
- expand-expr
- expand
- syntax-type
- parse-when-list
-
expand-install-global
-
expand-top-sequence
- expand-sequence
- source-wrap
- wrap
- bound-id-member?
-
distinct-bound-ids?
- valid-bound-ids?
- bound-id=?
- free-id=?
-
with-transformer-environment
-
transformer-environment
-
resolve-identifier
-
locally-bound-identifiers
- 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
-
build-global-assignment
-
build-global-reference
- analyze-variable
-
build-lexical-assignment
-
build-lexical-reference
- build-dynlet
- build-conditional
- build-application
- build-void
- maybe-name-value!
- decorate-source
-
get-global-definition-hook
-
put-global-definition-hook
- session-id
- local-eval-hook
-
top-level-eval-hook
- fx<
- fx=
- fx-
- fx+
- set-lambda-meta!
- lambda-meta
- lambda?
- make-dynlet
- make-letrec
- make-let
- make-lambda-case
- make-lambda
- make-sequence
- make-application
- make-conditional
-
make-toplevel-define
- make-toplevel-set
- make-toplevel-ref
- make-module-set
- make-module-ref
- make-lexical-set
- make-lexical-ref
-
make-primitive-ref
- make-const
- make-void)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-476"
- "l-*-474"
- "l-*-472"
- "l-*-470"
- "l-*-468"
- "l-*-466"
- "l-*-464"
- "l-*-462"
- "l-*-460"
- "l-*-458"
- "l-*-456"
- "l-*-454"
- "l-*-452"
- "l-*-450"
- "l-*-448"
- "l-*-446"
- "l-*-444"
- "l-*-442"
- "l-*-440"
- "l-*-438"
- "l-*-436"
- "l-*-434"
- "l-*-432"
- "l-*-430"
- "l-*-428"
- "l-*-426"
- "l-*-424"
- "l-*-422"
- "l-*-420"
- "l-*-418"
- "l-*-416"
- "l-*-414"
- "l-*-412"
- "l-*-410"
- "l-*-408"
- "l-*-406"
- "l-*-404"
- "l-*-402"
- "l-*-400"
- "l-*-399"
- "l-*-397"
- "l-*-394"
- "l-*-393"
- "l-*-392"
- "l-*-390"
- "l-*-389"
- "l-*-387"
- "l-*-385"
- "l-*-383"
- "l-*-381"
- "l-*-379"
- "l-*-377"
- "l-*-375"
- "l-*-373"
- "l-*-370"
- "l-*-368"
- "l-*-367"
- "l-*-365"
- "l-*-363"
- "l-*-361"
- "l-*-359"
- "l-*-358"
- "l-*-357"
- "l-*-356"
- "l-*-354"
- "l-*-353"
- "l-*-350"
- "l-*-348"
- "l-*-346"
- "l-*-344"
- "l-*-342"
- "l-*-340"
- "l-*-338"
- "l-*-337"
- "l-*-336"
- "l-*-334"
- "l-*-332"
- "l-*-331"
- "l-*-328"
- "l-*-327"
- "l-*-325"
- "l-*-323"
- "l-*-321"
- "l-*-319"
- "l-*-317"
- "l-*-315"
- "l-*-313"
- "l-*-311"
- "l-*-309"
- "l-*-306"
- "l-*-304"
- "l-*-302"
- "l-*-300"
- "l-*-298"
- "l-*-296"
- "l-*-294"
- "l-*-292"
- "l-*-290"
- "l-*-288"
- "l-*-286"
- "l-*-284"
- "l-*-282"
- "l-*-280"
- "l-*-278"
- "l-*-276"
- "l-*-274"
- "l-*-272"
- "l-*-270"
- "l-*-268"
- "l-*-266"
- "l-*-264"
- "l-*-262"
- "l-*-260"
- "l-*-258"
- "l-*-256"
- "l-*-255"
- "l-*-254"
- "l-*-253"
- "l-*-252"
- "l-*-250"
- "l-*-248"
- "l-*-246"
- "l-*-243"
- "l-*-241"
- "l-*-239"
- "l-*-237"
- "l-*-235"
- "l-*-233"
- "l-*-231"
- "l-*-229"
- "l-*-227"
- "l-*-225"
- "l-*-223"
- "l-*-221"
- "l-*-219"
- "l-*-217"
- "l-*-215"
- "l-*-213"
- "l-*-211"
- "l-*-209"))
- #(ribcage
- (define-structure
-
define-expansion-accessors
-
define-expansion-constructors)
- ((top) (top) (top))
- ("l-*-47"
- "l-*-46"
- "l-*-45")))
- (hygiene guile))))
- (eq? (id-var-name-4280
- x-11683
- '(()))
- (id-var-name-4280
- '#(syntax-object
- ...
- ((top)
- #(ribcage () () ())
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("l-*-2265"))
- #(ribcage
- (lambda-var-list
- gen-var
- strip
- expand-lambda-case
- lambda*-formals
-
expand-simple-lambda
- lambda-formals
- ellipsis?
- expand-void
-
eval-local-transformer
- expand-local-syntax
- expand-body
- expand-macro
- expand-application
- expand-expr
- expand
- syntax-type
- parse-when-list
-
expand-install-global
- expand-top-sequence
- expand-sequence
- source-wrap
- wrap
- bound-id-member?
- distinct-bound-ids?
- valid-bound-ids?
- bound-id=?
- free-id=?
-
with-transformer-environment
-
transformer-environment
- resolve-identifier
-
locally-bound-identifiers
- 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
-
build-global-assignment
-
build-global-reference
- analyze-variable
-
build-lexical-assignment
-
build-lexical-reference
- build-dynlet
- build-conditional
- build-application
- build-void
- maybe-name-value!
- decorate-source
-
get-global-definition-hook
-
put-global-definition-hook
- session-id
- local-eval-hook
- top-level-eval-hook
- fx<
- fx=
- fx-
- fx+
- set-lambda-meta!
- lambda-meta
- lambda?
- make-dynlet
- make-letrec
- make-let
- make-lambda-case
- make-lambda
- make-sequence
- make-application
- make-conditional
-
make-toplevel-define
- make-toplevel-set
- make-toplevel-ref
- make-module-set
- make-module-ref
- make-lexical-set
- make-lexical-ref
- make-primitive-ref
- make-const
- make-void)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-476"
- "l-*-474"
- "l-*-472"
- "l-*-470"
- "l-*-468"
- "l-*-466"
- "l-*-464"
- "l-*-462"
- "l-*-460"
- "l-*-458"
- "l-*-456"
- "l-*-454"
- "l-*-452"
- "l-*-450"
- "l-*-448"
- "l-*-446"
- "l-*-444"
- "l-*-442"
- "l-*-440"
- "l-*-438"
- "l-*-436"
- "l-*-434"
- "l-*-432"
- "l-*-430"
- "l-*-428"
- "l-*-426"
- "l-*-424"
- "l-*-422"
- "l-*-420"
- "l-*-418"
- "l-*-416"
- "l-*-414"
- "l-*-412"
- "l-*-410"
- "l-*-408"
- "l-*-406"
- "l-*-404"
- "l-*-402"
- "l-*-400"
- "l-*-399"
- "l-*-397"
- "l-*-394"
- "l-*-393"
- "l-*-392"
- "l-*-390"
- "l-*-389"
- "l-*-387"
- "l-*-385"
- "l-*-383"
- "l-*-381"
- "l-*-379"
- "l-*-377"
- "l-*-375"
- "l-*-373"
- "l-*-370"
- "l-*-368"
- "l-*-367"
- "l-*-365"
- "l-*-363"
- "l-*-361"
- "l-*-359"
- "l-*-358"
- "l-*-357"
- "l-*-356"
- "l-*-354"
- "l-*-353"
- "l-*-350"
- "l-*-348"
- "l-*-346"
- "l-*-344"
- "l-*-342"
- "l-*-340"
- "l-*-338"
- "l-*-337"
- "l-*-336"
- "l-*-334"
- "l-*-332"
- "l-*-331"
- "l-*-328"
- "l-*-327"
- "l-*-325"
- "l-*-323"
- "l-*-321"
- "l-*-319"
- "l-*-317"
- "l-*-315"
- "l-*-313"
- "l-*-311"
- "l-*-309"
- "l-*-306"
- "l-*-304"
- "l-*-302"
- "l-*-300"
- "l-*-298"
- "l-*-296"
- "l-*-294"
- "l-*-292"
- "l-*-290"
- "l-*-288"
- "l-*-286"
- "l-*-284"
- "l-*-282"
- "l-*-280"
- "l-*-278"
- "l-*-276"
- "l-*-274"
- "l-*-272"
- "l-*-270"
- "l-*-268"
- "l-*-266"
- "l-*-264"
- "l-*-262"
- "l-*-260"
- "l-*-258"
- "l-*-256"
- "l-*-255"
- "l-*-254"
- "l-*-253"
- "l-*-252"
- "l-*-250"
- "l-*-248"
- "l-*-246"
- "l-*-243"
- "l-*-241"
- "l-*-239"
- "l-*-237"
- "l-*-235"
- "l-*-233"
- "l-*-231"
- "l-*-229"
- "l-*-227"
- "l-*-225"
- "l-*-223"
- "l-*-221"
- "l-*-219"
- "l-*-217"
- "l-*-215"
- "l-*-213"
- "l-*-211"
- "l-*-209"))
- #(ribcage
- (define-structure
-
define-expansion-accessors
-
define-expansion-constructors)
- ((top) (top) (top))
- ("l-*-47"
- "l-*-46"
- "l-*-45")))
- (hygiene guile))
- '(())))
- #f)
- #f))))
- pvars-11563))
- (syntax-violation
- 'syntax-case
- "misplaced ellipsis"
- pat-11404)
- (let ((y-11759
- (gensym
- (string-append (symbol->string 'tmp) "-"))))
- (build-application-4228
- #f
- (let ((req-11897 (list 'tmp))
- (vars-11899 (list y-11759))
- (exp-11901
- (let ((y-11918
- (make-struct/no-tail
- (vector-ref %expanded-vtables 3)
- #f
- 'tmp
- y-11759)))
- (let ((test-exp-11922
- (let ((tmp-11931
- ($sc-dispatch
- fender-11405
- '#(atom #t))))
- (if tmp-11931
- (@apply
- (lambda () y-11918)
- tmp-11931)
- (let ((then-exp-11946
-
(build-dispatch-call-10536
- pvars-11563
- fender-11405
- y-11918
- r-11403
- mod-11407))
- (else-exp-11947
- (make-struct/no-tail
- (vector-ref
- %expanded-vtables
- 1)
- #f
- #f)))
- (make-struct/no-tail
- (vector-ref
- %expanded-vtables
- 10)
- #f
- y-11918
- then-exp-11946
- else-exp-11947)))))
- (then-exp-11923
- (build-dispatch-call-10536
- pvars-11563
- exp-11406
- y-11918
- r-11403
- mod-11407))
- (else-exp-11924
- (gen-syntax-case-10538
- x-11400
- keys-11401
- clauses-11402
- r-11403
- mod-11407)))
- (make-struct/no-tail
- (vector-ref %expanded-vtables 10)
- #f
- test-exp-11922
- then-exp-11923
- else-exp-11924)))))
- (let ((body-11906
- (make-struct/no-tail
- (vector-ref %expanded-vtables 14)
- #f
- req-11897
- #f
- #f
- #f
- '()
- vars-11899
- exp-11901
- #f)))
- (make-struct/no-tail
- (vector-ref %expanded-vtables 13)
- #f
- '()
- body-11906)))
- (list (if (eq? p-11562 'any)
- (let ((fun-exp-11967
- (if (equal?
- (module-name (current-module))
- '(guile))
- (make-struct/no-tail
- (vector-ref %expanded-vtables 7)
- #f
- 'list)
- (make-struct/no-tail
- (vector-ref %expanded-vtables 5)
- #f
- '(guile)
- 'list
- #f)))
- (arg-exps-11968 (list x-11400)))
- (make-struct/no-tail
- (vector-ref %expanded-vtables 11)
- #f
- fun-exp-11967
- arg-exps-11968))
- (let ((fun-exp-11991
- (if (equal?
- (module-name (current-module))
- '(guile))
- (make-struct/no-tail
- (vector-ref %expanded-vtables 7)
- #f
- '$sc-dispatch)
- (make-struct/no-tail
- (vector-ref %expanded-vtables 5)
- #f
- '(guile)
- '$sc-dispatch
- #f)))
- (arg-exps-11992
- (list x-11400
- (make-struct/no-tail
- (vector-ref
- %expanded-vtables
- 1)
- #f
- p-11562))))
- (make-struct/no-tail
- (vector-ref %expanded-vtables 11)
- #f
- fun-exp-11991
- arg-exps-11992))))))))))))
- (gen-syntax-case-10538
- (lambda (x-10821
- keys-10822
- clauses-10823
- r-10824
- mod-10825)
- (if (null? clauses-10823)
- (let ((fun-exp-10830
- (if (equal? (module-name (current-module)) '(guile))
- (make-struct/no-tail
- (vector-ref %expanded-vtables 7)
+ (lambda () (cvt x n ids))
+ (lambda (x ids) (values
(cons x y) ids))))))
+ tmp-1)
+ (let ((tmp-1 ($sc-dispatch tmp '())))
+ (if tmp-1
+ (apply (lambda () (values '() ids))
tmp-1)
+ (let ((tmp-1 ($sc-dispatch tmp
'#(vector each-any))))
+ (if tmp-1
+ (apply (lambda (x)
+ (call-with-values
+ (lambda () (cvt x n ids))
+ (lambda (p ids) (values
(vector 'vector p) ids))))
+ tmp-1)
+ (let ((x tmp)) (values (vector
'atom (strip p '(()))) ids))))))))))))))))
+ (cvt pattern 0 '()))))
+ (build-dispatch-call
+ (lambda (pvars exp y r mod)
+ (let ((ids (map car pvars)) (levels (map cdr pvars)))
+ (let ((labels (gen-labels ids)) (new-vars (map gen-var ids)))
+ (build-application
+ #f
+ (build-primref #f 'apply)
+ (list (build-simple-lambda
+ #f
+ (map syntax->datum ids)
+ #f
+ new-vars
+ '()
+ (expand
+ exp
+ (extend-env
+ labels
+ (map (lambda (var level) (cons 'syntax (cons var
level)))
+ new-vars
+ (map cdr pvars))
+ r)
+ (make-binding-wrap ids labels '(()))
+ mod))
+ y))))))
+ (gen-clause
+ (lambda (x keys clauses r pat fender exp mod)
+ (call-with-values
+ (lambda () (convert-pattern pat keys))
+ (lambda (p pvars)
+ (cond ((not (distinct-bound-ids? (map car pvars)))
+ (syntax-violation 'syntax-case "duplicate pattern
variable" pat))
+ ((not (and-map (lambda (x) (not (ellipsis? (car x))))
pvars))
+ (syntax-violation 'syntax-case "misplaced ellipsis" pat))
+ (else
+ (let ((y (gen-var 'tmp)))
+ (build-application
+ #f
+ (build-simple-lambda
+ #f
+ (list 'tmp)
+ #f
+ (list y)
+ '()
+ (let ((y (build-lexical-reference 'value #f 'tmp
y)))
+ (build-conditional
+ #f
+ (let* ((tmp fender) (tmp ($sc-dispatch tmp
'#(atom #t))))
+ (if tmp
+ (apply (lambda () y) tmp)
+ (build-conditional
+ #f
+ y
+ (build-dispatch-call pvars fender y r
mod)
+ (build-data #f #f))))
+ (build-dispatch-call pvars exp y r mod)
+ (gen-syntax-case x keys clauses r mod))))
+ (list (if (eq? p 'any)
+ (build-application #f (build-primref #f
'list) (list x))
+ (build-application
+ #f
+ (build-primref #f '$sc-dispatch)
+ (list x (build-data #f p)))))))))))))
+ (gen-syntax-case
+ (lambda (x keys clauses r mod)
+ (if (null? clauses)
+ (build-application
+ #f
+ (build-primref #f 'syntax-violation)
+ (list (build-data #f #f)
+ (build-data #f "source expression failed to match any
pattern")
+ x))
+ (let* ((tmp-1 (car clauses)) (tmp ($sc-dispatch tmp-1 '(any
any))))
+ (if tmp
+ (apply (lambda (pat exp)
+ (if (and (id? pat)
+ (and-map
+ (lambda (x) (not (free-id=? pat x)))
+ (cons '#(syntax-object ... ((top))
(hygiene guile)) keys)))
+ (if (free-id=? pat '#(syntax-object _ ((top))
(hygiene guile)))
+ (expand exp r '(()) mod)
+ (let ((labels (list (gen-label))) (var (gen-var
pat)))
+ (build-application
+ #f
+ (build-simple-lambda
+ #f
+ (list (syntax->datum pat))
+ #f
+ (list var)
+ '()
+ (expand
+ exp
+ (extend-env labels (list (cons 'syntax
(cons var 0))) r)
+ (make-binding-wrap (list pat) labels
'(()))
+ mod))
+ (list x))))
+ (gen-clause x keys (cdr clauses) r pat #t exp
mod)))
+ tmp)
+ (let ((tmp ($sc-dispatch tmp-1 '(any any any))))
+ (if tmp
+ (apply (lambda (pat fender exp)
+ (gen-clause x keys (cdr clauses) r pat fender
exp mod))
+ tmp)
+ (syntax-violation 'syntax-case "invalid clause" (car
clauses))))))))))
+ (lambda (e r w s mod)
+ (let* ((e (source-wrap e w s mod))
+ (tmp-1 e)
+ (tmp ($sc-dispatch tmp-1 '(_ any each-any . each-any))))
+ (if tmp
+ (apply (lambda (val key m)
+ (if (and-map (lambda (x) (and (id? x) (not (ellipsis?
x)))) key)
+ (let ((x (gen-var 'tmp)))
+ (build-application
+ s
+ (build-simple-lambda
#f
- 'syntax-violation)
- (make-struct/no-tail
- (vector-ref %expanded-vtables 5)
+ (list 'tmp)
#f
- '(guile)
- 'syntax-violation
- #f)))
- (arg-exps-10831
- (list (make-struct/no-tail
- (vector-ref %expanded-vtables 1)
- #f
- #f)
- (make-struct/no-tail
- (vector-ref %expanded-vtables 1)
- #f
- "source expression failed to match any
pattern")
- x-10821)))
- (make-struct/no-tail
- (vector-ref %expanded-vtables 11)
- #f
- fun-exp-10830
- arg-exps-10831))
- (let ((tmp-10864 (car clauses-10823)))
- (let ((tmp-10865 ($sc-dispatch tmp-10864 '(any any))))
- (if tmp-10865
- (@apply
- (lambda (pat-10867 exp-10868)
- (if (if (if (symbol? pat-10867)
- #t
- (if (if (vector? pat-10867)
- (if (= (vector-length pat-10867) 4)
- (eq? (vector-ref pat-10867 0)
- 'syntax-object)
- #f)
- #f)
- (symbol? (vector-ref pat-10867 1))
- #f))
- (and-map
- (lambda (x-10895)
- (not (if (eq? (if (if (vector? pat-10867)
- (if (= (vector-length
- pat-10867)
- 4)
- (eq? (vector-ref
- pat-10867
- 0)
- 'syntax-object)
- #f)
- #f)
- (vector-ref pat-10867 1)
- pat-10867)
- (if (if (vector? x-10895)
- (if (= (vector-length
- x-10895)
- 4)
- (eq? (vector-ref
- x-10895
- 0)
- 'syntax-object)
- #f)
- #f)
- (vector-ref x-10895 1)
- x-10895))
- (eq? (id-var-name-4280
- pat-10867
- '(()))
- (id-var-name-4280
- x-10895
- '(())))
- #f)))
- (cons '#(syntax-object
- ...
- ((top)
- #(ribcage
- #(pat exp)
- #((top) (top))
- #("l-*-3859" "l-*-3860"))
- #(ribcage () () ())
- #(ribcage
- #(x keys clauses r mod)
- #((top) (top) (top) (top) (top))
- #("l-*-3848"
- "l-*-3849"
- "l-*-3850"
- "l-*-3851"
- "l-*-3852"))
- #(ribcage
- (gen-syntax-case
- gen-clause
- build-dispatch-call
- convert-pattern)
- ((top) (top) (top) (top))
- ("l-*-3668"
- "l-*-3666"
- "l-*-3664"
- "l-*-3662"))
- #(ribcage
- (lambda-var-list
- gen-var
- strip
- expand-lambda-case
- lambda*-formals
- expand-simple-lambda
- lambda-formals
- ellipsis?
- expand-void
- eval-local-transformer
- expand-local-syntax
- expand-body
- expand-macro
- expand-application
- expand-expr
- expand
- syntax-type
- parse-when-list
- expand-install-global
- expand-top-sequence
- expand-sequence
- source-wrap
- wrap
- bound-id-member?
- distinct-bound-ids?
- valid-bound-ids?
- bound-id=?
- free-id=?
- with-transformer-environment
- transformer-environment
- resolve-identifier
- locally-bound-identifiers
- 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
- build-global-assignment
- build-global-reference
- analyze-variable
- build-lexical-assignment
- build-lexical-reference
- build-dynlet
- build-conditional
- build-application
- build-void
- maybe-name-value!
- decorate-source
- get-global-definition-hook
- put-global-definition-hook
- session-id
- local-eval-hook
- top-level-eval-hook
- fx<
- fx=
- fx-
- fx+
- set-lambda-meta!
- lambda-meta
- lambda?
- make-dynlet
- make-letrec
- make-let
- make-lambda-case
- make-lambda
- make-sequence
- make-application
- make-conditional
- make-toplevel-define
- make-toplevel-set
- make-toplevel-ref
- make-module-set
- make-module-ref
- make-lexical-set
- make-lexical-ref
- make-primitive-ref
- make-const
- make-void)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-476"
- "l-*-474"
- "l-*-472"
- "l-*-470"
- "l-*-468"
- "l-*-466"
- "l-*-464"
- "l-*-462"
- "l-*-460"
- "l-*-458"
- "l-*-456"
- "l-*-454"
- "l-*-452"
- "l-*-450"
- "l-*-448"
- "l-*-446"
- "l-*-444"
- "l-*-442"
- "l-*-440"
- "l-*-438"
- "l-*-436"
- "l-*-434"
- "l-*-432"
- "l-*-430"
- "l-*-428"
- "l-*-426"
- "l-*-424"
- "l-*-422"
- "l-*-420"
- "l-*-418"
- "l-*-416"
- "l-*-414"
- "l-*-412"
- "l-*-410"
- "l-*-408"
- "l-*-406"
- "l-*-404"
- "l-*-402"
- "l-*-400"
- "l-*-399"
- "l-*-397"
- "l-*-394"
- "l-*-393"
- "l-*-392"
- "l-*-390"
- "l-*-389"
- "l-*-387"
- "l-*-385"
- "l-*-383"
- "l-*-381"
- "l-*-379"
- "l-*-377"
- "l-*-375"
- "l-*-373"
- "l-*-370"
- "l-*-368"
- "l-*-367"
- "l-*-365"
- "l-*-363"
- "l-*-361"
- "l-*-359"
- "l-*-358"
- "l-*-357"
- "l-*-356"
- "l-*-354"
- "l-*-353"
- "l-*-350"
- "l-*-348"
- "l-*-346"
- "l-*-344"
- "l-*-342"
- "l-*-340"
- "l-*-338"
- "l-*-337"
- "l-*-336"
- "l-*-334"
- "l-*-332"
- "l-*-331"
- "l-*-328"
- "l-*-327"
- "l-*-325"
- "l-*-323"
- "l-*-321"
- "l-*-319"
- "l-*-317"
- "l-*-315"
- "l-*-313"
- "l-*-311"
- "l-*-309"
- "l-*-306"
- "l-*-304"
- "l-*-302"
- "l-*-300"
- "l-*-298"
- "l-*-296"
- "l-*-294"
- "l-*-292"
- "l-*-290"
- "l-*-288"
- "l-*-286"
- "l-*-284"
- "l-*-282"
- "l-*-280"
- "l-*-278"
- "l-*-276"
- "l-*-274"
- "l-*-272"
- "l-*-270"
- "l-*-268"
- "l-*-266"
- "l-*-264"
- "l-*-262"
- "l-*-260"
- "l-*-258"
- "l-*-256"
- "l-*-255"
- "l-*-254"
- "l-*-253"
- "l-*-252"
- "l-*-250"
- "l-*-248"
- "l-*-246"
- "l-*-243"
- "l-*-241"
- "l-*-239"
- "l-*-237"
- "l-*-235"
- "l-*-233"
- "l-*-231"
- "l-*-229"
- "l-*-227"
- "l-*-225"
- "l-*-223"
- "l-*-221"
- "l-*-219"
- "l-*-217"
- "l-*-215"
- "l-*-213"
- "l-*-211"
- "l-*-209"))
- #(ribcage
- (define-structure
- define-expansion-accessors
- define-expansion-constructors)
- ((top) (top) (top))
- ("l-*-47" "l-*-46" "l-*-45")))
- (hygiene guile))
- keys-10822))
- #f)
- (if (if (eq? (if (if (vector? pat-10867)
- (if (= (vector-length
- pat-10867)
- 4)
- (eq? (vector-ref pat-10867 0)
- 'syntax-object)
- #f)
- #f)
- (vector-ref pat-10867 1)
- pat-10867)
- (if (if (= (vector-length
- '#(syntax-object
- _
- ((top)
- #(ribcage
- #(pat exp)
- #((top) (top))
- #("l-*-3859"
- "l-*-3860"))
- #(ribcage () () ())
- #(ribcage
- #(x
- keys
- clauses
- r
- mod)
- #((top)
- (top)
- (top)
- (top)
- (top))
- #("l-*-3848"
- "l-*-3849"
- "l-*-3850"
- "l-*-3851"
- "l-*-3852"))
- #(ribcage
- (gen-syntax-case
- gen-clause
-
build-dispatch-call
- convert-pattern)
- ((top)
- (top)
- (top)
- (top))
- ("l-*-3668"
- "l-*-3666"
- "l-*-3664"
- "l-*-3662"))
- #(ribcage
- (lambda-var-list
- gen-var
- strip
-
expand-lambda-case
- lambda*-formals
-
expand-simple-lambda
- lambda-formals
- ellipsis?
- expand-void
-
eval-local-transformer
-
expand-local-syntax
- expand-body
- expand-macro
-
expand-application
- expand-expr
- expand
- syntax-type
- parse-when-list
-
expand-install-global
-
expand-top-sequence
- expand-sequence
- source-wrap
- wrap
- bound-id-member?
-
distinct-bound-ids?
- valid-bound-ids?
- bound-id=?
- free-id=?
-
with-transformer-environment
-
transformer-environment
-
resolve-identifier
-
locally-bound-identifiers
- 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
-
build-global-assignment
-
build-global-reference
- analyze-variable
-
build-lexical-assignment
-
build-lexical-reference
- build-dynlet
-
build-conditional
-
build-application
- build-void
-
maybe-name-value!
- decorate-source
-
get-global-definition-hook
-
put-global-definition-hook
- session-id
- local-eval-hook
-
top-level-eval-hook
- fx<
- fx=
- fx-
- fx+
- set-lambda-meta!
- lambda-meta
- lambda?
- make-dynlet
- make-letrec
- make-let
- make-lambda-case
- make-lambda
- make-sequence
- make-application
- make-conditional
-
make-toplevel-define
-
make-toplevel-set
-
make-toplevel-ref
- make-module-set
- make-module-ref
- make-lexical-set
- make-lexical-ref
-
make-primitive-ref
- make-const
- make-void)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-476"
- "l-*-474"
- "l-*-472"
- "l-*-470"
- "l-*-468"
- "l-*-466"
- "l-*-464"
- "l-*-462"
- "l-*-460"
- "l-*-458"
- "l-*-456"
- "l-*-454"
- "l-*-452"
- "l-*-450"
- "l-*-448"
- "l-*-446"
- "l-*-444"
- "l-*-442"
- "l-*-440"
- "l-*-438"
- "l-*-436"
- "l-*-434"
- "l-*-432"
- "l-*-430"
- "l-*-428"
- "l-*-426"
- "l-*-424"
- "l-*-422"
- "l-*-420"
- "l-*-418"
- "l-*-416"
- "l-*-414"
- "l-*-412"
- "l-*-410"
- "l-*-408"
- "l-*-406"
- "l-*-404"
- "l-*-402"
- "l-*-400"
- "l-*-399"
- "l-*-397"
- "l-*-394"
- "l-*-393"
- "l-*-392"
- "l-*-390"
- "l-*-389"
- "l-*-387"
- "l-*-385"
- "l-*-383"
- "l-*-381"
- "l-*-379"
- "l-*-377"
- "l-*-375"
- "l-*-373"
- "l-*-370"
- "l-*-368"
- "l-*-367"
- "l-*-365"
- "l-*-363"
- "l-*-361"
- "l-*-359"
- "l-*-358"
- "l-*-357"
- "l-*-356"
- "l-*-354"
- "l-*-353"
- "l-*-350"
- "l-*-348"
- "l-*-346"
- "l-*-344"
- "l-*-342"
- "l-*-340"
- "l-*-338"
- "l-*-337"
- "l-*-336"
- "l-*-334"
- "l-*-332"
- "l-*-331"
- "l-*-328"
- "l-*-327"
- "l-*-325"
- "l-*-323"
- "l-*-321"
- "l-*-319"
- "l-*-317"
- "l-*-315"
- "l-*-313"
- "l-*-311"
- "l-*-309"
- "l-*-306"
- "l-*-304"
- "l-*-302"
- "l-*-300"
- "l-*-298"
- "l-*-296"
- "l-*-294"
- "l-*-292"
- "l-*-290"
- "l-*-288"
- "l-*-286"
- "l-*-284"
- "l-*-282"
- "l-*-280"
- "l-*-278"
- "l-*-276"
- "l-*-274"
- "l-*-272"
- "l-*-270"
- "l-*-268"
- "l-*-266"
- "l-*-264"
- "l-*-262"
- "l-*-260"
- "l-*-258"
- "l-*-256"
- "l-*-255"
- "l-*-254"
- "l-*-253"
- "l-*-252"
- "l-*-250"
- "l-*-248"
- "l-*-246"
- "l-*-243"
- "l-*-241"
- "l-*-239"
- "l-*-237"
- "l-*-235"
- "l-*-233"
- "l-*-231"
- "l-*-229"
- "l-*-227"
- "l-*-225"
- "l-*-223"
- "l-*-221"
- "l-*-219"
- "l-*-217"
- "l-*-215"
- "l-*-213"
- "l-*-211"
- "l-*-209"))
- #(ribcage
- (define-structure
-
define-expansion-accessors
-
define-expansion-constructors)
- ((top)
- (top)
- (top))
- ("l-*-47"
- "l-*-46"
- "l-*-45")))
- (hygiene guile)))
- 4)
- #t
- #f)
- '_
- '#(syntax-object
- _
- ((top)
- #(ribcage
- #(pat exp)
- #((top) (top))
- #("l-*-3859" "l-*-3860"))
- #(ribcage () () ())
- #(ribcage
- #(x keys clauses r mod)
- #((top)
- (top)
- (top)
- (top)
- (top))
- #("l-*-3848"
- "l-*-3849"
- "l-*-3850"
- "l-*-3851"
- "l-*-3852"))
- #(ribcage
- (gen-syntax-case
- gen-clause
- build-dispatch-call
- convert-pattern)
- ((top) (top) (top) (top))
- ("l-*-3668"
- "l-*-3666"
- "l-*-3664"
- "l-*-3662"))
- #(ribcage
- (lambda-var-list
- gen-var
- strip
- expand-lambda-case
- lambda*-formals
- expand-simple-lambda
- lambda-formals
- ellipsis?
- expand-void
- eval-local-transformer
- expand-local-syntax
- expand-body
- expand-macro
- expand-application
- expand-expr
- expand
- syntax-type
- parse-when-list
- expand-install-global
- expand-top-sequence
- expand-sequence
- source-wrap
- wrap
- bound-id-member?
- distinct-bound-ids?
- valid-bound-ids?
- bound-id=?
- free-id=?
-
with-transformer-environment
- transformer-environment
- resolve-identifier
- locally-bound-identifiers
- 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
- build-global-assignment
- build-global-reference
- analyze-variable
- build-lexical-assignment
- build-lexical-reference
- build-dynlet
- build-conditional
- build-application
- build-void
- maybe-name-value!
- decorate-source
- get-global-definition-hook
- put-global-definition-hook
- session-id
- local-eval-hook
- top-level-eval-hook
- fx<
- fx=
- fx-
- fx+
- set-lambda-meta!
- lambda-meta
- lambda?
- make-dynlet
- make-letrec
- make-let
- make-lambda-case
- make-lambda
- make-sequence
- make-application
- make-conditional
- make-toplevel-define
- make-toplevel-set
- make-toplevel-ref
- make-module-set
- make-module-ref
- make-lexical-set
- make-lexical-ref
- make-primitive-ref
- make-const
- make-void)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-476"
- "l-*-474"
- "l-*-472"
- "l-*-470"
- "l-*-468"
- "l-*-466"
- "l-*-464"
- "l-*-462"
- "l-*-460"
- "l-*-458"
- "l-*-456"
- "l-*-454"
- "l-*-452"
- "l-*-450"
- "l-*-448"
- "l-*-446"
- "l-*-444"
- "l-*-442"
- "l-*-440"
- "l-*-438"
- "l-*-436"
- "l-*-434"
- "l-*-432"
- "l-*-430"
- "l-*-428"
- "l-*-426"
- "l-*-424"
- "l-*-422"
- "l-*-420"
- "l-*-418"
- "l-*-416"
- "l-*-414"
- "l-*-412"
- "l-*-410"
- "l-*-408"
- "l-*-406"
- "l-*-404"
- "l-*-402"
- "l-*-400"
- "l-*-399"
- "l-*-397"
- "l-*-394"
- "l-*-393"
- "l-*-392"
- "l-*-390"
- "l-*-389"
- "l-*-387"
- "l-*-385"
- "l-*-383"
- "l-*-381"
- "l-*-379"
- "l-*-377"
- "l-*-375"
- "l-*-373"
- "l-*-370"
- "l-*-368"
- "l-*-367"
- "l-*-365"
- "l-*-363"
- "l-*-361"
- "l-*-359"
- "l-*-358"
- "l-*-357"
- "l-*-356"
- "l-*-354"
- "l-*-353"
- "l-*-350"
- "l-*-348"
- "l-*-346"
- "l-*-344"
- "l-*-342"
- "l-*-340"
- "l-*-338"
- "l-*-337"
- "l-*-336"
- "l-*-334"
- "l-*-332"
- "l-*-331"
- "l-*-328"
- "l-*-327"
- "l-*-325"
- "l-*-323"
- "l-*-321"
- "l-*-319"
- "l-*-317"
- "l-*-315"
- "l-*-313"
- "l-*-311"
- "l-*-309"
- "l-*-306"
- "l-*-304"
- "l-*-302"
- "l-*-300"
- "l-*-298"
- "l-*-296"
- "l-*-294"
- "l-*-292"
- "l-*-290"
- "l-*-288"
- "l-*-286"
- "l-*-284"
- "l-*-282"
- "l-*-280"
- "l-*-278"
- "l-*-276"
- "l-*-274"
- "l-*-272"
- "l-*-270"
- "l-*-268"
- "l-*-266"
- "l-*-264"
- "l-*-262"
- "l-*-260"
- "l-*-258"
- "l-*-256"
- "l-*-255"
- "l-*-254"
- "l-*-253"
- "l-*-252"
- "l-*-250"
- "l-*-248"
- "l-*-246"
- "l-*-243"
- "l-*-241"
- "l-*-239"
- "l-*-237"
- "l-*-235"
- "l-*-233"
- "l-*-231"
- "l-*-229"
- "l-*-227"
- "l-*-225"
- "l-*-223"
- "l-*-221"
- "l-*-219"
- "l-*-217"
- "l-*-215"
- "l-*-213"
- "l-*-211"
- "l-*-209"))
- #(ribcage
- (define-structure
- define-expansion-accessors
-
define-expansion-constructors)
- ((top) (top) (top))
- ("l-*-47"
- "l-*-46"
- "l-*-45")))
- (hygiene guile))))
- (eq? (id-var-name-4280 pat-10867 '(()))
- (id-var-name-4280
- '#(syntax-object
- _
- ((top)
- #(ribcage
- #(pat exp)
- #((top) (top))
- #("l-*-3859" "l-*-3860"))
- #(ribcage () () ())
- #(ribcage
- #(x keys clauses r mod)
- #((top)
- (top)
- (top)
- (top)
- (top))
- #("l-*-3848"
- "l-*-3849"
- "l-*-3850"
- "l-*-3851"
- "l-*-3852"))
- #(ribcage
- (gen-syntax-case
- gen-clause
- build-dispatch-call
- convert-pattern)
- ((top) (top) (top) (top))
- ("l-*-3668"
- "l-*-3666"
- "l-*-3664"
- "l-*-3662"))
- #(ribcage
- (lambda-var-list
- gen-var
- strip
- expand-lambda-case
- lambda*-formals
- expand-simple-lambda
- lambda-formals
- ellipsis?
- expand-void
- eval-local-transformer
- expand-local-syntax
- expand-body
- expand-macro
- expand-application
- expand-expr
- expand
- syntax-type
- parse-when-list
- expand-install-global
- expand-top-sequence
- expand-sequence
- source-wrap
- wrap
- bound-id-member?
- distinct-bound-ids?
- valid-bound-ids?
- bound-id=?
- free-id=?
- with-transformer-environment
- transformer-environment
- resolve-identifier
- locally-bound-identifiers
- 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
- build-global-assignment
- build-global-reference
- analyze-variable
- build-lexical-assignment
- build-lexical-reference
- build-dynlet
- build-conditional
- build-application
- build-void
- maybe-name-value!
- decorate-source
- get-global-definition-hook
- put-global-definition-hook
- session-id
- local-eval-hook
- top-level-eval-hook
- fx<
- fx=
- fx-
- fx+
- set-lambda-meta!
- lambda-meta
- lambda?
- make-dynlet
- make-letrec
- make-let
- make-lambda-case
- make-lambda
- make-sequence
- make-application
- make-conditional
- make-toplevel-define
- make-toplevel-set
- make-toplevel-ref
- make-module-set
- make-module-ref
- make-lexical-set
- make-lexical-ref
- make-primitive-ref
- make-const
- make-void)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-476"
- "l-*-474"
- "l-*-472"
- "l-*-470"
- "l-*-468"
- "l-*-466"
- "l-*-464"
- "l-*-462"
- "l-*-460"
- "l-*-458"
- "l-*-456"
- "l-*-454"
- "l-*-452"
- "l-*-450"
- "l-*-448"
- "l-*-446"
- "l-*-444"
- "l-*-442"
- "l-*-440"
- "l-*-438"
- "l-*-436"
- "l-*-434"
- "l-*-432"
- "l-*-430"
- "l-*-428"
- "l-*-426"
- "l-*-424"
- "l-*-422"
- "l-*-420"
- "l-*-418"
- "l-*-416"
- "l-*-414"
- "l-*-412"
- "l-*-410"
- "l-*-408"
- "l-*-406"
- "l-*-404"
- "l-*-402"
- "l-*-400"
- "l-*-399"
- "l-*-397"
- "l-*-394"
- "l-*-393"
- "l-*-392"
- "l-*-390"
- "l-*-389"
- "l-*-387"
- "l-*-385"
- "l-*-383"
- "l-*-381"
- "l-*-379"
- "l-*-377"
- "l-*-375"
- "l-*-373"
- "l-*-370"
- "l-*-368"
- "l-*-367"
- "l-*-365"
- "l-*-363"
- "l-*-361"
- "l-*-359"
- "l-*-358"
- "l-*-357"
- "l-*-356"
- "l-*-354"
- "l-*-353"
- "l-*-350"
- "l-*-348"
- "l-*-346"
- "l-*-344"
- "l-*-342"
- "l-*-340"
- "l-*-338"
- "l-*-337"
- "l-*-336"
- "l-*-334"
- "l-*-332"
- "l-*-331"
- "l-*-328"
- "l-*-327"
- "l-*-325"
- "l-*-323"
- "l-*-321"
- "l-*-319"
- "l-*-317"
- "l-*-315"
- "l-*-313"
- "l-*-311"
- "l-*-309"
- "l-*-306"
- "l-*-304"
- "l-*-302"
- "l-*-300"
- "l-*-298"
- "l-*-296"
- "l-*-294"
- "l-*-292"
- "l-*-290"
- "l-*-288"
- "l-*-286"
- "l-*-284"
- "l-*-282"
- "l-*-280"
- "l-*-278"
- "l-*-276"
- "l-*-274"
- "l-*-272"
- "l-*-270"
- "l-*-268"
- "l-*-266"
- "l-*-264"
- "l-*-262"
- "l-*-260"
- "l-*-258"
- "l-*-256"
- "l-*-255"
- "l-*-254"
- "l-*-253"
- "l-*-252"
- "l-*-250"
- "l-*-248"
- "l-*-246"
- "l-*-243"
- "l-*-241"
- "l-*-239"
- "l-*-237"
- "l-*-235"
- "l-*-233"
- "l-*-231"
- "l-*-229"
- "l-*-227"
- "l-*-225"
- "l-*-223"
- "l-*-221"
- "l-*-219"
- "l-*-217"
- "l-*-215"
- "l-*-213"
- "l-*-211"
- "l-*-209"))
- #(ribcage
- (define-structure
- define-expansion-accessors
-
define-expansion-constructors)
- ((top) (top) (top))
- ("l-*-47" "l-*-46" "l-*-45")))
- (hygiene guile))
- '(())))
- #f)
- (call-with-values
- (lambda ()
- (syntax-type-4296
- exp-10868
- r-10824
- '(())
- (let ((props-11041
- (source-properties
- (if (if (vector? exp-10868)
- (if (= (vector-length
- exp-10868)
- 4)
- (eq? (vector-ref
- exp-10868
- 0)
- 'syntax-object)
- #f)
- #f)
- (vector-ref exp-10868 1)
- exp-10868))))
- (if (pair? props-11041) props-11041 #f))
- #f
- mod-10825
- #f))
- (lambda (type-11074
- value-11075
- form-11076
- e-11077
- w-11078
- s-11079
- mod-11080)
- (expand-expr-4298
- type-11074
- value-11075
- form-11076
- e-11077
- r-10824
- w-11078
- s-11079
- mod-11080)))
- (let ((labels-11084
- (list (string-append
- "l-"
- (session-id-4222)
- (symbol->string (gensym "-")))))
- (var-11085
- (let ((id-11123
- (if (if (vector? pat-10867)
- (if (= (vector-length
- pat-10867)
- 4)
- (eq? (vector-ref
- pat-10867
- 0)
- 'syntax-object)
- #f)
- #f)
- (vector-ref pat-10867 1)
- pat-10867)))
- (gensym
- (string-append
- (symbol->string id-11123)
- "-")))))
- (build-application-4228
- #f
- (build-simple-lambda-4237
- #f
- (list (syntax->datum pat-10867))
- #f
- (list var-11085)
- '()
- (expand-4297
- exp-10868
- (extend-env-4255
- labels-11084
- (list (cons 'syntax
- (cons var-11085 0)))
- r-10824)
- (make-binding-wrap-4275
- (list pat-10867)
- labels-11084
- '(()))
- mod-10825))
- (list x-10821))))
- (gen-clause-10537
- x-10821
- keys-10822
- (cdr clauses-10823)
- r-10824
- pat-10867
- #t
- exp-10868
- mod-10825)))
- tmp-10865)
- (let ((tmp-11393
- ($sc-dispatch tmp-10864 '(any any any))))
- (if tmp-11393
- (@apply
- (lambda (pat-11395 fender-11396 exp-11397)
- (gen-clause-10537
- x-10821
- keys-10822
- (cdr clauses-10823)
- r-10824
- pat-11395
- fender-11396
- exp-11397
- mod-10825))
- tmp-11393)
- (syntax-violation
- 'syntax-case
- "invalid clause"
- (car clauses-10823)))))))))))
- (lambda (e-10539 r-10540 w-10541 s-10542 mod-10543)
- (let ((e-10544
- (wrap-4290
- (begin
- (if (if s-10542
- (supports-source-properties? e-10539)
- #f)
- (set-source-properties! e-10539 s-10542))
- e-10539)
- w-10541
- mod-10543)))
- (let ((tmp-10546
- ($sc-dispatch
- e-10544
- '(_ any each-any . each-any))))
- (if tmp-10546
- (@apply
- (lambda (val-10571 key-10572 m-10573)
- (if (and-map
- (lambda (x-10574)
- (if (if (symbol? x-10574)
- #t
- (if (if (vector? x-10574)
- (if (= (vector-length x-10574) 4)
- (eq? (vector-ref x-10574 0)
- 'syntax-object)
- #f)
- #f)
- (symbol? (vector-ref x-10574 1))
- #f))
- (not (if (if (if (vector? x-10574)
- (if (= (vector-length x-10574)
- 4)
- (eq? (vector-ref x-10574 0)
- 'syntax-object)
- #f)
- #f)
- (symbol? (vector-ref x-10574 1))
- #f)
- (if (eq? (if (if (vector? x-10574)
- (if (= (vector-length
- x-10574)
- 4)
- (eq? (vector-ref
- x-10574
- 0)
- 'syntax-object)
- #f)
- #f)
- (vector-ref x-10574 1)
- x-10574)
- (if (if (= (vector-length
- '#(syntax-object
- ...
- ((top)
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(x)
- #((top))
-
#("l-*-2265"))
- #(ribcage
-
(lambda-var-list
- gen-var
- strip
-
expand-lambda-case
-
lambda*-formals
-
expand-simple-lambda
-
lambda-formals
- ellipsis?
-
expand-void
-
eval-local-transformer
-
expand-local-syntax
-
expand-body
-
expand-macro
-
expand-application
-
expand-expr
- expand
-
syntax-type
-
parse-when-list
-
expand-install-global
-
expand-top-sequence
-
expand-sequence
-
source-wrap
- wrap
-
bound-id-member?
-
distinct-bound-ids?
-
valid-bound-ids?
- bound-id=?
- free-id=?
-
with-transformer-environment
-
transformer-environment
-
resolve-identifier
-
locally-bound-identifiers
-
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
-
build-global-assignment
-
build-global-reference
-
analyze-variable
-
build-lexical-assignment
-
build-lexical-reference
-
build-dynlet
-
build-conditional
-
build-application
- build-void
-
maybe-name-value!
-
decorate-source
-
get-global-definition-hook
-
put-global-definition-hook
- session-id
-
local-eval-hook
-
top-level-eval-hook
- fx<
- fx=
- fx-
- fx+
-
set-lambda-meta!
-
lambda-meta
- lambda?
-
make-dynlet
-
make-letrec
- make-let
-
make-lambda-case
-
make-lambda
-
make-sequence
-
make-application
-
make-conditional
-
make-toplevel-define
-
make-toplevel-set
-
make-toplevel-ref
-
make-module-set
-
make-module-ref
-
make-lexical-set
-
make-lexical-ref
-
make-primitive-ref
- make-const
- make-void)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-476"
- "l-*-474"
- "l-*-472"
- "l-*-470"
- "l-*-468"
- "l-*-466"
- "l-*-464"
- "l-*-462"
- "l-*-460"
- "l-*-458"
- "l-*-456"
- "l-*-454"
- "l-*-452"
- "l-*-450"
- "l-*-448"
- "l-*-446"
- "l-*-444"
- "l-*-442"
- "l-*-440"
- "l-*-438"
- "l-*-436"
- "l-*-434"
- "l-*-432"
- "l-*-430"
- "l-*-428"
- "l-*-426"
- "l-*-424"
- "l-*-422"
- "l-*-420"
- "l-*-418"
- "l-*-416"
- "l-*-414"
- "l-*-412"
- "l-*-410"
- "l-*-408"
- "l-*-406"
- "l-*-404"
- "l-*-402"
- "l-*-400"
- "l-*-399"
- "l-*-397"
- "l-*-394"
- "l-*-393"
- "l-*-392"
- "l-*-390"
- "l-*-389"
- "l-*-387"
- "l-*-385"
- "l-*-383"
- "l-*-381"
- "l-*-379"
- "l-*-377"
- "l-*-375"
- "l-*-373"
- "l-*-370"
- "l-*-368"
- "l-*-367"
- "l-*-365"
- "l-*-363"
- "l-*-361"
- "l-*-359"
- "l-*-358"
- "l-*-357"
- "l-*-356"
- "l-*-354"
- "l-*-353"
- "l-*-350"
- "l-*-348"
- "l-*-346"
- "l-*-344"
- "l-*-342"
- "l-*-340"
- "l-*-338"
- "l-*-337"
- "l-*-336"
- "l-*-334"
- "l-*-332"
- "l-*-331"
- "l-*-328"
- "l-*-327"
- "l-*-325"
- "l-*-323"
- "l-*-321"
- "l-*-319"
- "l-*-317"
- "l-*-315"
- "l-*-313"
- "l-*-311"
- "l-*-309"
- "l-*-306"
- "l-*-304"
- "l-*-302"
- "l-*-300"
- "l-*-298"
- "l-*-296"
- "l-*-294"
- "l-*-292"
- "l-*-290"
- "l-*-288"
- "l-*-286"
- "l-*-284"
- "l-*-282"
- "l-*-280"
- "l-*-278"
- "l-*-276"
- "l-*-274"
- "l-*-272"
- "l-*-270"
- "l-*-268"
- "l-*-266"
- "l-*-264"
- "l-*-262"
- "l-*-260"
- "l-*-258"
- "l-*-256"
- "l-*-255"
- "l-*-254"
- "l-*-253"
- "l-*-252"
- "l-*-250"
- "l-*-248"
- "l-*-246"
- "l-*-243"
- "l-*-241"
- "l-*-239"
- "l-*-237"
- "l-*-235"
- "l-*-233"
- "l-*-231"
- "l-*-229"
- "l-*-227"
- "l-*-225"
- "l-*-223"
- "l-*-221"
- "l-*-219"
- "l-*-217"
- "l-*-215"
- "l-*-213"
- "l-*-211"
- "l-*-209"))
- #(ribcage
-
(define-structure
-
define-expansion-accessors
-
define-expansion-constructors)
- ((top)
- (top)
- (top))
- ("l-*-47"
- "l-*-46"
- "l-*-45")))
- (hygiene
- guile)))
- 4)
- #t
- #f)
- '...
- '#(syntax-object
- ...
- ((top)
- #(ribcage () () ())
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("l-*-2265"))
- #(ribcage
- (lambda-var-list
- gen-var
- strip
- expand-lambda-case
- lambda*-formals
- expand-simple-lambda
- lambda-formals
- ellipsis?
- expand-void
-
eval-local-transformer
- expand-local-syntax
- expand-body
- expand-macro
- expand-application
- expand-expr
- expand
- syntax-type
- parse-when-list
- expand-install-global
- expand-top-sequence
- expand-sequence
- source-wrap
- wrap
- bound-id-member?
- distinct-bound-ids?
- valid-bound-ids?
- bound-id=?
- free-id=?
-
with-transformer-environment
-
transformer-environment
- resolve-identifier
-
locally-bound-identifiers
- 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
-
build-global-assignment
-
build-global-reference
- analyze-variable
-
build-lexical-assignment
-
build-lexical-reference
- build-dynlet
- build-conditional
- build-application
- build-void
- maybe-name-value!
- decorate-source
-
get-global-definition-hook
-
put-global-definition-hook
- session-id
- local-eval-hook
- top-level-eval-hook
- fx<
- fx=
- fx-
- fx+
- set-lambda-meta!
- lambda-meta
- lambda?
- make-dynlet
- make-letrec
- make-let
- make-lambda-case
- make-lambda
- make-sequence
- make-application
- make-conditional
- make-toplevel-define
- make-toplevel-set
- make-toplevel-ref
- make-module-set
- make-module-ref
- make-lexical-set
- make-lexical-ref
- make-primitive-ref
- make-const
- make-void)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-476"
- "l-*-474"
- "l-*-472"
- "l-*-470"
- "l-*-468"
- "l-*-466"
- "l-*-464"
- "l-*-462"
- "l-*-460"
- "l-*-458"
- "l-*-456"
- "l-*-454"
- "l-*-452"
- "l-*-450"
- "l-*-448"
- "l-*-446"
- "l-*-444"
- "l-*-442"
- "l-*-440"
- "l-*-438"
- "l-*-436"
- "l-*-434"
- "l-*-432"
- "l-*-430"
- "l-*-428"
- "l-*-426"
- "l-*-424"
- "l-*-422"
- "l-*-420"
- "l-*-418"
- "l-*-416"
- "l-*-414"
- "l-*-412"
- "l-*-410"
- "l-*-408"
- "l-*-406"
- "l-*-404"
- "l-*-402"
- "l-*-400"
- "l-*-399"
- "l-*-397"
- "l-*-394"
- "l-*-393"
- "l-*-392"
- "l-*-390"
- "l-*-389"
- "l-*-387"
- "l-*-385"
- "l-*-383"
- "l-*-381"
- "l-*-379"
- "l-*-377"
- "l-*-375"
- "l-*-373"
- "l-*-370"
- "l-*-368"
- "l-*-367"
- "l-*-365"
- "l-*-363"
- "l-*-361"
- "l-*-359"
- "l-*-358"
- "l-*-357"
- "l-*-356"
- "l-*-354"
- "l-*-353"
- "l-*-350"
- "l-*-348"
- "l-*-346"
- "l-*-344"
- "l-*-342"
- "l-*-340"
- "l-*-338"
- "l-*-337"
- "l-*-336"
- "l-*-334"
- "l-*-332"
- "l-*-331"
- "l-*-328"
- "l-*-327"
- "l-*-325"
- "l-*-323"
- "l-*-321"
- "l-*-319"
- "l-*-317"
- "l-*-315"
- "l-*-313"
- "l-*-311"
- "l-*-309"
- "l-*-306"
- "l-*-304"
- "l-*-302"
- "l-*-300"
- "l-*-298"
- "l-*-296"
- "l-*-294"
- "l-*-292"
- "l-*-290"
- "l-*-288"
- "l-*-286"
- "l-*-284"
- "l-*-282"
- "l-*-280"
- "l-*-278"
- "l-*-276"
- "l-*-274"
- "l-*-272"
- "l-*-270"
- "l-*-268"
- "l-*-266"
- "l-*-264"
- "l-*-262"
- "l-*-260"
- "l-*-258"
- "l-*-256"
- "l-*-255"
- "l-*-254"
- "l-*-253"
- "l-*-252"
- "l-*-250"
- "l-*-248"
- "l-*-246"
- "l-*-243"
- "l-*-241"
- "l-*-239"
- "l-*-237"
- "l-*-235"
- "l-*-233"
- "l-*-231"
- "l-*-229"
- "l-*-227"
- "l-*-225"
- "l-*-223"
- "l-*-221"
- "l-*-219"
- "l-*-217"
- "l-*-215"
- "l-*-213"
- "l-*-211"
- "l-*-209"))
- #(ribcage
- (define-structure
-
define-expansion-accessors
-
define-expansion-constructors)
- ((top) (top) (top))
- ("l-*-47"
- "l-*-46"
- "l-*-45")))
- (hygiene guile))))
- (eq? (id-var-name-4280 x-10574 '(()))
- (id-var-name-4280
- '#(syntax-object
- ...
- ((top)
- #(ribcage () () ())
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("l-*-2265"))
- #(ribcage
- (lambda-var-list
- gen-var
- strip
- expand-lambda-case
- lambda*-formals
- expand-simple-lambda
- lambda-formals
- ellipsis?
- expand-void
- eval-local-transformer
- expand-local-syntax
- expand-body
- expand-macro
- expand-application
- expand-expr
- expand
- syntax-type
- parse-when-list
- expand-install-global
- expand-top-sequence
- expand-sequence
- source-wrap
- wrap
- bound-id-member?
- distinct-bound-ids?
- valid-bound-ids?
- bound-id=?
- free-id=?
-
with-transformer-environment
- transformer-environment
- resolve-identifier
-
locally-bound-identifiers
- 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
- build-global-assignment
- build-global-reference
- analyze-variable
-
build-lexical-assignment
- build-lexical-reference
- build-dynlet
- build-conditional
- build-application
- build-void
- maybe-name-value!
- decorate-source
-
get-global-definition-hook
-
put-global-definition-hook
- session-id
- local-eval-hook
- top-level-eval-hook
- fx<
- fx=
- fx-
- fx+
- set-lambda-meta!
- lambda-meta
- lambda?
- make-dynlet
- make-letrec
- make-let
- make-lambda-case
- make-lambda
- make-sequence
- make-application
- make-conditional
- make-toplevel-define
- make-toplevel-set
- make-toplevel-ref
- make-module-set
- make-module-ref
- make-lexical-set
- make-lexical-ref
- make-primitive-ref
- make-const
- make-void)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-476"
- "l-*-474"
- "l-*-472"
- "l-*-470"
- "l-*-468"
- "l-*-466"
- "l-*-464"
- "l-*-462"
- "l-*-460"
- "l-*-458"
- "l-*-456"
- "l-*-454"
- "l-*-452"
- "l-*-450"
- "l-*-448"
- "l-*-446"
- "l-*-444"
- "l-*-442"
- "l-*-440"
- "l-*-438"
- "l-*-436"
- "l-*-434"
- "l-*-432"
- "l-*-430"
- "l-*-428"
- "l-*-426"
- "l-*-424"
- "l-*-422"
- "l-*-420"
- "l-*-418"
- "l-*-416"
- "l-*-414"
- "l-*-412"
- "l-*-410"
- "l-*-408"
- "l-*-406"
- "l-*-404"
- "l-*-402"
- "l-*-400"
- "l-*-399"
- "l-*-397"
- "l-*-394"
- "l-*-393"
- "l-*-392"
- "l-*-390"
- "l-*-389"
- "l-*-387"
- "l-*-385"
- "l-*-383"
- "l-*-381"
- "l-*-379"
- "l-*-377"
- "l-*-375"
- "l-*-373"
- "l-*-370"
- "l-*-368"
- "l-*-367"
- "l-*-365"
- "l-*-363"
- "l-*-361"
- "l-*-359"
- "l-*-358"
- "l-*-357"
- "l-*-356"
- "l-*-354"
- "l-*-353"
- "l-*-350"
- "l-*-348"
- "l-*-346"
- "l-*-344"
- "l-*-342"
- "l-*-340"
- "l-*-338"
- "l-*-337"
- "l-*-336"
- "l-*-334"
- "l-*-332"
- "l-*-331"
- "l-*-328"
- "l-*-327"
- "l-*-325"
- "l-*-323"
- "l-*-321"
- "l-*-319"
- "l-*-317"
- "l-*-315"
- "l-*-313"
- "l-*-311"
- "l-*-309"
- "l-*-306"
- "l-*-304"
- "l-*-302"
- "l-*-300"
- "l-*-298"
- "l-*-296"
- "l-*-294"
- "l-*-292"
- "l-*-290"
- "l-*-288"
- "l-*-286"
- "l-*-284"
- "l-*-282"
- "l-*-280"
- "l-*-278"
- "l-*-276"
- "l-*-274"
- "l-*-272"
- "l-*-270"
- "l-*-268"
- "l-*-266"
- "l-*-264"
- "l-*-262"
- "l-*-260"
- "l-*-258"
- "l-*-256"
- "l-*-255"
- "l-*-254"
- "l-*-253"
- "l-*-252"
- "l-*-250"
- "l-*-248"
- "l-*-246"
- "l-*-243"
- "l-*-241"
- "l-*-239"
- "l-*-237"
- "l-*-235"
- "l-*-233"
- "l-*-231"
- "l-*-229"
- "l-*-227"
- "l-*-225"
- "l-*-223"
- "l-*-221"
- "l-*-219"
- "l-*-217"
- "l-*-215"
- "l-*-213"
- "l-*-211"
- "l-*-209"))
- #(ribcage
- (define-structure
-
define-expansion-accessors
-
define-expansion-constructors)
- ((top) (top) (top))
- ("l-*-47"
- "l-*-46"
- "l-*-45")))
- (hygiene guile))
- '(())))
- #f)
- #f))
- #f))
- key-10572)
- (let ((x-10700
- (gensym
- (string-append (symbol->string 'tmp) "-"))))
- (let ((fun-exp-10705
- (let ((req-10714 (list 'tmp))
- (vars-10716 (list x-10700))
- (exp-10718
- (gen-syntax-case-10538
- (make-struct/no-tail
- (vector-ref %expanded-vtables 3)
- #f
- 'tmp
- x-10700)
- key-10572
- m-10573
- r-10540
- mod-10543)))
- (let ((body-10723
- (make-struct/no-tail
- (vector-ref %expanded-vtables 14)
- #f
- req-10714
- #f
- #f
- #f
- '()
- vars-10716
- exp-10718
- #f)))
- (make-struct/no-tail
- (vector-ref %expanded-vtables 13)
- #f
- '()
- body-10723))))
- (arg-exps-10706
- (list (call-with-values
- (lambda ()
- (syntax-type-4296
- val-10571
- r-10540
- '(())
- (let ((props-10772
- (source-properties
- (if (if (vector?
- val-10571)
- (if (=
(vector-length
-
val-10571)
- 4)
- (eq?
(vector-ref
-
val-10571
- 0)
-
'syntax-object)
- #f)
- #f)
- (vector-ref
- val-10571
- 1)
- val-10571))))
- (if (pair? props-10772)
- props-10772
- #f))
- #f
- mod-10543
- #f))
- (lambda (type-10805
- value-10806
- form-10807
- e-10808
- w-10809
- s-10810
- mod-10811)
- (expand-expr-4298
- type-10805
- value-10806
- form-10807
- e-10808
- r-10540
- w-10809
- s-10810
- mod-10811))))))
- (make-struct/no-tail
- (vector-ref %expanded-vtables 11)
- s-10542
- fun-exp-10705
- arg-exps-10706)))
- (syntax-violation
- 'syntax-case
- "invalid literals list"
- e-10544)))
- tmp-10546)
- (syntax-violation
- #f
- "source expression failed to match any pattern"
- e-10544)))))))
- (set! macroexpand
- (lambda*
- (x-13143
- #:optional
- (m-13144 'e)
- (esew-13145 '(eval)))
- (expand-top-sequence-4293
- (list x-13143)
- '()
- '((top))
- #f
- m-13144
- esew-13145
- (cons 'hygiene (module-name (current-module))))))
- (set! identifier?
- (lambda (x-13148)
- (if (if (vector? x-13148)
- (if (= (vector-length x-13148) 4)
- (eq? (vector-ref x-13148 0) 'syntax-object)
- #f)
- #f)
- (symbol? (vector-ref x-13148 1))
- #f)))
- (set! datum->syntax
- (lambda (id-13173 datum-13174)
- (let ((wrap-13179 (vector-ref id-13173 2))
- (module-13180 (vector-ref id-13173 3)))
- (vector
- 'syntax-object
- datum-13174
- wrap-13179
- module-13180))))
- (set! syntax->datum
- (lambda (x-13187) (strip-4310 x-13187 '(()))))
- (set! syntax-source
- (lambda (x-13190)
- (let ((props-13195
- (source-properties
- (if (if (vector? x-13190)
- (if (= (vector-length x-13190) 4)
- (eq? (vector-ref x-13190 0) 'syntax-object)
- #f)
- #f)
- (vector-ref x-13190 1)
- x-13190))))
- (if (pair? props-13195) props-13195 #f))))
- (set! generate-temporaries
- (lambda (ls-13218)
- (begin
- (if (not (list? ls-13218))
- (syntax-violation
- 'generate-temporaries
- "invalid argument"
- ls-13218))
- (let ((mod-13226
- (cons 'hygiene (module-name (current-module)))))
- (map (lambda (x-13227)
- (wrap-4290 (gensym "t-") '((top)) mod-13226))
- ls-13218)))))
- (set! free-identifier=?
- (lambda (x-13231 y-13232)
- (begin
- (if (not (if (if (vector? x-13231)
- (if (= (vector-length x-13231) 4)
- (eq? (vector-ref x-13231 0) 'syntax-object)
- #f)
- #f)
- (symbol? (vector-ref x-13231 1))
- #f))
- (syntax-violation
- 'free-identifier=?
- "invalid argument"
- x-13231))
- (if (not (if (if (vector? y-13232)
- (if (= (vector-length y-13232) 4)
- (eq? (vector-ref y-13232 0) 'syntax-object)
- #f)
- #f)
- (symbol? (vector-ref y-13232 1))
- #f))
- (syntax-violation
- 'free-identifier=?
- "invalid argument"
- y-13232))
- (if (eq? (if (if (vector? x-13231)
- (if (= (vector-length x-13231) 4)
- (eq? (vector-ref x-13231 0) 'syntax-object)
- #f)
- #f)
- (vector-ref x-13231 1)
- x-13231)
- (if (if (vector? y-13232)
- (if (= (vector-length y-13232) 4)
- (eq? (vector-ref y-13232 0) 'syntax-object)
- #f)
- #f)
- (vector-ref y-13232 1)
- y-13232))
- (eq? (id-var-name-4280 x-13231 '(()))
- (id-var-name-4280 y-13232 '(())))
- #f))))
- (set! bound-identifier=?
- (lambda (x-13382 y-13383)
- (begin
- (if (not (if (if (vector? x-13382)
- (if (= (vector-length x-13382) 4)
- (eq? (vector-ref x-13382 0) 'syntax-object)
- #f)
- #f)
- (symbol? (vector-ref x-13382 1))
- #f))
- (syntax-violation
- 'bound-identifier=?
- "invalid argument"
- x-13382))
- (if (not (if (if (vector? y-13383)
- (if (= (vector-length y-13383) 4)
- (eq? (vector-ref y-13383 0) 'syntax-object)
- #f)
- #f)
- (symbol? (vector-ref y-13383 1))
- #f))
- (syntax-violation
- 'bound-identifier=?
- "invalid argument"
- y-13383))
- (if (if (if (vector? x-13382)
- (if (= (vector-length x-13382) 4)
- (eq? (vector-ref x-13382 0) 'syntax-object)
- #f)
- #f)
- (if (vector? y-13383)
- (if (= (vector-length y-13383) 4)
- (eq? (vector-ref y-13383 0) 'syntax-object)
- #f)
- #f)
- #f)
- (if (eq? (vector-ref x-13382 1)
- (vector-ref y-13383 1))
- (same-marks?-4279
- (car (vector-ref x-13382 2))
- (car (vector-ref y-13383 2)))
- #f)
- (eq? x-13382 y-13383)))))
- (set! syntax-violation
- (lambda*
- (who-13516
- message-13517
- form-13518
- #:optional
- (subform-13519 #f))
- (begin
- (if (not (if (not who-13516)
- (not who-13516)
- (let ((t-13537 (string? who-13516)))
- (if t-13537 t-13537 (symbol? who-13516)))))
- (syntax-violation
- 'syntax-violation
- "invalid argument"
- who-13516))
- (if (not (string? message-13517))
- (syntax-violation
- 'syntax-violation
- "invalid argument"
- message-13517))
- (throw 'syntax-error
- who-13516
- message-13517
- (let ((t-13568
- (let ((props-13627
- (source-properties
- (if (if (vector? subform-13519)
- (if (= (vector-length subform-13519)
- 4)
- (eq? (vector-ref subform-13519 0)
- 'syntax-object)
- #f)
- #f)
- (vector-ref subform-13519 1)
- subform-13519))))
- (if (pair? props-13627) props-13627 #f))))
- (if t-13568
- t-13568
- (let ((props-13600
- (source-properties
- (if (if (vector? form-13518)
- (if (= (vector-length form-13518) 4)
- (eq? (vector-ref form-13518 0)
- 'syntax-object)
- #f)
- #f)
- (vector-ref form-13518 1)
- form-13518))))
- (if (pair? props-13600) props-13600 #f))))
- (strip-4310 form-13518 '(()))
- (if subform-13519
- (strip-4310 subform-13519 '(()))
- #f)))))
- (letrec*
- ((syntax-local-binding-13655
- (lambda (id-13788)
- (begin
- (if (not (if (if (vector? id-13788)
- (if (= (vector-length id-13788) 4)
- (eq? (vector-ref id-13788 0) 'syntax-object)
- #f)
- #f)
- (symbol? (vector-ref id-13788 1))
- #f))
- (syntax-violation
- 'syntax-local-binding
- "invalid argument"
- id-13788))
- ((fluid-ref transformer-environment-4283)
- (lambda (e-13828
- r-13829
- w-13830
- s-13831
- rib-13832
- mod-13833)
+ (list x)
+ '()
+ (gen-syntax-case
+ (build-lexical-reference 'value #f 'tmp x)
+ key
+ m
+ r
+ mod))
+ (list (expand val r '(()) mod))))
+ (syntax-violation 'syntax-case "invalid literals list"
e)))
+ tmp)
+ (syntax-violation
+ #f
+ "source expression failed to match any pattern"
+ tmp-1))))))
+ (set! macroexpand
+ (lambda* (x #:optional (m 'e) (esew '(eval)))
+ (expand-top-sequence
+ (list x)
+ '()
+ '((top))
+ #f
+ m
+ esew
+ (cons 'hygiene (module-name (current-module))))))
+ (set! identifier? (lambda (x) (nonsymbol-id? x)))
+ (set! datum->syntax
+ (lambda (id datum)
+ (make-syntax-object
+ datum
+ (syntax-object-wrap id)
+ (syntax-object-module id))))
+ (set! syntax->datum (lambda (x) (strip x '(()))))
+ (set! syntax-source (lambda (x) (source-annotation x)))
+ (set! generate-temporaries
+ (lambda (ls)
+ (let ((x ls))
+ (if (not (list? x))
+ (syntax-violation 'generate-temporaries "invalid argument" x)))
+ (let ((mod (cons 'hygiene (module-name (current-module)))))
+ (map (lambda (x) (wrap (gensym "t-") '((top)) mod)) ls))))
+ (set! free-identifier=?
+ (lambda (x y)
+ (let ((x x))
+ (if (not (nonsymbol-id? x))
+ (syntax-violation 'free-identifier=? "invalid argument" x)))
+ (let ((x y))
+ (if (not (nonsymbol-id? x))
+ (syntax-violation 'free-identifier=? "invalid argument" x)))
+ (free-id=? x y)))
+ (set! bound-identifier=?
+ (lambda (x y)
+ (let ((x x))
+ (if (not (nonsymbol-id? x))
+ (syntax-violation 'bound-identifier=? "invalid argument" x)))
+ (let ((x y))
+ (if (not (nonsymbol-id? x))
+ (syntax-violation 'bound-identifier=? "invalid argument" x)))
+ (bound-id=? x y)))
+ (set! syntax-violation
+ (lambda* (who message form #:optional (subform #f))
+ (let ((x who))
+ (if (not (let ((x x)) (or (not x) (string? x) (symbol? x))))
+ (syntax-violation 'syntax-violation "invalid argument" x)))
+ (let ((x message))
+ (if (not (string? x))
+ (syntax-violation 'syntax-violation "invalid argument" x)))
+ (throw 'syntax-error
+ who
+ message
+ (or (source-annotation subform) (source-annotation form))
+ (strip form '(()))
+ (and subform (strip subform '(()))))))
+ (letrec*
+ ((syntax-module
+ (lambda (id)
+ (let ((x id))
+ (if (not (nonsymbol-id? x))
+ (syntax-violation 'syntax-module "invalid argument" x)))
+ (cdr (syntax-object-module id))))
+ (syntax-local-binding
+ (lambda (id)
+ (let ((x id))
+ (if (not (nonsymbol-id? x))
+ (syntax-violation 'syntax-local-binding "invalid argument" x)))
+ (with-transformer-environment
+ (lambda (e r w s rib mod)
+ (letrec*
+ ((strip-anti-mark
+ (lambda (w)
+ (let ((ms (car w)) (s (cdr w)))
+ (if (and (pair? ms) (eq? (car ms) #f))
+ (cons (cdr ms) (if rib (cons rib (cdr s)) (cdr s)))
+ (cons ms (if rib (cons rib s) s)))))))
+ (call-with-values
+ (lambda ()
+ (resolve-identifier
+ (syntax-object-expression id)
+ (strip-anti-mark (syntax-object-wrap id))
+ r
+ (syntax-object-module id)))
+ (lambda (type value mod)
+ (let ((key type))
+ (cond ((memv key '(lexical)) (values 'lexical value))
+ ((memv key '(macro)) (values 'macro value))
+ ((memv key '(syntax)) (values 'pattern-variable
value))
+ ((memv key '(displaced-lexical)) (values
'displaced-lexical #f))
+ ((memv key '(global)) (values 'global (cons value
(cdr mod))))
+ (else (values 'other #f)))))))))))
+ (syntax-locally-bound-identifiers
+ (lambda (id)
+ (let ((x id))
+ (if (not (nonsymbol-id? x))
+ (syntax-violation
+ 'syntax-locally-bound-identifiers
+ "invalid argument"
+ x)))
+ (locally-bound-identifiers
+ (syntax-object-wrap id)
+ (syntax-object-module id)))))
+ (define! 'syntax-module syntax-module)
+ (define! 'syntax-local-binding syntax-local-binding)
+ (define!
+ 'syntax-locally-bound-identifiers
+ syntax-locally-bound-identifiers))
+ (letrec*
+ ((match-each
+ (lambda (e p w mod)
+ (cond ((pair? e)
+ (let ((first (match (car e) p w '() mod)))
+ (and first
+ (let ((rest (match-each (cdr e) p w mod)))
+ (and rest (cons first rest))))))
+ ((null? e) '())
+ ((syntax-object? e)
+ (match-each
+ (syntax-object-expression e)
+ p
+ (join-wraps w (syntax-object-wrap e))
+ (syntax-object-module e)))
+ (else #f))))
+ (match-each+
+ (lambda (e x-pat y-pat z-pat w r mod)
+ (let f ((e e) (w w))
+ (cond ((pair? e)
(call-with-values
- (lambda ()
- (let ((id-13836 (vector-ref id-13788 1))
- (w-13837
- (let ((w-13848 (vector-ref id-13788 2)))
- (let ((ms-13849 (car w-13848))
- (s-13850 (cdr w-13848)))
- (if (if (pair? ms-13849)
- (eq? (car ms-13849) #f)
- #f)
- (cons (cdr ms-13849)
- (if rib-13832
- (cons rib-13832 (cdr s-13850))
- (cdr s-13850)))
- (cons ms-13849
- (if rib-13832
- (cons rib-13832 s-13850)
- s-13850))))))
- (mod-13839 (vector-ref id-13788 3)))
- (let ((n-13842 (id-var-name-4280 id-13836 w-13837)))
- (if (symbol? n-13842)
- (let ((mod-13856
- (if (if (vector? id-13836)
- (if (= (vector-length id-13836) 4)
- (eq? (vector-ref id-13836 0)
- 'syntax-object)
- #f)
- #f)
- (vector-ref id-13836 3)
- mod-13839)))
- (let ((b-13857
- (let ((t-13858
- (get-global-definition-hook-4224
- n-13842
- mod-13856)))
- (if t-13858 t-13858 '(global)))))
- (if (eq? (car b-13857) 'global)
- (values 'global n-13842 mod-13856)
- (values
- (car b-13857)
- (cdr b-13857)
- mod-13856))))
- (if (string? n-13842)
- (let ((mod-13884
- (if (if (vector? id-13836)
- (if (= (vector-length id-13836) 4)
- (eq? (vector-ref id-13836 0)
- 'syntax-object)
- #f)
- #f)
- (vector-ref id-13836 3)
- mod-13839)))
- (let ((b-13885
- (let ((t-13886
- (assq-ref r-13829 n-13842)))
- (if t-13886
- t-13886
- '(displaced-lexical)))))
- (values
- (car b-13885)
- (cdr b-13885)
- mod-13884)))
- (error "unexpected id-var-name"
- id-13836
- w-13837
- n-13842))))))
- (lambda (type-13899 value-13900 mod-13901)
- (if (eqv? type-13899 'lexical)
- (values 'lexical value-13900)
- (if (eqv? type-13899 'macro)
- (values 'macro value-13900)
- (if (eqv? type-13899 'syntax)
- (values 'pattern-variable value-13900)
- (if (eqv? type-13899 'displaced-lexical)
- (values 'displaced-lexical #f)
- (if (eqv? type-13899 'global)
- (values
- 'global
- (cons value-13900 (cdr mod-13901)))
- (values 'other #f)))))))))))))
- (syntax-locally-bound-identifiers-13656
- (lambda (id-13923)
- (begin
- (if (not (if (if (vector? id-13923)
- (if (= (vector-length id-13923) 4)
- (eq? (vector-ref id-13923 0) 'syntax-object)
- #f)
- #f)
- (symbol? (vector-ref id-13923 1))
- #f))
- (syntax-violation
- 'syntax-locally-bound-identifiers
- "invalid argument"
- id-13923))
- (locally-bound-identifiers-4281
- (vector-ref id-13923 2)
- (vector-ref id-13923 3))))))
- (begin
- (define!
- 'syntax-module
- (lambda (id-13658)
- (begin
- (if (not (if (if (vector? id-13658)
- (if (= (vector-length id-13658) 4)
- (eq? (vector-ref id-13658 0) 'syntax-object)
- #f)
- #f)
- (symbol? (vector-ref id-13658 1))
- #f))
- (syntax-violation
- 'syntax-module
- "invalid argument"
- id-13658))
- (cdr (vector-ref id-13658 3)))))
- (define!
- 'syntax-local-binding
- syntax-local-binding-13655)
- (define!
- 'syntax-locally-bound-identifiers
- syntax-locally-bound-identifiers-13656)))
- (letrec*
- ((match-each-14030
- (lambda (e-14617 p-14618 w-14619 mod-14620)
- (if (pair? e-14617)
- (let ((first-14621
- (match-14036
- (car e-14617)
- p-14618
- w-14619
- '()
- mod-14620)))
- (if first-14621
- (let ((rest-14624
- (match-each-14030
- (cdr e-14617)
- p-14618
- w-14619
- mod-14620)))
- (if rest-14624 (cons first-14621 rest-14624) #f))
- #f))
- (if (null? e-14617)
- '()
- (if (if (vector? e-14617)
- (if (= (vector-length e-14617) 4)
- (eq? (vector-ref e-14617 0) 'syntax-object)
- #f)
- #f)
- (match-each-14030
- (vector-ref e-14617 1)
- p-14618
- (join-wraps-4277 w-14619 (vector-ref e-14617 2))
- (vector-ref e-14617 3))
- #f)))))
- (match-each-any-14032
- (lambda (e-14652 w-14653 mod-14654)
- (if (pair? e-14652)
- (let ((l-14655
- (match-each-any-14032
- (cdr e-14652)
- w-14653
- mod-14654)))
- (if l-14655
- (cons (wrap-4290 (car e-14652) w-14653 mod-14654)
- l-14655)
- #f))
- (if (null? e-14652)
- '()
- (if (if (vector? e-14652)
- (if (= (vector-length e-14652) 4)
- (eq? (vector-ref e-14652 0) 'syntax-object)
- #f)
- #f)
- (match-each-any-14032
- (vector-ref e-14652 1)
- (join-wraps-4277 w-14653 (vector-ref e-14652 2))
- mod-14654)
- #f)))))
- (match-empty-14033
- (lambda (p-14679 r-14680)
- (if (null? p-14679)
- r-14680
- (if (eq? p-14679 '_)
- r-14680
- (if (eq? p-14679 'any)
- (cons '() r-14680)
- (if (pair? p-14679)
- (match-empty-14033
- (car p-14679)
- (match-empty-14033 (cdr p-14679) r-14680))
- (if (eq? p-14679 'each-any)
- (cons '() r-14680)
- (let ((key-14681 (vector-ref p-14679 0)))
- (if (eqv? key-14681 'each)
- (match-empty-14033
- (vector-ref p-14679 1)
- r-14680)
- (if (eqv? key-14681 'each+)
- (match-empty-14033
- (vector-ref p-14679 1)
- (match-empty-14033
- (reverse (vector-ref p-14679 2))
- (match-empty-14033
- (vector-ref p-14679 3)
- r-14680)))
- (if (if (eqv? key-14681 'free-id)
- #t
- (eqv? key-14681 'atom))
- r-14680
- (if (eqv? key-14681 'vector)
- (match-empty-14033
- (vector-ref p-14679 1)
- r-14680)))))))))))))
- (combine-14034
- (lambda (r*-14700 r-14701)
- (if (null? (car r*-14700))
- r-14701
- (cons (map car r*-14700)
- (combine-14034 (map cdr r*-14700) r-14701)))))
- (match*-14035
- (lambda (e-14065 p-14066 w-14067 r-14068 mod-14069)
- (if (null? p-14066)
- (if (null? e-14065) r-14068 #f)
- (if (pair? p-14066)
- (if (pair? e-14065)
- (match-14036
- (car e-14065)
- (car p-14066)
- w-14067
- (match-14036
- (cdr e-14065)
- (cdr p-14066)
- w-14067
- r-14068
- mod-14069)
- mod-14069)
- #f)
- (if (eq? p-14066 'each-any)
- (let ((l-14074
- (match-each-any-14032 e-14065 w-14067 mod-14069)))
- (if l-14074 (cons l-14074 r-14068) #f))
- (let ((key-14079 (vector-ref p-14066 0)))
- (if (eqv? key-14079 'each)
- (if (null? e-14065)
- (match-empty-14033
- (vector-ref p-14066 1)
- r-14068)
- (let ((l-14086
- (match-each-14030
- e-14065
- (vector-ref p-14066 1)
- w-14067
- mod-14069)))
- (if l-14086
- (letrec*
- ((collect-14089
- (lambda (l-14140)
- (if (null? (car l-14140))
- r-14068
- (cons (map car l-14140)
- (collect-14089
- (map cdr l-14140)))))))
- (collect-14089 l-14086))
- #f)))
- (if (eqv? key-14079 'each+)
+ (lambda () (f (cdr e) w))
+ (lambda (xr* y-pat r)
+ (if r
+ (if (null? y-pat)
+ (let ((xr (match (car e) x-pat w '() mod)))
+ (if xr (values (cons xr xr*) y-pat r) (values #f
#f #f)))
+ (values '() (cdr y-pat) (match (car e) (car y-pat) w
r mod)))
+ (values #f #f #f)))))
+ ((syntax-object? e)
+ (f (syntax-object-expression e) (join-wraps w e)))
+ (else (values '() y-pat (match e z-pat w r mod)))))))
+ (match-each-any
+ (lambda (e w mod)
+ (cond ((pair? e)
+ (let ((l (match-each-any (cdr e) w mod)))
+ (and l (cons (wrap (car e) w mod) l))))
+ ((null? e) '())
+ ((syntax-object? e)
+ (match-each-any
+ (syntax-object-expression e)
+ (join-wraps w (syntax-object-wrap e))
+ mod))
+ (else #f))))
+ (match-empty
+ (lambda (p r)
+ (cond ((null? p) r)
+ ((eq? p '_) r)
+ ((eq? p 'any) (cons '() r))
+ ((pair? p) (match-empty (car p) (match-empty (cdr p) r)))
+ ((eq? p 'each-any) (cons '() r))
+ (else
+ (let ((key (vector-ref p 0)))
+ (cond ((memv key '(each)) (match-empty (vector-ref p 1) r))
+ ((memv key '(each+))
+ (match-empty
+ (vector-ref p 1)
+ (match-empty
+ (reverse (vector-ref p 2))
+ (match-empty (vector-ref p 3) r))))
+ ((memv key '(free-id atom)) r)
+ ((memv key '(vector)) (match-empty (vector-ref p 1)
r))))))))
+ (combine
+ (lambda (r* r)
+ (if (null? (car r*)) r (cons (map car r*) (combine (map cdr r*) r)))))
+ (match*
+ (lambda (e p w r mod)
+ (cond ((null? p) (and (null? e) r))
+ ((pair? p)
+ (and (pair? e)
+ (match (car e) (car p) w (match (cdr e) (cdr p) w r mod)
mod)))
+ ((eq? p 'each-any)
+ (let ((l (match-each-any e w mod))) (and l (cons l r))))
+ (else
+ (let ((key (vector-ref p 0)))
+ (cond ((memv key '(each))
+ (if (null? e)
+ (match-empty (vector-ref p 1) r)
+ (let ((l (match-each e (vector-ref p 1) w mod)))
+ (and l
+ (let collect ((l l))
+ (if (null? (car l)) r (cons (map car l)
(collect (map cdr l)))))))))
+ ((memv key '(each+))
(call-with-values
(lambda ()
- (let ((x-pat-14149 (vector-ref p-14066 1))
- (y-pat-14150 (vector-ref p-14066 2))
- (z-pat-14151 (vector-ref p-14066 3)))
- (letrec*
- ((f-14155
- (lambda (e-14157 w-14158)
- (if (pair? e-14157)
- (call-with-values
- (lambda ()
- (f-14155 (cdr e-14157) w-14158))
- (lambda (xr*-14159
- y-pat-14160
- r-14161)
- (if r-14161
- (if (null? y-pat-14160)
- (let ((xr-14162
- (match-14036
- (car e-14157)
- x-pat-14149
- w-14158
- '()
- mod-14069)))
- (if xr-14162
- (values
- (cons xr-14162 xr*-14159)
- y-pat-14160
- r-14161)
- (values #f #f #f)))
- (values
- '()
- (cdr y-pat-14160)
- (match-14036
- (car e-14157)
- (car y-pat-14160)
- w-14158
- r-14161
- mod-14069)))
- (values #f #f #f))))
- (if (if (vector? e-14157)
- (if (= (vector-length e-14157) 4)
- (eq? (vector-ref e-14157 0)
- 'syntax-object)
- #f)
- #f)
- (f-14155
- (vector-ref e-14157 1)
- (join-wraps-4277 w-14158 e-14157))
- (values
- '()
- y-pat-14150
- (match-14036
- e-14157
- z-pat-14151
- w-14158
- r-14068
- mod-14069)))))))
- (f-14155 e-14065 w-14067))))
- (lambda (xr*-14188 y-pat-14189 r-14190)
- (if r-14190
- (if (null? y-pat-14189)
- (if (null? xr*-14188)
- (match-empty-14033
- (vector-ref p-14066 1)
- r-14190)
- (combine-14034 xr*-14188 r-14190))
- #f)
- #f)))
- (if (eqv? key-14079 'free-id)
- (if (if (symbol? e-14065)
- #t
- (if (if (vector? e-14065)
- (if (= (vector-length e-14065) 4)
- (eq? (vector-ref e-14065 0)
- 'syntax-object)
- #f)
- #f)
- (symbol? (vector-ref e-14065 1))
- #f))
- (if (let ((i-14521
- (wrap-4290 e-14065 w-14067 mod-14069))
- (j-14522 (vector-ref p-14066 1)))
- (if (eq? (if (if (vector? i-14521)
- (if (= (vector-length
- i-14521)
- 4)
- (eq? (vector-ref i-14521 0)
- 'syntax-object)
- #f)
- #f)
- (vector-ref i-14521 1)
- i-14521)
- (if (if (vector? j-14522)
- (if (= (vector-length
- j-14522)
- 4)
- (eq? (vector-ref j-14522 0)
- 'syntax-object)
- #f)
- #f)
- (vector-ref j-14522 1)
- j-14522))
- (eq? (id-var-name-4280 i-14521 '(()))
- (id-var-name-4280 j-14522 '(())))
- #f))
- r-14068
- #f)
- #f)
- (if (eqv? key-14079 'atom)
- (if (equal?
- (vector-ref p-14066 1)
- (strip-4310 e-14065 w-14067))
- r-14068
- #f)
- (if (eqv? key-14079 'vector)
- (if (vector? e-14065)
- (match-14036
- (vector->list e-14065)
- (vector-ref p-14066 1)
- w-14067
- r-14068
- mod-14069)
- #f))))))))))))
- (match-14036
- (lambda (e-14582 p-14583 w-14584 r-14585 mod-14586)
- (if (not r-14585)
- #f
- (if (eq? p-14583 '_)
- r-14585
- (if (eq? p-14583 'any)
- (cons (wrap-4290 e-14582 w-14584 mod-14586)
- r-14585)
- (if (if (vector? e-14582)
- (if (= (vector-length e-14582) 4)
- (eq? (vector-ref e-14582 0) 'syntax-object)
- #f)
- #f)
- (match*-14035
- (vector-ref e-14582 1)
- p-14583
- (join-wraps-4277 w-14584 (vector-ref e-14582 2))
- r-14585
- (vector-ref e-14582 3))
- (match*-14035
- e-14582
- p-14583
- w-14584
- r-14585
- mod-14586))))))))
- (set! $sc-dispatch
- (lambda (e-14037 p-14038)
- (if (eq? p-14038 'any)
- (list e-14037)
- (if (eq? p-14038 '_)
- '()
- (if (if (vector? e-14037)
- (if (= (vector-length e-14037) 4)
- (eq? (vector-ref e-14037 0) 'syntax-object)
- #f)
- #f)
- (match*-14035
- (vector-ref e-14037 1)
- p-14038
- (vector-ref e-14037 2)
- '()
- (vector-ref e-14037 3))
- (match*-14035 e-14037 p-14038 '(()) '() #f))))))))))
+ (match-each+
+ e
+ (vector-ref p 1)
+ (vector-ref p 2)
+ (vector-ref p 3)
+ w
+ r
+ mod))
+ (lambda (xr* y-pat r)
+ (and r
+ (null? y-pat)
+ (if (null? xr*) (match-empty (vector-ref p
1) r) (combine xr* r))))))
+ ((memv key '(free-id))
+ (and (id? e) (free-id=? (wrap e w mod) (vector-ref p
1)) r))
+ ((memv key '(atom)) (and (equal? (vector-ref p 1)
(strip e w)) r))
+ ((memv key '(vector))
+ (and (vector? e) (match (vector->list e) (vector-ref
p 1) w r mod)))))))))
+ (match (lambda (e p w r mod)
+ (cond ((not r) #f)
+ ((eq? p '_) r)
+ ((eq? p 'any) (cons (wrap e w mod) r))
+ ((syntax-object? e)
+ (match*
+ (syntax-object-expression e)
+ p
+ (join-wraps w (syntax-object-wrap e))
+ r
+ (syntax-object-module e)))
+ (else (match* e p w r mod))))))
+ (set! $sc-dispatch
+ (lambda (e p)
+ (cond ((eq? p 'any) (list e))
+ ((eq? p '_) '())
+ ((syntax-object? e)
+ (match*
+ (syntax-object-expression e)
+ p
+ (syntax-object-wrap e)
+ '()
+ (syntax-object-module e)))
+ (else (match* e p '(()) '() #f)))))))
(define with-syntax
(make-syntax-transformer
'with-syntax
'macro
- (lambda (x-25194)
- (let ((tmp-25196
- ($sc-dispatch x-25194 '(_ () any . each-any))))
- (if tmp-25196
- (@apply
- (lambda (e1-25200 e2-25201)
- (cons '#(syntax-object
- let
- ((top)
- #(ribcage
- #(e1 e2)
- #((top) (top))
- #("l-*-25167" "l-*-25168"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("l-*-25164")))
- (hygiene guile))
- (cons '() (cons e1-25200 e2-25201))))
- tmp-25196)
- (let ((tmp-25202
- ($sc-dispatch
- x-25194
- '(_ ((any any)) any . each-any))))
- (if tmp-25202
- (@apply
- (lambda (out-25206 in-25207 e1-25208 e2-25209)
- (list '#(syntax-object
- syntax-case
- ((top)
- #(ribcage
- #(out in e1 e2)
- #((top) (top) (top) (top))
- #("l-*-25173"
- "l-*-25174"
- "l-*-25175"
- "l-*-25176"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("l-*-25164")))
- (hygiene guile))
- in-25207
- '()
- (list out-25206
- (cons '#(syntax-object
- let
- ((top)
- #(ribcage
- #(out in e1 e2)
- #((top) (top) (top) (top))
- #("l-*-25173"
- "l-*-25174"
- "l-*-25175"
- "l-*-25176"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("l-*-25164")))
- (hygiene guile))
- (cons '() (cons e1-25208 e2-25209))))))
- tmp-25202)
- (let ((tmp-25210
- ($sc-dispatch
- x-25194
- '(_ #(each (any any)) any . each-any))))
- (if tmp-25210
- (@apply
- (lambda (out-25214 in-25215 e1-25216 e2-25217)
- (list '#(syntax-object
- syntax-case
- ((top)
- #(ribcage
- #(out in e1 e2)
- #((top) (top) (top) (top))
- #("l-*-25183"
- "l-*-25184"
- "l-*-25185"
- "l-*-25186"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("l-*-25164")))
- (hygiene guile))
- (cons '#(syntax-object
- list
- ((top)
- #(ribcage
- #(out in e1 e2)
- #((top) (top) (top) (top))
- #("l-*-25183"
- "l-*-25184"
- "l-*-25185"
- "l-*-25186"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("l-*-25164")))
- (hygiene guile))
- in-25215)
- '()
- (list out-25214
- (cons '#(syntax-object
- let
- ((top)
- #(ribcage
- #(out in e1 e2)
- #((top) (top) (top) (top))
- #("l-*-25183"
- "l-*-25184"
- "l-*-25185"
- "l-*-25186"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("l-*-25164")))
- (hygiene guile))
- (cons '() (cons e1-25216 e2-25217))))))
- tmp-25210)
- (syntax-violation
- #f
- "source expression failed to match any pattern"
- x-25194))))))))))
+ (lambda (x)
+ (let ((tmp x))
+ (let ((tmp-1 ($sc-dispatch tmp '(_ () any . each-any))))
+ (if tmp-1
+ (apply (lambda (e1 e2)
+ (cons '#(syntax-object let ((top)) (hygiene guile))
+ (cons '() (cons e1 e2))))
+ tmp-1)
+ (let ((tmp-1 ($sc-dispatch tmp '(_ ((any any)) any . each-any))))
+ (if tmp-1
+ (apply (lambda (out in e1 e2)
+ (list '#(syntax-object syntax-case ((top)) (hygiene
guile))
+ in
+ '()
+ (list out
+ (cons '#(syntax-object let ((top))
(hygiene guile))
+ (cons '() (cons e1 e2))))))
+ tmp-1)
+ (let ((tmp-1 ($sc-dispatch tmp '(_ #(each (any any)) any .
each-any))))
+ (if tmp-1
+ (apply (lambda (out in e1 e2)
+ (list '#(syntax-object syntax-case ((top))
(hygiene guile))
+ (cons '#(syntax-object list ((top))
(hygiene guile)) in)
+ '()
+ (list out
+ (cons '#(syntax-object let ((top))
(hygiene guile))
+ (cons '() (cons e1 e2))))))
+ tmp-1)
+ (syntax-violation
+ #f
+ "source expression failed to match any pattern"
+ tmp)))))))))))
(define syntax-rules
(make-syntax-transformer
'syntax-rules
'macro
- (lambda (x-25271)
- (let ((tmp-25273
- ($sc-dispatch
- x-25271
- '(_ each-any . #(each ((any . any) any))))))
- (if tmp-25273
- (@apply
- (lambda (k-25277
- keyword-25278
- pattern-25279
- template-25280)
- (list '#(syntax-object
- lambda
- ((top)
- #(ribcage
- #(k keyword pattern template)
- #((top) (top) (top) (top))
- #("l-*-25234"
- "l-*-25235"
- "l-*-25236"
- "l-*-25237"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("l-*-25231")))
- (hygiene guile))
- '(#(syntax-object
- x
- ((top)
- #(ribcage
- #(k keyword pattern template)
- #((top) (top) (top) (top))
- #("l-*-25234"
- "l-*-25235"
- "l-*-25236"
- "l-*-25237"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("l-*-25231")))
- (hygiene guile)))
- (vector
- '(#(syntax-object
- macro-type
- ((top)
- #(ribcage
- #(k keyword pattern template)
- #((top) (top) (top) (top))
- #("l-*-25234"
- "l-*-25235"
- "l-*-25236"
- "l-*-25237"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("l-*-25231")))
- (hygiene guile))
- .
- #(syntax-object
- syntax-rules
- ((top)
- #(ribcage
- #(k keyword pattern template)
- #((top) (top) (top) (top))
- #("l-*-25234"
- "l-*-25235"
- "l-*-25236"
- "l-*-25237"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("l-*-25231")))
- (hygiene guile)))
- (cons '#(syntax-object
- patterns
- ((top)
- #(ribcage
- #(k keyword pattern template)
- #((top) (top) (top) (top))
- #("l-*-25234"
- "l-*-25235"
- "l-*-25236"
- "l-*-25237"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("l-*-25231")))
- (hygiene guile))
- pattern-25279))
- (cons '#(syntax-object
- syntax-case
- ((top)
- #(ribcage
- #(k keyword pattern template)
- #((top) (top) (top) (top))
- #("l-*-25234"
- "l-*-25235"
- "l-*-25236"
- "l-*-25237"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("l-*-25231")))
- (hygiene guile))
- (cons '#(syntax-object
- x
- ((top)
- #(ribcage
- #(k keyword pattern template)
- #((top) (top) (top) (top))
- #("l-*-25234"
- "l-*-25235"
- "l-*-25236"
- "l-*-25237"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("l-*-25231")))
- (hygiene guile))
- (cons k-25277
- (map (lambda (tmp-25245-25281
- tmp-25244-25282)
- (list (cons '#(syntax-object
- dummy
- ((top)
- #(ribcage
- #(k
- keyword
- pattern
- template)
- #((top)
- (top)
- (top)
- (top))
- #("l-*-25234"
- "l-*-25235"
- "l-*-25236"
- "l-*-25237"))
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(x)
- #((top))
- #("l-*-25231")))
- (hygiene guile))
- tmp-25244-25282)
- (list '#(syntax-object
- syntax
- ((top)
- #(ribcage
- #(k
- keyword
- pattern
- template)
- #((top)
- (top)
- (top)
- (top))
- #("l-*-25234"
- "l-*-25235"
- "l-*-25236"
- "l-*-25237"))
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(x)
- #((top))
- #("l-*-25231")))
- (hygiene guile))
- tmp-25245-25281)))
- template-25280
- pattern-25279))))))
- tmp-25273)
- (let ((tmp-25283
- ($sc-dispatch
- x-25271
- '(_ each-any any . #(each ((any . any) any))))))
- (if (if tmp-25283
- (@apply
- (lambda (k-25287
- docstring-25288
- keyword-25289
- pattern-25290
- template-25291)
- (string? (syntax->datum docstring-25288)))
- tmp-25283)
- #f)
- (@apply
- (lambda (k-25292
- docstring-25293
- keyword-25294
- pattern-25295
- template-25296)
- (list '#(syntax-object
- lambda
- ((top)
- #(ribcage
- #(k docstring keyword pattern template)
- #((top) (top) (top) (top) (top))
- #("l-*-25257"
- "l-*-25258"
- "l-*-25259"
- "l-*-25260"
- "l-*-25261"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("l-*-25231")))
- (hygiene guile))
- '(#(syntax-object
- x
- ((top)
- #(ribcage
- #(k docstring keyword pattern template)
- #((top) (top) (top) (top) (top))
- #("l-*-25257"
- "l-*-25258"
- "l-*-25259"
- "l-*-25260"
- "l-*-25261"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("l-*-25231")))
- (hygiene guile)))
- docstring-25293
- (vector
- '(#(syntax-object
- macro-type
- ((top)
- #(ribcage
- #(k docstring keyword pattern template)
- #((top) (top) (top) (top) (top))
- #("l-*-25257"
- "l-*-25258"
- "l-*-25259"
- "l-*-25260"
- "l-*-25261"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("l-*-25231")))
- (hygiene guile))
- .
- #(syntax-object
- syntax-rules
- ((top)
- #(ribcage
- #(k docstring keyword pattern template)
- #((top) (top) (top) (top) (top))
- #("l-*-25257"
- "l-*-25258"
- "l-*-25259"
- "l-*-25260"
- "l-*-25261"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("l-*-25231")))
- (hygiene guile)))
- (cons '#(syntax-object
- patterns
- ((top)
- #(ribcage
- #(k docstring keyword pattern template)
- #((top) (top) (top) (top) (top))
- #("l-*-25257"
- "l-*-25258"
- "l-*-25259"
- "l-*-25260"
- "l-*-25261"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("l-*-25231")))
- (hygiene guile))
- pattern-25295))
- (cons '#(syntax-object
- syntax-case
- ((top)
- #(ribcage
- #(k docstring keyword pattern template)
- #((top) (top) (top) (top) (top))
- #("l-*-25257"
- "l-*-25258"
- "l-*-25259"
- "l-*-25260"
- "l-*-25261"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("l-*-25231")))
- (hygiene guile))
- (cons '#(syntax-object
- x
- ((top)
- #(ribcage
- #(k
- docstring
- keyword
- pattern
- template)
- #((top) (top) (top) (top) (top))
- #("l-*-25257"
- "l-*-25258"
- "l-*-25259"
- "l-*-25260"
- "l-*-25261"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("l-*-25231")))
- (hygiene guile))
- (cons k-25292
- (map (lambda (tmp-25270-25297
- tmp-25269-25298)
- (list (cons '#(syntax-object
- dummy
- ((top)
- #(ribcage
- #(k
- docstring
- keyword
- pattern
- template)
- #((top)
- (top)
- (top)
- (top)
- (top))
-
#("l-*-25257"
-
"l-*-25258"
-
"l-*-25259"
-
"l-*-25260"
-
"l-*-25261"))
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(x)
- #((top))
-
#("l-*-25231")))
- (hygiene
- guile))
- tmp-25269-25298)
- (list '#(syntax-object
- syntax
- ((top)
- #(ribcage
- #(k
- docstring
- keyword
- pattern
- template)
- #((top)
- (top)
- (top)
- (top)
- (top))
-
#("l-*-25257"
-
"l-*-25258"
-
"l-*-25259"
-
"l-*-25260"
-
"l-*-25261"))
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(x)
- #((top))
-
#("l-*-25231")))
- (hygiene
- guile))
- tmp-25270-25297)))
- template-25296
- pattern-25295))))))
- tmp-25283)
- (syntax-violation
- #f
- "source expression failed to match any pattern"
- x-25271))))))))
+ (lambda (xx)
+ (let ((tmp-1 xx))
+ (let ((tmp ($sc-dispatch tmp-1 '(_ each-any . #(each ((any . any)
any))))))
+ (if tmp
+ (apply (lambda (k keyword pattern template)
+ (list '#(syntax-object lambda ((top)) (hygiene guile))
+ '(#(syntax-object x ((top)) (hygiene guile)))
+ (vector
+ '(#(syntax-object macro-type ((top)) (hygiene
guile))
+ .
+ #(syntax-object syntax-rules ((top)) (hygiene
guile)))
+ (cons '#(syntax-object patterns ((top)) (hygiene
guile)) pattern))
+ (cons '#(syntax-object syntax-case ((top)) (hygiene
guile))
+ (cons '#(syntax-object x ((top)) (hygiene
guile))
+ (cons k
+ (map (lambda (tmp-1 tmp)
+ (list (cons
'#(syntax-object dummy ((top)) (hygiene guile)) tmp)
+ (list
'#(syntax-object syntax ((top)) (hygiene guile))
+ tmp-1)))
+ template
+ pattern))))))
+ tmp)
+ (let ((tmp ($sc-dispatch tmp-1 '(_ each-any any . #(each ((any .
any) any))))))
+ (if (if tmp
+ (apply (lambda (k docstring keyword pattern template)
+ (string? (syntax->datum docstring)))
+ tmp)
+ #f)
+ (apply (lambda (k docstring keyword pattern template)
+ (list '#(syntax-object lambda ((top)) (hygiene guile))
+ '(#(syntax-object x ((top)) (hygiene guile)))
+ docstring
+ (vector
+ '(#(syntax-object macro-type ((top)) (hygiene
guile))
+ .
+ #(syntax-object syntax-rules ((top))
(hygiene guile)))
+ (cons '#(syntax-object patterns ((top))
(hygiene guile)) pattern))
+ (cons '#(syntax-object syntax-case ((top))
(hygiene guile))
+ (cons '#(syntax-object x ((top)) (hygiene
guile))
+ (cons k
+ (map (lambda (tmp-1 tmp)
+ (list (cons
'#(syntax-object dummy ((top)) (hygiene guile)) tmp)
+ (list
'#(syntax-object syntax ((top)) (hygiene guile))
+ tmp-1)))
+ template
+ pattern))))))
+ tmp)
+ (syntax-violation
+ #f
+ "source expression failed to match any pattern"
+ tmp-1)))))))))
(define define-syntax-rule
(make-syntax-transformer
'define-syntax-rule
'macro
- (lambda (x-25335)
- (let ((tmp-25337
- ($sc-dispatch x-25335 '(_ (any . any) any))))
- (if tmp-25337
- (@apply
- (lambda (name-25341 pattern-25342 template-25343)
- (list '#(syntax-object
- define-syntax
- ((top)
- #(ribcage
- #(name pattern template)
- #((top) (top) (top))
- #("l-*-25312" "l-*-25313" "l-*-25314"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("l-*-25309")))
- (hygiene guile))
- name-25341
- (list '#(syntax-object
- syntax-rules
- ((top)
- #(ribcage
- #(name pattern template)
- #((top) (top) (top))
- #("l-*-25312" "l-*-25313" "l-*-25314"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("l-*-25309")))
- (hygiene guile))
- '()
- (list (cons '#(syntax-object
- _
- ((top)
- #(ribcage
- #(name pattern template)
- #((top) (top) (top))
- #("l-*-25312"
- "l-*-25313"
- "l-*-25314"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("l-*-25309")))
- (hygiene guile))
- pattern-25342)
- template-25343))))
- tmp-25337)
- (let ((tmp-25344
- ($sc-dispatch x-25335 '(_ (any . any) any any))))
- (if (if tmp-25344
- (@apply
- (lambda (name-25348
- pattern-25349
- docstring-25350
- template-25351)
- (string? (syntax->datum docstring-25350)))
- tmp-25344)
- #f)
- (@apply
- (lambda (name-25352
- pattern-25353
- docstring-25354
- template-25355)
- (list '#(syntax-object
- define-syntax
- ((top)
- #(ribcage
- #(name pattern docstring template)
- #((top) (top) (top) (top))
- #("l-*-25327"
- "l-*-25328"
- "l-*-25329"
- "l-*-25330"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("l-*-25309")))
- (hygiene guile))
- name-25352
- (list '#(syntax-object
- syntax-rules
- ((top)
- #(ribcage
- #(name pattern docstring template)
- #((top) (top) (top) (top))
- #("l-*-25327"
- "l-*-25328"
- "l-*-25329"
- "l-*-25330"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("l-*-25309")))
- (hygiene guile))
- '()
- docstring-25354
- (list (cons '#(syntax-object
- _
- ((top)
- #(ribcage
- #(name
- pattern
- docstring
- template)
- #((top) (top) (top) (top))
- #("l-*-25327"
- "l-*-25328"
- "l-*-25329"
- "l-*-25330"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("l-*-25309")))
- (hygiene guile))
- pattern-25353)
- template-25355))))
- tmp-25344)
- (syntax-violation
- #f
- "source expression failed to match any pattern"
- x-25335))))))))
+ (lambda (x)
+ (let ((tmp-1 x))
+ (let ((tmp ($sc-dispatch tmp-1 '(_ (any . any) any))))
+ (if tmp
+ (apply (lambda (name pattern template)
+ (list '#(syntax-object define-syntax ((top)) (hygiene
guile))
+ name
+ (list '#(syntax-object syntax-rules ((top))
(hygiene guile))
+ '()
+ (list (cons '#(syntax-object _ ((top))
(hygiene guile)) pattern)
+ template))))
+ tmp)
+ (let ((tmp ($sc-dispatch tmp-1 '(_ (any . any) any any))))
+ (if (if tmp
+ (apply (lambda (name pattern docstring template)
+ (string? (syntax->datum docstring)))
+ tmp)
+ #f)
+ (apply (lambda (name pattern docstring template)
+ (list '#(syntax-object define-syntax ((top)) (hygiene
guile))
+ name
+ (list '#(syntax-object syntax-rules ((top))
(hygiene guile))
+ '()
+ docstring
+ (list (cons '#(syntax-object _ ((top))
(hygiene guile)) pattern)
+ template))))
+ tmp)
+ (syntax-violation
+ #f
+ "source expression failed to match any pattern"
+ tmp-1)))))))))
(define let*
(make-syntax-transformer
'let*
'macro
- (lambda (x-25404)
- (let ((tmp-25406
- ($sc-dispatch
- x-25404
- '(any #(each (any any)) any . each-any))))
- (if (if tmp-25406
- (@apply
- (lambda (let*-25410 x-25411 v-25412 e1-25413 e2-25414)
- (and-map identifier? x-25411))
- tmp-25406)
- #f)
- (@apply
- (lambda (let*-25415 x-25416 v-25417 e1-25418 e2-25419)
- (letrec*
- ((f-25420
- (lambda (bindings-25423)
- (if (null? bindings-25423)
- (cons '#(syntax-object
- let
- ((top)
- #(ribcage () () ())
- #(ribcage
- #(f bindings)
- #((top) (top))
- #("l-*-25390" "l-*-25391"))
- #(ribcage
- #(let* x v e1 e2)
- #((top) (top) (top) (top) (top))
- #("l-*-25380"
- "l-*-25381"
- "l-*-25382"
- "l-*-25383"
- "l-*-25384"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("l-*-25366")))
- (hygiene guile))
- (cons '() (cons e1-25418 e2-25419)))
- (let ((tmp-25424
- (list (f-25420 (cdr bindings-25423))
- (car bindings-25423))))
- (let ((tmp-25425 ($sc-dispatch tmp-25424 '(any any))))
- (if tmp-25425
- (@apply
- (lambda (body-25427 binding-25428)
- (list '#(syntax-object
- let
- ((top)
- #(ribcage () () ())
- #(ribcage
- #(body binding)
- #((top) (top))
- #("l-*-25400" "l-*-25401"))
- #(ribcage () () ())
- #(ribcage
- #(f bindings)
- #((top) (top))
- #("l-*-25390" "l-*-25391"))
- #(ribcage
- #(let* x v e1 e2)
- #((top) (top) (top) (top) (top))
- #("l-*-25380"
- "l-*-25381"
- "l-*-25382"
- "l-*-25383"
- "l-*-25384"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("l-*-25366")))
- (hygiene guile))
- (list binding-25428)
- body-25427))
- tmp-25425)
- (syntax-violation
- #f
- "source expression failed to match any pattern"
- tmp-25424))))))))
- (f-25420 (map list x-25416 v-25417))))
- tmp-25406)
- (syntax-violation
- #f
- "source expression failed to match any pattern"
- x-25404))))))
+ (lambda (x)
+ (let ((tmp-1 x))
+ (let ((tmp ($sc-dispatch tmp-1 '(any #(each (any any)) any .
each-any))))
+ (if (if tmp
+ (apply (lambda (let* x v e1 e2) (and-map identifier? x)) tmp)
+ #f)
+ (apply (lambda (let* x v e1 e2)
+ (let f ((bindings (map list x v)))
+ (if (null? bindings)
+ (cons '#(syntax-object let ((top)) (hygiene guile))
+ (cons '() (cons e1 e2)))
+ (let ((tmp-1 (list (f (cdr bindings)) (car
bindings))))
+ (let ((tmp ($sc-dispatch tmp-1 '(any any))))
+ (if tmp
+ (apply (lambda (body binding)
+ (list '#(syntax-object let ((top))
(hygiene guile))
+ (list binding)
+ body))
+ tmp)
+ (syntax-violation
+ #f
+ "source expression failed to match any
pattern"
+ tmp-1)))))))
+ tmp)
+ (syntax-violation
+ #f
+ "source expression failed to match any pattern"
+ tmp-1)))))))
(define do
(make-syntax-transformer
'do
'macro
- (lambda (orig-x-25484)
- (let ((tmp-25486
- ($sc-dispatch
- orig-x-25484
- '(_ #(each (any any . any))
- (any . each-any)
- .
- each-any))))
- (if tmp-25486
- (@apply
- (lambda (var-25490
- init-25491
- step-25492
- e0-25493
- e1-25494
- c-25495)
- (let ((tmp-25496
- (map (lambda (v-25499 s-25500)
- (let ((tmp-25502 ($sc-dispatch s-25500 '())))
- (if tmp-25502
- (@apply (lambda () v-25499) tmp-25502)
- (let ((tmp-25505
- ($sc-dispatch s-25500 '(any))))
- (if tmp-25505
- (@apply
- (lambda (e-25508) e-25508)
- tmp-25505)
- (syntax-violation
- 'do
- "bad step expression"
- orig-x-25484
- s-25500))))))
- var-25490
- step-25492)))
- (let ((tmp-25497 ($sc-dispatch tmp-25496 'each-any)))
- (if tmp-25497
- (@apply
- (lambda (step-25513)
- (let ((tmp-25515 ($sc-dispatch e1-25494 '())))
- (if tmp-25515
- (@apply
- (lambda ()
- (list '#(syntax-object
- let
- ((top)
- #(ribcage () () ())
- #(ribcage
- #(step)
- #((top))
- #("l-*-25454"))
- #(ribcage
- #(var init step e0 e1 c)
- #((top)
- (top)
- (top)
- (top)
- (top)
- (top))
- #("l-*-25439"
- "l-*-25440"
- "l-*-25441"
- "l-*-25442"
- "l-*-25443"
- "l-*-25444"))
- #(ribcage () () ())
- #(ribcage
- #(orig-x)
- #((top))
- #("l-*-25436")))
- (hygiene guile))
- '#(syntax-object
- doloop
- ((top)
- #(ribcage () () ())
- #(ribcage
- #(step)
- #((top))
- #("l-*-25454"))
- #(ribcage
- #(var init step e0 e1 c)
- #((top)
- (top)
- (top)
- (top)
- (top)
- (top))
- #("l-*-25439"
- "l-*-25440"
- "l-*-25441"
- "l-*-25442"
- "l-*-25443"
- "l-*-25444"))
- #(ribcage () () ())
- #(ribcage
- #(orig-x)
- #((top))
- #("l-*-25436")))
- (hygiene guile))
- (map list var-25490 init-25491)
- (list '#(syntax-object
- if
- ((top)
- #(ribcage () () ())
- #(ribcage
- #(step)
- #((top))
- #("l-*-25454"))
- #(ribcage
- #(var init step e0 e1 c)
- #((top)
- (top)
- (top)
- (top)
- (top)
- (top))
- #("l-*-25439"
- "l-*-25440"
- "l-*-25441"
- "l-*-25442"
- "l-*-25443"
- "l-*-25444"))
- #(ribcage () () ())
- #(ribcage
- #(orig-x)
- #((top))
- #("l-*-25436")))
- (hygiene guile))
- (list '#(syntax-object
- not
- ((top)
- #(ribcage () () ())
- #(ribcage
- #(step)
- #((top))
- #("l-*-25454"))
- #(ribcage
- #(var
- init
- step
- e0
- e1
- c)
- #((top)
- (top)
- (top)
- (top)
- (top)
- (top))
- #("l-*-25439"
- "l-*-25440"
- "l-*-25441"
- "l-*-25442"
- "l-*-25443"
- "l-*-25444"))
- #(ribcage () () ())
- #(ribcage
- #(orig-x)
- #((top))
- #("l-*-25436")))
- (hygiene guile))
- e0-25493)
- (cons '#(syntax-object
- begin
- ((top)
- #(ribcage () () ())
- #(ribcage
- #(step)
- #((top))
- #("l-*-25454"))
- #(ribcage
- #(var
- init
- step
- e0
- e1
- c)
- #((top)
- (top)
- (top)
- (top)
- (top)
- (top))
- #("l-*-25439"
- "l-*-25440"
- "l-*-25441"
- "l-*-25442"
- "l-*-25443"
- "l-*-25444"))
- #(ribcage () () ())
- #(ribcage
- #(orig-x)
- #((top))
- #("l-*-25436")))
- (hygiene guile))
- (append
- c-25495
- (list (cons
'#(syntax-object
- doloop
- ((top)
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(step)
- #((top))
-
#("l-*-25454"))
- #(ribcage
- #(var
- init
- step
- e0
- e1
- c)
- #((top)
- (top)
- (top)
- (top)
- (top)
- (top))
-
#("l-*-25439"
-
"l-*-25440"
-
"l-*-25441"
-
"l-*-25442"
-
"l-*-25443"
-
"l-*-25444"))
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(orig-x)
- #((top))
-
#("l-*-25436")))
- (hygiene
- guile))
-
step-25513)))))))
- tmp-25515)
- (let ((tmp-25519
- ($sc-dispatch e1-25494 '(any . each-any))))
- (if tmp-25519
- (@apply
- (lambda (e1-25523 e2-25524)
- (list '#(syntax-object
- let
- ((top)
- #(ribcage
- #(e1 e2)
- #((top) (top))
- #("l-*-25463" "l-*-25464"))
- #(ribcage () () ())
- #(ribcage
- #(step)
- #((top))
- #("l-*-25454"))
- #(ribcage
- #(var init step e0 e1 c)
- #((top)
- (top)
- (top)
- (top)
- (top)
- (top))
- #("l-*-25439"
- "l-*-25440"
- "l-*-25441"
- "l-*-25442"
- "l-*-25443"
- "l-*-25444"))
- #(ribcage () () ())
- #(ribcage
- #(orig-x)
- #((top))
- #("l-*-25436")))
- (hygiene guile))
- '#(syntax-object
- doloop
- ((top)
- #(ribcage
- #(e1 e2)
- #((top) (top))
- #("l-*-25463" "l-*-25464"))
- #(ribcage () () ())
- #(ribcage
- #(step)
- #((top))
- #("l-*-25454"))
- #(ribcage
- #(var init step e0 e1 c)
- #((top)
- (top)
- (top)
- (top)
- (top)
- (top))
- #("l-*-25439"
- "l-*-25440"
- "l-*-25441"
- "l-*-25442"
- "l-*-25443"
- "l-*-25444"))
- #(ribcage () () ())
- #(ribcage
- #(orig-x)
- #((top))
- #("l-*-25436")))
- (hygiene guile))
- (map list var-25490 init-25491)
- (list '#(syntax-object
- if
- ((top)
- #(ribcage
- #(e1 e2)
- #((top) (top))
- #("l-*-25463"
- "l-*-25464"))
- #(ribcage () () ())
- #(ribcage
- #(step)
- #((top))
- #("l-*-25454"))
- #(ribcage
- #(var init step e0 e1 c)
- #((top)
- (top)
- (top)
- (top)
- (top)
- (top))
- #("l-*-25439"
- "l-*-25440"
- "l-*-25441"
- "l-*-25442"
- "l-*-25443"
- "l-*-25444"))
- #(ribcage () () ())
- #(ribcage
- #(orig-x)
- #((top))
- #("l-*-25436")))
- (hygiene guile))
- e0-25493
- (cons '#(syntax-object
- begin
- ((top)
- #(ribcage
- #(e1 e2)
- #((top) (top))
- #("l-*-25463"
- "l-*-25464"))
- #(ribcage () () ())
- #(ribcage
- #(step)
- #((top))
- #("l-*-25454"))
- #(ribcage
- #(var
- init
- step
- e0
- e1
- c)
- #((top)
- (top)
- (top)
- (top)
- (top)
- (top))
- #("l-*-25439"
- "l-*-25440"
- "l-*-25441"
- "l-*-25442"
- "l-*-25443"
- "l-*-25444"))
- #(ribcage () () ())
- #(ribcage
- #(orig-x)
- #((top))
- #("l-*-25436")))
- (hygiene guile))
- (cons e1-25523 e2-25524))
- (cons '#(syntax-object
- begin
- ((top)
- #(ribcage
- #(e1 e2)
- #((top) (top))
- #("l-*-25463"
- "l-*-25464"))
- #(ribcage () () ())
- #(ribcage
- #(step)
- #((top))
- #("l-*-25454"))
- #(ribcage
- #(var
- init
- step
- e0
- e1
- c)
- #((top)
- (top)
- (top)
- (top)
- (top)
- (top))
- #("l-*-25439"
- "l-*-25440"
- "l-*-25441"
- "l-*-25442"
- "l-*-25443"
- "l-*-25444"))
- #(ribcage () () ())
- #(ribcage
- #(orig-x)
- #((top))
- #("l-*-25436")))
- (hygiene guile))
- (append
- c-25495
- (list (cons
'#(syntax-object
- doloop
- ((top)
-
#(ribcage
- #(e1
- e2)
-
#((top)
-
(top))
-
#("l-*-25463"
-
"l-*-25464"))
-
#(ribcage
- ()
- ()
- ())
-
#(ribcage
-
#(step)
-
#((top))
-
#("l-*-25454"))
-
#(ribcage
- #(var
-
init
-
step
- e0
- e1
- c)
-
#((top)
-
(top)
-
(top)
-
(top)
-
(top)
-
(top))
-
#("l-*-25439"
-
"l-*-25440"
-
"l-*-25441"
-
"l-*-25442"
-
"l-*-25443"
-
"l-*-25444"))
-
#(ribcage
- ()
- ()
- ())
-
#(ribcage
-
#(orig-x)
-
#((top))
-
#("l-*-25436")))
- (hygiene
-
guile))
-
step-25513)))))))
- tmp-25519)
- (syntax-violation
- #f
- "source expression failed to match any
pattern"
- e1-25494))))))
- tmp-25497)
- (syntax-violation
- #f
- "source expression failed to match any pattern"
- tmp-25496)))))
- tmp-25486)
- (syntax-violation
- #f
- "source expression failed to match any pattern"
- orig-x-25484))))))
+ (lambda (orig-x)
+ (let ((tmp-1 orig-x))
+ (let ((tmp ($sc-dispatch
+ tmp-1
+ '(_ #(each (any any . any)) (any . each-any) .
each-any))))
+ (if tmp
+ (apply (lambda (var init step e0 e1 c)
+ (let ((tmp-1 (map (lambda (v s)
+ (let ((tmp-1 s))
+ (let ((tmp ($sc-dispatch tmp-1
'())))
+ (if tmp
+ (apply (lambda () v) tmp)
+ (let ((tmp ($sc-dispatch tmp-1
'(any))))
+ (if tmp
+ (apply (lambda (e) e) tmp)
+ (syntax-violation 'do "bad
step expression" orig-x s)))))))
+ var
+ step)))
+ (let ((tmp ($sc-dispatch tmp-1 'each-any)))
+ (if tmp
+ (apply (lambda (step)
+ (let ((tmp e1))
+ (let ((tmp-1 ($sc-dispatch tmp '())))
+ (if tmp-1
+ (apply (lambda ()
+ (list '#(syntax-object let
((top)) (hygiene guile))
+ '#(syntax-object
doloop ((top)) (hygiene guile))
+ (map list var init)
+ (list
'#(syntax-object if ((top)) (hygiene guile))
+ (list
'#(syntax-object not ((top)) (hygiene guile)) e0)
+ (cons
'#(syntax-object begin ((top)) (hygiene guile))
+ (append
+ c
+ (list
(cons '#(syntax-object
+
doloop
+
((top))
+
(hygiene guile))
+
step)))))))
+ tmp-1)
+ (let ((tmp-1 ($sc-dispatch tmp '(any
. each-any))))
+ (if tmp-1
+ (apply (lambda (e1 e2)
+ (list '#(syntax-object
let ((top)) (hygiene guile))
+ '#(syntax-object
doloop ((top)) (hygiene guile))
+ (map list var
init)
+ (list
'#(syntax-object if ((top)) (hygiene guile))
+ e0
+ (cons
'#(syntax-object begin ((top)) (hygiene guile))
+ (cons
e1 e2))
+ (cons
'#(syntax-object begin ((top)) (hygiene guile))
+
(append
+ c
+
(list (cons '#(syntax-object
+
doloop
+
((top))
+
(hygiene guile))
+
step)))))))
+ tmp-1)
+ (syntax-violation
+ #f
+ "source expression failed to
match any pattern"
+ tmp)))))))
+ tmp)
+ (syntax-violation
+ #f
+ "source expression failed to match any pattern"
+ tmp-1)))))
+ tmp)
+ (syntax-violation
+ #f
+ "source expression failed to match any pattern"
+ tmp-1)))))))
(define quasiquote
(make-syntax-transformer
'quasiquote
'macro
(letrec*
- ((quasi-25792
- (lambda (p-25816 lev-25817)
- (let ((tmp-25819
- ($sc-dispatch
- p-25816
- '(#(free-id
- #(syntax-object
- unquote
- ((top)
- #(ribcage () () ())
- #(ribcage
- #(p lev)
- #((top) (top))
- #("l-*-25556" "l-*-25557"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top) (top) (top) (top) (top) (top) (top))
- ("l-*-25552"
- "l-*-25550"
- "l-*-25548"
- "l-*-25546"
- "l-*-25544"
- "l-*-25542"
- "l-*-25540")))
- (hygiene guile)))
- any))))
- (if tmp-25819
- (@apply
- (lambda (p-25823)
- (if (= lev-25817 0)
- (list '#(syntax-object
- "value"
- ((top)
- #(ribcage #(p) #((top)) #("l-*-25560"))
- #(ribcage () () ())
- #(ribcage
- #(p lev)
- #((top) (top))
- #("l-*-25556" "l-*-25557"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top) (top) (top) (top) (top) (top) (top))
- ("l-*-25552"
- "l-*-25550"
- "l-*-25548"
- "l-*-25546"
- "l-*-25544"
- "l-*-25542"
- "l-*-25540")))
- (hygiene guile))
- p-25823)
- (quasicons-25794
- '(#(syntax-object
- "quote"
- ((top)
- #(ribcage #(p) #((top)) #("l-*-25560"))
- #(ribcage () () ())
- #(ribcage
- #(p lev)
- #((top) (top))
- #("l-*-25556" "l-*-25557"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top) (top) (top) (top) (top) (top) (top))
- ("l-*-25552"
- "l-*-25550"
- "l-*-25548"
- "l-*-25546"
- "l-*-25544"
- "l-*-25542"
- "l-*-25540")))
- (hygiene guile))
- #(syntax-object
- unquote
- ((top)
- #(ribcage #(p) #((top)) #("l-*-25560"))
- #(ribcage () () ())
- #(ribcage
- #(p lev)
- #((top) (top))
- #("l-*-25556" "l-*-25557"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top) (top) (top) (top) (top) (top) (top))
- ("l-*-25552"
- "l-*-25550"
- "l-*-25548"
- "l-*-25546"
- "l-*-25544"
- "l-*-25542"
- "l-*-25540")))
- (hygiene guile)))
- (quasi-25792 (list p-25823) (#{1-}# lev-25817)))))
- tmp-25819)
- (let ((tmp-25826
- ($sc-dispatch
- p-25816
- '(#(free-id
- #(syntax-object
- quasiquote
- ((top)
- #(ribcage () () ())
- #(ribcage
- #(p lev)
- #((top) (top))
- #("l-*-25556" "l-*-25557"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top) (top) (top) (top) (top) (top) (top))
- ("l-*-25552"
- "l-*-25550"
- "l-*-25548"
- "l-*-25546"
- "l-*-25544"
- "l-*-25542"
- "l-*-25540")))
- (hygiene guile)))
- any))))
- (if tmp-25826
- (@apply
- (lambda (p-25830)
- (quasicons-25794
- '(#(syntax-object
- "quote"
- ((top)
- #(ribcage #(p) #((top)) #("l-*-25563"))
- #(ribcage () () ())
- #(ribcage
- #(p lev)
- #((top) (top))
- #("l-*-25556" "l-*-25557"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top) (top) (top) (top) (top) (top) (top))
- ("l-*-25552"
- "l-*-25550"
- "l-*-25548"
- "l-*-25546"
- "l-*-25544"
- "l-*-25542"
- "l-*-25540")))
- (hygiene guile))
- #(syntax-object
- quasiquote
- ((top)
- #(ribcage #(p) #((top)) #("l-*-25563"))
- #(ribcage () () ())
- #(ribcage
- #(p lev)
- #((top) (top))
- #("l-*-25556" "l-*-25557"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top) (top) (top) (top) (top) (top) (top))
- ("l-*-25552"
- "l-*-25550"
- "l-*-25548"
- "l-*-25546"
- "l-*-25544"
- "l-*-25542"
- "l-*-25540")))
- (hygiene guile)))
- (quasi-25792 (list p-25830) (#{1+}# lev-25817))))
- tmp-25826)
- (let ((tmp-25833 ($sc-dispatch p-25816 '(any . any))))
- (if tmp-25833
- (@apply
- (lambda (p-25837 q-25838)
- (let ((tmp-25840
- ($sc-dispatch
- p-25837
- '(#(free-id
- #(syntax-object
- unquote
- ((top)
- #(ribcage
- #(p q)
- #((top) (top))
- #("l-*-25566" "l-*-25567"))
- #(ribcage () () ())
- #(ribcage
- #(p lev)
- #((top) (top))
- #("l-*-25556" "l-*-25557"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-25552"
- "l-*-25550"
- "l-*-25548"
- "l-*-25546"
- "l-*-25544"
- "l-*-25542"
- "l-*-25540")))
- (hygiene guile)))
- .
- each-any))))
- (if tmp-25840
- (@apply
- (lambda (p-25844)
- (if (= lev-25817 0)
- (quasilist*-25796
- (map (lambda (tmp-25574-25880)
- (list '#(syntax-object
- "value"
- ((top)
- #(ribcage
- #(p)
- #((top))
- #("l-*-25572"))
- #(ribcage
- #(p q)
- #((top) (top))
- #("l-*-25566"
- "l-*-25567"))
- #(ribcage () () ())
- #(ribcage
- #(p lev)
- #((top) (top))
- #("l-*-25556"
- "l-*-25557"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-25552"
- "l-*-25550"
- "l-*-25548"
- "l-*-25546"
- "l-*-25544"
- "l-*-25542"
- "l-*-25540")))
- (hygiene guile))
- tmp-25574-25880))
- p-25844)
- (quasi-25792 q-25838 lev-25817))
- (quasicons-25794
- (quasicons-25794
- '(#(syntax-object
- "quote"
- ((top)
- #(ribcage
- #(p)
- #((top))
- #("l-*-25572"))
- #(ribcage
- #(p q)
- #((top) (top))
- #("l-*-25566" "l-*-25567"))
- #(ribcage () () ())
- #(ribcage
- #(p lev)
- #((top) (top))
- #("l-*-25556" "l-*-25557"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-25552"
- "l-*-25550"
- "l-*-25548"
- "l-*-25546"
- "l-*-25544"
- "l-*-25542"
- "l-*-25540")))
- (hygiene guile))
- #(syntax-object
- unquote
- ((top)
- #(ribcage
- #(p)
- #((top))
- #("l-*-25572"))
- #(ribcage
- #(p q)
- #((top) (top))
- #("l-*-25566" "l-*-25567"))
- #(ribcage () () ())
- #(ribcage
- #(p lev)
- #((top) (top))
- #("l-*-25556" "l-*-25557"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-25552"
- "l-*-25550"
- "l-*-25548"
- "l-*-25546"
- "l-*-25544"
- "l-*-25542"
- "l-*-25540")))
- (hygiene guile)))
- (quasi-25792
- p-25844
- (#{1-}# lev-25817)))
- (quasi-25792 q-25838 lev-25817))))
- tmp-25840)
- (let ((tmp-25885
- ($sc-dispatch
- p-25837
- '(#(free-id
- #(syntax-object
- unquote-splicing
- ((top)
- #(ribcage
- #(p q)
- #((top) (top))
- #("l-*-25566" "l-*-25567"))
- #(ribcage () () ())
- #(ribcage
- #(p lev)
- #((top) (top))
- #("l-*-25556" "l-*-25557"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-25552"
- "l-*-25550"
- "l-*-25548"
- "l-*-25546"
- "l-*-25544"
- "l-*-25542"
- "l-*-25540")))
- (hygiene guile)))
- .
- each-any))))
- (if tmp-25885
- (@apply
- (lambda (p-25889)
- (if (= lev-25817 0)
- (quasiappend-25795
- (map (lambda (tmp-25579-25892)
- (list '#(syntax-object
- "value"
- ((top)
- #(ribcage
- #(p)
- #((top))
- #("l-*-25577"))
- #(ribcage
- #(p q)
- #((top) (top))
- #("l-*-25566"
- "l-*-25567"))
- #(ribcage () () ())
- #(ribcage
- #(p lev)
- #((top) (top))
- #("l-*-25556"
- "l-*-25557"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-25552"
- "l-*-25550"
- "l-*-25548"
- "l-*-25546"
- "l-*-25544"
- "l-*-25542"
- "l-*-25540")))
- (hygiene guile))
- tmp-25579-25892))
- p-25889)
- (quasi-25792 q-25838 lev-25817))
- (quasicons-25794
- (quasicons-25794
- '(#(syntax-object
- "quote"
- ((top)
- #(ribcage
- #(p)
- #((top))
- #("l-*-25577"))
- #(ribcage
- #(p q)
- #((top) (top))
- #("l-*-25566" "l-*-25567"))
- #(ribcage () () ())
- #(ribcage
- #(p lev)
- #((top) (top))
- #("l-*-25556" "l-*-25557"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-25552"
- "l-*-25550"
- "l-*-25548"
- "l-*-25546"
- "l-*-25544"
- "l-*-25542"
- "l-*-25540")))
- (hygiene guile))
- #(syntax-object
- unquote-splicing
- ((top)
- #(ribcage
- #(p)
- #((top))
- #("l-*-25577"))
- #(ribcage
- #(p q)
- #((top) (top))
- #("l-*-25566" "l-*-25567"))
- #(ribcage () () ())
- #(ribcage
- #(p lev)
- #((top) (top))
- #("l-*-25556" "l-*-25557"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-25552"
- "l-*-25550"
- "l-*-25548"
- "l-*-25546"
- "l-*-25544"
- "l-*-25542"
- "l-*-25540")))
- (hygiene guile)))
- (quasi-25792
- p-25889
- (#{1-}# lev-25817)))
- (quasi-25792 q-25838 lev-25817))))
- tmp-25885)
- (quasicons-25794
- (quasi-25792 p-25837 lev-25817)
- (quasi-25792 q-25838 lev-25817)))))))
- tmp-25833)
- (let ((tmp-25905
- ($sc-dispatch p-25816 '#(vector each-any))))
- (if tmp-25905
- (@apply
- (lambda (x-25909)
- (let ((x-25912
- (vquasi-25793 x-25909 lev-25817)))
- (let ((tmp-25914
- ($sc-dispatch
- x-25912
- '(#(atom "quote") each-any))))
- (if tmp-25914
- (@apply
- (lambda (x-25916)
- (list '#(syntax-object
- "quote"
- ((top)
- #(ribcage
- #(x)
- #((top))
- #("l-*-25668"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("l-*-25665"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-25552"
- "l-*-25550"
- "l-*-25548"
- "l-*-25546"
- "l-*-25544"
- "l-*-25542"
- "l-*-25540")))
- (hygiene guile))
- (list->vector x-25916)))
- tmp-25914)
- (letrec*
- ((f-25917
- (lambda (y-25929 k-25930)
- (let ((tmp-25932
- ($sc-dispatch
- y-25929
- '(#(atom "quote")
+ ((quasi (lambda (p lev)
+ (let ((tmp p))
+ (let ((tmp-1 ($sc-dispatch
+ tmp
+ '(#(free-id #(syntax-object unquote ((top))
(hygiene guile))) any))))
+ (if tmp-1
+ (apply (lambda (p)
+ (if (= lev 0)
+ (list "value" p)
+ (quasicons
+ '("quote" #(syntax-object unquote ((top))
(hygiene guile)))
+ (quasi (list p) (- lev 1)))))
+ tmp-1)
+ (let ((tmp-1 ($sc-dispatch
+ tmp
+ '(#(free-id #(syntax-object quasiquote
((top)) (hygiene guile))) any))))
+ (if tmp-1
+ (apply (lambda (p)
+ (quasicons
+ '("quote" #(syntax-object quasiquote
((top)) (hygiene guile)))
+ (quasi (list p) (+ lev 1))))
+ tmp-1)
+ (let ((tmp-1 ($sc-dispatch tmp '(any . any))))
+ (if tmp-1
+ (apply (lambda (p q)
+ (let ((tmp-1 p))
+ (let ((tmp ($sc-dispatch
+ tmp-1
+ '(#(free-id
#(syntax-object unquote ((top)) (hygiene guile)))
+ .
each-any))))
- (if tmp-25932
- (@apply
- (lambda (y-25935)
- (k-25930
- (map (lambda
(tmp-25691-25936)
- (list
'#(syntax-object
- "quote"
- ((top)
-
#(ribcage
- #(y)
-
#((top))
-
#("l-*-25689"))
-
#(ribcage
- ()
- ()
- ())
-
#(ribcage
- #(f
- y
- k)
-
#((top)
-
(top)
-
(top))
-
#("l-*-25671"
-
"l-*-25672"
-
"l-*-25673"))
-
#(ribcage
- ()
- ()
- ())
-
#(ribcage
- #(x)
-
#((top))
-
#("l-*-25665"))
-
#(ribcage
- (emit
quasivector
-
quasilist*
-
quasiappend
-
quasicons
-
vquasi
-
quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
-
(top))
-
("l-*-25552"
-
"l-*-25550"
-
"l-*-25548"
-
"l-*-25546"
-
"l-*-25544"
-
"l-*-25542"
-
"l-*-25540")))
- (hygiene
- guile))
-
tmp-25691-25936))
- y-25935)))
- tmp-25932)
- (let ((tmp-25937
- ($sc-dispatch
- y-25929
- '(#(atom "list")
+ (if tmp
+ (apply (lambda (p)
+ (if (= lev 0)
+ (quasilist*
+ (map (lambda (tmp)
(list "value" tmp)) p)
+ (quasi q lev))
+ (quasicons
+ (quasicons
+ '("quote"
#(syntax-object unquote ((top)) (hygiene guile)))
+ (quasi p (- lev
1)))
+ (quasi q lev))))
+ tmp)
+ (let ((tmp ($sc-dispatch
+ tmp-1
+ '(#(free-id
+ #(syntax-object
unquote-splicing ((top)) (hygiene guile)))
.
each-any))))
- (if tmp-25937
- (@apply
- (lambda (y-25940)
- (k-25930 y-25940))
- tmp-25937)
- (let ((tmp-25941
- ($sc-dispatch
- y-25929
- '(#(atom "list*")
- .
- #(each+
- any
- (any)
- ())))))
- (if tmp-25941
- (@apply
- (lambda (y-25944
- z-25945)
- (f-25917
- z-25945
- (lambda
(ls-25946)
- (k-25930
- (append
- y-25944
-
ls-25946)))))
- tmp-25941)
- (list '#(syntax-object
- "list->vector"
- ((top)
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(t-25706)
-
#((m-*-25707
- top))
-
#("l-*-25710"))
- #(ribcage
- #(else)
- #((top))
-
#("l-*-25704"))
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(f y k)
- #((top)
- (top)
- (top))
-
#("l-*-25671"
-
"l-*-25672"
-
"l-*-25673"))
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(x)
- #((top))
-
#("l-*-25665"))
- #(ribcage
- (emit
quasivector
-
quasilist*
-
quasiappend
-
quasicons
-
vquasi
-
quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
-
("l-*-25552"
-
"l-*-25550"
-
"l-*-25548"
-
"l-*-25546"
-
"l-*-25544"
-
"l-*-25542"
-
"l-*-25540")))
- (hygiene
- guile))
- x-25912))))))))))
- (f-25917
- x-25912
- (lambda (ls-25919)
- (let ((tmp-25921
- ($sc-dispatch
- ls-25919
- 'each-any)))
- (if tmp-25921
- (@apply
- (lambda (t-25679-25924)
- (cons '#(syntax-object
- "vector"
- ((top)
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(t-25679)
- #((m-*-25680
- top))
- #("l-*-25684"))
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(ls)
- #((top))
- #("l-*-25678"))
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(x)
- #((top))
- #("l-*-25665"))
- #(ribcage
- (emit
quasivector
- quasilist*
-
quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-25552"
- "l-*-25550"
- "l-*-25548"
- "l-*-25546"
- "l-*-25544"
- "l-*-25542"
- "l-*-25540")))
- (hygiene guile))
- t-25679-25924))
- tmp-25921)
- (syntax-violation
- #f
- "source expression failed to
match any pattern"
- ls-25919))))))))))
- tmp-25905)
- (list '#(syntax-object
- "quote"
- ((top)
- #(ribcage #(p) #((top)) #("l-*-25585"))
- #(ribcage () () ())
- #(ribcage
- #(p lev)
- #((top) (top))
- #("l-*-25556" "l-*-25557"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-25552"
- "l-*-25550"
- "l-*-25548"
- "l-*-25546"
- "l-*-25544"
- "l-*-25542"
- "l-*-25540")))
- (hygiene guile))
- p-25816)))))))))))
- (vquasi-25793
- (lambda (p-25972 lev-25973)
- (let ((tmp-25975 ($sc-dispatch p-25972 '(any . any))))
- (if tmp-25975
- (@apply
- (lambda (p-25979 q-25980)
- (let ((tmp-25982
- ($sc-dispatch
- p-25979
- '(#(free-id
- #(syntax-object
- unquote
- ((top)
- #(ribcage
- #(p q)
- #((top) (top))
- #("l-*-25593" "l-*-25594"))
- #(ribcage () () ())
- #(ribcage
- #(p lev)
- #((top) (top))
- #("l-*-25589" "l-*-25590"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-25552"
- "l-*-25550"
- "l-*-25548"
- "l-*-25546"
- "l-*-25544"
- "l-*-25542"
- "l-*-25540")))
- (hygiene guile)))
- .
- each-any))))
- (if tmp-25982
- (@apply
- (lambda (p-25986)
- (if (= lev-25973 0)
- (quasilist*-25796
- (map (lambda (tmp-25601-26022)
- (list '#(syntax-object
- "value"
- ((top)
- #(ribcage
- #(p)
- #((top))
- #("l-*-25599"))
- #(ribcage
- #(p q)
- #((top) (top))
- #("l-*-25593" "l-*-25594"))
- #(ribcage () () ())
- #(ribcage
- #(p lev)
- #((top) (top))
- #("l-*-25589" "l-*-25590"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-25552"
- "l-*-25550"
- "l-*-25548"
- "l-*-25546"
- "l-*-25544"
- "l-*-25542"
- "l-*-25540")))
- (hygiene guile))
- tmp-25601-26022))
- p-25986)
- (vquasi-25793 q-25980 lev-25973))
- (quasicons-25794
- (quasicons-25794
- '(#(syntax-object
- "quote"
- ((top)
- #(ribcage #(p) #((top)) #("l-*-25599"))
- #(ribcage
- #(p q)
- #((top) (top))
- #("l-*-25593" "l-*-25594"))
- #(ribcage () () ())
- #(ribcage
- #(p lev)
- #((top) (top))
- #("l-*-25589" "l-*-25590"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-25552"
- "l-*-25550"
- "l-*-25548"
- "l-*-25546"
- "l-*-25544"
- "l-*-25542"
- "l-*-25540")))
- (hygiene guile))
- #(syntax-object
- unquote
- ((top)
- #(ribcage #(p) #((top)) #("l-*-25599"))
- #(ribcage
- #(p q)
- #((top) (top))
- #("l-*-25593" "l-*-25594"))
- #(ribcage () () ())
- #(ribcage
- #(p lev)
- #((top) (top))
- #("l-*-25589" "l-*-25590"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-25552"
- "l-*-25550"
- "l-*-25548"
- "l-*-25546"
- "l-*-25544"
- "l-*-25542"
- "l-*-25540")))
- (hygiene guile)))
- (quasi-25792 p-25986 (#{1-}# lev-25973)))
- (vquasi-25793 q-25980 lev-25973))))
- tmp-25982)
- (let ((tmp-26029
- ($sc-dispatch
- p-25979
- '(#(free-id
- #(syntax-object
- unquote-splicing
- ((top)
- #(ribcage
- #(p q)
- #((top) (top))
- #("l-*-25593" "l-*-25594"))
- #(ribcage () () ())
- #(ribcage
- #(p lev)
- #((top) (top))
- #("l-*-25589" "l-*-25590"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-25552"
- "l-*-25550"
- "l-*-25548"
- "l-*-25546"
- "l-*-25544"
- "l-*-25542"
- "l-*-25540")))
- (hygiene guile)))
- .
- each-any))))
- (if tmp-26029
- (@apply
- (lambda (p-26033)
- (if (= lev-25973 0)
- (quasiappend-25795
- (map (lambda (tmp-25606-26036)
- (list '#(syntax-object
- "value"
- ((top)
- #(ribcage
- #(p)
- #((top))
- #("l-*-25604"))
- #(ribcage
- #(p q)
- #((top) (top))
- #("l-*-25593"
- "l-*-25594"))
- #(ribcage () () ())
- #(ribcage
- #(p lev)
- #((top) (top))
- #("l-*-25589"
- "l-*-25590"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-25552"
- "l-*-25550"
- "l-*-25548"
- "l-*-25546"
- "l-*-25544"
- "l-*-25542"
- "l-*-25540")))
- (hygiene guile))
- tmp-25606-26036))
- p-26033)
- (vquasi-25793 q-25980 lev-25973))
- (quasicons-25794
- (quasicons-25794
- '(#(syntax-object
- "quote"
- ((top)
- #(ribcage
- #(p)
- #((top))
- #("l-*-25604"))
- #(ribcage
- #(p q)
- #((top) (top))
- #("l-*-25593" "l-*-25594"))
- #(ribcage () () ())
- #(ribcage
- #(p lev)
- #((top) (top))
- #("l-*-25589" "l-*-25590"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-25552"
- "l-*-25550"
- "l-*-25548"
- "l-*-25546"
- "l-*-25544"
- "l-*-25542"
- "l-*-25540")))
- (hygiene guile))
- #(syntax-object
- unquote-splicing
- ((top)
- #(ribcage
- #(p)
- #((top))
- #("l-*-25604"))
- #(ribcage
- #(p q)
- #((top) (top))
- #("l-*-25593" "l-*-25594"))
- #(ribcage () () ())
- #(ribcage
- #(p lev)
- #((top) (top))
- #("l-*-25589" "l-*-25590"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-25552"
- "l-*-25550"
- "l-*-25548"
- "l-*-25546"
- "l-*-25544"
- "l-*-25542"
- "l-*-25540")))
- (hygiene guile)))
- (quasi-25792 p-26033 (#{1-}# lev-25973)))
- (vquasi-25793 q-25980 lev-25973))))
- tmp-26029)
- (quasicons-25794
- (quasi-25792 p-25979 lev-25973)
- (vquasi-25793 q-25980 lev-25973)))))))
- tmp-25975)
- (let ((tmp-26053 ($sc-dispatch p-25972 '())))
- (if tmp-26053
- (@apply
- (lambda ()
- '(#(syntax-object
- "quote"
- ((top)
- #(ribcage () () ())
- #(ribcage
- #(p lev)
- #((top) (top))
- #("l-*-25589" "l-*-25590"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top) (top) (top) (top) (top) (top) (top))
- ("l-*-25552"
- "l-*-25550"
- "l-*-25548"
- "l-*-25546"
- "l-*-25544"
- "l-*-25542"
- "l-*-25540")))
- (hygiene guile))
- ()))
- tmp-26053)
- (syntax-violation
- #f
- "source expression failed to match any pattern"
- p-25972)))))))
- (quasicons-25794
- (lambda (x-26066 y-26067)
- (let ((tmp-26068 (list x-26066 y-26067)))
- (let ((tmp-26069 ($sc-dispatch tmp-26068 '(any any))))
- (if tmp-26069
- (@apply
- (lambda (x-26071 y-26072)
- (let ((tmp-26074
- ($sc-dispatch y-26072 '(#(atom "quote") any))))
- (if tmp-26074
- (@apply
- (lambda (dy-26078)
- (let ((tmp-26080
- ($sc-dispatch
- x-26071
- '(#(atom "quote") any))))
- (if tmp-26080
- (@apply
- (lambda (dx-26082)
- (list '#(syntax-object
- "quote"
- ((top)
- #(ribcage
- #(dx)
- #((top))
- #("l-*-25626"))
- #(ribcage
- #(dy)
- #((top))
- #("l-*-25622"))
- #(ribcage () () ())
- #(ribcage
- #(x y)
- #((top) (top))
- #("l-*-25616" "l-*-25617"))
- #(ribcage () () ())
- #(ribcage () () ())
- #(ribcage
- #(x y)
- #((top) (top))
- #("l-*-25611" "l-*-25612"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-25552"
- "l-*-25550"
- "l-*-25548"
- "l-*-25546"
- "l-*-25544"
- "l-*-25542"
- "l-*-25540")))
- (hygiene guile))
- (cons dx-26082 dy-26078)))
- tmp-26080)
- (if (null? dy-26078)
- (list '#(syntax-object
- "list"
- ((top)
- #(ribcage
- #(dy)
- #((top))
- #("l-*-25622"))
- #(ribcage () () ())
- #(ribcage
- #(x y)
- #((top) (top))
- #("l-*-25616" "l-*-25617"))
- #(ribcage () () ())
- #(ribcage () () ())
- #(ribcage
- #(x y)
- #((top) (top))
- #("l-*-25611" "l-*-25612"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-25552"
- "l-*-25550"
- "l-*-25548"
- "l-*-25546"
- "l-*-25544"
- "l-*-25542"
- "l-*-25540")))
- (hygiene guile))
- x-26071)
- (list '#(syntax-object
- "list*"
- ((top)
- #(ribcage
- #(dy)
- #((top))
- #("l-*-25622"))
- #(ribcage () () ())
- #(ribcage
- #(x y)
- #((top) (top))
- #("l-*-25616" "l-*-25617"))
- #(ribcage () () ())
- #(ribcage () () ())
- #(ribcage
- #(x y)
- #((top) (top))
- #("l-*-25611" "l-*-25612"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-25552"
- "l-*-25550"
- "l-*-25548"
- "l-*-25546"
- "l-*-25544"
- "l-*-25542"
- "l-*-25540")))
- (hygiene guile))
- x-26071
- y-26072)))))
- tmp-26074)
- (let ((tmp-26084
- ($sc-dispatch
- y-26072
- '(#(atom "list") . any))))
- (if tmp-26084
- (@apply
- (lambda (stuff-26088)
- (cons '#(syntax-object
- "list"
- ((top)
- #(ribcage
- #(stuff)
- #((top))
- #("l-*-25629"))
- #(ribcage () () ())
- #(ribcage
- #(x y)
- #((top) (top))
- #("l-*-25616" "l-*-25617"))
- #(ribcage () () ())
- #(ribcage () () ())
- #(ribcage
- #(x y)
- #((top) (top))
- #("l-*-25611" "l-*-25612"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-25552"
- "l-*-25550"
- "l-*-25548"
- "l-*-25546"
- "l-*-25544"
- "l-*-25542"
- "l-*-25540")))
- (hygiene guile))
- (cons x-26071 stuff-26088)))
- tmp-26084)
- (let ((tmp-26089
- ($sc-dispatch
- y-26072
- '(#(atom "list*") . any))))
- (if tmp-26089
- (@apply
- (lambda (stuff-26093)
- (cons '#(syntax-object
- "list*"
- ((top)
- #(ribcage
- #(stuff)
- #((top))
- #("l-*-25632"))
- #(ribcage () () ())
- #(ribcage
- #(x y)
- #((top) (top))
- #("l-*-25616" "l-*-25617"))
- #(ribcage () () ())
- #(ribcage () () ())
- #(ribcage
- #(x y)
- #((top) (top))
- #("l-*-25611" "l-*-25612"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-25552"
- "l-*-25550"
- "l-*-25548"
- "l-*-25546"
- "l-*-25544"
- "l-*-25542"
- "l-*-25540")))
- (hygiene guile))
- (cons x-26071 stuff-26093)))
- tmp-26089)
- (list '#(syntax-object
- "list*"
- ((top)
- #(ribcage () () ())
- #(ribcage
- #(x y)
- #((top) (top))
- #("l-*-25616" "l-*-25617"))
- #(ribcage () () ())
- #(ribcage () () ())
- #(ribcage
- #(x y)
- #((top) (top))
- #("l-*-25611" "l-*-25612"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-25552"
- "l-*-25550"
- "l-*-25548"
- "l-*-25546"
- "l-*-25544"
- "l-*-25542"
- "l-*-25540")))
- (hygiene guile))
- x-26071
- y-26072))))))))
- tmp-26069)
+ (if tmp
+ (apply (lambda (p)
+ (if (= lev 0)
+ (quasiappend
+ (map (lambda
(tmp) (list "value" tmp)) p)
+ (quasi q lev))
+ (quasicons
+ (quasicons
+ '("quote"
+
#(syntax-object
+
unquote-splicing
+ ((top))
+ (hygiene
guile)))
+ (quasi p (-
lev 1)))
+ (quasi q lev))))
+ tmp)
+ (quasicons (quasi p lev)
(quasi q lev))))))))
+ tmp-1)
+ (let ((tmp-1 ($sc-dispatch tmp '#(vector
each-any))))
+ (if tmp-1
+ (apply (lambda (x) (quasivector (vquasi x
lev))) tmp-1)
+ (let ((p tmp)) (list "quote" p)))))))))))))
+ (vquasi
+ (lambda (p lev)
+ (let ((tmp p))
+ (let ((tmp-1 ($sc-dispatch tmp '(any . any))))
+ (if tmp-1
+ (apply (lambda (p q)
+ (let ((tmp-1 p))
+ (let ((tmp ($sc-dispatch
+ tmp-1
+ '(#(free-id #(syntax-object unquote
((top)) (hygiene guile)))
+ .
+ each-any))))
+ (if tmp
+ (apply (lambda (p)
+ (if (= lev 0)
+ (quasilist* (map (lambda (tmp)
(list "value" tmp)) p) (vquasi q lev))
+ (quasicons
+ (quasicons
+ '("quote" #(syntax-object
unquote ((top)) (hygiene guile)))
+ (quasi p (- lev 1)))
+ (vquasi q lev))))
+ tmp)
+ (let ((tmp ($sc-dispatch
+ tmp-1
+ '(#(free-id #(syntax-object
unquote-splicing ((top)) (hygiene guile)))
+ .
+ each-any))))
+ (if tmp
+ (apply (lambda (p)
+ (if (= lev 0)
+ (quasiappend
+ (map (lambda (tmp) (list
"value" tmp)) p)
+ (vquasi q lev))
+ (quasicons
+ (quasicons
+ '("quote" #(syntax-object
unquote-splicing ((top)) (hygiene guile)))
+ (quasi p (- lev 1)))
+ (vquasi q lev))))
+ tmp)
+ (quasicons (quasi p lev) (vquasi q
lev))))))))
+ tmp-1)
+ (let ((tmp-1 ($sc-dispatch tmp '())))
+ (if tmp-1
+ (apply (lambda () '("quote" ())) tmp-1)
+ (syntax-violation
+ #f
+ "source expression failed to match any pattern"
+ tmp))))))))
+ (quasicons
+ (lambda (x y)
+ (let ((tmp-1 (list x y)))
+ (let ((tmp ($sc-dispatch tmp-1 '(any any))))
+ (if tmp
+ (apply (lambda (x y)
+ (let ((tmp y))
+ (let ((tmp-1 ($sc-dispatch tmp '(#(atom "quote")
any))))
+ (if tmp-1
+ (apply (lambda (dy)
+ (let ((tmp x))
+ (let ((tmp ($sc-dispatch tmp
'(#(atom "quote") any))))
+ (if tmp
+ (apply (lambda (dx) (list
"quote" (cons dx dy))) tmp)
+ (if (null? dy) (list "list" x)
(list "list*" x y))))))
+ tmp-1)
+ (let ((tmp-1 ($sc-dispatch tmp '(#(atom
"list") . any))))
+ (if tmp-1
+ (apply (lambda (stuff) (cons "list" (cons
x stuff))) tmp-1)
+ (let ((tmp ($sc-dispatch tmp '(#(atom
"list*") . any))))
+ (if tmp
+ (apply (lambda (stuff) (cons "list*"
(cons x stuff))) tmp)
+ (list "list*" x y)))))))))
+ tmp)
(syntax-violation
#f
"source expression failed to match any pattern"
- tmp-26068))))))
- (quasiappend-25795
- (lambda (x-26103 y-26104)
- (let ((tmp-26106
- ($sc-dispatch y-26104 '(#(atom "quote") ()))))
- (if tmp-26106
- (@apply
- (lambda ()
- (if (null? x-26103)
- '(#(syntax-object
- "quote"
- ((top)
- #(ribcage () () ())
- #(ribcage
- #(x y)
- #((top) (top))
- #("l-*-25636" "l-*-25637"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top) (top) (top) (top) (top) (top) (top))
- ("l-*-25552"
- "l-*-25550"
- "l-*-25548"
- "l-*-25546"
- "l-*-25544"
- "l-*-25542"
- "l-*-25540")))
- (hygiene guile))
- ())
- (if (null? (cdr x-26103))
- (car x-26103)
- (let ((tmp-26109 ($sc-dispatch x-26103 'each-any)))
- (if tmp-26109
- (@apply
- (lambda (p-26113)
- (cons '#(syntax-object
- "append"
- ((top)
- #(ribcage () () ())
- #(ribcage
- #(p)
- #((top))
- #("l-*-25644"))
- #(ribcage () () ())
- #(ribcage
- #(x y)
- #((top) (top))
- #("l-*-25636" "l-*-25637"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-25552"
- "l-*-25550"
- "l-*-25548"
- "l-*-25546"
- "l-*-25544"
- "l-*-25542"
- "l-*-25540")))
- (hygiene guile))
- p-26113))
- tmp-26109)
- (syntax-violation
- #f
- "source expression failed to match any pattern"
- x-26103))))))
- tmp-26106)
- (if (null? x-26103)
- y-26104
- (let ((tmp-26120 (list x-26103 y-26104)))
- (let ((tmp-26121
- ($sc-dispatch tmp-26120 '(each-any any))))
- (if tmp-26121
- (@apply
- (lambda (p-26123 y-26124)
- (cons '#(syntax-object
- "append"
- ((top)
- #(ribcage () () ())
- #(ribcage
- #(p y)
- #((top) (top))
- #("l-*-25651" "l-*-25652"))
- #(ribcage () () ())
- #(ribcage
- #(x y)
- #((top) (top))
- #("l-*-25636" "l-*-25637"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-25552"
- "l-*-25550"
- "l-*-25548"
- "l-*-25546"
- "l-*-25544"
- "l-*-25542"
- "l-*-25540")))
- (hygiene guile))
- (append p-26123 (list y-26124))))
- tmp-26121)
- (syntax-violation
- #f
- "source expression failed to match any pattern"
- tmp-26120)))))))))
- (quasilist*-25796
- (lambda (x-26126 y-26127)
- (letrec*
- ((f-26128
- (lambda (x-26217)
- (if (null? x-26217)
- y-26127
- (quasicons-25794
- (car x-26217)
- (f-26128 (cdr x-26217)))))))
- (f-26128 x-26126))))
- (emit-25798
- (lambda (x-26220)
- (let ((tmp-26222
- ($sc-dispatch x-26220 '(#(atom "quote") any))))
- (if tmp-26222
- (@apply
- (lambda (x-26226)
- (list '#(syntax-object
- quote
- ((top)
- #(ribcage #(x) #((top)) #("l-*-25716"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("l-*-25713"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top) (top) (top) (top) (top) (top) (top))
- ("l-*-25552"
- "l-*-25550"
- "l-*-25548"
- "l-*-25546"
- "l-*-25544"
- "l-*-25542"
- "l-*-25540")))
- (hygiene guile))
- x-26226))
- tmp-26222)
- (let ((tmp-26227
- ($sc-dispatch
- x-26220
- '(#(atom "list") . each-any))))
- (if tmp-26227
- (@apply
- (lambda (x-26231)
- (let ((tmp-26232 (map emit-25798 x-26231)))
- (let ((tmp-26233 ($sc-dispatch tmp-26232 'each-any)))
- (if tmp-26233
- (@apply
- (lambda (t-25721-26235)
- (cons '#(syntax-object
- list
- ((top)
- #(ribcage () () ())
- #(ribcage
- #(t-25721)
- #((m-*-25722 top))
- #("l-*-25726"))
- #(ribcage
- #(x)
- #((top))
- #("l-*-25719"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("l-*-25713"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-25552"
- "l-*-25550"
- "l-*-25548"
- "l-*-25546"
- "l-*-25544"
- "l-*-25542"
- "l-*-25540")))
- (hygiene guile))
- t-25721-26235))
- tmp-26233)
- (syntax-violation
- #f
- "source expression failed to match any pattern"
- tmp-26232)))))
- tmp-26227)
- (let ((tmp-26236
- ($sc-dispatch
- x-26220
- '(#(atom "list*") . #(each+ any (any) ())))))
- (if tmp-26236
- (@apply
- (lambda (x-26240 y-26241)
- (letrec*
- ((f-26242
- (lambda (x*-26245)
- (if (null? x*-26245)
- (emit-25798 y-26241)
- (let ((tmp-26246
- (list (emit-25798 (car x*-26245))
- (f-26242 (cdr x*-26245)))))
- (let ((tmp-26247
- ($sc-dispatch
- tmp-26246
- '(any any))))
- (if tmp-26247
- (@apply
- (lambda (t-25741-26249
- t-25740-26250)
- (list '#(syntax-object
- cons
- ((top)
- #(ribcage () () ())
- #(ribcage
- #(t-25741 t-25740)
- #((m-*-25742 top)
- (m-*-25742 top))
- #("l-*-25746"
- "l-*-25747"))
- #(ribcage () () ())
- #(ribcage
- #(f x*)
- #((top) (top))
- #("l-*-25735"
- "l-*-25736"))
- #(ribcage
- #(x y)
- #((top) (top))
- #("l-*-25731"
- "l-*-25732"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("l-*-25713"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-25552"
- "l-*-25550"
- "l-*-25548"
- "l-*-25546"
- "l-*-25544"
- "l-*-25542"
- "l-*-25540")))
- (hygiene guile))
- t-25741-26249
- t-25740-26250))
- tmp-26247)
- (syntax-violation
- #f
- "source expression failed to match
any pattern"
- tmp-26246))))))))
- (f-26242 x-26240)))
- tmp-26236)
- (let ((tmp-26251
- ($sc-dispatch
- x-26220
- '(#(atom "append") . each-any))))
- (if tmp-26251
- (@apply
- (lambda (x-26255)
- (let ((tmp-26256 (map emit-25798 x-26255)))
- (let ((tmp-26257
- ($sc-dispatch tmp-26256 'each-any)))
- (if tmp-26257
- (@apply
- (lambda (t-25753-26259)
- (cons '#(syntax-object
- append
- ((top)
- #(ribcage () () ())
- #(ribcage
- #(t-25753)
- #((m-*-25754 top))
- #("l-*-25758"))
- #(ribcage
- #(x)
- #((top))
- #("l-*-25751"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("l-*-25713"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-25552"
- "l-*-25550"
- "l-*-25548"
- "l-*-25546"
- "l-*-25544"
- "l-*-25542"
- "l-*-25540")))
- (hygiene guile))
- t-25753-26259))
- tmp-26257)
- (syntax-violation
- #f
- "source expression failed to match any
pattern"
- tmp-26256)))))
- tmp-26251)
- (let ((tmp-26260
- ($sc-dispatch
- x-26220
- '(#(atom "vector") . each-any))))
- (if tmp-26260
- (@apply
- (lambda (x-26264)
- (let ((tmp-26265 (map emit-25798 x-26264)))
- (let ((tmp-26266
- ($sc-dispatch
- tmp-26265
- 'each-any)))
- (if tmp-26266
- (@apply
- (lambda (t-25765-26268)
- (cons '#(syntax-object
- vector
- ((top)
- #(ribcage () () ())
- #(ribcage
- #(t-25765)
- #((m-*-25766 top))
- #("l-*-25770"))
- #(ribcage
- #(x)
- #((top))
- #("l-*-25763"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("l-*-25713"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-25552"
- "l-*-25550"
- "l-*-25548"
- "l-*-25546"
- "l-*-25544"
- "l-*-25542"
- "l-*-25540")))
- (hygiene guile))
- t-25765-26268))
- tmp-26266)
- (syntax-violation
- #f
- "source expression failed to match
any pattern"
- tmp-26265)))))
- tmp-26260)
- (let ((tmp-26269
- ($sc-dispatch
- x-26220
- '(#(atom "list->vector") any))))
- (if tmp-26269
- (@apply
- (lambda (x-26273)
- (let ((tmp-26274 (emit-25798 x-26273)))
- (list '#(syntax-object
- list->vector
- ((top)
- #(ribcage () () ())
- #(ribcage
- #(t-25777)
- #((m-*-25778 top))
- #("l-*-25781"))
- #(ribcage
- #(x)
- #((top))
- #("l-*-25775"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("l-*-25713"))
- #(ribcage
- (emit quasivector
- quasilist*
- quasiappend
- quasicons
- vquasi
- quasi)
- ((top)
- (top)
- (top)
- (top)
- (top)
- (top)
- (top))
- ("l-*-25552"
- "l-*-25550"
- "l-*-25548"
- "l-*-25546"
- "l-*-25544"
- "l-*-25542"
- "l-*-25540")))
- (hygiene guile))
- tmp-26274)))
- tmp-26269)
- (let ((tmp-26277
- ($sc-dispatch
- x-26220
- '(#(atom "value") any))))
- (if tmp-26277
- (@apply
- (lambda (x-26281) x-26281)
- tmp-26277)
- (syntax-violation
- #f
- "source expression failed to match
any pattern"
- x-26220))))))))))))))))))
- (lambda (x-25799)
- (let ((tmp-25801 ($sc-dispatch x-25799 '(_ any))))
- (if tmp-25801
- (@apply
- (lambda (e-25805)
- (emit-25798 (quasi-25792 e-25805 0)))
- tmp-25801)
- (syntax-violation
- #f
- "source expression failed to match any pattern"
- x-25799)))))))
+ tmp-1))))))
+ (quasiappend
+ (lambda (x y)
+ (let ((tmp y))
+ (let ((tmp ($sc-dispatch tmp '(#(atom "quote") ()))))
+ (if tmp
+ (apply (lambda ()
+ (if (null? x)
+ '("quote" ())
+ (if (null? (cdr x))
+ (car x)
+ (let ((tmp-1 x))
+ (let ((tmp ($sc-dispatch tmp-1 'each-any)))
+ (if tmp
+ (apply (lambda (p) (cons "append" p)) tmp)
+ (syntax-violation
+ #f
+ "source expression failed to match any
pattern"
+ tmp-1)))))))
+ tmp)
+ (if (null? x)
+ y
+ (let ((tmp-1 (list x y)))
+ (let ((tmp ($sc-dispatch tmp-1 '(each-any any))))
+ (if tmp
+ (apply (lambda (p y) (cons "append" (append p (list
y)))) tmp)
+ (syntax-violation
+ #f
+ "source expression failed to match any pattern"
+ tmp-1))))))))))
+ (quasilist*
+ (lambda (x y)
+ (let f ((x x)) (if (null? x) y (quasicons (car x) (f (cdr x)))))))
+ (quasivector
+ (lambda (x)
+ (let ((tmp x))
+ (let ((tmp ($sc-dispatch tmp '(#(atom "quote") each-any))))
+ (if tmp
+ (apply (lambda (x) (list "quote" (list->vector x))) tmp)
+ (let f ((y x)
+ (k (lambda (ls)
+ (let ((tmp-1 ls))
+ (let ((tmp ($sc-dispatch tmp-1 'each-any)))
+ (if tmp
+ (apply (lambda (t) (cons "vector" t)) tmp)
+ (syntax-violation
+ #f
+ "source expression failed to match any
pattern"
+ tmp-1)))))))
+ (let ((tmp y))
+ (let ((tmp-1 ($sc-dispatch tmp '(#(atom "quote")
each-any))))
+ (if tmp-1
+ (apply (lambda (y) (k (map (lambda (tmp) (list
"quote" tmp)) y)))
+ tmp-1)
+ (let ((tmp-1 ($sc-dispatch tmp '(#(atom "list") .
each-any))))
+ (if tmp-1
+ (apply (lambda (y) (k y)) tmp-1)
+ (let ((tmp-1 ($sc-dispatch tmp '(#(atom "list*")
. #(each+ any (any) ())))))
+ (if tmp-1
+ (apply (lambda (y z) (f z (lambda (ls) (k
(append y ls))))) tmp-1)
+ (let ((else tmp))
+ (let ((tmp x)) (let ((t tmp)) (list
"list->vector" t)))))))))))))))))
+ (emit (lambda (x)
+ (let ((tmp x))
+ (let ((tmp-1 ($sc-dispatch tmp '(#(atom "quote") any))))
+ (if tmp-1
+ (apply (lambda (x) (list '#(syntax-object quote ((top))
(hygiene guile)) x))
+ tmp-1)
+ (let ((tmp-1 ($sc-dispatch tmp '(#(atom "list") .
each-any))))
+ (if tmp-1
+ (apply (lambda (x)
+ (let ((tmp-1 (map emit x)))
+ (let ((tmp ($sc-dispatch tmp-1 'each-any)))
+ (if tmp
+ (apply (lambda (t) (cons
'#(syntax-object list ((top)) (hygiene guile)) t))
+ tmp)
+ (syntax-violation
+ #f
+ "source expression failed to match
any pattern"
+ tmp-1)))))
+ tmp-1)
+ (let ((tmp-1 ($sc-dispatch tmp '(#(atom "list*") .
#(each+ any (any) ())))))
+ (if tmp-1
+ (apply (lambda (x y)
+ (let f ((x* x))
+ (if (null? x*)
+ (emit y)
+ (let ((tmp-1 (list (emit (car x*))
(f (cdr x*)))))
+ (let ((tmp ($sc-dispatch tmp-1
'(any any))))
+ (if tmp
+ (apply (lambda (t-1 t)
+ (list
'#(syntax-object cons ((top)) (hygiene guile)) t-1 t))
+ tmp)
+ (syntax-violation
+ #f
+ "source expression failed to
match any pattern"
+ tmp-1)))))))
+ tmp-1)
+ (let ((tmp-1 ($sc-dispatch tmp '(#(atom "append")
. each-any))))
+ (if tmp-1
+ (apply (lambda (x)
+ (let ((tmp-1 (map emit x)))
+ (let ((tmp ($sc-dispatch tmp-1
'each-any)))
+ (if tmp
+ (apply (lambda (t)
+ (cons
'#(syntax-object append ((top)) (hygiene guile)) t))
+ tmp)
+ (syntax-violation
+ #f
+ "source expression failed to
match any pattern"
+ tmp-1)))))
+ tmp-1)
+ (let ((tmp-1 ($sc-dispatch tmp '(#(atom
"vector") . each-any))))
+ (if tmp-1
+ (apply (lambda (x)
+ (let ((tmp-1 (map emit x)))
+ (let ((tmp ($sc-dispatch tmp-1
'each-any)))
+ (if tmp
+ (apply (lambda (t)
+ (cons
'#(syntax-object vector ((top)) (hygiene guile)) t))
+ tmp)
+ (syntax-violation
+ #f
+ "source expression
failed to match any pattern"
+ tmp-1)))))
+ tmp-1)
+ (let ((tmp-1 ($sc-dispatch tmp '(#(atom
"list->vector") any))))
+ (if tmp-1
+ (apply (lambda (x)
+ (let ((tmp (emit x)))
+ (let ((t tmp))
+ (list '#(syntax-object
list->vector ((top)) (hygiene guile)) t))))
+ tmp-1)
+ (let ((tmp-1 ($sc-dispatch tmp
'(#(atom "value") any))))
+ (if tmp-1
+ (apply (lambda (x) x) tmp-1)
+ (syntax-violation
+ #f
+ "source expression failed to
match any pattern"
+ tmp)))))))))))))))))))
+ (lambda (x)
+ (let ((tmp-1 x))
+ (let ((tmp ($sc-dispatch tmp-1 '(_ any))))
+ (if tmp
+ (apply (lambda (e) (emit (quasi e 0))) tmp)
+ (syntax-violation
+ #f
+ "source expression failed to match any pattern"
+ tmp-1))))))))
(define include
(make-syntax-transformer
'include
'macro
- (lambda (x-26336)
+ (lambda (x)
(letrec*
- ((read-file-26337
- (lambda (fn-26446 k-26447)
- (let ((p-26448 (open-input-file fn-26446)))
- (letrec*
- ((f-26449
- (lambda (x-26503 result-26504)
- (if (eof-object? x-26503)
- (begin
- (close-input-port p-26448)
- (reverse result-26504))
- (f-26449
- (read p-26448)
- (cons (datum->syntax k-26447 x-26503)
- result-26504))))))
- (f-26449 (read p-26448) '()))))))
- (let ((tmp-26339 ($sc-dispatch x-26336 '(any any))))
- (if tmp-26339
- (@apply
- (lambda (k-26343 filename-26344)
- (let ((fn-26345 (syntax->datum filename-26344)))
- (let ((tmp-26346
- (read-file-26337 fn-26345 filename-26344)))
- (let ((tmp-26347 ($sc-dispatch tmp-26346 'each-any)))
- (if tmp-26347
- (@apply
- (lambda (exp-26365)
- (cons '#(syntax-object
- begin
- ((top)
- #(ribcage () () ())
- #(ribcage #(exp) #((top)) #("l-*-26333"))
- #(ribcage () () ())
- #(ribcage () () ())
- #(ribcage #(fn) #((top)) #("l-*-26328"))
- #(ribcage
- #(k filename)
- #((top) (top))
- #("l-*-26324" "l-*-26325"))
- #(ribcage
- (read-file)
- ((top))
- ("l-*-26308"))
- #(ribcage #(x) #((top)) #("l-*-26307")))
- (hygiene guile))
- exp-26365))
- tmp-26347)
- (syntax-violation
- #f
- "source expression failed to match any pattern"
- tmp-26346))))))
- tmp-26339)
- (syntax-violation
- #f
- "source expression failed to match any pattern"
- x-26336)))))))
+ ((read-file
+ (lambda (fn k)
+ (let ((p (open-input-file fn)))
+ (let f ((x (read p)) (result '()))
+ (if (eof-object? x)
+ (begin (close-input-port p) (reverse result))
+ (f (read p) (cons (datum->syntax k x) result))))))))
+ (let ((tmp-1 x))
+ (let ((tmp ($sc-dispatch tmp-1 '(any any))))
+ (if tmp
+ (apply (lambda (k filename)
+ (let ((fn (syntax->datum filename)))
+ (let ((tmp-1 (read-file fn filename)))
+ (let ((tmp ($sc-dispatch tmp-1 'each-any)))
+ (if tmp
+ (apply (lambda (exp)
+ (cons '#(syntax-object begin ((top))
(hygiene guile)) exp))
+ tmp)
+ (syntax-violation
+ #f
+ "source expression failed to match any
pattern"
+ tmp-1))))))
+ tmp)
+ (syntax-violation
+ #f
+ "source expression failed to match any pattern"
+ tmp-1))))))))
(define include-from-path
(make-syntax-transformer
'include-from-path
'macro
- (lambda (x-26523)
- (let ((tmp-26525 ($sc-dispatch x-26523 '(any any))))
- (if tmp-26525
- (@apply
- (lambda (k-26529 filename-26530)
- (let ((fn-26531 (syntax->datum filename-26530)))
- (let ((tmp-26532
- (datum->syntax
- filename-26530
- (let ((t-26535 (%search-load-path fn-26531)))
- (if t-26535
- t-26535
- (syntax-violation
- 'include-from-path
- "file not found in path"
- x-26523
- filename-26530))))))
- (list '#(syntax-object
- include
- ((top)
- #(ribcage () () ())
- #(ribcage #(fn) #((top)) #("l-*-26517"))
- #(ribcage () () ())
- #(ribcage () () ())
- #(ribcage #(fn) #((top)) #("l-*-26513"))
- #(ribcage
- #(k filename)
- #((top) (top))
- #("l-*-26509" "l-*-26510"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("l-*-26506")))
- (hygiene guile))
- tmp-26532))))
- tmp-26525)
- (syntax-violation
- #f
- "source expression failed to match any pattern"
- x-26523))))))
+ (lambda (x)
+ (let ((tmp-1 x))
+ (let ((tmp ($sc-dispatch tmp-1 '(any any))))
+ (if tmp
+ (apply (lambda (k filename)
+ (let ((fn (syntax->datum filename)))
+ (let ((tmp (datum->syntax
+ filename
+ (let ((t (%search-load-path fn)))
+ (if t
+ t
+ (syntax-violation
+ 'include-from-path
+ "file not found in path"
+ x
+ filename))))))
+ (let ((fn tmp))
+ (list '#(syntax-object include ((top)) (hygiene
guile)) fn)))))
+ tmp)
+ (syntax-violation
+ #f
+ "source expression failed to match any pattern"
+ tmp-1)))))))
(define unquote
(make-syntax-transformer
'unquote
'macro
- (lambda (x-26544)
+ (lambda (x)
(syntax-violation
'unquote
"expression not valid outside of quasiquote"
- x-26544))))
+ x))))
(define unquote-splicing
(make-syntax-transformer
'unquote-splicing
'macro
- (lambda (x-26547)
+ (lambda (x)
(syntax-violation
'unquote-splicing
"expression not valid outside of quasiquote"
- x-26547))))
+ x))))
(define case
(make-syntax-transformer
'case
'macro
- (lambda (x-26599)
- (let ((tmp-26601
- ($sc-dispatch x-26599 '(_ any any . each-any))))
- (if tmp-26601
- (@apply
- (lambda (e-26605 m1-26606 m2-26607)
- (let ((tmp-26608
- (letrec*
- ((f-26652
- (lambda (clause-26655 clauses-26656)
- (if (null? clauses-26656)
- (let ((tmp-26658
- ($sc-dispatch
- clause-26655
- '(#(free-id
- #(syntax-object
- else
- ((top)
- #(ribcage () () ())
- #(ribcage
- #(f clause clauses)
- #((top) (top) (top))
- #("l-*-26562"
- "l-*-26563"
- "l-*-26564"))
- #(ribcage
- #(e m1 m2)
- #((top) (top) (top))
- #("l-*-26552"
- "l-*-26553"
- "l-*-26554"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("l-*-26549")))
- (hygiene guile)))
- any
- .
- each-any))))
- (if tmp-26658
- (@apply
- (lambda (e1-26662 e2-26663)
- (cons '#(syntax-object
- begin
- ((top)
- #(ribcage
- #(e1 e2)
- #((top) (top))
- #("l-*-26571" "l-*-26572"))
- #(ribcage () () ())
- #(ribcage
- #(f clause clauses)
- #((top) (top) (top))
- #("l-*-26562"
- "l-*-26563"
- "l-*-26564"))
- #(ribcage
- #(e m1 m2)
- #((top) (top) (top))
- #("l-*-26552"
- "l-*-26553"
- "l-*-26554"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("l-*-26549")))
- (hygiene guile))
- (cons e1-26662 e2-26663)))
- tmp-26658)
- (let ((tmp-26664
- ($sc-dispatch
- clause-26655
- '(each-any any . each-any))))
- (if tmp-26664
- (@apply
- (lambda (k-26668 e1-26669 e2-26670)
- (list '#(syntax-object
- if
- ((top)
- #(ribcage
- #(k e1 e2)
- #((top) (top) (top))
- #("l-*-26577"
- "l-*-26578"
- "l-*-26579"))
- #(ribcage () () ())
- #(ribcage
- #(f clause clauses)
- #((top) (top) (top))
- #("l-*-26562"
- "l-*-26563"
- "l-*-26564"))
- #(ribcage
- #(e m1 m2)
- #((top) (top) (top))
- #("l-*-26552"
- "l-*-26553"
- "l-*-26554"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("l-*-26549")))
- (hygiene guile))
- (list '#(syntax-object
- memv
- ((top)
- #(ribcage
- #(k e1 e2)
- #((top)
- (top)
- (top))
- #("l-*-26577"
- "l-*-26578"
- "l-*-26579"))
- #(ribcage () () ())
- #(ribcage
- #(f
- clause
- clauses)
- #((top)
- (top)
- (top))
- #("l-*-26562"
- "l-*-26563"
- "l-*-26564"))
- #(ribcage
- #(e m1 m2)
- #((top)
- (top)
- (top))
- #("l-*-26552"
- "l-*-26553"
- "l-*-26554"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("l-*-26549")))
- (hygiene guile))
- '#(syntax-object
- t
- ((top)
- #(ribcage
- #(k e1 e2)
- #((top)
- (top)
- (top))
- #("l-*-26577"
- "l-*-26578"
- "l-*-26579"))
- #(ribcage () () ())
- #(ribcage
- #(f
- clause
- clauses)
- #((top)
- (top)
- (top))
- #("l-*-26562"
- "l-*-26563"
- "l-*-26564"))
- #(ribcage
- #(e m1 m2)
- #((top)
- (top)
- (top))
- #("l-*-26552"
- "l-*-26553"
- "l-*-26554"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("l-*-26549")))
- (hygiene guile))
- (list '#(syntax-object
- quote
- ((top)
- #(ribcage
- #(k e1 e2)
- #((top)
- (top)
- (top))
-
#("l-*-26577"
-
"l-*-26578"
-
"l-*-26579"))
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(f
- clause
- clauses)
- #((top)
- (top)
- (top))
-
#("l-*-26562"
-
"l-*-26563"
-
"l-*-26564"))
- #(ribcage
- #(e m1 m2)
- #((top)
- (top)
- (top))
-
#("l-*-26552"
-
"l-*-26553"
-
"l-*-26554"))
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(x)
- #((top))
-
#("l-*-26549")))
- (hygiene
- guile))
- k-26668))
- (cons '#(syntax-object
- begin
- ((top)
- #(ribcage
- #(k e1 e2)
- #((top)
- (top)
- (top))
- #("l-*-26577"
- "l-*-26578"
- "l-*-26579"))
- #(ribcage () () ())
- #(ribcage
- #(f
- clause
- clauses)
- #((top)
- (top)
- (top))
- #("l-*-26562"
- "l-*-26563"
- "l-*-26564"))
- #(ribcage
- #(e m1 m2)
- #((top)
- (top)
- (top))
- #("l-*-26552"
- "l-*-26553"
- "l-*-26554"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("l-*-26549")))
- (hygiene guile))
- (cons e1-26669
- e2-26670))))
- tmp-26664)
- (syntax-violation
- 'case
- "bad clause"
- x-26599
- clause-26655)))))
- (let ((tmp-26677
- (f-26652
- (car clauses-26656)
- (cdr clauses-26656))))
- (let ((tmp-26680
- ($sc-dispatch
- clause-26655
- '(each-any any . each-any))))
- (if tmp-26680
- (@apply
- (lambda (k-26682 e1-26683 e2-26684)
- (list '#(syntax-object
- if
- ((top)
- #(ribcage
- #(k e1 e2)
- #((top) (top) (top))
- #("l-*-26591"
- "l-*-26592"
- "l-*-26593"))
- #(ribcage () () ())
- #(ribcage
- #(rest)
- #((top))
- #("l-*-26587"))
- #(ribcage () () ())
- #(ribcage
- #(f clause clauses)
- #((top) (top) (top))
- #("l-*-26562"
- "l-*-26563"
- "l-*-26564"))
- #(ribcage
- #(e m1 m2)
- #((top) (top) (top))
- #("l-*-26552"
- "l-*-26553"
- "l-*-26554"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("l-*-26549")))
- (hygiene guile))
- (list '#(syntax-object
- memv
- ((top)
- #(ribcage
- #(k e1 e2)
- #((top) (top) (top))
- #("l-*-26591"
- "l-*-26592"
- "l-*-26593"))
- #(ribcage () () ())
- #(ribcage
- #(rest)
- #((top))
- #("l-*-26587"))
- #(ribcage () () ())
- #(ribcage
- #(f clause clauses)
- #((top) (top) (top))
- #("l-*-26562"
- "l-*-26563"
- "l-*-26564"))
- #(ribcage
- #(e m1 m2)
- #((top) (top) (top))
- #("l-*-26552"
- "l-*-26553"
- "l-*-26554"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("l-*-26549")))
- (hygiene guile))
- '#(syntax-object
- t
- ((top)
- #(ribcage
- #(k e1 e2)
- #((top) (top) (top))
- #("l-*-26591"
- "l-*-26592"
- "l-*-26593"))
- #(ribcage () () ())
- #(ribcage
- #(rest)
- #((top))
- #("l-*-26587"))
- #(ribcage () () ())
- #(ribcage
- #(f clause clauses)
- #((top) (top) (top))
- #("l-*-26562"
- "l-*-26563"
- "l-*-26564"))
- #(ribcage
- #(e m1 m2)
- #((top) (top) (top))
- #("l-*-26552"
- "l-*-26553"
- "l-*-26554"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("l-*-26549")))
- (hygiene guile))
- (list '#(syntax-object
- quote
- ((top)
- #(ribcage
- #(k e1 e2)
- #((top)
- (top)
- (top))
- #("l-*-26591"
- "l-*-26592"
-
"l-*-26593"))
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(rest)
- #((top))
-
#("l-*-26587"))
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(f
- clause
- clauses)
- #((top)
- (top)
- (top))
- #("l-*-26562"
- "l-*-26563"
-
"l-*-26564"))
- #(ribcage
- #(e m1 m2)
- #((top)
- (top)
- (top))
- #("l-*-26552"
- "l-*-26553"
-
"l-*-26554"))
- #(ribcage
- ()
- ()
- ())
- #(ribcage
- #(x)
- #((top))
-
#("l-*-26549")))
- (hygiene guile))
- k-26682))
- (cons '#(syntax-object
- begin
- ((top)
- #(ribcage
- #(k e1 e2)
- #((top) (top) (top))
- #("l-*-26591"
- "l-*-26592"
- "l-*-26593"))
- #(ribcage () () ())
- #(ribcage
- #(rest)
- #((top))
- #("l-*-26587"))
- #(ribcage () () ())
- #(ribcage
- #(f clause clauses)
- #((top) (top) (top))
- #("l-*-26562"
- "l-*-26563"
- "l-*-26564"))
- #(ribcage
- #(e m1 m2)
- #((top) (top) (top))
- #("l-*-26552"
- "l-*-26553"
- "l-*-26554"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("l-*-26549")))
- (hygiene guile))
- (cons e1-26683 e2-26684))
- tmp-26677))
- tmp-26680)
- (syntax-violation
- 'case
- "bad clause"
- x-26599
- clause-26655))))))))
- (f-26652 m1-26606 m2-26607))))
- (let ((body-26609 tmp-26608))
- (list '#(syntax-object
- let
- ((top)
- #(ribcage () () ())
- #(ribcage #(body) #((top)) #("l-*-26560"))
- #(ribcage
- #(e m1 m2)
- #((top) (top) (top))
- #("l-*-26552" "l-*-26553" "l-*-26554"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("l-*-26549")))
- (hygiene guile))
- (list (list '#(syntax-object
- t
- ((top)
- #(ribcage () () ())
- #(ribcage
- #(body)
- #((top))
- #("l-*-26560"))
- #(ribcage
- #(e m1 m2)
- #((top) (top) (top))
- #("l-*-26552"
- "l-*-26553"
- "l-*-26554"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("l-*-26549")))
- (hygiene guile))
- e-26605))
- body-26609))))
- tmp-26601)
- (syntax-violation
- #f
- "source expression failed to match any pattern"
- x-26599))))))
+ (lambda (x)
+ (let ((tmp-1 x))
+ (let ((tmp ($sc-dispatch tmp-1 '(_ any any . each-any))))
+ (if tmp
+ (apply (lambda (e m1 m2)
+ (let ((tmp (let f ((clause m1) (clauses m2))
+ (if (null? clauses)
+ (let ((tmp-1 clause))
+ (let ((tmp ($sc-dispatch
+ tmp-1
+ '(#(free-id #(syntax-object
else ((top)) (hygiene guile)))
+ any
+ .
+ each-any))))
+ (if tmp
+ (apply (lambda (e1 e2)
+ (cons '#(syntax-object
begin ((top)) (hygiene guile)) (cons e1 e2)))
+ tmp)
+ (let ((tmp ($sc-dispatch tmp-1
'(each-any any . each-any))))
+ (if tmp
+ (apply (lambda (k e1 e2)
+ (list '#(syntax-object
if ((top)) (hygiene guile))
+ (list
'#(syntax-object memv ((top)) (hygiene guile))
+
'#(syntax-object t ((top)) (hygiene guile))
+ (list
'#(syntax-object quote ((top)) (hygiene guile))
+ k))
+ (cons
'#(syntax-object begin ((top)) (hygiene guile))
+ (cons e1
e2))))
+ tmp)
+ (syntax-violation 'case "bad
clause" x clause))))))
+ (let ((tmp (f (car clauses) (cdr
clauses))))
+ (let ((rest tmp))
+ (let ((tmp clause))
+ (let ((tmp ($sc-dispatch tmp
'(each-any any . each-any))))
+ (if tmp
+ (apply (lambda (k e1 e2)
+ (list '#(syntax-object
if ((top)) (hygiene guile))
+ (list
'#(syntax-object memv ((top)) (hygiene guile))
+
'#(syntax-object t ((top)) (hygiene guile))
+ (list
'#(syntax-object quote ((top)) (hygiene guile))
+ k))
+ (cons
'#(syntax-object begin ((top)) (hygiene guile))
+ (cons e1
e2))
+ rest))
+ tmp)
+ (syntax-violation 'case "bad
clause" x clause))))))))))
+ (let ((body tmp))
+ (list '#(syntax-object let ((top)) (hygiene guile))
+ (list (list '#(syntax-object t ((top)) (hygiene
guile)) e))
+ body))))
+ tmp)
+ (syntax-violation
+ #f
+ "source expression failed to match any pattern"
+ tmp-1)))))))
(define make-variable-transformer
- (lambda (proc-26699)
- (if (procedure? proc-26699)
- (letrec*
- ((trans-26700
- (lambda (x-26706) (proc-26699 x-26706))))
- (begin
- (set-procedure-property!
- trans-26700
- 'variable-transformer
- #t)
- trans-26700))
- (error "variable transformer not a procedure"
- proc-26699))))
+ (lambda (proc)
+ (if (procedure? proc)
+ (let ((trans (lambda (x) (proc x))))
+ (set-procedure-property! trans 'variable-transformer #t)
+ trans)
+ (error "variable transformer not a procedure" proc))))
(define identifier-syntax
(make-syntax-transformer
'identifier-syntax
'macro
- (lambda (x-26738)
- (let ((tmp-26740 ($sc-dispatch x-26738 '(_ any))))
- (if tmp-26740
- (@apply
- (lambda (e-26744)
- (list '#(syntax-object
- lambda
- ((top)
- #(ribcage #(e) #((top)) #("l-*-26713"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("l-*-26710")))
- (hygiene guile))
- '(#(syntax-object
- x
- ((top)
- #(ribcage #(e) #((top)) #("l-*-26713"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("l-*-26710")))
- (hygiene guile)))
- '#((#(syntax-object
- macro-type
- ((top)
- #(ribcage #(e) #((top)) #("l-*-26713"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("l-*-26710")))
- (hygiene guile))
- .
- #(syntax-object
- identifier-syntax
- ((top)
- #(ribcage #(e) #((top)) #("l-*-26713"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("l-*-26710")))
- (hygiene guile))))
- (list '#(syntax-object
- syntax-case
- ((top)
- #(ribcage #(e) #((top)) #("l-*-26713"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("l-*-26710")))
- (hygiene guile))
- '#(syntax-object
- x
- ((top)
- #(ribcage #(e) #((top)) #("l-*-26713"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("l-*-26710")))
- (hygiene guile))
- '()
- (list '#(syntax-object
- id
- ((top)
- #(ribcage #(e) #((top)) #("l-*-26713"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("l-*-26710")))
- (hygiene guile))
- '(#(syntax-object
- identifier?
- ((top)
- #(ribcage #(e) #((top)) #("l-*-26713"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("l-*-26710")))
- (hygiene guile))
- (#(syntax-object
- syntax
- ((top)
- #(ribcage #(e) #((top)) #("l-*-26713"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("l-*-26710")))
- (hygiene guile))
- #(syntax-object
- id
- ((top)
- #(ribcage #(e) #((top)) #("l-*-26713"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("l-*-26710")))
- (hygiene guile))))
- (list '#(syntax-object
- syntax
- ((top)
- #(ribcage
- #(e)
- #((top))
- #("l-*-26713"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("l-*-26710")))
- (hygiene guile))
- e-26744))
- (list '(#(syntax-object
- _
- ((top)
- #(ribcage #(e) #((top)) #("l-*-26713"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("l-*-26710")))
- (hygiene guile))
- #(syntax-object
- x
- ((top)
- #(ribcage #(e) #((top)) #("l-*-26713"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("l-*-26710")))
- (hygiene guile))
- #(syntax-object
- ...
- ((top)
- #(ribcage #(e) #((top)) #("l-*-26713"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("l-*-26710")))
- (hygiene guile)))
- (list '#(syntax-object
- syntax
- ((top)
- #(ribcage
- #(e)
- #((top))
- #("l-*-26713"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("l-*-26710")))
- (hygiene guile))
- (cons e-26744
- '(#(syntax-object
- x
- ((top)
- #(ribcage
- #(e)
- #((top))
- #("l-*-26713"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("l-*-26710")))
- (hygiene guile))
- #(syntax-object
- ...
- ((top)
- #(ribcage
- #(e)
- #((top))
- #("l-*-26713"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("l-*-26710")))
- (hygiene guile)))))))))
- tmp-26740)
- (let ((tmp-26745
- ($sc-dispatch
- x-26738
- '(_ (any any)
- ((#(free-id
- #(syntax-object
- set!
- ((top)
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("l-*-26710")))
- (hygiene guile)))
- any
- any)
- any)))))
- (if (if tmp-26745
- (@apply
- (lambda (id-26749
- exp1-26750
- var-26751
- val-26752
- exp2-26753)
- (if (identifier? id-26749)
- (identifier? var-26751)
- #f))
- tmp-26745)
- #f)
- (@apply
- (lambda (id-26754
- exp1-26755
- var-26756
- val-26757
- exp2-26758)
- (list '#(syntax-object
- make-variable-transformer
- ((top)
- #(ribcage
- #(id exp1 var val exp2)
- #((top) (top) (top) (top) (top))
- #("l-*-26728"
- "l-*-26729"
- "l-*-26730"
- "l-*-26731"
- "l-*-26732"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("l-*-26710")))
- (hygiene guile))
- (list '#(syntax-object
- lambda
- ((top)
- #(ribcage
- #(id exp1 var val exp2)
- #((top) (top) (top) (top) (top))
- #("l-*-26728"
- "l-*-26729"
- "l-*-26730"
- "l-*-26731"
- "l-*-26732"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("l-*-26710")))
- (hygiene guile))
- '(#(syntax-object
- x
- ((top)
- #(ribcage
- #(id exp1 var val exp2)
- #((top) (top) (top) (top) (top))
- #("l-*-26728"
- "l-*-26729"
- "l-*-26730"
- "l-*-26731"
- "l-*-26732"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("l-*-26710")))
- (hygiene guile)))
- '#((#(syntax-object
- macro-type
- ((top)
- #(ribcage
- #(id exp1 var val exp2)
- #((top) (top) (top) (top) (top))
- #("l-*-26728"
- "l-*-26729"
- "l-*-26730"
- "l-*-26731"
- "l-*-26732"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("l-*-26710")))
- (hygiene guile))
- .
- #(syntax-object
- variable-transformer
- ((top)
- #(ribcage
- #(id exp1 var val exp2)
- #((top) (top) (top) (top) (top))
- #("l-*-26728"
- "l-*-26729"
- "l-*-26730"
- "l-*-26731"
- "l-*-26732"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("l-*-26710")))
- (hygiene guile))))
- (list '#(syntax-object
- syntax-case
- ((top)
- #(ribcage
- #(id exp1 var val exp2)
- #((top) (top) (top) (top) (top))
- #("l-*-26728"
- "l-*-26729"
- "l-*-26730"
- "l-*-26731"
- "l-*-26732"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("l-*-26710")))
- (hygiene guile))
- '#(syntax-object
- x
- ((top)
- #(ribcage
- #(id exp1 var val exp2)
- #((top) (top) (top) (top) (top))
- #("l-*-26728"
- "l-*-26729"
- "l-*-26730"
- "l-*-26731"
- "l-*-26732"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("l-*-26710")))
- (hygiene guile))
- '(#(syntax-object
- set!
- ((top)
- #(ribcage
- #(id exp1 var val exp2)
- #((top) (top) (top) (top) (top))
- #("l-*-26728"
- "l-*-26729"
- "l-*-26730"
- "l-*-26731"
- "l-*-26732"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("l-*-26710")))
- (hygiene guile)))
- (list (list '#(syntax-object
- set!
- ((top)
- #(ribcage
- #(id exp1 var val exp2)
- #((top)
- (top)
- (top)
- (top)
- (top))
- #("l-*-26728"
- "l-*-26729"
- "l-*-26730"
- "l-*-26731"
- "l-*-26732"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("l-*-26710")))
- (hygiene guile))
- var-26756
- val-26757)
- (list '#(syntax-object
- syntax
- ((top)
- #(ribcage
- #(id exp1 var val exp2)
- #((top)
- (top)
- (top)
- (top)
- (top))
- #("l-*-26728"
- "l-*-26729"
- "l-*-26730"
- "l-*-26731"
- "l-*-26732"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("l-*-26710")))
- (hygiene guile))
- exp2-26758))
- (list (cons id-26754
- '(#(syntax-object
- x
- ((top)
- #(ribcage
- #(id exp1 var val exp2)
- #((top)
- (top)
- (top)
- (top)
- (top))
- #("l-*-26728"
- "l-*-26729"
- "l-*-26730"
- "l-*-26731"
- "l-*-26732"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("l-*-26710")))
- (hygiene guile))
- #(syntax-object
- ...
- ((top)
- #(ribcage
- #(id exp1 var val exp2)
- #((top)
- (top)
- (top)
- (top)
- (top))
- #("l-*-26728"
- "l-*-26729"
- "l-*-26730"
- "l-*-26731"
- "l-*-26732"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("l-*-26710")))
- (hygiene guile))))
- (list '#(syntax-object
- syntax
- ((top)
- #(ribcage
- #(id exp1 var val exp2)
- #((top)
- (top)
- (top)
- (top)
- (top))
- #("l-*-26728"
- "l-*-26729"
- "l-*-26730"
- "l-*-26731"
- "l-*-26732"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("l-*-26710")))
- (hygiene guile))
- (cons exp1-26755
- '(#(syntax-object
- x
- ((top)
- #(ribcage
- #(id
- exp1
- var
- val
- exp2)
- #((top)
- (top)
- (top)
- (top)
- (top))
- #("l-*-26728"
- "l-*-26729"
- "l-*-26730"
- "l-*-26731"
- "l-*-26732"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("l-*-26710")))
- (hygiene guile))
- #(syntax-object
- ...
- ((top)
- #(ribcage
- #(id
- exp1
- var
- val
- exp2)
- #((top)
- (top)
- (top)
- (top)
- (top))
- #("l-*-26728"
- "l-*-26729"
- "l-*-26730"
- "l-*-26731"
- "l-*-26732"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("l-*-26710")))
- (hygiene guile))))))
- (list id-26754
- (list '#(syntax-object
- identifier?
- ((top)
- #(ribcage
- #(id exp1 var val exp2)
- #((top)
- (top)
- (top)
- (top)
- (top))
- #("l-*-26728"
- "l-*-26729"
- "l-*-26730"
- "l-*-26731"
- "l-*-26732"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("l-*-26710")))
- (hygiene guile))
- (list '#(syntax-object
- syntax
- ((top)
- #(ribcage
- #(id
- exp1
- var
- val
- exp2)
- #((top)
- (top)
- (top)
- (top)
- (top))
- #("l-*-26728"
- "l-*-26729"
- "l-*-26730"
- "l-*-26731"
- "l-*-26732"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("l-*-26710")))
- (hygiene guile))
- id-26754))
- (list '#(syntax-object
- syntax
- ((top)
- #(ribcage
- #(id exp1 var val exp2)
- #((top)
- (top)
- (top)
- (top)
- (top))
- #("l-*-26728"
- "l-*-26729"
- "l-*-26730"
- "l-*-26731"
- "l-*-26732"))
- #(ribcage () () ())
- #(ribcage
- #(x)
- #((top))
- #("l-*-26710")))
- (hygiene guile))
- exp1-26755))))))
- tmp-26745)
- (syntax-violation
- #f
- "source expression failed to match any pattern"
- x-26738))))))))
+ (lambda (xx)
+ (let ((tmp-1 xx))
+ (let ((tmp ($sc-dispatch tmp-1 '(_ any))))
+ (if tmp
+ (apply (lambda (e)
+ (list '#(syntax-object lambda ((top)) (hygiene guile))
+ '(#(syntax-object x ((top)) (hygiene guile)))
+ '#((#(syntax-object macro-type ((top)) (hygiene
guile))
+ .
+ #(syntax-object identifier-syntax ((top))
(hygiene guile))))
+ (list '#(syntax-object syntax-case ((top)) (hygiene
guile))
+ '#(syntax-object x ((top)) (hygiene guile))
+ '()
+ (list '#(syntax-object id ((top)) (hygiene
guile))
+ '(#(syntax-object identifier? ((top))
(hygiene guile))
+ (#(syntax-object syntax ((top))
(hygiene guile))
+ #(syntax-object id ((top)) (hygiene
guile))))
+ (list '#(syntax-object syntax ((top))
(hygiene guile)) e))
+ (list '(#(syntax-object _ ((top)) (hygiene
guile))
+ #(syntax-object x ((top)) (hygiene
guile))
+ #(syntax-object ... ((top)) (hygiene
guile)))
+ (list '#(syntax-object syntax ((top))
(hygiene guile))
+ (cons e
+ '(#(syntax-object x ((top))
(hygiene guile))
+ #(syntax-object ...
((top)) (hygiene guile)))))))))
+ tmp)
+ (let ((tmp ($sc-dispatch
+ tmp-1
+ '(_ (any any)
+ ((#(free-id #(syntax-object set! ((top)) (hygiene
guile))) any any)
+ any)))))
+ (if (if tmp
+ (apply (lambda (id exp1 var val exp2)
+ (if (identifier? id) (identifier? var) #f))
+ tmp)
+ #f)
+ (apply (lambda (id exp1 var val exp2)
+ (list '#(syntax-object make-variable-transformer
((top)) (hygiene guile))
+ (list '#(syntax-object lambda ((top)) (hygiene
guile))
+ '(#(syntax-object x ((top)) (hygiene
guile)))
+ '#((#(syntax-object macro-type ((top))
(hygiene guile))
+ .
+ #(syntax-object variable-transformer
((top)) (hygiene guile))))
+ (list '#(syntax-object syntax-case
((top)) (hygiene guile))
+ '#(syntax-object x ((top)) (hygiene
guile))
+ '(#(syntax-object set! ((top))
(hygiene guile)))
+ (list (list '#(syntax-object set!
((top)) (hygiene guile)) var val)
+ (list '#(syntax-object syntax
((top)) (hygiene guile)) exp2))
+ (list (cons id
+ '(#(syntax-object x
((top)) (hygiene guile))
+ #(syntax-object ...
((top)) (hygiene guile))))
+ (list '#(syntax-object syntax
((top)) (hygiene guile))
+ (cons exp1
+ '(#(syntax-object
x ((top)) (hygiene guile))
+ #(syntax-object
... ((top)) (hygiene guile))))))
+ (list id
+ (list '#(syntax-object
identifier? ((top)) (hygiene guile))
+ (list '#(syntax-object
syntax ((top)) (hygiene guile)) id))
+ (list '#(syntax-object syntax
((top)) (hygiene guile)) exp1))))))
+ tmp)
+ (syntax-violation
+ #f
+ "source expression failed to match any pattern"
+ tmp-1)))))))))
(define define*
(make-syntax-transformer
'define*
'macro
- (lambda (x-26790)
- (let ((tmp-26792
- ($sc-dispatch
- x-26790
- '(_ (any . any) any . each-any))))
- (if tmp-26792
- (@apply
- (lambda (id-26796 args-26797 b0-26798 b1-26799)
- (list '#(syntax-object
- define
- ((top)
- #(ribcage
- #(id args b0 b1)
- #((top) (top) (top) (top))
- #("l-*-26772"
- "l-*-26773"
- "l-*-26774"
- "l-*-26775"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("l-*-26769")))
- (hygiene guile))
- id-26796
- (cons '#(syntax-object
- lambda*
- ((top)
- #(ribcage
- #(id args b0 b1)
- #((top) (top) (top) (top))
- #("l-*-26772"
- "l-*-26773"
- "l-*-26774"
- "l-*-26775"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("l-*-26769")))
- (hygiene guile))
- (cons args-26797 (cons b0-26798 b1-26799)))))
- tmp-26792)
- (let ((tmp-26800 ($sc-dispatch x-26790 '(_ any any))))
- (if (if tmp-26800
- (@apply
- (lambda (id-26804 val-26805)
- (identifier? id-26804))
- tmp-26800)
- #f)
- (@apply
- (lambda (id-26806 val-26807)
- (list '#(syntax-object
- define
- ((top)
- #(ribcage
- #(id val)
- #((top) (top))
- #("l-*-26786" "l-*-26787"))
- #(ribcage () () ())
- #(ribcage #(x) #((top)) #("l-*-26769")))
- (hygiene guile))
- id-26806
- val-26807))
- tmp-26800)
- (syntax-violation
- #f
- "source expression failed to match any pattern"
- x-26790))))))))
+ (lambda (x)
+ (let ((tmp-1 x))
+ (let ((tmp ($sc-dispatch tmp-1 '(_ (any . any) any . each-any))))
+ (if tmp
+ (apply (lambda (id args b0 b1)
+ (list '#(syntax-object define ((top)) (hygiene guile))
+ id
+ (cons '#(syntax-object lambda* ((top)) (hygiene
guile))
+ (cons args (cons b0 b1)))))
+ tmp)
+ (let ((tmp ($sc-dispatch tmp-1 '(_ any any))))
+ (if (if tmp (apply (lambda (id val) (identifier? id)) tmp) #f)
+ (apply (lambda (id val)
+ (list '#(syntax-object define ((top)) (hygiene
guile)) id val))
+ tmp)
+ (syntax-violation
+ #f
+ "source expression failed to match any pattern"
+ tmp-1)))))))))
diff --git a/module/ice-9/psyntax.scm b/module/ice-9/psyntax.scm
index 7f2f3e3..a25bbba 100644
--- a/module/ice-9/psyntax.scm
+++ b/module/ice-9/psyntax.scm
@@ -2775,8 +2775,8 @@
((out ...) (let () e1 e2 ...)))))))
(define-syntax syntax-rules
- (lambda (x)
- (syntax-case x ()
+ (lambda (xx)
+ (syntax-case xx ()
((_ (k ...) ((keyword . pattern) template) ...)
#'(lambda (x)
;; embed patterns as procedure metadata
@@ -3027,8 +3027,8 @@
(error "variable transformer not a procedure" proc)))
(define-syntax identifier-syntax
- (lambda (x)
- (syntax-case x (set!)
+ (lambda (xx)
+ (syntax-case xx (set!)
((_ e)
#'(lambda (x)
#((macro-type . identifier-syntax))
diff --git a/module/language/scheme/decompile-tree-il.scm
b/module/language/scheme/decompile-tree-il.scm
index 9243f4e..9191b2f 100644
--- a/module/language/scheme/decompile-tree-il.scm
+++ b/module/language/scheme/decompile-tree-il.scm
@@ -1,6 +1,6 @@
;;; Guile VM code converters
-;; Copyright (C) 2001,2009 Free Software Foundation, Inc.
+;; Copyright (C) 2001, 2009, 2012 Free Software Foundation, Inc.
;;;; This library is free software; you can redistribute it and/or
;;;; modify it under the terms of the GNU Lesser General Public
@@ -20,7 +20,796 @@
(define-module (language scheme decompile-tree-il)
#:use-module (language tree-il)
+ #:use-module (srfi srfi-1)
+ #:use-module (srfi srfi-26)
+ #:use-module (ice-9 receive)
+ #:use-module (ice-9 vlist)
+ #:use-module (ice-9 match)
+ #:use-module (system base syntax)
#:export (decompile-tree-il))
-(define (decompile-tree-il x env opts)
- (values (tree-il->scheme x) env))
+(define (decompile-tree-il e env opts)
+ (apply do-decompile e env opts))
+
+(define* (do-decompile e env
+ #:key
+ (use-derived-syntax? #t)
+ (avoid-lambda? #t)
+ (use-case? #t)
+ (strip-numeric-suffixes? #f)
+ #:allow-other-keys)
+
+ (receive (output-name-table occurrence-count-table)
+ (choose-output-names e use-derived-syntax? strip-numeric-suffixes?)
+
+ (define (output-name s) (hashq-ref output-name-table s))
+ (define (occurrence-count s) (hashq-ref occurrence-count-table s))
+
+ (define (const x) (lambda (_) x))
+ (define (atom? x) (not (or (pair? x) (vector? x))))
+
+ (define (build-void) '(if #f #f))
+
+ (define (build-begin es)
+ (match es
+ (() (build-void))
+ ((e) e)
+ (_ `(begin ,@es))))
+
+ (define (build-lambda-body e)
+ (match e
+ (('let () body ...) body)
+ (('begin es ...) es)
+ (_ (list e))))
+
+ (define (build-begin-body e)
+ (match e
+ (('begin es ...) es)
+ (_ (list e))))
+
+ (define (build-define name e)
+ (match e
+ ((? (const avoid-lambda?)
+ ('lambda formals body ...))
+ `(define (,name ,@formals) ,@body))
+ ((? (const avoid-lambda?)
+ ('lambda* formals body ...))
+ `(define* (,name ,@formals) ,@body))
+ (_ `(define ,name ,e))))
+
+ (define (build-let names vals body)
+ (match `(let ,(map list names vals)
+ ,@(build-lambda-body body))
+ ((_ () e) e)
+ ((_ (b) ('let* (bs ...) body ...))
+ `(let* (,b ,@bs) ,@body))
+ ((? (const use-derived-syntax?)
+ (_ (b1) ('let (b2) body ...)))
+ `(let* (,b1 ,b2) ,@body))
+ (e e)))
+
+ (define (build-letrec in-order? names vals body)
+ (match `(,(if in-order? 'letrec* 'letrec)
+ ,(map list names vals)
+ ,@(build-lambda-body body))
+ ((_ () e) e)
+ ((_ () body ...) `(let () ,@body))
+ ((_ ((name ('lambda (formals ...) body ...)))
+ (name args ...))
+ (=> failure)
+ (if (= (length formals) (length args))
+ `(let ,name ,(map list formals args) ,@body)
+ (failure)))
+ ((? (const avoid-lambda?)
+ ('letrec* _ body ...))
+ `(let ()
+ ,@(map build-define names vals)
+ ,@body))
+ (e e)))
+
+ (define (build-if test consequent alternate)
+ (match alternate
+ (('if #f _) `(if ,test ,consequent))
+ (_ `(if ,test ,consequent ,alternate))))
+
+ (define (build-and xs)
+ (match xs
+ (() #t)
+ ((x) x)
+ (_ `(and ,@xs))))
+
+ (define (build-or xs)
+ (match xs
+ (() #f)
+ ((x) x)
+ (_ `(or ,@xs))))
+
+ (define (case-test-var test)
+ (match test
+ (('memv (? atom? v) ('quote (datums ...)))
+ v)
+ (('eqv? (? atom? v) ('quote datum))
+ v)
+ (_ #f)))
+
+ (define (test->datums v test)
+ (match (cons v test)
+ ((v 'memv v ('quote (xs ...)))
+ xs)
+ ((v 'eqv? v ('quote x))
+ (list x))
+ (_ #f)))
+
+ (define (build-else-tail e)
+ (match e
+ (('if #f _) '())
+ (('and xs ... x) `((,(build-and xs) ,@(build-begin-body x))
+ (else #f)))
+ (_ `((else ,@(build-begin-body e))))))
+
+ (define (build-cond-else-tail e)
+ (match e
+ (('cond clauses ...) clauses)
+ (_ (build-else-tail e))))
+
+ (define (build-case-else-tail v e)
+ (match (cons v e)
+ ((v 'case v clauses ...)
+ clauses)
+ ((v 'if ('memv v ('quote (xs ...))) consequent . alternate*)
+ `((,xs ,@(build-begin-body consequent))
+ ,@(build-case-else-tail v (build-begin alternate*))))
+ ((v 'if ('eqv? v ('quote x)) consequent . alternate*)
+ `(((,x) ,@(build-begin-body consequent))
+ ,@(build-case-else-tail v (build-begin alternate*))))
+ (_ (build-else-tail e))))
+
+ (define (clauses+tail clauses)
+ (match clauses
+ ((cs ... (and c ('else . _))) (values cs (list c)))
+ (_ (values clauses '()))))
+
+ (define (build-cond tests consequents alternate)
+ (case (length tests)
+ ((0) alternate)
+ ((1) (build-if (car tests) (car consequents) alternate))
+ (else `(cond ,@(map (lambda (test consequent)
+ `(,test ,@(build-begin-body consequent)))
+ tests consequents)
+ ,@(build-cond-else-tail alternate)))))
+
+ (define (build-cond-or-case tests consequents alternate)
+ (if (not use-case?)
+ (build-cond tests consequents alternate)
+ (let* ((v (and (not (null? tests))
+ (case-test-var (car tests))))
+ (datum-lists (take-while identity
+ (map (cut test->datums v <>)
+ tests)))
+ (n (length datum-lists))
+ (tail (build-case-else-tail v (build-cond
+ (drop tests n)
+ (drop consequents n)
+ alternate))))
+ (receive (clauses tail) (clauses+tail tail)
+ (let ((n (+ n (length clauses)))
+ (datum-lists (append datum-lists
+ (map car clauses)))
+ (consequents (append consequents
+ (map build-begin
+ (map cdr clauses)))))
+ (if (< n 2)
+ (build-cond tests consequents alternate)
+ `(case ,v
+ ,@(map cons datum-lists (map build-begin-body
+ (take consequents n)))
+ ,@tail)))))))
+
+ (define (recurse e)
+
+ (define (recurse-body e)
+ (build-lambda-body (recurse e)))
+
+ (record-case e
+ ((<void>)
+ (build-void))
+
+ ((<const> exp)
+ (if (and (self-evaluating? exp) (not (vector? exp)))
+ exp
+ `(quote ,exp)))
+
+ ((<sequence> exps)
+ (build-begin (map recurse exps)))
+
+ ((<application> proc args)
+ (match `(,(recurse proc) ,@(map recurse args))
+ ((('lambda (formals ...) body ...) args ...)
+ (=> failure)
+ (if (= (length formals) (length args))
+ (build-let formals args (build-begin body))
+ (failure)))
+ (e e)))
+
+ ((<primitive-ref> name)
+ name)
+
+ ((<lexical-ref> gensym)
+ (output-name gensym))
+
+ ((<lexical-set> gensym exp)
+ `(set! ,(output-name gensym) ,(recurse exp)))
+
+ ((<module-ref> mod name public?)
+ `(,(if public? '@ '@@) ,mod ,name))
+
+ ((<module-set> mod name public? exp)
+ `(set! (,(if public? '@ '@@) ,mod ,name) ,(recurse exp)))
+
+ ((<toplevel-ref> name)
+ name)
+
+ ((<toplevel-set> name exp)
+ `(set! ,name ,(recurse exp)))
+
+ ((<toplevel-define> name exp)
+ (build-define name (recurse exp)))
+
+ ((<lambda> meta body)
+ (let ((body (recurse body))
+ (doc (assq-ref meta 'documentation)))
+ (if (not doc)
+ body
+ (match body
+ (('lambda formals body ...)
+ `(lambda ,formals ,doc ,@body))
+ (('lambda* formals body ...)
+ `(lambda* ,formals ,doc ,@body))
+ (('case-lambda (formals body ...) clauses ...)
+ `(case-lambda (,formals ,doc ,@body) ,@clauses))
+ (('case-lambda* (formals body ...) clauses ...)
+ `(case-lambda* (,formals ,doc ,@body) ,@clauses))
+ (e e)))))
+
+ ((<lambda-case> req opt rest kw inits gensyms body alternate)
+ (let ((names (map output-name gensyms)))
+ (cond
+ ((and (not opt) (not kw) (not alternate))
+ `(lambda ,(if rest (apply cons* names) names)
+ ,@(recurse-body body)))
+ ((and (not opt) (not kw))
+ (let ((alt-expansion (recurse alternate))
+ (formals (if rest (apply cons* names) names)))
+ (case (car alt-expansion)
+ ((lambda)
+ `(case-lambda (,formals ,@(recurse-body body))
+ ,(cdr alt-expansion)))
+ ((lambda*)
+ `(case-lambda* (,formals ,@(recurse-body body))
+ ,(cdr alt-expansion)))
+ ((case-lambda)
+ `(case-lambda (,formals ,@(recurse-body body))
+ ,@(cdr alt-expansion)))
+ ((case-lambda*)
+ `(case-lambda* (,formals ,@(recurse-body body))
+ ,@(cdr alt-expansion))))))
+ (else
+ (let* ((alt-expansion (and alternate (recurse alternate)))
+ (nreq (length req))
+ (nopt (if opt (length opt) 0))
+ (restargs (if rest (list-ref names (+ nreq nopt)) '()))
+ (reqargs (list-head names nreq))
+ (optargs (if opt
+ `(#:optional
+ ,@(map list
+ (list-head (list-tail names nreq)
nopt)
+ (map recurse
+ (list-head inits nopt))))
+ '()))
+ (kwargs (if kw
+ `(#:key
+ ,@(map list
+ (map output-name (map caddr (cdr kw)))
+ (map recurse
+ (list-tail inits nopt))
+ (map car (cdr kw)))
+ ,@(if (car kw)
+ '(#:allow-other-keys)
+ '()))
+ '()))
+ (formals `(,@reqargs ,@optargs ,@kwargs . ,restargs)))
+ (if (not alt-expansion)
+ `(lambda* ,formals ,@(recurse-body body))
+ (case (car alt-expansion)
+ ((lambda lambda*)
+ `(case-lambda* (,formals ,@(recurse-body body))
+ ,(cdr alt-expansion)))
+ ((case-lambda case-lambda*)
+ `(case-lambda* (,formals ,@(recurse-body body))
+ ,@(cdr alt-expansion))))))))))
+
+ ((<conditional> test consequent alternate)
+ (define (simplify-test e)
+ (match e
+ (('if ('eqv? (? atom? v) ('quote a)) #t ('eqv? v ('quote b)))
+ `(memv ,v '(,a ,b)))
+ (('if ('eqv? (? atom? v) ('quote a)) #t ('memv v ('quote (bs
...))))
+ `(memv ,v '(,a ,@bs)))
+ (('case (? atom? v)
+ ((datum) #t) ...
+ ('else ('eqv? v ('quote last-datum))))
+ `(memv ,v '(,@datum ,last-datum)))
+ (_ e)))
+ (match `(if ,(simplify-test (recurse test))
+ ,(recurse consequent)
+ ,@(if (void? alternate) '()
+ (list (recurse alternate))))
+ (('if test ('if ('and xs ...) consequent))
+ (build-if (build-and (cons test xs))
+ consequent
+ (build-void)))
+ ((? (const use-derived-syntax?)
+ ('if test1 ('if test2 consequent)))
+ (build-if (build-and (list test1 test2))
+ consequent
+ (build-void)))
+ (('if (? atom? x) x ('or ys ...))
+ (build-or (cons x ys)))
+ ((? (const use-derived-syntax?)
+ ('if (? atom? x) x y))
+ (build-or (list x y)))
+ (('if test consequent)
+ `(if ,test ,consequent))
+ (('if test ('and xs ...) #f)
+ (build-and (cons test xs)))
+ ((? (const use-derived-syntax?)
+ ('if test consequent #f))
+ (build-and (list test consequent)))
+ ((? (const use-derived-syntax?)
+ ('if test1 consequent1
+ ('if test2 consequent2 . alternate*)))
+ (build-cond-or-case (list test1 test2)
+ (list consequent1 consequent2)
+ (build-begin alternate*)))
+ (('if test consequent ('cond clauses ...))
+ `(cond (,test ,@(build-begin-body consequent))
+ ,@clauses))
+ (('if ('memv (? atom? v) ('quote (xs ...))) consequent
+ ('case v clauses ...))
+ `(case ,v (,xs ,@(build-begin-body consequent))
+ ,@clauses))
+ (('if ('eqv? (? atom? v) ('quote x)) consequent
+ ('case v clauses ...))
+ `(case ,v ((,x) ,@(build-begin-body consequent))
+ ,@clauses))
+ (e e)))
+
+ ((<let> gensyms vals body)
+ (match (build-let (map output-name gensyms)
+ (map recurse vals)
+ (recurse body))
+ (('let ((v e)) ('or v xs ...))
+ (=> failure)
+ (if (and (not (null? gensyms))
+ (= 3 (occurrence-count (car gensyms))))
+ `(or ,e ,@xs)
+ (failure)))
+ (('let ((v e)) ('case v clauses ...))
+ (=> failure)
+ (if (and (not (null? gensyms))
+ ;; FIXME: This fails if any of the 'memv's were
+ ;; optimized into multiple 'eqv?'s, because the
+ ;; occurrence count will be higher than we expect.
+ (= (occurrence-count (car gensyms))
+ (1+ (length (clauses+tail clauses)))))
+ `(case ,e ,@clauses)
+ (failure)))
+ (e e)))
+
+ ((<letrec> in-order? gensyms vals body)
+ (build-letrec in-order?
+ (map output-name gensyms)
+ (map recurse vals)
+ (recurse body)))
+
+ ((<fix> gensyms vals body)
+ ;; not a typo, we really do translate back to letrec. use letrec*
since it
+ ;; doesn't matter, and the naive letrec* transformation does not
require an
+ ;; inner let.
+ (build-letrec #t
+ (map output-name gensyms)
+ (map recurse vals)
+ (recurse body)))
+
+ ((<let-values> exp body)
+ `(call-with-values (lambda () ,@(recurse-body exp))
+ ,(recurse (make-lambda #f '() body))))
+
+ ((<dynwind> body winder unwinder)
+ `(dynamic-wind ,(recurse winder)
+ (lambda () ,@(recurse-body body))
+ ,(recurse unwinder)))
+
+ ((<dynlet> fluids vals body)
+ `(with-fluids ,(map list
+ (map recurse fluids)
+ (map recurse vals))
+ ,@(recurse-body body)))
+
+ ((<dynref> fluid)
+ `(fluid-ref ,(recurse fluid)))
+
+ ((<dynset> fluid exp)
+ `(fluid-set! ,(recurse fluid) ,(recurse exp)))
+
+ ((<prompt> tag body handler)
+ `(call-with-prompt
+ ,(recurse tag)
+ (lambda () ,@(recurse-body body))
+ ,(recurse handler)))
+
+
+ ((<abort> tag args tail)
+ `(apply abort ,(recurse tag) ,@(map recurse args)
+ ,(recurse tail)))))
+ (values (recurse e) env)))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;
+;; Algorithm for choosing better variable names
+;; ============================================
+;;
+;; First we perform an analysis pass, collecting the following
+;; information:
+;;
+;; * For each gensym: how many occurrences will occur in the output?
+;;
+;; * For each gensym A: which gensyms does A conflict with? Gensym A
+;; and gensym B conflict if they have the same base name (usually the
+;; same as the source name, but see below), and if giving them the
+;; same name would cause a bad variable reference due to unintentional
+;; variable capture.
+;;
+;; The occurrence counter is indexed by gensym and is global (within each
+;; invocation of the algorithm), implemented using a hash table. We also
+;; keep a global mapping from gensym to source name as provided by the
+;; binding construct (we prefer not to trust the source names in the
+;; lexical ref or set).
+;;
+;; As we recurse down into lexical binding forms, we keep track of a
+;; mapping from base name to an ordered list of bindings, innermost
+;; first. When we encounter a variable occurrence, we increment the
+;; counter, look up the base name (preferring not to trust the 'name' in
+;; the lexical ref or set), and then look up the bindings currently in
+;; effect for that base name. Hopefully our gensym will be the first
+;; (innermost) binding. If not, we register a conflict between the
+;; referenced gensym and the other bound gensyms with the same base name
+;; that shadow the binding we want. These are simply the gensyms on the
+;; binding list that come before our gensym.
+;;
+;; Top-level bindings are treated specially. Whenever top-level
+;; references are found, they conflict with every lexical binding
+;; currently in effect with the same base name. They are guaranteed to
+;; be assigned to their source names. For purposes of recording
+;; conflicts (which are normally keyed on gensyms) top-level identifiers
+;; are assigned a pseudo-gensym that is an interned pair of the form
+;; (top-level . <name>). This allows them to be compared using 'eq?'
+;; like other gensyms.
+;;
+;; The base name is normally just the source name. However, if the
+;; source name has a suffix of the form "-N" (where N is a positive
+;; integer without leading zeroes), then we strip that suffix (multiple
+;; times if necessary) to form the base name. We must do this because
+;; we add suffixes of that form in order to resolve conflicts, and we
+;; must ensure that only identifiers with the same base name can
+;; possibly conflict with each other.
+;;
+;; XXX FIXME: Currently, primitives are treated exactly like top-level
+;; bindings. This handles conflicting lexical bindings properly, but
+;; does _not_ handle the case where top-level bindings conflict with the
+;; needed primitives.
+;;
+;; Also note that this requires that 'choose-output-names' be kept in
+;; sync with 'tree-il->scheme'. Primitives that are introduced by
+;; 'tree-il->scheme' must be anticipated by 'choose-output-name'.
+;;
+;; We also ensure that lexically-bound identifiers found in operator
+;; position will never be assigned one of the standard primitive names.
+;; This is needed because 'tree-il->scheme' recognizes primitive names
+;; in operator position and assumes that they have the standard
+;; bindings.
+;;
+;;
+;; How we assign an output name to each gensym
+;; ===========================================
+;;
+;; We process the gensyms in order of decreasing occurrence count, with
+;; each gensym choosing the best output name possible, as long as it
+;; isn't the same name as any of the previously-chosen output names of
+;; conflicting gensyms.
+;;
+
+
+;;
+;; 'choose-output-names' analyzes the top-level form e, chooses good
+;; variable names that are as close as possible to the source names,
+;; and returns two values:
+;;
+;; * a hash table mapping gensym to output name
+;; * a hash table mapping gensym to number of occurrences
+;;
+(define choose-output-names
+ (let ()
+ (define primitive?
+ ;; This is a list of primitives that 'tree-il->scheme' assumes
+ ;; will have the standard bindings when found in operator
+ ;; position.
+ (let* ((primitives '(if quote @ @@ set! define define*
+ begin let let* letrec letrec*
+ and or cond case
+ lambda lambda* case-lambda case-lambda*
+ apply call-with-values dynamic-wind
+ with-fluids fluid-ref fluid-set!
+ call-with-prompt abort memv eqv?))
+ (table (make-hash-table (length primitives))))
+ (for-each (cut hashq-set! table <> #t) primitives)
+ (lambda (name) (hashq-ref table name))))
+
+ ;; Repeatedly strip suffix of the form "-N", where N is a string
+ ;; that could be produced by number->string given a positive
+ ;; integer. In other words, the first digit of N may not be 0.
+ (define compute-base-name
+ (let ((digits (string->char-set "0123456789")))
+ (define (base-name-string str)
+ (let ((i (string-skip-right str digits)))
+ (if (and i (< (1+ i) (string-length str))
+ (eq? #\- (string-ref str i))
+ (not (eq? #\0 (string-ref str (1+ i)))))
+ (base-name-string (substring str 0 i))
+ str)))
+ (lambda (sym)
+ (string->symbol (base-name-string (symbol->string sym))))))
+
+ ;; choose-output-names
+ (lambda (e use-derived-syntax? strip-numeric-suffixes?)
+
+ (define lexical-gensyms '())
+
+ (define top-level-intern!
+ (let ((table (make-hash-table)))
+ (lambda (name)
+ (let ((h (hashq-create-handle! table name #f)))
+ (or (cdr h) (begin (set-cdr! h (cons 'top-level name))
+ (cdr h)))))))
+ (define (top-level? s) (pair? s))
+ (define (top-level-name s) (cdr s))
+
+ (define occurrence-count-table (make-hash-table))
+ (define (occurrence-count s) (or (hashq-ref occurrence-count-table s) 0))
+ (define (increment-occurrence-count! s)
+ (let ((h (hashq-create-handle! occurrence-count-table s 0)))
+ (if (zero? (cdr h))
+ (set! lexical-gensyms (cons s lexical-gensyms)))
+ (set-cdr! h (1+ (cdr h)))))
+
+ (define base-name
+ (let ((table (make-hash-table)))
+ (lambda (name)
+ (let ((h (hashq-create-handle! table name #f)))
+ (or (cdr h) (begin (set-cdr! h (compute-base-name name))
+ (cdr h)))))))
+
+ (define source-name-table (make-hash-table))
+ (define (set-source-name! s name)
+ (if (not (top-level? s))
+ (let ((name (if strip-numeric-suffixes?
+ (base-name name)
+ name)))
+ (hashq-set! source-name-table s name))))
+ (define (source-name s)
+ (if (top-level? s)
+ (top-level-name s)
+ (hashq-ref source-name-table s)))
+
+ (define conflict-table (make-hash-table))
+ (define (conflicts s) (or (hashq-ref conflict-table s) '()))
+ (define (add-conflict! a b)
+ (define (add! a b)
+ (if (not (top-level? a))
+ (let ((h (hashq-create-handle! conflict-table a '())))
+ (if (not (memq b (cdr h)))
+ (set-cdr! h (cons b (cdr h)))))))
+ (add! a b)
+ (add! b a))
+
+ (let recurse-with-bindings ((e e) (bindings vlist-null))
+ (let recurse ((e e))
+
+ ;; We call this whenever we encounter a top-level ref or set
+ (define (top-level name)
+ (let ((bname (base-name name)))
+ (let ((s (top-level-intern! name))
+ (conflicts (vhash-foldq* cons '() bname bindings)))
+ (for-each (cut add-conflict! s <>) conflicts))))
+
+ ;; We call this whenever we encounter a primitive reference.
+ ;; We must also call it for every primitive that might be
+ ;; inserted by 'tree-il->scheme'. It is okay to call this
+ ;; even when 'tree-il->scheme' will not insert the named
+ ;; primitive; the worst that will happen is for a lexical
+ ;; variable of the same name to be renamed unnecessarily.
+ (define (primitive name) (top-level name))
+
+ ;; We call this whenever we encounter a lexical ref or set.
+ (define (lexical s)
+ (increment-occurrence-count! s)
+ (let ((conflicts
+ (take-while
+ (lambda (s*) (not (eq? s s*)))
+ (reverse! (vhash-foldq* cons
+ '()
+ (base-name (source-name s))
+ bindings)))))
+ (for-each (cut add-conflict! s <>) conflicts)))
+
+ (record-case e
+ ((<void>) (primitive 'if)) ; (if #f #f)
+ ((<const>) (primitive 'quote))
+
+ ((<application> proc args)
+ (if (lexical-ref? proc)
+ (let* ((gensym (lexical-ref-gensym proc))
+ (name (source-name gensym)))
+ ;; If the operator position contains a bare variable
+ ;; reference with the same source name as a standard
+ ;; primitive, we must ensure that it will be given a
+ ;; different name, so that 'tree-il->scheme' will not
+ ;; misinterpret the resulting expression.
+ (if (primitive? name)
+ (add-conflict! gensym (top-level-intern! name)))))
+ (recurse proc)
+ (for-each recurse args))
+
+ ((<primitive-ref> name) (primitive name))
+
+ ((<lexical-ref> gensym) (lexical gensym))
+ ((<lexical-set> gensym exp)
+ (primitive 'set!) (lexical gensym) (recurse exp))
+
+ ((<module-ref> public?) (primitive (if public? '@ '@@)))
+ ((<module-set> public? exp)
+ (primitive 'set!) (primitive (if public? '@ '@@)) (recurse exp))
+
+ ((<toplevel-ref> name) (top-level name))
+ ((<toplevel-set> name exp)
+ (primitive 'set!) (top-level name) (recurse exp))
+ ((<toplevel-define> name exp) (top-level name) (recurse exp))
+
+ ((<conditional> test consequent alternate)
+ (cond (use-derived-syntax?
+ (primitive 'and) (primitive 'or)
+ (primitive 'cond) (primitive 'case)
+ (primitive 'else) (primitive '=>)))
+ (primitive 'if)
+ (recurse test) (recurse consequent) (recurse alternate))
+
+ ((<sequence> exps) (primitive 'begin) (for-each recurse exps))
+ ((<lambda> body) (recurse body))
+
+ ((<lambda-case> req opt rest kw inits gensyms body alternate)
+ (primitive 'lambda)
+ (cond ((or opt kw alternate)
+ (primitive 'lambda*)
+ (primitive 'case-lambda)
+ (primitive 'case-lambda*)))
+ (primitive 'let)
+ (if use-derived-syntax? (primitive 'let*))
+ (let* ((names (append req (or opt '()) (if rest (list rest) '())
+ (map cadr (if kw (cdr kw) '()))))
+ (base-names (map base-name names))
+ (body-bindings
+ (fold vhash-consq bindings base-names gensyms)))
+ (for-each increment-occurrence-count! gensyms)
+ (for-each set-source-name! gensyms names)
+ (for-each recurse inits)
+ (recurse-with-bindings body body-bindings)
+ (if alternate (recurse alternate))))
+
+ ((<let> names gensyms vals body)
+ (primitive 'let)
+ (cond (use-derived-syntax? (primitive 'let*) (primitive 'or)))
+ (for-each increment-occurrence-count! gensyms)
+ (for-each set-source-name! gensyms names)
+ (for-each recurse vals)
+ (recurse-with-bindings
+ body (fold vhash-consq bindings (map base-name names) gensyms)))
+
+ ((<letrec> in-order? names gensyms vals body)
+ (primitive 'let)
+ (cond (use-derived-syntax? (primitive 'let*) (primitive 'or)))
+ (primitive (if in-order? 'letrec* 'letrec))
+ (for-each increment-occurrence-count! gensyms)
+ (for-each set-source-name! gensyms names)
+ (let* ((base-names (map base-name names))
+ (bindings (fold vhash-consq bindings base-names gensyms)))
+ (for-each (cut recurse-with-bindings <> bindings) vals)
+ (recurse-with-bindings body bindings)))
+
+ ((<fix> names gensyms vals body)
+ (primitive 'let)
+ (primitive 'letrec*)
+ (cond (use-derived-syntax? (primitive 'let*) (primitive 'or)))
+ (for-each increment-occurrence-count! gensyms)
+ (for-each set-source-name! gensyms names)
+ (let* ((base-names (map base-name names))
+ (bindings (fold vhash-consq bindings base-names gensyms)))
+ (for-each (cut recurse-with-bindings <> bindings) vals)
+ (recurse-with-bindings body bindings)))
+
+ ((<let-values> exp body)
+ (primitive 'call-with-values)
+ (recurse exp) (recurse body))
+
+ ((<dynwind> winder body unwinder)
+ (primitive 'dynamic-wind)
+ (recurse winder) (recurse body) (recurse unwinder))
+
+ ((<dynlet> fluids vals body)
+ (primitive 'with-fluids)
+ (for-each recurse fluids)
+ (for-each recurse vals)
+ (recurse body))
+
+ ((<dynref> fluid) (primitive 'fluid-ref) (recurse fluid))
+ ((<dynset> fluid exp)
+ (primitive 'fluid-set!) (recurse fluid) (recurse exp))
+
+ ((<prompt> tag body handler)
+ (primitive 'call-with-prompt)
+ (primitive 'lambda)
+ (recurse tag) (recurse body) (recurse handler))
+
+ ((<abort> tag args tail)
+ (primitive 'apply)
+ (primitive 'abort)
+ (recurse tag) (for-each recurse args) (recurse tail)))))
+
+ (let ()
+ (define output-name-table (make-hash-table))
+ (define (set-output-name! s name)
+ (hashq-set! output-name-table s name))
+ (define (output-name s)
+ (if (top-level? s)
+ (top-level-name s)
+ (hashq-ref output-name-table s)))
+
+ (define sorted-lexical-gensyms
+ (sort-list lexical-gensyms
+ (lambda (a b) (> (occurrence-count a)
+ (occurrence-count b)))))
+
+ (for-each (lambda (s)
+ (set-output-name!
+ s
+ (let ((the-conflicts (conflicts s))
+ (the-source-name (source-name s)))
+ (define (not-yet-taken? name)
+ (not (any (lambda (s*)
+ (and=> (output-name s*)
+ (cut eq? name <>)))
+ the-conflicts)))
+ (if (not-yet-taken? the-source-name)
+ the-source-name
+ (let ((prefix (string-append
+ (symbol->string the-source-name)
+ "-")))
+ (let loop ((i 1) (name the-source-name))
+ (if (not-yet-taken? name)
+ name
+ (loop (+ i 1)
+ (string->symbol
+ (string-append
+ prefix
+ (number->string i)))))))))))
+ sorted-lexical-gensyms)
+ (values output-name-table occurrence-count-table)))))
diff --git a/module/language/tree-il.scm b/module/language/tree-il.scm
index 1d391c4..3ee89fb 100644
--- a/module/language/tree-il.scm
+++ b/module/language/tree-il.scm
@@ -1,4 +1,4 @@
-;;;; Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc.
+;;;; Copyright (C) 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
;;;;
;;;; This library is free software; you can redistribute it and/or
;;;; modify it under the terms of the GNU Lesser General Public
@@ -331,155 +331,10 @@
`(abort ,(unparse-tree-il tag) ,(map unparse-tree-il args)
,(unparse-tree-il tail)))))
-(define (tree-il->scheme e)
- (record-case e
- ((<void>)
- '(if #f #f))
-
- ((<application> proc args)
- `(,(tree-il->scheme proc) ,@(map tree-il->scheme args)))
-
- ((<conditional> test consequent alternate)
- (if (void? alternate)
- `(if ,(tree-il->scheme test) ,(tree-il->scheme consequent))
- `(if ,(tree-il->scheme test) ,(tree-il->scheme consequent)
,(tree-il->scheme alternate))))
-
- ((<primitive-ref> name)
- name)
-
- ((<lexical-ref> gensym)
- gensym)
-
- ((<lexical-set> gensym exp)
- `(set! ,gensym ,(tree-il->scheme exp)))
-
- ((<module-ref> mod name public?)
- `(,(if public? '@ '@@) ,mod ,name))
-
- ((<module-set> mod name public? exp)
- `(set! (,(if public? '@ '@@) ,mod ,name) ,(tree-il->scheme exp)))
-
- ((<toplevel-ref> name)
- name)
-
- ((<toplevel-set> name exp)
- `(set! ,name ,(tree-il->scheme exp)))
-
- ((<toplevel-define> name exp)
- `(define ,name ,(tree-il->scheme exp)))
-
- ((<lambda> meta body)
- ;; fixme: put in docstring
- (tree-il->scheme body))
-
- ((<lambda-case> req opt rest kw inits gensyms body alternate)
- (cond
- ((and (not opt) (not kw) (not alternate))
- `(lambda ,(if rest (apply cons* gensyms) gensyms)
- ,(tree-il->scheme body)))
- ((and (not opt) (not kw))
- (let ((alt-expansion (tree-il->scheme alternate))
- (formals (if rest (apply cons* gensyms) gensyms)))
- (case (car alt-expansion)
- ((lambda)
- `(case-lambda (,formals ,(tree-il->scheme body))
- ,(cdr alt-expansion)))
- ((lambda*)
- `(case-lambda* (,formals ,(tree-il->scheme body))
- ,(cdr alt-expansion)))
- ((case-lambda)
- `(case-lambda (,formals ,(tree-il->scheme body))
- ,@(cdr alt-expansion)))
- ((case-lambda*)
- `(case-lambda* (,formals ,(tree-il->scheme body))
- ,@(cdr alt-expansion))))))
- (else
- (let* ((alt-expansion (and alternate (tree-il->scheme alternate)))
- (nreq (length req))
- (nopt (if opt (length opt) 0))
- (restargs (if rest (list-ref gensyms (+ nreq nopt)) '()))
- (reqargs (list-head gensyms nreq))
- (optargs (if opt
- `(#:optional
- ,@(map list
- (list-head (list-tail gensyms nreq) nopt)
- (map tree-il->scheme
- (list-head inits nopt))))
- '()))
- (kwargs (if kw
- `(#:key
- ,@(map list
- (map caddr (cdr kw))
- (map tree-il->scheme
- (list-tail inits nopt))
- (map car (cdr kw)))
- ,@(if (car kw)
- '(#:allow-other-keys)
- '()))
- '()))
- (formals `(,@reqargs ,@optargs ,@kwargs . ,restargs)))
- (if (not alt-expansion)
- `(lambda* ,formals ,(tree-il->scheme body))
- (case (car alt-expansion)
- ((lambda lambda*)
- `(case-lambda* (,formals ,(tree-il->scheme body))
- ,(cdr alt-expansion)))
- ((case-lambda case-lambda*)
- `(case-lambda* (,formals ,(tree-il->scheme body))
- ,@(cdr alt-expansion)))))))))
-
- ((<const> exp)
- (if (and (self-evaluating? exp) (not (vector? exp)))
- exp
- (list 'quote exp)))
-
- ((<sequence> exps)
- `(begin ,@(map tree-il->scheme exps)))
-
- ((<let> gensyms vals body)
- `(let ,(map list gensyms (map tree-il->scheme vals)) ,(tree-il->scheme
body)))
-
- ((<letrec> in-order? gensyms vals body)
- `(,(if in-order? 'letrec* 'letrec)
- ,(map list gensyms (map tree-il->scheme vals)) ,(tree-il->scheme body)))
-
- ((<fix> gensyms vals body)
- ;; not a typo, we really do translate back to letrec. use letrec* since it
- ;; doesn't matter, and the naive letrec* transformation does not require
an
- ;; inner let.
- `(letrec* ,(map list gensyms (map tree-il->scheme vals))
,(tree-il->scheme body)))
-
- ((<let-values> exp body)
- `(call-with-values (lambda () ,(tree-il->scheme exp))
- ,(tree-il->scheme (make-lambda #f '() body))))
-
- ((<dynwind> body winder unwinder)
- `(dynamic-wind ,(tree-il->scheme winder)
- (lambda () ,(tree-il->scheme body))
- ,(tree-il->scheme unwinder)))
-
- ((<dynlet> fluids vals body)
- `(with-fluids ,(map list
- (map tree-il->scheme fluids)
- (map tree-il->scheme vals))
- ,(tree-il->scheme body)))
-
- ((<dynref> fluid)
- `(fluid-ref ,(tree-il->scheme fluid)))
-
- ((<dynset> fluid exp)
- `(fluid-set! ,(tree-il->scheme fluid) ,(tree-il->scheme exp)))
-
- ((<prompt> tag body handler)
- `(call-with-prompt
- ,(tree-il->scheme tag)
- (lambda () ,(tree-il->scheme body))
- ,(tree-il->scheme handler)))
-
-
- ((<abort> tag args tail)
- `(apply abort ,(tree-il->scheme tag) ,@(map tree-il->scheme args)
- ,(tree-il->scheme tail)))))
+(define* (tree-il->scheme e #:optional (env #f) (opts '()))
+ (values ((@ (language scheme decompile-tree-il)
+ decompile-tree-il)
+ e env opts)))
(define (tree-il-fold leaf down up seed tree)
hooks/post-receive
--
GNU Guile
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Guile-commits] GNU Guile branch, stable-2.0, updated. v2.0.5-72-g1af6d2a,
Mark H Weaver <=