1 (eval-when (compile) (set-current-module (resolve-module (quote (guile)))))
5 (lambda (f57 first56 . rest55)
6 (let ((t58 (null? first56)))
12 (let ((x61 (car first60))
13 (first62 (cdr first60)))
16 (if (f57 x61) (andmap59 first62) #f))))))
19 (lambda (first64 rest65)
20 (let ((x66 (car first64))
21 (xr67 (map car rest65))
22 (first68 (cdr first64))
23 (rest69 (map cdr rest65)))
25 (apply f57 (cons x66 xr67))
26 (if (apply f57 (cons x66 xr67))
27 (andmap63 first68 rest69)
29 (andmap63 first56 rest55))))))))
30 (letrec ((lambda-var-list162
33 (lambda (vars288 ls289 w290)
37 (cons (wrap142 (car vars288) w290 #f) ls289)
40 (cons (wrap142 vars288 w290 #f) ls289)
43 (if (syntax-object?98 vars288)
45 (syntax-object-expression99 vars288)
49 (syntax-object-wrap100 vars288)))
50 (cons vars288 ls289))))))))
51 (lvl287 vars286 (quote ()) (quote (()))))))
54 (let ((id292 (if (syntax-object?98 id291)
55 (syntax-object-expression99 id291)
57 (gensym (symbol->string id292)))))
60 (if (memq (quote top) (wrap-marks117 w294))
62 (letrec ((f295 (lambda (x296)
63 (if (syntax-object?98 x296)
65 (syntax-object-expression99 x296)
66 (syntax-object-wrap100 x296))
68 (let ((a297 (f295 (car x296)))
69 (d298 (f295 (cdr x296))))
70 (if (if (eq? a297 (car x296))
76 (let ((old299 (vector->list x296)))
77 (let ((new300 (map f295 old299)))
78 (if (and-map*17 eq? old299 new300)
80 (list->vector new300))))
85 (if (nonsymbol-id?113 x301)
93 #(ribcage #(x) #((top)) #("i"))
100 eval-local-transformer
137 set-ribcage-symnames!
169 set-syntax-object-module!
170 set-syntax-object-wrap!
171 set-syntax-object-expression!
174 syntax-object-expression
185 build-global-definition
187 build-global-assignment
188 build-global-reference
190 build-lexical-assignment
191 build-lexical-reference
195 get-global-definition-hook
196 put-global-definition-hook
429 (define-structure and-map*)
434 (chi-void158 (lambda () (build-void80 #f)))
435 (eval-local-transformer157
436 (lambda (expanded302 mod303)
437 (let ((p304 (local-eval-hook77 expanded302 mod303)))
438 (if (procedure? p304)
442 "nonprocedure transformer"
445 (lambda (rec?305 e306 r307 w308 s309 mod310 k311)
449 (apply (lambda (_314 id315 val316 e1317 e2318)
450 (let ((ids319 id315))
451 (if (not (valid-bound-ids?139 ids319))
454 "duplicate bound keyword"
456 (let ((labels321 (gen-labels120 ids319)))
458 (make-binding-wrap131
462 (k311 (cons e1317 e2318)
465 (let ((w324 (if rec?305
473 (eval-local-transformer157
489 "bad local syntax definition"
490 (source-wrap143 e306 w308 s309 mod310)))
494 '(any #(each (any any)) any . each-any))))
496 (chi-lambda-clause155
497 (lambda (e329 docstring330 c331 r332 w333 mod334 k335)
501 (apply (lambda (args338 doc339 e1340 e2341)
502 (if (string? (syntax->datum doc339))
507 (apply (lambda (args342 doc343 e1344 e2345)
508 (chi-lambda-clause155
511 (cons args342 (cons e1344 e2345))
519 (apply (lambda (id348 e1349 e2350)
520 (let ((ids351 id348))
521 (if (not (valid-bound-ids?139 ids351))
524 "invalid parameter list"
527 (gen-labels120 ids351))
529 (map gen-var161 ids351)))
530 (k335 (map syntax->datum ids351)
533 (syntax->datum docstring330)
542 (make-binding-wrap131
550 (apply (lambda (ids357 e1358 e2359)
552 (lambda-var-list162 ids357)))
553 (if (not (valid-bound-ids?139
557 "invalid parameter list"
565 (k335 (letrec ((f363 (lambda (ls1364
574 (f363 (cdr old-ids360)
576 (letrec ((f366 (lambda (ls1367
583 (f366 (cdr new-vars362)
596 (make-binding-wrap131
610 '(any any . each-any)))))
613 '(each-any any . each-any)))))
616 '(any any any . each-any))))
619 (lambda (body371 outer-form372 r373 w374 mod375)
620 (let ((r376 (cons (quote ("placeholder" placeholder)) r373)))
626 (let ((w378 (make-wrap116
628 (cons ribcage377 (wrap-subst118 w374)))))
640 "no expressions in body"
642 (let ((e388 (cdar body380))
643 (er389 (caar body380)))
650 (source-annotation105 er389)
662 (let ((id396 (wrap142
666 (label397 (gen-label119)))
677 (cons label397 labels382)
678 (cons id396 var-ids383)
679 (cons var398 vars384)
690 '(define-syntax-form))
691 (let ((id399 (wrap142
695 (label400 (gen-label119)))
704 (cons label400 labels382)
723 (letrec ((f405 (lambda (forms406)
731 (f405 (cdr forms406)))))))
742 "source expression failed to match any pattern"
749 '(local-syntax-form))
763 (letrec ((f413 (lambda (forms414)
771 (f413 (cdr forms414)))))))
796 (if (not (valid-bound-ids?139
800 "invalid or duplicate identifier in definition"
806 (if (not (null? bs417))
807 (let ((b420 (car bs417)))
810 (let ((er421 (cadr b420)))
820 (eval-local-transformer157
871 (cdr body380))))))))))))))))))
874 (cons r376 (wrap142 x387 w378 mod375)))
883 (lambda (p425 e426 r427 w428 rib429 mod430)
884 (letrec ((rebuild-macro-output431
887 (cons (rebuild-macro-output431 (car x432) m433)
888 (rebuild-macro-output431 (cdr x432) m433))
889 (if (syntax-object?98 x432)
890 (let ((w434 (syntax-object-wrap100 x432)))
891 (let ((ms435 (wrap-marks117 w434))
892 (s436 (wrap-subst118 w434)))
893 (if (if (pair? ms435)
896 (make-syntax-object97
897 (syntax-object-expression99 x432)
901 (cons rib429 (cdr s436))
903 (syntax-object-module101 x432))
904 (make-syntax-object97
905 (syntax-object-expression99 x432)
910 (cons (quote shift) s436))
911 (cons (quote shift) s436)))
913 (procedure-module p425)))
916 (module-name pmod437))
917 '(hygiene guile)))))))
919 (let ((n438 (vector-length x432)))
920 (let ((v439 (make-vector n438)))
923 (if (fx=74 i441 n438)
924 (begin (if #f #f) v439)
929 (rebuild-macro-output431
940 "encountered raw symbol in macro output"
941 (source-wrap143 e426 w428 s mod430)
944 (rebuild-macro-output431
945 (p425 (wrap142 e426 (anti-mark129 w428) mod430))
948 (lambda (x442 e443 r444 w445 s446 mod447)
952 (apply (lambda (e0450 e1451)
957 (chi150 e452 r444 w445 mod447))
962 "source expression failed to match any pattern"
964 ($sc-dispatch tmp448 (quote (any . each-any)))))
967 (lambda (type454 value455 e456 r457 w458 s459 mod460)
968 (if (memv type454 (quote (lexical)))
969 (build-lexical-reference83
974 (if (memv type454 (quote (core core-form)))
975 (value455 e456 r457 w458 s459 mod460)
976 (if (memv type454 (quote (module-ref)))
978 (lambda () (value455 e456))
979 (lambda (id461 mod462)
980 (build-global-reference86 s459 id461 mod462)))
981 (if (memv type454 (quote (lexical-call)))
983 (build-lexical-reference83
985 (source-annotation105 (car e456))
993 (if (memv type454 (quote (global-call)))
995 (build-global-reference86
996 (source-annotation105 (car e456))
997 (if (syntax-object?98 value455)
998 (syntax-object-expression99 value455)
1000 (if (syntax-object?98 value455)
1001 (syntax-object-module101 value455)
1008 (if (memv type454 (quote (constant)))
1012 (source-wrap143 e456 w458 s459 mod460)
1014 (if (memv type454 (quote (global)))
1015 (build-global-reference86 s459 value455 mod460)
1016 (if (memv type454 (quote (call)))
1018 (chi150 (car e456) r457 w458 mod460)
1024 (if (memv type454 (quote (begin-form)))
1028 (apply (lambda (_465 e1466 e2467)
1038 "source expression failed to match any pattern"
1042 '(any any . each-any))))
1044 (if (memv type454 (quote (local-syntax-form)))
1045 (chi-local-syntax156
1053 (if (memv type454 (quote (eval-when-form)))
1057 (apply (lambda (_471
1078 "source expression failed to match any pattern"
1082 '(any each-any any . each-any))))
1086 define-syntax-form))
1089 "definition in expression context"
1091 (wrap142 value455 w458 mod460))
1092 (if (memv type454 (quote (syntax)))
1095 "reference to pattern variable outside syntax form"
1102 '(displaced-lexical))
1105 "reference to identifier outside its scope"
1118 mod460))))))))))))))))))
1120 (lambda (e478 r479 w480 mod481)
1127 (source-annotation105 e478)
1131 (lambda (type482 value483 e484 w485 s486 mod487)
1141 (lambda (e488 r489 w490 m491 esew492 mod493)
1148 (source-annotation105 e488)
1152 (lambda (type501 value502 e503 w504 s505 mod506)
1153 (if (memv type501 (quote (begin-form)))
1157 (apply (lambda (_509) (chi-void158)) tmp508)
1160 (apply (lambda (_511 e1512 e2513)
1161 (chi-top-sequence145
1172 "source expression failed to match any pattern"
1176 '(any any . each-any)))))
1177 ($sc-dispatch tmp507 (quote (any)))))
1179 (if (memv type501 (quote (local-syntax-form)))
1180 (chi-local-syntax156
1187 (lambda (body515 r516 w517 s518 mod519)
1188 (chi-top-sequence145
1196 (if (memv type501 (quote (eval-when-form)))
1200 (apply (lambda (_522 x523 e1524 e2525)
1206 (body527 (cons e1524 e2525)))
1207 (if (eq? m491 (quote e))
1210 (chi-top-sequence145
1221 (if (let ((t530 (memq 'compile
1230 (chi-top-sequence145
1240 (chi-top-sequence145
1249 (if (let ((t531 (memq 'compile
1259 (top-level-eval-hook76
1260 (chi-top-sequence145
1274 "source expression failed to match any pattern"
1278 '(any each-any any . each-any))))
1280 (if (memv type501 (quote (define-syntax-form)))
1281 (let ((n532 (id-var-name136 value502 w504))
1282 (r533 (macros-only-env110 r489)))
1283 (if (memv m491 (quote (c)))
1284 (if (memq (quote compile) esew492)
1285 (let ((e534 (chi-install-global146
1293 (top-level-eval-hook76 e534 mod506)
1294 (if (memq (quote load) esew492)
1297 (if (memq (quote load) esew492)
1298 (chi-install-global146
1300 (chi150 e503 r533 w504 mod506))
1302 (if (memv m491 (quote (c&e)))
1303 (let ((e535 (chi-install-global146
1311 (top-level-eval-hook76 e535 mod506)
1314 (if (memq (quote eval) esew492)
1315 (top-level-eval-hook76
1316 (chi-install-global146
1318 (chi150 e503 r533 w504 mod506))
1321 (if (memv type501 (quote (define-form)))
1322 (let ((n536 (id-var-name136 value502 w504)))
1325 (lookup111 n536 r489 mod506))))
1327 '(global core macro module-ref))
1329 (if (if (not (module-local-variable
1338 (let ((x538 (build-global-definition89
1347 (if (eq? m491 (quote c&e))
1348 (top-level-eval-hook76 x538 mod506))
1351 '(displaced-lexical))
1354 "identifier out of context"
1356 (wrap142 value502 w504 mod506))
1359 "cannot define keyword at top level"
1361 (wrap142 value502 w504 mod506))))))
1362 (let ((x539 (chi-expr151
1371 (if (eq? m491 (quote c&e))
1372 (top-level-eval-hook76 x539 mod506))
1375 (lambda (e540 r541 w542 s543 rib544 mod545 for-car?546)
1377 (let ((n547 (id-var-name136 e540 w542)))
1378 (let ((b548 (lookup111 n547 r541 mod545)))
1379 (let ((type549 (binding-type106 b548)))
1380 (if (memv type549 (quote (lexical)))
1383 (binding-value107 b548)
1388 (if (memv type549 (quote (global)))
1389 (values type549 n547 e540 w542 s543 mod545)
1390 (if (memv type549 (quote (macro)))
1394 (binding-value107 b548)
1401 (binding-value107 b548)
1415 (binding-value107 b548)
1421 (let ((first550 (car e540)))
1432 (lambda (ftype551 fval552 fe553 fw554 fs555 fmod556)
1433 (if (memv ftype551 (quote (lexical)))
1441 (if (memv ftype551 (quote (global)))
1444 (make-syntax-object97 fval552 w542 fmod556)
1449 (if (memv ftype551 (quote (macro)))
1464 (if (memv ftype551 (quote (module-ref)))
1466 (lambda () (fval552 e540))
1467 (lambda (sym557 mod558)
1476 (if (memv ftype551 (quote (core)))
1484 (if (memv ftype551 (quote (local-syntax)))
1492 (if (memv ftype551 (quote (begin)))
1500 (if (memv ftype551 (quote (eval-when)))
1508 (if (memv ftype551 (quote (define)))
1512 (apply (lambda (_561
1519 (apply (lambda (_564
1532 (apply (lambda (_568
1539 (valid-bound-ids?139
1545 (apply (lambda (_573
1556 (cons '#(syntax-object
1650 eval-local-transformer
1687 set-ribcage-symnames!
1719 set-syntax-object-module!
1720 set-syntax-object-wrap!
1721 set-syntax-object-expression!
1722 syntax-object-module
1724 syntax-object-expression
1735 build-global-definition
1737 build-global-assignment
1738 build-global-reference
1740 build-lexical-assignment
1741 build-lexical-reference
1745 get-global-definition-hook
1746 put-global-definition-hook
1999 (apply (lambda (_580
2005 (apply (lambda (_582
2098 eval-local-transformer
2135 set-ribcage-symnames!
2167 set-syntax-object-module!
2168 set-syntax-object-wrap!
2169 set-syntax-object-expression!
2170 syntax-object-module
2172 syntax-object-expression
2183 build-global-definition
2185 build-global-assignment
2186 build-global-reference
2188 build-lexical-assignment
2189 build-lexical-reference
2193 get-global-definition-hook
2194 put-global-definition-hook
2520 eval-local-transformer
2557 set-ribcage-symnames!
2589 set-syntax-object-module!
2590 set-syntax-object-wrap!
2591 set-syntax-object-expression!
2592 syntax-object-module
2594 syntax-object-expression
2605 build-global-definition
2607 build-global-assignment
2608 build-global-reference
2610 build-lexical-assignment
2611 build-lexical-reference
2615 get-global-definition-hook
2616 put-global-definition-hook
2942 eval-local-transformer
2979 set-ribcage-symnames!
3011 set-syntax-object-module!
3012 set-syntax-object-wrap!
3013 set-syntax-object-expression!
3014 syntax-object-module
3016 syntax-object-expression
3027 build-global-definition
3029 build-global-assignment
3030 build-global-reference
3032 build-lexical-assignment
3033 build-lexical-reference
3037 get-global-definition-hook
3038 put-global-definition-hook
3285 "source expression failed to match any pattern"
3305 (apply (lambda (_586
3312 (apply (lambda (_589
3325 "source expression failed to match any pattern"
3337 mod545))))))))))))))
3338 (if (syntax-object?98 e540)
3340 (syntax-object-expression99 e540)
3342 (join-wraps133 w542 (syntax-object-wrap100 e540))
3345 (let ((t592 (syntax-object-module101 e540)))
3346 (if t592 t592 mod545))
3348 (if (self-evaluating? e540)
3356 (values (quote other) #f e540 w542 s543 mod545)))))))
3358 (lambda (e593 when-list594 w595)
3359 (letrec ((f596 (lambda (when-list597 situations598)
3360 (if (null? when-list597)
3362 (f596 (cdr when-list597)
3363 (cons (let ((x599 (car when-list597)))
3398 eval-local-transformer
3435 set-ribcage-symnames!
3467 set-syntax-object-module!
3468 set-syntax-object-wrap!
3469 set-syntax-object-expression!
3470 syntax-object-module
3472 syntax-object-expression
3483 build-global-definition
3485 build-global-assignment
3486 build-global-reference
3488 build-lexical-assignment
3489 build-lexical-reference
3493 get-global-definition-hook
3494 put-global-definition-hook
3767 eval-local-transformer
3804 set-ribcage-symnames!
3836 set-syntax-object-module!
3837 set-syntax-object-wrap!
3838 set-syntax-object-expression!
3839 syntax-object-module
3841 syntax-object-expression
3852 build-global-definition
3854 build-global-assignment
3855 build-global-reference
3857 build-lexical-assignment
3858 build-lexical-reference
3862 get-global-definition-hook
3863 put-global-definition-hook
4153 eval-local-transformer
4190 set-ribcage-symnames!
4222 set-syntax-object-module!
4223 set-syntax-object-wrap!
4224 set-syntax-object-expression!
4225 syntax-object-module
4227 syntax-object-expression
4238 build-global-definition
4240 build-global-assignment
4241 build-global-reference
4243 build-lexical-assignment
4244 build-lexical-reference
4248 get-global-definition-hook
4249 put-global-definition-hook
4497 (f596 when-list594 (quote ())))))
4498 (chi-install-global146
4499 (lambda (name600 e601)
4500 (build-global-definition89
4503 (if (let ((v602 (module-variable (current-module) name600)))
4505 (if (variable-bound? v602)
4506 (if (macro? (variable-ref v602))
4507 (not (eq? (macro-type (variable-ref v602))
4512 (build-application81
4516 'make-extended-syncase-macro)
4517 (list (build-application81
4519 (build-primref91 #f (quote module-ref))
4520 (list (build-application81
4526 (build-data92 #f name600)))
4527 (build-data92 #f (quote macro))
4529 (build-application81
4531 (build-primref91 #f (quote make-syncase-macro))
4532 (list (build-data92 #f (quote macro)) e601))))))
4533 (chi-top-sequence145
4534 (lambda (body603 r604 w605 s606 m607 esew608 mod609)
4538 (lambda (body611 r612 w613 m614 esew615 mod616)
4557 (dobody610 body603 r604 w605 m607 esew608 mod609)))))
4559 (lambda (body618 r619 w620 s621 mod622)
4563 (lambda (body624 r625 w626 mod627)
4578 (dobody623 body618 r619 w620 mod622)))))
4580 (lambda (x629 w630 s631 defmod632)
4582 (if (if s631 (pair? x629) #f)
4583 (set-source-properties! x629 s631))
4584 (wrap142 x629 w630 defmod632))))
4586 (lambda (x633 w634 defmod635)
4587 (if (if (null? (wrap-marks117 w634))
4588 (null? (wrap-subst118 w634))
4591 (if (syntax-object?98 x633)
4592 (make-syntax-object97
4593 (syntax-object-expression99 x633)
4594 (join-wraps133 w634 (syntax-object-wrap100 x633))
4595 (syntax-object-module101 x633))
4598 (make-syntax-object97 x633 w634 defmod635))))))
4599 (bound-id-member?141
4600 (lambda (x636 list637)
4601 (if (not (null? list637))
4602 (let ((t638 (bound-id=?138 x636 (car list637))))
4605 (bound-id-member?141 x636 (cdr list637))))
4607 (distinct-bound-ids?140
4609 (letrec ((distinct?640
4611 (let ((t642 (null? ids641)))
4614 (if (not (bound-id-member?141
4617 (distinct?640 (cdr ids641))
4619 (distinct?640 ids639))))
4620 (valid-bound-ids?139
4622 (if (letrec ((all-ids?644
4624 (let ((t646 (null? ids645)))
4627 (if (id?114 (car ids645))
4628 (all-ids?644 (cdr ids645))
4630 (all-ids?644 ids643))
4631 (distinct-bound-ids?140 ids643)
4635 (if (if (syntax-object?98 i647)
4636 (syntax-object?98 j648)
4638 (if (eq? (syntax-object-expression99 i647)
4639 (syntax-object-expression99 j648))
4641 (wrap-marks117 (syntax-object-wrap100 i647))
4642 (wrap-marks117 (syntax-object-wrap100 j648)))
4647 (if (eq? (let ((x651 i649))
4648 (if (syntax-object?98 x651)
4649 (syntax-object-expression99 x651)
4652 (if (syntax-object?98 x652)
4653 (syntax-object-expression99 x652)
4655 (eq? (id-var-name136 i649 (quote (())))
4656 (id-var-name136 j650 (quote (()))))
4659 (lambda (id653 w654)
4660 (letrec ((search-vector-rib657
4666 (let ((n668 (vector-length symnames666)))
4667 (letrec ((f669 (lambda (i670)
4668 (if (fx=74 i670 n668)
4673 (if (if (eq? (vector-ref
4690 (f669 (fx+72 i670 1)))))))
4698 (letrec ((f676 (lambda (symnames677 i678)
4699 (if (null? symnames677)
4704 (if (if (eq? (car symnames677)
4719 (f676 (cdr symnames677)
4720 (fx+72 i678 1)))))))
4721 (f676 symnames674 0))))
4723 (lambda (sym679 subst680 marks681)
4724 (if (null? subst680)
4725 (values #f marks681)
4726 (let ((fst682 (car subst680)))
4727 (if (eq? fst682 (quote shift))
4733 (ribcage-symnames123 fst682)))
4734 (if (vector? symnames683)
4735 (search-vector-rib657
4748 (let ((t684 (call-with-values
4752 (wrap-subst118 w654)
4753 (wrap-marks117 w654)))
4754 (lambda (x686 . ignore685) x686))))
4755 (if t684 t684 id653))
4756 (if (syntax-object?98 id653)
4757 (let ((id687 (syntax-object-expression99 id653))
4758 (w1688 (syntax-object-wrap100 id653)))
4761 (wrap-marks117 w654)
4762 (wrap-marks117 w1688))))
4765 (search655 id687 (wrap-subst118 w654) marks689))
4766 (lambda (new-id690 marks691)
4767 (let ((t692 new-id690))
4770 (let ((t693 (call-with-values
4774 (wrap-subst118 w1688)
4776 (lambda (x695 . ignore694)
4778 (if t693 t693 id687))))))))
4785 (let ((t698 (eq? x696 y697)))
4788 (if (not (null? x696))
4789 (if (not (null? y697))
4790 (if (eq? (car x696) (car y697))
4791 (same-marks?135 (cdr x696) (cdr y697))
4796 (lambda (m1699 m2700)
4797 (smart-append132 m1699 m2700)))
4799 (lambda (w1701 w2702)
4800 (let ((m1703 (wrap-marks117 w1701))
4801 (s1704 (wrap-subst118 w1701)))
4806 (wrap-marks117 w2702)
4807 (smart-append132 s1704 (wrap-subst118 w2702))))
4809 (smart-append132 m1703 (wrap-marks117 w2702))
4810 (smart-append132 s1704 (wrap-subst118 w2702)))))))
4812 (lambda (m1705 m2706)
4813 (if (null? m2706) m1705 (append m1705 m2706))))
4814 (make-binding-wrap131
4815 (lambda (ids707 labels708 w709)
4819 (wrap-marks117 w709)
4820 (cons (let ((labelvec710 (list->vector labels708)))
4821 (let ((n711 (vector-length labelvec710)))
4822 (let ((symnamevec712 (make-vector n711))
4823 (marksvec713 (make-vector n711)))
4825 (letrec ((f714 (lambda (ids715 i716)
4826 (if (not (null? ids715))
4829 (id-sym-name&marks115
4851 (wrap-subst118 w709))))))
4853 (lambda (ribcage719 id720 label721)
4855 (set-ribcage-symnames!126
4857 (cons (syntax-object-expression99 id720)
4858 (ribcage-symnames123 ribcage719)))
4859 (set-ribcage-marks!127
4861 (cons (wrap-marks117 (syntax-object-wrap100 id720))
4862 (ribcage-marks124 ribcage719)))
4863 (set-ribcage-labels!128
4865 (cons label721 (ribcage-labels125 ribcage719))))))
4869 (cons #f (wrap-marks117 w722))
4870 (cons (quote shift) (wrap-subst118 w722)))))
4871 (set-ribcage-labels!128
4872 (lambda (x723 update724)
4873 (vector-set! x723 3 update724)))
4874 (set-ribcage-marks!127
4875 (lambda (x725 update726)
4876 (vector-set! x725 2 update726)))
4877 (set-ribcage-symnames!126
4878 (lambda (x727 update728)
4879 (vector-set! x727 1 update728)))
4881 (lambda (x729) (vector-ref x729 3)))
4883 (lambda (x730) (vector-ref x730 2)))
4884 (ribcage-symnames123
4885 (lambda (x731) (vector-ref x731 1)))
4889 (if (= (vector-length x732) 4)
4890 (eq? (vector-ref x732 0) (quote ribcage))
4894 (lambda (symnames733 marks734 labels735)
4904 (cons (gen-label119) (gen-labels120 (cdr ls736))))))
4905 (gen-label119 (lambda () (string #\i)))
4909 (id-sym-name&marks115
4911 (if (syntax-object?98 x737)
4913 (syntax-object-expression99 x737)
4915 (wrap-marks117 w738)
4916 (wrap-marks117 (syntax-object-wrap100 x737))))
4917 (values x737 (wrap-marks117 w738)))))
4922 (if (syntax-object?98 x739)
4923 (symbol? (syntax-object-expression99 x739))
4927 (if (syntax-object?98 x740)
4928 (symbol? (syntax-object-expression99 x740))
4931 (lambda (type741 sym742 val743)
4932 (put-global-definition-hook78
4937 (lambda (x744 r745 mod746)
4938 (let ((t747 (assq x744 r745)))
4942 (let ((t748 (get-global-definition-hook79 x744 mod746)))
4943 (if t748 t748 (quote (global))))
4944 '(displaced-lexical))))))
4949 (let ((a750 (car r749)))
4950 (if (eq? (cadr a750) (quote macro))
4951 (cons a750 (macros-only-env110 (cdr r749)))
4952 (macros-only-env110 (cdr r749)))))))
4954 (lambda (labels751 vars752 r753)
4955 (if (null? labels751)
4960 (cons (cons (car labels751)
4961 (cons (quote lexical) (car vars752)))
4964 (lambda (labels754 bindings755 r756)
4965 (if (null? labels754)
4970 (cons (cons (car labels754) (car bindings755))
4972 (binding-value107 cdr)
4973 (binding-type106 car)
4974 (source-annotation105
4976 (if (syntax-object?98 x757)
4977 (source-annotation105
4978 (syntax-object-expression99 x757))
4980 (let ((props758 (source-properties x757)))
4981 (if (pair? props758) props758 #f))
4983 (set-syntax-object-module!104
4984 (lambda (x759 update760)
4985 (vector-set! x759 3 update760)))
4986 (set-syntax-object-wrap!103
4987 (lambda (x761 update762)
4988 (vector-set! x761 2 update762)))
4989 (set-syntax-object-expression!102
4990 (lambda (x763 update764)
4991 (vector-set! x763 1 update764)))
4992 (syntax-object-module101
4993 (lambda (x765) (vector-ref x765 3)))
4994 (syntax-object-wrap100
4995 (lambda (x766) (vector-ref x766 2)))
4996 (syntax-object-expression99
4997 (lambda (x767) (vector-ref x767 1)))
5001 (if (= (vector-length x768) 4)
5002 (eq? (vector-ref x768 0) (quote syntax-object))
5005 (make-syntax-object97
5006 (lambda (expression769 wrap770 module771)
5013 (lambda (src772 ids773 vars774 val-exps775 body-exp776)
5016 (let ((atom-key777 (fluid-ref *mode*71)))
5017 (if (memv atom-key777 (quote (c)))
5019 (for-each maybe-name-value!88 ids773 val-exps775)
5020 ((@ (language tree-il) make-letrec)
5027 (map list vars774 val-exps775)
5030 (lambda (src778 ids779 vars780 val-exps781 body-exp782)
5031 (let ((f783 (car vars780))
5032 (f-name784 (car ids779))
5033 (vars785 (cdr vars780))
5034 (ids786 (cdr ids779)))
5035 (let ((atom-key787 (fluid-ref *mode*71)))
5036 (if (memv atom-key787 (quote (c)))
5045 (maybe-name-value!88 f-name784 proc788)
5046 (for-each maybe-name-value!88 ids786 val-exps781)
5047 ((@ (language tree-il) make-letrec)
5052 (build-application81
5054 (build-lexical-reference83
5062 (map list vars785 val-exps781)
5065 (lambda (src789 ids790 vars791 val-exps792 body-exp793)
5068 (let ((atom-key794 (fluid-ref *mode*71)))
5069 (if (memv atom-key794 (quote (c)))
5071 (for-each maybe-name-value!88 ids790 val-exps792)
5072 ((@ (language tree-il) make-let)
5079 (map list vars791 val-exps792)
5082 (lambda (src795 exps796)
5083 (if (null? (cdr exps796))
5085 (let ((atom-key797 (fluid-ref *mode*71)))
5086 (if (memv atom-key797 (quote (c)))
5087 ((@ (language tree-il) make-sequence)
5090 (cons (quote begin) exps796))))))
5092 (lambda (src798 exp799)
5093 (let ((atom-key800 (fluid-ref *mode*71)))
5094 (if (memv atom-key800 (quote (c)))
5095 ((@ (language tree-il) make-const) src798 exp799)
5096 (if (if (self-evaluating? exp799)
5097 (not (vector? exp799))
5100 (list (quote quote) exp799))))))
5102 (lambda (src801 name802)
5104 (module-name (current-module))
5106 (let ((atom-key803 (fluid-ref *mode*71)))
5107 (if (memv atom-key803 (quote (c)))
5108 ((@ (language tree-il) make-toplevel-ref)
5112 (let ((atom-key804 (fluid-ref *mode*71)))
5113 (if (memv atom-key804 (quote (c)))
5114 ((@ (language tree-il) make-module-ref)
5119 (list (quote @@) (quote (guile)) name802))))))
5121 (lambda (src805 ids806 vars807 docstring808 exp809)
5122 (let ((atom-key810 (fluid-ref *mode*71)))
5123 (if (memv atom-key810 (quote (c)))
5124 ((@ (language tree-il) make-lambda)
5129 (list (cons (quote documentation) docstring808))
5138 (list exp809))))))))
5139 (build-global-definition89
5140 (lambda (source811 var812 exp813)
5141 (let ((atom-key814 (fluid-ref *mode*71)))
5142 (if (memv atom-key814 (quote (c)))
5144 (maybe-name-value!88 var812 exp813)
5145 ((@ (language tree-il) make-toplevel-define)
5149 (list (quote define) var812 exp813)))))
5150 (maybe-name-value!88
5151 (lambda (name815 val816)
5152 (if ((@ (language tree-il) lambda?) val816)
5154 ((@ (language tree-il) lambda-meta) val816)))
5155 (if (not (assq (quote name) meta817))
5156 ((setter (@ (language tree-il) lambda-meta))
5158 (acons (quote name) name815 meta817)))))))
5159 (build-global-assignment87
5160 (lambda (source818 var819 exp820 mod821)
5164 (lambda (mod822 var823 public?824)
5165 (let ((atom-key825 (fluid-ref *mode*71)))
5166 (if (memv atom-key825 (quote (c)))
5167 ((@ (language tree-il) make-module-set)
5174 (list (if public?824 (quote @) (quote @@))
5179 (let ((atom-key827 (fluid-ref *mode*71)))
5180 (if (memv atom-key827 (quote (c)))
5181 ((@ (language tree-il) make-toplevel-set)
5185 (list (quote set!) var826 exp820)))))))
5186 (build-global-reference86
5187 (lambda (source828 var829 mod830)
5191 (lambda (mod831 var832 public?833)
5192 (let ((atom-key834 (fluid-ref *mode*71)))
5193 (if (memv atom-key834 (quote (c)))
5194 ((@ (language tree-il) make-module-ref)
5199 (list (if public?833 (quote @) (quote @@))
5203 (let ((atom-key836 (fluid-ref *mode*71)))
5204 (if (memv atom-key836 (quote (c)))
5205 ((@ (language tree-il) make-toplevel-ref)
5210 (lambda (mod837 var838 modref-cont839 bare-cont840)
5212 (bare-cont840 var838)
5213 (let ((kind841 (car mod837)) (mod842 (cdr mod837)))
5214 (if (memv kind841 (quote (public)))
5215 (modref-cont839 mod842 var838 #t)
5216 (if (memv kind841 (quote (private)))
5217 (if (not (equal? mod842 (module-name (current-module))))
5218 (modref-cont839 mod842 var838 #f)
5219 (bare-cont840 var838))
5220 (if (memv kind841 (quote (bare)))
5221 (bare-cont840 var838)
5222 (if (memv kind841 (quote (hygiene)))
5223 (if (if (not (equal?
5225 (module-name (current-module))))
5227 (resolve-module mod842)
5230 (modref-cont839 mod842 var838 #f)
5231 (bare-cont840 var838))
5237 (build-lexical-assignment84
5238 (lambda (source843 name844 var845 exp846)
5239 (let ((atom-key847 (fluid-ref *mode*71)))
5240 (if (memv atom-key847 (quote (c)))
5241 ((@ (language tree-il) make-lexical-set)
5246 (list (quote set!) var845 exp846)))))
5247 (build-lexical-reference83
5248 (lambda (type848 source849 name850 var851)
5249 (let ((atom-key852 (fluid-ref *mode*71)))
5250 (if (memv atom-key852 (quote (c)))
5251 ((@ (language tree-il) make-lexical-ref)
5256 (build-conditional82
5257 (lambda (source853 test-exp854 then-exp855 else-exp856)
5258 (let ((atom-key857 (fluid-ref *mode*71)))
5259 (if (memv atom-key857 (quote (c)))
5260 ((@ (language tree-il) make-conditional)
5265 (if (equal? else-exp856 (quote (if #f #f)))
5266 (list (quote if) test-exp854 then-exp855)
5271 (build-application81
5272 (lambda (source858 fun-exp859 arg-exps860)
5273 (let ((atom-key861 (fluid-ref *mode*71)))
5274 (if (memv atom-key861 (quote (c)))
5275 ((@ (language tree-il) make-application)
5279 (cons fun-exp859 arg-exps860)))))
5282 (let ((atom-key863 (fluid-ref *mode*71)))
5283 (if (memv atom-key863 (quote (c)))
5284 ((@ (language tree-il) make-void) source862)
5286 (get-global-definition-hook79
5287 (lambda (symbol864 module865)
5289 (if (if (not module865) (current-module) #f)
5290 (warn "module system is booted, we should have a module"
5292 (let ((v866 (module-variable
5294 (resolve-module (cdr module865))
5298 (if (variable-bound? v866)
5299 (let ((val867 (variable-ref v866)))
5301 (if (syncase-macro-type val867)
5302 (cons (syncase-macro-type val867)
5303 (syncase-macro-binding val867))
5308 (put-global-definition-hook78
5309 (lambda (symbol868 type869 val870)
5311 (let ((v872 (module-variable
5315 (if (variable-bound? v872)
5316 (let ((val873 (variable-ref v872)))
5318 (if (not (syncase-macro-type val873))
5328 (make-extended-syncase-macro
5332 (make-syncase-macro type869 val870))))))
5334 (lambda (x874 mod875)
5337 (let ((atom-key876 (fluid-ref *mode*71)))
5338 (if (memv atom-key876 (quote (c)))
5339 ((@ (language tree-il) tree-il->scheme) x874)
5341 (top-level-eval-hook76
5342 (lambda (x877 mod878)
5345 (let ((atom-key879 (fluid-ref *mode*71)))
5346 (if (memv atom-key879 (quote (c)))
5347 ((@ (language tree-il) tree-il->scheme) x877)
5353 (*mode*71 (make-fluid))
5354 (noexpand70 "noexpand"))
5367 (lambda (e880 r881 w882 s883 mod884)
5371 (apply (lambda (_887 var888 val889 e1890 e2891)
5372 (valid-bound-ids?139 var888))
5375 (apply (lambda (_893 var894 val895 e1896 e2897)
5378 (id-var-name136 x899 w882))
5382 (lambda (id901 n902)
5385 (lookup111 n902 r881 mod884))))
5386 (if (memv atom-key903
5387 '(displaced-lexical))
5390 "identifier out of context"
5401 (source-wrap143 e880 w882 s883 mod884)
5405 (macros-only-env110 r881)))
5408 (eval-local-transformer157
5424 (source-wrap143 e880 w882 s883 mod884)))
5428 '(any #(each (any any)) any . each-any))))
5433 (lambda (e910 r911 w912 s913 mod914)
5437 (apply (lambda (_917 e918)
5438 (build-data92 s913 (strip160 e918 w912)))
5444 (source-wrap143 e910 w912 s913 mod914)))
5446 ($sc-dispatch tmp915 (quote (any any)))))
5453 (let ((atom-key929 (car x928)))
5454 (if (memv atom-key929 (quote (ref)))
5455 (build-lexical-reference83
5460 (if (memv atom-key929 (quote (primitive)))
5461 (build-primref91 #f (cadr x928))
5462 (if (memv atom-key929 (quote (quote)))
5463 (build-data92 #f (cadr x928))
5464 (if (memv atom-key929 (quote (lambda)))
5470 (regen927 (caddr x928)))
5471 (build-application81
5473 (build-primref91 #f (car x928))
5474 (map regen927 (cdr x928))))))))))
5477 (if (eq? (car x930) (quote list))
5478 (cons (quote vector) (cdr x930))
5479 (if (eq? (car x930) (quote quote))
5480 (list (quote quote) (list->vector (cadr x930)))
5481 (list (quote list->vector) x930)))))
5484 (if (equal? y932 (quote (quote ())))
5486 (list (quote append) x931 y932))))
5489 (let ((atom-key935 (car y934)))
5490 (if (memv atom-key935 (quote (quote)))
5491 (if (eq? (car x933) (quote quote))
5493 (cons (cadr x933) (cadr y934)))
5494 (if (eq? (cadr y934) (quote ()))
5495 (list (quote list) x933)
5496 (list (quote cons) x933 y934)))
5497 (if (memv atom-key935 (quote (list)))
5498 (cons (quote list) (cons x933 (cdr y934)))
5499 (list (quote cons) x933 y934))))))
5501 (lambda (e936 map-env937)
5502 (let ((formals938 (map cdr map-env937))
5504 (map (lambda (x940) (list (quote ref) (car x940)))
5506 (if (eq? (car e936) (quote ref))
5510 (if (eq? (car x941) (quote ref))
5511 (memq (cadr x941) formals938)
5515 (cons (list (quote primitive) (car e936))
5516 (map (let ((r942 (map cons
5520 (cdr (assq (cadr x943) r942))))
5523 (cons (list (quote lambda) formals938 e936)
5526 (lambda (e944 map-env945)
5529 (gen-map923 e944 map-env945))))
5531 (lambda (src946 var947 level948 maps949)
5532 (if (fx=74 level948 0)
5533 (values var947 maps949)
5546 (lambda (outer-var950 outer-maps951)
5547 (let ((b952 (assq outer-var950 (car maps949))))
5549 (values (cdr b952) maps949)
5550 (let ((inner-var953 (gen-var161 (quote tmp))))
5553 (cons (cons (cons outer-var950
5556 outer-maps951)))))))))))
5558 (lambda (src954 e955 r956 maps957 ellipsis?958 mod959)
5560 (let ((label960 (id-var-name136 e955 (quote (())))))
5561 (let ((b961 (lookup111 label960 r956 mod959)))
5562 (if (eq? (binding-type106 b961) (quote syntax))
5565 (let ((var.lev962 (binding-value107 b961)))
5571 (lambda (var963 maps964)
5572 (values (list (quote ref) var963) maps964)))
5573 (if (ellipsis?958 e955)
5576 "misplaced ellipsis"
5578 (values (list (quote quote) e955) maps957)))))
5582 (apply (lambda (dots967 e968)
5583 (ellipsis?958 dots967))
5586 (apply (lambda (dots969 e970)
5597 (apply (lambda (x973 dots974 y975)
5598 (ellipsis?958 dots974))
5601 (apply (lambda (x976 dots977 y978)
5602 (letrec ((f979 (lambda (y980 k981)
5606 (apply (lambda (dots987
5612 (apply (lambda (dots989
5622 (if (null? (car maps993))
5631 (cdr maps993))))))))
5673 (lambda (x983 maps984)
5674 (if (null? (car maps984))
5683 (cdr maps984)))))))))
5687 (apply (lambda (x1000 y1001)
5697 (lambda (x1002 maps1003)
5717 (apply (lambda (e11007 e21008)
5737 (list (quote quote) e955)
5742 '#(vector (any . each-any))))))
5748 '(any any . any)))))
5749 ($sc-dispatch tmp965 (quote (any any)))))
5751 (lambda (e1013 r1014 w1015 s1016 mod1017)
5752 (let ((e1018 (source-wrap143 e1013 w1015 s1016 mod1017)))
5756 (apply (lambda (_1021 x1022)
5766 (lambda (e1023 maps1024) (regen927 e1023))))
5774 ($sc-dispatch tmp1019 (quote (any any)))))
5779 (lambda (e1026 r1027 w1028 s1029 mod1030)
5783 (apply (lambda (_1033 c1034)
5784 (chi-lambda-clause155
5785 (source-wrap143 e1026 w1028 s1029 mod1030)
5804 "source expression failed to match any pattern"
5806 ($sc-dispatch tmp1031 (quote (any . any)))))
5811 (letrec ((chi-let1039
5821 (if (not (valid-bound-ids?139 ids1046))
5824 "duplicate bound variable"
5826 (let ((labels1049 (gen-labels120 ids1046))
5827 (new-vars1050 (map gen-var161 ids1046)))
5829 (make-binding-wrap131
5840 (map syntax->datum ids1046)
5842 (map (lambda (x1053)
5843 (chi150 x1053 r1041 w1042 mod1044))
5847 (source-wrap143 e1040 nw1051 s1043 mod1044)
5851 (lambda (e1054 r1055 w1056 s1057 mod1058)
5855 (apply (lambda (_1061 id1062 val1063 e11064 e21065)
5856 (and-map id?114 id1062))
5859 (apply (lambda (_1067 id1068 val1069 e11070 e21071)
5869 (cons e11070 e21071)))
5873 (apply (lambda (_1076
5880 (and-map id?114 id1078)
5884 (apply (lambda (_1083
5899 (cons e11087 e21088)))
5905 (source-wrap143 e1054 w1056 s1057 mod1058)))
5909 '(any any #(each (any any)) any . each-any)))))
5912 '(any #(each (any any)) any . each-any))))
5917 (lambda (e1093 r1094 w1095 s1096 mod1097)
5921 (apply (lambda (_1100 id1101 val1102 e11103 e21104)
5922 (and-map id?114 id1101))
5925 (apply (lambda (_1106 id1107 val1108 e11109 e21110)
5926 (let ((ids1111 id1107))
5927 (if (not (valid-bound-ids?139 ids1111))
5930 "duplicate bound variable"
5932 (let ((labels1113 (gen-labels120 ids1111))
5933 (new-vars1114 (map gen-var161 ids1111)))
5934 (let ((w1115 (make-binding-wrap131
5938 (r1116 (extend-var-env109
5944 (map syntax->datum ids1111)
5946 (map (lambda (x1117)
5947 (chi150 x1117 r1116 w1115 mod1097))
5950 (cons e11109 e21110)
5964 (source-wrap143 e1093 w1095 s1096 mod1097)))
5968 '(any #(each (any any)) any . each-any))))
5973 (lambda (e1121 r1122 w1123 s1124 mod1125)
5977 (apply (lambda (_1128 id1129 val1130) (id?114 id1129))
5980 (apply (lambda (_1131 id1132 val1133)
5981 (let ((val1134 (chi150 val1133 r1122 w1123 mod1125))
5982 (n1135 (id-var-name136 id1132 w1123)))
5983 (let ((b1136 (lookup111 n1135 r1122 mod1125)))
5984 (let ((atom-key1137 (binding-type106 b1136)))
5985 (if (memv atom-key1137 (quote (lexical)))
5986 (build-lexical-assignment84
5988 (syntax->datum id1132)
5989 (binding-value107 b1136)
5991 (if (memv atom-key1137 (quote (global)))
5992 (build-global-assignment87
5997 (if (memv atom-key1137
5998 '(displaced-lexical))
6001 "identifier out of context"
6002 (wrap142 id1132 w1123 mod1125))
6014 (apply (lambda (_1139 head1140 tail1141 val1142)
6031 (if (memv type1143 (quote (module-ref)))
6041 (cons head1140 tail1141)))
6042 (lambda (id1151 mod1152)
6043 (build-global-assignment87
6048 (build-application81
6051 (list '#(syntax-object
6090 #("i" "i" "i" "i" "i"))
6097 eval-local-transformer
6134 set-ribcage-symnames!
6166 set-syntax-object-module!
6167 set-syntax-object-wrap!
6168 set-syntax-object-expression!
6169 syntax-object-module
6171 syntax-object-expression
6182 build-global-definition
6184 build-global-assignment
6185 build-global-reference
6187 build-lexical-assignment
6188 build-lexical-reference
6192 get-global-definition-hook
6193 put-global-definition-hook
6435 (map (lambda (e1153)
6443 (list val1142))))))))
6449 (source-wrap143 e1121 w1123 s1124 mod1125)))
6453 '(any (any . each-any) any)))))
6454 ($sc-dispatch tmp1126 (quote (any any any)))))
6463 (apply (lambda (_1159 mod1160 id1161)
6464 (if (and-map id?114 mod1160)
6469 (apply (lambda (_1163 mod1164 id1165)
6471 (syntax->datum id1165)
6473 (cons '#(syntax-object
6478 #((top) (top) (top))
6481 #(ribcage #(e) #((top)) #("i"))
6488 eval-local-transformer
6525 set-ribcage-symnames!
6557 set-syntax-object-module!
6558 set-syntax-object-wrap!
6559 set-syntax-object-expression!
6560 syntax-object-module
6562 syntax-object-expression
6573 build-global-definition
6575 build-global-assignment
6576 build-global-reference
6578 build-lexical-assignment
6579 build-lexical-reference
6583 get-global-definition-hook
6584 put-global-definition-hook
6817 (define-structure and-map*)
6825 "source expression failed to match any pattern"
6827 ($sc-dispatch tmp1157 (quote (any each-any any)))))
6836 (apply (lambda (_1170 mod1171 id1172)
6837 (if (and-map id?114 mod1171)
6842 (apply (lambda (_1174 mod1175 id1176)
6844 (syntax->datum id1176)
6846 (cons '#(syntax-object
6851 #((top) (top) (top))
6854 #(ribcage #(e) #((top)) #("i"))
6861 eval-local-transformer
6898 set-ribcage-symnames!
6930 set-syntax-object-module!
6931 set-syntax-object-wrap!
6932 set-syntax-object-expression!
6933 syntax-object-module
6935 syntax-object-expression
6946 build-global-definition
6948 build-global-assignment
6949 build-global-reference
6951 build-lexical-assignment
6952 build-lexical-reference
6956 get-global-definition-hook
6957 put-global-definition-hook
7190 (define-structure and-map*)
7198 "source expression failed to match any pattern"
7200 ($sc-dispatch tmp1168 (quote (any each-any any)))))
7205 (lambda (e1178 r1179 w1180 s1181 mod1182)
7209 (apply (lambda (_1185 test1186 then1187)
7210 (build-conditional82
7212 (chi150 test1186 r1179 w1180 mod1182)
7213 (chi150 then1187 r1179 w1180 mod1182)
7218 (apply (lambda (_1189 test1190 then1191 else1192)
7219 (build-conditional82
7221 (chi150 test1190 r1179 w1180 mod1182)
7222 (chi150 then1191 r1179 w1180 mod1182)
7223 (chi150 else1192 r1179 w1180 mod1182)))
7227 "source expression failed to match any pattern"
7229 ($sc-dispatch tmp1183 (quote (any any any any))))))
7230 ($sc-dispatch tmp1183 (quote (any any any)))))
7251 (letrec ((gen-syntax-case1196
7252 (lambda (x1197 keys1198 clauses1199 r1200 mod1201)
7253 (if (null? clauses1199)
7254 (build-application81
7256 (build-primref91 #f (quote syntax-violation))
7257 (list (build-data92 #f #f)
7260 "source expression failed to match any pattern")
7265 (apply (lambda (pat1204 exp1205)
7266 (if (if (id?114 pat1204)
7272 (cons '#(syntax-object
7312 eval-local-transformer
7349 set-ribcage-symnames!
7381 set-syntax-object-module!
7382 set-syntax-object-wrap!
7383 set-syntax-object-expression!
7384 syntax-object-module
7386 syntax-object-expression
7397 build-global-definition
7399 build-global-assignment
7400 build-global-reference
7402 build-lexical-assignment
7403 build-lexical-reference
7407 get-global-definition-hook
7408 put-global-definition-hook
7649 (list (gen-label119)))
7650 (var1208 (gen-var161 pat1204)))
7651 (build-application81
7655 (list (syntax->datum pat1204))
7666 (make-binding-wrap131
7684 (apply (lambda (pat1210 fender1211 exp1212)
7701 ($sc-dispatch tmp1202 (quote (any any any))))))
7702 ($sc-dispatch tmp1202 (quote (any any)))))
7703 (car clauses1199)))))
7715 (convert-pattern1193 pat1218 keys1215))
7716 (lambda (p1222 pvars1223)
7717 (if (not (distinct-bound-ids?140 (map car pvars1223)))
7720 "duplicate pattern variable"
7724 (not (ellipsis?159 (car x1224))))
7728 "misplaced ellipsis"
7730 (let ((y1225 (gen-var161 (quote tmp))))
7731 (build-application81
7738 (let ((y1226 (build-lexical-reference83
7743 (build-conditional82
7748 (apply (lambda () y1226)
7751 (build-conditional82
7754 (build-dispatch-call1194
7760 (build-data92 #f #f)))
7766 (build-dispatch-call1194
7772 (gen-syntax-case1196
7778 (list (if (eq? p1222 (quote any))
7779 (build-application81
7781 (build-primref91 #f (quote list))
7783 (build-application81
7792 (build-dispatch-call1194
7793 (lambda (pvars1230 exp1231 y1232 r1233 mod1234)
7794 (let ((ids1235 (map car pvars1230))
7795 (levels1236 (map cdr pvars1230)))
7796 (let ((labels1237 (gen-labels120 ids1235))
7797 (new-vars1238 (map gen-var161 ids1235)))
7798 (build-application81
7800 (build-primref91 #f (quote apply))
7801 (list (build-lambda90
7803 (map syntax->datum ids1235)
7810 (map (lambda (var1239 level1240)
7812 (cons var1239 level1240)))
7814 (map cdr pvars1230))
7816 (make-binding-wrap131
7822 (convert-pattern1193
7823 (lambda (pattern1241 keys1242)
7825 (lambda (p1244 n1245 ids1246)
7827 (if (bound-id-member?141 p1244 keys1242)
7829 (vector (quote free-id) p1244)
7833 (cons (cons p1244 n1245) ids1246)))
7837 (apply (lambda (x1249 dots1250)
7842 (apply (lambda (x1251 dots1252)
7849 (lambda (p1253 ids1254)
7861 (apply (lambda (x1256 y1257)
7892 (apply (lambda (x1264)
7930 (cvt1243 pattern1241 0 (quote ()))))))
7931 (lambda (e1269 r1270 w1271 s1272 mod1273)
7932 (let ((e1274 (source-wrap143 e1269 w1271 s1272 mod1273)))
7936 (apply (lambda (_1277 val1278 key1279 m1280)
7940 (not (ellipsis?159 x1281))
7943 (let ((x1283 (gen-var161 (quote tmp))))
7944 (build-application81
7951 (gen-syntax-case1196
7952 (build-lexical-reference83
7968 "invalid literals list"
7973 "source expression failed to match any pattern"
7977 '(any any each-any . each-any))))
7980 (lambda (x1287 . rest1286)
7981 (if (if (pair? x1287)
7982 (equal? (car x1287) noexpand70)
7985 (let ((m1288 (if (null? rest1286) (quote e) (car rest1286)))
7987 (if (let ((t1290 (null? rest1286)))
7988 (if t1290 t1290 (null? (cdr rest1286))))
8002 (module-name (current-module))))))))))
8004 (lambda (x1291) (nonsymbol-id?113 x1291)))
8006 (lambda (id1292 datum1293)
8007 (make-syntax-object97
8009 (syntax-object-wrap100 id1292)
8012 (lambda (x1294) (strip160 x1294 (quote (())))))
8013 (set! generate-temporaries
8016 (let ((x1296 ls1295))
8017 (if (not (list? x1296))
8019 'generate-temporaries
8022 (map (lambda (x1297)
8023 (wrap142 (gensym) (quote ((top))) #f))
8025 (set! free-identifier=?
8026 (lambda (x1298 y1299)
8028 (let ((x1300 x1298))
8029 (if (not (nonsymbol-id?113 x1300))
8034 (let ((x1301 y1299))
8035 (if (not (nonsymbol-id?113 x1301))
8040 (free-id=?137 x1298 y1299))))
8041 (set! bound-identifier=?
8042 (lambda (x1302 y1303)
8044 (let ((x1304 x1302))
8045 (if (not (nonsymbol-id?113 x1304))
8050 (let ((x1305 y1303))
8051 (if (not (nonsymbol-id?113 x1305))
8056 (bound-id=?138 x1302 y1303))))
8057 (set! syntax-violation
8058 (lambda (who1309 message1308 form1307 . subform1306)
8060 (let ((x1310 who1309))
8061 (if (not ((lambda (x1311)
8062 (let ((t1312 (not x1311)))
8065 (let ((t1313 (string? x1311)))
8066 (if t1313 t1313 (symbol? x1311))))))
8072 (let ((x1314 message1308))
8073 (if (not (string? x1314))
8082 (if who1309 "~a: " "")
8084 (if (null? subform1306)
8086 "in subform `~s' of `~s'"))
8089 (map (lambda (x1316) (strip160 x1316 (quote (()))))
8090 (append subform1306 (list form1307))))))
8091 (if who1309 (cons who1309 tail1315) tail1315))
8094 (lambda (e1322 p1323 w1324 r1325 mod1326)
8097 (if (eq? p1323 (quote any))
8098 (cons (wrap142 e1322 w1324 mod1326) r1325)
8099 (if (syntax-object?98 e1322)
8101 (syntax-object-expression99 e1322)
8105 (syntax-object-wrap100 e1322))
8107 (syntax-object-module101 e1322))
8108 (match*1320 e1322 p1323 w1324 r1325 mod1326))))))
8110 (lambda (e1327 p1328 w1329 r1330 mod1331)
8112 (if (null? e1327) r1330 #f)
8127 (if (eq? p1328 (quote each-any))
8128 (let ((l1332 (match-each-any1318
8132 (if l1332 (cons l1332 r1330) #f))
8133 (let ((atom-key1333 (vector-ref p1328 0)))
8134 (if (memv atom-key1333 (quote (each)))
8136 (match-empty1319 (vector-ref p1328 1) r1330)
8137 (let ((l1334 (match-each1317
8139 (vector-ref p1328 1)
8143 (letrec ((collect1335
8145 (if (null? (car l1336))
8147 (cons (map car l1336)
8149 (map cdr l1336)))))))
8150 (collect1335 l1334))
8152 (if (memv atom-key1333 (quote (free-id)))
8155 (wrap142 e1327 w1329 mod1331)
8156 (vector-ref p1328 1))
8160 (if (memv atom-key1333 (quote (atom)))
8162 (vector-ref p1328 1)
8163 (strip160 e1327 w1329))
8166 (if (memv atom-key1333 (quote (vector)))
8169 (vector->list e1327)
8170 (vector-ref p1328 1)
8176 (lambda (p1337 r1338)
8179 (if (eq? p1337 (quote any))
8180 (cons (quote ()) r1338)
8184 (match-empty1319 (cdr p1337) r1338))
8185 (if (eq? p1337 (quote each-any))
8186 (cons (quote ()) r1338)
8187 (let ((atom-key1339 (vector-ref p1337 0)))
8188 (if (memv atom-key1339 (quote (each)))
8189 (match-empty1319 (vector-ref p1337 1) r1338)
8190 (if (memv atom-key1339 (quote (free-id atom)))
8192 (if (memv atom-key1339 (quote (vector)))
8194 (vector-ref p1337 1)
8197 (lambda (e1340 w1341 mod1342)
8199 (let ((l1343 (match-each-any1318
8204 (cons (wrap142 (car e1340) w1341 mod1342) l1343)
8208 (if (syntax-object?98 e1340)
8210 (syntax-object-expression99 e1340)
8213 (syntax-object-wrap100 e1340))
8217 (lambda (e1344 p1345 w1346 mod1347)
8233 (if rest1349 (cons first1348 rest1349) #f))
8237 (if (syntax-object?98 e1344)
8239 (syntax-object-expression99 e1344)
8243 (syntax-object-wrap100 e1344))
8244 (syntax-object-module101 e1344))
8247 (lambda (e1350 p1351)
8248 (if (eq? p1351 (quote any))
8250 (if (syntax-object?98 e1350)
8252 (syntax-object-expression99 e1350)
8254 (syntax-object-wrap100 e1350)
8256 (syntax-object-module101 e1350))
8271 (apply (lambda (_1355 e11356 e21357)
8272 (cons '#(syntax-object
8277 #((top) (top) (top))
8280 #(ribcage #(x) #((top)) #("i")))
8282 (cons e11356 e21357)))
8286 (apply (lambda (_1360 out1361 in1362 e11363 e21364)
8287 (list '#(syntax-object
8292 #((top) (top) (top) (top) (top))
8293 #("i" "i" "i" "i" "i"))
8295 #(ribcage #(x) #((top)) #("i")))
8300 (cons '#(syntax-object
8310 #("i" "i" "i" "i" "i"))
8317 (cons e11363 e21364)))))
8321 (apply (lambda (_1367 out1368 in1369 e11370 e21371)
8322 (list '#(syntax-object
8327 #((top) (top) (top) (top) (top))
8328 #("i" "i" "i" "i" "i"))
8330 #(ribcage #(x) #((top)) #("i")))
8332 (cons '#(syntax-object
8342 #("i" "i" "i" "i" "i"))
8352 (cons '#(syntax-object
8373 (cons e11370 e21371)))))
8377 "source expression failed to match any pattern"
8381 '(any #(each (any any)) any . each-any)))))
8384 '(any ((any any)) any . each-any)))))
8387 '(any () any . each-any))))
8390 (define syntax-rules
8397 (apply (lambda (_1378
8402 (list '#(syntax-object
8406 #(_ k keyword pattern template)
8407 #((top) (top) (top) (top) (top))
8408 #("i" "i" "i" "i" "i"))
8410 #(ribcage #(x) #((top)) #("i")))
8416 #(_ k keyword pattern template)
8417 #((top) (top) (top) (top) (top))
8418 #("i" "i" "i" "i" "i"))
8420 #(ribcage #(x) #((top)) #("i")))
8422 (cons '#(syntax-object
8426 #(_ k keyword pattern template)
8427 #((top) (top) (top) (top) (top))
8428 #("i" "i" "i" "i" "i"))
8430 #(ribcage #(x) #((top)) #("i")))
8432 (cons '#(syntax-object
8436 #(_ k keyword pattern template)
8437 #((top) (top) (top) (top) (top))
8438 #("i" "i" "i" "i" "i"))
8440 #(ribcage #(x) #((top)) #("i")))
8443 (map (lambda (tmp1385 tmp1384)
8444 (list (cons '#(syntax-object
8474 (list '#(syntax-object
8509 "source expression failed to match any pattern"
8513 '(any each-any . #(each ((any . any) any))))))
8517 (make-extended-syncase-macro
8518 (module-ref (current-module) (quote let*))
8524 (apply (lambda (let*1389 x1390 v1391 e11392 e21393)
8525 (and-map identifier? x1390))
8528 (apply (lambda (let*1395 x1396 v1397 e11398 e21399)
8529 (letrec ((f1400 (lambda (bindings1401)
8530 (if (null? bindings1401)
8531 (cons '#(syntax-object
8546 #("i" "i" "i" "i" "i"))
8554 (cons e11398 e21399)))
8558 (apply (lambda (body1407
8560 (list '#(syntax-object
8612 "source expression failed to match any pattern"
8617 (list (f1400 (cdr bindings1401))
8618 (car bindings1401)))))))
8619 (f1400 (map list x1396 v1397))))
8623 "source expression failed to match any pattern"
8627 '(any #(each (any any)) any . each-any))))
8631 (make-extended-syncase-macro
8632 (module-ref (current-module) (quote do))
8634 (lambda (orig-x1409)
8638 (apply (lambda (_1412
8648 (apply (lambda (step1421)
8653 (list '#(syntax-object
8734 (list '#(syntax-object
8773 (list '#(syntax-object
8813 (cons '#(syntax-object
8854 (list (cons '#(syntax-object
8897 (apply (lambda (e11429
8899 (list '#(syntax-object
8994 (list '#(syntax-object
9041 (cons '#(syntax-object
9089 (cons '#(syntax-object
9137 (list (cons '#(syntax-object
9187 "source expression failed to match any pattern"
9191 '(any . each-any)))))
9192 ($sc-dispatch tmp1422 (quote ()))))
9197 "source expression failed to match any pattern"
9199 ($sc-dispatch tmp1419 (quote each-any))))
9200 (map (lambda (v1437 s1438)
9204 (apply (lambda () v1437) tmp1440)
9207 (apply (lambda (e1442) e1442)
9212 "bad step expression"
9216 ($sc-dispatch tmp1439 (quote (any))))))
9217 ($sc-dispatch tmp1439 (quote ()))))
9224 "source expression failed to match any pattern"
9228 '(any #(each (any any . any))
9235 (make-extended-syncase-macro
9236 (module-ref (current-module) (quote quasiquote))
9238 (letrec ((quasicons1446
9239 (lambda (x1450 y1451)
9243 (apply (lambda (x1454 y1455)
9247 (apply (lambda (dy1458)
9251 (apply (lambda (dx1461)
9252 (list '#(syntax-object
9305 (list '#(syntax-object
9354 (list '#(syntax-object
9453 (apply (lambda (stuff1464)
9454 (cons '#(syntax-object
9498 (list '#(syntax-object
9557 #("i" "i" "i" "i")))
9582 #((top) (top) (top) (top))
9583 #("i" "i" "i" "i")))
9590 "source expression failed to match any pattern"
9592 ($sc-dispatch tmp1452 (quote (any any)))))
9593 (list x1450 y1451))))
9595 (lambda (x1466 y1467)
9599 (apply (lambda (x1470 y1471)
9603 (apply (lambda () x1470) tmp1473)
9605 (list '#(syntax-object
9631 #("i" "i" "i" "i")))
9657 #((top) (top) (top) (top))
9658 #("i" "i" "i" "i")))
9665 "source expression failed to match any pattern"
9667 ($sc-dispatch tmp1468 (quote (any any)))))
9668 (list x1466 y1467))))
9676 (apply (lambda (x1480)
9677 (list '#(syntax-object
9699 #((top) (top) (top) (top))
9700 #("i" "i" "i" "i")))
9702 (list->vector x1480)))
9706 (apply (lambda (x1483)
9707 (cons '#(syntax-object
9733 #("i" "i" "i" "i")))
9738 (list '#(syntax-object
9760 #((top) (top) (top) (top))
9761 #("i" "i" "i" "i")))
9771 #(ribcage #(x) #((top)) #("i"))
9774 #(ribcage #(x) #((top)) #("i"))
9780 #((top) (top) (top) (top))
9781 #("i" "i" "i" "i")))
9791 #(ribcage #(x) #((top)) #("i"))
9794 #(ribcage #(x) #((top)) #("i"))
9800 #((top) (top) (top) (top))
9801 #("i" "i" "i" "i")))
9808 (lambda (p1486 lev1487)
9812 (apply (lambda (p1490)
9819 #(ribcage #(p) #((top)) #("i"))
9830 #((top) (top) (top) (top))
9831 #("i" "i" "i" "i")))
9836 #(ribcage #(p) #((top)) #("i"))
9847 #((top) (top) (top) (top))
9848 #("i" "i" "i" "i")))
9850 (quasi1449 (list p1490) (- lev1487 1)))))
9854 (apply (lambda (args1492) (= lev1487 0))
9857 (apply (lambda (args1493)
9860 "unquote takes exactly one argument"
9862 (cons '#(syntax-object
9879 #((top) (top) (top) (top))
9880 #("i" "i" "i" "i")))
9886 (apply (lambda (p1495 q1496)
9890 (quasi1449 q1496 lev1487))
9914 #("i" "i" "i" "i")))
9937 #("i" "i" "i" "i")))
9942 (quasi1449 q1496 lev1487))))
9946 (apply (lambda (args1498 q1499)
9950 (apply (lambda (args1500 q1501)
9953 "unquote-splicing takes exactly one argument"
9955 (cons '#(syntax-object
9988 (apply (lambda (p1503)
10054 (apply (lambda (p1505 q1506)
10065 (apply (lambda (x1508)
10072 (list '#(syntax-object
10108 '#(vector each-any)))))
10118 #(ribcage () () ())
10128 #((top) (top) (top) (top))
10129 #("i" "i" "i" "i")))
10138 #(ribcage () () ())
10148 #((top) (top) (top) (top))
10149 #("i" "i" "i" "i")))
10161 #(ribcage () () ())
10171 #((top) (top) (top) (top))
10172 #("i" "i" "i" "i")))
10183 #(ribcage () () ())
10189 #(quasicons quasiappend quasivector quasi)
10190 #((top) (top) (top) (top))
10191 #("i" "i" "i" "i")))
10201 #(ribcage () () ())
10202 #(ribcage #(p lev) #((top) (top)) #("i" "i"))
10204 #(quasicons quasiappend quasivector quasi)
10205 #((top) (top) (top) (top))
10206 #("i" "i" "i" "i")))
10214 (apply (lambda (_1514 e1515) (quasi1449 e1515 0))
10218 "source expression failed to match any pattern"
10220 ($sc-dispatch tmp1512 (quote (any any)))))
10224 (make-syncase-macro
10227 (letrec ((read-file1517
10228 (lambda (fn1518 k1519)
10229 (let ((p1520 (open-input-file fn1518)))
10230 (letrec ((f1521 (lambda (x1522)
10231 (if (eof-object? x1522)
10233 (close-input-port p1520)
10235 (cons (datum->syntax k1519 x1522)
10236 (f1521 (read p1520)))))))
10237 (f1521 (read p1520)))))))
10241 (apply (lambda (k1525 filename1526)
10242 (let ((fn1527 (syntax->datum filename1526)))
10246 (apply (lambda (exp1530)
10247 (cons '#(syntax-object
10254 #(ribcage () () ())
10255 #(ribcage () () ())
10277 "source expression failed to match any pattern"
10279 ($sc-dispatch tmp1528 (quote each-any))))
10280 (read-file1517 fn1527 k1525))))
10284 "source expression failed to match any pattern"
10286 ($sc-dispatch tmp1523 (quote (any any)))))
10290 (make-syncase-macro
10296 (apply (lambda (_1535 e1536)
10299 "expression not valid outside of quasiquote"
10304 "source expression failed to match any pattern"
10306 ($sc-dispatch tmp1533 (quote (any any)))))
10309 (define unquote-splicing
10310 (make-syncase-macro
10316 (apply (lambda (_1540 e1541)
10319 "expression not valid outside of quasiquote"
10324 "source expression failed to match any pattern"
10326 ($sc-dispatch tmp1538 (quote (any any)))))
10330 (make-extended-syncase-macro
10331 (module-ref (current-module) (quote case))
10337 (apply (lambda (_1545 e1546 m11547 m21548)
10339 ((lambda (body1550)
10340 (list '#(syntax-object
10343 #(ribcage #(body) #((top)) #("i"))
10346 #((top) (top) (top) (top))
10347 #("i" "i" "i" "i"))
10348 #(ribcage () () ())
10349 #(ribcage #(x) #((top)) #("i")))
10351 (list (list '#(syntax-object
10360 #((top) (top) (top) (top))
10361 #("i" "i" "i" "i"))
10362 #(ribcage () () ())
10371 (letrec ((f1551 (lambda (clause1552 clauses1553)
10372 (if (null? clauses1553)
10376 (apply (lambda (e11557
10378 (cons '#(syntax-object
10430 (apply (lambda (k1561
10433 (list '#(syntax-object
10483 (list '#(syntax-object
10583 (list '#(syntax-object
10634 (cons '#(syntax-object
10706 #(ribcage () () ())
10708 #(f clause clauses)
10709 #((top) (top) (top))
10717 #("i" "i" "i" "i"))
10718 #(ribcage () () ())
10729 ((lambda (rest1568)
10733 (apply (lambda (k1571
10736 (list '#(syntax-object
10790 (list '#(syntax-object
10898 (list '#(syntax-object
10953 (cons '#(syntax-object
11026 (f1551 (car clauses1553)
11027 (cdr clauses1553)))))))
11028 (f1551 m11547 m21548))))
11032 "source expression failed to match any pattern"
11036 '(any any any . each-any))))
11039 (define identifier-syntax
11040 (make-syncase-macro
11046 (apply (lambda (_1580 e1581)
11047 (list '#(syntax-object
11050 #(ribcage #(_ e) #((top) (top)) #("i" "i"))
11051 #(ribcage () () ())
11052 #(ribcage #(x) #((top)) #("i")))
11057 #(ribcage #(_ e) #((top) (top)) #("i" "i"))
11058 #(ribcage () () ())
11059 #(ribcage #(x) #((top)) #("i")))
11061 (list '#(syntax-object
11068 #(ribcage () () ())
11069 #(ribcage #(x) #((top)) #("i")))
11078 #(ribcage () () ())
11079 #(ribcage #(x) #((top)) #("i")))
11082 (list '#(syntax-object
11089 #(ribcage () () ())
11090 #(ribcage #(x) #((top)) #("i")))
11099 #(ribcage () () ())
11100 #(ribcage #(x) #((top)) #("i")))
11109 #(ribcage () () ())
11110 #(ribcage #(x) #((top)) #("i")))
11119 #(ribcage () () ())
11120 #(ribcage #(x) #((top)) #("i")))
11122 (list '#(syntax-object
11129 #(ribcage () () ())
11144 #(ribcage () () ())
11157 #(ribcage () () ())
11163 (list '#(syntax-object
11170 #(ribcage () () ())
11184 #(ribcage () () ())
11197 #(ribcage () () ())
11207 "source expression failed to match any pattern"
11209 ($sc-dispatch tmp1578 (quote (any any)))))