guile-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Guile-commits] GNU Guile branch, syncase-in-boot-9, updated. 0ee32d0131


From: Andy Wingo
Subject: [Guile-commits] GNU Guile branch, syncase-in-boot-9, updated. 0ee32d0131b49ee0661669b7a0b595d0a6565de4
Date: Fri, 24 Apr 2009 22:57:00 +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=0ee32d0131b49ee0661669b7a0b595d0a6565de4

The branch, syncase-in-boot-9 has been updated
       via  0ee32d0131b49ee0661669b7a0b595d0a6565de4 (commit)
      from  9c35c5796cbffda57d76499048e8b8f82db943eb (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 0ee32d0131b49ee0661669b7a0b595d0a6565de4
Author: Andy Wingo <address@hidden>
Date:   Fri Apr 24 23:56:40 2009 +0200

    allow docstrings with internal definitions
    
    * module/Makefile.am (SCHEME_LANG_SOURCES):
    * module/language/scheme/expand.scm: Remove expand.scm, we don't need it
      any more.
    
    * module/ice-9/psyntax.scm (build-lambda, chi-lambda-clause): Support
      docstrings with internal definitions. What are Scheme people thinking
      these days?
    
    * module/ice-9/psyntax-pp.scm: Regenerated.

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

Summary of changes:
 module/Makefile.am                |    2 +-
 module/ice-9/psyntax-pp.scm       |   22 ++--
 module/ice-9/psyntax.scm          |   14 ++-
 module/language/scheme/expand.scm |  306 -------------------------------------
 4 files changed, 23 insertions(+), 321 deletions(-)
 delete mode 100644 module/language/scheme/expand.scm

diff --git a/module/Makefile.am b/module/Makefile.am
index 2322828..28372c7 100644
--- a/module/Makefile.am
+++ b/module/Makefile.am
@@ -62,7 +62,7 @@ ice-9/psyntax-pp.scm: ice-9/psyntax.scm
                $(srcdir)/ice-9/psyntax.scm $(srcdir)/ice-9/psyntax-pp.scm
 
 SCHEME_LANG_SOURCES =                                          \
-  language/scheme/amatch.scm language/scheme/expand.scm        \
+  language/scheme/amatch.scm \
   language/scheme/compile-ghil.scm language/scheme/spec.scm    \
   language/scheme/inline.scm
 
diff --git a/module/ice-9/psyntax-pp.scm b/module/ice-9/psyntax-pp.scm
index e402cdd..aa63741 100644
--- a/module/ice-9/psyntax-pp.scm
+++ b/module/ice-9/psyntax-pp.scm
@@ -1,13 +1,13 @@
 (eval-when (compile) (set-current-module (resolve-module (quote (guile)))))
 (void)
-(letrec ((lambda-var-list1180 (lambda (vars1379) (let lvl1380 ((vars1381 
vars1379) (ls1382 (quote ())) (w1383 (quote (())))) (cond ((pair? vars1381) 
(lvl1380 (cdr vars1381) (cons (wrap1159 (car vars1381) w1383 #f) ls1382) 
w1383)) ((id?1131 vars1381) (cons (wrap1159 vars1381 w1383 #f) ls1382)) ((null? 
vars1381) ls1382) ((syntax-object?1115 vars1381) (lvl1380 
(syntax-object-expression1116 vars1381) ls1382 (join-wraps1150 w1383 
(syntax-object-wrap1117 vars1381)))) ((annotation? vars1381) (lvl1380 
(annotation-expression vars1381) ls1382 w1383)) (else (cons vars1381 
ls1382)))))) (gen-var1179 (lambda (id1384) (let ((id1385 (if 
(syntax-object?1115 id1384) (syntax-object-expression1116 id1384) id1384))) (if 
(annotation? id1385) (build-annotated1108 (annotation-source id1385) (gensym 
(symbol->string (annotation-expression id1385)))) (build-annotated1108 #f 
(gensym (symbol->string id1385))))))) (strip1178 (lambda (x1386 w1387) (if 
(memq (quote top) (wrap-marks1134 w1387)) (if (or (annotation? x1386) (and 
(pair? x1386) (annotation? (car x1386)))) (strip-annotation1177 x1386 #f) 
x1386) (let f1388 ((x1389 x1386)) (cond ((syntax-object?1115 x1389) (strip1178 
(syntax-object-expression1116 x1389) (syntax-object-wrap1117 x1389))) ((pair? 
x1389) (let ((a1390 (f1388 (car x1389))) (d1391 (f1388 (cdr x1389)))) (if (and 
(eq? a1390 (car x1389)) (eq? d1391 (cdr x1389))) x1389 (cons a1390 d1391)))) 
((vector? x1389) (let ((old1392 (vector->list x1389))) (let ((new1393 (map 
f1388 old1392))) (if (andmap eq? old1392 new1393) x1389 (list->vector 
new1393))))) (else x1389)))))) (strip-annotation1177 (lambda (x1394 parent1395) 
(cond ((pair? x1394) (let ((new1396 (cons #f #f))) (begin (if parent1395 
(set-annotation-stripped! parent1395 new1396)) (set-car! new1396 
(strip-annotation1177 (car x1394) #f)) (set-cdr! new1396 (strip-annotation1177 
(cdr x1394) #f)) new1396))) ((annotation? x1394) (or (annotation-stripped 
x1394) (strip-annotation1177 (annotation-expression x1394) x1394))) ((vector? 
x1394) (let ((new1397 (make-vector (vector-length x1394)))) (begin (if 
parent1395 (set-annotation-stripped! parent1395 new1397)) (let loop1398 ((i1399 
(- (vector-length x1394) 1))) (unless (fx<1101 i1399 0) (vector-set! new1397 
i1399 (strip-annotation1177 (vector-ref x1394 i1399) #f)) (loop1398 (fx-1099 
i1399 1)))) new1397))) (else x1394)))) (ellipsis?1176 (lambda (x1400) (and 
(nonsymbol-id?1130 x1400) (free-id=?1154 x1400 (quote #(syntax-object ... 
((top) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i")) #(ribcage 
(lambda-var-list gen-var strip strip-annotation ellipsis? chi-void 
eval-local-transformer chi-local-syntax chi-lambda-clause chi-body chi-macro 
chi-application chi-expr chi chi-top syntax-type chi-when-list 
chi-install-global chi-top-sequence chi-sequence source-wrap wrap 
bound-id-member? distinct-bound-ids? valid-bound-ids? bound-id=? free-id=? 
id-var-name same-marks? join-marks join-wraps smart-append make-binding-wrap 
extend-ribcage! make-empty-ribcage new-mark anti-mark the-anti-mark top-marked? 
top-wrap empty-wrap set-ribcage-labels! set-ribcage-marks! 
set-ribcage-symnames! ribcage-labels ribcage-marks ribcage-symnames ribcage? 
make-ribcage gen-labels gen-label make-rename rename-marks rename-new 
rename-old subst-rename? wrap-subst wrap-marks make-wrap id-sym-name&marks 
id-sym-name id? nonsymbol-id? global-extend lookup macros-only-env 
extend-var-env extend-env null-env binding-value binding-type make-binding 
arg-check source-annotation no-source unannotate 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 build-global-definition 
build-global-assignment build-global-reference build-lexical-assignment 
build-lexical-reference build-conditional build-application build-annotated 
get-global-definition-hook remove-global-definition-hook 
put-global-definition-hook gensym-hook error-hook local-eval-hook 
top-level-eval-hook fx< fx= fx- fx+ noexpand) ((top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top)) ("i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i")) #(ribcage 
(define-structure) ((top)) ("i"))) (hygiene guile))))))) (chi-void1175 (lambda 
() (build-annotated1108 #f (list (build-annotated1108 #f (quote void)))))) 
(eval-local-transformer1174 (lambda (expanded1401 mod1402) (let ((p1403 
(local-eval-hook1103 expanded1401 mod1402))) (if (procedure? p1403) p1403 
(syntax-error p1403 "nonprocedure transformer"))))) (chi-local-syntax1173 
(lambda (rec?1404 e1405 r1406 w1407 s1408 mod1409 k1410) ((lambda (tmp1411) 
((lambda (tmp1412) (if tmp1412 (apply (lambda (_1413 id1414 val1415 e11416 
e21417) (let ((ids1418 id1414)) (if (not (valid-bound-ids?1156 ids1418)) 
(syntax-error e1405 "duplicate bound keyword in") (let ((labels1420 
(gen-labels1137 ids1418))) (let ((new-w1421 (make-binding-wrap1148 ids1418 
labels1420 w1407))) (k1410 (cons e11416 e21417) (extend-env1125 labels1420 (let 
((w1423 (if rec?1404 new-w1421 w1407)) (trans-r1424 (macros-only-env1127 
r1406))) (map (lambda (x1425) (cons (quote macro) (eval-local-transformer1174 
(chi1167 x1425 trans-r1424 w1423 mod1409) mod1409))) val1415)) r1406) new-w1421 
s1408 mod1409)))))) tmp1412) ((lambda (_1427) (syntax-error (source-wrap1160 
e1405 w1407 s1408 mod1409))) tmp1411))) (syntax-dispatch tmp1411 (quote (any 
#(each (any any)) any . each-any))))) e1405))) (chi-lambda-clause1172 (lambda 
(e1428 c1429 r1430 w1431 mod1432 k1433) ((lambda (tmp1434) ((lambda (tmp1435) 
(if tmp1435 (apply (lambda (id1436 e11437 e21438) (let ((ids1439 id1436)) (if 
(not (valid-bound-ids?1156 ids1439)) (syntax-error e1428 "invalid parameter 
list in") (let ((labels1441 (gen-labels1137 ids1439)) (new-vars1442 (map 
gen-var1179 ids1439))) (k1433 new-vars1442 (chi-body1171 (cons e11437 e21438) 
e1428 (extend-var-env1126 labels1441 new-vars1442 r1430) (make-binding-wrap1148 
ids1439 labels1441 w1431) mod1432)))))) tmp1435) ((lambda (tmp1444) (if tmp1444 
(apply (lambda (ids1445 e11446 e21447) (let ((old-ids1448 (lambda-var-list1180 
ids1445))) (if (not (valid-bound-ids?1156 old-ids1448)) (syntax-error e1428 
"invalid parameter list in") (let ((labels1449 (gen-labels1137 old-ids1448)) 
(new-vars1450 (map gen-var1179 old-ids1448))) (k1433 (let f1451 ((ls11452 (cdr 
new-vars1450)) (ls21453 (car new-vars1450))) (if (null? ls11452) ls21453 (f1451 
(cdr ls11452) (cons (car ls11452) ls21453)))) (chi-body1171 (cons e11446 
e21447) e1428 (extend-var-env1126 labels1449 new-vars1450 r1430) 
(make-binding-wrap1148 old-ids1448 labels1449 w1431) mod1432)))))) tmp1444) 
((lambda (_1455) (syntax-error e1428)) tmp1434))) (syntax-dispatch tmp1434 
(quote (any any . each-any)))))) (syntax-dispatch tmp1434 (quote (each-any any 
. each-any))))) c1429))) (chi-body1171 (lambda (body1456 outer-form1457 r1458 
w1459 mod1460) (let ((r1461 (cons (quote ("placeholder" placeholder)) r1458))) 
(let ((ribcage1462 (make-ribcage1138 (quote ()) (quote ()) (quote ())))) (let 
((w1463 (make-wrap1133 (wrap-marks1134 w1459) (cons ribcage1462 (wrap-subst1135 
w1459))))) (let parse1464 ((body1465 (map (lambda (x1471) (cons r1461 (wrap1159 
x1471 w1463 mod1460))) body1456)) (ids1466 (quote ())) (labels1467 (quote ())) 
(vars1468 (quote ())) (vals1469 (quote ())) (bindings1470 (quote ()))) (if 
(null? body1465) (syntax-error outer-form1457 "no expressions in body") (let 
((e1472 (cdar body1465)) (er1473 (caar body1465))) (call-with-values (lambda () 
(syntax-type1165 e1472 er1473 (quote (())) #f ribcage1462 mod1460)) (lambda 
(type1474 value1475 e1476 w1477 s1478 mod1479) (let ((t1480 type1474)) (if 
(memv t1480 (quote (define-form))) (let ((id1481 (wrap1159 value1475 w1477 
mod1479)) (label1482 (gen-label1136))) (let ((var1483 (gen-var1179 id1481))) 
(begin (extend-ribcage!1147 ribcage1462 id1481 label1482) (parse1464 (cdr 
body1465) (cons id1481 ids1466) (cons label1482 labels1467) (cons var1483 
vars1468) (cons (cons er1473 (wrap1159 e1476 w1477 mod1479)) vals1469) (cons 
(cons (quote lexical) var1483) bindings1470))))) (if (memv t1480 (quote 
(define-syntax-form))) (let ((id1484 (wrap1159 value1475 w1477 mod1479)) 
(label1485 (gen-label1136))) (begin (extend-ribcage!1147 ribcage1462 id1484 
label1485) (parse1464 (cdr body1465) (cons id1484 ids1466) (cons label1485 
labels1467) vars1468 vals1469 (cons (cons (quote macro) (cons er1473 (wrap1159 
e1476 w1477 mod1479))) bindings1470)))) (if (memv t1480 (quote (begin-form))) 
((lambda (tmp1486) ((lambda (tmp1487) (if tmp1487 (apply (lambda (_1488 e11489) 
(parse1464 (let f1490 ((forms1491 e11489)) (if (null? forms1491) (cdr body1465) 
(cons (cons er1473 (wrap1159 (car forms1491) w1477 mod1479)) (f1490 (cdr 
forms1491))))) ids1466 labels1467 vars1468 vals1469 bindings1470)) tmp1487) 
(syntax-error tmp1486))) (syntax-dispatch tmp1486 (quote (any . each-any))))) 
e1476) (if (memv t1480 (quote (local-syntax-form))) (chi-local-syntax1173 
value1475 e1476 er1473 w1477 s1478 mod1479 (lambda (forms1493 er1494 w1495 
s1496 mod1497) (parse1464 (let f1498 ((forms1499 forms1493)) (if (null? 
forms1499) (cdr body1465) (cons (cons er1494 (wrap1159 (car forms1499) w1495 
mod1497)) (f1498 (cdr forms1499))))) ids1466 labels1467 vars1468 vals1469 
bindings1470))) (if (null? ids1466) (build-sequence1110 #f (map (lambda (x1500) 
(chi1167 (cdr x1500) (car x1500) (quote (())) mod1479)) (cons (cons er1473 
(source-wrap1160 e1476 w1477 s1478 mod1479)) (cdr body1465)))) (begin (if (not 
(valid-bound-ids?1156 ids1466)) (syntax-error outer-form1457 "invalid or 
duplicate identifier in definition")) (let loop1501 ((bs1502 bindings1470) 
(er-cache1503 #f) (r-cache1504 #f)) (if (not (null? bs1502)) (let ((b1505 (car 
bs1502))) (if (eq? (car b1505) (quote macro)) (let ((er1506 (cadr b1505))) (let 
((r-cache1507 (if (eq? er1506 er-cache1503) r-cache1504 (macros-only-env1127 
er1506)))) (begin (set-cdr! b1505 (eval-local-transformer1174 (chi1167 (cddr 
b1505) r-cache1507 (quote (())) mod1479) mod1479)) (loop1501 (cdr bs1502) 
er1506 r-cache1507)))) (loop1501 (cdr bs1502) er-cache1503 r-cache1504))))) 
(set-cdr! r1461 (extend-env1125 labels1467 bindings1470 (cdr r1461))) 
(build-letrec1113 #f vars1468 (map (lambda (x1508) (chi1167 (cdr x1508) (car 
x1508) (quote (())) mod1479)) vals1469) (build-sequence1110 #f (map (lambda 
(x1509) (chi1167 (cdr x1509) (car x1509) (quote (())) mod1479)) (cons (cons 
er1473 (source-wrap1160 e1476 w1477 s1478 mod1479)) (cdr 
body1465)))))))))))))))))))))) (chi-macro1170 (lambda (p1510 e1511 r1512 w1513 
rib1514 mod1515) (letrec ((rebuild-macro-output1516 (lambda (x1517 m1518) (cond 
((pair? x1517) (cons (rebuild-macro-output1516 (car x1517) m1518) 
(rebuild-macro-output1516 (cdr x1517) m1518))) ((syntax-object?1115 x1517) (let 
((w1519 (syntax-object-wrap1117 x1517))) (let ((ms1520 (wrap-marks1134 w1519)) 
(s1521 (wrap-subst1135 w1519))) (if (and (pair? ms1520) (eq? (car ms1520) #f)) 
(make-syntax-object1114 (syntax-object-expression1116 x1517) (make-wrap1133 
(cdr ms1520) (if rib1514 (cons rib1514 (cdr s1521)) (cdr s1521))) 
(syntax-object-module1118 x1517)) (make-syntax-object1114 
(syntax-object-expression1116 x1517) (make-wrap1133 (cons m1518 ms1520) (if 
rib1514 (cons rib1514 (cons (quote shift) s1521)) (cons (quote shift) s1521))) 
(let ((pmod1522 (procedure-module p1510))) (if pmod1522 (cons (quote hygiene) 
(module-name pmod1522)) (quote (hygiene guile))))))))) ((vector? x1517) (let 
((n1523 (vector-length x1517))) (let ((v1524 (make-vector n1523))) (let 
doloop1525 ((i1526 0)) (if (fx=1100 i1526 n1523) v1524 (begin (vector-set! 
v1524 i1526 (rebuild-macro-output1516 (vector-ref x1517 i1526) m1518)) 
(doloop1525 (fx+1098 i1526 1)))))))) ((symbol? x1517) (syntax-error x1517 
"encountered raw symbol in macro output")) (else x1517))))) 
(rebuild-macro-output1516 (p1510 (wrap1159 e1511 (anti-mark1146 w1513) 
mod1515)) (string #\m))))) (chi-application1169 (lambda (x1527 e1528 r1529 
w1530 s1531 mod1532) ((lambda (tmp1533) ((lambda (tmp1534) (if tmp1534 (apply 
(lambda (e01535 e11536) (build-annotated1108 s1531 (cons x1527 (map (lambda 
(e1537) (chi1167 e1537 r1529 w1530 mod1532)) e11536)))) tmp1534) (syntax-error 
tmp1533))) (syntax-dispatch tmp1533 (quote (any . each-any))))) e1528))) 
(chi-expr1168 (lambda (type1539 value1540 e1541 r1542 w1543 s1544 mod1545) (let 
((t1546 type1539)) (if (memv t1546 (quote (lexical))) (build-annotated1108 
s1544 value1540) (if (memv t1546 (quote (core external-macro))) (value1540 
e1541 r1542 w1543 s1544 mod1545) (if (memv t1546 (quote (module-ref))) 
(call-with-values (lambda () (value1540 e1541)) (lambda (id1547 mod1548) 
(build-annotated1108 s1544 (if mod1548 (make-module-ref (cdr mod1548) id1547 
(car mod1548)) (make-module-ref mod1548 id1547 (quote bare)))))) (if (memv 
t1546 (quote (lexical-call))) (chi-application1169 (build-annotated1108 
(source-annotation1122 (car e1541)) value1540) e1541 r1542 w1543 s1544 mod1545) 
(if (memv t1546 (quote (global-call))) (chi-application1169 
(build-annotated1108 (source-annotation1122 (car e1541)) (if (if 
(syntax-object?1115 (car e1541)) (syntax-object-module1118 (car e1541)) 
mod1545) (make-module-ref (cdr (if (syntax-object?1115 (car e1541)) 
(syntax-object-module1118 (car e1541)) mod1545)) value1540 (car (if 
(syntax-object?1115 (car e1541)) (syntax-object-module1118 (car e1541)) 
mod1545))) (make-module-ref (if (syntax-object?1115 (car e1541)) 
(syntax-object-module1118 (car e1541)) mod1545) value1540 (quote bare)))) e1541 
r1542 w1543 s1544 mod1545) (if (memv t1546 (quote (constant))) (build-data1109 
s1544 (strip1178 (source-wrap1160 e1541 w1543 s1544 mod1545) (quote (())))) (if 
(memv t1546 (quote (global))) (build-annotated1108 s1544 (if mod1545 
(make-module-ref (cdr mod1545) value1540 (car mod1545)) (make-module-ref 
mod1545 value1540 (quote bare)))) (if (memv t1546 (quote (call))) 
(chi-application1169 (chi1167 (car e1541) r1542 w1543 mod1545) e1541 r1542 
w1543 s1544 mod1545) (if (memv t1546 (quote (begin-form))) ((lambda (tmp1549) 
((lambda (tmp1550) (if tmp1550 (apply (lambda (_1551 e11552 e21553) 
(chi-sequence1161 (cons e11552 e21553) r1542 w1543 s1544 mod1545)) tmp1550) 
(syntax-error tmp1549))) (syntax-dispatch tmp1549 (quote (any any . 
each-any))))) e1541) (if (memv t1546 (quote (local-syntax-form))) 
(chi-local-syntax1173 value1540 e1541 r1542 w1543 s1544 mod1545 
chi-sequence1161) (if (memv t1546 (quote (eval-when-form))) ((lambda (tmp1555) 
((lambda (tmp1556) (if tmp1556 (apply (lambda (_1557 x1558 e11559 e21560) (let 
((when-list1561 (chi-when-list1164 e1541 x1558 w1543))) (if (memq (quote eval) 
when-list1561) (chi-sequence1161 (cons e11559 e21560) r1542 w1543 s1544 
mod1545) (chi-void1175)))) tmp1556) (syntax-error tmp1555))) (syntax-dispatch 
tmp1555 (quote (any each-any any . each-any))))) e1541) (if (memv t1546 (quote 
(define-form define-syntax-form))) (syntax-error (wrap1159 value1540 w1543 
mod1545) "invalid context for definition of") (if (memv t1546 (quote (syntax))) 
(syntax-error (source-wrap1160 e1541 w1543 s1544 mod1545) "reference to pattern 
variable outside syntax form") (if (memv t1546 (quote (displaced-lexical))) 
(syntax-error (source-wrap1160 e1541 w1543 s1544 mod1545) "reference to 
identifier outside its scope") (syntax-error (source-wrap1160 e1541 w1543 s1544 
mod1545))))))))))))))))))) (chi1167 (lambda (e1564 r1565 w1566 mod1567) 
(call-with-values (lambda () (syntax-type1165 e1564 r1565 w1566 #f #f mod1567)) 
(lambda (type1568 value1569 e1570 w1571 s1572 mod1573) (chi-expr1168 type1568 
value1569 e1570 r1565 w1571 s1572 mod1573))))) (chi-top1166 (lambda (e1574 
r1575 w1576 m1577 esew1578 mod1579) (call-with-values (lambda () 
(syntax-type1165 e1574 r1575 w1576 #f #f mod1579)) (lambda (type1587 value1588 
e1589 w1590 s1591 mod1592) (let ((t1593 type1587)) (if (memv t1593 (quote 
(begin-form))) ((lambda (tmp1594) ((lambda (tmp1595) (if tmp1595 (apply (lambda 
(_1596) (chi-void1175)) tmp1595) ((lambda (tmp1597) (if tmp1597 (apply (lambda 
(_1598 e11599 e21600) (chi-top-sequence1162 (cons e11599 e21600) r1575 w1590 
s1591 m1577 esew1578 mod1592)) tmp1597) (syntax-error tmp1594))) 
(syntax-dispatch tmp1594 (quote (any any . each-any)))))) (syntax-dispatch 
tmp1594 (quote (any))))) e1589) (if (memv t1593 (quote (local-syntax-form))) 
(chi-local-syntax1173 value1588 e1589 r1575 w1590 s1591 mod1592 (lambda 
(body1602 r1603 w1604 s1605 mod1606) (chi-top-sequence1162 body1602 r1603 w1604 
s1605 m1577 esew1578 mod1606))) (if (memv t1593 (quote (eval-when-form))) 
((lambda (tmp1607) ((lambda (tmp1608) (if tmp1608 (apply (lambda (_1609 x1610 
e11611 e21612) (let ((when-list1613 (chi-when-list1164 e1589 x1610 w1590)) 
(body1614 (cons e11611 e21612))) (cond ((eq? m1577 (quote e)) (if (memq (quote 
eval) when-list1613) (chi-top-sequence1162 body1614 r1575 w1590 s1591 (quote e) 
(quote (eval)) mod1592) (chi-void1175))) ((memq (quote load) when-list1613) (if 
(or (memq (quote compile) when-list1613) (and (eq? m1577 (quote c&e)) (memq 
(quote eval) when-list1613))) (chi-top-sequence1162 body1614 r1575 w1590 s1591 
(quote c&e) (quote (compile load)) mod1592) (if (memq m1577 (quote (c c&e))) 
(chi-top-sequence1162 body1614 r1575 w1590 s1591 (quote c) (quote (load)) 
mod1592) (chi-void1175)))) ((or (memq (quote compile) when-list1613) (and (eq? 
m1577 (quote c&e)) (memq (quote eval) when-list1613))) (top-level-eval-hook1102 
(chi-top-sequence1162 body1614 r1575 w1590 s1591 (quote e) (quote (eval)) 
mod1592) mod1592) (chi-void1175)) (else (chi-void1175))))) tmp1608) 
(syntax-error tmp1607))) (syntax-dispatch tmp1607 (quote (any each-any any . 
each-any))))) e1589) (if (memv t1593 (quote (define-syntax-form))) (let ((n1617 
(id-var-name1153 value1588 w1590)) (r1618 (macros-only-env1127 r1575))) (let 
((t1619 m1577)) (if (memv t1619 (quote (c))) (if (memq (quote compile) 
esew1578) (let ((e1620 (chi-install-global1163 n1617 (chi1167 e1589 r1618 w1590 
mod1592)))) (begin (top-level-eval-hook1102 e1620 mod1592) (if (memq (quote 
load) esew1578) e1620 (chi-void1175)))) (if (memq (quote load) esew1578) 
(chi-install-global1163 n1617 (chi1167 e1589 r1618 w1590 mod1592)) 
(chi-void1175))) (if (memv t1619 (quote (c&e))) (let ((e1621 
(chi-install-global1163 n1617 (chi1167 e1589 r1618 w1590 mod1592)))) (begin 
(top-level-eval-hook1102 e1621 mod1592) e1621)) (begin (if (memq (quote eval) 
esew1578) (top-level-eval-hook1102 (chi-install-global1163 n1617 (chi1167 e1589 
r1618 w1590 mod1592)) mod1592)) (chi-void1175)))))) (if (memv t1593 (quote 
(define-form))) (let ((n1622 (id-var-name1153 value1588 w1590))) (let 
((type1623 (binding-type1123 (lookup1128 n1622 r1575 mod1592)))) (let ((t1624 
type1623)) (if (memv t1624 (quote (global))) (let ((x1625 (build-annotated1108 
s1591 (list (quote define) n1622 (chi1167 e1589 r1575 w1590 mod1592))))) (begin 
(if (eq? m1577 (quote c&e)) (top-level-eval-hook1102 x1625 mod1592)) x1625)) 
(if (memv t1624 (quote (displaced-lexical))) (syntax-error (wrap1159 value1588 
w1590 mod1592) "identifier out of context") (if (memv t1624 (quote (core macro 
module-ref))) (begin (remove-global-definition-hook1106 n1622) (let ((x1626 
(build-annotated1108 s1591 (list (quote define) n1622 (chi1167 e1589 r1575 
w1590 mod1592))))) (begin (if (eq? m1577 (quote c&e)) (top-level-eval-hook1102 
x1626 mod1592)) x1626))) (syntax-error (wrap1159 value1588 w1590 mod1592) 
"cannot define keyword at top level"))))))) (let ((x1627 (chi-expr1168 type1587 
value1588 e1589 r1575 w1590 s1591 mod1592))) (begin (if (eq? m1577 (quote c&e)) 
(top-level-eval-hook1102 x1627 mod1592)) x1627)))))))))))) (syntax-type1165 
(lambda (e1628 r1629 w1630 s1631 rib1632 mod1633) (cond ((symbol? e1628) (let 
((n1634 (id-var-name1153 e1628 w1630))) (let ((b1635 (lookup1128 n1634 r1629 
mod1633))) (let ((type1636 (binding-type1123 b1635))) (let ((t1637 type1636)) 
(if (memv t1637 (quote (lexical))) (values type1636 (binding-value1124 b1635) 
e1628 w1630 s1631 mod1633) (if (memv t1637 (quote (global))) (values type1636 
n1634 e1628 w1630 s1631 mod1633) (if (memv t1637 (quote (macro))) 
(syntax-type1165 (chi-macro1170 (binding-value1124 b1635) e1628 r1629 w1630 
rib1632 mod1633) r1629 (quote (())) s1631 rib1632 mod1633) (values type1636 
(binding-value1124 b1635) e1628 w1630 s1631 mod1633))))))))) ((pair? e1628) 
(let ((first1638 (car e1628))) (if (id?1131 first1638) (let ((n1639 
(id-var-name1153 first1638 w1630))) (let ((b1640 (lookup1128 n1639 r1629 (or 
(and (syntax-object?1115 first1638) (syntax-object-module1118 first1638)) 
mod1633)))) (let ((type1641 (binding-type1123 b1640))) (let ((t1642 type1641)) 
(if (memv t1642 (quote (lexical))) (values (quote lexical-call) 
(binding-value1124 b1640) e1628 w1630 s1631 mod1633) (if (memv t1642 (quote 
(global))) (values (quote global-call) n1639 e1628 w1630 s1631 mod1633) (if 
(memv t1642 (quote (macro))) (syntax-type1165 (chi-macro1170 (binding-value1124 
b1640) e1628 r1629 w1630 rib1632 mod1633) r1629 (quote (())) s1631 rib1632 
mod1633) (if (memv t1642 (quote (core external-macro module-ref))) (values 
type1641 (binding-value1124 b1640) e1628 w1630 s1631 mod1633) (if (memv t1642 
(quote (local-syntax))) (values (quote local-syntax-form) (binding-value1124 
b1640) e1628 w1630 s1631 mod1633) (if (memv t1642 (quote (begin))) (values 
(quote begin-form) #f e1628 w1630 s1631 mod1633) (if (memv t1642 (quote 
(eval-when))) (values (quote eval-when-form) #f e1628 w1630 s1631 mod1633) (if 
(memv t1642 (quote (define))) ((lambda (tmp1643) ((lambda (tmp1644) (if (if 
tmp1644 (apply (lambda (_1645 name1646 val1647) (id?1131 name1646)) tmp1644) 
#f) (apply (lambda (_1648 name1649 val1650) (values (quote define-form) 
name1649 val1650 w1630 s1631 mod1633)) tmp1644) ((lambda (tmp1651) (if (if 
tmp1651 (apply (lambda (_1652 name1653 args1654 e11655 e21656) (and (id?1131 
name1653) (valid-bound-ids?1156 (lambda-var-list1180 args1654)))) tmp1651) #f) 
(apply (lambda (_1657 name1658 args1659 e11660 e21661) (values (quote 
define-form) (wrap1159 name1658 w1630 mod1633) (cons (quote #(syntax-object 
lambda ((top) #(ribcage #(_ name args e1 e2) #((top) (top) (top) (top) (top)) 
#("i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(t) #(("m" top)) #("i")) 
#(ribcage () () ()) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(type) 
#((top)) #("i")) #(ribcage () () ()) #(ribcage #(b) #((top)) #("i")) #(ribcage 
() () ()) #(ribcage #(n) #((top)) #("i")) #(ribcage () () ()) #(ribcage 
#(first) #((top)) #("i")) #(ribcage () () ()) #(ribcage #(e r w s rib mod) 
#((top) (top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i" "i")) #(ribcage 
(lambda-var-list gen-var strip strip-annotation ellipsis? chi-void 
eval-local-transformer chi-local-syntax chi-lambda-clause chi-body chi-macro 
chi-application chi-expr chi chi-top syntax-type chi-when-list 
chi-install-global chi-top-sequence chi-sequence source-wrap wrap 
bound-id-member? distinct-bound-ids? valid-bound-ids? bound-id=? free-id=? 
id-var-name same-marks? join-marks join-wraps smart-append make-binding-wrap 
extend-ribcage! make-empty-ribcage new-mark anti-mark the-anti-mark top-marked? 
top-wrap empty-wrap set-ribcage-labels! set-ribcage-marks! 
set-ribcage-symnames! ribcage-labels ribcage-marks ribcage-symnames ribcage? 
make-ribcage gen-labels gen-label make-rename rename-marks rename-new 
rename-old subst-rename? wrap-subst wrap-marks make-wrap id-sym-name&marks 
id-sym-name id? nonsymbol-id? global-extend lookup macros-only-env 
extend-var-env extend-env null-env binding-value binding-type make-binding 
arg-check source-annotation no-source unannotate 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 build-global-definition 
build-global-assignment build-global-reference build-lexical-assignment 
build-lexical-reference build-conditional build-application build-annotated 
get-global-definition-hook remove-global-definition-hook 
put-global-definition-hook gensym-hook error-hook local-eval-hook 
top-level-eval-hook fx< fx= fx- fx+ noexpand) ((top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top)) ("i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i")) #(ribcage 
(define-structure) ((top)) ("i"))) (hygiene guile))) (wrap1159 (cons args1659 
(cons e11660 e21661)) w1630 mod1633)) (quote (())) s1631 mod1633)) tmp1651) 
((lambda (tmp1663) (if (if tmp1663 (apply (lambda (_1664 name1665) (id?1131 
name1665)) tmp1663) #f) (apply (lambda (_1666 name1667) (values (quote 
define-form) (wrap1159 name1667 w1630 mod1633) (quote (#(syntax-object void 
((top) #(ribcage #(_ name) #((top) (top)) #("i" "i")) #(ribcage () () ()) 
#(ribcage #(t) #(("m" top)) #("i")) #(ribcage () () ()) #(ribcage () () ()) 
#(ribcage () () ()) #(ribcage #(type) #((top)) #("i")) #(ribcage () () ()) 
#(ribcage #(b) #((top)) #("i")) #(ribcage () () ()) #(ribcage #(n) #((top)) 
#("i")) #(ribcage () () ()) #(ribcage #(first) #((top)) #("i")) #(ribcage () () 
()) #(ribcage #(e r w s rib mod) #((top) (top) (top) (top) (top) (top)) #("i" 
"i" "i" "i" "i" "i")) #(ribcage (lambda-var-list gen-var strip strip-annotation 
ellipsis? chi-void eval-local-transformer chi-local-syntax chi-lambda-clause 
chi-body chi-macro chi-application chi-expr chi chi-top syntax-type 
chi-when-list chi-install-global chi-top-sequence chi-sequence source-wrap wrap 
bound-id-member? distinct-bound-ids? valid-bound-ids? bound-id=? free-id=? 
id-var-name same-marks? join-marks join-wraps smart-append make-binding-wrap 
extend-ribcage! make-empty-ribcage new-mark anti-mark the-anti-mark top-marked? 
top-wrap empty-wrap set-ribcage-labels! set-ribcage-marks! 
set-ribcage-symnames! ribcage-labels ribcage-marks ribcage-symnames ribcage? 
make-ribcage gen-labels gen-label make-rename rename-marks rename-new 
rename-old subst-rename? wrap-subst wrap-marks make-wrap id-sym-name&marks 
id-sym-name id? nonsymbol-id? global-extend lookup macros-only-env 
extend-var-env extend-env null-env binding-value binding-type make-binding 
arg-check source-annotation no-source unannotate 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 build-global-definition 
build-global-assignment build-global-reference build-lexical-assignment 
build-lexical-reference build-conditional build-application build-annotated 
get-global-definition-hook remove-global-definition-hook 
put-global-definition-hook gensym-hook error-hook local-eval-hook 
top-level-eval-hook fx< fx= fx- fx+ noexpand) ((top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top)) ("i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i")) #(ribcage 
(define-structure) ((top)) ("i"))) (hygiene guile)))) (quote (())) s1631 
mod1633)) tmp1663) (syntax-error tmp1643))) (syntax-dispatch tmp1643 (quote 
(any any)))))) (syntax-dispatch tmp1643 (quote (any (any . any) any . 
each-any)))))) (syntax-dispatch tmp1643 (quote (any any any))))) e1628) (if 
(memv t1642 (quote (define-syntax))) ((lambda (tmp1668) ((lambda (tmp1669) (if 
(if tmp1669 (apply (lambda (_1670 name1671 val1672) (id?1131 name1671)) 
tmp1669) #f) (apply (lambda (_1673 name1674 val1675) (values (quote 
define-syntax-form) name1674 val1675 w1630 s1631 mod1633)) tmp1669) 
(syntax-error tmp1668))) (syntax-dispatch tmp1668 (quote (any any any))))) 
e1628) (values (quote call) #f e1628 w1630 s1631 mod1633)))))))))))))) (values 
(quote call) #f e1628 w1630 s1631 mod1633)))) ((syntax-object?1115 e1628) 
(syntax-type1165 (syntax-object-expression1116 e1628) r1629 (join-wraps1150 
w1630 (syntax-object-wrap1117 e1628)) #f rib1632 (or (syntax-object-module1118 
e1628) mod1633))) ((annotation? e1628) (syntax-type1165 (annotation-expression 
e1628) r1629 w1630 (annotation-source e1628) rib1632 mod1633)) 
((self-evaluating? e1628) (values (quote constant) #f e1628 w1630 s1631 
mod1633)) (else (values (quote other) #f e1628 w1630 s1631 mod1633))))) 
(chi-when-list1164 (lambda (e1676 when-list1677 w1678) (let f1679 
((when-list1680 when-list1677) (situations1681 (quote ()))) (if (null? 
when-list1680) situations1681 (f1679 (cdr when-list1680) (cons (let ((x1682 
(car when-list1680))) (cond ((free-id=?1154 x1682 (quote #(syntax-object 
compile ((top) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i")) #(ribcage () 
() ()) #(ribcage #(f when-list situations) #((top) (top) (top)) #("i" "i" "i")) 
#(ribcage () () ()) #(ribcage #(e when-list w) #((top) (top) (top)) #("i" "i" 
"i")) #(ribcage (lambda-var-list gen-var strip strip-annotation ellipsis? 
chi-void eval-local-transformer chi-local-syntax chi-lambda-clause chi-body 
chi-macro chi-application chi-expr chi chi-top syntax-type chi-when-list 
chi-install-global chi-top-sequence chi-sequence source-wrap wrap 
bound-id-member? distinct-bound-ids? valid-bound-ids? bound-id=? free-id=? 
id-var-name same-marks? join-marks join-wraps smart-append make-binding-wrap 
extend-ribcage! make-empty-ribcage new-mark anti-mark the-anti-mark top-marked? 
top-wrap empty-wrap set-ribcage-labels! set-ribcage-marks! 
set-ribcage-symnames! ribcage-labels ribcage-marks ribcage-symnames ribcage? 
make-ribcage gen-labels gen-label make-rename rename-marks rename-new 
rename-old subst-rename? wrap-subst wrap-marks make-wrap id-sym-name&marks 
id-sym-name id? nonsymbol-id? global-extend lookup macros-only-env 
extend-var-env extend-env null-env binding-value binding-type make-binding 
arg-check source-annotation no-source unannotate 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 build-global-definition 
build-global-assignment build-global-reference build-lexical-assignment 
build-lexical-reference build-conditional build-application build-annotated 
get-global-definition-hook remove-global-definition-hook 
put-global-definition-hook gensym-hook error-hook local-eval-hook 
top-level-eval-hook fx< fx= fx- fx+ noexpand) ((top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top)) ("i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i")) #(ribcage 
(define-structure) ((top)) ("i"))) (hygiene guile)))) (quote compile)) 
((free-id=?1154 x1682 (quote #(syntax-object load ((top) #(ribcage () () ()) 
#(ribcage #(x) #((top)) #("i")) #(ribcage () () ()) #(ribcage #(f when-list 
situations) #((top) (top) (top)) #("i" "i" "i")) #(ribcage () () ()) #(ribcage 
#(e when-list w) #((top) (top) (top)) #("i" "i" "i")) #(ribcage 
(lambda-var-list gen-var strip strip-annotation ellipsis? chi-void 
eval-local-transformer chi-local-syntax chi-lambda-clause chi-body chi-macro 
chi-application chi-expr chi chi-top syntax-type chi-when-list 
chi-install-global chi-top-sequence chi-sequence source-wrap wrap 
bound-id-member? distinct-bound-ids? valid-bound-ids? bound-id=? free-id=? 
id-var-name same-marks? join-marks join-wraps smart-append make-binding-wrap 
extend-ribcage! make-empty-ribcage new-mark anti-mark the-anti-mark top-marked? 
top-wrap empty-wrap set-ribcage-labels! set-ribcage-marks! 
set-ribcage-symnames! ribcage-labels ribcage-marks ribcage-symnames ribcage? 
make-ribcage gen-labels gen-label make-rename rename-marks rename-new 
rename-old subst-rename? wrap-subst wrap-marks make-wrap id-sym-name&marks 
id-sym-name id? nonsymbol-id? global-extend lookup macros-only-env 
extend-var-env extend-env null-env binding-value binding-type make-binding 
arg-check source-annotation no-source unannotate 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 build-global-definition 
build-global-assignment build-global-reference build-lexical-assignment 
build-lexical-reference build-conditional build-application build-annotated 
get-global-definition-hook remove-global-definition-hook 
put-global-definition-hook gensym-hook error-hook local-eval-hook 
top-level-eval-hook fx< fx= fx- fx+ noexpand) ((top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top)) ("i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i")) #(ribcage 
(define-structure) ((top)) ("i"))) (hygiene guile)))) (quote load)) 
((free-id=?1154 x1682 (quote #(syntax-object eval ((top) #(ribcage () () ()) 
#(ribcage #(x) #((top)) #("i")) #(ribcage () () ()) #(ribcage #(f when-list 
situations) #((top) (top) (top)) #("i" "i" "i")) #(ribcage () () ()) #(ribcage 
#(e when-list w) #((top) (top) (top)) #("i" "i" "i")) #(ribcage 
(lambda-var-list gen-var strip strip-annotation ellipsis? chi-void 
eval-local-transformer chi-local-syntax chi-lambda-clause chi-body chi-macro 
chi-application chi-expr chi chi-top syntax-type chi-when-list 
chi-install-global chi-top-sequence chi-sequence source-wrap wrap 
bound-id-member? distinct-bound-ids? valid-bound-ids? bound-id=? free-id=? 
id-var-name same-marks? join-marks join-wraps smart-append make-binding-wrap 
extend-ribcage! make-empty-ribcage new-mark anti-mark the-anti-mark top-marked? 
top-wrap empty-wrap set-ribcage-labels! set-ribcage-marks! 
set-ribcage-symnames! ribcage-labels ribcage-marks ribcage-symnames ribcage? 
make-ribcage gen-labels gen-label make-rename rename-marks rename-new 
rename-old subst-rename? wrap-subst wrap-marks make-wrap id-sym-name&marks 
id-sym-name id? nonsymbol-id? global-extend lookup macros-only-env 
extend-var-env extend-env null-env binding-value binding-type make-binding 
arg-check source-annotation no-source unannotate 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 build-global-definition 
build-global-assignment build-global-reference build-lexical-assignment 
build-lexical-reference build-conditional build-application build-annotated 
get-global-definition-hook remove-global-definition-hook 
put-global-definition-hook gensym-hook error-hook local-eval-hook 
top-level-eval-hook fx< fx= fx- fx+ noexpand) ((top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top)) ("i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i")) #(ribcage 
(define-structure) ((top)) ("i"))) (hygiene guile)))) (quote eval)) (else 
(syntax-error (wrap1159 x1682 w1678 #f) "invalid eval-when situation")))) 
situations1681)))))) (chi-install-global1163 (lambda (name1683 e1684) 
(build-annotated1108 #f (list (build-annotated1108 #f (quote 
install-global-transformer)) (build-data1109 #f name1683) e1684)))) 
(chi-top-sequence1162 (lambda (body1685 r1686 w1687 s1688 m1689 esew1690 
mod1691) (build-sequence1110 s1688 (let dobody1692 ((body1693 body1685) (r1694 
r1686) (w1695 w1687) (m1696 m1689) (esew1697 esew1690) (mod1698 mod1691)) (if 
(null? body1693) (quote ()) (let ((first1699 (chi-top1166 (car body1693) r1694 
w1695 m1696 esew1697 mod1698))) (cons first1699 (dobody1692 (cdr body1693) 
r1694 w1695 m1696 esew1697 mod1698)))))))) (chi-sequence1161 (lambda (body1700 
r1701 w1702 s1703 mod1704) (build-sequence1110 s1703 (let dobody1705 ((body1706 
body1700) (r1707 r1701) (w1708 w1702) (mod1709 mod1704)) (if (null? body1706) 
(quote ()) (let ((first1710 (chi1167 (car body1706) r1707 w1708 mod1709))) 
(cons first1710 (dobody1705 (cdr body1706) r1707 w1708 mod1709)))))))) 
(source-wrap1160 (lambda (x1711 w1712 s1713 defmod1714) (wrap1159 (if s1713 
(make-annotation x1711 s1713 #f) x1711) w1712 defmod1714))) (wrap1159 (lambda 
(x1715 w1716 defmod1717) (cond ((and (null? (wrap-marks1134 w1716)) (null? 
(wrap-subst1135 w1716))) x1715) ((syntax-object?1115 x1715) 
(make-syntax-object1114 (syntax-object-expression1116 x1715) (join-wraps1150 
w1716 (syntax-object-wrap1117 x1715)) (syntax-object-module1118 x1715))) 
((null? x1715) x1715) (else (make-syntax-object1114 x1715 w1716 defmod1717))))) 
(bound-id-member?1158 (lambda (x1718 list1719) (and (not (null? list1719)) (or 
(bound-id=?1155 x1718 (car list1719)) (bound-id-member?1158 x1718 (cdr 
list1719)))))) (distinct-bound-ids?1157 (lambda (ids1720) (let distinct?1721 
((ids1722 ids1720)) (or (null? ids1722) (and (not (bound-id-member?1158 (car 
ids1722) (cdr ids1722))) (distinct?1721 (cdr ids1722))))))) 
(valid-bound-ids?1156 (lambda (ids1723) (and (let all-ids?1724 ((ids1725 
ids1723)) (or (null? ids1725) (and (id?1131 (car ids1725)) (all-ids?1724 (cdr 
ids1725))))) (distinct-bound-ids?1157 ids1723)))) (bound-id=?1155 (lambda 
(i1726 j1727) (if (and (syntax-object?1115 i1726) (syntax-object?1115 j1727)) 
(and (eq? (let ((e1728 (syntax-object-expression1116 i1726))) (if (annotation? 
e1728) (annotation-expression e1728) e1728)) (let ((e1729 
(syntax-object-expression1116 j1727))) (if (annotation? e1729) 
(annotation-expression e1729) e1729))) (same-marks?1152 (wrap-marks1134 
(syntax-object-wrap1117 i1726)) (wrap-marks1134 (syntax-object-wrap1117 
j1727)))) (eq? (let ((e1730 i1726)) (if (annotation? e1730) 
(annotation-expression e1730) e1730)) (let ((e1731 j1727)) (if (annotation? 
e1731) (annotation-expression e1731) e1731)))))) (free-id=?1154 (lambda (i1732 
j1733) (and (eq? (let ((x1734 i1732)) (let ((e1735 (if (syntax-object?1115 
x1734) (syntax-object-expression1116 x1734) x1734))) (if (annotation? e1735) 
(annotation-expression e1735) e1735))) (let ((x1736 j1733)) (let ((e1737 (if 
(syntax-object?1115 x1736) (syntax-object-expression1116 x1736) x1736))) (if 
(annotation? e1737) (annotation-expression e1737) e1737)))) (eq? 
(id-var-name1153 i1732 (quote (()))) (id-var-name1153 j1733 (quote (()))))))) 
(id-var-name1153 (lambda (id1738 w1739) (letrec ((search-vector-rib1742 (lambda 
(sym1748 subst1749 marks1750 symnames1751 ribcage1752) (let ((n1753 
(vector-length symnames1751))) (let f1754 ((i1755 0)) (cond ((fx=1100 i1755 
n1753) (search1740 sym1748 (cdr subst1749) marks1750)) ((and (eq? (vector-ref 
symnames1751 i1755) sym1748) (same-marks?1152 marks1750 (vector-ref 
(ribcage-marks1141 ribcage1752) i1755))) (values (vector-ref 
(ribcage-labels1142 ribcage1752) i1755) marks1750)) (else (f1754 (fx+1098 i1755 
1)))))))) (search-list-rib1741 (lambda (sym1756 subst1757 marks1758 
symnames1759 ribcage1760) (let f1761 ((symnames1762 symnames1759) (i1763 0)) 
(cond ((null? symnames1762) (search1740 sym1756 (cdr subst1757) marks1758)) 
((and (eq? (car symnames1762) sym1756) (same-marks?1152 marks1758 (list-ref 
(ribcage-marks1141 ribcage1760) i1763))) (values (list-ref (ribcage-labels1142 
ribcage1760) i1763) marks1758)) (else (f1761 (cdr symnames1762) (fx+1098 i1763 
1))))))) (search1740 (lambda (sym1764 subst1765 marks1766) (if (null? 
subst1765) (values #f marks1766) (let ((fst1767 (car subst1765))) (if (eq? 
fst1767 (quote shift)) (search1740 sym1764 (cdr subst1765) (cdr marks1766)) 
(let ((symnames1768 (ribcage-symnames1140 fst1767))) (if (vector? symnames1768) 
(search-vector-rib1742 sym1764 subst1765 marks1766 symnames1768 fst1767) 
(search-list-rib1741 sym1764 subst1765 marks1766 symnames1768 fst1767))))))))) 
(cond ((symbol? id1738) (or (call-with-values (lambda () (search1740 id1738 
(wrap-subst1135 w1739) (wrap-marks1134 w1739))) (lambda (x1770 . ignore1769) 
x1770)) id1738)) ((syntax-object?1115 id1738) (let ((id1771 (let ((e1773 
(syntax-object-expression1116 id1738))) (if (annotation? e1773) 
(annotation-expression e1773) e1773))) (w11772 (syntax-object-wrap1117 
id1738))) (let ((marks1774 (join-marks1151 (wrap-marks1134 w1739) 
(wrap-marks1134 w11772)))) (call-with-values (lambda () (search1740 id1771 
(wrap-subst1135 w1739) marks1774)) (lambda (new-id1775 marks1776) (or 
new-id1775 (call-with-values (lambda () (search1740 id1771 (wrap-subst1135 
w11772) marks1776)) (lambda (x1778 . ignore1777) x1778)) id1771)))))) 
((annotation? id1738) (let ((id1779 (let ((e1780 id1738)) (if (annotation? 
e1780) (annotation-expression e1780) e1780)))) (or (call-with-values (lambda () 
(search1740 id1779 (wrap-subst1135 w1739) (wrap-marks1134 w1739))) (lambda 
(x1782 . ignore1781) x1782)) id1779))) (else (error-hook1104 (quote 
id-var-name) "invalid id" id1738)))))) (same-marks?1152 (lambda (x1783 y1784) 
(or (eq? x1783 y1784) (and (not (null? x1783)) (not (null? y1784)) (eq? (car 
x1783) (car y1784)) (same-marks?1152 (cdr x1783) (cdr y1784)))))) 
(join-marks1151 (lambda (m11785 m21786) (smart-append1149 m11785 m21786))) 
(join-wraps1150 (lambda (w11787 w21788) (let ((m11789 (wrap-marks1134 w11787)) 
(s11790 (wrap-subst1135 w11787))) (if (null? m11789) (if (null? s11790) w21788 
(make-wrap1133 (wrap-marks1134 w21788) (smart-append1149 s11790 (wrap-subst1135 
w21788)))) (make-wrap1133 (smart-append1149 m11789 (wrap-marks1134 w21788)) 
(smart-append1149 s11790 (wrap-subst1135 w21788))))))) (smart-append1149 
(lambda (m11791 m21792) (if (null? m21792) m11791 (append m11791 m21792)))) 
(make-binding-wrap1148 (lambda (ids1793 labels1794 w1795) (if (null? ids1793) 
w1795 (make-wrap1133 (wrap-marks1134 w1795) (cons (let ((labelvec1796 
(list->vector labels1794))) (let ((n1797 (vector-length labelvec1796))) (let 
((symnamevec1798 (make-vector n1797)) (marksvec1799 (make-vector n1797))) 
(begin (let f1800 ((ids1801 ids1793) (i1802 0)) (if (not (null? ids1801)) 
(call-with-values (lambda () (id-sym-name&marks1132 (car ids1801) w1795)) 
(lambda (symname1803 marks1804) (begin (vector-set! symnamevec1798 i1802 
symname1803) (vector-set! marksvec1799 i1802 marks1804) (f1800 (cdr ids1801) 
(fx+1098 i1802 1))))))) (make-ribcage1138 symnamevec1798 marksvec1799 
labelvec1796))))) (wrap-subst1135 w1795)))))) (extend-ribcage!1147 (lambda 
(ribcage1805 id1806 label1807) (begin (set-ribcage-symnames!1143 ribcage1805 
(cons (let ((e1808 (syntax-object-expression1116 id1806))) (if (annotation? 
e1808) (annotation-expression e1808) e1808)) (ribcage-symnames1140 
ribcage1805))) (set-ribcage-marks!1144 ribcage1805 (cons (wrap-marks1134 
(syntax-object-wrap1117 id1806)) (ribcage-marks1141 ribcage1805))) 
(set-ribcage-labels!1145 ribcage1805 (cons label1807 (ribcage-labels1142 
ribcage1805)))))) (anti-mark1146 (lambda (w1809) (make-wrap1133 (cons #f 
(wrap-marks1134 w1809)) (cons (quote shift) (wrap-subst1135 w1809))))) 
(set-ribcage-labels!1145 (lambda (x1810 update1811) (vector-set! x1810 3 
update1811))) (set-ribcage-marks!1144 (lambda (x1812 update1813) (vector-set! 
x1812 2 update1813))) (set-ribcage-symnames!1143 (lambda (x1814 update1815) 
(vector-set! x1814 1 update1815))) (ribcage-labels1142 (lambda (x1816) 
(vector-ref x1816 3))) (ribcage-marks1141 (lambda (x1817) (vector-ref x1817 
2))) (ribcage-symnames1140 (lambda (x1818) (vector-ref x1818 1))) (ribcage?1139 
(lambda (x1819) (and (vector? x1819) (= (vector-length x1819) 4) (eq? 
(vector-ref x1819 0) (quote ribcage))))) (make-ribcage1138 (lambda 
(symnames1820 marks1821 labels1822) (vector (quote ribcage) symnames1820 
marks1821 labels1822))) (gen-labels1137 (lambda (ls1823) (if (null? ls1823) 
(quote ()) (cons (gen-label1136) (gen-labels1137 (cdr ls1823)))))) 
(gen-label1136 (lambda () (string #\i))) (wrap-subst1135 cdr) (wrap-marks1134 
car) (make-wrap1133 cons) (id-sym-name&marks1132 (lambda (x1824 w1825) (if 
(syntax-object?1115 x1824) (values (let ((e1826 (syntax-object-expression1116 
x1824))) (if (annotation? e1826) (annotation-expression e1826) e1826)) 
(join-marks1151 (wrap-marks1134 w1825) (wrap-marks1134 (syntax-object-wrap1117 
x1824)))) (values (let ((e1827 x1824)) (if (annotation? e1827) 
(annotation-expression e1827) e1827)) (wrap-marks1134 w1825))))) (id?1131 
(lambda (x1828) (cond ((symbol? x1828) #t) ((syntax-object?1115 x1828) (symbol? 
(let ((e1829 (syntax-object-expression1116 x1828))) (if (annotation? e1829) 
(annotation-expression e1829) e1829)))) ((annotation? x1828) (symbol? 
(annotation-expression x1828))) (else #f)))) (nonsymbol-id?1130 (lambda (x1830) 
(and (syntax-object?1115 x1830) (symbol? (let ((e1831 
(syntax-object-expression1116 x1830))) (if (annotation? e1831) 
(annotation-expression e1831) e1831)))))) (global-extend1129 (lambda (type1832 
sym1833 val1834) (put-global-definition-hook1105 sym1833 (cons type1832 
val1834)))) (lookup1128 (lambda (x1835 r1836 mod1837) (cond ((assq x1835 r1836) 
=> cdr) ((symbol? x1835) (or (get-global-definition-hook1107 x1835 mod1837) 
(quote (global)))) (else (quote (displaced-lexical)))))) (macros-only-env1127 
(lambda (r1838) (if (null? r1838) (quote ()) (let ((a1839 (car r1838))) (if 
(eq? (cadr a1839) (quote macro)) (cons a1839 (macros-only-env1127 (cdr r1838))) 
(macros-only-env1127 (cdr r1838))))))) (extend-var-env1126 (lambda (labels1840 
vars1841 r1842) (if (null? labels1840) r1842 (extend-var-env1126 (cdr 
labels1840) (cdr vars1841) (cons (cons (car labels1840) (cons (quote lexical) 
(car vars1841))) r1842))))) (extend-env1125 (lambda (labels1843 bindings1844 
r1845) (if (null? labels1843) r1845 (extend-env1125 (cdr labels1843) (cdr 
bindings1844) (cons (cons (car labels1843) (car bindings1844)) r1845))))) 
(binding-value1124 cdr) (binding-type1123 car) (source-annotation1122 (lambda 
(x1846) (cond ((annotation? x1846) (annotation-source x1846)) 
((syntax-object?1115 x1846) (source-annotation1122 
(syntax-object-expression1116 x1846))) (else #f)))) 
(set-syntax-object-module!1121 (lambda (x1847 update1848) (vector-set! x1847 3 
update1848))) (set-syntax-object-wrap!1120 (lambda (x1849 update1850) 
(vector-set! x1849 2 update1850))) (set-syntax-object-expression!1119 (lambda 
(x1851 update1852) (vector-set! x1851 1 update1852))) (syntax-object-module1118 
(lambda (x1853) (vector-ref x1853 3))) (syntax-object-wrap1117 (lambda (x1854) 
(vector-ref x1854 2))) (syntax-object-expression1116 (lambda (x1855) 
(vector-ref x1855 1))) (syntax-object?1115 (lambda (x1856) (and (vector? x1856) 
(= (vector-length x1856) 4) (eq? (vector-ref x1856 0) (quote syntax-object))))) 
(make-syntax-object1114 (lambda (expression1857 wrap1858 module1859) (vector 
(quote syntax-object) expression1857 wrap1858 module1859))) (build-letrec1113 
(lambda (src1860 vars1861 val-exps1862 body-exp1863) (if (null? vars1861) 
(build-annotated1108 src1860 body-exp1863) (build-annotated1108 src1860 (list 
(quote letrec) (map list vars1861 val-exps1862) body-exp1863))))) 
(build-named-let1112 (lambda (src1864 vars1865 val-exps1866 body-exp1867) (if 
(null? vars1865) (build-annotated1108 src1864 body-exp1867) 
(build-annotated1108 src1864 (list (quote let) (car vars1865) (map list (cdr 
vars1865) val-exps1866) body-exp1867))))) (build-let1111 (lambda (src1868 
vars1869 val-exps1870 body-exp1871) (if (null? vars1869) (build-annotated1108 
src1868 body-exp1871) (build-annotated1108 src1868 (list (quote let) (map list 
vars1869 val-exps1870) body-exp1871))))) (build-sequence1110 (lambda (src1872 
exps1873) (if (null? (cdr exps1873)) (build-annotated1108 src1872 (car 
exps1873)) (build-annotated1108 src1872 (cons (quote begin) exps1873))))) 
(build-data1109 (lambda (src1874 exp1875) (if (and (self-evaluating? exp1875) 
(not (vector? exp1875))) (build-annotated1108 src1874 exp1875) 
(build-annotated1108 src1874 (list (quote quote) exp1875))))) 
(build-annotated1108 (lambda (src1876 exp1877) (if (and src1876 (not 
(annotation? exp1877))) (make-annotation exp1877 src1876 #t) exp1877))) 
(get-global-definition-hook1107 (lambda (symbol1878 module1879) (let 
((module1880 (if module1879 (resolve-module (cdr module1879)) (let ((mod1881 
(current-module))) (begin (if mod1881 (warn "wha" symbol1878)) mod1881))))) 
(let ((v1882 (module-variable module1880 symbol1878))) (and v1882 
(object-property v1882 (quote *sc-expander*))))))) 
(remove-global-definition-hook1106 (lambda (symbol1883) (let ((module1884 
(current-module))) (let ((v1885 (module-local-variable module1884 symbol1883))) 
(if v1885 (let ((p1886 (assq (quote *sc-expander*) (object-properties v1885)))) 
(set-object-properties! v1885 (delq p1886 (object-properties v1885))))))))) 
(put-global-definition-hook1105 (lambda (symbol1887 binding1888) (let 
((module1889 (current-module))) (let ((v1890 (or (module-variable module1889 
symbol1887) (let ((v1891 (make-variable (gensym)))) (begin (module-add! 
module1889 symbol1887 v1891) v1891))))) (begin (if (not (variable-bound? 
v1890)) (variable-set! v1890 (gensym))) (set-object-property! v1890 (quote 
*sc-expander*) binding1888)))))) (error-hook1104 (lambda (who1892 why1893 
what1894) (error who1892 "~a ~s" why1893 what1894))) (local-eval-hook1103 
(lambda (x1895 mod1896) (primitive-eval (list noexpand1097 x1895)))) 
(top-level-eval-hook1102 (lambda (x1897 mod1898) (primitive-eval (list 
noexpand1097 x1897)))) (fx<1101 <) (fx=1100 =) (fx-1099 -) (fx+1098 +) 
(noexpand1097 "noexpand")) (begin (global-extend1129 (quote local-syntax) 
(quote letrec-syntax) #t) (global-extend1129 (quote local-syntax) (quote 
let-syntax) #f) (global-extend1129 (quote core) (quote fluid-let-syntax) 
(lambda (e1899 r1900 w1901 s1902 mod1903) ((lambda (tmp1904) ((lambda (tmp1905) 
(if (if tmp1905 (apply (lambda (_1906 var1907 val1908 e11909 e21910) 
(valid-bound-ids?1156 var1907)) tmp1905) #f) (apply (lambda (_1912 var1913 
val1914 e11915 e21916) (let ((names1917 (map (lambda (x1918) (id-var-name1153 
x1918 w1901)) var1913))) (begin (for-each (lambda (id1920 n1921) (let ((t1922 
(binding-type1123 (lookup1128 n1921 r1900 mod1903)))) (if (memv t1922 (quote 
(displaced-lexical))) (syntax-error (source-wrap1160 id1920 w1901 s1902 
mod1903) "identifier out of context")))) var1913 names1917) (chi-body1171 (cons 
e11915 e21916) (source-wrap1160 e1899 w1901 s1902 mod1903) (extend-env1125 
names1917 (let ((trans-r1925 (macros-only-env1127 r1900))) (map (lambda (x1926) 
(cons (quote macro) (eval-local-transformer1174 (chi1167 x1926 trans-r1925 
w1901 mod1903) mod1903))) val1914)) r1900) w1901 mod1903)))) tmp1905) ((lambda 
(_1928) (syntax-error (source-wrap1160 e1899 w1901 s1902 mod1903))) tmp1904))) 
(syntax-dispatch tmp1904 (quote (any #(each (any any)) any . each-any))))) 
e1899))) (global-extend1129 (quote core) (quote quote) (lambda (e1929 r1930 
w1931 s1932 mod1933) ((lambda (tmp1934) ((lambda (tmp1935) (if tmp1935 (apply 
(lambda (_1936 e1937) (build-data1109 s1932 (strip1178 e1937 w1931))) tmp1935) 
((lambda (_1938) (syntax-error (source-wrap1160 e1929 w1931 s1932 mod1933))) 
tmp1934))) (syntax-dispatch tmp1934 (quote (any any))))) e1929))) 
(global-extend1129 (quote core) (quote syntax) (letrec ((regen1946 (lambda 
(x1947) (let ((t1948 (car x1947))) (if (memv t1948 (quote (ref))) 
(build-annotated1108 #f (cadr x1947)) (if (memv t1948 (quote (primitive))) 
(build-annotated1108 #f (cadr x1947)) (if (memv t1948 (quote (quote))) 
(build-data1109 #f (cadr x1947)) (if (memv t1948 (quote (lambda))) 
(build-annotated1108 #f (list (quote lambda) (cadr x1947) (regen1946 (caddr 
x1947)))) (if (memv t1948 (quote (map))) (let ((ls1949 (map regen1946 (cdr 
x1947)))) (build-annotated1108 #f (cons (if (fx=1100 (length ls1949) 2) 
(build-annotated1108 #f (quote map)) (build-annotated1108 #f (quote map))) 
ls1949))) (build-annotated1108 #f (cons (build-annotated1108 #f (car x1947)) 
(map regen1946 (cdr x1947)))))))))))) (gen-vector1945 (lambda (x1950) (cond 
((eq? (car x1950) (quote list)) (cons (quote vector) (cdr x1950))) ((eq? (car 
x1950) (quote quote)) (list (quote quote) (list->vector (cadr x1950)))) (else 
(list (quote list->vector) x1950))))) (gen-append1944 (lambda (x1951 y1952) (if 
(equal? y1952 (quote (quote ()))) x1951 (list (quote append) x1951 y1952)))) 
(gen-cons1943 (lambda (x1953 y1954) (let ((t1955 (car y1954))) (if (memv t1955 
(quote (quote))) (if (eq? (car x1953) (quote quote)) (list (quote quote) (cons 
(cadr x1953) (cadr y1954))) (if (eq? (cadr y1954) (quote ())) (list (quote 
list) x1953) (list (quote cons) x1953 y1954))) (if (memv t1955 (quote (list))) 
(cons (quote list) (cons x1953 (cdr y1954))) (list (quote cons) x1953 
y1954)))))) (gen-map1942 (lambda (e1956 map-env1957) (let ((formals1958 (map 
cdr map-env1957)) (actuals1959 (map (lambda (x1960) (list (quote ref) (car 
x1960))) map-env1957))) (cond ((eq? (car e1956) (quote ref)) (car actuals1959)) 
((andmap (lambda (x1961) (and (eq? (car x1961) (quote ref)) (memq (cadr x1961) 
formals1958))) (cdr e1956)) (cons (quote map) (cons (list (quote primitive) 
(car e1956)) (map (let ((r1962 (map cons formals1958 actuals1959))) (lambda 
(x1963) (cdr (assq (cadr x1963) r1962)))) (cdr e1956))))) (else (cons (quote 
map) (cons (list (quote lambda) formals1958 e1956) actuals1959))))))) 
(gen-mappend1941 (lambda (e1964 map-env1965) (list (quote apply) (quote 
(primitive append)) (gen-map1942 e1964 map-env1965)))) (gen-ref1940 (lambda 
(src1966 var1967 level1968 maps1969) (if (fx=1100 level1968 0) (values var1967 
maps1969) (if (null? maps1969) (syntax-error src1966 "missing ellipsis in 
syntax form") (call-with-values (lambda () (gen-ref1940 src1966 var1967 
(fx-1099 level1968 1) (cdr maps1969))) (lambda (outer-var1970 outer-maps1971) 
(let ((b1972 (assq outer-var1970 (car maps1969)))) (if b1972 (values (cdr 
b1972) maps1969) (let ((inner-var1973 (gen-var1179 (quote tmp)))) (values 
inner-var1973 (cons (cons (cons outer-var1970 inner-var1973) (car maps1969)) 
outer-maps1971))))))))))) (gen-syntax1939 (lambda (src1974 e1975 r1976 maps1977 
ellipsis?1978 mod1979) (if (id?1131 e1975) (let ((label1980 (id-var-name1153 
e1975 (quote (()))))) (let ((b1981 (lookup1128 label1980 r1976 mod1979))) (if 
(eq? (binding-type1123 b1981) (quote syntax)) (call-with-values (lambda () (let 
((var.lev1982 (binding-value1124 b1981))) (gen-ref1940 src1974 (car 
var.lev1982) (cdr var.lev1982) maps1977))) (lambda (var1983 maps1984) (values 
(list (quote ref) var1983) maps1984))) (if (ellipsis?1978 e1975) (syntax-error 
src1974 "misplaced ellipsis in syntax form") (values (list (quote quote) e1975) 
maps1977))))) ((lambda (tmp1985) ((lambda (tmp1986) (if (if tmp1986 (apply 
(lambda (dots1987 e1988) (ellipsis?1978 dots1987)) tmp1986) #f) (apply (lambda 
(dots1989 e1990) (gen-syntax1939 src1974 e1990 r1976 maps1977 (lambda (x1991) 
#f) mod1979)) tmp1986) ((lambda (tmp1992) (if (if tmp1992 (apply (lambda (x1993 
dots1994 y1995) (ellipsis?1978 dots1994)) tmp1992) #f) (apply (lambda (x1996 
dots1997 y1998) (let f1999 ((y2000 y1998) (k2001 (lambda (maps2002) 
(call-with-values (lambda () (gen-syntax1939 src1974 x1996 r1976 (cons (quote 
()) maps2002) ellipsis?1978 mod1979)) (lambda (x2003 maps2004) (if (null? (car 
maps2004)) (syntax-error src1974 "extra ellipsis in syntax form") (values 
(gen-map1942 x2003 (car maps2004)) (cdr maps2004)))))))) ((lambda (tmp2005) 
((lambda (tmp2006) (if (if tmp2006 (apply (lambda (dots2007 y2008) 
(ellipsis?1978 dots2007)) tmp2006) #f) (apply (lambda (dots2009 y2010) (f1999 
y2010 (lambda (maps2011) (call-with-values (lambda () (k2001 (cons (quote ()) 
maps2011))) (lambda (x2012 maps2013) (if (null? (car maps2013)) (syntax-error 
src1974 "extra ellipsis in syntax form") (values (gen-mappend1941 x2012 (car 
maps2013)) (cdr maps2013)))))))) tmp2006) ((lambda (_2014) (call-with-values 
(lambda () (gen-syntax1939 src1974 y2000 r1976 maps1977 ellipsis?1978 mod1979)) 
(lambda (y2015 maps2016) (call-with-values (lambda () (k2001 maps2016)) (lambda 
(x2017 maps2018) (values (gen-append1944 x2017 y2015) maps2018)))))) tmp2005))) 
(syntax-dispatch tmp2005 (quote (any . any))))) y2000))) tmp1992) ((lambda 
(tmp2019) (if tmp2019 (apply (lambda (x2020 y2021) (call-with-values (lambda () 
(gen-syntax1939 src1974 x2020 r1976 maps1977 ellipsis?1978 mod1979)) (lambda 
(x2022 maps2023) (call-with-values (lambda () (gen-syntax1939 src1974 y2021 
r1976 maps2023 ellipsis?1978 mod1979)) (lambda (y2024 maps2025) (values 
(gen-cons1943 x2022 y2024) maps2025)))))) tmp2019) ((lambda (tmp2026) (if 
tmp2026 (apply (lambda (e12027 e22028) (call-with-values (lambda () 
(gen-syntax1939 src1974 (cons e12027 e22028) r1976 maps1977 ellipsis?1978 
mod1979)) (lambda (e2030 maps2031) (values (gen-vector1945 e2030) maps2031)))) 
tmp2026) ((lambda (_2032) (values (list (quote quote) e1975) maps1977)) 
tmp1985))) (syntax-dispatch tmp1985 (quote #(vector (any . each-any))))))) 
(syntax-dispatch tmp1985 (quote (any . any)))))) (syntax-dispatch tmp1985 
(quote (any any . any)))))) (syntax-dispatch tmp1985 (quote (any any))))) 
e1975))))) (lambda (e2033 r2034 w2035 s2036 mod2037) (let ((e2038 
(source-wrap1160 e2033 w2035 s2036 mod2037))) ((lambda (tmp2039) ((lambda 
(tmp2040) (if tmp2040 (apply (lambda (_2041 x2042) (call-with-values (lambda () 
(gen-syntax1939 e2038 x2042 r2034 (quote ()) ellipsis?1176 mod2037)) (lambda 
(e2043 maps2044) (regen1946 e2043)))) tmp2040) ((lambda (_2045) (syntax-error 
e2038)) tmp2039))) (syntax-dispatch tmp2039 (quote (any any))))) e2038))))) 
(global-extend1129 (quote core) (quote lambda) (lambda (e2046 r2047 w2048 s2049 
mod2050) ((lambda (tmp2051) ((lambda (tmp2052) (if tmp2052 (apply (lambda 
(_2053 c2054) (chi-lambda-clause1172 (source-wrap1160 e2046 w2048 s2049 
mod2050) c2054 r2047 w2048 mod2050 (lambda (vars2055 body2056) 
(build-annotated1108 s2049 (list (quote lambda) vars2055 body2056))))) tmp2052) 
(syntax-error tmp2051))) (syntax-dispatch tmp2051 (quote (any . any))))) 
e2046))) (global-extend1129 (quote core) (quote let) (letrec ((chi-let2057 
(lambda (e2058 r2059 w2060 s2061 mod2062 constructor2063 ids2064 vals2065 
exps2066) (if (not (valid-bound-ids?1156 ids2064)) (syntax-error e2058 
"duplicate bound variable in") (let ((labels2067 (gen-labels1137 ids2064)) 
(new-vars2068 (map gen-var1179 ids2064))) (let ((nw2069 (make-binding-wrap1148 
ids2064 labels2067 w2060)) (nr2070 (extend-var-env1126 labels2067 new-vars2068 
r2059))) (constructor2063 s2061 new-vars2068 (map (lambda (x2071) (chi1167 
x2071 r2059 w2060 mod2062)) vals2065) (chi-body1171 exps2066 (source-wrap1160 
e2058 nw2069 s2061 mod2062) nr2070 nw2069 mod2062)))))))) (lambda (e2072 r2073 
w2074 s2075 mod2076) ((lambda (tmp2077) ((lambda (tmp2078) (if tmp2078 (apply 
(lambda (_2079 id2080 val2081 e12082 e22083) (chi-let2057 e2072 r2073 w2074 
s2075 mod2076 build-let1111 id2080 val2081 (cons e12082 e22083))) tmp2078) 
((lambda (tmp2087) (if (if tmp2087 (apply (lambda (_2088 f2089 id2090 val2091 
e12092 e22093) (id?1131 f2089)) tmp2087) #f) (apply (lambda (_2094 f2095 id2096 
val2097 e12098 e22099) (chi-let2057 e2072 r2073 w2074 s2075 mod2076 
build-named-let1112 (cons f2095 id2096) val2097 (cons e12098 e22099))) tmp2087) 
((lambda (_2103) (syntax-error (source-wrap1160 e2072 w2074 s2075 mod2076))) 
tmp2077))) (syntax-dispatch tmp2077 (quote (any any #(each (any any)) any . 
each-any)))))) (syntax-dispatch tmp2077 (quote (any #(each (any any)) any . 
each-any))))) e2072)))) (global-extend1129 (quote core) (quote letrec) (lambda 
(e2104 r2105 w2106 s2107 mod2108) ((lambda (tmp2109) ((lambda (tmp2110) (if 
tmp2110 (apply (lambda (_2111 id2112 val2113 e12114 e22115) (let ((ids2116 
id2112)) (if (not (valid-bound-ids?1156 ids2116)) (syntax-error e2104 
"duplicate bound variable in") (let ((labels2118 (gen-labels1137 ids2116)) 
(new-vars2119 (map gen-var1179 ids2116))) (let ((w2120 (make-binding-wrap1148 
ids2116 labels2118 w2106)) (r2121 (extend-var-env1126 labels2118 new-vars2119 
r2105))) (build-letrec1113 s2107 new-vars2119 (map (lambda (x2122) (chi1167 
x2122 r2121 w2120 mod2108)) val2113) (chi-body1171 (cons e12114 e22115) 
(source-wrap1160 e2104 w2120 s2107 mod2108) r2121 w2120 mod2108))))))) tmp2110) 
((lambda (_2125) (syntax-error (source-wrap1160 e2104 w2106 s2107 mod2108))) 
tmp2109))) (syntax-dispatch tmp2109 (quote (any #(each (any any)) any . 
each-any))))) e2104))) (global-extend1129 (quote core) (quote set!) (lambda 
(e2126 r2127 w2128 s2129 mod2130) ((lambda (tmp2131) ((lambda (tmp2132) (if (if 
tmp2132 (apply (lambda (_2133 id2134 val2135) (id?1131 id2134)) tmp2132) #f) 
(apply (lambda (_2136 id2137 val2138) (let ((val2139 (chi1167 val2138 r2127 
w2128 mod2130)) (n2140 (id-var-name1153 id2137 w2128))) (let ((b2141 
(lookup1128 n2140 r2127 mod2130))) (let ((t2142 (binding-type1123 b2141))) (if 
(memv t2142 (quote (lexical))) (build-annotated1108 s2129 (list (quote set!) 
(binding-value1124 b2141) val2139)) (if (memv t2142 (quote (global))) 
(build-annotated1108 s2129 (list (quote set!) (if mod2130 (make-module-ref (cdr 
mod2130) n2140 (car mod2130)) (make-module-ref mod2130 n2140 (quote bare))) 
val2139)) (if (memv t2142 (quote (displaced-lexical))) (syntax-error (wrap1159 
id2137 w2128 mod2130) "identifier out of context") (syntax-error 
(source-wrap1160 e2126 w2128 s2129 mod2130))))))))) tmp2132) ((lambda (tmp2143) 
(if tmp2143 (apply (lambda (_2144 head2145 tail2146 val2147) (call-with-values 
(lambda () (syntax-type1165 head2145 r2127 (quote (())) #f #f mod2130)) (lambda 
(type2148 value2149 ee2150 ww2151 ss2152 modmod2153) (let ((t2154 type2148)) 
(if (memv t2154 (quote (module-ref))) (let ((val2155 (chi1167 val2147 r2127 
w2128 mod2130))) (call-with-values (lambda () (value2149 (cons head2145 
tail2146))) (lambda (id2157 mod2158) (build-annotated1108 s2129 (list (quote 
set!) (if mod2158 (make-module-ref (cdr mod2158) id2157 (car mod2158)) 
(make-module-ref mod2158 id2157 (quote bare))) val2155))))) 
(build-annotated1108 s2129 (cons (chi1167 (list (quote #(syntax-object setter 
((top) #(ribcage () () ()) #(ribcage #(t) #(("m" top)) #("i")) #(ribcage () () 
()) #(ribcage () () ()) #(ribcage #(type value ee ww ss modmod) #((top) (top) 
(top) (top) (top) (top)) #("i" "i" "i" "i" "i" "i")) #(ribcage #(_ head tail 
val) #((top) (top) (top) (top)) #("i" "i" "i" "i")) #(ribcage () () ()) 
#(ribcage #(e r w s mod) #((top) (top) (top) (top) (top)) #("i" "i" "i" "i" 
"i")) #(ribcage (lambda-var-list gen-var strip strip-annotation ellipsis? 
chi-void eval-local-transformer chi-local-syntax chi-lambda-clause chi-body 
chi-macro chi-application chi-expr chi chi-top syntax-type chi-when-list 
chi-install-global chi-top-sequence chi-sequence source-wrap wrap 
bound-id-member? distinct-bound-ids? valid-bound-ids? bound-id=? free-id=? 
id-var-name same-marks? join-marks join-wraps smart-append make-binding-wrap 
extend-ribcage! make-empty-ribcage new-mark anti-mark the-anti-mark top-marked? 
top-wrap empty-wrap set-ribcage-labels! set-ribcage-marks! 
set-ribcage-symnames! ribcage-labels ribcage-marks ribcage-symnames ribcage? 
make-ribcage gen-labels gen-label make-rename rename-marks rename-new 
rename-old subst-rename? wrap-subst wrap-marks make-wrap id-sym-name&marks 
id-sym-name id? nonsymbol-id? global-extend lookup macros-only-env 
extend-var-env extend-env null-env binding-value binding-type make-binding 
arg-check source-annotation no-source unannotate 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 build-global-definition 
build-global-assignment build-global-reference build-lexical-assignment 
build-lexical-reference build-conditional build-application build-annotated 
get-global-definition-hook remove-global-definition-hook 
put-global-definition-hook gensym-hook error-hook local-eval-hook 
top-level-eval-hook fx< fx= fx- fx+ noexpand) ((top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top)) ("i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i")) #(ribcage 
(define-structure) ((top)) ("i"))) (hygiene guile))) head2145) r2127 w2128 
mod2130) (map (lambda (e2159) (chi1167 e2159 r2127 w2128 mod2130)) (append 
tail2146 (list val2147)))))))))) tmp2143) ((lambda (_2161) (syntax-error 
(source-wrap1160 e2126 w2128 s2129 mod2130))) tmp2131))) (syntax-dispatch 
tmp2131 (quote (any (any . each-any) any)))))) (syntax-dispatch tmp2131 (quote 
(any any any))))) e2126))) (global-extend1129 (quote module-ref) (quote @) 
(lambda (e2162) ((lambda (tmp2163) ((lambda (tmp2164) (if (if tmp2164 (apply 
(lambda (_2165 mod2166 id2167) (and (andmap id?1131 mod2166) (id?1131 id2167))) 
tmp2164) #f) (apply (lambda (_2169 mod2170 id2171) (values 
(syntax-object->datum id2171) (syntax-object->datum (cons (quote 
#(syntax-object public ((top) #(ribcage #(_ mod id) #((top) (top) (top)) #("i" 
"i" "i")) #(ribcage () () ()) #(ribcage #(e) #((top)) #("i")) #(ribcage 
(lambda-var-list gen-var strip strip-annotation ellipsis? chi-void 
eval-local-transformer chi-local-syntax chi-lambda-clause chi-body chi-macro 
chi-application chi-expr chi chi-top syntax-type chi-when-list 
chi-install-global chi-top-sequence chi-sequence source-wrap wrap 
bound-id-member? distinct-bound-ids? valid-bound-ids? bound-id=? free-id=? 
id-var-name same-marks? join-marks join-wraps smart-append make-binding-wrap 
extend-ribcage! make-empty-ribcage new-mark anti-mark the-anti-mark top-marked? 
top-wrap empty-wrap set-ribcage-labels! set-ribcage-marks! 
set-ribcage-symnames! ribcage-labels ribcage-marks ribcage-symnames ribcage? 
make-ribcage gen-labels gen-label make-rename rename-marks rename-new 
rename-old subst-rename? wrap-subst wrap-marks make-wrap id-sym-name&marks 
id-sym-name id? nonsymbol-id? global-extend lookup macros-only-env 
extend-var-env extend-env null-env binding-value binding-type make-binding 
arg-check source-annotation no-source unannotate 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 build-global-definition 
build-global-assignment build-global-reference build-lexical-assignment 
build-lexical-reference build-conditional build-application build-annotated 
get-global-definition-hook remove-global-definition-hook 
put-global-definition-hook gensym-hook error-hook local-eval-hook 
top-level-eval-hook fx< fx= fx- fx+ noexpand) ((top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top)) ("i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i")) #(ribcage 
(define-structure) ((top)) ("i"))) (hygiene guile))) mod2170)))) tmp2164) 
(syntax-error tmp2163))) (syntax-dispatch tmp2163 (quote (any each-any any))))) 
e2162))) (global-extend1129 (quote module-ref) (quote @@) (lambda (e2173) 
((lambda (tmp2174) ((lambda (tmp2175) (if (if tmp2175 (apply (lambda (_2176 
mod2177 id2178) (and (andmap id?1131 mod2177) (id?1131 id2178))) tmp2175) #f) 
(apply (lambda (_2180 mod2181 id2182) (values (syntax-object->datum id2182) 
(syntax-object->datum (cons (quote #(syntax-object private ((top) #(ribcage #(_ 
mod id) #((top) (top) (top)) #("i" "i" "i")) #(ribcage () () ()) #(ribcage #(e) 
#((top)) #("i")) #(ribcage (lambda-var-list gen-var strip strip-annotation 
ellipsis? chi-void eval-local-transformer chi-local-syntax chi-lambda-clause 
chi-body chi-macro chi-application chi-expr chi chi-top syntax-type 
chi-when-list chi-install-global chi-top-sequence chi-sequence source-wrap wrap 
bound-id-member? distinct-bound-ids? valid-bound-ids? bound-id=? free-id=? 
id-var-name same-marks? join-marks join-wraps smart-append make-binding-wrap 
extend-ribcage! make-empty-ribcage new-mark anti-mark the-anti-mark top-marked? 
top-wrap empty-wrap set-ribcage-labels! set-ribcage-marks! 
set-ribcage-symnames! ribcage-labels ribcage-marks ribcage-symnames ribcage? 
make-ribcage gen-labels gen-label make-rename rename-marks rename-new 
rename-old subst-rename? wrap-subst wrap-marks make-wrap id-sym-name&marks 
id-sym-name id? nonsymbol-id? global-extend lookup macros-only-env 
extend-var-env extend-env null-env binding-value binding-type make-binding 
arg-check source-annotation no-source unannotate 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 build-global-definition 
build-global-assignment build-global-reference build-lexical-assignment 
build-lexical-reference build-conditional build-application build-annotated 
get-global-definition-hook remove-global-definition-hook 
put-global-definition-hook gensym-hook error-hook local-eval-hook 
top-level-eval-hook fx< fx= fx- fx+ noexpand) ((top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top)) ("i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i")) #(ribcage 
(define-structure) ((top)) ("i"))) (hygiene guile))) mod2181)))) tmp2175) 
(syntax-error tmp2174))) (syntax-dispatch tmp2174 (quote (any each-any any))))) 
e2173))) (global-extend1129 (quote begin) (quote begin) (quote ())) 
(global-extend1129 (quote define) (quote define) (quote ())) (global-extend1129 
(quote define-syntax) (quote define-syntax) (quote ())) (global-extend1129 
(quote eval-when) (quote eval-when) (quote ())) (global-extend1129 (quote core) 
(quote syntax-case) (letrec ((gen-syntax-case2187 (lambda (x2188 keys2189 
clauses2190 r2191 mod2192) (if (null? clauses2190) (build-annotated1108 #f 
(list (build-annotated1108 #f (quote syntax-error)) x2188)) ((lambda (tmp2193) 
((lambda (tmp2194) (if tmp2194 (apply (lambda (pat2195 exp2196) (if (and 
(id?1131 pat2195) (andmap (lambda (x2197) (not (free-id=?1154 pat2195 x2197))) 
(cons (quote #(syntax-object ... ((top) #(ribcage #(pat exp) #((top) (top)) 
#("i" "i")) #(ribcage () () ()) #(ribcage #(x keys clauses r mod) #((top) (top) 
(top) (top) (top)) #("i" "i" "i" "i" "i")) #(ribcage (gen-syntax-case 
gen-clause build-dispatch-call convert-pattern) ((top) (top) (top) (top)) ("i" 
"i" "i" "i")) #(ribcage (lambda-var-list gen-var strip strip-annotation 
ellipsis? chi-void eval-local-transformer chi-local-syntax chi-lambda-clause 
chi-body chi-macro chi-application chi-expr chi chi-top syntax-type 
chi-when-list chi-install-global chi-top-sequence chi-sequence source-wrap wrap 
bound-id-member? distinct-bound-ids? valid-bound-ids? bound-id=? free-id=? 
id-var-name same-marks? join-marks join-wraps smart-append make-binding-wrap 
extend-ribcage! make-empty-ribcage new-mark anti-mark the-anti-mark top-marked? 
top-wrap empty-wrap set-ribcage-labels! set-ribcage-marks! 
set-ribcage-symnames! ribcage-labels ribcage-marks ribcage-symnames ribcage? 
make-ribcage gen-labels gen-label make-rename rename-marks rename-new 
rename-old subst-rename? wrap-subst wrap-marks make-wrap id-sym-name&marks 
id-sym-name id? nonsymbol-id? global-extend lookup macros-only-env 
extend-var-env extend-env null-env binding-value binding-type make-binding 
arg-check source-annotation no-source unannotate 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 build-global-definition 
build-global-assignment build-global-reference build-lexical-assignment 
build-lexical-reference build-conditional build-application build-annotated 
get-global-definition-hook remove-global-definition-hook 
put-global-definition-hook gensym-hook error-hook local-eval-hook 
top-level-eval-hook fx< fx= fx- fx+ noexpand) ((top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top)) ("i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i")) #(ribcage 
(define-structure) ((top)) ("i"))) (hygiene guile))) keys2189))) (let 
((labels2198 (list (gen-label1136))) (var2199 (gen-var1179 pat2195))) 
(build-annotated1108 #f (list (build-annotated1108 #f (list (quote lambda) 
(list var2199) (chi1167 exp2196 (extend-env1125 labels2198 (list (cons (quote 
syntax) (cons var2199 0))) r2191) (make-binding-wrap1148 (list pat2195) 
labels2198 (quote (()))) mod2192))) x2188))) (gen-clause2186 x2188 keys2189 
(cdr clauses2190) r2191 pat2195 #t exp2196 mod2192))) tmp2194) ((lambda 
(tmp2200) (if tmp2200 (apply (lambda (pat2201 fender2202 exp2203) 
(gen-clause2186 x2188 keys2189 (cdr clauses2190) r2191 pat2201 fender2202 
exp2203 mod2192)) tmp2200) ((lambda (_2204) (syntax-error (car clauses2190) 
"invalid syntax-case clause")) tmp2193))) (syntax-dispatch tmp2193 (quote (any 
any any)))))) (syntax-dispatch tmp2193 (quote (any any))))) (car 
clauses2190))))) (gen-clause2186 (lambda (x2205 keys2206 clauses2207 r2208 
pat2209 fender2210 exp2211 mod2212) (call-with-values (lambda () 
(convert-pattern2184 pat2209 keys2206)) (lambda (p2213 pvars2214) (cond ((not 
(distinct-bound-ids?1157 (map car pvars2214))) (syntax-error pat2209 "duplicate 
pattern variable in syntax-case pattern")) ((not (andmap (lambda (x2215) (not 
(ellipsis?1176 (car x2215)))) pvars2214)) (syntax-error pat2209 "misplaced 
ellipsis in syntax-case pattern")) (else (let ((y2216 (gen-var1179 (quote 
tmp)))) (build-annotated1108 #f (list (build-annotated1108 #f (list (quote 
lambda) (list y2216) (let ((y2217 (build-annotated1108 #f y2216))) 
(build-annotated1108 #f (list (quote if) ((lambda (tmp2218) ((lambda (tmp2219) 
(if tmp2219 (apply (lambda () y2217) tmp2219) ((lambda (_2220) 
(build-annotated1108 #f (list (quote if) y2217 (build-dispatch-call2185 
pvars2214 fender2210 y2217 r2208 mod2212) (build-data1109 #f #f)))) tmp2218))) 
(syntax-dispatch tmp2218 (quote #(atom #t))))) fender2210) 
(build-dispatch-call2185 pvars2214 exp2211 y2217 r2208 mod2212) 
(gen-syntax-case2187 x2205 keys2206 clauses2207 r2208 mod2212)))))) (if (eq? 
p2213 (quote any)) (build-annotated1108 #f (list (build-annotated1108 #f (quote 
list)) x2205)) (build-annotated1108 #f (list (build-annotated1108 #f (quote 
syntax-dispatch)) x2205 (build-data1109 #f p2213))))))))))))) 
(build-dispatch-call2185 (lambda (pvars2221 exp2222 y2223 r2224 mod2225) (let 
((ids2226 (map car pvars2221)) (levels2227 (map cdr pvars2221))) (let 
((labels2228 (gen-labels1137 ids2226)) (new-vars2229 (map gen-var1179 
ids2226))) (build-annotated1108 #f (list (build-annotated1108 #f (quote apply)) 
(build-annotated1108 #f (list (quote lambda) new-vars2229 (chi1167 exp2222 
(extend-env1125 labels2228 (map (lambda (var2230 level2231) (cons (quote 
syntax) (cons var2230 level2231))) new-vars2229 (map cdr pvars2221)) r2224) 
(make-binding-wrap1148 ids2226 labels2228 (quote (()))) mod2225))) y2223)))))) 
(convert-pattern2184 (lambda (pattern2232 keys2233) (let cvt2234 ((p2235 
pattern2232) (n2236 0) (ids2237 (quote ()))) (if (id?1131 p2235) (if 
(bound-id-member?1158 p2235 keys2233) (values (vector (quote free-id) p2235) 
ids2237) (values (quote any) (cons (cons p2235 n2236) ids2237))) ((lambda 
(tmp2238) ((lambda (tmp2239) (if (if tmp2239 (apply (lambda (x2240 dots2241) 
(ellipsis?1176 dots2241)) tmp2239) #f) (apply (lambda (x2242 dots2243) 
(call-with-values (lambda () (cvt2234 x2242 (fx+1098 n2236 1) ids2237)) (lambda 
(p2244 ids2245) (values (if (eq? p2244 (quote any)) (quote each-any) (vector 
(quote each) p2244)) ids2245)))) tmp2239) ((lambda (tmp2246) (if tmp2246 (apply 
(lambda (x2247 y2248) (call-with-values (lambda () (cvt2234 y2248 n2236 
ids2237)) (lambda (y2249 ids2250) (call-with-values (lambda () (cvt2234 x2247 
n2236 ids2250)) (lambda (x2251 ids2252) (values (cons x2251 y2249) 
ids2252)))))) tmp2246) ((lambda (tmp2253) (if tmp2253 (apply (lambda () (values 
(quote ()) ids2237)) tmp2253) ((lambda (tmp2254) (if tmp2254 (apply (lambda 
(x2255) (call-with-values (lambda () (cvt2234 x2255 n2236 ids2237)) (lambda 
(p2257 ids2258) (values (vector (quote vector) p2257) ids2258)))) tmp2254) 
((lambda (x2259) (values (vector (quote atom) (strip1178 p2235 (quote (())))) 
ids2237)) tmp2238))) (syntax-dispatch tmp2238 (quote #(vector each-any)))))) 
(syntax-dispatch tmp2238 (quote ()))))) (syntax-dispatch tmp2238 (quote (any . 
any)))))) (syntax-dispatch tmp2238 (quote (any any))))) p2235)))))) (lambda 
(e2260 r2261 w2262 s2263 mod2264) (let ((e2265 (source-wrap1160 e2260 w2262 
s2263 mod2264))) ((lambda (tmp2266) ((lambda (tmp2267) (if tmp2267 (apply 
(lambda (_2268 val2269 key2270 m2271) (if (andmap (lambda (x2272) (and (id?1131 
x2272) (not (ellipsis?1176 x2272)))) key2270) (let ((x2274 (gen-var1179 (quote 
tmp)))) (build-annotated1108 s2263 (list (build-annotated1108 #f (list (quote 
lambda) (list x2274) (gen-syntax-case2187 (build-annotated1108 #f x2274) 
key2270 m2271 r2261 mod2264))) (chi1167 val2269 r2261 (quote (())) mod2264)))) 
(syntax-error e2265 "invalid literals list in"))) tmp2267) (syntax-error 
tmp2266))) (syntax-dispatch tmp2266 (quote (any any each-any . each-any))))) 
e2265))))) (set! sc-expand (let ((m2277 (quote e)) (esew2278 (quote (eval)))) 
(lambda (x2279) (if (and (pair? x2279) (equal? (car x2279) noexpand1097)) (cadr 
x2279) (chi-top1166 x2279 (quote ()) (quote ((top))) m2277 esew2278 (cons 
(quote hygiene) (module-name (current-module)))))))) (set! sc-expand3 (let 
((m2280 (quote e)) (esew2281 (quote (eval)))) (lambda (x2283 . rest2282) (if 
(and (pair? x2283) (equal? (car x2283) noexpand1097)) (cadr x2283) (chi-top1166 
x2283 (quote ()) (quote ((top))) (if (null? rest2282) m2280 (car rest2282)) (if 
(or (null? rest2282) (null? (cdr rest2282))) esew2281 (cadr rest2282)) (cons 
(quote hygiene) (module-name (current-module)))))))) (set! identifier? (lambda 
(x2284) (nonsymbol-id?1130 x2284))) (set! datum->syntax-object (lambda (id2285 
datum2286) (make-syntax-object1114 datum2286 (syntax-object-wrap1117 id2285) 
#f))) (set! syntax-object->datum (lambda (x2287) (strip1178 x2287 (quote 
(()))))) (set! generate-temporaries (lambda (ls2288) (begin (let ((x2289 
ls2288)) (if (not (list? x2289)) (error-hook1104 (quote generate-temporaries) 
"invalid argument" x2289))) (map (lambda (x2290) (wrap1159 (gensym) (quote 
((top))) #f)) ls2288)))) (set! free-identifier=? (lambda (x2291 y2292) (begin 
(let ((x2293 x2291)) (if (not (nonsymbol-id?1130 x2293)) (error-hook1104 (quote 
free-identifier=?) "invalid argument" x2293))) (let ((x2294 y2292)) (if (not 
(nonsymbol-id?1130 x2294)) (error-hook1104 (quote free-identifier=?) "invalid 
argument" x2294))) (free-id=?1154 x2291 y2292)))) (set! bound-identifier=? 
(lambda (x2295 y2296) (begin (let ((x2297 x2295)) (if (not (nonsymbol-id?1130 
x2297)) (error-hook1104 (quote bound-identifier=?) "invalid argument" x2297))) 
(let ((x2298 y2296)) (if (not (nonsymbol-id?1130 x2298)) (error-hook1104 (quote 
bound-identifier=?) "invalid argument" x2298))) (bound-id=?1155 x2295 y2296)))) 
(set! syntax-error (lambda (object2300 . messages2299) (begin (for-each (lambda 
(x2301) (let ((x2302 x2301)) (if (not (string? x2302)) (error-hook1104 (quote 
syntax-error) "invalid argument" x2302)))) messages2299) (let ((message2303 (if 
(null? messages2299) "invalid syntax" (apply string-append messages2299)))) 
(error-hook1104 #f message2303 (strip1178 object2300 (quote (())))))))) (set! 
install-global-transformer (lambda (sym2304 v2305) (begin (let ((x2306 
sym2304)) (if (not (symbol? x2306)) (error-hook1104 (quote define-syntax) 
"invalid argument" x2306))) (let ((x2307 v2305)) (if (not (procedure? x2307)) 
(error-hook1104 (quote define-syntax) "invalid argument" x2307))) 
(global-extend1129 (quote macro) sym2304 v2305)))) (letrec ((match2312 (lambda 
(e2313 p2314 w2315 r2316 mod2317) (cond ((not r2316) #f) ((eq? p2314 (quote 
any)) (cons (wrap1159 e2313 w2315 mod2317) r2316)) ((syntax-object?1115 e2313) 
(match*2311 (let ((e2318 (syntax-object-expression1116 e2313))) (if 
(annotation? e2318) (annotation-expression e2318) e2318)) p2314 (join-wraps1150 
w2315 (syntax-object-wrap1117 e2313)) r2316 (syntax-object-module1118 e2313))) 
(else (match*2311 (let ((e2319 e2313)) (if (annotation? e2319) 
(annotation-expression e2319) e2319)) p2314 w2315 r2316 mod2317))))) 
(match*2311 (lambda (e2320 p2321 w2322 r2323 mod2324) (cond ((null? p2321) (and 
(null? e2320) r2323)) ((pair? p2321) (and (pair? e2320) (match2312 (car e2320) 
(car p2321) w2322 (match2312 (cdr e2320) (cdr p2321) w2322 r2323 mod2324) 
mod2324))) ((eq? p2321 (quote each-any)) (let ((l2325 (match-each-any2309 e2320 
w2322 mod2324))) (and l2325 (cons l2325 r2323)))) (else (let ((t2326 
(vector-ref p2321 0))) (if (memv t2326 (quote (each))) (if (null? e2320) 
(match-empty2310 (vector-ref p2321 1) r2323) (let ((l2327 (match-each2308 e2320 
(vector-ref p2321 1) w2322 mod2324))) (and l2327 (let collect2328 ((l2329 
l2327)) (if (null? (car l2329)) r2323 (cons (map car l2329) (collect2328 (map 
cdr l2329)))))))) (if (memv t2326 (quote (free-id))) (and (id?1131 e2320) 
(free-id=?1154 (wrap1159 e2320 w2322 mod2324) (vector-ref p2321 1)) r2323) (if 
(memv t2326 (quote (atom))) (and (equal? (vector-ref p2321 1) (strip1178 e2320 
w2322)) r2323) (if (memv t2326 (quote (vector))) (and (vector? e2320) 
(match2312 (vector->list e2320) (vector-ref p2321 1) w2322 r2323 
mod2324))))))))))) (match-empty2310 (lambda (p2330 r2331) (cond ((null? p2330) 
r2331) ((eq? p2330 (quote any)) (cons (quote ()) r2331)) ((pair? p2330) 
(match-empty2310 (car p2330) (match-empty2310 (cdr p2330) r2331))) ((eq? p2330 
(quote each-any)) (cons (quote ()) r2331)) (else (let ((t2332 (vector-ref p2330 
0))) (if (memv t2332 (quote (each))) (match-empty2310 (vector-ref p2330 1) 
r2331) (if (memv t2332 (quote (free-id atom))) r2331 (if (memv t2332 (quote 
(vector))) (match-empty2310 (vector-ref p2330 1) r2331))))))))) 
(match-each-any2309 (lambda (e2333 w2334 mod2335) (cond ((annotation? e2333) 
(match-each-any2309 (annotation-expression e2333) w2334 mod2335)) ((pair? 
e2333) (let ((l2336 (match-each-any2309 (cdr e2333) w2334 mod2335))) (and l2336 
(cons (wrap1159 (car e2333) w2334 mod2335) l2336)))) ((null? e2333) (quote ())) 
((syntax-object?1115 e2333) (match-each-any2309 (syntax-object-expression1116 
e2333) (join-wraps1150 w2334 (syntax-object-wrap1117 e2333)) mod2335)) (else 
#f)))) (match-each2308 (lambda (e2337 p2338 w2339 mod2340) (cond ((annotation? 
e2337) (match-each2308 (annotation-expression e2337) p2338 w2339 mod2340)) 
((pair? e2337) (let ((first2341 (match2312 (car e2337) p2338 w2339 (quote ()) 
mod2340))) (and first2341 (let ((rest2342 (match-each2308 (cdr e2337) p2338 
w2339 mod2340))) (and rest2342 (cons first2341 rest2342)))))) ((null? e2337) 
(quote ())) ((syntax-object?1115 e2337) (match-each2308 
(syntax-object-expression1116 e2337) p2338 (join-wraps1150 w2339 
(syntax-object-wrap1117 e2337)) (syntax-object-module1118 e2337))) (else 
#f))))) (begin (set! syntax-dispatch (lambda (e2343 p2344) (cond ((eq? p2344 
(quote any)) (list e2343)) ((syntax-object?1115 e2343) (match*2311 (let ((e2345 
(syntax-object-expression1116 e2343))) (if (annotation? e2345) 
(annotation-expression e2345) e2345)) p2344 (syntax-object-wrap1117 e2343) 
(quote ()) (syntax-object-module1118 e2343))) (else (match*2311 (let ((e2346 
e2343)) (if (annotation? e2346) (annotation-expression e2346) e2346)) p2344 
(quote (())) (quote ()) #f))))) (set! sc-chi chi1167)))))
-(install-global-transformer (quote with-syntax) (lambda (x2347) ((lambda 
(tmp2348) ((lambda (tmp2349) (if tmp2349 (apply (lambda (_2350 e12351 e22352) 
(cons (quote #(syntax-object begin ((top) #(ribcage #(_ e1 e2) #((top) (top) 
(top)) #("i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) 
(hygiene guile))) (cons e12351 e22352))) tmp2349) ((lambda (tmp2354) (if 
tmp2354 (apply (lambda (_2355 out2356 in2357 e12358 e22359) (list (quote 
#(syntax-object syntax-case ((top) #(ribcage #(_ out in e1 e2) #((top) (top) 
(top) (top) (top)) #("i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) 
#((top)) #("i"))) (hygiene guile))) in2357 (quote ()) (list out2356 (cons 
(quote #(syntax-object begin ((top) #(ribcage #(_ out in e1 e2) #((top) (top) 
(top) (top) (top)) #("i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) 
#((top)) #("i"))) (hygiene guile))) (cons e12358 e22359))))) tmp2354) ((lambda 
(tmp2361) (if tmp2361 (apply (lambda (_2362 out2363 in2364 e12365 e22366) (list 
(quote #(syntax-object syntax-case ((top) #(ribcage #(_ out in e1 e2) #((top) 
(top) (top) (top) (top)) #("i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage 
#(x) #((top)) #("i"))) (hygiene guile))) (cons (quote #(syntax-object list 
((top) #(ribcage #(_ out in e1 e2) #((top) (top) (top) (top) (top)) #("i" "i" 
"i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene 
guile))) in2364) (quote ()) (list out2363 (cons (quote #(syntax-object begin 
((top) #(ribcage #(_ out in e1 e2) #((top) (top) (top) (top) (top)) #("i" "i" 
"i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene 
guile))) (cons e12365 e22366))))) tmp2361) (syntax-error tmp2348))) 
(syntax-dispatch tmp2348 (quote (any #(each (any any)) any . each-any)))))) 
(syntax-dispatch tmp2348 (quote (any ((any any)) any . each-any)))))) 
(syntax-dispatch tmp2348 (quote (any () any . each-any))))) x2347)))
-(install-global-transformer (quote syntax-rules) (lambda (x2370) ((lambda 
(tmp2371) ((lambda (tmp2372) (if tmp2372 (apply (lambda (_2373 k2374 
keyword2375 pattern2376 template2377) (list (quote #(syntax-object lambda 
((top) #(ribcage #(_ k keyword pattern template) #((top) (top) (top) (top) 
(top)) #("i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) 
#("i"))) (hygiene guile))) (quote (#(syntax-object x ((top) #(ribcage #(_ k 
keyword pattern template) #((top) (top) (top) (top) (top)) #("i" "i" "i" "i" 
"i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile)))) 
(cons (quote #(syntax-object syntax-case ((top) #(ribcage #(_ k keyword pattern 
template) #((top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i")) #(ribcage () 
() ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile))) (cons (quote 
#(syntax-object x ((top) #(ribcage #(_ k keyword pattern template) #((top) 
(top) (top) (top) (top)) #("i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage 
#(x) #((top)) #("i"))) (hygiene guile))) (cons k2374 (map (lambda (tmp2380 
tmp2379) (list (cons (quote #(syntax-object dummy ((top) #(ribcage #(_ k 
keyword pattern template) #((top) (top) (top) (top) (top)) #("i" "i" "i" "i" 
"i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile))) 
tmp2379) (list (quote #(syntax-object syntax ((top) #(ribcage #(_ k keyword 
pattern template) #((top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i")) 
#(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile))) 
tmp2380))) template2377 pattern2376)))))) tmp2372) (syntax-error tmp2371))) 
(syntax-dispatch tmp2371 (quote (any each-any . #(each ((any . any) any))))))) 
x2370)))
-(install-global-transformer (quote let*) (lambda (x2381) ((lambda (tmp2382) 
((lambda (tmp2383) (if (if tmp2383 (apply (lambda (let*2384 x2385 v2386 e12387 
e22388) (andmap identifier? x2385)) tmp2383) #f) (apply (lambda (let*2390 x2391 
v2392 e12393 e22394) (let f2395 ((bindings2396 (map list x2391 v2392))) (if 
(null? bindings2396) (cons (quote #(syntax-object let ((top) #(ribcage () () 
()) #(ribcage #(f bindings) #((top) (top)) #("i" "i")) #(ribcage #(let* x v e1 
e2) #((top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i")) #(ribcage () () 
()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile))) (cons (quote ()) (cons 
e12393 e22394))) ((lambda (tmp2400) ((lambda (tmp2401) (if tmp2401 (apply 
(lambda (body2402 binding2403) (list (quote #(syntax-object let ((top) 
#(ribcage #(body binding) #((top) (top)) #("i" "i")) #(ribcage () () ()) 
#(ribcage #(f bindings) #((top) (top)) #("i" "i")) #(ribcage #(let* x v e1 e2) 
#((top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i")) #(ribcage () () ()) 
#(ribcage #(x) #((top)) #("i"))) (hygiene guile))) (list binding2403) 
body2402)) tmp2401) (syntax-error tmp2400))) (syntax-dispatch tmp2400 (quote 
(any any))))) (list (f2395 (cdr bindings2396)) (car bindings2396)))))) tmp2383) 
(syntax-error tmp2382))) (syntax-dispatch tmp2382 (quote (any #(each (any any)) 
any . each-any))))) x2381)))
-(install-global-transformer (quote do) (lambda (orig-x2404) ((lambda (tmp2405) 
((lambda (tmp2406) (if tmp2406 (apply (lambda (_2407 var2408 init2409 step2410 
e02411 e12412 c2413) ((lambda (tmp2414) ((lambda (tmp2415) (if tmp2415 (apply 
(lambda (step2416) ((lambda (tmp2417) ((lambda (tmp2418) (if tmp2418 (apply 
(lambda () (list (quote #(syntax-object let ((top) #(ribcage #(step) #((top)) 
#("i")) #(ribcage #(_ var init step e0 e1 c) #((top) (top) (top) (top) (top) 
(top) (top)) #("i" "i" "i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage 
#(orig-x) #((top)) #("i"))) (hygiene guile))) (quote #(syntax-object doloop 
((top) #(ribcage #(step) #((top)) #("i")) #(ribcage #(_ var init step e0 e1 c) 
#((top) (top) (top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i" "i" "i")) 
#(ribcage () () ()) #(ribcage #(orig-x) #((top)) #("i"))) (hygiene guile))) 
(map list var2408 init2409) (list (quote #(syntax-object if ((top) #(ribcage 
#(step) #((top)) #("i")) #(ribcage #(_ var init step e0 e1 c) #((top) (top) 
(top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i" "i" "i")) #(ribcage () () 
()) #(ribcage #(orig-x) #((top)) #("i"))) (hygiene guile))) (list (quote 
#(syntax-object not ((top) #(ribcage #(step) #((top)) #("i")) #(ribcage #(_ var 
init step e0 e1 c) #((top) (top) (top) (top) (top) (top) (top)) #("i" "i" "i" 
"i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(orig-x) #((top)) #("i"))) 
(hygiene guile))) e02411) (cons (quote #(syntax-object begin ((top) #(ribcage 
#(step) #((top)) #("i")) #(ribcage #(_ var init step e0 e1 c) #((top) (top) 
(top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i" "i" "i")) #(ribcage () () 
()) #(ribcage #(orig-x) #((top)) #("i"))) (hygiene guile))) (append c2413 (list 
(cons (quote #(syntax-object doloop ((top) #(ribcage #(step) #((top)) #("i")) 
#(ribcage #(_ var init step e0 e1 c) #((top) (top) (top) (top) (top) (top) 
(top)) #("i" "i" "i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(orig-x) 
#((top)) #("i"))) (hygiene guile))) step2416))))))) tmp2418) ((lambda (tmp2423) 
(if tmp2423 (apply (lambda (e12424 e22425) (list (quote #(syntax-object let 
((top) #(ribcage #(e1 e2) #((top) (top)) #("i" "i")) #(ribcage #(step) #((top)) 
#("i")) #(ribcage #(_ var init step e0 e1 c) #((top) (top) (top) (top) (top) 
(top) (top)) #("i" "i" "i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage 
#(orig-x) #((top)) #("i"))) (hygiene guile))) (quote #(syntax-object doloop 
((top) #(ribcage #(e1 e2) #((top) (top)) #("i" "i")) #(ribcage #(step) #((top)) 
#("i")) #(ribcage #(_ var init step e0 e1 c) #((top) (top) (top) (top) (top) 
(top) (top)) #("i" "i" "i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage 
#(orig-x) #((top)) #("i"))) (hygiene guile))) (map list var2408 init2409) (list 
(quote #(syntax-object if ((top) #(ribcage #(e1 e2) #((top) (top)) #("i" "i")) 
#(ribcage #(step) #((top)) #("i")) #(ribcage #(_ var init step e0 e1 c) #((top) 
(top) (top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i" "i" "i")) #(ribcage 
() () ()) #(ribcage #(orig-x) #((top)) #("i"))) (hygiene guile))) e02411 (cons 
(quote #(syntax-object begin ((top) #(ribcage #(e1 e2) #((top) (top)) #("i" 
"i")) #(ribcage #(step) #((top)) #("i")) #(ribcage #(_ var init step e0 e1 c) 
#((top) (top) (top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i" "i" "i")) 
#(ribcage () () ()) #(ribcage #(orig-x) #((top)) #("i"))) (hygiene guile))) 
(cons e12424 e22425)) (cons (quote #(syntax-object begin ((top) #(ribcage #(e1 
e2) #((top) (top)) #("i" "i")) #(ribcage #(step) #((top)) #("i")) #(ribcage #(_ 
var init step e0 e1 c) #((top) (top) (top) (top) (top) (top) (top)) #("i" "i" 
"i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(orig-x) #((top)) #("i"))) 
(hygiene guile))) (append c2413 (list (cons (quote #(syntax-object doloop 
((top) #(ribcage #(e1 e2) #((top) (top)) #("i" "i")) #(ribcage #(step) #((top)) 
#("i")) #(ribcage #(_ var init step e0 e1 c) #((top) (top) (top) (top) (top) 
(top) (top)) #("i" "i" "i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage 
#(orig-x) #((top)) #("i"))) (hygiene guile))) step2416))))))) tmp2423) 
(syntax-error tmp2417))) (syntax-dispatch tmp2417 (quote (any . each-any)))))) 
(syntax-dispatch tmp2417 (quote ())))) e12412)) tmp2415) (syntax-error 
tmp2414))) (syntax-dispatch tmp2414 (quote each-any)))) (map (lambda (v2432 
s2433) ((lambda (tmp2434) ((lambda (tmp2435) (if tmp2435 (apply (lambda () 
v2432) tmp2435) ((lambda (tmp2436) (if tmp2436 (apply (lambda (e2437) e2437) 
tmp2436) ((lambda (_2438) (syntax-error orig-x2404)) tmp2434))) 
(syntax-dispatch tmp2434 (quote (any)))))) (syntax-dispatch tmp2434 (quote 
())))) s2433)) var2408 step2410))) tmp2406) (syntax-error tmp2405))) 
(syntax-dispatch tmp2405 (quote (any #(each (any any . any)) (any . each-any) . 
each-any))))) orig-x2404)))
-(install-global-transformer (quote quasiquote) (letrec ((quasicons2441 (lambda 
(x2445 y2446) ((lambda (tmp2447) ((lambda (tmp2448) (if tmp2448 (apply (lambda 
(x2449 y2450) ((lambda (tmp2451) ((lambda (tmp2452) (if tmp2452 (apply (lambda 
(dy2453) ((lambda (tmp2454) ((lambda (tmp2455) (if tmp2455 (apply (lambda 
(dx2456) (list (quote #(syntax-object quote ((top) #(ribcage #(dx) #((top)) 
#("i")) #(ribcage #(dy) #((top)) #("i")) #(ribcage #(x y) #((top) (top)) #("i" 
"i")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(x y) #((top) (top)) 
#("i" "i")) #(ribcage #(quasicons quasiappend quasivector quasi) #((top) (top) 
(top) (top)) #("i" "i" "i" "i"))) (hygiene guile))) (cons dx2456 dy2453))) 
tmp2455) ((lambda (_2457) (if (null? dy2453) (list (quote #(syntax-object list 
((top) #(ribcage #(_) #((top)) #("i")) #(ribcage #(dy) #((top)) #("i")) 
#(ribcage #(x y) #((top) (top)) #("i" "i")) #(ribcage () () ()) #(ribcage () () 
()) #(ribcage #(x y) #((top) (top)) #("i" "i")) #(ribcage #(quasicons 
quasiappend quasivector quasi) #((top) (top) (top) (top)) #("i" "i" "i" "i"))) 
(hygiene guile))) x2449) (list (quote #(syntax-object cons ((top) #(ribcage 
#(_) #((top)) #("i")) #(ribcage #(dy) #((top)) #("i")) #(ribcage #(x y) #((top) 
(top)) #("i" "i")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(x y) 
#((top) (top)) #("i" "i")) #(ribcage #(quasicons quasiappend quasivector quasi) 
#((top) (top) (top) (top)) #("i" "i" "i" "i"))) (hygiene guile))) x2449 
y2450))) tmp2454))) (syntax-dispatch tmp2454 (quote (#(free-id #(syntax-object 
quote ((top) #(ribcage #(dy) #((top)) #("i")) #(ribcage #(x y) #((top) (top)) 
#("i" "i")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(x y) #((top) 
(top)) #("i" "i")) #(ribcage #(quasicons quasiappend quasivector quasi) #((top) 
(top) (top) (top)) #("i" "i" "i" "i"))) (hygiene guile))) any))))) x2449)) 
tmp2452) ((lambda (tmp2458) (if tmp2458 (apply (lambda (stuff2459) (cons (quote 
#(syntax-object list ((top) #(ribcage #(stuff) #((top)) #("i")) #(ribcage #(x 
y) #((top) (top)) #("i" "i")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage 
#(x y) #((top) (top)) #("i" "i")) #(ribcage #(quasicons quasiappend quasivector 
quasi) #((top) (top) (top) (top)) #("i" "i" "i" "i"))) (hygiene guile))) (cons 
x2449 stuff2459))) tmp2458) ((lambda (else2460) (list (quote #(syntax-object 
cons ((top) #(ribcage #(else) #((top)) #("i")) #(ribcage #(x y) #((top) (top)) 
#("i" "i")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(x y) #((top) 
(top)) #("i" "i")) #(ribcage #(quasicons quasiappend quasivector quasi) #((top) 
(top) (top) (top)) #("i" "i" "i" "i"))) (hygiene guile))) x2449 y2450)) 
tmp2451))) (syntax-dispatch tmp2451 (quote (#(free-id #(syntax-object list 
((top) #(ribcage #(x y) #((top) (top)) #("i" "i")) #(ribcage () () ()) 
#(ribcage () () ()) #(ribcage #(x y) #((top) (top)) #("i" "i")) #(ribcage 
#(quasicons quasiappend quasivector quasi) #((top) (top) (top) (top)) #("i" "i" 
"i" "i"))) (hygiene guile))) . any)))))) (syntax-dispatch tmp2451 (quote 
(#(free-id #(syntax-object quote ((top) #(ribcage #(x y) #((top) (top)) #("i" 
"i")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(x y) #((top) (top)) 
#("i" "i")) #(ribcage #(quasicons quasiappend quasivector quasi) #((top) (top) 
(top) (top)) #("i" "i" "i" "i"))) (hygiene guile))) any))))) y2450)) tmp2448) 
(syntax-error tmp2447))) (syntax-dispatch tmp2447 (quote (any any))))) (list 
x2445 y2446)))) (quasiappend2442 (lambda (x2461 y2462) ((lambda (tmp2463) 
((lambda (tmp2464) (if tmp2464 (apply (lambda (x2465 y2466) ((lambda (tmp2467) 
((lambda (tmp2468) (if tmp2468 (apply (lambda () x2465) tmp2468) ((lambda 
(_2469) (list (quote #(syntax-object append ((top) #(ribcage #(_) #((top)) 
#("i")) #(ribcage #(x y) #((top) (top)) #("i" "i")) #(ribcage () () ()) 
#(ribcage () () ()) #(ribcage #(x y) #((top) (top)) #("i" "i")) #(ribcage 
#(quasicons quasiappend quasivector quasi) #((top) (top) (top) (top)) #("i" "i" 
"i" "i"))) (hygiene guile))) x2465 y2466)) tmp2467))) (syntax-dispatch tmp2467 
(quote (#(free-id #(syntax-object quote ((top) #(ribcage #(x y) #((top) (top)) 
#("i" "i")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(x y) #((top) 
(top)) #("i" "i")) #(ribcage #(quasicons quasiappend quasivector quasi) #((top) 
(top) (top) (top)) #("i" "i" "i" "i"))) (hygiene guile))) ()))))) y2466)) 
tmp2464) (syntax-error tmp2463))) (syntax-dispatch tmp2463 (quote (any any))))) 
(list x2461 y2462)))) (quasivector2443 (lambda (x2470) ((lambda (tmp2471) 
((lambda (x2472) ((lambda (tmp2473) ((lambda (tmp2474) (if tmp2474 (apply 
(lambda (x2475) (list (quote #(syntax-object quote ((top) #(ribcage #(x) 
#((top)) #("i")) #(ribcage #(x) #((top)) #("i")) #(ribcage () () ()) #(ribcage 
() () ()) #(ribcage #(x) #((top)) #("i")) #(ribcage #(quasicons quasiappend 
quasivector quasi) #((top) (top) (top) (top)) #("i" "i" "i" "i"))) (hygiene 
guile))) (list->vector x2475))) tmp2474) ((lambda (tmp2477) (if tmp2477 (apply 
(lambda (x2478) (cons (quote #(syntax-object vector ((top) #(ribcage #(x) 
#((top)) #("i")) #(ribcage #(x) #((top)) #("i")) #(ribcage () () ()) #(ribcage 
() () ()) #(ribcage #(x) #((top)) #("i")) #(ribcage #(quasicons quasiappend 
quasivector quasi) #((top) (top) (top) (top)) #("i" "i" "i" "i"))) (hygiene 
guile))) x2478)) tmp2477) ((lambda (_2480) (list (quote #(syntax-object 
list->vector ((top) #(ribcage #(_) #((top)) #("i")) #(ribcage #(x) #((top)) 
#("i")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i")) 
#(ribcage #(quasicons quasiappend quasivector quasi) #((top) (top) (top) (top)) 
#("i" "i" "i" "i"))) (hygiene guile))) x2472)) tmp2473))) (syntax-dispatch 
tmp2473 (quote (#(free-id #(syntax-object list ((top) #(ribcage #(x) #((top)) 
#("i")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i")) 
#(ribcage #(quasicons quasiappend quasivector quasi) #((top) (top) (top) (top)) 
#("i" "i" "i" "i"))) (hygiene guile))) . each-any)))))) (syntax-dispatch 
tmp2473 (quote (#(free-id #(syntax-object quote ((top) #(ribcage #(x) #((top)) 
#("i")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i")) 
#(ribcage #(quasicons quasiappend quasivector quasi) #((top) (top) (top) (top)) 
#("i" "i" "i" "i"))) (hygiene guile))) each-any))))) x2472)) tmp2471)) x2470))) 
(quasi2444 (lambda (p2481 lev2482) ((lambda (tmp2483) ((lambda (tmp2484) (if 
tmp2484 (apply (lambda (p2485) (if (= lev2482 0) p2485 (quasicons2441 (quote 
(#(syntax-object quote ((top) #(ribcage #(p) #((top)) #("i")) #(ribcage () () 
()) #(ribcage #(p lev) #((top) (top)) #("i" "i")) #(ribcage #(quasicons 
quasiappend quasivector quasi) #((top) (top) (top) (top)) #("i" "i" "i" "i"))) 
(hygiene guile)) #(syntax-object unquote ((top) #(ribcage #(p) #((top)) #("i")) 
#(ribcage () () ()) #(ribcage #(p lev) #((top) (top)) #("i" "i")) #(ribcage 
#(quasicons quasiappend quasivector quasi) #((top) (top) (top) (top)) #("i" "i" 
"i" "i"))) (hygiene guile)))) (quasi2444 (list p2485) (- lev2482 1))))) 
tmp2484) ((lambda (tmp2486) (if tmp2486 (apply (lambda (p2487 q2488) (if (= 
lev2482 0) (quasiappend2442 p2487 (quasi2444 q2488 lev2482)) (quasicons2441 
(quasicons2441 (quote (#(syntax-object quote ((top) #(ribcage #(p q) #((top) 
(top)) #("i" "i")) #(ribcage () () ()) #(ribcage #(p lev) #((top) (top)) #("i" 
"i")) #(ribcage #(quasicons quasiappend quasivector quasi) #((top) (top) (top) 
(top)) #("i" "i" "i" "i"))) (hygiene guile)) #(syntax-object unquote-splicing 
((top) #(ribcage #(p q) #((top) (top)) #("i" "i")) #(ribcage () () ()) 
#(ribcage #(p lev) #((top) (top)) #("i" "i")) #(ribcage #(quasicons quasiappend 
quasivector quasi) #((top) (top) (top) (top)) #("i" "i" "i" "i"))) (hygiene 
guile)))) (quasi2444 (list p2487) (- lev2482 1))) (quasi2444 q2488 lev2482)))) 
tmp2486) ((lambda (tmp2489) (if tmp2489 (apply (lambda (p2490) (quasicons2441 
(quote (#(syntax-object quote ((top) #(ribcage #(p) #((top)) #("i")) #(ribcage 
() () ()) #(ribcage #(p lev) #((top) (top)) #("i" "i")) #(ribcage #(quasicons 
quasiappend quasivector quasi) #((top) (top) (top) (top)) #("i" "i" "i" "i"))) 
(hygiene guile)) #(syntax-object quasiquote ((top) #(ribcage #(p) #((top)) 
#("i")) #(ribcage () () ()) #(ribcage #(p lev) #((top) (top)) #("i" "i")) 
#(ribcage #(quasicons quasiappend quasivector quasi) #((top) (top) (top) (top)) 
#("i" "i" "i" "i"))) (hygiene guile)))) (quasi2444 (list p2490) (+ lev2482 
1)))) tmp2489) ((lambda (tmp2491) (if tmp2491 (apply (lambda (p2492 q2493) 
(quasicons2441 (quasi2444 p2492 lev2482) (quasi2444 q2493 lev2482))) tmp2491) 
((lambda (tmp2494) (if tmp2494 (apply (lambda (x2495) (quasivector2443 
(quasi2444 x2495 lev2482))) tmp2494) ((lambda (p2497) (list (quote 
#(syntax-object quote ((top) #(ribcage #(p) #((top)) #("i")) #(ribcage () () 
()) #(ribcage #(p lev) #((top) (top)) #("i" "i")) #(ribcage #(quasicons 
quasiappend quasivector quasi) #((top) (top) (top) (top)) #("i" "i" "i" "i"))) 
(hygiene guile))) p2497)) tmp2483))) (syntax-dispatch tmp2483 (quote #(vector 
each-any)))))) (syntax-dispatch tmp2483 (quote (any . any)))))) 
(syntax-dispatch tmp2483 (quote (#(free-id #(syntax-object quasiquote ((top) 
#(ribcage () () ()) #(ribcage #(p lev) #((top) (top)) #("i" "i")) #(ribcage 
#(quasicons quasiappend quasivector quasi) #((top) (top) (top) (top)) #("i" "i" 
"i" "i"))) (hygiene guile))) any)))))) (syntax-dispatch tmp2483 (quote 
((#(free-id #(syntax-object unquote-splicing ((top) #(ribcage () () ()) 
#(ribcage #(p lev) #((top) (top)) #("i" "i")) #(ribcage #(quasicons quasiappend 
quasivector quasi) #((top) (top) (top) (top)) #("i" "i" "i" "i"))) (hygiene 
guile))) any) . any)))))) (syntax-dispatch tmp2483 (quote (#(free-id 
#(syntax-object unquote ((top) #(ribcage () () ()) #(ribcage #(p lev) #((top) 
(top)) #("i" "i")) #(ribcage #(quasicons quasiappend quasivector quasi) #((top) 
(top) (top) (top)) #("i" "i" "i" "i"))) (hygiene guile))) any))))) p2481)))) 
(lambda (x2498) ((lambda (tmp2499) ((lambda (tmp2500) (if tmp2500 (apply 
(lambda (_2501 e2502) (quasi2444 e2502 0)) tmp2500) (syntax-error tmp2499))) 
(syntax-dispatch tmp2499 (quote (any any))))) x2498))))
-(install-global-transformer (quote include) (lambda (x2503) (letrec 
((read-file2504 (lambda (fn2505 k2506) (let ((p2507 (open-input-file fn2505))) 
(let f2508 ((x2509 (read p2507))) (if (eof-object? x2509) (begin 
(close-input-port p2507) (quote ())) (cons (datum->syntax-object k2506 x2509) 
(f2508 (read p2507))))))))) ((lambda (tmp2510) ((lambda (tmp2511) (if tmp2511 
(apply (lambda (k2512 filename2513) (let ((fn2514 (syntax-object->datum 
filename2513))) ((lambda (tmp2515) ((lambda (tmp2516) (if tmp2516 (apply 
(lambda (exp2517) (cons (quote #(syntax-object begin ((top) #(ribcage #(exp) 
#((top)) #("i")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(fn) 
#((top)) #("i")) #(ribcage #(k filename) #((top) (top)) #("i" "i")) #(ribcage 
(read-file) ((top)) ("i")) #(ribcage #(x) #((top)) #("i"))) (hygiene guile))) 
exp2517)) tmp2516) (syntax-error tmp2515))) (syntax-dispatch tmp2515 (quote 
each-any)))) (read-file2504 fn2514 k2512)))) tmp2511) (syntax-error tmp2510))) 
(syntax-dispatch tmp2510 (quote (any any))))) x2503))))
-(install-global-transformer (quote unquote) (lambda (x2519) ((lambda (tmp2520) 
((lambda (tmp2521) (if tmp2521 (apply (lambda (_2522 e2523) (error (quote 
unquote) "expression ,~s not valid outside of quasiquote" (syntax-object->datum 
e2523))) tmp2521) (syntax-error tmp2520))) (syntax-dispatch tmp2520 (quote (any 
any))))) x2519)))
-(install-global-transformer (quote unquote-splicing) (lambda (x2524) ((lambda 
(tmp2525) ((lambda (tmp2526) (if tmp2526 (apply (lambda (_2527 e2528) (error 
(quote unquote-splicing) "expression ,@~s not valid outside of quasiquote" 
(syntax-object->datum e2528))) tmp2526) (syntax-error tmp2525))) 
(syntax-dispatch tmp2525 (quote (any any))))) x2524)))
-(install-global-transformer (quote case) (lambda (x2529) ((lambda (tmp2530) 
((lambda (tmp2531) (if tmp2531 (apply (lambda (_2532 e2533 m12534 m22535) 
((lambda (tmp2536) ((lambda (body2537) (list (quote #(syntax-object let ((top) 
#(ribcage #(body) #((top)) #("i")) #(ribcage #(_ e m1 m2) #((top) (top) (top) 
(top)) #("i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) 
(hygiene guile))) (list (list (quote #(syntax-object t ((top) #(ribcage #(body) 
#((top)) #("i")) #(ribcage #(_ e m1 m2) #((top) (top) (top) (top)) #("i" "i" 
"i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene 
guile))) e2533)) body2537)) tmp2536)) (let f2538 ((clause2539 m12534) 
(clauses2540 m22535)) (if (null? clauses2540) ((lambda (tmp2542) ((lambda 
(tmp2543) (if tmp2543 (apply (lambda (e12544 e22545) (cons (quote 
#(syntax-object begin ((top) #(ribcage #(e1 e2) #((top) (top)) #("i" "i")) 
#(ribcage () () ()) #(ribcage #(f clause clauses) #((top) (top) (top)) #("i" 
"i" "i")) #(ribcage #(_ e m1 m2) #((top) (top) (top) (top)) #("i" "i" "i" "i")) 
#(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile))) (cons 
e12544 e22545))) tmp2543) ((lambda (tmp2547) (if tmp2547 (apply (lambda (k2548 
e12549 e22550) (list (quote #(syntax-object if ((top) #(ribcage #(k e1 e2) 
#((top) (top) (top)) #("i" "i" "i")) #(ribcage () () ()) #(ribcage #(f clause 
clauses) #((top) (top) (top)) #("i" "i" "i")) #(ribcage #(_ e m1 m2) #((top) 
(top) (top) (top)) #("i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) 
#((top)) #("i"))) (hygiene guile))) (list (quote #(syntax-object memv ((top) 
#(ribcage #(k e1 e2) #((top) (top) (top)) #("i" "i" "i")) #(ribcage () () ()) 
#(ribcage #(f clause clauses) #((top) (top) (top)) #("i" "i" "i")) #(ribcage 
#(_ e m1 m2) #((top) (top) (top) (top)) #("i" "i" "i" "i")) #(ribcage () () ()) 
#(ribcage #(x) #((top)) #("i"))) (hygiene guile))) (quote #(syntax-object t 
((top) #(ribcage #(k e1 e2) #((top) (top) (top)) #("i" "i" "i")) #(ribcage () 
() ()) #(ribcage #(f clause clauses) #((top) (top) (top)) #("i" "i" "i")) 
#(ribcage #(_ e m1 m2) #((top) (top) (top) (top)) #("i" "i" "i" "i")) #(ribcage 
() () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile))) (list (quote 
#(syntax-object quote ((top) #(ribcage #(k e1 e2) #((top) (top) (top)) #("i" 
"i" "i")) #(ribcage () () ()) #(ribcage #(f clause clauses) #((top) (top) 
(top)) #("i" "i" "i")) #(ribcage #(_ e m1 m2) #((top) (top) (top) (top)) #("i" 
"i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene 
guile))) k2548)) (cons (quote #(syntax-object begin ((top) #(ribcage #(k e1 e2) 
#((top) (top) (top)) #("i" "i" "i")) #(ribcage () () ()) #(ribcage #(f clause 
clauses) #((top) (top) (top)) #("i" "i" "i")) #(ribcage #(_ e m1 m2) #((top) 
(top) (top) (top)) #("i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) 
#((top)) #("i"))) (hygiene guile))) (cons e12549 e22550)))) tmp2547) ((lambda 
(_2553) (syntax-error x2529)) tmp2542))) (syntax-dispatch tmp2542 (quote 
(each-any any . each-any)))))) (syntax-dispatch tmp2542 (quote (#(free-id 
#(syntax-object else ((top) #(ribcage () () ()) #(ribcage #(f clause clauses) 
#((top) (top) (top)) #("i" "i" "i")) #(ribcage #(_ e m1 m2) #((top) (top) (top) 
(top)) #("i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) 
(hygiene guile))) any . each-any))))) clause2539) ((lambda (tmp2554) ((lambda 
(rest2555) ((lambda (tmp2556) ((lambda (tmp2557) (if tmp2557 (apply (lambda 
(k2558 e12559 e22560) (list (quote #(syntax-object if ((top) #(ribcage #(k e1 
e2) #((top) (top) (top)) #("i" "i" "i")) #(ribcage #(rest) #((top)) #("i")) 
#(ribcage () () ()) #(ribcage #(f clause clauses) #((top) (top) (top)) #("i" 
"i" "i")) #(ribcage #(_ e m1 m2) #((top) (top) (top) (top)) #("i" "i" "i" "i")) 
#(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile))) (list 
(quote #(syntax-object memv ((top) #(ribcage #(k e1 e2) #((top) (top) (top)) 
#("i" "i" "i")) #(ribcage #(rest) #((top)) #("i")) #(ribcage () () ()) 
#(ribcage #(f clause clauses) #((top) (top) (top)) #("i" "i" "i")) #(ribcage 
#(_ e m1 m2) #((top) (top) (top) (top)) #("i" "i" "i" "i")) #(ribcage () () ()) 
#(ribcage #(x) #((top)) #("i"))) (hygiene guile))) (quote #(syntax-object t 
((top) #(ribcage #(k e1 e2) #((top) (top) (top)) #("i" "i" "i")) #(ribcage 
#(rest) #((top)) #("i")) #(ribcage () () ()) #(ribcage #(f clause clauses) 
#((top) (top) (top)) #("i" "i" "i")) #(ribcage #(_ e m1 m2) #((top) (top) (top) 
(top)) #("i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) 
(hygiene guile))) (list (quote #(syntax-object quote ((top) #(ribcage #(k e1 
e2) #((top) (top) (top)) #("i" "i" "i")) #(ribcage #(rest) #((top)) #("i")) 
#(ribcage () () ()) #(ribcage #(f clause clauses) #((top) (top) (top)) #("i" 
"i" "i")) #(ribcage #(_ e m1 m2) #((top) (top) (top) (top)) #("i" "i" "i" "i")) 
#(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile))) k2558)) 
(cons (quote #(syntax-object begin ((top) #(ribcage #(k e1 e2) #((top) (top) 
(top)) #("i" "i" "i")) #(ribcage #(rest) #((top)) #("i")) #(ribcage () () ()) 
#(ribcage #(f clause clauses) #((top) (top) (top)) #("i" "i" "i")) #(ribcage 
#(_ e m1 m2) #((top) (top) (top) (top)) #("i" "i" "i" "i")) #(ribcage () () ()) 
#(ribcage #(x) #((top)) #("i"))) (hygiene guile))) (cons e12559 e22560)) 
rest2555)) tmp2557) ((lambda (_2563) (syntax-error x2529)) tmp2556))) 
(syntax-dispatch tmp2556 (quote (each-any any . each-any))))) clause2539)) 
tmp2554)) (f2538 (car clauses2540) (cdr clauses2540))))))) tmp2531) 
(syntax-error tmp2530))) (syntax-dispatch tmp2530 (quote (any any any . 
each-any))))) x2529)))
-(install-global-transformer (quote identifier-syntax) (lambda (x2564) ((lambda 
(tmp2565) ((lambda (tmp2566) (if tmp2566 (apply (lambda (_2567 e2568) (list 
(quote #(syntax-object lambda ((top) #(ribcage #(_ e) #((top) (top)) #("i" 
"i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile))) 
(quote (#(syntax-object x ((top) #(ribcage #(_ e) #((top) (top)) #("i" "i")) 
#(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile)))) (list 
(quote #(syntax-object syntax-case ((top) #(ribcage #(_ e) #((top) (top)) #("i" 
"i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile))) 
(quote #(syntax-object x ((top) #(ribcage #(_ e) #((top) (top)) #("i" "i")) 
#(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile))) (quote 
()) (list (quote #(syntax-object id ((top) #(ribcage #(_ e) #((top) (top)) 
#("i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene 
guile))) (quote (#(syntax-object identifier? ((top) #(ribcage #(_ e) #((top) 
(top)) #("i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) 
(hygiene guile)) (#(syntax-object syntax ((top) #(ribcage #(_ e) #((top) (top)) 
#("i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene 
guile)) #(syntax-object id ((top) #(ribcage #(_ e) #((top) (top)) #("i" "i")) 
#(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile))))) (list 
(quote #(syntax-object syntax ((top) #(ribcage #(_ e) #((top) (top)) #("i" 
"i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile))) 
e2568)) (list (cons _2567 (quote (#(syntax-object x ((top) #(ribcage #(_ e) 
#((top) (top)) #("i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) 
(hygiene guile)) #(syntax-object ... ((top) #(ribcage #(_ e) #((top) (top)) 
#("i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene 
guile))))) (list (quote #(syntax-object syntax ((top) #(ribcage #(_ e) #((top) 
(top)) #("i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) 
(hygiene guile))) (cons e2568 (quote (#(syntax-object x ((top) #(ribcage #(_ e) 
#((top) (top)) #("i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) 
(hygiene guile)) #(syntax-object ... ((top) #(ribcage #(_ e) #((top) (top)) 
#("i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene 
guile)))))))))) tmp2566) (syntax-error tmp2565))) (syntax-dispatch tmp2565 
(quote (any any))))) x2564)))
+(letrec ((lambda-var-list175 (lambda (vars380) (let lvl381 ((vars382 vars380) 
(ls383 (quote ())) (w384 (quote (())))) (cond ((pair? vars382) (lvl381 (cdr 
vars382) (cons (wrap154 (car vars382) w384 #f) ls383) w384)) ((id?126 vars382) 
(cons (wrap154 vars382 w384 #f) ls383)) ((null? vars382) ls383) 
((syntax-object?110 vars382) (lvl381 (syntax-object-expression111 vars382) 
ls383 (join-wraps145 w384 (syntax-object-wrap112 vars382)))) ((annotation? 
vars382) (lvl381 (annotation-expression vars382) ls383 w384)) (else (cons 
vars382 ls383)))))) (gen-var174 (lambda (id385) (let ((id386 (if 
(syntax-object?110 id385) (syntax-object-expression111 id385) id385))) (if 
(annotation? id386) (build-annotated103 (annotation-source id386) (gensym 
(symbol->string (annotation-expression id386)))) (build-annotated103 #f (gensym 
(symbol->string id386))))))) (strip173 (lambda (x387 w388) (if (memq (quote 
top) (wrap-marks129 w388)) (if (or (annotation? x387) (and (pair? x387) 
(annotation? (car x387)))) (strip-annotation172 x387 #f) x387) (let f389 ((x390 
x387)) (cond ((syntax-object?110 x390) (strip173 (syntax-object-expression111 
x390) (syntax-object-wrap112 x390))) ((pair? x390) (let ((a391 (f389 (car 
x390))) (d392 (f389 (cdr x390)))) (if (and (eq? a391 (car x390)) (eq? d392 (cdr 
x390))) x390 (cons a391 d392)))) ((vector? x390) (let ((old393 (vector->list 
x390))) (let ((new394 (map f389 old393))) (if (andmap eq? old393 new394) x390 
(list->vector new394))))) (else x390)))))) (strip-annotation172 (lambda (x395 
parent396) (cond ((pair? x395) (let ((new397 (cons #f #f))) (begin (if 
parent396 (set-annotation-stripped! parent396 new397)) (set-car! new397 
(strip-annotation172 (car x395) #f)) (set-cdr! new397 (strip-annotation172 (cdr 
x395) #f)) new397))) ((annotation? x395) (or (annotation-stripped x395) 
(strip-annotation172 (annotation-expression x395) x395))) ((vector? x395) (let 
((new398 (make-vector (vector-length x395)))) (begin (if parent396 
(set-annotation-stripped! parent396 new398)) (let loop399 ((i400 (- 
(vector-length x395) 1))) (unless (fx<96 i400 0) (vector-set! new398 i400 
(strip-annotation172 (vector-ref x395 i400) #f)) (loop399 (fx-94 i400 1)))) 
new398))) (else x395)))) (ellipsis?171 (lambda (x401) (and (nonsymbol-id?125 
x401) (free-id=?149 x401 (quote #(syntax-object ... ((top) #(ribcage () () ()) 
#(ribcage #(x) #((top)) #("i")) #(ribcage (lambda-var-list gen-var strip 
strip-annotation ellipsis? chi-void eval-local-transformer chi-local-syntax 
chi-lambda-clause chi-body chi-macro chi-application chi-expr chi chi-top 
syntax-type chi-when-list chi-install-global chi-top-sequence chi-sequence 
source-wrap wrap bound-id-member? distinct-bound-ids? valid-bound-ids? 
bound-id=? free-id=? id-var-name same-marks? join-marks join-wraps smart-append 
make-binding-wrap extend-ribcage! make-empty-ribcage new-mark anti-mark 
the-anti-mark top-marked? top-wrap empty-wrap set-ribcage-labels! 
set-ribcage-marks! set-ribcage-symnames! ribcage-labels ribcage-marks 
ribcage-symnames ribcage? make-ribcage gen-labels gen-label make-rename 
rename-marks rename-new rename-old subst-rename? wrap-subst wrap-marks 
make-wrap id-sym-name&marks id-sym-name id? nonsymbol-id? global-extend lookup 
macros-only-env extend-var-env extend-env null-env binding-value binding-type 
make-binding arg-check source-annotation no-source unannotate 
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 build-global-definition 
build-global-assignment build-global-reference build-lexical-assignment 
build-lexical-reference build-conditional build-application build-annotated 
get-global-definition-hook remove-global-definition-hook 
put-global-definition-hook gensym-hook error-hook local-eval-hook 
top-level-eval-hook fx< fx= fx- fx+ noexpand) ((top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top)) ("i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i")) #(ribcage 
(define-structure) ((top)) ("i"))) (hygiene guile))))))) (chi-void170 (lambda 
() (build-annotated103 #f (list (build-annotated103 #f (quote void)))))) 
(eval-local-transformer169 (lambda (expanded402 mod403) (let ((p404 
(local-eval-hook98 expanded402 mod403))) (if (procedure? p404) p404 
(syntax-error p404 "nonprocedure transformer"))))) (chi-local-syntax168 (lambda 
(rec?405 e406 r407 w408 s409 mod410 k411) ((lambda (tmp412) ((lambda (tmp413) 
(if tmp413 (apply (lambda (_414 id415 val416 e1417 e2418) (let ((ids419 id415)) 
(if (not (valid-bound-ids?151 ids419)) (syntax-error e406 "duplicate bound 
keyword in") (let ((labels421 (gen-labels132 ids419))) (let ((new-w422 
(make-binding-wrap143 ids419 labels421 w408))) (k411 (cons e1417 e2418) 
(extend-env120 labels421 (let ((w424 (if rec?405 new-w422 w408)) (trans-r425 
(macros-only-env122 r407))) (map (lambda (x426) (cons (quote macro) 
(eval-local-transformer169 (chi162 x426 trans-r425 w424 mod410) mod410))) 
val416)) r407) new-w422 s409 mod410)))))) tmp413) ((lambda (_428) (syntax-error 
(source-wrap155 e406 w408 s409 mod410))) tmp412))) (syntax-dispatch tmp412 
(quote (any #(each (any any)) any . each-any))))) e406))) (chi-lambda-clause167 
(lambda (e429 docstring430 c431 r432 w433 mod434 k435) ((lambda (tmp436) 
((lambda (tmp437) (if (if tmp437 (apply (lambda (args438 doc439 e1440 e2441) 
(and (string? (syntax-object->datum doc439)) (not docstring430))) tmp437) #f) 
(apply (lambda (args442 doc443 e1444 e2445) (chi-lambda-clause167 e429 doc443 
(cons args442 (cons e1444 e2445)) r432 w433 mod434 k435)) tmp437) ((lambda 
(tmp447) (if tmp447 (apply (lambda (id448 e1449 e2450) (let ((ids451 id448)) 
(if (not (valid-bound-ids?151 ids451)) (syntax-error e429 "invalid parameter 
list in") (let ((labels453 (gen-labels132 ids451)) (new-vars454 (map gen-var174 
ids451))) (k435 new-vars454 docstring430 (chi-body166 (cons e1449 e2450) e429 
(extend-var-env121 labels453 new-vars454 r432) (make-binding-wrap143 ids451 
labels453 w433) mod434)))))) tmp447) ((lambda (tmp456) (if tmp456 (apply 
(lambda (ids457 e1458 e2459) (let ((old-ids460 (lambda-var-list175 ids457))) 
(if (not (valid-bound-ids?151 old-ids460)) (syntax-error e429 "invalid 
parameter list in") (let ((labels461 (gen-labels132 old-ids460)) (new-vars462 
(map gen-var174 old-ids460))) (k435 (let f463 ((ls1464 (cdr new-vars462)) 
(ls2465 (car new-vars462))) (if (null? ls1464) ls2465 (f463 (cdr ls1464) (cons 
(car ls1464) ls2465)))) docstring430 (chi-body166 (cons e1458 e2459) e429 
(extend-var-env121 labels461 new-vars462 r432) (make-binding-wrap143 old-ids460 
labels461 w433) mod434)))))) tmp456) ((lambda (_467) (syntax-error e429)) 
tmp436))) (syntax-dispatch tmp436 (quote (any any . each-any)))))) 
(syntax-dispatch tmp436 (quote (each-any any . each-any)))))) (syntax-dispatch 
tmp436 (quote (any any any . each-any))))) c431))) (chi-body166 (lambda 
(body468 outer-form469 r470 w471 mod472) (let ((r473 (cons (quote 
("placeholder" placeholder)) r470))) (let ((ribcage474 (make-ribcage133 (quote 
()) (quote ()) (quote ())))) (let ((w475 (make-wrap128 (wrap-marks129 w471) 
(cons ribcage474 (wrap-subst130 w471))))) (let parse476 ((body477 (map (lambda 
(x483) (cons r473 (wrap154 x483 w475 mod472))) body468)) (ids478 (quote ())) 
(labels479 (quote ())) (vars480 (quote ())) (vals481 (quote ())) (bindings482 
(quote ()))) (if (null? body477) (syntax-error outer-form469 "no expressions in 
body") (let ((e484 (cdar body477)) (er485 (caar body477))) (call-with-values 
(lambda () (syntax-type160 e484 er485 (quote (())) #f ribcage474 mod472)) 
(lambda (type486 value487 e488 w489 s490 mod491) (let ((t492 type486)) (if 
(memv t492 (quote (define-form))) (let ((id493 (wrap154 value487 w489 mod491)) 
(label494 (gen-label131))) (let ((var495 (gen-var174 id493))) (begin 
(extend-ribcage!142 ribcage474 id493 label494) (parse476 (cdr body477) (cons 
id493 ids478) (cons label494 labels479) (cons var495 vars480) (cons (cons er485 
(wrap154 e488 w489 mod491)) vals481) (cons (cons (quote lexical) var495) 
bindings482))))) (if (memv t492 (quote (define-syntax-form))) (let ((id496 
(wrap154 value487 w489 mod491)) (label497 (gen-label131))) (begin 
(extend-ribcage!142 ribcage474 id496 label497) (parse476 (cdr body477) (cons 
id496 ids478) (cons label497 labels479) vars480 vals481 (cons (cons (quote 
macro) (cons er485 (wrap154 e488 w489 mod491))) bindings482)))) (if (memv t492 
(quote (begin-form))) ((lambda (tmp498) ((lambda (tmp499) (if tmp499 (apply 
(lambda (_500 e1501) (parse476 (let f502 ((forms503 e1501)) (if (null? 
forms503) (cdr body477) (cons (cons er485 (wrap154 (car forms503) w489 mod491)) 
(f502 (cdr forms503))))) ids478 labels479 vars480 vals481 bindings482)) tmp499) 
(syntax-error tmp498))) (syntax-dispatch tmp498 (quote (any . each-any))))) 
e488) (if (memv t492 (quote (local-syntax-form))) (chi-local-syntax168 value487 
e488 er485 w489 s490 mod491 (lambda (forms505 er506 w507 s508 mod509) (parse476 
(let f510 ((forms511 forms505)) (if (null? forms511) (cdr body477) (cons (cons 
er506 (wrap154 (car forms511) w507 mod509)) (f510 (cdr forms511))))) ids478 
labels479 vars480 vals481 bindings482))) (if (null? ids478) (build-sequence105 
#f (map (lambda (x512) (chi162 (cdr x512) (car x512) (quote (())) mod491)) 
(cons (cons er485 (source-wrap155 e488 w489 s490 mod491)) (cdr body477)))) 
(begin (if (not (valid-bound-ids?151 ids478)) (syntax-error outer-form469 
"invalid or duplicate identifier in definition")) (let loop513 ((bs514 
bindings482) (er-cache515 #f) (r-cache516 #f)) (if (not (null? bs514)) (let 
((b517 (car bs514))) (if (eq? (car b517) (quote macro)) (let ((er518 (cadr 
b517))) (let ((r-cache519 (if (eq? er518 er-cache515) r-cache516 
(macros-only-env122 er518)))) (begin (set-cdr! b517 (eval-local-transformer169 
(chi162 (cddr b517) r-cache519 (quote (())) mod491) mod491)) (loop513 (cdr 
bs514) er518 r-cache519)))) (loop513 (cdr bs514) er-cache515 r-cache516))))) 
(set-cdr! r473 (extend-env120 labels479 bindings482 (cdr r473))) 
(build-letrec108 #f vars480 (map (lambda (x520) (chi162 (cdr x520) (car x520) 
(quote (())) mod491)) vals481) (build-sequence105 #f (map (lambda (x521) 
(chi162 (cdr x521) (car x521) (quote (())) mod491)) (cons (cons er485 
(source-wrap155 e488 w489 s490 mod491)) (cdr body477)))))))))))))))))))))) 
(chi-macro165 (lambda (p522 e523 r524 w525 rib526 mod527) (letrec 
((rebuild-macro-output528 (lambda (x529 m530) (cond ((pair? x529) (cons 
(rebuild-macro-output528 (car x529) m530) (rebuild-macro-output528 (cdr x529) 
m530))) ((syntax-object?110 x529) (let ((w531 (syntax-object-wrap112 x529))) 
(let ((ms532 (wrap-marks129 w531)) (s533 (wrap-subst130 w531))) (if (and (pair? 
ms532) (eq? (car ms532) #f)) (make-syntax-object109 
(syntax-object-expression111 x529) (make-wrap128 (cdr ms532) (if rib526 (cons 
rib526 (cdr s533)) (cdr s533))) (syntax-object-module113 x529)) 
(make-syntax-object109 (syntax-object-expression111 x529) (make-wrap128 (cons 
m530 ms532) (if rib526 (cons rib526 (cons (quote shift) s533)) (cons (quote 
shift) s533))) (let ((pmod534 (procedure-module p522))) (if pmod534 (cons 
(quote hygiene) (module-name pmod534)) (quote (hygiene guile))))))))) ((vector? 
x529) (let ((n535 (vector-length x529))) (let ((v536 (make-vector n535))) (let 
doloop537 ((i538 0)) (if (fx=95 i538 n535) v536 (begin (vector-set! v536 i538 
(rebuild-macro-output528 (vector-ref x529 i538) m530)) (doloop537 (fx+93 i538 
1)))))))) ((symbol? x529) (syntax-error x529 "encountered raw symbol in macro 
output")) (else x529))))) (rebuild-macro-output528 (p522 (wrap154 e523 
(anti-mark141 w525) mod527)) (string #\m))))) (chi-application164 (lambda (x539 
e540 r541 w542 s543 mod544) ((lambda (tmp545) ((lambda (tmp546) (if tmp546 
(apply (lambda (e0547 e1548) (build-annotated103 s543 (cons x539 (map (lambda 
(e549) (chi162 e549 r541 w542 mod544)) e1548)))) tmp546) (syntax-error 
tmp545))) (syntax-dispatch tmp545 (quote (any . each-any))))) e540))) 
(chi-expr163 (lambda (type551 value552 e553 r554 w555 s556 mod557) (let ((t558 
type551)) (if (memv t558 (quote (lexical))) (build-annotated103 s556 value552) 
(if (memv t558 (quote (core external-macro))) (value552 e553 r554 w555 s556 
mod557) (if (memv t558 (quote (module-ref))) (call-with-values (lambda () 
(value552 e553)) (lambda (id559 mod560) (build-annotated103 s556 (if mod560 
(make-module-ref (cdr mod560) id559 (car mod560)) (make-module-ref mod560 id559 
(quote bare)))))) (if (memv t558 (quote (lexical-call))) (chi-application164 
(build-annotated103 (source-annotation117 (car e553)) value552) e553 r554 w555 
s556 mod557) (if (memv t558 (quote (global-call))) (chi-application164 
(build-annotated103 (source-annotation117 (car e553)) (if (if 
(syntax-object?110 (car e553)) (syntax-object-module113 (car e553)) mod557) 
(make-module-ref (cdr (if (syntax-object?110 (car e553)) 
(syntax-object-module113 (car e553)) mod557)) value552 (car (if 
(syntax-object?110 (car e553)) (syntax-object-module113 (car e553)) mod557))) 
(make-module-ref (if (syntax-object?110 (car e553)) (syntax-object-module113 
(car e553)) mod557) value552 (quote bare)))) e553 r554 w555 s556 mod557) (if 
(memv t558 (quote (constant))) (build-data104 s556 (strip173 (source-wrap155 
e553 w555 s556 mod557) (quote (())))) (if (memv t558 (quote (global))) 
(build-annotated103 s556 (if mod557 (make-module-ref (cdr mod557) value552 (car 
mod557)) (make-module-ref mod557 value552 (quote bare)))) (if (memv t558 (quote 
(call))) (chi-application164 (chi162 (car e553) r554 w555 mod557) e553 r554 
w555 s556 mod557) (if (memv t558 (quote (begin-form))) ((lambda (tmp561) 
((lambda (tmp562) (if tmp562 (apply (lambda (_563 e1564 e2565) (chi-sequence156 
(cons e1564 e2565) r554 w555 s556 mod557)) tmp562) (syntax-error tmp561))) 
(syntax-dispatch tmp561 (quote (any any . each-any))))) e553) (if (memv t558 
(quote (local-syntax-form))) (chi-local-syntax168 value552 e553 r554 w555 s556 
mod557 chi-sequence156) (if (memv t558 (quote (eval-when-form))) ((lambda 
(tmp567) ((lambda (tmp568) (if tmp568 (apply (lambda (_569 x570 e1571 e2572) 
(let ((when-list573 (chi-when-list159 e553 x570 w555))) (if (memq (quote eval) 
when-list573) (chi-sequence156 (cons e1571 e2572) r554 w555 s556 mod557) 
(chi-void170)))) tmp568) (syntax-error tmp567))) (syntax-dispatch tmp567 (quote 
(any each-any any . each-any))))) e553) (if (memv t558 (quote (define-form 
define-syntax-form))) (syntax-error (wrap154 value552 w555 mod557) "invalid 
context for definition of") (if (memv t558 (quote (syntax))) (syntax-error 
(source-wrap155 e553 w555 s556 mod557) "reference to pattern variable outside 
syntax form") (if (memv t558 (quote (displaced-lexical))) (syntax-error 
(source-wrap155 e553 w555 s556 mod557) "reference to identifier outside its 
scope") (syntax-error (source-wrap155 e553 w555 s556 mod557))))))))))))))))))) 
(chi162 (lambda (e576 r577 w578 mod579) (call-with-values (lambda () 
(syntax-type160 e576 r577 w578 #f #f mod579)) (lambda (type580 value581 e582 
w583 s584 mod585) (chi-expr163 type580 value581 e582 r577 w583 s584 mod585))))) 
(chi-top161 (lambda (e586 r587 w588 m589 esew590 mod591) (call-with-values 
(lambda () (syntax-type160 e586 r587 w588 #f #f mod591)) (lambda (type599 
value600 e601 w602 s603 mod604) (let ((t605 type599)) (if (memv t605 (quote 
(begin-form))) ((lambda (tmp606) ((lambda (tmp607) (if tmp607 (apply (lambda 
(_608) (chi-void170)) tmp607) ((lambda (tmp609) (if tmp609 (apply (lambda (_610 
e1611 e2612) (chi-top-sequence157 (cons e1611 e2612) r587 w602 s603 m589 
esew590 mod604)) tmp609) (syntax-error tmp606))) (syntax-dispatch tmp606 (quote 
(any any . each-any)))))) (syntax-dispatch tmp606 (quote (any))))) e601) (if 
(memv t605 (quote (local-syntax-form))) (chi-local-syntax168 value600 e601 r587 
w602 s603 mod604 (lambda (body614 r615 w616 s617 mod618) (chi-top-sequence157 
body614 r615 w616 s617 m589 esew590 mod618))) (if (memv t605 (quote 
(eval-when-form))) ((lambda (tmp619) ((lambda (tmp620) (if tmp620 (apply 
(lambda (_621 x622 e1623 e2624) (let ((when-list625 (chi-when-list159 e601 x622 
w602)) (body626 (cons e1623 e2624))) (cond ((eq? m589 (quote e)) (if (memq 
(quote eval) when-list625) (chi-top-sequence157 body626 r587 w602 s603 (quote 
e) (quote (eval)) mod604) (chi-void170))) ((memq (quote load) when-list625) (if 
(or (memq (quote compile) when-list625) (and (eq? m589 (quote c&e)) (memq 
(quote eval) when-list625))) (chi-top-sequence157 body626 r587 w602 s603 (quote 
c&e) (quote (compile load)) mod604) (if (memq m589 (quote (c c&e))) 
(chi-top-sequence157 body626 r587 w602 s603 (quote c) (quote (load)) mod604) 
(chi-void170)))) ((or (memq (quote compile) when-list625) (and (eq? m589 (quote 
c&e)) (memq (quote eval) when-list625))) (top-level-eval-hook97 
(chi-top-sequence157 body626 r587 w602 s603 (quote e) (quote (eval)) mod604) 
mod604) (chi-void170)) (else (chi-void170))))) tmp620) (syntax-error tmp619))) 
(syntax-dispatch tmp619 (quote (any each-any any . each-any))))) e601) (if 
(memv t605 (quote (define-syntax-form))) (let ((n629 (id-var-name148 value600 
w602)) (r630 (macros-only-env122 r587))) (let ((t631 m589)) (if (memv t631 
(quote (c))) (if (memq (quote compile) esew590) (let ((e632 
(chi-install-global158 n629 (chi162 e601 r630 w602 mod604)))) (begin 
(top-level-eval-hook97 e632 mod604) (if (memq (quote load) esew590) e632 
(chi-void170)))) (if (memq (quote load) esew590) (chi-install-global158 n629 
(chi162 e601 r630 w602 mod604)) (chi-void170))) (if (memv t631 (quote (c&e))) 
(let ((e633 (chi-install-global158 n629 (chi162 e601 r630 w602 mod604)))) 
(begin (top-level-eval-hook97 e633 mod604) e633)) (begin (if (memq (quote eval) 
esew590) (top-level-eval-hook97 (chi-install-global158 n629 (chi162 e601 r630 
w602 mod604)) mod604)) (chi-void170)))))) (if (memv t605 (quote (define-form))) 
(let ((n634 (id-var-name148 value600 w602))) (let ((type635 (binding-type118 
(lookup123 n634 r587 mod604)))) (let ((t636 type635)) (if (memv t636 (quote 
(global))) (let ((x637 (build-annotated103 s603 (list (quote define) n634 
(chi162 e601 r587 w602 mod604))))) (begin (if (eq? m589 (quote c&e)) 
(top-level-eval-hook97 x637 mod604)) x637)) (if (memv t636 (quote 
(displaced-lexical))) (syntax-error (wrap154 value600 w602 mod604) "identifier 
out of context") (if (memv t636 (quote (core macro module-ref))) (begin 
(remove-global-definition-hook101 n634) (let ((x638 (build-annotated103 s603 
(list (quote define) n634 (chi162 e601 r587 w602 mod604))))) (begin (if (eq? 
m589 (quote c&e)) (top-level-eval-hook97 x638 mod604)) x638))) (syntax-error 
(wrap154 value600 w602 mod604) "cannot define keyword at top level"))))))) (let 
((x639 (chi-expr163 type599 value600 e601 r587 w602 s603 mod604))) (begin (if 
(eq? m589 (quote c&e)) (top-level-eval-hook97 x639 mod604)) x639)))))))))))) 
(syntax-type160 (lambda (e640 r641 w642 s643 rib644 mod645) (cond ((symbol? 
e640) (let ((n646 (id-var-name148 e640 w642))) (let ((b647 (lookup123 n646 r641 
mod645))) (let ((type648 (binding-type118 b647))) (let ((t649 type648)) (if 
(memv t649 (quote (lexical))) (values type648 (binding-value119 b647) e640 w642 
s643 mod645) (if (memv t649 (quote (global))) (values type648 n646 e640 w642 
s643 mod645) (if (memv t649 (quote (macro))) (syntax-type160 (chi-macro165 
(binding-value119 b647) e640 r641 w642 rib644 mod645) r641 (quote (())) s643 
rib644 mod645) (values type648 (binding-value119 b647) e640 w642 s643 
mod645))))))))) ((pair? e640) (let ((first650 (car e640))) (if (id?126 
first650) (let ((n651 (id-var-name148 first650 w642))) (let ((b652 (lookup123 
n651 r641 (or (and (syntax-object?110 first650) (syntax-object-module113 
first650)) mod645)))) (let ((type653 (binding-type118 b652))) (let ((t654 
type653)) (if (memv t654 (quote (lexical))) (values (quote lexical-call) 
(binding-value119 b652) e640 w642 s643 mod645) (if (memv t654 (quote (global))) 
(values (quote global-call) n651 e640 w642 s643 mod645) (if (memv t654 (quote 
(macro))) (syntax-type160 (chi-macro165 (binding-value119 b652) e640 r641 w642 
rib644 mod645) r641 (quote (())) s643 rib644 mod645) (if (memv t654 (quote 
(core external-macro module-ref))) (values type653 (binding-value119 b652) e640 
w642 s643 mod645) (if (memv t654 (quote (local-syntax))) (values (quote 
local-syntax-form) (binding-value119 b652) e640 w642 s643 mod645) (if (memv 
t654 (quote (begin))) (values (quote begin-form) #f e640 w642 s643 mod645) (if 
(memv t654 (quote (eval-when))) (values (quote eval-when-form) #f e640 w642 
s643 mod645) (if (memv t654 (quote (define))) ((lambda (tmp655) ((lambda 
(tmp656) (if (if tmp656 (apply (lambda (_657 name658 val659) (id?126 name658)) 
tmp656) #f) (apply (lambda (_660 name661 val662) (values (quote define-form) 
name661 val662 w642 s643 mod645)) tmp656) ((lambda (tmp663) (if (if tmp663 
(apply (lambda (_664 name665 args666 e1667 e2668) (and (id?126 name665) 
(valid-bound-ids?151 (lambda-var-list175 args666)))) tmp663) #f) (apply (lambda 
(_669 name670 args671 e1672 e2673) (values (quote define-form) (wrap154 name670 
w642 mod645) (cons (quote #(syntax-object lambda ((top) #(ribcage #(_ name args 
e1 e2) #((top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i")) #(ribcage () () 
()) #(ribcage #(t) #(("m" top)) #("i")) #(ribcage () () ()) #(ribcage () () ()) 
#(ribcage () () ()) #(ribcage #(type) #((top)) #("i")) #(ribcage () () ()) 
#(ribcage #(b) #((top)) #("i")) #(ribcage () () ()) #(ribcage #(n) #((top)) 
#("i")) #(ribcage () () ()) #(ribcage #(first) #((top)) #("i")) #(ribcage () () 
()) #(ribcage #(e r w s rib mod) #((top) (top) (top) (top) (top) (top)) #("i" 
"i" "i" "i" "i" "i")) #(ribcage (lambda-var-list gen-var strip strip-annotation 
ellipsis? chi-void eval-local-transformer chi-local-syntax chi-lambda-clause 
chi-body chi-macro chi-application chi-expr chi chi-top syntax-type 
chi-when-list chi-install-global chi-top-sequence chi-sequence source-wrap wrap 
bound-id-member? distinct-bound-ids? valid-bound-ids? bound-id=? free-id=? 
id-var-name same-marks? join-marks join-wraps smart-append make-binding-wrap 
extend-ribcage! make-empty-ribcage new-mark anti-mark the-anti-mark top-marked? 
top-wrap empty-wrap set-ribcage-labels! set-ribcage-marks! 
set-ribcage-symnames! ribcage-labels ribcage-marks ribcage-symnames ribcage? 
make-ribcage gen-labels gen-label make-rename rename-marks rename-new 
rename-old subst-rename? wrap-subst wrap-marks make-wrap id-sym-name&marks 
id-sym-name id? nonsymbol-id? global-extend lookup macros-only-env 
extend-var-env extend-env null-env binding-value binding-type make-binding 
arg-check source-annotation no-source unannotate 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 build-global-definition 
build-global-assignment build-global-reference build-lexical-assignment 
build-lexical-reference build-conditional build-application build-annotated 
get-global-definition-hook remove-global-definition-hook 
put-global-definition-hook gensym-hook error-hook local-eval-hook 
top-level-eval-hook fx< fx= fx- fx+ noexpand) ((top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top)) ("i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i")) #(ribcage 
(define-structure) ((top)) ("i"))) (hygiene guile))) (wrap154 (cons args671 
(cons e1672 e2673)) w642 mod645)) (quote (())) s643 mod645)) tmp663) ((lambda 
(tmp675) (if (if tmp675 (apply (lambda (_676 name677) (id?126 name677)) tmp675) 
#f) (apply (lambda (_678 name679) (values (quote define-form) (wrap154 name679 
w642 mod645) (quote (#(syntax-object void ((top) #(ribcage #(_ name) #((top) 
(top)) #("i" "i")) #(ribcage () () ()) #(ribcage #(t) #(("m" top)) #("i")) 
#(ribcage () () ()) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(type) 
#((top)) #("i")) #(ribcage () () ()) #(ribcage #(b) #((top)) #("i")) #(ribcage 
() () ()) #(ribcage #(n) #((top)) #("i")) #(ribcage () () ()) #(ribcage 
#(first) #((top)) #("i")) #(ribcage () () ()) #(ribcage #(e r w s rib mod) 
#((top) (top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i" "i")) #(ribcage 
(lambda-var-list gen-var strip strip-annotation ellipsis? chi-void 
eval-local-transformer chi-local-syntax chi-lambda-clause chi-body chi-macro 
chi-application chi-expr chi chi-top syntax-type chi-when-list 
chi-install-global chi-top-sequence chi-sequence source-wrap wrap 
bound-id-member? distinct-bound-ids? valid-bound-ids? bound-id=? free-id=? 
id-var-name same-marks? join-marks join-wraps smart-append make-binding-wrap 
extend-ribcage! make-empty-ribcage new-mark anti-mark the-anti-mark top-marked? 
top-wrap empty-wrap set-ribcage-labels! set-ribcage-marks! 
set-ribcage-symnames! ribcage-labels ribcage-marks ribcage-symnames ribcage? 
make-ribcage gen-labels gen-label make-rename rename-marks rename-new 
rename-old subst-rename? wrap-subst wrap-marks make-wrap id-sym-name&marks 
id-sym-name id? nonsymbol-id? global-extend lookup macros-only-env 
extend-var-env extend-env null-env binding-value binding-type make-binding 
arg-check source-annotation no-source unannotate 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 build-global-definition 
build-global-assignment build-global-reference build-lexical-assignment 
build-lexical-reference build-conditional build-application build-annotated 
get-global-definition-hook remove-global-definition-hook 
put-global-definition-hook gensym-hook error-hook local-eval-hook 
top-level-eval-hook fx< fx= fx- fx+ noexpand) ((top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top)) ("i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i")) #(ribcage 
(define-structure) ((top)) ("i"))) (hygiene guile)))) (quote (())) s643 
mod645)) tmp675) (syntax-error tmp655))) (syntax-dispatch tmp655 (quote (any 
any)))))) (syntax-dispatch tmp655 (quote (any (any . any) any . each-any)))))) 
(syntax-dispatch tmp655 (quote (any any any))))) e640) (if (memv t654 (quote 
(define-syntax))) ((lambda (tmp680) ((lambda (tmp681) (if (if tmp681 (apply 
(lambda (_682 name683 val684) (id?126 name683)) tmp681) #f) (apply (lambda 
(_685 name686 val687) (values (quote define-syntax-form) name686 val687 w642 
s643 mod645)) tmp681) (syntax-error tmp680))) (syntax-dispatch tmp680 (quote 
(any any any))))) e640) (values (quote call) #f e640 w642 s643 
mod645)))))))))))))) (values (quote call) #f e640 w642 s643 mod645)))) 
((syntax-object?110 e640) (syntax-type160 (syntax-object-expression111 e640) 
r641 (join-wraps145 w642 (syntax-object-wrap112 e640)) #f rib644 (or 
(syntax-object-module113 e640) mod645))) ((annotation? e640) (syntax-type160 
(annotation-expression e640) r641 w642 (annotation-source e640) rib644 mod645)) 
((self-evaluating? e640) (values (quote constant) #f e640 w642 s643 mod645)) 
(else (values (quote other) #f e640 w642 s643 mod645))))) (chi-when-list159 
(lambda (e688 when-list689 w690) (let f691 ((when-list692 when-list689) 
(situations693 (quote ()))) (if (null? when-list692) situations693 (f691 (cdr 
when-list692) (cons (let ((x694 (car when-list692))) (cond ((free-id=?149 x694 
(quote #(syntax-object compile ((top) #(ribcage () () ()) #(ribcage #(x) 
#((top)) #("i")) #(ribcage () () ()) #(ribcage #(f when-list situations) 
#((top) (top) (top)) #("i" "i" "i")) #(ribcage () () ()) #(ribcage #(e 
when-list w) #((top) (top) (top)) #("i" "i" "i")) #(ribcage (lambda-var-list 
gen-var strip strip-annotation ellipsis? chi-void eval-local-transformer 
chi-local-syntax chi-lambda-clause chi-body chi-macro chi-application chi-expr 
chi chi-top syntax-type chi-when-list chi-install-global chi-top-sequence 
chi-sequence source-wrap wrap bound-id-member? distinct-bound-ids? 
valid-bound-ids? bound-id=? free-id=? id-var-name same-marks? join-marks 
join-wraps smart-append make-binding-wrap extend-ribcage! make-empty-ribcage 
new-mark anti-mark the-anti-mark top-marked? top-wrap empty-wrap 
set-ribcage-labels! set-ribcage-marks! set-ribcage-symnames! ribcage-labels 
ribcage-marks ribcage-symnames ribcage? make-ribcage gen-labels gen-label 
make-rename rename-marks rename-new rename-old subst-rename? wrap-subst 
wrap-marks make-wrap id-sym-name&marks id-sym-name id? nonsymbol-id? 
global-extend lookup macros-only-env extend-var-env extend-env null-env 
binding-value binding-type make-binding arg-check source-annotation no-source 
unannotate 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 build-global-definition build-global-assignment 
build-global-reference build-lexical-assignment build-lexical-reference 
build-conditional build-application build-annotated get-global-definition-hook 
remove-global-definition-hook put-global-definition-hook gensym-hook error-hook 
local-eval-hook top-level-eval-hook fx< fx= fx- fx+ noexpand) ((top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top)) ("i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i")) #(ribcage (define-structure) ((top)) ("i"))) (hygiene guile)))) 
(quote compile)) ((free-id=?149 x694 (quote #(syntax-object load ((top) 
#(ribcage () () ()) #(ribcage #(x) #((top)) #("i")) #(ribcage () () ()) 
#(ribcage #(f when-list situations) #((top) (top) (top)) #("i" "i" "i")) 
#(ribcage () () ()) #(ribcage #(e when-list w) #((top) (top) (top)) #("i" "i" 
"i")) #(ribcage (lambda-var-list gen-var strip strip-annotation ellipsis? 
chi-void eval-local-transformer chi-local-syntax chi-lambda-clause chi-body 
chi-macro chi-application chi-expr chi chi-top syntax-type chi-when-list 
chi-install-global chi-top-sequence chi-sequence source-wrap wrap 
bound-id-member? distinct-bound-ids? valid-bound-ids? bound-id=? free-id=? 
id-var-name same-marks? join-marks join-wraps smart-append make-binding-wrap 
extend-ribcage! make-empty-ribcage new-mark anti-mark the-anti-mark top-marked? 
top-wrap empty-wrap set-ribcage-labels! set-ribcage-marks! 
set-ribcage-symnames! ribcage-labels ribcage-marks ribcage-symnames ribcage? 
make-ribcage gen-labels gen-label make-rename rename-marks rename-new 
rename-old subst-rename? wrap-subst wrap-marks make-wrap id-sym-name&marks 
id-sym-name id? nonsymbol-id? global-extend lookup macros-only-env 
extend-var-env extend-env null-env binding-value binding-type make-binding 
arg-check source-annotation no-source unannotate 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 build-global-definition 
build-global-assignment build-global-reference build-lexical-assignment 
build-lexical-reference build-conditional build-application build-annotated 
get-global-definition-hook remove-global-definition-hook 
put-global-definition-hook gensym-hook error-hook local-eval-hook 
top-level-eval-hook fx< fx= fx- fx+ noexpand) ((top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top)) ("i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i")) #(ribcage 
(define-structure) ((top)) ("i"))) (hygiene guile)))) (quote load)) 
((free-id=?149 x694 (quote #(syntax-object eval ((top) #(ribcage () () ()) 
#(ribcage #(x) #((top)) #("i")) #(ribcage () () ()) #(ribcage #(f when-list 
situations) #((top) (top) (top)) #("i" "i" "i")) #(ribcage () () ()) #(ribcage 
#(e when-list w) #((top) (top) (top)) #("i" "i" "i")) #(ribcage 
(lambda-var-list gen-var strip strip-annotation ellipsis? chi-void 
eval-local-transformer chi-local-syntax chi-lambda-clause chi-body chi-macro 
chi-application chi-expr chi chi-top syntax-type chi-when-list 
chi-install-global chi-top-sequence chi-sequence source-wrap wrap 
bound-id-member? distinct-bound-ids? valid-bound-ids? bound-id=? free-id=? 
id-var-name same-marks? join-marks join-wraps smart-append make-binding-wrap 
extend-ribcage! make-empty-ribcage new-mark anti-mark the-anti-mark top-marked? 
top-wrap empty-wrap set-ribcage-labels! set-ribcage-marks! 
set-ribcage-symnames! ribcage-labels ribcage-marks ribcage-symnames ribcage? 
make-ribcage gen-labels gen-label make-rename rename-marks rename-new 
rename-old subst-rename? wrap-subst wrap-marks make-wrap id-sym-name&marks 
id-sym-name id? nonsymbol-id? global-extend lookup macros-only-env 
extend-var-env extend-env null-env binding-value binding-type make-binding 
arg-check source-annotation no-source unannotate 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 build-global-definition 
build-global-assignment build-global-reference build-lexical-assignment 
build-lexical-reference build-conditional build-application build-annotated 
get-global-definition-hook remove-global-definition-hook 
put-global-definition-hook gensym-hook error-hook local-eval-hook 
top-level-eval-hook fx< fx= fx- fx+ noexpand) ((top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top)) ("i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i")) #(ribcage 
(define-structure) ((top)) ("i"))) (hygiene guile)))) (quote eval)) (else 
(syntax-error (wrap154 x694 w690 #f) "invalid eval-when situation")))) 
situations693)))))) (chi-install-global158 (lambda (name695 e696) 
(build-annotated103 #f (list (build-annotated103 #f (quote 
install-global-transformer)) (build-data104 #f name695) e696)))) 
(chi-top-sequence157 (lambda (body697 r698 w699 s700 m701 esew702 mod703) 
(build-sequence105 s700 (let dobody704 ((body705 body697) (r706 r698) (w707 
w699) (m708 m701) (esew709 esew702) (mod710 mod703)) (if (null? body705) (quote 
()) (let ((first711 (chi-top161 (car body705) r706 w707 m708 esew709 mod710))) 
(cons first711 (dobody704 (cdr body705) r706 w707 m708 esew709 mod710)))))))) 
(chi-sequence156 (lambda (body712 r713 w714 s715 mod716) (build-sequence105 
s715 (let dobody717 ((body718 body712) (r719 r713) (w720 w714) (mod721 mod716)) 
(if (null? body718) (quote ()) (let ((first722 (chi162 (car body718) r719 w720 
mod721))) (cons first722 (dobody717 (cdr body718) r719 w720 mod721)))))))) 
(source-wrap155 (lambda (x723 w724 s725 defmod726) (wrap154 (if s725 
(make-annotation x723 s725 #f) x723) w724 defmod726))) (wrap154 (lambda (x727 
w728 defmod729) (cond ((and (null? (wrap-marks129 w728)) (null? (wrap-subst130 
w728))) x727) ((syntax-object?110 x727) (make-syntax-object109 
(syntax-object-expression111 x727) (join-wraps145 w728 (syntax-object-wrap112 
x727)) (syntax-object-module113 x727))) ((null? x727) x727) (else 
(make-syntax-object109 x727 w728 defmod729))))) (bound-id-member?153 (lambda 
(x730 list731) (and (not (null? list731)) (or (bound-id=?150 x730 (car 
list731)) (bound-id-member?153 x730 (cdr list731)))))) (distinct-bound-ids?152 
(lambda (ids732) (let distinct?733 ((ids734 ids732)) (or (null? ids734) (and 
(not (bound-id-member?153 (car ids734) (cdr ids734))) (distinct?733 (cdr 
ids734))))))) (valid-bound-ids?151 (lambda (ids735) (and (let all-ids?736 
((ids737 ids735)) (or (null? ids737) (and (id?126 (car ids737)) (all-ids?736 
(cdr ids737))))) (distinct-bound-ids?152 ids735)))) (bound-id=?150 (lambda 
(i738 j739) (if (and (syntax-object?110 i738) (syntax-object?110 j739)) (and 
(eq? (let ((e740 (syntax-object-expression111 i738))) (if (annotation? e740) 
(annotation-expression e740) e740)) (let ((e741 (syntax-object-expression111 
j739))) (if (annotation? e741) (annotation-expression e741) e741))) 
(same-marks?147 (wrap-marks129 (syntax-object-wrap112 i738)) (wrap-marks129 
(syntax-object-wrap112 j739)))) (eq? (let ((e742 i738)) (if (annotation? e742) 
(annotation-expression e742) e742)) (let ((e743 j739)) (if (annotation? e743) 
(annotation-expression e743) e743)))))) (free-id=?149 (lambda (i744 j745) (and 
(eq? (let ((x746 i744)) (let ((e747 (if (syntax-object?110 x746) 
(syntax-object-expression111 x746) x746))) (if (annotation? e747) 
(annotation-expression e747) e747))) (let ((x748 j745)) (let ((e749 (if 
(syntax-object?110 x748) (syntax-object-expression111 x748) x748))) (if 
(annotation? e749) (annotation-expression e749) e749)))) (eq? (id-var-name148 
i744 (quote (()))) (id-var-name148 j745 (quote (()))))))) (id-var-name148 
(lambda (id750 w751) (letrec ((search-vector-rib754 (lambda (sym760 subst761 
marks762 symnames763 ribcage764) (let ((n765 (vector-length symnames763))) (let 
f766 ((i767 0)) (cond ((fx=95 i767 n765) (search752 sym760 (cdr subst761) 
marks762)) ((and (eq? (vector-ref symnames763 i767) sym760) (same-marks?147 
marks762 (vector-ref (ribcage-marks136 ribcage764) i767))) (values (vector-ref 
(ribcage-labels137 ribcage764) i767) marks762)) (else (f766 (fx+93 i767 
1)))))))) (search-list-rib753 (lambda (sym768 subst769 marks770 symnames771 
ribcage772) (let f773 ((symnames774 symnames771) (i775 0)) (cond ((null? 
symnames774) (search752 sym768 (cdr subst769) marks770)) ((and (eq? (car 
symnames774) sym768) (same-marks?147 marks770 (list-ref (ribcage-marks136 
ribcage772) i775))) (values (list-ref (ribcage-labels137 ribcage772) i775) 
marks770)) (else (f773 (cdr symnames774) (fx+93 i775 1))))))) (search752 
(lambda (sym776 subst777 marks778) (if (null? subst777) (values #f marks778) 
(let ((fst779 (car subst777))) (if (eq? fst779 (quote shift)) (search752 sym776 
(cdr subst777) (cdr marks778)) (let ((symnames780 (ribcage-symnames135 
fst779))) (if (vector? symnames780) (search-vector-rib754 sym776 subst777 
marks778 symnames780 fst779) (search-list-rib753 sym776 subst777 marks778 
symnames780 fst779))))))))) (cond ((symbol? id750) (or (call-with-values 
(lambda () (search752 id750 (wrap-subst130 w751) (wrap-marks129 w751))) (lambda 
(x782 . ignore781) x782)) id750)) ((syntax-object?110 id750) (let ((id783 (let 
((e785 (syntax-object-expression111 id750))) (if (annotation? e785) 
(annotation-expression e785) e785))) (w1784 (syntax-object-wrap112 id750))) 
(let ((marks786 (join-marks146 (wrap-marks129 w751) (wrap-marks129 w1784)))) 
(call-with-values (lambda () (search752 id783 (wrap-subst130 w751) marks786)) 
(lambda (new-id787 marks788) (or new-id787 (call-with-values (lambda () 
(search752 id783 (wrap-subst130 w1784) marks788)) (lambda (x790 . ignore789) 
x790)) id783)))))) ((annotation? id750) (let ((id791 (let ((e792 id750)) (if 
(annotation? e792) (annotation-expression e792) e792)))) (or (call-with-values 
(lambda () (search752 id791 (wrap-subst130 w751) (wrap-marks129 w751))) (lambda 
(x794 . ignore793) x794)) id791))) (else (error-hook99 (quote id-var-name) 
"invalid id" id750)))))) (same-marks?147 (lambda (x795 y796) (or (eq? x795 
y796) (and (not (null? x795)) (not (null? y796)) (eq? (car x795) (car y796)) 
(same-marks?147 (cdr x795) (cdr y796)))))) (join-marks146 (lambda (m1797 m2798) 
(smart-append144 m1797 m2798))) (join-wraps145 (lambda (w1799 w2800) (let 
((m1801 (wrap-marks129 w1799)) (s1802 (wrap-subst130 w1799))) (if (null? m1801) 
(if (null? s1802) w2800 (make-wrap128 (wrap-marks129 w2800) (smart-append144 
s1802 (wrap-subst130 w2800)))) (make-wrap128 (smart-append144 m1801 
(wrap-marks129 w2800)) (smart-append144 s1802 (wrap-subst130 w2800))))))) 
(smart-append144 (lambda (m1803 m2804) (if (null? m2804) m1803 (append m1803 
m2804)))) (make-binding-wrap143 (lambda (ids805 labels806 w807) (if (null? 
ids805) w807 (make-wrap128 (wrap-marks129 w807) (cons (let ((labelvec808 
(list->vector labels806))) (let ((n809 (vector-length labelvec808))) (let 
((symnamevec810 (make-vector n809)) (marksvec811 (make-vector n809))) (begin 
(let f812 ((ids813 ids805) (i814 0)) (if (not (null? ids813)) (call-with-values 
(lambda () (id-sym-name&marks127 (car ids813) w807)) (lambda (symname815 
marks816) (begin (vector-set! symnamevec810 i814 symname815) (vector-set! 
marksvec811 i814 marks816) (f812 (cdr ids813) (fx+93 i814 1))))))) 
(make-ribcage133 symnamevec810 marksvec811 labelvec808))))) (wrap-subst130 
w807)))))) (extend-ribcage!142 (lambda (ribcage817 id818 label819) (begin 
(set-ribcage-symnames!138 ribcage817 (cons (let ((e820 
(syntax-object-expression111 id818))) (if (annotation? e820) 
(annotation-expression e820) e820)) (ribcage-symnames135 ribcage817))) 
(set-ribcage-marks!139 ribcage817 (cons (wrap-marks129 (syntax-object-wrap112 
id818)) (ribcage-marks136 ribcage817))) (set-ribcage-labels!140 ribcage817 
(cons label819 (ribcage-labels137 ribcage817)))))) (anti-mark141 (lambda (w821) 
(make-wrap128 (cons #f (wrap-marks129 w821)) (cons (quote shift) (wrap-subst130 
w821))))) (set-ribcage-labels!140 (lambda (x822 update823) (vector-set! x822 3 
update823))) (set-ribcage-marks!139 (lambda (x824 update825) (vector-set! x824 
2 update825))) (set-ribcage-symnames!138 (lambda (x826 update827) (vector-set! 
x826 1 update827))) (ribcage-labels137 (lambda (x828) (vector-ref x828 3))) 
(ribcage-marks136 (lambda (x829) (vector-ref x829 2))) (ribcage-symnames135 
(lambda (x830) (vector-ref x830 1))) (ribcage?134 (lambda (x831) (and (vector? 
x831) (= (vector-length x831) 4) (eq? (vector-ref x831 0) (quote ribcage))))) 
(make-ribcage133 (lambda (symnames832 marks833 labels834) (vector (quote 
ribcage) symnames832 marks833 labels834))) (gen-labels132 (lambda (ls835) (if 
(null? ls835) (quote ()) (cons (gen-label131) (gen-labels132 (cdr ls835)))))) 
(gen-label131 (lambda () (string #\i))) (wrap-subst130 cdr) (wrap-marks129 car) 
(make-wrap128 cons) (id-sym-name&marks127 (lambda (x836 w837) (if 
(syntax-object?110 x836) (values (let ((e838 (syntax-object-expression111 
x836))) (if (annotation? e838) (annotation-expression e838) e838)) 
(join-marks146 (wrap-marks129 w837) (wrap-marks129 (syntax-object-wrap112 
x836)))) (values (let ((e839 x836)) (if (annotation? e839) 
(annotation-expression e839) e839)) (wrap-marks129 w837))))) (id?126 (lambda 
(x840) (cond ((symbol? x840) #t) ((syntax-object?110 x840) (symbol? (let ((e841 
(syntax-object-expression111 x840))) (if (annotation? e841) 
(annotation-expression e841) e841)))) ((annotation? x840) (symbol? 
(annotation-expression x840))) (else #f)))) (nonsymbol-id?125 (lambda (x842) 
(and (syntax-object?110 x842) (symbol? (let ((e843 (syntax-object-expression111 
x842))) (if (annotation? e843) (annotation-expression e843) e843)))))) 
(global-extend124 (lambda (type844 sym845 val846) 
(put-global-definition-hook100 sym845 (cons type844 val846)))) (lookup123 
(lambda (x847 r848 mod849) (cond ((assq x847 r848) => cdr) ((symbol? x847) (or 
(get-global-definition-hook102 x847 mod849) (quote (global)))) (else (quote 
(displaced-lexical)))))) (macros-only-env122 (lambda (r850) (if (null? r850) 
(quote ()) (let ((a851 (car r850))) (if (eq? (cadr a851) (quote macro)) (cons 
a851 (macros-only-env122 (cdr r850))) (macros-only-env122 (cdr r850))))))) 
(extend-var-env121 (lambda (labels852 vars853 r854) (if (null? labels852) r854 
(extend-var-env121 (cdr labels852) (cdr vars853) (cons (cons (car labels852) 
(cons (quote lexical) (car vars853))) r854))))) (extend-env120 (lambda 
(labels855 bindings856 r857) (if (null? labels855) r857 (extend-env120 (cdr 
labels855) (cdr bindings856) (cons (cons (car labels855) (car bindings856)) 
r857))))) (binding-value119 cdr) (binding-type118 car) (source-annotation117 
(lambda (x858) (cond ((annotation? x858) (annotation-source x858)) 
((syntax-object?110 x858) (source-annotation117 (syntax-object-expression111 
x858))) (else #f)))) (set-syntax-object-module!116 (lambda (x859 update860) 
(vector-set! x859 3 update860))) (set-syntax-object-wrap!115 (lambda (x861 
update862) (vector-set! x861 2 update862))) (set-syntax-object-expression!114 
(lambda (x863 update864) (vector-set! x863 1 update864))) 
(syntax-object-module113 (lambda (x865) (vector-ref x865 3))) 
(syntax-object-wrap112 (lambda (x866) (vector-ref x866 2))) 
(syntax-object-expression111 (lambda (x867) (vector-ref x867 1))) 
(syntax-object?110 (lambda (x868) (and (vector? x868) (= (vector-length x868) 
4) (eq? (vector-ref x868 0) (quote syntax-object))))) (make-syntax-object109 
(lambda (expression869 wrap870 module871) (vector (quote syntax-object) 
expression869 wrap870 module871))) (build-letrec108 (lambda (src872 vars873 
val-exps874 body-exp875) (if (null? vars873) (build-annotated103 src872 
body-exp875) (build-annotated103 src872 (list (quote letrec) (map list vars873 
val-exps874) body-exp875))))) (build-named-let107 (lambda (src876 vars877 
val-exps878 body-exp879) (if (null? vars877) (build-annotated103 src876 
body-exp879) (build-annotated103 src876 (list (quote let) (car vars877) (map 
list (cdr vars877) val-exps878) body-exp879))))) (build-let106 (lambda (src880 
vars881 val-exps882 body-exp883) (if (null? vars881) (build-annotated103 src880 
body-exp883) (build-annotated103 src880 (list (quote let) (map list vars881 
val-exps882) body-exp883))))) (build-sequence105 (lambda (src884 exps885) (if 
(null? (cdr exps885)) (build-annotated103 src884 (car exps885)) 
(build-annotated103 src884 (cons (quote begin) exps885))))) (build-data104 
(lambda (src886 exp887) (if (and (self-evaluating? exp887) (not (vector? 
exp887))) (build-annotated103 src886 exp887) (build-annotated103 src886 (list 
(quote quote) exp887))))) (build-annotated103 (lambda (src888 exp889) (if (and 
src888 (not (annotation? exp889))) (make-annotation exp889 src888 #t) exp889))) 
(get-global-definition-hook102 (lambda (symbol890 module891) (let ((module892 
(if module891 (resolve-module (cdr module891)) (let ((mod893 (current-module))) 
(begin (if mod893 (warn "wha" symbol890)) mod893))))) (let ((v894 
(module-variable module892 symbol890))) (and v894 (object-property v894 (quote 
*sc-expander*))))))) (remove-global-definition-hook101 (lambda (symbol895) (let 
((module896 (current-module))) (let ((v897 (module-local-variable module896 
symbol895))) (if v897 (let ((p898 (assq (quote *sc-expander*) 
(object-properties v897)))) (set-object-properties! v897 (delq p898 
(object-properties v897))))))))) (put-global-definition-hook100 (lambda 
(symbol899 binding900) (let ((module901 (current-module))) (let ((v902 (or 
(module-variable module901 symbol899) (let ((v903 (make-variable (gensym)))) 
(begin (module-add! module901 symbol899 v903) v903))))) (begin (if (not 
(variable-bound? v902)) (variable-set! v902 (gensym))) (set-object-property! 
v902 (quote *sc-expander*) binding900)))))) (error-hook99 (lambda (who904 
why905 what906) (error who904 "~a ~s" why905 what906))) (local-eval-hook98 
(lambda (x907 mod908) (primitive-eval (list noexpand92 x907)))) 
(top-level-eval-hook97 (lambda (x909 mod910) (primitive-eval (list noexpand92 
x909)))) (fx<96 <) (fx=95 =) (fx-94 -) (fx+93 +) (noexpand92 "noexpand")) 
(begin (global-extend124 (quote local-syntax) (quote letrec-syntax) #t) 
(global-extend124 (quote local-syntax) (quote let-syntax) #f) (global-extend124 
(quote core) (quote fluid-let-syntax) (lambda (e911 r912 w913 s914 mod915) 
((lambda (tmp916) ((lambda (tmp917) (if (if tmp917 (apply (lambda (_918 var919 
val920 e1921 e2922) (valid-bound-ids?151 var919)) tmp917) #f) (apply (lambda 
(_924 var925 val926 e1927 e2928) (let ((names929 (map (lambda (x930) 
(id-var-name148 x930 w913)) var925))) (begin (for-each (lambda (id932 n933) 
(let ((t934 (binding-type118 (lookup123 n933 r912 mod915)))) (if (memv t934 
(quote (displaced-lexical))) (syntax-error (source-wrap155 id932 w913 s914 
mod915) "identifier out of context")))) var925 names929) (chi-body166 (cons 
e1927 e2928) (source-wrap155 e911 w913 s914 mod915) (extend-env120 names929 
(let ((trans-r937 (macros-only-env122 r912))) (map (lambda (x938) (cons (quote 
macro) (eval-local-transformer169 (chi162 x938 trans-r937 w913 mod915) 
mod915))) val926)) r912) w913 mod915)))) tmp917) ((lambda (_940) (syntax-error 
(source-wrap155 e911 w913 s914 mod915))) tmp916))) (syntax-dispatch tmp916 
(quote (any #(each (any any)) any . each-any))))) e911))) (global-extend124 
(quote core) (quote quote) (lambda (e941 r942 w943 s944 mod945) ((lambda 
(tmp946) ((lambda (tmp947) (if tmp947 (apply (lambda (_948 e949) (build-data104 
s944 (strip173 e949 w943))) tmp947) ((lambda (_950) (syntax-error 
(source-wrap155 e941 w943 s944 mod945))) tmp946))) (syntax-dispatch tmp946 
(quote (any any))))) e941))) (global-extend124 (quote core) (quote syntax) 
(letrec ((regen958 (lambda (x959) (let ((t960 (car x959))) (if (memv t960 
(quote (ref))) (build-annotated103 #f (cadr x959)) (if (memv t960 (quote 
(primitive))) (build-annotated103 #f (cadr x959)) (if (memv t960 (quote 
(quote))) (build-data104 #f (cadr x959)) (if (memv t960 (quote (lambda))) 
(build-annotated103 #f (list (quote lambda) (cadr x959) (regen958 (caddr 
x959)))) (if (memv t960 (quote (map))) (let ((ls961 (map regen958 (cdr x959)))) 
(build-annotated103 #f (cons (if (fx=95 (length ls961) 2) (build-annotated103 
#f (quote map)) (build-annotated103 #f (quote map))) ls961))) 
(build-annotated103 #f (cons (build-annotated103 #f (car x959)) (map regen958 
(cdr x959)))))))))))) (gen-vector957 (lambda (x962) (cond ((eq? (car x962) 
(quote list)) (cons (quote vector) (cdr x962))) ((eq? (car x962) (quote quote)) 
(list (quote quote) (list->vector (cadr x962)))) (else (list (quote 
list->vector) x962))))) (gen-append956 (lambda (x963 y964) (if (equal? y964 
(quote (quote ()))) x963 (list (quote append) x963 y964)))) (gen-cons955 
(lambda (x965 y966) (let ((t967 (car y966))) (if (memv t967 (quote (quote))) 
(if (eq? (car x965) (quote quote)) (list (quote quote) (cons (cadr x965) (cadr 
y966))) (if (eq? (cadr y966) (quote ())) (list (quote list) x965) (list (quote 
cons) x965 y966))) (if (memv t967 (quote (list))) (cons (quote list) (cons x965 
(cdr y966))) (list (quote cons) x965 y966)))))) (gen-map954 (lambda (e968 
map-env969) (let ((formals970 (map cdr map-env969)) (actuals971 (map (lambda 
(x972) (list (quote ref) (car x972))) map-env969))) (cond ((eq? (car e968) 
(quote ref)) (car actuals971)) ((andmap (lambda (x973) (and (eq? (car x973) 
(quote ref)) (memq (cadr x973) formals970))) (cdr e968)) (cons (quote map) 
(cons (list (quote primitive) (car e968)) (map (let ((r974 (map cons formals970 
actuals971))) (lambda (x975) (cdr (assq (cadr x975) r974)))) (cdr e968))))) 
(else (cons (quote map) (cons (list (quote lambda) formals970 e968) 
actuals971))))))) (gen-mappend953 (lambda (e976 map-env977) (list (quote apply) 
(quote (primitive append)) (gen-map954 e976 map-env977)))) (gen-ref952 (lambda 
(src978 var979 level980 maps981) (if (fx=95 level980 0) (values var979 maps981) 
(if (null? maps981) (syntax-error src978 "missing ellipsis in syntax form") 
(call-with-values (lambda () (gen-ref952 src978 var979 (fx-94 level980 1) (cdr 
maps981))) (lambda (outer-var982 outer-maps983) (let ((b984 (assq outer-var982 
(car maps981)))) (if b984 (values (cdr b984) maps981) (let ((inner-var985 
(gen-var174 (quote tmp)))) (values inner-var985 (cons (cons (cons outer-var982 
inner-var985) (car maps981)) outer-maps983))))))))))) (gen-syntax951 (lambda 
(src986 e987 r988 maps989 ellipsis?990 mod991) (if (id?126 e987) (let 
((label992 (id-var-name148 e987 (quote (()))))) (let ((b993 (lookup123 label992 
r988 mod991))) (if (eq? (binding-type118 b993) (quote syntax)) 
(call-with-values (lambda () (let ((var.lev994 (binding-value119 b993))) 
(gen-ref952 src986 (car var.lev994) (cdr var.lev994) maps989))) (lambda (var995 
maps996) (values (list (quote ref) var995) maps996))) (if (ellipsis?990 e987) 
(syntax-error src986 "misplaced ellipsis in syntax form") (values (list (quote 
quote) e987) maps989))))) ((lambda (tmp997) ((lambda (tmp998) (if (if tmp998 
(apply (lambda (dots999 e1000) (ellipsis?990 dots999)) tmp998) #f) (apply 
(lambda (dots1001 e1002) (gen-syntax951 src986 e1002 r988 maps989 (lambda 
(x1003) #f) mod991)) tmp998) ((lambda (tmp1004) (if (if tmp1004 (apply (lambda 
(x1005 dots1006 y1007) (ellipsis?990 dots1006)) tmp1004) #f) (apply (lambda 
(x1008 dots1009 y1010) (let f1011 ((y1012 y1010) (k1013 (lambda (maps1014) 
(call-with-values (lambda () (gen-syntax951 src986 x1008 r988 (cons (quote ()) 
maps1014) ellipsis?990 mod991)) (lambda (x1015 maps1016) (if (null? (car 
maps1016)) (syntax-error src986 "extra ellipsis in syntax form") (values 
(gen-map954 x1015 (car maps1016)) (cdr maps1016)))))))) ((lambda (tmp1017) 
((lambda (tmp1018) (if (if tmp1018 (apply (lambda (dots1019 y1020) 
(ellipsis?990 dots1019)) tmp1018) #f) (apply (lambda (dots1021 y1022) (f1011 
y1022 (lambda (maps1023) (call-with-values (lambda () (k1013 (cons (quote ()) 
maps1023))) (lambda (x1024 maps1025) (if (null? (car maps1025)) (syntax-error 
src986 "extra ellipsis in syntax form") (values (gen-mappend953 x1024 (car 
maps1025)) (cdr maps1025)))))))) tmp1018) ((lambda (_1026) (call-with-values 
(lambda () (gen-syntax951 src986 y1012 r988 maps989 ellipsis?990 mod991)) 
(lambda (y1027 maps1028) (call-with-values (lambda () (k1013 maps1028)) (lambda 
(x1029 maps1030) (values (gen-append956 x1029 y1027) maps1030)))))) tmp1017))) 
(syntax-dispatch tmp1017 (quote (any . any))))) y1012))) tmp1004) ((lambda 
(tmp1031) (if tmp1031 (apply (lambda (x1032 y1033) (call-with-values (lambda () 
(gen-syntax951 src986 x1032 r988 maps989 ellipsis?990 mod991)) (lambda (x1034 
maps1035) (call-with-values (lambda () (gen-syntax951 src986 y1033 r988 
maps1035 ellipsis?990 mod991)) (lambda (y1036 maps1037) (values (gen-cons955 
x1034 y1036) maps1037)))))) tmp1031) ((lambda (tmp1038) (if tmp1038 (apply 
(lambda (e11039 e21040) (call-with-values (lambda () (gen-syntax951 src986 
(cons e11039 e21040) r988 maps989 ellipsis?990 mod991)) (lambda (e1042 
maps1043) (values (gen-vector957 e1042) maps1043)))) tmp1038) ((lambda (_1044) 
(values (list (quote quote) e987) maps989)) tmp997))) (syntax-dispatch tmp997 
(quote #(vector (any . each-any))))))) (syntax-dispatch tmp997 (quote (any . 
any)))))) (syntax-dispatch tmp997 (quote (any any . any)))))) (syntax-dispatch 
tmp997 (quote (any any))))) e987))))) (lambda (e1045 r1046 w1047 s1048 mod1049) 
(let ((e1050 (source-wrap155 e1045 w1047 s1048 mod1049))) ((lambda (tmp1051) 
((lambda (tmp1052) (if tmp1052 (apply (lambda (_1053 x1054) (call-with-values 
(lambda () (gen-syntax951 e1050 x1054 r1046 (quote ()) ellipsis?171 mod1049)) 
(lambda (e1055 maps1056) (regen958 e1055)))) tmp1052) ((lambda (_1057) 
(syntax-error e1050)) tmp1051))) (syntax-dispatch tmp1051 (quote (any any))))) 
e1050))))) (global-extend124 (quote core) (quote lambda) (lambda (e1058 r1059 
w1060 s1061 mod1062) ((lambda (tmp1063) ((lambda (tmp1064) (if tmp1064 (apply 
(lambda (_1065 c1066) (chi-lambda-clause167 (source-wrap155 e1058 w1060 s1061 
mod1062) #f c1066 r1059 w1060 mod1062 (lambda (vars1067 docstring1068 body1069) 
(build-annotated103 s1061 (cons (quote lambda) (cons vars1067 (append (if 
docstring1068 (list docstring1068) (quote ())) (list body1069)))))))) tmp1064) 
(syntax-error tmp1063))) (syntax-dispatch tmp1063 (quote (any . any))))) 
e1058))) (global-extend124 (quote core) (quote let) (letrec ((chi-let1070 
(lambda (e1071 r1072 w1073 s1074 mod1075 constructor1076 ids1077 vals1078 
exps1079) (if (not (valid-bound-ids?151 ids1077)) (syntax-error e1071 
"duplicate bound variable in") (let ((labels1080 (gen-labels132 ids1077)) 
(new-vars1081 (map gen-var174 ids1077))) (let ((nw1082 (make-binding-wrap143 
ids1077 labels1080 w1073)) (nr1083 (extend-var-env121 labels1080 new-vars1081 
r1072))) (constructor1076 s1074 new-vars1081 (map (lambda (x1084) (chi162 x1084 
r1072 w1073 mod1075)) vals1078) (chi-body166 exps1079 (source-wrap155 e1071 
nw1082 s1074 mod1075) nr1083 nw1082 mod1075)))))))) (lambda (e1085 r1086 w1087 
s1088 mod1089) ((lambda (tmp1090) ((lambda (tmp1091) (if tmp1091 (apply (lambda 
(_1092 id1093 val1094 e11095 e21096) (chi-let1070 e1085 r1086 w1087 s1088 
mod1089 build-let106 id1093 val1094 (cons e11095 e21096))) tmp1091) ((lambda 
(tmp1100) (if (if tmp1100 (apply (lambda (_1101 f1102 id1103 val1104 e11105 
e21106) (id?126 f1102)) tmp1100) #f) (apply (lambda (_1107 f1108 id1109 val1110 
e11111 e21112) (chi-let1070 e1085 r1086 w1087 s1088 mod1089 build-named-let107 
(cons f1108 id1109) val1110 (cons e11111 e21112))) tmp1100) ((lambda (_1116) 
(syntax-error (source-wrap155 e1085 w1087 s1088 mod1089))) tmp1090))) 
(syntax-dispatch tmp1090 (quote (any any #(each (any any)) any . each-any)))))) 
(syntax-dispatch tmp1090 (quote (any #(each (any any)) any . each-any))))) 
e1085)))) (global-extend124 (quote core) (quote letrec) (lambda (e1117 r1118 
w1119 s1120 mod1121) ((lambda (tmp1122) ((lambda (tmp1123) (if tmp1123 (apply 
(lambda (_1124 id1125 val1126 e11127 e21128) (let ((ids1129 id1125)) (if (not 
(valid-bound-ids?151 ids1129)) (syntax-error e1117 "duplicate bound variable 
in") (let ((labels1131 (gen-labels132 ids1129)) (new-vars1132 (map gen-var174 
ids1129))) (let ((w1133 (make-binding-wrap143 ids1129 labels1131 w1119)) (r1134 
(extend-var-env121 labels1131 new-vars1132 r1118))) (build-letrec108 s1120 
new-vars1132 (map (lambda (x1135) (chi162 x1135 r1134 w1133 mod1121)) val1126) 
(chi-body166 (cons e11127 e21128) (source-wrap155 e1117 w1133 s1120 mod1121) 
r1134 w1133 mod1121))))))) tmp1123) ((lambda (_1138) (syntax-error 
(source-wrap155 e1117 w1119 s1120 mod1121))) tmp1122))) (syntax-dispatch 
tmp1122 (quote (any #(each (any any)) any . each-any))))) e1117))) 
(global-extend124 (quote core) (quote set!) (lambda (e1139 r1140 w1141 s1142 
mod1143) ((lambda (tmp1144) ((lambda (tmp1145) (if (if tmp1145 (apply (lambda 
(_1146 id1147 val1148) (id?126 id1147)) tmp1145) #f) (apply (lambda (_1149 
id1150 val1151) (let ((val1152 (chi162 val1151 r1140 w1141 mod1143)) (n1153 
(id-var-name148 id1150 w1141))) (let ((b1154 (lookup123 n1153 r1140 mod1143))) 
(let ((t1155 (binding-type118 b1154))) (if (memv t1155 (quote (lexical))) 
(build-annotated103 s1142 (list (quote set!) (binding-value119 b1154) val1152)) 
(if (memv t1155 (quote (global))) (build-annotated103 s1142 (list (quote set!) 
(if mod1143 (make-module-ref (cdr mod1143) n1153 (car mod1143)) 
(make-module-ref mod1143 n1153 (quote bare))) val1152)) (if (memv t1155 (quote 
(displaced-lexical))) (syntax-error (wrap154 id1150 w1141 mod1143) "identifier 
out of context") (syntax-error (source-wrap155 e1139 w1141 s1142 
mod1143))))))))) tmp1145) ((lambda (tmp1156) (if tmp1156 (apply (lambda (_1157 
head1158 tail1159 val1160) (call-with-values (lambda () (syntax-type160 
head1158 r1140 (quote (())) #f #f mod1143)) (lambda (type1161 value1162 ee1163 
ww1164 ss1165 modmod1166) (let ((t1167 type1161)) (if (memv t1167 (quote 
(module-ref))) (let ((val1168 (chi162 val1160 r1140 w1141 mod1143))) 
(call-with-values (lambda () (value1162 (cons head1158 tail1159))) (lambda 
(id1170 mod1171) (build-annotated103 s1142 (list (quote set!) (if mod1171 
(make-module-ref (cdr mod1171) id1170 (car mod1171)) (make-module-ref mod1171 
id1170 (quote bare))) val1168))))) (build-annotated103 s1142 (cons (chi162 
(list (quote #(syntax-object setter ((top) #(ribcage () () ()) #(ribcage #(t) 
#(("m" top)) #("i")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(type 
value ee ww ss modmod) #((top) (top) (top) (top) (top) (top)) #("i" "i" "i" "i" 
"i" "i")) #(ribcage #(_ head tail val) #((top) (top) (top) (top)) #("i" "i" "i" 
"i")) #(ribcage () () ()) #(ribcage #(e r w s mod) #((top) (top) (top) (top) 
(top)) #("i" "i" "i" "i" "i")) #(ribcage (lambda-var-list gen-var strip 
strip-annotation ellipsis? chi-void eval-local-transformer chi-local-syntax 
chi-lambda-clause chi-body chi-macro chi-application chi-expr chi chi-top 
syntax-type chi-when-list chi-install-global chi-top-sequence chi-sequence 
source-wrap wrap bound-id-member? distinct-bound-ids? valid-bound-ids? 
bound-id=? free-id=? id-var-name same-marks? join-marks join-wraps smart-append 
make-binding-wrap extend-ribcage! make-empty-ribcage new-mark anti-mark 
the-anti-mark top-marked? top-wrap empty-wrap set-ribcage-labels! 
set-ribcage-marks! set-ribcage-symnames! ribcage-labels ribcage-marks 
ribcage-symnames ribcage? make-ribcage gen-labels gen-label make-rename 
rename-marks rename-new rename-old subst-rename? wrap-subst wrap-marks 
make-wrap id-sym-name&marks id-sym-name id? nonsymbol-id? global-extend lookup 
macros-only-env extend-var-env extend-env null-env binding-value binding-type 
make-binding arg-check source-annotation no-source unannotate 
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 build-global-definition 
build-global-assignment build-global-reference build-lexical-assignment 
build-lexical-reference build-conditional build-application build-annotated 
get-global-definition-hook remove-global-definition-hook 
put-global-definition-hook gensym-hook error-hook local-eval-hook 
top-level-eval-hook fx< fx= fx- fx+ noexpand) ((top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top)) ("i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i")) #(ribcage 
(define-structure) ((top)) ("i"))) (hygiene guile))) head1158) r1140 w1141 
mod1143) (map (lambda (e1172) (chi162 e1172 r1140 w1141 mod1143)) (append 
tail1159 (list val1160)))))))))) tmp1156) ((lambda (_1174) (syntax-error 
(source-wrap155 e1139 w1141 s1142 mod1143))) tmp1144))) (syntax-dispatch 
tmp1144 (quote (any (any . each-any) any)))))) (syntax-dispatch tmp1144 (quote 
(any any any))))) e1139))) (global-extend124 (quote module-ref) (quote @) 
(lambda (e1175) ((lambda (tmp1176) ((lambda (tmp1177) (if (if tmp1177 (apply 
(lambda (_1178 mod1179 id1180) (and (andmap id?126 mod1179) (id?126 id1180))) 
tmp1177) #f) (apply (lambda (_1182 mod1183 id1184) (values 
(syntax-object->datum id1184) (syntax-object->datum (cons (quote 
#(syntax-object public ((top) #(ribcage #(_ mod id) #((top) (top) (top)) #("i" 
"i" "i")) #(ribcage () () ()) #(ribcage #(e) #((top)) #("i")) #(ribcage 
(lambda-var-list gen-var strip strip-annotation ellipsis? chi-void 
eval-local-transformer chi-local-syntax chi-lambda-clause chi-body chi-macro 
chi-application chi-expr chi chi-top syntax-type chi-when-list 
chi-install-global chi-top-sequence chi-sequence source-wrap wrap 
bound-id-member? distinct-bound-ids? valid-bound-ids? bound-id=? free-id=? 
id-var-name same-marks? join-marks join-wraps smart-append make-binding-wrap 
extend-ribcage! make-empty-ribcage new-mark anti-mark the-anti-mark top-marked? 
top-wrap empty-wrap set-ribcage-labels! set-ribcage-marks! 
set-ribcage-symnames! ribcage-labels ribcage-marks ribcage-symnames ribcage? 
make-ribcage gen-labels gen-label make-rename rename-marks rename-new 
rename-old subst-rename? wrap-subst wrap-marks make-wrap id-sym-name&marks 
id-sym-name id? nonsymbol-id? global-extend lookup macros-only-env 
extend-var-env extend-env null-env binding-value binding-type make-binding 
arg-check source-annotation no-source unannotate 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 build-global-definition 
build-global-assignment build-global-reference build-lexical-assignment 
build-lexical-reference build-conditional build-application build-annotated 
get-global-definition-hook remove-global-definition-hook 
put-global-definition-hook gensym-hook error-hook local-eval-hook 
top-level-eval-hook fx< fx= fx- fx+ noexpand) ((top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top)) ("i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i")) #(ribcage 
(define-structure) ((top)) ("i"))) (hygiene guile))) mod1183)))) tmp1177) 
(syntax-error tmp1176))) (syntax-dispatch tmp1176 (quote (any each-any any))))) 
e1175))) (global-extend124 (quote module-ref) (quote @@) (lambda (e1186) 
((lambda (tmp1187) ((lambda (tmp1188) (if (if tmp1188 (apply (lambda (_1189 
mod1190 id1191) (and (andmap id?126 mod1190) (id?126 id1191))) tmp1188) #f) 
(apply (lambda (_1193 mod1194 id1195) (values (syntax-object->datum id1195) 
(syntax-object->datum (cons (quote #(syntax-object private ((top) #(ribcage #(_ 
mod id) #((top) (top) (top)) #("i" "i" "i")) #(ribcage () () ()) #(ribcage #(e) 
#((top)) #("i")) #(ribcage (lambda-var-list gen-var strip strip-annotation 
ellipsis? chi-void eval-local-transformer chi-local-syntax chi-lambda-clause 
chi-body chi-macro chi-application chi-expr chi chi-top syntax-type 
chi-when-list chi-install-global chi-top-sequence chi-sequence source-wrap wrap 
bound-id-member? distinct-bound-ids? valid-bound-ids? bound-id=? free-id=? 
id-var-name same-marks? join-marks join-wraps smart-append make-binding-wrap 
extend-ribcage! make-empty-ribcage new-mark anti-mark the-anti-mark top-marked? 
top-wrap empty-wrap set-ribcage-labels! set-ribcage-marks! 
set-ribcage-symnames! ribcage-labels ribcage-marks ribcage-symnames ribcage? 
make-ribcage gen-labels gen-label make-rename rename-marks rename-new 
rename-old subst-rename? wrap-subst wrap-marks make-wrap id-sym-name&marks 
id-sym-name id? nonsymbol-id? global-extend lookup macros-only-env 
extend-var-env extend-env null-env binding-value binding-type make-binding 
arg-check source-annotation no-source unannotate 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 build-global-definition 
build-global-assignment build-global-reference build-lexical-assignment 
build-lexical-reference build-conditional build-application build-annotated 
get-global-definition-hook remove-global-definition-hook 
put-global-definition-hook gensym-hook error-hook local-eval-hook 
top-level-eval-hook fx< fx= fx- fx+ noexpand) ((top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top)) ("i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i")) #(ribcage 
(define-structure) ((top)) ("i"))) (hygiene guile))) mod1194)))) tmp1188) 
(syntax-error tmp1187))) (syntax-dispatch tmp1187 (quote (any each-any any))))) 
e1186))) (global-extend124 (quote begin) (quote begin) (quote ())) 
(global-extend124 (quote define) (quote define) (quote ())) (global-extend124 
(quote define-syntax) (quote define-syntax) (quote ())) (global-extend124 
(quote eval-when) (quote eval-when) (quote ())) (global-extend124 (quote core) 
(quote syntax-case) (letrec ((gen-syntax-case1200 (lambda (x1201 keys1202 
clauses1203 r1204 mod1205) (if (null? clauses1203) (build-annotated103 #f (list 
(build-annotated103 #f (quote syntax-error)) x1201)) ((lambda (tmp1206) 
((lambda (tmp1207) (if tmp1207 (apply (lambda (pat1208 exp1209) (if (and 
(id?126 pat1208) (andmap (lambda (x1210) (not (free-id=?149 pat1208 x1210))) 
(cons (quote #(syntax-object ... ((top) #(ribcage #(pat exp) #((top) (top)) 
#("i" "i")) #(ribcage () () ()) #(ribcage #(x keys clauses r mod) #((top) (top) 
(top) (top) (top)) #("i" "i" "i" "i" "i")) #(ribcage (gen-syntax-case 
gen-clause build-dispatch-call convert-pattern) ((top) (top) (top) (top)) ("i" 
"i" "i" "i")) #(ribcage (lambda-var-list gen-var strip strip-annotation 
ellipsis? chi-void eval-local-transformer chi-local-syntax chi-lambda-clause 
chi-body chi-macro chi-application chi-expr chi chi-top syntax-type 
chi-when-list chi-install-global chi-top-sequence chi-sequence source-wrap wrap 
bound-id-member? distinct-bound-ids? valid-bound-ids? bound-id=? free-id=? 
id-var-name same-marks? join-marks join-wraps smart-append make-binding-wrap 
extend-ribcage! make-empty-ribcage new-mark anti-mark the-anti-mark top-marked? 
top-wrap empty-wrap set-ribcage-labels! set-ribcage-marks! 
set-ribcage-symnames! ribcage-labels ribcage-marks ribcage-symnames ribcage? 
make-ribcage gen-labels gen-label make-rename rename-marks rename-new 
rename-old subst-rename? wrap-subst wrap-marks make-wrap id-sym-name&marks 
id-sym-name id? nonsymbol-id? global-extend lookup macros-only-env 
extend-var-env extend-env null-env binding-value binding-type make-binding 
arg-check source-annotation no-source unannotate 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 build-global-definition 
build-global-assignment build-global-reference build-lexical-assignment 
build-lexical-reference build-conditional build-application build-annotated 
get-global-definition-hook remove-global-definition-hook 
put-global-definition-hook gensym-hook error-hook local-eval-hook 
top-level-eval-hook fx< fx= fx- fx+ noexpand) ((top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) 
(top) (top) (top)) ("i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" 
"i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i")) #(ribcage 
(define-structure) ((top)) ("i"))) (hygiene guile))) keys1202))) (let 
((labels1211 (list (gen-label131))) (var1212 (gen-var174 pat1208))) 
(build-annotated103 #f (list (build-annotated103 #f (list (quote lambda) (list 
var1212) (chi162 exp1209 (extend-env120 labels1211 (list (cons (quote syntax) 
(cons var1212 0))) r1204) (make-binding-wrap143 (list pat1208) labels1211 
(quote (()))) mod1205))) x1201))) (gen-clause1199 x1201 keys1202 (cdr 
clauses1203) r1204 pat1208 #t exp1209 mod1205))) tmp1207) ((lambda (tmp1213) 
(if tmp1213 (apply (lambda (pat1214 fender1215 exp1216) (gen-clause1199 x1201 
keys1202 (cdr clauses1203) r1204 pat1214 fender1215 exp1216 mod1205)) tmp1213) 
((lambda (_1217) (syntax-error (car clauses1203) "invalid syntax-case clause")) 
tmp1206))) (syntax-dispatch tmp1206 (quote (any any any)))))) (syntax-dispatch 
tmp1206 (quote (any any))))) (car clauses1203))))) (gen-clause1199 (lambda 
(x1218 keys1219 clauses1220 r1221 pat1222 fender1223 exp1224 mod1225) 
(call-with-values (lambda () (convert-pattern1197 pat1222 keys1219)) (lambda 
(p1226 pvars1227) (cond ((not (distinct-bound-ids?152 (map car pvars1227))) 
(syntax-error pat1222 "duplicate pattern variable in syntax-case pattern")) 
((not (andmap (lambda (x1228) (not (ellipsis?171 (car x1228)))) pvars1227)) 
(syntax-error pat1222 "misplaced ellipsis in syntax-case pattern")) (else (let 
((y1229 (gen-var174 (quote tmp)))) (build-annotated103 #f (list 
(build-annotated103 #f (list (quote lambda) (list y1229) (let ((y1230 
(build-annotated103 #f y1229))) (build-annotated103 #f (list (quote if) 
((lambda (tmp1231) ((lambda (tmp1232) (if tmp1232 (apply (lambda () y1230) 
tmp1232) ((lambda (_1233) (build-annotated103 #f (list (quote if) y1230 
(build-dispatch-call1198 pvars1227 fender1223 y1230 r1221 mod1225) 
(build-data104 #f #f)))) tmp1231))) (syntax-dispatch tmp1231 (quote #(atom 
#t))))) fender1223) (build-dispatch-call1198 pvars1227 exp1224 y1230 r1221 
mod1225) (gen-syntax-case1200 x1218 keys1219 clauses1220 r1221 mod1225)))))) 
(if (eq? p1226 (quote any)) (build-annotated103 #f (list (build-annotated103 #f 
(quote list)) x1218)) (build-annotated103 #f (list (build-annotated103 #f 
(quote syntax-dispatch)) x1218 (build-data104 #f p1226))))))))))))) 
(build-dispatch-call1198 (lambda (pvars1234 exp1235 y1236 r1237 mod1238) (let 
((ids1239 (map car pvars1234)) (levels1240 (map cdr pvars1234))) (let 
((labels1241 (gen-labels132 ids1239)) (new-vars1242 (map gen-var174 ids1239))) 
(build-annotated103 #f (list (build-annotated103 #f (quote apply)) 
(build-annotated103 #f (list (quote lambda) new-vars1242 (chi162 exp1235 
(extend-env120 labels1241 (map (lambda (var1243 level1244) (cons (quote syntax) 
(cons var1243 level1244))) new-vars1242 (map cdr pvars1234)) r1237) 
(make-binding-wrap143 ids1239 labels1241 (quote (()))) mod1238))) y1236)))))) 
(convert-pattern1197 (lambda (pattern1245 keys1246) (let cvt1247 ((p1248 
pattern1245) (n1249 0) (ids1250 (quote ()))) (if (id?126 p1248) (if 
(bound-id-member?153 p1248 keys1246) (values (vector (quote free-id) p1248) 
ids1250) (values (quote any) (cons (cons p1248 n1249) ids1250))) ((lambda 
(tmp1251) ((lambda (tmp1252) (if (if tmp1252 (apply (lambda (x1253 dots1254) 
(ellipsis?171 dots1254)) tmp1252) #f) (apply (lambda (x1255 dots1256) 
(call-with-values (lambda () (cvt1247 x1255 (fx+93 n1249 1) ids1250)) (lambda 
(p1257 ids1258) (values (if (eq? p1257 (quote any)) (quote each-any) (vector 
(quote each) p1257)) ids1258)))) tmp1252) ((lambda (tmp1259) (if tmp1259 (apply 
(lambda (x1260 y1261) (call-with-values (lambda () (cvt1247 y1261 n1249 
ids1250)) (lambda (y1262 ids1263) (call-with-values (lambda () (cvt1247 x1260 
n1249 ids1263)) (lambda (x1264 ids1265) (values (cons x1264 y1262) 
ids1265)))))) tmp1259) ((lambda (tmp1266) (if tmp1266 (apply (lambda () (values 
(quote ()) ids1250)) tmp1266) ((lambda (tmp1267) (if tmp1267 (apply (lambda 
(x1268) (call-with-values (lambda () (cvt1247 x1268 n1249 ids1250)) (lambda 
(p1270 ids1271) (values (vector (quote vector) p1270) ids1271)))) tmp1267) 
((lambda (x1272) (values (vector (quote atom) (strip173 p1248 (quote (())))) 
ids1250)) tmp1251))) (syntax-dispatch tmp1251 (quote #(vector each-any)))))) 
(syntax-dispatch tmp1251 (quote ()))))) (syntax-dispatch tmp1251 (quote (any . 
any)))))) (syntax-dispatch tmp1251 (quote (any any))))) p1248)))))) (lambda 
(e1273 r1274 w1275 s1276 mod1277) (let ((e1278 (source-wrap155 e1273 w1275 
s1276 mod1277))) ((lambda (tmp1279) ((lambda (tmp1280) (if tmp1280 (apply 
(lambda (_1281 val1282 key1283 m1284) (if (andmap (lambda (x1285) (and (id?126 
x1285) (not (ellipsis?171 x1285)))) key1283) (let ((x1287 (gen-var174 (quote 
tmp)))) (build-annotated103 s1276 (list (build-annotated103 #f (list (quote 
lambda) (list x1287) (gen-syntax-case1200 (build-annotated103 #f x1287) key1283 
m1284 r1274 mod1277))) (chi162 val1282 r1274 (quote (())) mod1277)))) 
(syntax-error e1278 "invalid literals list in"))) tmp1280) (syntax-error 
tmp1279))) (syntax-dispatch tmp1279 (quote (any any each-any . each-any))))) 
e1278))))) (set! sc-expand (let ((m1290 (quote e)) (esew1291 (quote (eval)))) 
(lambda (x1292) (if (and (pair? x1292) (equal? (car x1292) noexpand92)) (cadr 
x1292) (chi-top161 x1292 (quote ()) (quote ((top))) m1290 esew1291 (cons (quote 
hygiene) (module-name (current-module)))))))) (set! sc-expand3 (let ((m1293 
(quote e)) (esew1294 (quote (eval)))) (lambda (x1296 . rest1295) (if (and 
(pair? x1296) (equal? (car x1296) noexpand92)) (cadr x1296) (chi-top161 x1296 
(quote ()) (quote ((top))) (if (null? rest1295) m1293 (car rest1295)) (if (or 
(null? rest1295) (null? (cdr rest1295))) esew1294 (cadr rest1295)) (cons (quote 
hygiene) (module-name (current-module)))))))) (set! identifier? (lambda (x1297) 
(nonsymbol-id?125 x1297))) (set! datum->syntax-object (lambda (id1298 
datum1299) (make-syntax-object109 datum1299 (syntax-object-wrap112 id1298) 
#f))) (set! syntax-object->datum (lambda (x1300) (strip173 x1300 (quote 
(()))))) (set! generate-temporaries (lambda (ls1301) (begin (let ((x1302 
ls1301)) (if (not (list? x1302)) (error-hook99 (quote generate-temporaries) 
"invalid argument" x1302))) (map (lambda (x1303) (wrap154 (gensym) (quote 
((top))) #f)) ls1301)))) (set! free-identifier=? (lambda (x1304 y1305) (begin 
(let ((x1306 x1304)) (if (not (nonsymbol-id?125 x1306)) (error-hook99 (quote 
free-identifier=?) "invalid argument" x1306))) (let ((x1307 y1305)) (if (not 
(nonsymbol-id?125 x1307)) (error-hook99 (quote free-identifier=?) "invalid 
argument" x1307))) (free-id=?149 x1304 y1305)))) (set! bound-identifier=? 
(lambda (x1308 y1309) (begin (let ((x1310 x1308)) (if (not (nonsymbol-id?125 
x1310)) (error-hook99 (quote bound-identifier=?) "invalid argument" x1310))) 
(let ((x1311 y1309)) (if (not (nonsymbol-id?125 x1311)) (error-hook99 (quote 
bound-identifier=?) "invalid argument" x1311))) (bound-id=?150 x1308 y1309)))) 
(set! syntax-error (lambda (object1313 . messages1312) (begin (for-each (lambda 
(x1314) (let ((x1315 x1314)) (if (not (string? x1315)) (error-hook99 (quote 
syntax-error) "invalid argument" x1315)))) messages1312) (let ((message1316 (if 
(null? messages1312) "invalid syntax" (apply string-append messages1312)))) 
(error-hook99 #f message1316 (strip173 object1313 (quote (())))))))) (set! 
install-global-transformer (lambda (sym1317 v1318) (begin (let ((x1319 
sym1317)) (if (not (symbol? x1319)) (error-hook99 (quote define-syntax) 
"invalid argument" x1319))) (let ((x1320 v1318)) (if (not (procedure? x1320)) 
(error-hook99 (quote define-syntax) "invalid argument" x1320))) 
(global-extend124 (quote macro) sym1317 v1318)))) (letrec ((match1325 (lambda 
(e1326 p1327 w1328 r1329 mod1330) (cond ((not r1329) #f) ((eq? p1327 (quote 
any)) (cons (wrap154 e1326 w1328 mod1330) r1329)) ((syntax-object?110 e1326) 
(match*1324 (let ((e1331 (syntax-object-expression111 e1326))) (if (annotation? 
e1331) (annotation-expression e1331) e1331)) p1327 (join-wraps145 w1328 
(syntax-object-wrap112 e1326)) r1329 (syntax-object-module113 e1326))) (else 
(match*1324 (let ((e1332 e1326)) (if (annotation? e1332) (annotation-expression 
e1332) e1332)) p1327 w1328 r1329 mod1330))))) (match*1324 (lambda (e1333 p1334 
w1335 r1336 mod1337) (cond ((null? p1334) (and (null? e1333) r1336)) ((pair? 
p1334) (and (pair? e1333) (match1325 (car e1333) (car p1334) w1335 (match1325 
(cdr e1333) (cdr p1334) w1335 r1336 mod1337) mod1337))) ((eq? p1334 (quote 
each-any)) (let ((l1338 (match-each-any1322 e1333 w1335 mod1337))) (and l1338 
(cons l1338 r1336)))) (else (let ((t1339 (vector-ref p1334 0))) (if (memv t1339 
(quote (each))) (if (null? e1333) (match-empty1323 (vector-ref p1334 1) r1336) 
(let ((l1340 (match-each1321 e1333 (vector-ref p1334 1) w1335 mod1337))) (and 
l1340 (let collect1341 ((l1342 l1340)) (if (null? (car l1342)) r1336 (cons (map 
car l1342) (collect1341 (map cdr l1342)))))))) (if (memv t1339 (quote 
(free-id))) (and (id?126 e1333) (free-id=?149 (wrap154 e1333 w1335 mod1337) 
(vector-ref p1334 1)) r1336) (if (memv t1339 (quote (atom))) (and (equal? 
(vector-ref p1334 1) (strip173 e1333 w1335)) r1336) (if (memv t1339 (quote 
(vector))) (and (vector? e1333) (match1325 (vector->list e1333) (vector-ref 
p1334 1) w1335 r1336 mod1337))))))))))) (match-empty1323 (lambda (p1343 r1344) 
(cond ((null? p1343) r1344) ((eq? p1343 (quote any)) (cons (quote ()) r1344)) 
((pair? p1343) (match-empty1323 (car p1343) (match-empty1323 (cdr p1343) 
r1344))) ((eq? p1343 (quote each-any)) (cons (quote ()) r1344)) (else (let 
((t1345 (vector-ref p1343 0))) (if (memv t1345 (quote (each))) (match-empty1323 
(vector-ref p1343 1) r1344) (if (memv t1345 (quote (free-id atom))) r1344 (if 
(memv t1345 (quote (vector))) (match-empty1323 (vector-ref p1343 1) 
r1344))))))))) (match-each-any1322 (lambda (e1346 w1347 mod1348) (cond 
((annotation? e1346) (match-each-any1322 (annotation-expression e1346) w1347 
mod1348)) ((pair? e1346) (let ((l1349 (match-each-any1322 (cdr e1346) w1347 
mod1348))) (and l1349 (cons (wrap154 (car e1346) w1347 mod1348) l1349)))) 
((null? e1346) (quote ())) ((syntax-object?110 e1346) (match-each-any1322 
(syntax-object-expression111 e1346) (join-wraps145 w1347 (syntax-object-wrap112 
e1346)) mod1348)) (else #f)))) (match-each1321 (lambda (e1350 p1351 w1352 
mod1353) (cond ((annotation? e1350) (match-each1321 (annotation-expression 
e1350) p1351 w1352 mod1353)) ((pair? e1350) (let ((first1354 (match1325 (car 
e1350) p1351 w1352 (quote ()) mod1353))) (and first1354 (let ((rest1355 
(match-each1321 (cdr e1350) p1351 w1352 mod1353))) (and rest1355 (cons 
first1354 rest1355)))))) ((null? e1350) (quote ())) ((syntax-object?110 e1350) 
(match-each1321 (syntax-object-expression111 e1350) p1351 (join-wraps145 w1352 
(syntax-object-wrap112 e1350)) (syntax-object-module113 e1350))) (else #f))))) 
(begin (set! syntax-dispatch (lambda (e1356 p1357) (cond ((eq? p1357 (quote 
any)) (list e1356)) ((syntax-object?110 e1356) (match*1324 (let ((e1358 
(syntax-object-expression111 e1356))) (if (annotation? e1358) 
(annotation-expression e1358) e1358)) p1357 (syntax-object-wrap112 e1356) 
(quote ()) (syntax-object-module113 e1356))) (else (match*1324 (let ((e1359 
e1356)) (if (annotation? e1359) (annotation-expression e1359) e1359)) p1357 
(quote (())) (quote ()) #f))))) (set! sc-chi chi162)))))
+(install-global-transformer (quote with-syntax) (lambda (x1360) ((lambda 
(tmp1361) ((lambda (tmp1362) (if tmp1362 (apply (lambda (_1363 e11364 e21365) 
(cons (quote #(syntax-object begin ((top) #(ribcage #(_ e1 e2) #((top) (top) 
(top)) #("i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) 
(hygiene guile))) (cons e11364 e21365))) tmp1362) ((lambda (tmp1367) (if 
tmp1367 (apply (lambda (_1368 out1369 in1370 e11371 e21372) (list (quote 
#(syntax-object syntax-case ((top) #(ribcage #(_ out in e1 e2) #((top) (top) 
(top) (top) (top)) #("i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) 
#((top)) #("i"))) (hygiene guile))) in1370 (quote ()) (list out1369 (cons 
(quote #(syntax-object begin ((top) #(ribcage #(_ out in e1 e2) #((top) (top) 
(top) (top) (top)) #("i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) 
#((top)) #("i"))) (hygiene guile))) (cons e11371 e21372))))) tmp1367) ((lambda 
(tmp1374) (if tmp1374 (apply (lambda (_1375 out1376 in1377 e11378 e21379) (list 
(quote #(syntax-object syntax-case ((top) #(ribcage #(_ out in e1 e2) #((top) 
(top) (top) (top) (top)) #("i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage 
#(x) #((top)) #("i"))) (hygiene guile))) (cons (quote #(syntax-object list 
((top) #(ribcage #(_ out in e1 e2) #((top) (top) (top) (top) (top)) #("i" "i" 
"i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene 
guile))) in1377) (quote ()) (list out1376 (cons (quote #(syntax-object begin 
((top) #(ribcage #(_ out in e1 e2) #((top) (top) (top) (top) (top)) #("i" "i" 
"i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene 
guile))) (cons e11378 e21379))))) tmp1374) (syntax-error tmp1361))) 
(syntax-dispatch tmp1361 (quote (any #(each (any any)) any . each-any)))))) 
(syntax-dispatch tmp1361 (quote (any ((any any)) any . each-any)))))) 
(syntax-dispatch tmp1361 (quote (any () any . each-any))))) x1360)))
+(install-global-transformer (quote syntax-rules) (lambda (x1383) ((lambda 
(tmp1384) ((lambda (tmp1385) (if tmp1385 (apply (lambda (_1386 k1387 
keyword1388 pattern1389 template1390) (list (quote #(syntax-object lambda 
((top) #(ribcage #(_ k keyword pattern template) #((top) (top) (top) (top) 
(top)) #("i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) 
#("i"))) (hygiene guile))) (quote (#(syntax-object x ((top) #(ribcage #(_ k 
keyword pattern template) #((top) (top) (top) (top) (top)) #("i" "i" "i" "i" 
"i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile)))) 
(cons (quote #(syntax-object syntax-case ((top) #(ribcage #(_ k keyword pattern 
template) #((top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i")) #(ribcage () 
() ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile))) (cons (quote 
#(syntax-object x ((top) #(ribcage #(_ k keyword pattern template) #((top) 
(top) (top) (top) (top)) #("i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage 
#(x) #((top)) #("i"))) (hygiene guile))) (cons k1387 (map (lambda (tmp1393 
tmp1392) (list (cons (quote #(syntax-object dummy ((top) #(ribcage #(_ k 
keyword pattern template) #((top) (top) (top) (top) (top)) #("i" "i" "i" "i" 
"i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile))) 
tmp1392) (list (quote #(syntax-object syntax ((top) #(ribcage #(_ k keyword 
pattern template) #((top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i")) 
#(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile))) 
tmp1393))) template1390 pattern1389)))))) tmp1385) (syntax-error tmp1384))) 
(syntax-dispatch tmp1384 (quote (any each-any . #(each ((any . any) any))))))) 
x1383)))
+(install-global-transformer (quote let*) (lambda (x1394) ((lambda (tmp1395) 
((lambda (tmp1396) (if (if tmp1396 (apply (lambda (let*1397 x1398 v1399 e11400 
e21401) (andmap identifier? x1398)) tmp1396) #f) (apply (lambda (let*1403 x1404 
v1405 e11406 e21407) (let f1408 ((bindings1409 (map list x1404 v1405))) (if 
(null? bindings1409) (cons (quote #(syntax-object let ((top) #(ribcage () () 
()) #(ribcage #(f bindings) #((top) (top)) #("i" "i")) #(ribcage #(let* x v e1 
e2) #((top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i")) #(ribcage () () 
()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile))) (cons (quote ()) (cons 
e11406 e21407))) ((lambda (tmp1413) ((lambda (tmp1414) (if tmp1414 (apply 
(lambda (body1415 binding1416) (list (quote #(syntax-object let ((top) 
#(ribcage #(body binding) #((top) (top)) #("i" "i")) #(ribcage () () ()) 
#(ribcage #(f bindings) #((top) (top)) #("i" "i")) #(ribcage #(let* x v e1 e2) 
#((top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i")) #(ribcage () () ()) 
#(ribcage #(x) #((top)) #("i"))) (hygiene guile))) (list binding1416) 
body1415)) tmp1414) (syntax-error tmp1413))) (syntax-dispatch tmp1413 (quote 
(any any))))) (list (f1408 (cdr bindings1409)) (car bindings1409)))))) tmp1396) 
(syntax-error tmp1395))) (syntax-dispatch tmp1395 (quote (any #(each (any any)) 
any . each-any))))) x1394)))
+(install-global-transformer (quote do) (lambda (orig-x1417) ((lambda (tmp1418) 
((lambda (tmp1419) (if tmp1419 (apply (lambda (_1420 var1421 init1422 step1423 
e01424 e11425 c1426) ((lambda (tmp1427) ((lambda (tmp1428) (if tmp1428 (apply 
(lambda (step1429) ((lambda (tmp1430) ((lambda (tmp1431) (if tmp1431 (apply 
(lambda () (list (quote #(syntax-object let ((top) #(ribcage #(step) #((top)) 
#("i")) #(ribcage #(_ var init step e0 e1 c) #((top) (top) (top) (top) (top) 
(top) (top)) #("i" "i" "i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage 
#(orig-x) #((top)) #("i"))) (hygiene guile))) (quote #(syntax-object doloop 
((top) #(ribcage #(step) #((top)) #("i")) #(ribcage #(_ var init step e0 e1 c) 
#((top) (top) (top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i" "i" "i")) 
#(ribcage () () ()) #(ribcage #(orig-x) #((top)) #("i"))) (hygiene guile))) 
(map list var1421 init1422) (list (quote #(syntax-object if ((top) #(ribcage 
#(step) #((top)) #("i")) #(ribcage #(_ var init step e0 e1 c) #((top) (top) 
(top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i" "i" "i")) #(ribcage () () 
()) #(ribcage #(orig-x) #((top)) #("i"))) (hygiene guile))) (list (quote 
#(syntax-object not ((top) #(ribcage #(step) #((top)) #("i")) #(ribcage #(_ var 
init step e0 e1 c) #((top) (top) (top) (top) (top) (top) (top)) #("i" "i" "i" 
"i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(orig-x) #((top)) #("i"))) 
(hygiene guile))) e01424) (cons (quote #(syntax-object begin ((top) #(ribcage 
#(step) #((top)) #("i")) #(ribcage #(_ var init step e0 e1 c) #((top) (top) 
(top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i" "i" "i")) #(ribcage () () 
()) #(ribcage #(orig-x) #((top)) #("i"))) (hygiene guile))) (append c1426 (list 
(cons (quote #(syntax-object doloop ((top) #(ribcage #(step) #((top)) #("i")) 
#(ribcage #(_ var init step e0 e1 c) #((top) (top) (top) (top) (top) (top) 
(top)) #("i" "i" "i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(orig-x) 
#((top)) #("i"))) (hygiene guile))) step1429))))))) tmp1431) ((lambda (tmp1436) 
(if tmp1436 (apply (lambda (e11437 e21438) (list (quote #(syntax-object let 
((top) #(ribcage #(e1 e2) #((top) (top)) #("i" "i")) #(ribcage #(step) #((top)) 
#("i")) #(ribcage #(_ var init step e0 e1 c) #((top) (top) (top) (top) (top) 
(top) (top)) #("i" "i" "i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage 
#(orig-x) #((top)) #("i"))) (hygiene guile))) (quote #(syntax-object doloop 
((top) #(ribcage #(e1 e2) #((top) (top)) #("i" "i")) #(ribcage #(step) #((top)) 
#("i")) #(ribcage #(_ var init step e0 e1 c) #((top) (top) (top) (top) (top) 
(top) (top)) #("i" "i" "i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage 
#(orig-x) #((top)) #("i"))) (hygiene guile))) (map list var1421 init1422) (list 
(quote #(syntax-object if ((top) #(ribcage #(e1 e2) #((top) (top)) #("i" "i")) 
#(ribcage #(step) #((top)) #("i")) #(ribcage #(_ var init step e0 e1 c) #((top) 
(top) (top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i" "i" "i")) #(ribcage 
() () ()) #(ribcage #(orig-x) #((top)) #("i"))) (hygiene guile))) e01424 (cons 
(quote #(syntax-object begin ((top) #(ribcage #(e1 e2) #((top) (top)) #("i" 
"i")) #(ribcage #(step) #((top)) #("i")) #(ribcage #(_ var init step e0 e1 c) 
#((top) (top) (top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i" "i" "i")) 
#(ribcage () () ()) #(ribcage #(orig-x) #((top)) #("i"))) (hygiene guile))) 
(cons e11437 e21438)) (cons (quote #(syntax-object begin ((top) #(ribcage #(e1 
e2) #((top) (top)) #("i" "i")) #(ribcage #(step) #((top)) #("i")) #(ribcage #(_ 
var init step e0 e1 c) #((top) (top) (top) (top) (top) (top) (top)) #("i" "i" 
"i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(orig-x) #((top)) #("i"))) 
(hygiene guile))) (append c1426 (list (cons (quote #(syntax-object doloop 
((top) #(ribcage #(e1 e2) #((top) (top)) #("i" "i")) #(ribcage #(step) #((top)) 
#("i")) #(ribcage #(_ var init step e0 e1 c) #((top) (top) (top) (top) (top) 
(top) (top)) #("i" "i" "i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage 
#(orig-x) #((top)) #("i"))) (hygiene guile))) step1429))))))) tmp1436) 
(syntax-error tmp1430))) (syntax-dispatch tmp1430 (quote (any . each-any)))))) 
(syntax-dispatch tmp1430 (quote ())))) e11425)) tmp1428) (syntax-error 
tmp1427))) (syntax-dispatch tmp1427 (quote each-any)))) (map (lambda (v1445 
s1446) ((lambda (tmp1447) ((lambda (tmp1448) (if tmp1448 (apply (lambda () 
v1445) tmp1448) ((lambda (tmp1449) (if tmp1449 (apply (lambda (e1450) e1450) 
tmp1449) ((lambda (_1451) (syntax-error orig-x1417)) tmp1447))) 
(syntax-dispatch tmp1447 (quote (any)))))) (syntax-dispatch tmp1447 (quote 
())))) s1446)) var1421 step1423))) tmp1419) (syntax-error tmp1418))) 
(syntax-dispatch tmp1418 (quote (any #(each (any any . any)) (any . each-any) . 
each-any))))) orig-x1417)))
+(install-global-transformer (quote quasiquote) (letrec ((quasicons1454 (lambda 
(x1458 y1459) ((lambda (tmp1460) ((lambda (tmp1461) (if tmp1461 (apply (lambda 
(x1462 y1463) ((lambda (tmp1464) ((lambda (tmp1465) (if tmp1465 (apply (lambda 
(dy1466) ((lambda (tmp1467) ((lambda (tmp1468) (if tmp1468 (apply (lambda 
(dx1469) (list (quote #(syntax-object quote ((top) #(ribcage #(dx) #((top)) 
#("i")) #(ribcage #(dy) #((top)) #("i")) #(ribcage #(x y) #((top) (top)) #("i" 
"i")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(x y) #((top) (top)) 
#("i" "i")) #(ribcage #(quasicons quasiappend quasivector quasi) #((top) (top) 
(top) (top)) #("i" "i" "i" "i"))) (hygiene guile))) (cons dx1469 dy1466))) 
tmp1468) ((lambda (_1470) (if (null? dy1466) (list (quote #(syntax-object list 
((top) #(ribcage #(_) #((top)) #("i")) #(ribcage #(dy) #((top)) #("i")) 
#(ribcage #(x y) #((top) (top)) #("i" "i")) #(ribcage () () ()) #(ribcage () () 
()) #(ribcage #(x y) #((top) (top)) #("i" "i")) #(ribcage #(quasicons 
quasiappend quasivector quasi) #((top) (top) (top) (top)) #("i" "i" "i" "i"))) 
(hygiene guile))) x1462) (list (quote #(syntax-object cons ((top) #(ribcage 
#(_) #((top)) #("i")) #(ribcage #(dy) #((top)) #("i")) #(ribcage #(x y) #((top) 
(top)) #("i" "i")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(x y) 
#((top) (top)) #("i" "i")) #(ribcage #(quasicons quasiappend quasivector quasi) 
#((top) (top) (top) (top)) #("i" "i" "i" "i"))) (hygiene guile))) x1462 
y1463))) tmp1467))) (syntax-dispatch tmp1467 (quote (#(free-id #(syntax-object 
quote ((top) #(ribcage #(dy) #((top)) #("i")) #(ribcage #(x y) #((top) (top)) 
#("i" "i")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(x y) #((top) 
(top)) #("i" "i")) #(ribcage #(quasicons quasiappend quasivector quasi) #((top) 
(top) (top) (top)) #("i" "i" "i" "i"))) (hygiene guile))) any))))) x1462)) 
tmp1465) ((lambda (tmp1471) (if tmp1471 (apply (lambda (stuff1472) (cons (quote 
#(syntax-object list ((top) #(ribcage #(stuff) #((top)) #("i")) #(ribcage #(x 
y) #((top) (top)) #("i" "i")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage 
#(x y) #((top) (top)) #("i" "i")) #(ribcage #(quasicons quasiappend quasivector 
quasi) #((top) (top) (top) (top)) #("i" "i" "i" "i"))) (hygiene guile))) (cons 
x1462 stuff1472))) tmp1471) ((lambda (else1473) (list (quote #(syntax-object 
cons ((top) #(ribcage #(else) #((top)) #("i")) #(ribcage #(x y) #((top) (top)) 
#("i" "i")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(x y) #((top) 
(top)) #("i" "i")) #(ribcage #(quasicons quasiappend quasivector quasi) #((top) 
(top) (top) (top)) #("i" "i" "i" "i"))) (hygiene guile))) x1462 y1463)) 
tmp1464))) (syntax-dispatch tmp1464 (quote (#(free-id #(syntax-object list 
((top) #(ribcage #(x y) #((top) (top)) #("i" "i")) #(ribcage () () ()) 
#(ribcage () () ()) #(ribcage #(x y) #((top) (top)) #("i" "i")) #(ribcage 
#(quasicons quasiappend quasivector quasi) #((top) (top) (top) (top)) #("i" "i" 
"i" "i"))) (hygiene guile))) . any)))))) (syntax-dispatch tmp1464 (quote 
(#(free-id #(syntax-object quote ((top) #(ribcage #(x y) #((top) (top)) #("i" 
"i")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(x y) #((top) (top)) 
#("i" "i")) #(ribcage #(quasicons quasiappend quasivector quasi) #((top) (top) 
(top) (top)) #("i" "i" "i" "i"))) (hygiene guile))) any))))) y1463)) tmp1461) 
(syntax-error tmp1460))) (syntax-dispatch tmp1460 (quote (any any))))) (list 
x1458 y1459)))) (quasiappend1455 (lambda (x1474 y1475) ((lambda (tmp1476) 
((lambda (tmp1477) (if tmp1477 (apply (lambda (x1478 y1479) ((lambda (tmp1480) 
((lambda (tmp1481) (if tmp1481 (apply (lambda () x1478) tmp1481) ((lambda 
(_1482) (list (quote #(syntax-object append ((top) #(ribcage #(_) #((top)) 
#("i")) #(ribcage #(x y) #((top) (top)) #("i" "i")) #(ribcage () () ()) 
#(ribcage () () ()) #(ribcage #(x y) #((top) (top)) #("i" "i")) #(ribcage 
#(quasicons quasiappend quasivector quasi) #((top) (top) (top) (top)) #("i" "i" 
"i" "i"))) (hygiene guile))) x1478 y1479)) tmp1480))) (syntax-dispatch tmp1480 
(quote (#(free-id #(syntax-object quote ((top) #(ribcage #(x y) #((top) (top)) 
#("i" "i")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(x y) #((top) 
(top)) #("i" "i")) #(ribcage #(quasicons quasiappend quasivector quasi) #((top) 
(top) (top) (top)) #("i" "i" "i" "i"))) (hygiene guile))) ()))))) y1479)) 
tmp1477) (syntax-error tmp1476))) (syntax-dispatch tmp1476 (quote (any any))))) 
(list x1474 y1475)))) (quasivector1456 (lambda (x1483) ((lambda (tmp1484) 
((lambda (x1485) ((lambda (tmp1486) ((lambda (tmp1487) (if tmp1487 (apply 
(lambda (x1488) (list (quote #(syntax-object quote ((top) #(ribcage #(x) 
#((top)) #("i")) #(ribcage #(x) #((top)) #("i")) #(ribcage () () ()) #(ribcage 
() () ()) #(ribcage #(x) #((top)) #("i")) #(ribcage #(quasicons quasiappend 
quasivector quasi) #((top) (top) (top) (top)) #("i" "i" "i" "i"))) (hygiene 
guile))) (list->vector x1488))) tmp1487) ((lambda (tmp1490) (if tmp1490 (apply 
(lambda (x1491) (cons (quote #(syntax-object vector ((top) #(ribcage #(x) 
#((top)) #("i")) #(ribcage #(x) #((top)) #("i")) #(ribcage () () ()) #(ribcage 
() () ()) #(ribcage #(x) #((top)) #("i")) #(ribcage #(quasicons quasiappend 
quasivector quasi) #((top) (top) (top) (top)) #("i" "i" "i" "i"))) (hygiene 
guile))) x1491)) tmp1490) ((lambda (_1493) (list (quote #(syntax-object 
list->vector ((top) #(ribcage #(_) #((top)) #("i")) #(ribcage #(x) #((top)) 
#("i")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i")) 
#(ribcage #(quasicons quasiappend quasivector quasi) #((top) (top) (top) (top)) 
#("i" "i" "i" "i"))) (hygiene guile))) x1485)) tmp1486))) (syntax-dispatch 
tmp1486 (quote (#(free-id #(syntax-object list ((top) #(ribcage #(x) #((top)) 
#("i")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i")) 
#(ribcage #(quasicons quasiappend quasivector quasi) #((top) (top) (top) (top)) 
#("i" "i" "i" "i"))) (hygiene guile))) . each-any)))))) (syntax-dispatch 
tmp1486 (quote (#(free-id #(syntax-object quote ((top) #(ribcage #(x) #((top)) 
#("i")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i")) 
#(ribcage #(quasicons quasiappend quasivector quasi) #((top) (top) (top) (top)) 
#("i" "i" "i" "i"))) (hygiene guile))) each-any))))) x1485)) tmp1484)) x1483))) 
(quasi1457 (lambda (p1494 lev1495) ((lambda (tmp1496) ((lambda (tmp1497) (if 
tmp1497 (apply (lambda (p1498) (if (= lev1495 0) p1498 (quasicons1454 (quote 
(#(syntax-object quote ((top) #(ribcage #(p) #((top)) #("i")) #(ribcage () () 
()) #(ribcage #(p lev) #((top) (top)) #("i" "i")) #(ribcage #(quasicons 
quasiappend quasivector quasi) #((top) (top) (top) (top)) #("i" "i" "i" "i"))) 
(hygiene guile)) #(syntax-object unquote ((top) #(ribcage #(p) #((top)) #("i")) 
#(ribcage () () ()) #(ribcage #(p lev) #((top) (top)) #("i" "i")) #(ribcage 
#(quasicons quasiappend quasivector quasi) #((top) (top) (top) (top)) #("i" "i" 
"i" "i"))) (hygiene guile)))) (quasi1457 (list p1498) (- lev1495 1))))) 
tmp1497) ((lambda (tmp1499) (if tmp1499 (apply (lambda (p1500 q1501) (if (= 
lev1495 0) (quasiappend1455 p1500 (quasi1457 q1501 lev1495)) (quasicons1454 
(quasicons1454 (quote (#(syntax-object quote ((top) #(ribcage #(p q) #((top) 
(top)) #("i" "i")) #(ribcage () () ()) #(ribcage #(p lev) #((top) (top)) #("i" 
"i")) #(ribcage #(quasicons quasiappend quasivector quasi) #((top) (top) (top) 
(top)) #("i" "i" "i" "i"))) (hygiene guile)) #(syntax-object unquote-splicing 
((top) #(ribcage #(p q) #((top) (top)) #("i" "i")) #(ribcage () () ()) 
#(ribcage #(p lev) #((top) (top)) #("i" "i")) #(ribcage #(quasicons quasiappend 
quasivector quasi) #((top) (top) (top) (top)) #("i" "i" "i" "i"))) (hygiene 
guile)))) (quasi1457 (list p1500) (- lev1495 1))) (quasi1457 q1501 lev1495)))) 
tmp1499) ((lambda (tmp1502) (if tmp1502 (apply (lambda (p1503) (quasicons1454 
(quote (#(syntax-object quote ((top) #(ribcage #(p) #((top)) #("i")) #(ribcage 
() () ()) #(ribcage #(p lev) #((top) (top)) #("i" "i")) #(ribcage #(quasicons 
quasiappend quasivector quasi) #((top) (top) (top) (top)) #("i" "i" "i" "i"))) 
(hygiene guile)) #(syntax-object quasiquote ((top) #(ribcage #(p) #((top)) 
#("i")) #(ribcage () () ()) #(ribcage #(p lev) #((top) (top)) #("i" "i")) 
#(ribcage #(quasicons quasiappend quasivector quasi) #((top) (top) (top) (top)) 
#("i" "i" "i" "i"))) (hygiene guile)))) (quasi1457 (list p1503) (+ lev1495 
1)))) tmp1502) ((lambda (tmp1504) (if tmp1504 (apply (lambda (p1505 q1506) 
(quasicons1454 (quasi1457 p1505 lev1495) (quasi1457 q1506 lev1495))) tmp1504) 
((lambda (tmp1507) (if tmp1507 (apply (lambda (x1508) (quasivector1456 
(quasi1457 x1508 lev1495))) tmp1507) ((lambda (p1510) (list (quote 
#(syntax-object quote ((top) #(ribcage #(p) #((top)) #("i")) #(ribcage () () 
()) #(ribcage #(p lev) #((top) (top)) #("i" "i")) #(ribcage #(quasicons 
quasiappend quasivector quasi) #((top) (top) (top) (top)) #("i" "i" "i" "i"))) 
(hygiene guile))) p1510)) tmp1496))) (syntax-dispatch tmp1496 (quote #(vector 
each-any)))))) (syntax-dispatch tmp1496 (quote (any . any)))))) 
(syntax-dispatch tmp1496 (quote (#(free-id #(syntax-object quasiquote ((top) 
#(ribcage () () ()) #(ribcage #(p lev) #((top) (top)) #("i" "i")) #(ribcage 
#(quasicons quasiappend quasivector quasi) #((top) (top) (top) (top)) #("i" "i" 
"i" "i"))) (hygiene guile))) any)))))) (syntax-dispatch tmp1496 (quote 
((#(free-id #(syntax-object unquote-splicing ((top) #(ribcage () () ()) 
#(ribcage #(p lev) #((top) (top)) #("i" "i")) #(ribcage #(quasicons quasiappend 
quasivector quasi) #((top) (top) (top) (top)) #("i" "i" "i" "i"))) (hygiene 
guile))) any) . any)))))) (syntax-dispatch tmp1496 (quote (#(free-id 
#(syntax-object unquote ((top) #(ribcage () () ()) #(ribcage #(p lev) #((top) 
(top)) #("i" "i")) #(ribcage #(quasicons quasiappend quasivector quasi) #((top) 
(top) (top) (top)) #("i" "i" "i" "i"))) (hygiene guile))) any))))) p1494)))) 
(lambda (x1511) ((lambda (tmp1512) ((lambda (tmp1513) (if tmp1513 (apply 
(lambda (_1514 e1515) (quasi1457 e1515 0)) tmp1513) (syntax-error tmp1512))) 
(syntax-dispatch tmp1512 (quote (any any))))) x1511))))
+(install-global-transformer (quote include) (lambda (x1516) (letrec 
((read-file1517 (lambda (fn1518 k1519) (let ((p1520 (open-input-file fn1518))) 
(let f1521 ((x1522 (read p1520))) (if (eof-object? x1522) (begin 
(close-input-port p1520) (quote ())) (cons (datum->syntax-object k1519 x1522) 
(f1521 (read p1520))))))))) ((lambda (tmp1523) ((lambda (tmp1524) (if tmp1524 
(apply (lambda (k1525 filename1526) (let ((fn1527 (syntax-object->datum 
filename1526))) ((lambda (tmp1528) ((lambda (tmp1529) (if tmp1529 (apply 
(lambda (exp1530) (cons (quote #(syntax-object begin ((top) #(ribcage #(exp) 
#((top)) #("i")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(fn) 
#((top)) #("i")) #(ribcage #(k filename) #((top) (top)) #("i" "i")) #(ribcage 
(read-file) ((top)) ("i")) #(ribcage #(x) #((top)) #("i"))) (hygiene guile))) 
exp1530)) tmp1529) (syntax-error tmp1528))) (syntax-dispatch tmp1528 (quote 
each-any)))) (read-file1517 fn1527 k1525)))) tmp1524) (syntax-error tmp1523))) 
(syntax-dispatch tmp1523 (quote (any any))))) x1516))))
+(install-global-transformer (quote unquote) (lambda (x1532) ((lambda (tmp1533) 
((lambda (tmp1534) (if tmp1534 (apply (lambda (_1535 e1536) (error (quote 
unquote) "expression ,~s not valid outside of quasiquote" (syntax-object->datum 
e1536))) tmp1534) (syntax-error tmp1533))) (syntax-dispatch tmp1533 (quote (any 
any))))) x1532)))
+(install-global-transformer (quote unquote-splicing) (lambda (x1537) ((lambda 
(tmp1538) ((lambda (tmp1539) (if tmp1539 (apply (lambda (_1540 e1541) (error 
(quote unquote-splicing) "expression ,@~s not valid outside of quasiquote" 
(syntax-object->datum e1541))) tmp1539) (syntax-error tmp1538))) 
(syntax-dispatch tmp1538 (quote (any any))))) x1537)))
+(install-global-transformer (quote case) (lambda (x1542) ((lambda (tmp1543) 
((lambda (tmp1544) (if tmp1544 (apply (lambda (_1545 e1546 m11547 m21548) 
((lambda (tmp1549) ((lambda (body1550) (list (quote #(syntax-object let ((top) 
#(ribcage #(body) #((top)) #("i")) #(ribcage #(_ e m1 m2) #((top) (top) (top) 
(top)) #("i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) 
(hygiene guile))) (list (list (quote #(syntax-object t ((top) #(ribcage #(body) 
#((top)) #("i")) #(ribcage #(_ e m1 m2) #((top) (top) (top) (top)) #("i" "i" 
"i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene 
guile))) e1546)) body1550)) tmp1549)) (let f1551 ((clause1552 m11547) 
(clauses1553 m21548)) (if (null? clauses1553) ((lambda (tmp1555) ((lambda 
(tmp1556) (if tmp1556 (apply (lambda (e11557 e21558) (cons (quote 
#(syntax-object begin ((top) #(ribcage #(e1 e2) #((top) (top)) #("i" "i")) 
#(ribcage () () ()) #(ribcage #(f clause clauses) #((top) (top) (top)) #("i" 
"i" "i")) #(ribcage #(_ e m1 m2) #((top) (top) (top) (top)) #("i" "i" "i" "i")) 
#(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile))) (cons 
e11557 e21558))) tmp1556) ((lambda (tmp1560) (if tmp1560 (apply (lambda (k1561 
e11562 e21563) (list (quote #(syntax-object if ((top) #(ribcage #(k e1 e2) 
#((top) (top) (top)) #("i" "i" "i")) #(ribcage () () ()) #(ribcage #(f clause 
clauses) #((top) (top) (top)) #("i" "i" "i")) #(ribcage #(_ e m1 m2) #((top) 
(top) (top) (top)) #("i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) 
#((top)) #("i"))) (hygiene guile))) (list (quote #(syntax-object memv ((top) 
#(ribcage #(k e1 e2) #((top) (top) (top)) #("i" "i" "i")) #(ribcage () () ()) 
#(ribcage #(f clause clauses) #((top) (top) (top)) #("i" "i" "i")) #(ribcage 
#(_ e m1 m2) #((top) (top) (top) (top)) #("i" "i" "i" "i")) #(ribcage () () ()) 
#(ribcage #(x) #((top)) #("i"))) (hygiene guile))) (quote #(syntax-object t 
((top) #(ribcage #(k e1 e2) #((top) (top) (top)) #("i" "i" "i")) #(ribcage () 
() ()) #(ribcage #(f clause clauses) #((top) (top) (top)) #("i" "i" "i")) 
#(ribcage #(_ e m1 m2) #((top) (top) (top) (top)) #("i" "i" "i" "i")) #(ribcage 
() () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile))) (list (quote 
#(syntax-object quote ((top) #(ribcage #(k e1 e2) #((top) (top) (top)) #("i" 
"i" "i")) #(ribcage () () ()) #(ribcage #(f clause clauses) #((top) (top) 
(top)) #("i" "i" "i")) #(ribcage #(_ e m1 m2) #((top) (top) (top) (top)) #("i" 
"i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene 
guile))) k1561)) (cons (quote #(syntax-object begin ((top) #(ribcage #(k e1 e2) 
#((top) (top) (top)) #("i" "i" "i")) #(ribcage () () ()) #(ribcage #(f clause 
clauses) #((top) (top) (top)) #("i" "i" "i")) #(ribcage #(_ e m1 m2) #((top) 
(top) (top) (top)) #("i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) 
#((top)) #("i"))) (hygiene guile))) (cons e11562 e21563)))) tmp1560) ((lambda 
(_1566) (syntax-error x1542)) tmp1555))) (syntax-dispatch tmp1555 (quote 
(each-any any . each-any)))))) (syntax-dispatch tmp1555 (quote (#(free-id 
#(syntax-object else ((top) #(ribcage () () ()) #(ribcage #(f clause clauses) 
#((top) (top) (top)) #("i" "i" "i")) #(ribcage #(_ e m1 m2) #((top) (top) (top) 
(top)) #("i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) 
(hygiene guile))) any . each-any))))) clause1552) ((lambda (tmp1567) ((lambda 
(rest1568) ((lambda (tmp1569) ((lambda (tmp1570) (if tmp1570 (apply (lambda 
(k1571 e11572 e21573) (list (quote #(syntax-object if ((top) #(ribcage #(k e1 
e2) #((top) (top) (top)) #("i" "i" "i")) #(ribcage #(rest) #((top)) #("i")) 
#(ribcage () () ()) #(ribcage #(f clause clauses) #((top) (top) (top)) #("i" 
"i" "i")) #(ribcage #(_ e m1 m2) #((top) (top) (top) (top)) #("i" "i" "i" "i")) 
#(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile))) (list 
(quote #(syntax-object memv ((top) #(ribcage #(k e1 e2) #((top) (top) (top)) 
#("i" "i" "i")) #(ribcage #(rest) #((top)) #("i")) #(ribcage () () ()) 
#(ribcage #(f clause clauses) #((top) (top) (top)) #("i" "i" "i")) #(ribcage 
#(_ e m1 m2) #((top) (top) (top) (top)) #("i" "i" "i" "i")) #(ribcage () () ()) 
#(ribcage #(x) #((top)) #("i"))) (hygiene guile))) (quote #(syntax-object t 
((top) #(ribcage #(k e1 e2) #((top) (top) (top)) #("i" "i" "i")) #(ribcage 
#(rest) #((top)) #("i")) #(ribcage () () ()) #(ribcage #(f clause clauses) 
#((top) (top) (top)) #("i" "i" "i")) #(ribcage #(_ e m1 m2) #((top) (top) (top) 
(top)) #("i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) 
(hygiene guile))) (list (quote #(syntax-object quote ((top) #(ribcage #(k e1 
e2) #((top) (top) (top)) #("i" "i" "i")) #(ribcage #(rest) #((top)) #("i")) 
#(ribcage () () ()) #(ribcage #(f clause clauses) #((top) (top) (top)) #("i" 
"i" "i")) #(ribcage #(_ e m1 m2) #((top) (top) (top) (top)) #("i" "i" "i" "i")) 
#(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile))) k1571)) 
(cons (quote #(syntax-object begin ((top) #(ribcage #(k e1 e2) #((top) (top) 
(top)) #("i" "i" "i")) #(ribcage #(rest) #((top)) #("i")) #(ribcage () () ()) 
#(ribcage #(f clause clauses) #((top) (top) (top)) #("i" "i" "i")) #(ribcage 
#(_ e m1 m2) #((top) (top) (top) (top)) #("i" "i" "i" "i")) #(ribcage () () ()) 
#(ribcage #(x) #((top)) #("i"))) (hygiene guile))) (cons e11572 e21573)) 
rest1568)) tmp1570) ((lambda (_1576) (syntax-error x1542)) tmp1569))) 
(syntax-dispatch tmp1569 (quote (each-any any . each-any))))) clause1552)) 
tmp1567)) (f1551 (car clauses1553) (cdr clauses1553))))))) tmp1544) 
(syntax-error tmp1543))) (syntax-dispatch tmp1543 (quote (any any any . 
each-any))))) x1542)))
+(install-global-transformer (quote identifier-syntax) (lambda (x1577) ((lambda 
(tmp1578) ((lambda (tmp1579) (if tmp1579 (apply (lambda (_1580 e1581) (list 
(quote #(syntax-object lambda ((top) #(ribcage #(_ e) #((top) (top)) #("i" 
"i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile))) 
(quote (#(syntax-object x ((top) #(ribcage #(_ e) #((top) (top)) #("i" "i")) 
#(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile)))) (list 
(quote #(syntax-object syntax-case ((top) #(ribcage #(_ e) #((top) (top)) #("i" 
"i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile))) 
(quote #(syntax-object x ((top) #(ribcage #(_ e) #((top) (top)) #("i" "i")) 
#(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile))) (quote 
()) (list (quote #(syntax-object id ((top) #(ribcage #(_ e) #((top) (top)) 
#("i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene 
guile))) (quote (#(syntax-object identifier? ((top) #(ribcage #(_ e) #((top) 
(top)) #("i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) 
(hygiene guile)) (#(syntax-object syntax ((top) #(ribcage #(_ e) #((top) (top)) 
#("i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene 
guile)) #(syntax-object id ((top) #(ribcage #(_ e) #((top) (top)) #("i" "i")) 
#(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile))))) (list 
(quote #(syntax-object syntax ((top) #(ribcage #(_ e) #((top) (top)) #("i" 
"i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile))) 
e1581)) (list (cons _1580 (quote (#(syntax-object x ((top) #(ribcage #(_ e) 
#((top) (top)) #("i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) 
(hygiene guile)) #(syntax-object ... ((top) #(ribcage #(_ e) #((top) (top)) 
#("i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene 
guile))))) (list (quote #(syntax-object syntax ((top) #(ribcage #(_ e) #((top) 
(top)) #("i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) 
(hygiene guile))) (cons e1581 (quote (#(syntax-object x ((top) #(ribcage #(_ e) 
#((top) (top)) #("i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) 
(hygiene guile)) #(syntax-object ... ((top) #(ribcage #(_ e) #((top) (top)) 
#("i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene 
guile)))))))))) tmp1579) (syntax-error tmp1578))) (syntax-dispatch tmp1578 
(quote (any any))))) x1577)))
diff --git a/module/ice-9/psyntax.scm b/module/ice-9/psyntax.scm
index a5ea0ac..c17b3c4 100644
--- a/module/ice-9/psyntax.scm
+++ b/module/ice-9/psyntax.scm
@@ -421,6 +421,9 @@
 
 (define-syntax build-lambda
   (syntax-rules ()
+    ((_ src vars docstring exp)
+     (build-annotated src `(lambda ,vars ,@(if docstring (list docstring) '())
+                                   ,exp)))
     ((_ src vars exp)
      (build-annotated src `(lambda ,vars ,exp)))))
 
@@ -1353,8 +1356,11 @@
                                           (cdr body)))))))))))))))))
 
 (define chi-lambda-clause
-  (lambda (e c r w mod k)
+  (lambda (e docstring c r w mod k)
     (syntax-case c ()
+      ((args doc e1 e2 ...)
+       (and (string? (syntax-object->datum (syntax doc))) (not docstring))
+       (chi-lambda-clause e (syntax doc) (syntax (args e1 e2 ...)) r w mod k))
       (((id ...) e1 e2 ...)
        (let ((ids (syntax (id ...))))
          (if (not (valid-bound-ids? ids))
@@ -1362,6 +1368,7 @@
              (let ((labels (gen-labels ids))
                    (new-vars (map gen-var ids)))
                (k new-vars
+                  docstring
                   (chi-body (syntax (e1 e2 ...))
                             e
                             (extend-var-env labels new-vars r)
@@ -1377,6 +1384,7 @@
                     (if (null? ls1)
                         ls2
                         (f (cdr ls1) (cons (car ls1) ls2))))
+                  docstring
                   (chi-body (syntax (e1 e2 ...))
                             e
                             (extend-var-env labels new-vars r)
@@ -1716,8 +1724,8 @@
    (lambda (e r w s mod)
       (syntax-case e ()
          ((_ . c)
-          (chi-lambda-clause (source-wrap e w s mod) (syntax c) r w mod
-            (lambda (vars body) (build-lambda s vars body)))))))
+          (chi-lambda-clause (source-wrap e w s mod) #f (syntax c) r w mod
+            (lambda (vars docstring body) (build-lambda s vars docstring 
body)))))))
 
 
 (global-extend 'core 'let
diff --git a/module/language/scheme/expand.scm 
b/module/language/scheme/expand.scm
deleted file mode 100644
index cbf3f18..0000000
--- a/module/language/scheme/expand.scm
+++ /dev/null
@@ -1,306 +0,0 @@
-;;; Guile Scheme specification
-
-;; Copyright (C) 2001 Free Software Foundation, Inc.
-
-;; This program is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
-;; any later version.
-;;
-;; This program is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-;; GNU General Public License for more details.
-;;
-;; You should have received a copy of the GNU General Public License
-;; along with this program; see the file COPYING.  If not, write to
-;; the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
-
-;;; Code:
-
-(define-module (language scheme expand)
-  #:use-module (language scheme amatch)
-  #:use-module (ice-9 expand-support)
-  #:use-module (ice-9 optargs)
-  #:use-module ((system base compile) #:select (syntax-error))
-  #:export (expand *expand-table* define-scheme-expander))
-
-(define (aref x) (if (annotation? x) (annotation-expression x) x))
-(define (apair? x) (pair? (aref x)))
-(define (acar x) (car (aref x)))
-(define (acdr x) (cdr (aref x)))
-(define (acaar x) (acar (acar x)))
-(define (acdar x) (acdr (acar x)))
-(define (acadr x) (acar (acdr x)))
-(define (acddr x) (acdr (acdr x)))
-(define (aloc x) (and (annotation? x) (annotation-source x)))
-(define (re-annotate x y)
-  (if (and (annotation? x) (not (annotation? y)))
-      (make-annotation y (annotation-source x))
-      y))
-(define-macro (-> exp) `(re-annotate x ,exp))
-
-(define* (expand x #:optional (mod (current-module)) (once? #f))
-  (define re-expand
-    (if once?
-        (lambda (x) x)
-        (lambda (x) (expand x mod once?))))
-  (let ((exp (if (annotation? x) (annotation-expression x) x)))
-    (cond
-     ((pair? exp)
-      (let ((head (car exp)) (tail (cdr exp))) 
-        (cond
-         ;; allow macros to be unquoted into the output of a macro
-         ;; expansion
-         ((or (symbol? head) (macro? head))
-          (let ((val (cond
-                      ((macro? head) head)
-                      ((module-variable mod head)
-                       => (lambda (var)
-                            ;; unbound vars can happen if the module
-                            ;; definition forward-declared them
-                            (and (variable-bound? var) (variable-ref var))))
-                      (else #f))))
-            (cond
-             ((hashq-ref *expand-table* val)
-              => (lambda (expand1) (expand1 x re-expand)))
-
-             ((defmacro? val)
-              (re-expand (-> (apply (defmacro-transformer val)
-                                    (deannotate tail)))))
-             
-             ((eq? val sc-macro)
-              ;; syncase!
-              (let* ((eec (@@ (ice-9 syncase) expansion-eval-closure))
-                     (sc-expand3 (@@ (ice-9 syncase) sc-expand3)))
-                (re-expand
-                 (with-fluids ((eec (module-eval-closure mod)))
-                   ;; fixme -- use ewes fluid?
-                   (sc-expand3 exp 'c '(compile load eval))))))
-
-             ((primitive-macro? val)
-              (syntax-error (aloc x) "unhandled primitive macro" head))
-             
-             ((macro? val)
-              (syntax-error (aloc x) "unknown kind of macro" head))
-
-             (else
-              (-> (cons head (map re-expand tail)))))))
-
-         (else
-          (-> (map re-expand exp))))))
-          
-     (else x))))
-
-
-(define *expand-table* (make-hash-table))
-
-(define-macro (define-scheme-expander sym . clauses)
-  `(hashq-set! (@ (language scheme expand) *expand-table*)
-               ,sym
-               (lambda (x re-expand)
-                 (define syntax-error (@ (system base compile) syntax-error))
-                 (amatch (acdr x)
-                   ,@clauses
-                   ,@(if (assq 'else clauses) '()
-                         `((else
-                            (syntax-error (aloc x) (format #f "bad ~A" ',sym) 
x))))))))
-
-(define-scheme-expander quote
-  ;; (quote OBJ)
-  ((,obj) x))
-    
-(define-scheme-expander quasiquote
-  ;; (quasiquote OBJ)
-  ((,obj)
-   (-> `(,'quasiquote
-         ,(let lp ((x obj) (level 0))
-            (cond ((not (apair? x)) x)
-                  ;; FIXME: hygiene regarding imported , / ,@ rebinding
-                  ((memq (acar x) '(unquote unquote-splicing))
-                   (amatch (acdr x)
-                     ((,obj)
-                      (cond
-                       ((zero? level) 
-                        (-> `(,(acar x) ,(re-expand obj))))
-                       (else
-                        (-> `(,(acar x) ,(lp obj (1- level)))))))
-                     (else (syntax-error (aloc x) (format #f "bad ~A" (acar 
x)) x))))
-                  ((eq? (acar x) 'quasiquote)
-                   (amatch (acdr x)
-                     ((,obj) (-> `(,'quasiquote ,(lp obj (1+ level)))))
-                     (else (syntax-error (aloc x) "bad quasiquote" x))))
-                  (else (-> (cons (lp (acar x) level) (lp (acdr x) 
level))))))))))
-
-(define-scheme-expander define
-  ;; (define NAME VAL)
-  ((,name ,val) (guard (symbol? name))
-   (-> `(define ,name ,(re-expand val))))
-  ;; (define (NAME FORMALS...) BODY...)
-  (((,name . ,formals) . ,body) (guard (symbol? name))
-   ;; -> (define NAME (lambda FORMALS BODY...))
-   (re-expand (-> `(define ,name (lambda ,formals . ,body))))))
-
-(define-scheme-expander set!
-  ;; (set! (NAME ARGS...) VAL)
-  (((,name . ,args) ,val) (guard (symbol? name)
-                                 (not (eq? name '@)) (not (eq? name '@@)))
-   ;; -> ((setter NAME) ARGS... VAL)
-   (re-expand (-> `((setter ,name) ,@args ,val))))
-
-  ;; (set! NAME VAL)
-  ((,name ,val) (guard (symbol? name))
-   (-> `(set! ,name ,(re-expand val)))))
-
-(define-scheme-expander if
-  ;; (if TEST THEN [ELSE])
-  ((,test ,then)
-   (-> `(if ,(re-expand test) ,(re-expand then))))
-  ((,test ,then ,else)
-   (-> `(if ,(re-expand test) ,(re-expand then) ,(re-expand else)))))
-
-(define-scheme-expander and
-  ;; (and EXPS...)
-  (,tail
-   (-> `(and . ,(map re-expand tail)))))
-
-(define-scheme-expander or
-  ;; (or EXPS...)
-  (,tail
-   (-> `(or . ,(map re-expand tail)))))
-
-(define-scheme-expander begin
-  ;; (begin EXPS...)
-  ((,single-exp)
-   (-> (re-expand single-exp)))
-  (,tail
-   (-> `(begin . ,(map re-expand tail)))))
-
-(define (valid-bindings? bindings . it-is-for-do)
-  (define (valid-binding? b)
-    (amatch b 
-      ((,sym ,var) (guard (symbol? sym)) #t)
-      ((,sym ,var ,update) (guard (pair? it-is-for-do) (symbol? sym)) #t)
-      (else #f)))
-  (and (list? (aref bindings))
-       (and-map valid-binding? (aref bindings))))
-
-(define-scheme-expander let
-  ;; (let NAME ((SYM VAL) ...) BODY...)
-  ((,name ,bindings . ,body) (guard (symbol? name)
-                                    (valid-bindings? bindings))
-   ;; -> (letrec ((NAME (lambda (SYM...) BODY...))) (NAME VAL...))
-   (re-expand (-> `(letrec ((,name (lambda ,(map acar (aref bindings))
-                                     . ,body)))
-                     (,name . ,(map acadr (aref bindings)))))))
-
-  ((() . ,body)
-   (re-expand (expand-internal-defines body)))
-
-  ;; (let ((SYM VAL) ...) BODY...)
-  ((,bindings . ,body) (guard (valid-bindings? bindings))
-   (-> `(let ,(map (lambda (x)
-                     ;; nb, relies on -> non-hygiene
-                     (-> `(,(acar x) ,(re-expand (acadr x)))))
-                   (aref bindings))
-          ,(expand-internal-defines (map re-expand body))))))
-
-(define-scheme-expander let*
-  ;; (let* ((SYM VAL) ...) BODY...)
-  ((() . ,body)
-   (re-expand (-> `(let () . ,body))))
-  ((((,sym ,val) . ,rest) . ,body) (guard (symbol? sym))
-   (re-expand (-> `(let ((,sym ,val)) (let* ,rest . ,body))))))
-
-(define-scheme-expander letrec
-  ;; (letrec ((SYM VAL) ...) BODY...)
-  ((,bindings . ,body) (guard (valid-bindings? bindings))
-   (-> `(letrec ,(map (lambda (x)
-                        ;; nb, relies on -> non-hygiene
-                        (-> `(,(acar x) ,(re-expand (acadr x)))))
-                      (aref bindings))
-          ,(expand-internal-defines (map re-expand body))))))
-
-(define-scheme-expander cond
-  ;; (cond (CLAUSE BODY...) ...)
-  (() (-> '(begin)))
-  (((else . ,body)) (re-expand (-> `(begin ,@body))))
-  (((,test) . ,rest) (re-expand (-> `(or ,test (cond ,@rest)))))
-  (((,test => ,proc) . ,rest)
-   ;; FIXME hygiene!
-   (re-expand (-> `(let ((_t ,test)) (if _t (,proc _t) (cond ,@rest))))))
-  (((,test . ,body) . ,rest)
-   (re-expand (-> `(if ,test (begin ,@body) (cond ,@rest))))))
-
-(define-scheme-expander case
-  ;; (case EXP ((KEY...) BODY...) ...)
-  ((,exp . ,clauses)
-    ;; FIXME hygiene!
-   (re-expand 
-    (->`(let ((_t ,exp))
-          ,(let loop ((ls clauses))
-             (cond ((null? ls) '(begin))
-                   ((eq? (acaar ls) 'else) `(begin ,@(acdar ls)))
-                   (else `(if (memv _t ',(acaar ls))
-                              (begin ,@(acdar ls))
-                              ,(loop (acdr ls)))))))))))
-
-(define-scheme-expander do
-  ;; (do ((SYM VAL [UPDATE]) ...) (TEST RESULT...) BODY...)
-  ((,bindings (,test . ,result) . ,body) (guard (valid-bindings? bindings #t))
-   (let ((sym (map acar (aref bindings)))
-         (val (map acadr (aref bindings)))
-         (update (map acddr (aref bindings))))
-     (define (next s x) (if (pair? x) (car x) s))
-     (re-expand
-      ;; FIXME hygiene!
-      (-> `(letrec ((_l (lambda ,sym
-                          (if ,test
-                              (begin ,@result)
-                              (begin ,@body
-                                     (_l ,@(map next sym update)))))))
-             (_l ,@val)))))))
-
-(define-scheme-expander lambda
-  ;; (lambda FORMALS BODY...)
-  ((,formals ,docstring ,body1 . ,body) (guard (string? docstring))
-   (-> `(lambda ,formals ,docstring ,(expand-internal-defines
-                                      (map re-expand (cons body1 body))))))
-  ((,formals . ,body)
-   (-> `(lambda ,formals ,(expand-internal-defines (map re-expand body))))))
-
-(define-scheme-expander delay
-  ;; FIXME not hygienic
-  ((,expr)
-   (re-expand `(make-promise (lambda () ,expr)))))
-
-(define-scheme-expander @
-  ((,modname ,sym)
-   x))
-
-(define-scheme-expander @@
-  ((,modname ,sym)
-   x))
-
-(define-scheme-expander eval-when
-  ((,when . ,body) (guard (list? when) (and-map symbol? when))
-   (if (memq 'compile when)
-       (primitive-eval `(begin . ,body)))
-   (if (memq 'load when)
-       (-> `(begin . ,body))
-       (-> `(begin)))))
-
-;;; Hum, I don't think this takes imported modifications to `define'
-;;; properly into account. (Lexical bindings are OK because of alpha
-;;; renaming.)
-(define (expand-internal-defines body)
-  (let loop ((ls body) (ds '()))
-    (amatch ls
-      (() (syntax-error l "bad body" body))
-      (((define ,name ,val) . _)
-       (loop (acdr ls) (cons (list name val) ds)))
-      (else
-       (if (null? ds)
-           (if (null? (cdr ls)) (car ls) `(begin ,@ls))
-           `(letrec ,ds ,(if (null? (cdr ls)) (car ls) `(begin ,@ls))))))))


hooks/post-receive
-- 
GNU Guile




reply via email to

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