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-list163
33 (lambda (vars289 ls290 w291)
37 (cons (wrap143 (car vars289) w291 #f) ls290)
40 (cons (wrap143 vars289 w291 #f) ls290)
43 (if (syntax-object?99 vars289)
45 (syntax-object-expression100 vars289)
49 (syntax-object-wrap101 vars289)))
50 (cons vars289 ls290))))))))
51 (lvl288 vars287 (quote ()) (quote (()))))))
54 (let ((id293 (if (syntax-object?99 id292)
55 (syntax-object-expression100 id292)
58 (string-append (symbol->string id293) " ")))))
61 (if (memq (quote top) (wrap-marks118 w295))
63 (letrec ((f296 (lambda (x297)
64 (if (syntax-object?99 x297)
66 (syntax-object-expression100 x297)
67 (syntax-object-wrap101 x297))
69 (let ((a298 (f296 (car x297)))
70 (d299 (f296 (cdr x297))))
71 (if (if (eq? a298 (car x297))
77 (let ((old300 (vector->list x297)))
78 (let ((new301 (map f296 old300)))
79 (if (and-map*17 eq? old300 new301)
81 (list->vector new301))))
86 (if (nonsymbol-id?114 x302)
94 #(ribcage #(x) #((top)) #("i"))
101 eval-local-transformer
138 set-ribcage-symnames!
170 set-syntax-object-module!
171 set-syntax-object-wrap!
172 set-syntax-object-expression!
175 syntax-object-expression
186 build-global-definition
188 build-global-assignment
189 build-global-reference
191 build-lexical-assignment
192 build-lexical-reference
197 get-global-definition-hook
198 put-global-definition-hook
433 (define-structure and-map*)
438 (chi-void159 (lambda () (build-void81 #f)))
439 (eval-local-transformer158
440 (lambda (expanded303 mod304)
441 (let ((p305 (local-eval-hook77 expanded303 mod304)))
442 (if (procedure? p305)
446 "nonprocedure transformer"
449 (lambda (rec?306 e307 r308 w309 s310 mod311 k312)
453 (apply (lambda (_315 id316 val317 e1318 e2319)
454 (let ((ids320 id316))
455 (if (not (valid-bound-ids?140 ids320))
458 "duplicate bound keyword"
460 (let ((labels322 (gen-labels121 ids320)))
462 (make-binding-wrap132
466 (k312 (cons e1318 e2319)
469 (let ((w325 (if rec?306
477 (eval-local-transformer158
493 "bad local syntax definition"
494 (source-wrap144 e307 w309 s310 mod311)))
498 '(any #(each (any any)) any . each-any))))
500 (chi-lambda-clause156
501 (lambda (e330 docstring331 c332 r333 w334 mod335 k336)
505 (apply (lambda (args339 doc340 e1341 e2342)
506 (if (string? (syntax->datum doc340))
511 (apply (lambda (args343 doc344 e1345 e2346)
512 (chi-lambda-clause156
515 (cons args343 (cons e1345 e2346))
523 (apply (lambda (id349 e1350 e2351)
524 (let ((ids352 id349))
525 (if (not (valid-bound-ids?140 ids352))
528 "invalid parameter list"
531 (gen-labels121 ids352))
533 (map gen-var162 ids352)))
534 (k336 (map syntax->datum ids352)
537 (syntax->datum docstring331)
546 (make-binding-wrap132
554 (apply (lambda (ids358 e1359 e2360)
556 (lambda-var-list163 ids358)))
557 (if (not (valid-bound-ids?140
561 "invalid parameter list"
569 (k336 (letrec ((f364 (lambda (ls1365
578 (f364 (cdr old-ids361)
580 (letrec ((f367 (lambda (ls1368
587 (f367 (cdr new-vars363)
600 (make-binding-wrap132
614 '(any any . each-any)))))
617 '(each-any any . each-any)))))
620 '(any any any . each-any))))
623 (lambda (body372 outer-form373 r374 w375 mod376)
624 (let ((r377 (cons (quote ("placeholder" placeholder)) r374)))
630 (let ((w379 (make-wrap117
632 (cons ribcage378 (wrap-subst119 w375)))))
644 "no expressions in body"
646 (let ((e389 (cdar body381))
647 (er390 (caar body381)))
654 (source-annotation106 er390)
666 (let ((id397 (wrap143
670 (label398 (gen-label120)))
681 (cons label398 labels383)
682 (cons id397 var-ids384)
683 (cons var399 vars385)
694 '(define-syntax-form))
695 (let ((id400 (wrap143
699 (label401 (gen-label120)))
708 (cons label401 labels383)
727 (letrec ((f406 (lambda (forms407)
735 (f406 (cdr forms407)))))))
746 "source expression failed to match any pattern"
753 '(local-syntax-form))
767 (letrec ((f414 (lambda (forms415)
775 (f414 (cdr forms415)))))))
800 (if (not (valid-bound-ids?140
804 "invalid or duplicate identifier in definition"
810 (if (not (null? bs418))
811 (let ((b421 (car bs418)))
814 (let ((er422 (cadr b421)))
824 (eval-local-transformer158
875 (cdr body381))))))))))))))))))
878 (cons r377 (wrap143 x388 w379 mod376)))
887 (lambda (p426 e427 r428 w429 rib430 mod431)
888 (letrec ((rebuild-macro-output432
891 (cons (rebuild-macro-output432 (car x433) m434)
892 (rebuild-macro-output432 (cdr x433) m434))
893 (if (syntax-object?99 x433)
894 (let ((w435 (syntax-object-wrap101 x433)))
895 (let ((ms436 (wrap-marks118 w435))
896 (s437 (wrap-subst119 w435)))
897 (if (if (pair? ms436)
900 (make-syntax-object98
901 (syntax-object-expression100 x433)
905 (cons rib430 (cdr s437))
907 (syntax-object-module102 x433))
908 (make-syntax-object98
909 (syntax-object-expression100 x433)
914 (cons (quote shift) s437))
915 (cons (quote shift) s437)))
917 (procedure-module p426)))
920 (module-name pmod438))
921 '(hygiene guile)))))))
923 (let ((n439 (vector-length x433)))
924 (let ((v440 (make-vector n439)))
927 (if (fx=74 i442 n439)
928 (begin (if #f #f) v440)
933 (rebuild-macro-output432
944 "encountered raw symbol in macro output"
945 (source-wrap144 e427 w429 s mod431)
948 (rebuild-macro-output432
949 (p426 (wrap143 e427 (anti-mark130 w429) mod431))
952 (lambda (x443 e444 r445 w446 s447 mod448)
956 (apply (lambda (e0451 e1452)
961 (chi151 e453 r445 w446 mod448))
966 "source expression failed to match any pattern"
968 ($sc-dispatch tmp449 (quote (any . each-any)))))
971 (lambda (type455 value456 e457 r458 w459 s460 mod461)
972 (if (memv type455 (quote (lexical)))
973 (build-lexical-reference84
978 (if (memv type455 (quote (core core-form)))
979 (value456 e457 r458 w459 s460 mod461)
980 (if (memv type455 (quote (module-ref)))
982 (lambda () (value456 e457))
983 (lambda (id462 mod463)
984 (build-global-reference87 s460 id462 mod463)))
985 (if (memv type455 (quote (lexical-call)))
987 (build-lexical-reference84
989 (source-annotation106 (car e457))
997 (if (memv type455 (quote (global-call)))
999 (build-global-reference87
1000 (source-annotation106 (car e457))
1001 (if (syntax-object?99 value456)
1002 (syntax-object-expression100 value456)
1004 (if (syntax-object?99 value456)
1005 (syntax-object-module102 value456)
1012 (if (memv type455 (quote (constant)))
1016 (source-wrap144 e457 w459 s460 mod461)
1018 (if (memv type455 (quote (global)))
1019 (build-global-reference87 s460 value456 mod461)
1020 (if (memv type455 (quote (call)))
1022 (chi151 (car e457) r458 w459 mod461)
1028 (if (memv type455 (quote (begin-form)))
1032 (apply (lambda (_466 e1467 e2468)
1042 "source expression failed to match any pattern"
1046 '(any any . each-any))))
1048 (if (memv type455 (quote (local-syntax-form)))
1049 (chi-local-syntax157
1057 (if (memv type455 (quote (eval-when-form)))
1061 (apply (lambda (_472
1082 "source expression failed to match any pattern"
1086 '(any each-any any . each-any))))
1090 define-syntax-form))
1093 "definition in expression context"
1095 (wrap143 value456 w459 mod461))
1096 (if (memv type455 (quote (syntax)))
1099 "reference to pattern variable outside syntax form"
1106 '(displaced-lexical))
1109 "reference to identifier outside its scope"
1122 mod461))))))))))))))))))
1124 (lambda (e479 r480 w481 mod482)
1131 (source-annotation106 e479)
1135 (lambda (type483 value484 e485 w486 s487 mod488)
1145 (lambda (e489 r490 w491 m492 esew493 mod494)
1152 (source-annotation106 e489)
1156 (lambda (type502 value503 e504 w505 s506 mod507)
1157 (if (memv type502 (quote (begin-form)))
1161 (apply (lambda (_510) (chi-void159)) tmp509)
1164 (apply (lambda (_512 e1513 e2514)
1165 (chi-top-sequence146
1176 "source expression failed to match any pattern"
1180 '(any any . each-any)))))
1181 ($sc-dispatch tmp508 (quote (any)))))
1183 (if (memv type502 (quote (local-syntax-form)))
1184 (chi-local-syntax157
1191 (lambda (body516 r517 w518 s519 mod520)
1192 (chi-top-sequence146
1200 (if (memv type502 (quote (eval-when-form)))
1204 (apply (lambda (_523 x524 e1525 e2526)
1210 (body528 (cons e1525 e2526)))
1211 (if (eq? m492 (quote e))
1214 (chi-top-sequence146
1225 (if (let ((t531 (memq 'compile
1234 (chi-top-sequence146
1244 (chi-top-sequence146
1253 (if (let ((t532 (memq 'compile
1263 (top-level-eval-hook76
1264 (chi-top-sequence146
1278 "source expression failed to match any pattern"
1282 '(any each-any any . each-any))))
1284 (if (memv type502 (quote (define-syntax-form)))
1285 (let ((n533 (id-var-name137 value503 w505))
1286 (r534 (macros-only-env111 r490)))
1287 (if (memv m492 (quote (c)))
1288 (if (memq (quote compile) esew493)
1289 (let ((e535 (chi-install-global147
1297 (top-level-eval-hook76 e535 mod507)
1298 (if (memq (quote load) esew493)
1301 (if (memq (quote load) esew493)
1302 (chi-install-global147
1304 (chi151 e504 r534 w505 mod507))
1306 (if (memv m492 (quote (c&e)))
1307 (let ((e536 (chi-install-global147
1315 (top-level-eval-hook76 e536 mod507)
1318 (if (memq (quote eval) esew493)
1319 (top-level-eval-hook76
1320 (chi-install-global147
1322 (chi151 e504 r534 w505 mod507))
1325 (if (memv type502 (quote (define-form)))
1326 (let ((n537 (id-var-name137 value503 w505)))
1329 (lookup112 n537 r490 mod507))))
1331 '(global core macro module-ref))
1333 (if (if (not (module-local-variable
1342 (let ((x539 (build-global-definition90
1351 (if (eq? m492 (quote c&e))
1352 (top-level-eval-hook76 x539 mod507))
1355 '(displaced-lexical))
1358 "identifier out of context"
1360 (wrap143 value503 w505 mod507))
1363 "cannot define keyword at top level"
1365 (wrap143 value503 w505 mod507))))))
1366 (let ((x540 (chi-expr152
1375 (if (eq? m492 (quote c&e))
1376 (top-level-eval-hook76 x540 mod507))
1379 (lambda (e541 r542 w543 s544 rib545 mod546 for-car?547)
1381 (let ((n548 (id-var-name137 e541 w543)))
1382 (let ((b549 (lookup112 n548 r542 mod546)))
1383 (let ((type550 (binding-type107 b549)))
1384 (if (memv type550 (quote (lexical)))
1387 (binding-value108 b549)
1392 (if (memv type550 (quote (global)))
1393 (values type550 n548 e541 w543 s544 mod546)
1394 (if (memv type550 (quote (macro)))
1398 (binding-value108 b549)
1405 (binding-value108 b549)
1419 (binding-value108 b549)
1425 (let ((first551 (car e541)))
1436 (lambda (ftype552 fval553 fe554 fw555 fs556 fmod557)
1437 (if (memv ftype552 (quote (lexical)))
1445 (if (memv ftype552 (quote (global)))
1448 (make-syntax-object98 fval553 w543 fmod557)
1453 (if (memv ftype552 (quote (macro)))
1468 (if (memv ftype552 (quote (module-ref)))
1470 (lambda () (fval553 e541))
1471 (lambda (sym558 mod559)
1480 (if (memv ftype552 (quote (core)))
1488 (if (memv ftype552 (quote (local-syntax)))
1496 (if (memv ftype552 (quote (begin)))
1504 (if (memv ftype552 (quote (eval-when)))
1512 (if (memv ftype552 (quote (define)))
1516 (apply (lambda (_562
1523 (apply (lambda (_565
1536 (apply (lambda (_569
1543 (valid-bound-ids?140
1549 (apply (lambda (_574
1561 (cons '#(syntax-object
1655 eval-local-transformer
1692 set-ribcage-symnames!
1724 set-syntax-object-module!
1725 set-syntax-object-wrap!
1726 set-syntax-object-expression!
1727 syntax-object-module
1729 syntax-object-expression
1740 build-global-definition
1742 build-global-assignment
1743 build-global-reference
1745 build-lexical-assignment
1746 build-lexical-reference
1751 get-global-definition-hook
1752 put-global-definition-hook
2008 (apply (lambda (_581
2014 (apply (lambda (_583
2107 eval-local-transformer
2144 set-ribcage-symnames!
2176 set-syntax-object-module!
2177 set-syntax-object-wrap!
2178 set-syntax-object-expression!
2179 syntax-object-module
2181 syntax-object-expression
2192 build-global-definition
2194 build-global-assignment
2195 build-global-reference
2197 build-lexical-assignment
2198 build-lexical-reference
2203 get-global-definition-hook
2204 put-global-definition-hook
2532 eval-local-transformer
2569 set-ribcage-symnames!
2601 set-syntax-object-module!
2602 set-syntax-object-wrap!
2603 set-syntax-object-expression!
2604 syntax-object-module
2606 syntax-object-expression
2617 build-global-definition
2619 build-global-assignment
2620 build-global-reference
2622 build-lexical-assignment
2623 build-lexical-reference
2628 get-global-definition-hook
2629 put-global-definition-hook
2957 eval-local-transformer
2994 set-ribcage-symnames!
3026 set-syntax-object-module!
3027 set-syntax-object-wrap!
3028 set-syntax-object-expression!
3029 syntax-object-module
3031 syntax-object-expression
3042 build-global-definition
3044 build-global-assignment
3045 build-global-reference
3047 build-lexical-assignment
3048 build-lexical-reference
3053 get-global-definition-hook
3054 put-global-definition-hook
3303 "source expression failed to match any pattern"
3323 (apply (lambda (_587
3330 (apply (lambda (_590
3343 "source expression failed to match any pattern"
3355 mod546))))))))))))))
3356 (if (syntax-object?99 e541)
3358 (syntax-object-expression100 e541)
3360 (join-wraps134 w543 (syntax-object-wrap101 e541))
3363 (let ((t593 (syntax-object-module102 e541)))
3364 (if t593 t593 mod546))
3366 (if (self-evaluating? e541)
3374 (values (quote other) #f e541 w543 s544 mod546)))))))
3376 (lambda (e594 when-list595 w596)
3377 (letrec ((f597 (lambda (when-list598 situations599)
3378 (if (null? when-list598)
3380 (f597 (cdr when-list598)
3381 (cons (let ((x600 (car when-list598)))
3416 eval-local-transformer
3453 set-ribcage-symnames!
3485 set-syntax-object-module!
3486 set-syntax-object-wrap!
3487 set-syntax-object-expression!
3488 syntax-object-module
3490 syntax-object-expression
3501 build-global-definition
3503 build-global-assignment
3504 build-global-reference
3506 build-lexical-assignment
3507 build-lexical-reference
3512 get-global-definition-hook
3513 put-global-definition-hook
3788 eval-local-transformer
3825 set-ribcage-symnames!
3857 set-syntax-object-module!
3858 set-syntax-object-wrap!
3859 set-syntax-object-expression!
3860 syntax-object-module
3862 syntax-object-expression
3873 build-global-definition
3875 build-global-assignment
3876 build-global-reference
3878 build-lexical-assignment
3879 build-lexical-reference
3884 get-global-definition-hook
3885 put-global-definition-hook
4177 eval-local-transformer
4214 set-ribcage-symnames!
4246 set-syntax-object-module!
4247 set-syntax-object-wrap!
4248 set-syntax-object-expression!
4249 syntax-object-module
4251 syntax-object-expression
4262 build-global-definition
4264 build-global-assignment
4265 build-global-reference
4267 build-lexical-assignment
4268 build-lexical-reference
4273 get-global-definition-hook
4274 put-global-definition-hook
4524 (f597 when-list595 (quote ())))))
4525 (chi-install-global147
4526 (lambda (name601 e602)
4527 (build-global-definition90
4530 (if (let ((v603 (module-variable (current-module) name601)))
4532 (if (variable-bound? v603)
4533 (if (macro? (variable-ref v603))
4534 (not (eq? (macro-type (variable-ref v603))
4539 (build-application82
4543 'make-extended-syncase-macro)
4544 (list (build-application82
4546 (build-primref92 #f (quote module-ref))
4547 (list (build-application82
4553 (build-data93 #f name601)))
4554 (build-data93 #f (quote macro))
4556 (build-application82
4558 (build-primref92 #f (quote make-syncase-macro))
4559 (list (build-data93 #f (quote macro)) e602))))))
4560 (chi-top-sequence146
4561 (lambda (body604 r605 w606 s607 m608 esew609 mod610)
4565 (lambda (body612 r613 w614 m615 esew616 mod617)
4584 (dobody611 body604 r605 w606 m608 esew609 mod610)))))
4586 (lambda (body619 r620 w621 s622 mod623)
4590 (lambda (body625 r626 w627 mod628)
4605 (dobody624 body619 r620 w621 mod623)))))
4607 (lambda (x630 w631 s632 defmod633)
4609 (decorate-source80 x630 s632)
4613 (lambda (x634 w635 defmod636)
4614 (if (if (null? (wrap-marks118 w635))
4615 (null? (wrap-subst119 w635))
4618 (if (syntax-object?99 x634)
4619 (make-syntax-object98
4620 (syntax-object-expression100 x634)
4621 (join-wraps134 w635 (syntax-object-wrap101 x634))
4622 (syntax-object-module102 x634))
4625 (make-syntax-object98 x634 w635 defmod636))))))
4626 (bound-id-member?142
4627 (lambda (x637 list638)
4628 (if (not (null? list638))
4629 (let ((t639 (bound-id=?139 x637 (car list638))))
4632 (bound-id-member?142 x637 (cdr list638))))
4634 (distinct-bound-ids?141
4636 (letrec ((distinct?641
4638 (let ((t643 (null? ids642)))
4641 (if (not (bound-id-member?142
4644 (distinct?641 (cdr ids642))
4646 (distinct?641 ids640))))
4647 (valid-bound-ids?140
4649 (if (letrec ((all-ids?645
4651 (let ((t647 (null? ids646)))
4654 (if (id?115 (car ids646))
4655 (all-ids?645 (cdr ids646))
4657 (all-ids?645 ids644))
4658 (distinct-bound-ids?141 ids644)
4662 (if (if (syntax-object?99 i648)
4663 (syntax-object?99 j649)
4665 (if (eq? (syntax-object-expression100 i648)
4666 (syntax-object-expression100 j649))
4668 (wrap-marks118 (syntax-object-wrap101 i648))
4669 (wrap-marks118 (syntax-object-wrap101 j649)))
4674 (if (eq? (let ((x652 i650))
4675 (if (syntax-object?99 x652)
4676 (syntax-object-expression100 x652)
4679 (if (syntax-object?99 x653)
4680 (syntax-object-expression100 x653)
4682 (eq? (id-var-name137 i650 (quote (())))
4683 (id-var-name137 j651 (quote (()))))
4686 (lambda (id654 w655)
4687 (letrec ((search-vector-rib658
4693 (let ((n669 (vector-length symnames667)))
4694 (letrec ((f670 (lambda (i671)
4695 (if (fx=74 i671 n669)
4700 (if (if (eq? (vector-ref
4717 (f670 (fx+72 i671 1)))))))
4725 (letrec ((f677 (lambda (symnames678 i679)
4726 (if (null? symnames678)
4731 (if (if (eq? (car symnames678)
4746 (f677 (cdr symnames678)
4747 (fx+72 i679 1)))))))
4748 (f677 symnames675 0))))
4750 (lambda (sym680 subst681 marks682)
4751 (if (null? subst681)
4752 (values #f marks682)
4753 (let ((fst683 (car subst681)))
4754 (if (eq? fst683 (quote shift))
4760 (ribcage-symnames124 fst683)))
4761 (if (vector? symnames684)
4762 (search-vector-rib658
4775 (let ((t685 (call-with-values
4779 (wrap-subst119 w655)
4780 (wrap-marks118 w655)))
4781 (lambda (x687 . ignore686) x687))))
4782 (if t685 t685 id654))
4783 (if (syntax-object?99 id654)
4784 (let ((id688 (syntax-object-expression100 id654))
4785 (w1689 (syntax-object-wrap101 id654)))
4788 (wrap-marks118 w655)
4789 (wrap-marks118 w1689))))
4792 (search656 id688 (wrap-subst119 w655) marks690))
4793 (lambda (new-id691 marks692)
4794 (let ((t693 new-id691))
4797 (let ((t694 (call-with-values
4801 (wrap-subst119 w1689)
4803 (lambda (x696 . ignore695)
4805 (if t694 t694 id688))))))))
4812 (let ((t699 (eq? x697 y698)))
4815 (if (not (null? x697))
4816 (if (not (null? y698))
4817 (if (eq? (car x697) (car y698))
4818 (same-marks?136 (cdr x697) (cdr y698))
4823 (lambda (m1700 m2701)
4824 (smart-append133 m1700 m2701)))
4826 (lambda (w1702 w2703)
4827 (let ((m1704 (wrap-marks118 w1702))
4828 (s1705 (wrap-subst119 w1702)))
4833 (wrap-marks118 w2703)
4834 (smart-append133 s1705 (wrap-subst119 w2703))))
4836 (smart-append133 m1704 (wrap-marks118 w2703))
4837 (smart-append133 s1705 (wrap-subst119 w2703)))))))
4839 (lambda (m1706 m2707)
4840 (if (null? m2707) m1706 (append m1706 m2707))))
4841 (make-binding-wrap132
4842 (lambda (ids708 labels709 w710)
4846 (wrap-marks118 w710)
4847 (cons (let ((labelvec711 (list->vector labels709)))
4848 (let ((n712 (vector-length labelvec711)))
4849 (let ((symnamevec713 (make-vector n712))
4850 (marksvec714 (make-vector n712)))
4852 (letrec ((f715 (lambda (ids716 i717)
4853 (if (not (null? ids716))
4856 (id-sym-name&marks116
4878 (wrap-subst119 w710))))))
4880 (lambda (ribcage720 id721 label722)
4882 (set-ribcage-symnames!127
4884 (cons (syntax-object-expression100 id721)
4885 (ribcage-symnames124 ribcage720)))
4886 (set-ribcage-marks!128
4888 (cons (wrap-marks118 (syntax-object-wrap101 id721))
4889 (ribcage-marks125 ribcage720)))
4890 (set-ribcage-labels!129
4892 (cons label722 (ribcage-labels126 ribcage720))))))
4896 (cons #f (wrap-marks118 w723))
4897 (cons (quote shift) (wrap-subst119 w723)))))
4898 (set-ribcage-labels!129
4899 (lambda (x724 update725)
4900 (vector-set! x724 3 update725)))
4901 (set-ribcage-marks!128
4902 (lambda (x726 update727)
4903 (vector-set! x726 2 update727)))
4904 (set-ribcage-symnames!127
4905 (lambda (x728 update729)
4906 (vector-set! x728 1 update729)))
4908 (lambda (x730) (vector-ref x730 3)))
4910 (lambda (x731) (vector-ref x731 2)))
4911 (ribcage-symnames124
4912 (lambda (x732) (vector-ref x732 1)))
4916 (if (= (vector-length x733) 4)
4917 (eq? (vector-ref x733 0) (quote ribcage))
4921 (lambda (symnames734 marks735 labels736)
4931 (cons (gen-label120) (gen-labels121 (cdr ls737))))))
4932 (gen-label120 (lambda () (string #\i)))
4936 (id-sym-name&marks116
4938 (if (syntax-object?99 x738)
4940 (syntax-object-expression100 x738)
4942 (wrap-marks118 w739)
4943 (wrap-marks118 (syntax-object-wrap101 x738))))
4944 (values x738 (wrap-marks118 w739)))))
4949 (if (syntax-object?99 x740)
4950 (symbol? (syntax-object-expression100 x740))
4954 (if (syntax-object?99 x741)
4955 (symbol? (syntax-object-expression100 x741))
4958 (lambda (type742 sym743 val744)
4959 (put-global-definition-hook78
4964 (lambda (x745 r746 mod747)
4965 (let ((t748 (assq x745 r746)))
4969 (let ((t749 (get-global-definition-hook79 x745 mod747)))
4970 (if t749 t749 (quote (global))))
4971 '(displaced-lexical))))))
4976 (let ((a751 (car r750)))
4977 (if (eq? (cadr a751) (quote macro))
4978 (cons a751 (macros-only-env111 (cdr r750)))
4979 (macros-only-env111 (cdr r750)))))))
4981 (lambda (labels752 vars753 r754)
4982 (if (null? labels752)
4987 (cons (cons (car labels752)
4988 (cons (quote lexical) (car vars753)))
4991 (lambda (labels755 bindings756 r757)
4992 (if (null? labels755)
4997 (cons (cons (car labels755) (car bindings756))
4999 (binding-value108 cdr)
5000 (binding-type107 car)
5001 (source-annotation106
5003 (if (syntax-object?99 x758)
5004 (source-annotation106
5005 (syntax-object-expression100 x758))
5007 (let ((props759 (source-properties x758)))
5008 (if (pair? props759) props759 #f))
5010 (set-syntax-object-module!105
5011 (lambda (x760 update761)
5012 (vector-set! x760 3 update761)))
5013 (set-syntax-object-wrap!104
5014 (lambda (x762 update763)
5015 (vector-set! x762 2 update763)))
5016 (set-syntax-object-expression!103
5017 (lambda (x764 update765)
5018 (vector-set! x764 1 update765)))
5019 (syntax-object-module102
5020 (lambda (x766) (vector-ref x766 3)))
5021 (syntax-object-wrap101
5022 (lambda (x767) (vector-ref x767 2)))
5023 (syntax-object-expression100
5024 (lambda (x768) (vector-ref x768 1)))
5028 (if (= (vector-length x769) 4)
5029 (eq? (vector-ref x769 0) (quote syntax-object))
5032 (make-syntax-object98
5033 (lambda (expression770 wrap771 module772)
5040 (lambda (src773 ids774 vars775 val-exps776 body-exp777)
5043 (let ((atom-key778 (fluid-ref *mode*71)))
5044 (if (memv atom-key778 (quote (c)))
5046 (for-each maybe-name-value!89 ids774 val-exps776)
5047 ((@ (language tree-il) make-letrec)
5055 (map list vars775 val-exps776)
5059 (lambda (src779 ids780 vars781 val-exps782 body-exp783)
5060 (let ((f784 (car vars781))
5061 (f-name785 (car ids780))
5062 (vars786 (cdr vars781))
5063 (ids787 (cdr ids780)))
5064 (let ((atom-key788 (fluid-ref *mode*71)))
5065 (if (memv atom-key788 (quote (c)))
5074 (maybe-name-value!89 f-name785 proc789)
5075 (for-each maybe-name-value!89 ids787 val-exps782)
5076 ((@ (language tree-il) make-letrec)
5081 (build-application82
5083 (build-lexical-reference84
5092 (map list vars786 val-exps782)
5096 (lambda (src790 ids791 vars792 val-exps793 body-exp794)
5099 (let ((atom-key795 (fluid-ref *mode*71)))
5100 (if (memv atom-key795 (quote (c)))
5102 (for-each maybe-name-value!89 ids791 val-exps793)
5103 ((@ (language tree-il) make-let)
5111 (map list vars792 val-exps793)
5115 (lambda (src796 exps797)
5116 (if (null? (cdr exps797))
5118 (let ((atom-key798 (fluid-ref *mode*71)))
5119 (if (memv atom-key798 (quote (c)))
5120 ((@ (language tree-il) make-sequence)
5124 (cons (quote begin) exps797)
5127 (lambda (src799 exp800)
5128 (let ((atom-key801 (fluid-ref *mode*71)))
5129 (if (memv atom-key801 (quote (c)))
5130 ((@ (language tree-il) make-const) src799 exp800)
5132 (if (if (self-evaluating? exp800)
5133 (not (vector? exp800))
5136 (list (quote quote) exp800))
5139 (lambda (src802 name803)
5141 (module-name (current-module))
5143 (let ((atom-key804 (fluid-ref *mode*71)))
5144 (if (memv atom-key804 (quote (c)))
5145 ((@ (language tree-il) make-toplevel-ref)
5148 (decorate-source80 name803 src802)))
5149 (let ((atom-key805 (fluid-ref *mode*71)))
5150 (if (memv atom-key805 (quote (c)))
5151 ((@ (language tree-il) make-module-ref)
5157 (list (quote @@) (quote (guile)) name803)
5160 (lambda (src806 ids807 vars808 docstring809 exp810)
5161 (let ((atom-key811 (fluid-ref *mode*71)))
5162 (if (memv atom-key811 (quote (c)))
5163 ((@ (language tree-il) make-lambda)
5168 (list (cons (quote documentation) docstring809))
5180 (build-global-definition90
5181 (lambda (source812 var813 exp814)
5182 (let ((atom-key815 (fluid-ref *mode*71)))
5183 (if (memv atom-key815 (quote (c)))
5185 (maybe-name-value!89 var813 exp814)
5186 ((@ (language tree-il) make-toplevel-define)
5191 (list (quote define) var813 exp814)
5193 (maybe-name-value!89
5194 (lambda (name816 val817)
5195 (if ((@ (language tree-il) lambda?) val817)
5197 ((@ (language tree-il) lambda-meta) val817)))
5198 (if (not (assq (quote name) meta818))
5199 ((setter (@ (language tree-il) lambda-meta))
5201 (acons (quote name) name816 meta818)))))))
5202 (build-global-assignment88
5203 (lambda (source819 var820 exp821 mod822)
5207 (lambda (mod823 var824 public?825)
5208 (let ((atom-key826 (fluid-ref *mode*71)))
5209 (if (memv atom-key826 (quote (c)))
5210 ((@ (language tree-il) make-module-set)
5218 (list (if public?825 (quote @) (quote @@))
5224 (let ((atom-key828 (fluid-ref *mode*71)))
5225 (if (memv atom-key828 (quote (c)))
5226 ((@ (language tree-il) make-toplevel-set)
5231 (list (quote set!) var827 exp821)
5233 (build-global-reference87
5234 (lambda (source829 var830 mod831)
5238 (lambda (mod832 var833 public?834)
5239 (let ((atom-key835 (fluid-ref *mode*71)))
5240 (if (memv atom-key835 (quote (c)))
5241 ((@ (language tree-il) make-module-ref)
5247 (list (if public?834 (quote @) (quote @@))
5252 (let ((atom-key837 (fluid-ref *mode*71)))
5253 (if (memv atom-key837 (quote (c)))
5254 ((@ (language tree-il) make-toplevel-ref)
5257 (decorate-source80 var836 source829)))))))
5259 (lambda (mod838 var839 modref-cont840 bare-cont841)
5261 (bare-cont841 var839)
5262 (let ((kind842 (car mod838)) (mod843 (cdr mod838)))
5263 (if (memv kind842 (quote (public)))
5264 (modref-cont840 mod843 var839 #t)
5265 (if (memv kind842 (quote (private)))
5266 (if (not (equal? mod843 (module-name (current-module))))
5267 (modref-cont840 mod843 var839 #f)
5268 (bare-cont841 var839))
5269 (if (memv kind842 (quote (bare)))
5270 (bare-cont841 var839)
5271 (if (memv kind842 (quote (hygiene)))
5272 (if (if (not (equal?
5274 (module-name (current-module))))
5276 (resolve-module mod843)
5279 (modref-cont840 mod843 var839 #f)
5280 (bare-cont841 var839))
5286 (build-lexical-assignment85
5287 (lambda (source844 name845 var846 exp847)
5288 (let ((atom-key848 (fluid-ref *mode*71)))
5289 (if (memv atom-key848 (quote (c)))
5290 ((@ (language tree-il) make-lexical-set)
5296 (list (quote set!) var846 exp847)
5298 (build-lexical-reference84
5299 (lambda (type849 source850 name851 var852)
5300 (let ((atom-key853 (fluid-ref *mode*71)))
5301 (if (memv atom-key853 (quote (c)))
5302 ((@ (language tree-il) make-lexical-ref)
5306 (decorate-source80 var852 source850)))))
5307 (build-conditional83
5308 (lambda (source854 test-exp855 then-exp856 else-exp857)
5309 (let ((atom-key858 (fluid-ref *mode*71)))
5310 (if (memv atom-key858 (quote (c)))
5311 ((@ (language tree-il) make-conditional)
5317 (if (equal? else-exp857 (quote (if #f #f)))
5318 (list (quote if) test-exp855 then-exp856)
5324 (build-application82
5325 (lambda (source859 fun-exp860 arg-exps861)
5326 (let ((atom-key862 (fluid-ref *mode*71)))
5327 (if (memv atom-key862 (quote (c)))
5328 ((@ (language tree-il) make-application)
5333 (cons fun-exp860 arg-exps861)
5337 (let ((atom-key864 (fluid-ref *mode*71)))
5338 (if (memv atom-key864 (quote (c)))
5339 ((@ (language tree-il) make-void) source863)
5340 (decorate-source80 (quote (if #f #f)) source863)))))
5344 (if (if (pair? e865) s866 #f)
5345 (set-source-properties! e865 s866))
5347 (get-global-definition-hook79
5348 (lambda (symbol867 module868)
5350 (if (if (not module868) (current-module) #f)
5351 (warn "module system is booted, we should have a module"
5353 (let ((v869 (module-variable
5355 (resolve-module (cdr module868))
5359 (if (variable-bound? v869)
5360 (let ((val870 (variable-ref v869)))
5362 (if (syncase-macro-type val870)
5363 (cons (syncase-macro-type val870)
5364 (syncase-macro-binding val870))
5369 (put-global-definition-hook78
5370 (lambda (symbol871 type872 val873)
5372 (let ((v875 (module-variable
5376 (if (variable-bound? v875)
5377 (let ((val876 (variable-ref v875)))
5379 (if (not (syncase-macro-type val876))
5389 (make-extended-syncase-macro
5393 (make-syncase-macro type872 val873))))))
5395 (lambda (x877 mod878)
5398 (let ((atom-key879 (fluid-ref *mode*71)))
5399 (if (memv atom-key879 (quote (c)))
5400 ((@ (language tree-il) tree-il->scheme) x877)
5402 (top-level-eval-hook76
5403 (lambda (x880 mod881)
5406 (let ((atom-key882 (fluid-ref *mode*71)))
5407 (if (memv atom-key882 (quote (c)))
5408 ((@ (language tree-il) tree-il->scheme) x880)
5414 (*mode*71 (make-fluid))
5415 (noexpand70 "noexpand"))
5428 (lambda (e883 r884 w885 s886 mod887)
5432 (apply (lambda (_890 var891 val892 e1893 e2894)
5433 (valid-bound-ids?140 var891))
5436 (apply (lambda (_896 var897 val898 e1899 e2900)
5439 (id-var-name137 x902 w885))
5443 (lambda (id904 n905)
5446 (lookup112 n905 r884 mod887))))
5447 (if (memv atom-key906
5448 '(displaced-lexical))
5451 "identifier out of context"
5462 (source-wrap144 e883 w885 s886 mod887)
5466 (macros-only-env111 r884)))
5469 (eval-local-transformer158
5485 (source-wrap144 e883 w885 s886 mod887)))
5489 '(any #(each (any any)) any . each-any))))
5494 (lambda (e913 r914 w915 s916 mod917)
5498 (apply (lambda (_920 e921)
5499 (build-data93 s916 (strip161 e921 w915)))
5505 (source-wrap144 e913 w915 s916 mod917)))
5507 ($sc-dispatch tmp918 (quote (any any)))))
5514 (let ((atom-key932 (car x931)))
5515 (if (memv atom-key932 (quote (ref)))
5516 (build-lexical-reference84
5521 (if (memv atom-key932 (quote (primitive)))
5522 (build-primref92 #f (cadr x931))
5523 (if (memv atom-key932 (quote (quote)))
5524 (build-data93 #f (cadr x931))
5525 (if (memv atom-key932 (quote (lambda)))
5531 (regen930 (caddr x931)))
5532 (build-application82
5534 (build-primref92 #f (car x931))
5535 (map regen930 (cdr x931))))))))))
5538 (if (eq? (car x933) (quote list))
5539 (cons (quote vector) (cdr x933))
5540 (if (eq? (car x933) (quote quote))
5541 (list (quote quote) (list->vector (cadr x933)))
5542 (list (quote list->vector) x933)))))
5545 (if (equal? y935 (quote (quote ())))
5547 (list (quote append) x934 y935))))
5550 (let ((atom-key938 (car y937)))
5551 (if (memv atom-key938 (quote (quote)))
5552 (if (eq? (car x936) (quote quote))
5554 (cons (cadr x936) (cadr y937)))
5555 (if (eq? (cadr y937) (quote ()))
5556 (list (quote list) x936)
5557 (list (quote cons) x936 y937)))
5558 (if (memv atom-key938 (quote (list)))
5559 (cons (quote list) (cons x936 (cdr y937)))
5560 (list (quote cons) x936 y937))))))
5562 (lambda (e939 map-env940)
5563 (let ((formals941 (map cdr map-env940))
5565 (map (lambda (x943) (list (quote ref) (car x943)))
5567 (if (eq? (car e939) (quote ref))
5571 (if (eq? (car x944) (quote ref))
5572 (memq (cadr x944) formals941)
5576 (cons (list (quote primitive) (car e939))
5577 (map (let ((r945 (map cons
5581 (cdr (assq (cadr x946) r945))))
5584 (cons (list (quote lambda) formals941 e939)
5587 (lambda (e947 map-env948)
5590 (gen-map926 e947 map-env948))))
5592 (lambda (src949 var950 level951 maps952)
5593 (if (fx=74 level951 0)
5594 (values var950 maps952)
5607 (lambda (outer-var953 outer-maps954)
5608 (let ((b955 (assq outer-var953 (car maps952))))
5610 (values (cdr b955) maps952)
5611 (let ((inner-var956 (gen-var162 (quote tmp))))
5614 (cons (cons (cons outer-var953
5617 outer-maps954)))))))))))
5619 (lambda (src957 e958 r959 maps960 ellipsis?961 mod962)
5621 (let ((label963 (id-var-name137 e958 (quote (())))))
5622 (let ((b964 (lookup112 label963 r959 mod962)))
5623 (if (eq? (binding-type107 b964) (quote syntax))
5626 (let ((var.lev965 (binding-value108 b964)))
5632 (lambda (var966 maps967)
5633 (values (list (quote ref) var966) maps967)))
5634 (if (ellipsis?961 e958)
5637 "misplaced ellipsis"
5639 (values (list (quote quote) e958) maps960)))))
5643 (apply (lambda (dots970 e971)
5644 (ellipsis?961 dots970))
5647 (apply (lambda (dots972 e973)
5658 (apply (lambda (x976 dots977 y978)
5659 (ellipsis?961 dots977))
5662 (apply (lambda (x979 dots980 y981)
5663 (letrec ((f982 (lambda (y983 k984)
5667 (apply (lambda (dots990
5673 (apply (lambda (dots992
5683 (if (null? (car maps996))
5692 (cdr maps996))))))))
5734 (lambda (x986 maps987)
5735 (if (null? (car maps987))
5744 (cdr maps987)))))))))
5748 (apply (lambda (x1003 y1004)
5758 (lambda (x1005 maps1006)
5778 (apply (lambda (e11010 e21011)
5798 (list (quote quote) e958)
5803 '#(vector (any . each-any))))))
5809 '(any any . any)))))
5810 ($sc-dispatch tmp968 (quote (any any)))))
5812 (lambda (e1016 r1017 w1018 s1019 mod1020)
5813 (let ((e1021 (source-wrap144 e1016 w1018 s1019 mod1020)))
5817 (apply (lambda (_1024 x1025)
5827 (lambda (e1026 maps1027) (regen930 e1026))))
5835 ($sc-dispatch tmp1022 (quote (any any)))))
5840 (lambda (e1029 r1030 w1031 s1032 mod1033)
5844 (apply (lambda (_1036 c1037)
5845 (chi-lambda-clause156
5846 (source-wrap144 e1029 w1031 s1032 mod1033)
5865 "source expression failed to match any pattern"
5867 ($sc-dispatch tmp1034 (quote (any . any)))))
5872 (letrec ((chi-let1042
5882 (if (not (valid-bound-ids?140 ids1049))
5885 "duplicate bound variable"
5887 (let ((labels1052 (gen-labels121 ids1049))
5888 (new-vars1053 (map gen-var162 ids1049)))
5890 (make-binding-wrap132
5901 (map syntax->datum ids1049)
5903 (map (lambda (x1056)
5904 (chi151 x1056 r1044 w1045 mod1047))
5908 (source-wrap144 e1043 nw1054 s1046 mod1047)
5912 (lambda (e1057 r1058 w1059 s1060 mod1061)
5916 (apply (lambda (_1064 id1065 val1066 e11067 e21068)
5917 (and-map id?115 id1065))
5920 (apply (lambda (_1070 id1071 val1072 e11073 e21074)
5930 (cons e11073 e21074)))
5934 (apply (lambda (_1079
5941 (and-map id?115 id1081)
5945 (apply (lambda (_1086
5960 (cons e11090 e21091)))
5966 (source-wrap144 e1057 w1059 s1060 mod1061)))
5970 '(any any #(each (any any)) any . each-any)))))
5973 '(any #(each (any any)) any . each-any))))
5978 (lambda (e1096 r1097 w1098 s1099 mod1100)
5982 (apply (lambda (_1103 id1104 val1105 e11106 e21107)
5983 (and-map id?115 id1104))
5986 (apply (lambda (_1109 id1110 val1111 e11112 e21113)
5987 (let ((ids1114 id1110))
5988 (if (not (valid-bound-ids?140 ids1114))
5991 "duplicate bound variable"
5993 (let ((labels1116 (gen-labels121 ids1114))
5994 (new-vars1117 (map gen-var162 ids1114)))
5995 (let ((w1118 (make-binding-wrap132
5999 (r1119 (extend-var-env110
6005 (map syntax->datum ids1114)
6007 (map (lambda (x1120)
6008 (chi151 x1120 r1119 w1118 mod1100))
6011 (cons e11112 e21113)
6025 (source-wrap144 e1096 w1098 s1099 mod1100)))
6029 '(any #(each (any any)) any . each-any))))
6034 (lambda (e1124 r1125 w1126 s1127 mod1128)
6038 (apply (lambda (_1131 id1132 val1133) (id?115 id1132))
6041 (apply (lambda (_1134 id1135 val1136)
6042 (let ((val1137 (chi151 val1136 r1125 w1126 mod1128))
6043 (n1138 (id-var-name137 id1135 w1126)))
6044 (let ((b1139 (lookup112 n1138 r1125 mod1128)))
6045 (let ((atom-key1140 (binding-type107 b1139)))
6046 (if (memv atom-key1140 (quote (lexical)))
6047 (build-lexical-assignment85
6049 (syntax->datum id1135)
6050 (binding-value108 b1139)
6052 (if (memv atom-key1140 (quote (global)))
6053 (build-global-assignment88
6058 (if (memv atom-key1140
6059 '(displaced-lexical))
6062 "identifier out of context"
6063 (wrap143 id1135 w1126 mod1128))
6075 (apply (lambda (_1142 head1143 tail1144 val1145)
6092 (if (memv type1146 (quote (module-ref)))
6102 (cons head1143 tail1144)))
6103 (lambda (id1154 mod1155)
6104 (build-global-assignment88
6109 (build-application82
6112 (list '#(syntax-object
6151 #("i" "i" "i" "i" "i"))
6158 eval-local-transformer
6195 set-ribcage-symnames!
6227 set-syntax-object-module!
6228 set-syntax-object-wrap!
6229 set-syntax-object-expression!
6230 syntax-object-module
6232 syntax-object-expression
6243 build-global-definition
6245 build-global-assignment
6246 build-global-reference
6248 build-lexical-assignment
6249 build-lexical-reference
6254 get-global-definition-hook
6255 put-global-definition-hook
6499 (map (lambda (e1156)
6507 (list val1145))))))))
6513 (source-wrap144 e1124 w1126 s1127 mod1128)))
6517 '(any (any . each-any) any)))))
6518 ($sc-dispatch tmp1129 (quote (any any any)))))
6527 (apply (lambda (_1162 mod1163 id1164)
6528 (if (and-map id?115 mod1163)
6533 (apply (lambda (_1166 mod1167 id1168)
6535 (syntax->datum id1168)
6537 (cons '#(syntax-object
6542 #((top) (top) (top))
6545 #(ribcage #(e) #((top)) #("i"))
6552 eval-local-transformer
6589 set-ribcage-symnames!
6621 set-syntax-object-module!
6622 set-syntax-object-wrap!
6623 set-syntax-object-expression!
6624 syntax-object-module
6626 syntax-object-expression
6637 build-global-definition
6639 build-global-assignment
6640 build-global-reference
6642 build-lexical-assignment
6643 build-lexical-reference
6648 get-global-definition-hook
6649 put-global-definition-hook
6884 (define-structure and-map*)
6892 "source expression failed to match any pattern"
6894 ($sc-dispatch tmp1160 (quote (any each-any any)))))
6903 (apply (lambda (_1173 mod1174 id1175)
6904 (if (and-map id?115 mod1174)
6909 (apply (lambda (_1177 mod1178 id1179)
6911 (syntax->datum id1179)
6913 (cons '#(syntax-object
6918 #((top) (top) (top))
6921 #(ribcage #(e) #((top)) #("i"))
6928 eval-local-transformer
6965 set-ribcage-symnames!
6997 set-syntax-object-module!
6998 set-syntax-object-wrap!
6999 set-syntax-object-expression!
7000 syntax-object-module
7002 syntax-object-expression
7013 build-global-definition
7015 build-global-assignment
7016 build-global-reference
7018 build-lexical-assignment
7019 build-lexical-reference
7024 get-global-definition-hook
7025 put-global-definition-hook
7260 (define-structure and-map*)
7268 "source expression failed to match any pattern"
7270 ($sc-dispatch tmp1171 (quote (any each-any any)))))
7275 (lambda (e1181 r1182 w1183 s1184 mod1185)
7279 (apply (lambda (_1188 test1189 then1190)
7280 (build-conditional83
7282 (chi151 test1189 r1182 w1183 mod1185)
7283 (chi151 then1190 r1182 w1183 mod1185)
7288 (apply (lambda (_1192 test1193 then1194 else1195)
7289 (build-conditional83
7291 (chi151 test1193 r1182 w1183 mod1185)
7292 (chi151 then1194 r1182 w1183 mod1185)
7293 (chi151 else1195 r1182 w1183 mod1185)))
7297 "source expression failed to match any pattern"
7299 ($sc-dispatch tmp1186 (quote (any any any any))))))
7300 ($sc-dispatch tmp1186 (quote (any any any)))))
7321 (letrec ((gen-syntax-case1199
7322 (lambda (x1200 keys1201 clauses1202 r1203 mod1204)
7323 (if (null? clauses1202)
7324 (build-application82
7326 (build-primref92 #f (quote syntax-violation))
7327 (list (build-data93 #f #f)
7330 "source expression failed to match any pattern")
7335 (apply (lambda (pat1207 exp1208)
7336 (if (if (id?115 pat1207)
7342 (cons '#(syntax-object
7382 eval-local-transformer
7419 set-ribcage-symnames!
7451 set-syntax-object-module!
7452 set-syntax-object-wrap!
7453 set-syntax-object-expression!
7454 syntax-object-module
7456 syntax-object-expression
7467 build-global-definition
7469 build-global-assignment
7470 build-global-reference
7472 build-lexical-assignment
7473 build-lexical-reference
7478 get-global-definition-hook
7479 put-global-definition-hook
7722 (list (gen-label120)))
7723 (var1211 (gen-var162 pat1207)))
7724 (build-application82
7728 (list (syntax->datum pat1207))
7739 (make-binding-wrap132
7757 (apply (lambda (pat1213 fender1214 exp1215)
7774 ($sc-dispatch tmp1205 (quote (any any any))))))
7775 ($sc-dispatch tmp1205 (quote (any any)))))
7776 (car clauses1202)))))
7788 (convert-pattern1196 pat1221 keys1218))
7789 (lambda (p1225 pvars1226)
7790 (if (not (distinct-bound-ids?141 (map car pvars1226)))
7793 "duplicate pattern variable"
7797 (not (ellipsis?160 (car x1227))))
7801 "misplaced ellipsis"
7803 (let ((y1228 (gen-var162 (quote tmp))))
7804 (build-application82
7811 (let ((y1229 (build-lexical-reference84
7816 (build-conditional83
7821 (apply (lambda () y1229)
7824 (build-conditional83
7827 (build-dispatch-call1197
7833 (build-data93 #f #f)))
7839 (build-dispatch-call1197
7845 (gen-syntax-case1199
7851 (list (if (eq? p1225 (quote any))
7852 (build-application82
7854 (build-primref92 #f (quote list))
7856 (build-application82
7865 (build-dispatch-call1197
7866 (lambda (pvars1233 exp1234 y1235 r1236 mod1237)
7867 (let ((ids1238 (map car pvars1233))
7868 (levels1239 (map cdr pvars1233)))
7869 (let ((labels1240 (gen-labels121 ids1238))
7870 (new-vars1241 (map gen-var162 ids1238)))
7871 (build-application82
7873 (build-primref92 #f (quote apply))
7874 (list (build-lambda91
7876 (map syntax->datum ids1238)
7883 (map (lambda (var1242 level1243)
7885 (cons var1242 level1243)))
7887 (map cdr pvars1233))
7889 (make-binding-wrap132
7895 (convert-pattern1196
7896 (lambda (pattern1244 keys1245)
7898 (lambda (p1247 n1248 ids1249)
7900 (if (bound-id-member?142 p1247 keys1245)
7902 (vector (quote free-id) p1247)
7906 (cons (cons p1247 n1248) ids1249)))
7910 (apply (lambda (x1252 dots1253)
7915 (apply (lambda (x1254 dots1255)
7922 (lambda (p1256 ids1257)
7934 (apply (lambda (x1259 y1260)
7965 (apply (lambda (x1267)
8003 (cvt1246 pattern1244 0 (quote ()))))))
8004 (lambda (e1272 r1273 w1274 s1275 mod1276)
8005 (let ((e1277 (source-wrap144 e1272 w1274 s1275 mod1276)))
8009 (apply (lambda (_1280 val1281 key1282 m1283)
8013 (not (ellipsis?160 x1284))
8016 (let ((x1286 (gen-var162 (quote tmp))))
8017 (build-application82
8024 (gen-syntax-case1199
8025 (build-lexical-reference84
8041 "invalid literals list"
8046 "source expression failed to match any pattern"
8050 '(any any each-any . each-any))))
8053 (lambda (x1290 . rest1289)
8054 (if (if (pair? x1290)
8055 (equal? (car x1290) noexpand70)
8058 (let ((m1291 (if (null? rest1289) (quote e) (car rest1289)))
8060 (if (let ((t1293 (null? rest1289)))
8061 (if t1293 t1293 (null? (cdr rest1289))))
8075 (module-name (current-module))))))))))
8077 (lambda (x1294) (nonsymbol-id?114 x1294)))
8079 (lambda (id1295 datum1296)
8080 (make-syntax-object98
8082 (syntax-object-wrap101 id1295)
8085 (lambda (x1297) (strip161 x1297 (quote (())))))
8086 (set! generate-temporaries
8089 (let ((x1299 ls1298))
8090 (if (not (list? x1299))
8092 'generate-temporaries
8095 (map (lambda (x1300)
8096 (wrap143 (gensym) (quote ((top))) #f))
8098 (set! free-identifier=?
8099 (lambda (x1301 y1302)
8101 (let ((x1303 x1301))
8102 (if (not (nonsymbol-id?114 x1303))
8107 (let ((x1304 y1302))
8108 (if (not (nonsymbol-id?114 x1304))
8113 (free-id=?138 x1301 y1302))))
8114 (set! bound-identifier=?
8115 (lambda (x1305 y1306)
8117 (let ((x1307 x1305))
8118 (if (not (nonsymbol-id?114 x1307))
8123 (let ((x1308 y1306))
8124 (if (not (nonsymbol-id?114 x1308))
8129 (bound-id=?139 x1305 y1306))))
8130 (set! syntax-violation
8131 (lambda (who1312 message1311 form1310 . subform1309)
8133 (let ((x1313 who1312))
8134 (if (not ((lambda (x1314)
8135 (let ((t1315 (not x1314)))
8138 (let ((t1316 (string? x1314)))
8139 (if t1316 t1316 (symbol? x1314))))))
8145 (let ((x1317 message1311))
8146 (if (not (string? x1317))
8155 (if who1312 "~a: " "")
8157 (if (null? subform1309)
8159 "in subform `~s' of `~s'"))
8162 (map (lambda (x1319) (strip161 x1319 (quote (()))))
8163 (append subform1309 (list form1310))))))
8164 (if who1312 (cons who1312 tail1318) tail1318))
8167 (lambda (e1325 p1326 w1327 r1328 mod1329)
8170 (if (eq? p1326 (quote any))
8171 (cons (wrap143 e1325 w1327 mod1329) r1328)
8172 (if (syntax-object?99 e1325)
8174 (syntax-object-expression100 e1325)
8178 (syntax-object-wrap101 e1325))
8180 (syntax-object-module102 e1325))
8181 (match*1323 e1325 p1326 w1327 r1328 mod1329))))))
8183 (lambda (e1330 p1331 w1332 r1333 mod1334)
8185 (if (null? e1330) r1333 #f)
8200 (if (eq? p1331 (quote each-any))
8201 (let ((l1335 (match-each-any1321
8205 (if l1335 (cons l1335 r1333) #f))
8206 (let ((atom-key1336 (vector-ref p1331 0)))
8207 (if (memv atom-key1336 (quote (each)))
8209 (match-empty1322 (vector-ref p1331 1) r1333)
8210 (let ((l1337 (match-each1320
8212 (vector-ref p1331 1)
8216 (letrec ((collect1338
8218 (if (null? (car l1339))
8220 (cons (map car l1339)
8222 (map cdr l1339)))))))
8223 (collect1338 l1337))
8225 (if (memv atom-key1336 (quote (free-id)))
8228 (wrap143 e1330 w1332 mod1334)
8229 (vector-ref p1331 1))
8233 (if (memv atom-key1336 (quote (atom)))
8235 (vector-ref p1331 1)
8236 (strip161 e1330 w1332))
8239 (if (memv atom-key1336 (quote (vector)))
8242 (vector->list e1330)
8243 (vector-ref p1331 1)
8249 (lambda (p1340 r1341)
8252 (if (eq? p1340 (quote any))
8253 (cons (quote ()) r1341)
8257 (match-empty1322 (cdr p1340) r1341))
8258 (if (eq? p1340 (quote each-any))
8259 (cons (quote ()) r1341)
8260 (let ((atom-key1342 (vector-ref p1340 0)))
8261 (if (memv atom-key1342 (quote (each)))
8262 (match-empty1322 (vector-ref p1340 1) r1341)
8263 (if (memv atom-key1342 (quote (free-id atom)))
8265 (if (memv atom-key1342 (quote (vector)))
8267 (vector-ref p1340 1)
8270 (lambda (e1343 w1344 mod1345)
8272 (let ((l1346 (match-each-any1321
8277 (cons (wrap143 (car e1343) w1344 mod1345) l1346)
8281 (if (syntax-object?99 e1343)
8283 (syntax-object-expression100 e1343)
8286 (syntax-object-wrap101 e1343))
8290 (lambda (e1347 p1348 w1349 mod1350)
8306 (if rest1352 (cons first1351 rest1352) #f))
8310 (if (syntax-object?99 e1347)
8312 (syntax-object-expression100 e1347)
8316 (syntax-object-wrap101 e1347))
8317 (syntax-object-module102 e1347))
8320 (lambda (e1353 p1354)
8321 (if (eq? p1354 (quote any))
8323 (if (syntax-object?99 e1353)
8325 (syntax-object-expression100 e1353)
8327 (syntax-object-wrap101 e1353)
8329 (syntax-object-module102 e1353))
8344 (apply (lambda (_1358 e11359 e21360)
8345 (cons '#(syntax-object
8350 #((top) (top) (top))
8353 #(ribcage #(x) #((top)) #("i")))
8355 (cons e11359 e21360)))
8359 (apply (lambda (_1363 out1364 in1365 e11366 e21367)
8360 (list '#(syntax-object
8365 #((top) (top) (top) (top) (top))
8366 #("i" "i" "i" "i" "i"))
8368 #(ribcage #(x) #((top)) #("i")))
8373 (cons '#(syntax-object
8383 #("i" "i" "i" "i" "i"))
8390 (cons e11366 e21367)))))
8394 (apply (lambda (_1370 out1371 in1372 e11373 e21374)
8395 (list '#(syntax-object
8400 #((top) (top) (top) (top) (top))
8401 #("i" "i" "i" "i" "i"))
8403 #(ribcage #(x) #((top)) #("i")))
8405 (cons '#(syntax-object
8415 #("i" "i" "i" "i" "i"))
8425 (cons '#(syntax-object
8446 (cons e11373 e21374)))))
8450 "source expression failed to match any pattern"
8454 '(any #(each (any any)) any . each-any)))))
8457 '(any ((any any)) any . each-any)))))
8460 '(any () any . each-any))))
8463 (define syntax-rules
8470 (apply (lambda (_1381
8475 (list '#(syntax-object
8479 #(_ k keyword pattern template)
8480 #((top) (top) (top) (top) (top))
8481 #("i" "i" "i" "i" "i"))
8483 #(ribcage #(x) #((top)) #("i")))
8489 #(_ k keyword pattern template)
8490 #((top) (top) (top) (top) (top))
8491 #("i" "i" "i" "i" "i"))
8493 #(ribcage #(x) #((top)) #("i")))
8495 (cons '#(syntax-object
8499 #(_ k keyword pattern template)
8500 #((top) (top) (top) (top) (top))
8501 #("i" "i" "i" "i" "i"))
8503 #(ribcage #(x) #((top)) #("i")))
8505 (cons '#(syntax-object
8509 #(_ k keyword pattern template)
8510 #((top) (top) (top) (top) (top))
8511 #("i" "i" "i" "i" "i"))
8513 #(ribcage #(x) #((top)) #("i")))
8516 (map (lambda (tmp1388 tmp1387)
8517 (list (cons '#(syntax-object
8547 (list '#(syntax-object
8582 "source expression failed to match any pattern"
8586 '(any each-any . #(each ((any . any) any))))))
8590 (make-extended-syncase-macro
8591 (module-ref (current-module) (quote let*))
8597 (apply (lambda (let*1392 x1393 v1394 e11395 e21396)
8598 (and-map identifier? x1393))
8601 (apply (lambda (let*1398 x1399 v1400 e11401 e21402)
8602 (letrec ((f1403 (lambda (bindings1404)
8603 (if (null? bindings1404)
8604 (cons '#(syntax-object
8619 #("i" "i" "i" "i" "i"))
8627 (cons e11401 e21402)))
8631 (apply (lambda (body1410
8633 (list '#(syntax-object
8685 "source expression failed to match any pattern"
8690 (list (f1403 (cdr bindings1404))
8691 (car bindings1404)))))))
8692 (f1403 (map list x1399 v1400))))
8696 "source expression failed to match any pattern"
8700 '(any #(each (any any)) any . each-any))))
8704 (make-extended-syncase-macro
8705 (module-ref (current-module) (quote do))
8707 (lambda (orig-x1412)
8711 (apply (lambda (_1415
8721 (apply (lambda (step1424)
8726 (list '#(syntax-object
8807 (list '#(syntax-object
8846 (list '#(syntax-object
8886 (cons '#(syntax-object
8927 (list (cons '#(syntax-object
8970 (apply (lambda (e11432
8972 (list '#(syntax-object
9067 (list '#(syntax-object
9114 (cons '#(syntax-object
9162 (cons '#(syntax-object
9210 (list (cons '#(syntax-object
9260 "source expression failed to match any pattern"
9264 '(any . each-any)))))
9265 ($sc-dispatch tmp1425 (quote ()))))
9270 "source expression failed to match any pattern"
9272 ($sc-dispatch tmp1422 (quote each-any))))
9273 (map (lambda (v1440 s1441)
9277 (apply (lambda () v1440) tmp1443)
9280 (apply (lambda (e1445) e1445)
9285 "bad step expression"
9289 ($sc-dispatch tmp1442 (quote (any))))))
9290 ($sc-dispatch tmp1442 (quote ()))))
9297 "source expression failed to match any pattern"
9301 '(any #(each (any any . any))
9308 (make-extended-syncase-macro
9309 (module-ref (current-module) (quote quasiquote))
9311 (letrec ((quasicons1449
9312 (lambda (x1453 y1454)
9316 (apply (lambda (x1457 y1458)
9320 (apply (lambda (dy1461)
9324 (apply (lambda (dx1464)
9325 (list '#(syntax-object
9378 (list '#(syntax-object
9427 (list '#(syntax-object
9526 (apply (lambda (stuff1467)
9527 (cons '#(syntax-object
9571 (list '#(syntax-object
9630 #("i" "i" "i" "i")))
9655 #((top) (top) (top) (top))
9656 #("i" "i" "i" "i")))
9663 "source expression failed to match any pattern"
9665 ($sc-dispatch tmp1455 (quote (any any)))))
9666 (list x1453 y1454))))
9668 (lambda (x1469 y1470)
9672 (apply (lambda (x1473 y1474)
9676 (apply (lambda () x1473) tmp1476)
9678 (list '#(syntax-object
9704 #("i" "i" "i" "i")))
9730 #((top) (top) (top) (top))
9731 #("i" "i" "i" "i")))
9738 "source expression failed to match any pattern"
9740 ($sc-dispatch tmp1471 (quote (any any)))))
9741 (list x1469 y1470))))
9749 (apply (lambda (x1483)
9750 (list '#(syntax-object
9772 #((top) (top) (top) (top))
9773 #("i" "i" "i" "i")))
9775 (list->vector x1483)))
9779 (apply (lambda (x1486)
9780 (cons '#(syntax-object
9806 #("i" "i" "i" "i")))
9811 (list '#(syntax-object
9833 #((top) (top) (top) (top))
9834 #("i" "i" "i" "i")))
9844 #(ribcage #(x) #((top)) #("i"))
9847 #(ribcage #(x) #((top)) #("i"))
9853 #((top) (top) (top) (top))
9854 #("i" "i" "i" "i")))
9864 #(ribcage #(x) #((top)) #("i"))
9867 #(ribcage #(x) #((top)) #("i"))
9873 #((top) (top) (top) (top))
9874 #("i" "i" "i" "i")))
9881 (lambda (p1489 lev1490)
9885 (apply (lambda (p1493)
9892 #(ribcage #(p) #((top)) #("i"))
9903 #((top) (top) (top) (top))
9904 #("i" "i" "i" "i")))
9909 #(ribcage #(p) #((top)) #("i"))
9920 #((top) (top) (top) (top))
9921 #("i" "i" "i" "i")))
9923 (quasi1452 (list p1493) (- lev1490 1)))))
9927 (apply (lambda (args1495) (= lev1490 0))
9930 (apply (lambda (args1496)
9933 "unquote takes exactly one argument"
9935 (cons '#(syntax-object
9952 #((top) (top) (top) (top))
9953 #("i" "i" "i" "i")))
9959 (apply (lambda (p1498 q1499)
9963 (quasi1452 q1499 lev1490))
9987 #("i" "i" "i" "i")))
10010 #("i" "i" "i" "i")))
10015 (quasi1452 q1499 lev1490))))
10019 (apply (lambda (args1501 q1502)
10023 (apply (lambda (args1503 q1504)
10026 "unquote-splicing takes exactly one argument"
10028 (cons '#(syntax-object
10061 (apply (lambda (p1506)
10127 (apply (lambda (p1508 q1509)
10138 (apply (lambda (x1511)
10145 (list '#(syntax-object
10181 '#(vector each-any)))))
10191 #(ribcage () () ())
10201 #((top) (top) (top) (top))
10202 #("i" "i" "i" "i")))
10211 #(ribcage () () ())
10221 #((top) (top) (top) (top))
10222 #("i" "i" "i" "i")))
10234 #(ribcage () () ())
10244 #((top) (top) (top) (top))
10245 #("i" "i" "i" "i")))
10256 #(ribcage () () ())
10262 #(quasicons quasiappend quasivector quasi)
10263 #((top) (top) (top) (top))
10264 #("i" "i" "i" "i")))
10274 #(ribcage () () ())
10275 #(ribcage #(p lev) #((top) (top)) #("i" "i"))
10277 #(quasicons quasiappend quasivector quasi)
10278 #((top) (top) (top) (top))
10279 #("i" "i" "i" "i")))
10287 (apply (lambda (_1517 e1518) (quasi1452 e1518 0))
10291 "source expression failed to match any pattern"
10293 ($sc-dispatch tmp1515 (quote (any any)))))
10297 (make-syncase-macro
10300 (letrec ((read-file1520
10301 (lambda (fn1521 k1522)
10302 (let ((p1523 (open-input-file fn1521)))
10303 (letrec ((f1524 (lambda (x1525)
10304 (if (eof-object? x1525)
10306 (close-input-port p1523)
10308 (cons (datum->syntax k1522 x1525)
10309 (f1524 (read p1523)))))))
10310 (f1524 (read p1523)))))))
10314 (apply (lambda (k1528 filename1529)
10315 (let ((fn1530 (syntax->datum filename1529)))
10319 (apply (lambda (exp1533)
10320 (cons '#(syntax-object
10327 #(ribcage () () ())
10328 #(ribcage () () ())
10350 "source expression failed to match any pattern"
10352 ($sc-dispatch tmp1531 (quote each-any))))
10353 (read-file1520 fn1530 k1528))))
10357 "source expression failed to match any pattern"
10359 ($sc-dispatch tmp1526 (quote (any any)))))
10363 (make-syncase-macro
10369 (apply (lambda (_1538 e1539)
10372 "expression not valid outside of quasiquote"
10377 "source expression failed to match any pattern"
10379 ($sc-dispatch tmp1536 (quote (any any)))))
10382 (define unquote-splicing
10383 (make-syncase-macro
10389 (apply (lambda (_1543 e1544)
10392 "expression not valid outside of quasiquote"
10397 "source expression failed to match any pattern"
10399 ($sc-dispatch tmp1541 (quote (any any)))))
10403 (make-extended-syncase-macro
10404 (module-ref (current-module) (quote case))
10410 (apply (lambda (_1548 e1549 m11550 m21551)
10412 ((lambda (body1553)
10413 (list '#(syntax-object
10416 #(ribcage #(body) #((top)) #("i"))
10419 #((top) (top) (top) (top))
10420 #("i" "i" "i" "i"))
10421 #(ribcage () () ())
10422 #(ribcage #(x) #((top)) #("i")))
10424 (list (list '#(syntax-object
10433 #((top) (top) (top) (top))
10434 #("i" "i" "i" "i"))
10435 #(ribcage () () ())
10444 (letrec ((f1554 (lambda (clause1555 clauses1556)
10445 (if (null? clauses1556)
10449 (apply (lambda (e11560
10451 (cons '#(syntax-object
10503 (apply (lambda (k1564
10506 (list '#(syntax-object
10556 (list '#(syntax-object
10656 (list '#(syntax-object
10707 (cons '#(syntax-object
10779 #(ribcage () () ())
10781 #(f clause clauses)
10782 #((top) (top) (top))
10790 #("i" "i" "i" "i"))
10791 #(ribcage () () ())
10802 ((lambda (rest1571)
10806 (apply (lambda (k1574
10809 (list '#(syntax-object
10863 (list '#(syntax-object
10971 (list '#(syntax-object
11026 (cons '#(syntax-object
11099 (f1554 (car clauses1556)
11100 (cdr clauses1556)))))))
11101 (f1554 m11550 m21551))))
11105 "source expression failed to match any pattern"
11109 '(any any any . each-any))))
11112 (define identifier-syntax
11113 (make-syncase-macro
11119 (apply (lambda (_1583 e1584)
11120 (list '#(syntax-object
11123 #(ribcage #(_ e) #((top) (top)) #("i" "i"))
11124 #(ribcage () () ())
11125 #(ribcage #(x) #((top)) #("i")))
11130 #(ribcage #(_ e) #((top) (top)) #("i" "i"))
11131 #(ribcage () () ())
11132 #(ribcage #(x) #((top)) #("i")))
11134 (list '#(syntax-object
11141 #(ribcage () () ())
11142 #(ribcage #(x) #((top)) #("i")))
11151 #(ribcage () () ())
11152 #(ribcage #(x) #((top)) #("i")))
11155 (list '#(syntax-object
11162 #(ribcage () () ())
11163 #(ribcage #(x) #((top)) #("i")))
11172 #(ribcage () () ())
11173 #(ribcage #(x) #((top)) #("i")))
11182 #(ribcage () () ())
11183 #(ribcage #(x) #((top)) #("i")))
11192 #(ribcage () () ())
11193 #(ribcage #(x) #((top)) #("i")))
11195 (list '#(syntax-object
11202 #(ribcage () () ())
11217 #(ribcage () () ())
11230 #(ribcage () () ())
11236 (list '#(syntax-object
11243 #(ribcage () () ())
11257 #(ribcage () () ())
11270 #(ribcage () () ())
11280 "source expression failed to match any pattern"
11282 ($sc-dispatch tmp1581 (quote (any any)))))