(eval-when (compile) (set-current-module (resolve-module (quote (guile))))) (if #f #f) (letrec ((and-map*17 (lambda (f57 first56 . rest55) (let ((t58 (null? first56))) (if t58 t58 (if (null? rest55) (letrec ((andmap59 (lambda (first60) (let ((x61 (car first60)) (first62 (cdr first60))) (if (null? first62) (f57 x61) (if (f57 x61) (andmap59 first62) #f)))))) (andmap59 first56)) (letrec ((andmap63 (lambda (first64 rest65) (let ((x66 (car first64)) (xr67 (map car rest65)) (first68 (cdr first64)) (rest69 (map cdr rest65))) (if (null? first68) (apply f57 (cons x66 xr67)) (if (apply f57 (cons x66 xr67)) (andmap63 first68 rest69) #f)))))) (andmap63 first56 rest55)))))))) (letrec ((lambda-var-list163 (lambda (vars287) (letrec ((lvl288 (lambda (vars289 ls290 w291) (if (pair? vars289) (lvl288 (cdr vars289) (cons (wrap143 (car vars289) w291 #f) ls290) w291) (if (id?115 vars289) (cons (wrap143 vars289 w291 #f) ls290) (if (null? vars289) ls290 (if (syntax-object?99 vars289) (lvl288 (syntax-object-expression100 vars289) ls290 (join-wraps134 w291 (syntax-object-wrap101 vars289))) (cons vars289 ls290)))))))) (lvl288 vars287 (quote ()) (quote (())))))) (gen-var162 (lambda (id292) (let ((id293 (if (syntax-object?99 id292) (syntax-object-expression100 id292) id292))) (gensym (symbol->string id293))))) (strip161 (lambda (x294 w295) (if (memq (quote top) (wrap-marks118 w295)) x294 (letrec ((f296 (lambda (x297) (if (syntax-object?99 x297) (strip161 (syntax-object-expression100 x297) (syntax-object-wrap101 x297)) (if (pair? x297) (let ((a298 (f296 (car x297))) (d299 (f296 (cdr x297)))) (if (if (eq? a298 (car x297)) (eq? d299 (cdr x297)) #f) x297 (cons a298 d299))) (if (vector? x297) (let ((old300 (vector->list x297))) (let ((new301 (map f296 old300))) (if (and-map*17 eq? old300 new301) x297 (list->vector new301)))) x297)))))) (f296 x294))))) (ellipsis?160 (lambda (x302) (if (nonsymbol-id?114 x302) (free-id=?138 x302 '#(syntax-object ... ((top) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i")) #(ribcage (lambda-var-list gen-var strip ellipsis? chi-void eval-local-transformer chi-local-syntax chi-lambda-clause chi-body chi-macro chi-application chi-expr chi chi-top syntax-type chi-when-list chi-install-global chi-top-sequence chi-sequence source-wrap wrap bound-id-member? distinct-bound-ids? valid-bound-ids? bound-id=? free-id=? id-var-name same-marks? join-marks join-wraps smart-append make-binding-wrap extend-ribcage! make-empty-ribcage new-mark anti-mark the-anti-mark top-marked? top-wrap empty-wrap set-ribcage-labels! set-ribcage-marks! set-ribcage-symnames! ribcage-labels ribcage-marks ribcage-symnames ribcage? make-ribcage gen-labels gen-label make-rename rename-marks rename-new rename-old subst-rename? wrap-subst wrap-marks make-wrap id-sym-name&marks id-sym-name id? nonsymbol-id? global-extend lookup macros-only-env extend-var-env extend-env null-env binding-value binding-type make-binding arg-check source-annotation no-source set-syntax-object-module! set-syntax-object-wrap! set-syntax-object-expression! syntax-object-module syntax-object-wrap syntax-object-expression syntax-object? make-syntax-object build-lexical-var build-letrec build-named-let build-let build-sequence build-data build-primref build-lambda build-global-definition maybe-name-value! build-global-assignment build-global-reference analyze-variable build-lexical-assignment build-lexical-reference build-conditional build-application build-void decorate-source get-global-definition-hook put-global-definition-hook gensym-hook local-eval-hook top-level-eval-hook fx< fx= fx- fx+ *mode* noexpand) ((top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top)) ("i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i")) #(ribcage (define-structure and-map*) ((top) (top)) ("i" "i"))) (hygiene guile))) #f))) (chi-void159 (lambda () (build-void81 #f))) (eval-local-transformer158 (lambda (expanded303 mod304) (let ((p305 (local-eval-hook77 expanded303 mod304))) (if (procedure? p305) p305 (syntax-violation #f "nonprocedure transformer" p305))))) (chi-local-syntax157 (lambda (rec?306 e307 r308 w309 s310 mod311 k312) ((lambda (tmp313) ((lambda (tmp314) (if tmp314 (apply (lambda (_315 id316 val317 e1318 e2319) (let ((ids320 id316)) (if (not (valid-bound-ids?140 ids320)) (syntax-violation #f "duplicate bound keyword" e307) (let ((labels322 (gen-labels121 ids320))) (let ((new-w323 (make-binding-wrap132 ids320 labels322 w309))) (k312 (cons e1318 e2319) (extend-env109 labels322 (let ((w325 (if rec?306 new-w323 w309)) (trans-r326 (macros-only-env111 r308))) (map (lambda (x327) (cons 'macro (eval-local-transformer158 (chi151 x327 trans-r326 w325 mod311) mod311))) val317)) r308) new-w323 s310 mod311)))))) tmp314) ((lambda (_329) (syntax-violation #f "bad local syntax definition" (source-wrap144 e307 w309 s310 mod311))) tmp313))) ($sc-dispatch tmp313 '(any #(each (any any)) any . each-any)))) e307))) (chi-lambda-clause156 (lambda (e330 docstring331 c332 r333 w334 mod335 k336) ((lambda (tmp337) ((lambda (tmp338) (if (if tmp338 (apply (lambda (args339 doc340 e1341 e2342) (if (string? (syntax->datum doc340)) (not docstring331) #f)) tmp338) #f) (apply (lambda (args343 doc344 e1345 e2346) (chi-lambda-clause156 e330 doc344 (cons args343 (cons e1345 e2346)) r333 w334 mod335 k336)) tmp338) ((lambda (tmp348) (if tmp348 (apply (lambda (id349 e1350 e2351) (let ((ids352 id349)) (if (not (valid-bound-ids?140 ids352)) (syntax-violation 'lambda "invalid parameter list" e330) (let ((labels354 (gen-labels121 ids352)) (new-vars355 (map gen-var162 ids352))) (k336 (map syntax->datum ids352) new-vars355 (if docstring331 (syntax->datum docstring331) #f) (chi-body155 (cons e1350 e2351) e330 (extend-var-env110 labels354 new-vars355 r333) (make-binding-wrap132 ids352 labels354 w334) mod335)))))) tmp348) ((lambda (tmp357) (if tmp357 (apply (lambda (ids358 e1359 e2360) (let ((old-ids361 (lambda-var-list163 ids358))) (if (not (valid-bound-ids?140 old-ids361)) (syntax-violation 'lambda "invalid parameter list" e330) (let ((labels362 (gen-labels121 old-ids361)) (new-vars363 (map gen-var162 old-ids361))) (k336 (letrec ((f364 (lambda (ls1365 ls2366) (if (null? ls1365) (syntax->datum ls2366) (f364 (cdr ls1365) (cons (syntax->datum (car ls1365)) ls2366)))))) (f364 (cdr old-ids361) (car old-ids361))) (letrec ((f367 (lambda (ls1368 ls2369) (if (null? ls1368) ls2369 (f367 (cdr ls1368) (cons (car ls1368) ls2369)))))) (f367 (cdr new-vars363) (car new-vars363))) (if docstring331 (syntax->datum docstring331) #f) (chi-body155 (cons e1359 e2360) e330 (extend-var-env110 labels362 new-vars363 r333) (make-binding-wrap132 old-ids361 labels362 w334) mod335)))))) tmp357) ((lambda (_371) (syntax-violation 'lambda "bad lambda" e330)) tmp337))) ($sc-dispatch tmp337 '(any any . each-any))))) ($sc-dispatch tmp337 '(each-any any . each-any))))) ($sc-dispatch tmp337 '(any any any . each-any)))) c332))) (chi-body155 (lambda (body372 outer-form373 r374 w375 mod376) (let ((r377 (cons (quote ("placeholder" placeholder)) r374))) (let ((ribcage378 (make-ribcage122 '() '() '()))) (let ((w379 (make-wrap117 (wrap-marks118 w375) (cons ribcage378 (wrap-subst119 w375))))) (letrec ((parse380 (lambda (body381 ids382 labels383 var-ids384 vars385 vals386 bindings387) (if (null? body381) (syntax-violation #f "no expressions in body" outer-form373) (let ((e389 (cdar body381)) (er390 (caar body381))) (call-with-values (lambda () (syntax-type149 e389 er390 '(()) (source-annotation106 er390) ribcage378 mod376 #f)) (lambda (type391 value392 e393 w394 s395 mod396) (if (memv type391 '(define-form)) (let ((id397 (wrap143 value392 w394 mod396)) (label398 (gen-label120))) (let ((var399 (gen-var162 id397))) (begin (extend-ribcage!131 ribcage378 id397 label398) (parse380 (cdr body381) (cons id397 ids382) (cons label398 labels383) (cons id397 var-ids384) (cons var399 vars385) (cons (cons er390 (wrap143 e393 w394 mod396)) vals386) (cons (cons 'lexical var399) bindings387))))) (if (memv type391 '(define-syntax-form)) (let ((id400 (wrap143 value392 w394 mod396)) (label401 (gen-label120))) (begin (extend-ribcage!131 ribcage378 id400 label401) (parse380 (cdr body381) (cons id400 ids382) (cons label401 labels383) var-ids384 vars385 vals386 (cons (cons 'macro (cons er390 (wrap143 e393 w394 mod396))) bindings387)))) (if (memv type391 '(begin-form)) ((lambda (tmp402) ((lambda (tmp403) (if tmp403 (apply (lambda (_404 e1405) (parse380 (letrec ((f406 (lambda (forms407) (if (null? forms407) (cdr body381) (cons (cons er390 (wrap143 (car forms407) w394 mod396)) (f406 (cdr forms407))))))) (f406 e1405)) ids382 labels383 var-ids384 vars385 vals386 bindings387)) tmp403) (syntax-violation #f "source expression failed to match any pattern" tmp402))) ($sc-dispatch tmp402 '(any . each-any)))) e393) (if (memv type391 '(local-syntax-form)) (chi-local-syntax157 value392 e393 er390 w394 s395 mod396 (lambda (forms409 er410 w411 s412 mod413) (parse380 (letrec ((f414 (lambda (forms415) (if (null? forms415) (cdr body381) (cons (cons er410 (wrap143 (car forms415) w411 mod413)) (f414 (cdr forms415))))))) (f414 forms409)) ids382 labels383 var-ids384 vars385 vals386 bindings387))) (if (null? ids382) (build-sequence94 #f (map (lambda (x416) (chi151 (cdr x416) (car x416) '(()) mod396)) (cons (cons er390 (source-wrap144 e393 w394 s395 mod396)) (cdr body381)))) (begin (if (not (valid-bound-ids?140 ids382)) (syntax-violation #f "invalid or duplicate identifier in definition" outer-form373)) (letrec ((loop417 (lambda (bs418 er-cache419 r-cache420) (if (not (null? bs418)) (let ((b421 (car bs418))) (if (eq? (car b421) 'macro) (let ((er422 (cadr b421))) (let ((r-cache423 (if (eq? er422 er-cache419) r-cache420 (macros-only-env111 er422)))) (begin (set-cdr! b421 (eval-local-transformer158 (chi151 (cddr b421) r-cache423 '(()) mod396) mod396)) (loop417 (cdr bs418) er422 r-cache423)))) (loop417 (cdr bs418) er-cache419 r-cache420))))))) (loop417 bindings387 #f #f)) (set-cdr! r377 (extend-env109 labels383 bindings387 (cdr r377))) (build-letrec97 #f (map syntax->datum var-ids384) vars385 (map (lambda (x424) (chi151 (cdr x424) (car x424) '(()) mod396)) vals386) (build-sequence94 #f (map (lambda (x425) (chi151 (cdr x425) (car x425) '(()) mod396)) (cons (cons er390 (source-wrap144 e393 w394 s395 mod396)) (cdr body381)))))))))))))))))) (parse380 (map (lambda (x388) (cons r377 (wrap143 x388 w379 mod376))) body372) '() '() '() '() '() '()))))))) (chi-macro154 (lambda (p426 e427 r428 w429 rib430 mod431) (letrec ((rebuild-macro-output432 (lambda (x433 m434) (if (pair? x433) (cons (rebuild-macro-output432 (car x433) m434) (rebuild-macro-output432 (cdr x433) m434)) (if (syntax-object?99 x433) (let ((w435 (syntax-object-wrap101 x433))) (let ((ms436 (wrap-marks118 w435)) (s437 (wrap-subst119 w435))) (if (if (pair? ms436) (eq? (car ms436) #f) #f) (make-syntax-object98 (syntax-object-expression100 x433) (make-wrap117 (cdr ms436) (if rib430 (cons rib430 (cdr s437)) (cdr s437))) (syntax-object-module102 x433)) (make-syntax-object98 (syntax-object-expression100 x433) (make-wrap117 (cons m434 ms436) (if rib430 (cons rib430 (cons (quote shift) s437)) (cons (quote shift) s437))) (let ((pmod438 (procedure-module p426))) (if pmod438 (cons 'hygiene (module-name pmod438)) '(hygiene guile))))))) (if (vector? x433) (let ((n439 (vector-length x433))) (let ((v440 (make-vector n439))) (letrec ((loop441 (lambda (i442) (if (fx=74 i442 n439) (begin (if #f #f) v440) (begin (vector-set! v440 i442 (rebuild-macro-output432 (vector-ref x433 i442) m434)) (loop441 (fx+72 i442 1))))))) (loop441 0)))) (if (symbol? x433) (syntax-violation #f "encountered raw symbol in macro output" (source-wrap144 e427 w429 s mod431) x433) x433))))))) (rebuild-macro-output432 (p426 (wrap143 e427 (anti-mark130 w429) mod431)) (string #\m))))) (chi-application153 (lambda (x443 e444 r445 w446 s447 mod448) ((lambda (tmp449) ((lambda (tmp450) (if tmp450 (apply (lambda (e0451 e1452) (build-application82 s447 x443 (map (lambda (e453) (chi151 e453 r445 w446 mod448)) e1452))) tmp450) (syntax-violation #f "source expression failed to match any pattern" tmp449))) ($sc-dispatch tmp449 (quote (any . each-any))))) e444))) (chi-expr152 (lambda (type455 value456 e457 r458 w459 s460 mod461) (if (memv type455 (quote (lexical))) (build-lexical-reference84 'value s460 e457 value456) (if (memv type455 (quote (core core-form))) (value456 e457 r458 w459 s460 mod461) (if (memv type455 (quote (module-ref))) (call-with-values (lambda () (value456 e457)) (lambda (id462 mod463) (build-global-reference87 s460 id462 mod463))) (if (memv type455 (quote (lexical-call))) (chi-application153 (build-lexical-reference84 'fun (source-annotation106 (car e457)) (car e457) value456) e457 r458 w459 s460 mod461) (if (memv type455 (quote (global-call))) (chi-application153 (build-global-reference87 (source-annotation106 (car e457)) (if (syntax-object?99 value456) (syntax-object-expression100 value456) value456) (if (syntax-object?99 value456) (syntax-object-module102 value456) mod461)) e457 r458 w459 s460 mod461) (if (memv type455 (quote (constant))) (build-data93 s460 (strip161 (source-wrap144 e457 w459 s460 mod461) '(()))) (if (memv type455 (quote (global))) (build-global-reference87 s460 value456 mod461) (if (memv type455 (quote (call))) (chi-application153 (chi151 (car e457) r458 w459 mod461) e457 r458 w459 s460 mod461) (if (memv type455 (quote (begin-form))) ((lambda (tmp464) ((lambda (tmp465) (if tmp465 (apply (lambda (_466 e1467 e2468) (chi-sequence145 (cons e1467 e2468) r458 w459 s460 mod461)) tmp465) (syntax-violation #f "source expression failed to match any pattern" tmp464))) ($sc-dispatch tmp464 '(any any . each-any)))) e457) (if (memv type455 (quote (local-syntax-form))) (chi-local-syntax157 value456 e457 r458 w459 s460 mod461 chi-sequence145) (if (memv type455 (quote (eval-when-form))) ((lambda (tmp470) ((lambda (tmp471) (if tmp471 (apply (lambda (_472 x473 e1474 e2475) (let ((when-list476 (chi-when-list148 e457 x473 w459))) (if (memq 'eval when-list476) (chi-sequence145 (cons e1474 e2475) r458 w459 s460 mod461) (chi-void159)))) tmp471) (syntax-violation #f "source expression failed to match any pattern" tmp470))) ($sc-dispatch tmp470 '(any each-any any . each-any)))) e457) (if (memv type455 '(define-form define-syntax-form)) (syntax-violation #f "definition in expression context" e457 (wrap143 value456 w459 mod461)) (if (memv type455 (quote (syntax))) (syntax-violation #f "reference to pattern variable outside syntax form" (source-wrap144 e457 w459 s460 mod461)) (if (memv type455 '(displaced-lexical)) (syntax-violation #f "reference to identifier outside its scope" (source-wrap144 e457 w459 s460 mod461)) (syntax-violation #f "unexpected syntax" (source-wrap144 e457 w459 s460 mod461)))))))))))))))))) (chi151 (lambda (e479 r480 w481 mod482) (call-with-values (lambda () (syntax-type149 e479 r480 w481 (source-annotation106 e479) #f mod482 #f)) (lambda (type483 value484 e485 w486 s487 mod488) (chi-expr152 type483 value484 e485 r480 w486 s487 mod488))))) (chi-top150 (lambda (e489 r490 w491 m492 esew493 mod494) (call-with-values (lambda () (syntax-type149 e489 r490 w491 (source-annotation106 e489) #f mod494 #f)) (lambda (type502 value503 e504 w505 s506 mod507) (if (memv type502 (quote (begin-form))) ((lambda (tmp508) ((lambda (tmp509) (if tmp509 (apply (lambda (_510) (chi-void159)) tmp509) ((lambda (tmp511) (if tmp511 (apply (lambda (_512 e1513 e2514) (chi-top-sequence146 (cons e1513 e2514) r490 w505 s506 m492 esew493 mod507)) tmp511) (syntax-violation #f "source expression failed to match any pattern" tmp508))) ($sc-dispatch tmp508 '(any any . each-any))))) ($sc-dispatch tmp508 (quote (any))))) e504) (if (memv type502 (quote (local-syntax-form))) (chi-local-syntax157 value503 e504 r490 w505 s506 mod507 (lambda (body516 r517 w518 s519 mod520) (chi-top-sequence146 body516 r517 w518 s519 m492 esew493 mod520))) (if (memv type502 (quote (eval-when-form))) ((lambda (tmp521) ((lambda (tmp522) (if tmp522 (apply (lambda (_523 x524 e1525 e2526) (let ((when-list527 (chi-when-list148 e504 x524 w505)) (body528 (cons e1525 e2526))) (if (eq? m492 (quote e)) (if (memq 'eval when-list527) (chi-top-sequence146 body528 r490 w505 s506 'e '(eval) mod507) (chi-void159)) (if (memq 'load when-list527) (if (let ((t531 (memq 'compile when-list527))) (if t531 t531 (if (eq? m492 'c&e) (memq 'eval when-list527) #f))) (chi-top-sequence146 body528 r490 w505 s506 'c&e '(compile load) mod507) (if (memq m492 '(c c&e)) (chi-top-sequence146 body528 r490 w505 s506 'c '(load) mod507) (chi-void159))) (if (let ((t532 (memq 'compile when-list527))) (if t532 t532 (if (eq? m492 'c&e) (memq 'eval when-list527) #f))) (begin (top-level-eval-hook76 (chi-top-sequence146 body528 r490 w505 s506 'e '(eval) mod507) mod507) (chi-void159)) (chi-void159)))))) tmp522) (syntax-violation #f "source expression failed to match any pattern" tmp521))) ($sc-dispatch tmp521 '(any each-any any . each-any)))) e504) (if (memv type502 (quote (define-syntax-form))) (let ((n533 (id-var-name137 value503 w505)) (r534 (macros-only-env111 r490))) (if (memv m492 (quote (c))) (if (memq (quote compile) esew493) (let ((e535 (chi-install-global147 n533 (chi151 e504 r534 w505 mod507)))) (begin (top-level-eval-hook76 e535 mod507) (if (memq (quote load) esew493) e535 (chi-void159)))) (if (memq (quote load) esew493) (chi-install-global147 n533 (chi151 e504 r534 w505 mod507)) (chi-void159))) (if (memv m492 (quote (c&e))) (let ((e536 (chi-install-global147 n533 (chi151 e504 r534 w505 mod507)))) (begin (top-level-eval-hook76 e536 mod507) e536)) (begin (if (memq (quote eval) esew493) (top-level-eval-hook76 (chi-install-global147 n533 (chi151 e504 r534 w505 mod507)) mod507)) (chi-void159))))) (if (memv type502 (quote (define-form))) (let ((n537 (id-var-name137 value503 w505))) (let ((type538 (binding-type107 (lookup112 n537 r490 mod507)))) (if (memv type538 '(global core macro module-ref)) (begin (if (if (not (module-local-variable (current-module) n537)) (current-module) #f) (module-define! (current-module) n537 #f)) (let ((x539 (build-global-definition90 s506 n537 (chi151 e504 r490 w505 mod507)))) (begin (if (eq? m492 (quote c&e)) (top-level-eval-hook76 x539 mod507)) x539))) (if (memv type538 '(displaced-lexical)) (syntax-violation #f "identifier out of context" e504 (wrap143 value503 w505 mod507)) (syntax-violation #f "cannot define keyword at top level" e504 (wrap143 value503 w505 mod507)))))) (let ((x540 (chi-expr152 type502 value503 e504 r490 w505 s506 mod507))) (begin (if (eq? m492 (quote c&e)) (top-level-eval-hook76 x540 mod507)) x540))))))))))) (syntax-type149 (lambda (e541 r542 w543 s544 rib545 mod546 for-car?547) (if (symbol? e541) (let ((n548 (id-var-name137 e541 w543))) (let ((b549 (lookup112 n548 r542 mod546))) (let ((type550 (binding-type107 b549))) (if (memv type550 (quote (lexical))) (values type550 (binding-value108 b549) e541 w543 s544 mod546) (if (memv type550 (quote (global))) (values type550 n548 e541 w543 s544 mod546) (if (memv type550 (quote (macro))) (if for-car?547 (values type550 (binding-value108 b549) e541 w543 s544 mod546) (syntax-type149 (chi-macro154 (binding-value108 b549) e541 r542 w543 rib545 mod546) r542 '(()) s544 rib545 mod546 #f)) (values type550 (binding-value108 b549) e541 w543 s544 mod546))))))) (if (pair? e541) (let ((first551 (car e541))) (call-with-values (lambda () (syntax-type149 first551 r542 w543 s544 rib545 mod546 #t)) (lambda (ftype552 fval553 fe554 fw555 fs556 fmod557) (if (memv ftype552 (quote (lexical))) (values 'lexical-call fval553 e541 w543 s544 mod546) (if (memv ftype552 (quote (global))) (values 'global-call (make-syntax-object98 fval553 w543 fmod557) e541 w543 s544 mod546) (if (memv ftype552 (quote (macro))) (syntax-type149 (chi-macro154 fval553 e541 r542 w543 rib545 mod546) r542 '(()) s544 rib545 mod546 for-car?547) (if (memv ftype552 (quote (module-ref))) (call-with-values (lambda () (fval553 e541)) (lambda (sym558 mod559) (syntax-type149 sym558 r542 w543 s544 rib545 mod559 for-car?547))) (if (memv ftype552 (quote (core))) (values 'core-form fval553 e541 w543 s544 mod546) (if (memv ftype552 (quote (local-syntax))) (values 'local-syntax-form fval553 e541 w543 s544 mod546) (if (memv ftype552 (quote (begin))) (values 'begin-form #f e541 w543 s544 mod546) (if (memv ftype552 (quote (eval-when))) (values 'eval-when-form #f e541 w543 s544 mod546) (if (memv ftype552 (quote (define))) ((lambda (tmp560) ((lambda (tmp561) (if (if tmp561 (apply (lambda (_562 name563 val564) (id?115 name563)) tmp561) #f) (apply (lambda (_565 name566 val567) (values 'define-form name566 val567 w543 s544 mod546)) tmp561) ((lambda (tmp568) (if (if tmp568 (apply (lambda (_569 name570 args571 e1572 e2573) (if (id?115 name570) (valid-bound-ids?140 (lambda-var-list163 args571)) #f)) tmp568) #f) (apply (lambda (_574 name575 args576 e1577 e2578) (values 'define-form (wrap143 name575 w543 mod546) (decorate-source80 (cons '#(syntax-object lambda ((top) #(ribcage #(_ name args e1 e2) #((top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(ftype fval fe fw fs fmod) #((top) (top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(first) #((top)) #("i")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(e r w s rib mod for-car?) #((top) (top) (top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i" "i" "i")) #(ribcage (lambda-var-list gen-var strip ellipsis? chi-void eval-local-transformer chi-local-syntax chi-lambda-clause chi-body chi-macro chi-application chi-expr chi chi-top syntax-type chi-when-list chi-install-global chi-top-sequence chi-sequence source-wrap wrap bound-id-member? distinct-bound-ids? valid-bound-ids? bound-id=? free-id=? id-var-name same-marks? join-marks join-wraps smart-append make-binding-wrap extend-ribcage! make-empty-ribcage new-mark anti-mark the-anti-mark top-marked? top-wrap empty-wrap set-ribcage-labels! set-ribcage-marks! set-ribcage-symnames! ribcage-labels ribcage-marks ribcage-symnames ribcage? make-ribcage gen-labels gen-label make-rename rename-marks rename-new rename-old subst-rename? wrap-subst wrap-marks make-wrap id-sym-name&marks id-sym-name id? nonsymbol-id? global-extend lookup macros-only-env extend-var-env extend-env null-env binding-value binding-type make-binding arg-check source-annotation no-source set-syntax-object-module! set-syntax-object-wrap! set-syntax-object-expression! syntax-object-module syntax-object-wrap syntax-object-expression syntax-object? make-syntax-object build-lexical-var build-letrec build-named-let build-let build-sequence build-data build-primref build-lambda build-global-definition maybe-name-value! build-global-assignment build-global-reference analyze-variable build-lexical-assignment build-lexical-reference build-conditional build-application build-void decorate-source get-global-definition-hook put-global-definition-hook gensym-hook local-eval-hook top-level-eval-hook fx< fx= fx- fx+ *mode* noexpand) ((top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top)) ("i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i")) #(ribcage (define-structure and-map*) ((top) (top)) ("i" "i"))) (hygiene guile)) (wrap143 (cons args576 (cons e1577 e2578)) w543 mod546)) s544) '(()) s544 mod546)) tmp568) ((lambda (tmp580) (if (if tmp580 (apply (lambda (_581 name582) (id?115 name582)) tmp580) #f) (apply (lambda (_583 name584) (values 'define-form (wrap143 name584 w543 mod546) '(#(syntax-object if ((top) #(ribcage #(_ name) #((top) (top)) #("i" "i")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(ftype fval fe fw fs fmod) #((top) (top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(first) #((top)) #("i")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(e r w s rib mod for-car?) #((top) (top) (top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i" "i" "i")) #(ribcage (lambda-var-list gen-var strip ellipsis? chi-void eval-local-transformer chi-local-syntax chi-lambda-clause chi-body chi-macro chi-application chi-expr chi chi-top syntax-type chi-when-list chi-install-global chi-top-sequence chi-sequence source-wrap wrap bound-id-member? distinct-bound-ids? valid-bound-ids? bound-id=? free-id=? id-var-name same-marks? join-marks join-wraps smart-append make-binding-wrap extend-ribcage! make-empty-ribcage new-mark anti-mark the-anti-mark top-marked? top-wrap empty-wrap set-ribcage-labels! set-ribcage-marks! set-ribcage-symnames! ribcage-labels ribcage-marks ribcage-symnames ribcage? make-ribcage gen-labels gen-label make-rename rename-marks rename-new rename-old subst-rename? wrap-subst wrap-marks make-wrap id-sym-name&marks id-sym-name id? nonsymbol-id? global-extend lookup macros-only-env extend-var-env extend-env null-env binding-value binding-type make-binding arg-check source-annotation no-source set-syntax-object-module! set-syntax-object-wrap! set-syntax-object-expression! syntax-object-module syntax-object-wrap syntax-object-expression syntax-object? make-syntax-object build-lexical-var build-letrec build-named-let build-let build-sequence build-data build-primref build-lambda build-global-definition maybe-name-value! build-global-assignment build-global-reference analyze-variable build-lexical-assignment build-lexical-reference build-conditional build-application build-void decorate-source get-global-definition-hook put-global-definition-hook gensym-hook local-eval-hook top-level-eval-hook fx< fx= fx- fx+ *mode* noexpand) ((top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top)) ("i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i")) #(ribcage (define-structure and-map*) ((top) (top)) ("i" "i"))) (hygiene guile)) #(syntax-object #f ((top) #(ribcage #(_ name) #((top) (top)) #("i" "i")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(ftype fval fe fw fs fmod) #((top) (top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(first) #((top)) #("i")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(e r w s rib mod for-car?) #((top) (top) (top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i" "i" "i")) #(ribcage (lambda-var-list gen-var strip ellipsis? chi-void eval-local-transformer chi-local-syntax chi-lambda-clause chi-body chi-macro chi-application chi-expr chi chi-top syntax-type chi-when-list chi-install-global chi-top-sequence chi-sequence source-wrap wrap bound-id-member? distinct-bound-ids? valid-bound-ids? bound-id=? free-id=? id-var-name same-marks? join-marks join-wraps smart-append make-binding-wrap extend-ribcage! make-empty-ribcage new-mark anti-mark the-anti-mark top-marked? top-wrap empty-wrap set-ribcage-labels! set-ribcage-marks! set-ribcage-symnames! ribcage-labels ribcage-marks ribcage-symnames ribcage? make-ribcage gen-labels gen-label make-rename rename-marks rename-new rename-old subst-rename? wrap-subst wrap-marks make-wrap id-sym-name&marks id-sym-name id? nonsymbol-id? global-extend lookup macros-only-env extend-var-env extend-env null-env binding-value binding-type make-binding arg-check source-annotation no-source set-syntax-object-module! set-syntax-object-wrap! set-syntax-object-expression! syntax-object-module syntax-object-wrap syntax-object-expression syntax-object? make-syntax-object build-lexical-var build-letrec build-named-let build-let build-sequence build-data build-primref build-lambda build-global-definition maybe-name-value! build-global-assignment build-global-reference analyze-variable build-lexical-assignment build-lexical-reference build-conditional build-application build-void decorate-source get-global-definition-hook put-global-definition-hook gensym-hook local-eval-hook top-level-eval-hook fx< fx= fx- fx+ *mode* noexpand) ((top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top)) ("i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i")) #(ribcage (define-structure and-map*) ((top) (top)) ("i" "i"))) (hygiene guile)) #(syntax-object #f ((top) #(ribcage #(_ name) #((top) (top)) #("i" "i")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(ftype fval fe fw fs fmod) #((top) (top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(first) #((top)) #("i")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(e r w s rib mod for-car?) #((top) (top) (top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i" "i" "i")) #(ribcage (lambda-var-list gen-var strip ellipsis? chi-void eval-local-transformer chi-local-syntax chi-lambda-clause chi-body chi-macro chi-application chi-expr chi chi-top syntax-type chi-when-list chi-install-global chi-top-sequence chi-sequence source-wrap wrap bound-id-member? distinct-bound-ids? valid-bound-ids? bound-id=? free-id=? id-var-name same-marks? join-marks join-wraps smart-append make-binding-wrap extend-ribcage! make-empty-ribcage new-mark anti-mark the-anti-mark top-marked? top-wrap empty-wrap set-ribcage-labels! set-ribcage-marks! set-ribcage-symnames! ribcage-labels ribcage-marks ribcage-symnames ribcage? make-ribcage gen-labels gen-label make-rename rename-marks rename-new rename-old subst-rename? wrap-subst wrap-marks make-wrap id-sym-name&marks id-sym-name id? nonsymbol-id? global-extend lookup macros-only-env extend-var-env extend-env null-env binding-value binding-type make-binding arg-check source-annotation no-source set-syntax-object-module! set-syntax-object-wrap! set-syntax-object-expression! syntax-object-module syntax-object-wrap syntax-object-expression syntax-object? make-syntax-object build-lexical-var build-letrec build-named-let build-let build-sequence build-data build-primref build-lambda build-global-definition maybe-name-value! build-global-assignment build-global-reference analyze-variable build-lexical-assignment build-lexical-reference build-conditional build-application build-void decorate-source get-global-definition-hook put-global-definition-hook gensym-hook local-eval-hook top-level-eval-hook fx< fx= fx- fx+ *mode* noexpand) ((top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top)) ("i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i")) #(ribcage (define-structure and-map*) ((top) (top)) ("i" "i"))) (hygiene guile))) '(()) s544 mod546)) tmp580) (syntax-violation #f "source expression failed to match any pattern" tmp560))) ($sc-dispatch tmp560 '(any any))))) ($sc-dispatch tmp560 '(any (any . any) any . each-any))))) ($sc-dispatch tmp560 '(any any any)))) e541) (if (memv ftype552 '(define-syntax)) ((lambda (tmp585) ((lambda (tmp586) (if (if tmp586 (apply (lambda (_587 name588 val589) (id?115 name588)) tmp586) #f) (apply (lambda (_590 name591 val592) (values 'define-syntax-form name591 val592 w543 s544 mod546)) tmp586) (syntax-violation #f "source expression failed to match any pattern" tmp585))) ($sc-dispatch tmp585 '(any any any)))) e541) (values 'call #f e541 w543 s544 mod546)))))))))))))) (if (syntax-object?99 e541) (syntax-type149 (syntax-object-expression100 e541) r542 (join-wraps134 w543 (syntax-object-wrap101 e541)) s544 rib545 (let ((t593 (syntax-object-module102 e541))) (if t593 t593 mod546)) for-car?547) (if (self-evaluating? e541) (values 'constant #f e541 w543 s544 mod546) (values (quote other) #f e541 w543 s544 mod546))))))) (chi-when-list148 (lambda (e594 when-list595 w596) (letrec ((f597 (lambda (when-list598 situations599) (if (null? when-list598) situations599 (f597 (cdr when-list598) (cons (let ((x600 (car when-list598))) (if (free-id=?138 x600 '#(syntax-object compile ((top) #(ribcage () () ()) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i")) #(ribcage () () ()) #(ribcage #(f when-list situations) #((top) (top) (top)) #("i" "i" "i")) #(ribcage () () ()) #(ribcage #(e when-list w) #((top) (top) (top)) #("i" "i" "i")) #(ribcage (lambda-var-list gen-var strip ellipsis? chi-void eval-local-transformer chi-local-syntax chi-lambda-clause chi-body chi-macro chi-application chi-expr chi chi-top syntax-type chi-when-list chi-install-global chi-top-sequence chi-sequence source-wrap wrap bound-id-member? distinct-bound-ids? valid-bound-ids? bound-id=? free-id=? id-var-name same-marks? join-marks join-wraps smart-append make-binding-wrap extend-ribcage! make-empty-ribcage new-mark anti-mark the-anti-mark top-marked? top-wrap empty-wrap set-ribcage-labels! set-ribcage-marks! set-ribcage-symnames! ribcage-labels ribcage-marks ribcage-symnames ribcage? make-ribcage gen-labels gen-label make-rename rename-marks rename-new rename-old subst-rename? wrap-subst wrap-marks make-wrap id-sym-name&marks id-sym-name id? nonsymbol-id? global-extend lookup macros-only-env extend-var-env extend-env null-env binding-value binding-type make-binding arg-check source-annotation no-source set-syntax-object-module! set-syntax-object-wrap! set-syntax-object-expression! syntax-object-module syntax-object-wrap syntax-object-expression syntax-object? make-syntax-object build-lexical-var build-letrec build-named-let build-let build-sequence build-data build-primref build-lambda build-global-definition maybe-name-value! build-global-assignment build-global-reference analyze-variable build-lexical-assignment build-lexical-reference build-conditional build-application build-void decorate-source get-global-definition-hook put-global-definition-hook gensym-hook local-eval-hook top-level-eval-hook fx< fx= fx- fx+ *mode* noexpand) ((top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top)) ("i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i")) #(ribcage (define-structure and-map*) ((top) (top)) ("i" "i"))) (hygiene guile))) 'compile (if (free-id=?138 x600 '#(syntax-object load ((top) #(ribcage () () ()) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i")) #(ribcage () () ()) #(ribcage #(f when-list situations) #((top) (top) (top)) #("i" "i" "i")) #(ribcage () () ()) #(ribcage #(e when-list w) #((top) (top) (top)) #("i" "i" "i")) #(ribcage (lambda-var-list gen-var strip ellipsis? chi-void eval-local-transformer chi-local-syntax chi-lambda-clause chi-body chi-macro chi-application chi-expr chi chi-top syntax-type chi-when-list chi-install-global chi-top-sequence chi-sequence source-wrap wrap bound-id-member? distinct-bound-ids? valid-bound-ids? bound-id=? free-id=? id-var-name same-marks? join-marks join-wraps smart-append make-binding-wrap extend-ribcage! make-empty-ribcage new-mark anti-mark the-anti-mark top-marked? top-wrap empty-wrap set-ribcage-labels! set-ribcage-marks! set-ribcage-symnames! ribcage-labels ribcage-marks ribcage-symnames ribcage? make-ribcage gen-labels gen-label make-rename rename-marks rename-new rename-old subst-rename? wrap-subst wrap-marks make-wrap id-sym-name&marks id-sym-name id? nonsymbol-id? global-extend lookup macros-only-env extend-var-env extend-env null-env binding-value binding-type make-binding arg-check source-annotation no-source set-syntax-object-module! set-syntax-object-wrap! set-syntax-object-expression! syntax-object-module syntax-object-wrap syntax-object-expression syntax-object? make-syntax-object build-lexical-var build-letrec build-named-let build-let build-sequence build-data build-primref build-lambda build-global-definition maybe-name-value! build-global-assignment build-global-reference analyze-variable build-lexical-assignment build-lexical-reference build-conditional build-application build-void decorate-source get-global-definition-hook put-global-definition-hook gensym-hook local-eval-hook top-level-eval-hook fx< fx= fx- fx+ *mode* noexpand) ((top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top)) ("i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i")) #(ribcage (define-structure and-map*) ((top) (top)) ("i" "i"))) (hygiene guile))) 'load (if (free-id=?138 x600 '#(syntax-object eval ((top) #(ribcage () () ()) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i")) #(ribcage () () ()) #(ribcage #(f when-list situations) #((top) (top) (top)) #("i" "i" "i")) #(ribcage () () ()) #(ribcage #(e when-list w) #((top) (top) (top)) #("i" "i" "i")) #(ribcage (lambda-var-list gen-var strip ellipsis? chi-void eval-local-transformer chi-local-syntax chi-lambda-clause chi-body chi-macro chi-application chi-expr chi chi-top syntax-type chi-when-list chi-install-global chi-top-sequence chi-sequence source-wrap wrap bound-id-member? distinct-bound-ids? valid-bound-ids? bound-id=? free-id=? id-var-name same-marks? join-marks join-wraps smart-append make-binding-wrap extend-ribcage! make-empty-ribcage new-mark anti-mark the-anti-mark top-marked? top-wrap empty-wrap set-ribcage-labels! set-ribcage-marks! set-ribcage-symnames! ribcage-labels ribcage-marks ribcage-symnames ribcage? make-ribcage gen-labels gen-label make-rename rename-marks rename-new rename-old subst-rename? wrap-subst wrap-marks make-wrap id-sym-name&marks id-sym-name id? nonsymbol-id? global-extend lookup macros-only-env extend-var-env extend-env null-env binding-value binding-type make-binding arg-check source-annotation no-source set-syntax-object-module! set-syntax-object-wrap! set-syntax-object-expression! syntax-object-module syntax-object-wrap syntax-object-expression syntax-object? make-syntax-object build-lexical-var build-letrec build-named-let build-let build-sequence build-data build-primref build-lambda build-global-definition maybe-name-value! build-global-assignment build-global-reference analyze-variable build-lexical-assignment build-lexical-reference build-conditional build-application build-void decorate-source get-global-definition-hook put-global-definition-hook gensym-hook local-eval-hook top-level-eval-hook fx< fx= fx- fx+ *mode* noexpand) ((top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top)) ("i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i")) #(ribcage (define-structure and-map*) ((top) (top)) ("i" "i"))) (hygiene guile))) 'eval (syntax-violation 'eval-when "invalid situation" e594 (wrap143 x600 w596 #f)))))) situations599)))))) (f597 when-list595 (quote ()))))) (chi-install-global147 (lambda (name601 e602) (build-global-definition90 #f name601 (if (let ((v603 (module-variable (current-module) name601))) (if v603 (if (variable-bound? v603) (if (macro? (variable-ref v603)) (not (eq? (macro-type (variable-ref v603)) 'syncase-macro)) #f) #f) #f)) (build-application82 #f (build-primref92 #f 'make-extended-syncase-macro) (list (build-application82 #f (build-primref92 #f (quote module-ref)) (list (build-application82 #f (build-primref92 #f 'current-module) '()) (build-data93 #f name601))) (build-data93 #f (quote macro)) e602)) (build-application82 #f (build-primref92 #f (quote make-syncase-macro)) (list (build-data93 #f (quote macro)) e602)))))) (chi-top-sequence146 (lambda (body604 r605 w606 s607 m608 esew609 mod610) (build-sequence94 s607 (letrec ((dobody611 (lambda (body612 r613 w614 m615 esew616 mod617) (if (null? body612) '() (let ((first618 (chi-top150 (car body612) r613 w614 m615 esew616 mod617))) (cons first618 (dobody611 (cdr body612) r613 w614 m615 esew616 mod617))))))) (dobody611 body604 r605 w606 m608 esew609 mod610))))) (chi-sequence145 (lambda (body619 r620 w621 s622 mod623) (build-sequence94 s622 (letrec ((dobody624 (lambda (body625 r626 w627 mod628) (if (null? body625) '() (let ((first629 (chi151 (car body625) r626 w627 mod628))) (cons first629 (dobody624 (cdr body625) r626 w627 mod628))))))) (dobody624 body619 r620 w621 mod623))))) (source-wrap144 (lambda (x630 w631 s632 defmod633) (wrap143 (decorate-source80 x630 s632) w631 defmod633))) (wrap143 (lambda (x634 w635 defmod636) (if (if (null? (wrap-marks118 w635)) (null? (wrap-subst119 w635)) #f) x634 (if (syntax-object?99 x634) (make-syntax-object98 (syntax-object-expression100 x634) (join-wraps134 w635 (syntax-object-wrap101 x634)) (syntax-object-module102 x634)) (if (null? x634) x634 (make-syntax-object98 x634 w635 defmod636)))))) (bound-id-member?142 (lambda (x637 list638) (if (not (null? list638)) (let ((t639 (bound-id=?139 x637 (car list638)))) (if t639 t639 (bound-id-member?142 x637 (cdr list638)))) #f))) (distinct-bound-ids?141 (lambda (ids640) (letrec ((distinct?641 (lambda (ids642) (let ((t643 (null? ids642))) (if t643 t643 (if (not (bound-id-member?142 (car ids642) (cdr ids642))) (distinct?641 (cdr ids642)) #f)))))) (distinct?641 ids640)))) (valid-bound-ids?140 (lambda (ids644) (if (letrec ((all-ids?645 (lambda (ids646) (let ((t647 (null? ids646))) (if t647 t647 (if (id?115 (car ids646)) (all-ids?645 (cdr ids646)) #f)))))) (all-ids?645 ids644)) (distinct-bound-ids?141 ids644) #f))) (bound-id=?139 (lambda (i648 j649) (if (if (syntax-object?99 i648) (syntax-object?99 j649) #f) (if (eq? (syntax-object-expression100 i648) (syntax-object-expression100 j649)) (same-marks?136 (wrap-marks118 (syntax-object-wrap101 i648)) (wrap-marks118 (syntax-object-wrap101 j649))) #f) (eq? i648 j649)))) (free-id=?138 (lambda (i650 j651) (if (eq? (let ((x652 i650)) (if (syntax-object?99 x652) (syntax-object-expression100 x652) x652)) (let ((x653 j651)) (if (syntax-object?99 x653) (syntax-object-expression100 x653) x653))) (eq? (id-var-name137 i650 (quote (()))) (id-var-name137 j651 (quote (())))) #f))) (id-var-name137 (lambda (id654 w655) (letrec ((search-vector-rib658 (lambda (sym664 subst665 marks666 symnames667 ribcage668) (let ((n669 (vector-length symnames667))) (letrec ((f670 (lambda (i671) (if (fx=74 i671 n669) (search656 sym664 (cdr subst665) marks666) (if (if (eq? (vector-ref symnames667 i671) sym664) (same-marks?136 marks666 (vector-ref (ribcage-marks125 ribcage668) i671)) #f) (values (vector-ref (ribcage-labels126 ribcage668) i671) marks666) (f670 (fx+72 i671 1))))))) (f670 0))))) (search-list-rib657 (lambda (sym672 subst673 marks674 symnames675 ribcage676) (letrec ((f677 (lambda (symnames678 i679) (if (null? symnames678) (search656 sym672 (cdr subst673) marks674) (if (if (eq? (car symnames678) sym672) (same-marks?136 marks674 (list-ref (ribcage-marks125 ribcage676) i679)) #f) (values (list-ref (ribcage-labels126 ribcage676) i679) marks674) (f677 (cdr symnames678) (fx+72 i679 1))))))) (f677 symnames675 0)))) (search656 (lambda (sym680 subst681 marks682) (if (null? subst681) (values #f marks682) (let ((fst683 (car subst681))) (if (eq? fst683 (quote shift)) (search656 sym680 (cdr subst681) (cdr marks682)) (let ((symnames684 (ribcage-symnames124 fst683))) (if (vector? symnames684) (search-vector-rib658 sym680 subst681 marks682 symnames684 fst683) (search-list-rib657 sym680 subst681 marks682 symnames684 fst683))))))))) (if (symbol? id654) (let ((t685 (call-with-values (lambda () (search656 id654 (wrap-subst119 w655) (wrap-marks118 w655))) (lambda (x687 . ignore686) x687)))) (if t685 t685 id654)) (if (syntax-object?99 id654) (let ((id688 (syntax-object-expression100 id654)) (w1689 (syntax-object-wrap101 id654))) (let ((marks690 (join-marks135 (wrap-marks118 w655) (wrap-marks118 w1689)))) (call-with-values (lambda () (search656 id688 (wrap-subst119 w655) marks690)) (lambda (new-id691 marks692) (let ((t693 new-id691)) (if t693 t693 (let ((t694 (call-with-values (lambda () (search656 id688 (wrap-subst119 w1689) marks692)) (lambda (x696 . ignore695) x696)))) (if t694 t694 id688)))))))) (syntax-violation 'id-var-name "invalid id" id654)))))) (same-marks?136 (lambda (x697 y698) (let ((t699 (eq? x697 y698))) (if t699 t699 (if (not (null? x697)) (if (not (null? y698)) (if (eq? (car x697) (car y698)) (same-marks?136 (cdr x697) (cdr y698)) #f) #f) #f))))) (join-marks135 (lambda (m1700 m2701) (smart-append133 m1700 m2701))) (join-wraps134 (lambda (w1702 w2703) (let ((m1704 (wrap-marks118 w1702)) (s1705 (wrap-subst119 w1702))) (if (null? m1704) (if (null? s1705) w2703 (make-wrap117 (wrap-marks118 w2703) (smart-append133 s1705 (wrap-subst119 w2703)))) (make-wrap117 (smart-append133 m1704 (wrap-marks118 w2703)) (smart-append133 s1705 (wrap-subst119 w2703))))))) (smart-append133 (lambda (m1706 m2707) (if (null? m2707) m1706 (append m1706 m2707)))) (make-binding-wrap132 (lambda (ids708 labels709 w710) (if (null? ids708) w710 (make-wrap117 (wrap-marks118 w710) (cons (let ((labelvec711 (list->vector labels709))) (let ((n712 (vector-length labelvec711))) (let ((symnamevec713 (make-vector n712)) (marksvec714 (make-vector n712))) (begin (letrec ((f715 (lambda (ids716 i717) (if (not (null? ids716)) (call-with-values (lambda () (id-sym-name&marks116 (car ids716) w710)) (lambda (symname718 marks719) (begin (vector-set! symnamevec713 i717 symname718) (vector-set! marksvec714 i717 marks719) (f715 (cdr ids716) (fx+72 i717 1))))))))) (f715 ids708 0)) (make-ribcage122 symnamevec713 marksvec714 labelvec711))))) (wrap-subst119 w710)))))) (extend-ribcage!131 (lambda (ribcage720 id721 label722) (begin (set-ribcage-symnames!127 ribcage720 (cons (syntax-object-expression100 id721) (ribcage-symnames124 ribcage720))) (set-ribcage-marks!128 ribcage720 (cons (wrap-marks118 (syntax-object-wrap101 id721)) (ribcage-marks125 ribcage720))) (set-ribcage-labels!129 ribcage720 (cons label722 (ribcage-labels126 ribcage720)))))) (anti-mark130 (lambda (w723) (make-wrap117 (cons #f (wrap-marks118 w723)) (cons (quote shift) (wrap-subst119 w723))))) (set-ribcage-labels!129 (lambda (x724 update725) (vector-set! x724 3 update725))) (set-ribcage-marks!128 (lambda (x726 update727) (vector-set! x726 2 update727))) (set-ribcage-symnames!127 (lambda (x728 update729) (vector-set! x728 1 update729))) (ribcage-labels126 (lambda (x730) (vector-ref x730 3))) (ribcage-marks125 (lambda (x731) (vector-ref x731 2))) (ribcage-symnames124 (lambda (x732) (vector-ref x732 1))) (ribcage?123 (lambda (x733) (if (vector? x733) (if (= (vector-length x733) 4) (eq? (vector-ref x733 0) (quote ribcage)) #f) #f))) (make-ribcage122 (lambda (symnames734 marks735 labels736) (vector 'ribcage symnames734 marks735 labels736))) (gen-labels121 (lambda (ls737) (if (null? ls737) '() (cons (gen-label120) (gen-labels121 (cdr ls737)))))) (gen-label120 (lambda () (string #\i))) (wrap-subst119 cdr) (wrap-marks118 car) (make-wrap117 cons) (id-sym-name&marks116 (lambda (x738 w739) (if (syntax-object?99 x738) (values (syntax-object-expression100 x738) (join-marks135 (wrap-marks118 w739) (wrap-marks118 (syntax-object-wrap101 x738)))) (values x738 (wrap-marks118 w739))))) (id?115 (lambda (x740) (if (symbol? x740) #t (if (syntax-object?99 x740) (symbol? (syntax-object-expression100 x740)) #f)))) (nonsymbol-id?114 (lambda (x741) (if (syntax-object?99 x741) (symbol? (syntax-object-expression100 x741)) #f))) (global-extend113 (lambda (type742 sym743 val744) (put-global-definition-hook78 sym743 type742 val744))) (lookup112 (lambda (x745 r746 mod747) (let ((t748 (assq x745 r746))) (if t748 (cdr t748) (if (symbol? x745) (let ((t749 (get-global-definition-hook79 x745 mod747))) (if t749 t749 (quote (global)))) '(displaced-lexical)))))) (macros-only-env111 (lambda (r750) (if (null? r750) '() (let ((a751 (car r750))) (if (eq? (cadr a751) (quote macro)) (cons a751 (macros-only-env111 (cdr r750))) (macros-only-env111 (cdr r750))))))) (extend-var-env110 (lambda (labels752 vars753 r754) (if (null? labels752) r754 (extend-var-env110 (cdr labels752) (cdr vars753) (cons (cons (car labels752) (cons (quote lexical) (car vars753))) r754))))) (extend-env109 (lambda (labels755 bindings756 r757) (if (null? labels755) r757 (extend-env109 (cdr labels755) (cdr bindings756) (cons (cons (car labels755) (car bindings756)) r757))))) (binding-value108 cdr) (binding-type107 car) (source-annotation106 (lambda (x758) (if (syntax-object?99 x758) (source-annotation106 (syntax-object-expression100 x758)) (if (pair? x758) (let ((props759 (source-properties x758))) (if (pair? props759) props759 #f)) #f)))) (set-syntax-object-module!105 (lambda (x760 update761) (vector-set! x760 3 update761))) (set-syntax-object-wrap!104 (lambda (x762 update763) (vector-set! x762 2 update763))) (set-syntax-object-expression!103 (lambda (x764 update765) (vector-set! x764 1 update765))) (syntax-object-module102 (lambda (x766) (vector-ref x766 3))) (syntax-object-wrap101 (lambda (x767) (vector-ref x767 2))) (syntax-object-expression100 (lambda (x768) (vector-ref x768 1))) (syntax-object?99 (lambda (x769) (if (vector? x769) (if (= (vector-length x769) 4) (eq? (vector-ref x769 0) (quote syntax-object)) #f) #f))) (make-syntax-object98 (lambda (expression770 wrap771 module772) (vector 'syntax-object expression770 wrap771 module772))) (build-letrec97 (lambda (src773 ids774 vars775 val-exps776 body-exp777) (if (null? vars775) body-exp777 (let ((atom-key778 (fluid-ref *mode*71))) (if (memv atom-key778 (quote (c))) (begin (for-each maybe-name-value!89 ids774 val-exps776) ((@ (language tree-il) make-letrec) src773 ids774 vars775 val-exps776 body-exp777)) (decorate-source80 (list 'letrec (map list vars775 val-exps776) body-exp777) src773)))))) (build-named-let96 (lambda (src779 ids780 vars781 val-exps782 body-exp783) (let ((f784 (car vars781)) (f-name785 (car ids780)) (vars786 (cdr vars781)) (ids787 (cdr ids780))) (let ((atom-key788 (fluid-ref *mode*71))) (if (memv atom-key788 (quote (c))) (let ((proc789 (build-lambda91 src779 ids787 vars786 #f body-exp783))) (begin (maybe-name-value!89 f-name785 proc789) (for-each maybe-name-value!89 ids787 val-exps782) ((@ (language tree-il) make-letrec) src779 (list f-name785) (list f784) (list proc789) (build-application82 src779 (build-lexical-reference84 'fun src779 f-name785 f784) val-exps782)))) (decorate-source80 (list 'let f784 (map list vars786 val-exps782) body-exp783) src779)))))) (build-let95 (lambda (src790 ids791 vars792 val-exps793 body-exp794) (if (null? vars792) body-exp794 (let ((atom-key795 (fluid-ref *mode*71))) (if (memv atom-key795 (quote (c))) (begin (for-each maybe-name-value!89 ids791 val-exps793) ((@ (language tree-il) make-let) src790 ids791 vars792 val-exps793 body-exp794)) (decorate-source80 (list 'let (map list vars792 val-exps793) body-exp794) src790)))))) (build-sequence94 (lambda (src796 exps797) (if (null? (cdr exps797)) (car exps797) (let ((atom-key798 (fluid-ref *mode*71))) (if (memv atom-key798 (quote (c))) ((@ (language tree-il) make-sequence) src796 exps797) (decorate-source80 (cons (quote begin) exps797) src796)))))) (build-data93 (lambda (src799 exp800) (let ((atom-key801 (fluid-ref *mode*71))) (if (memv atom-key801 (quote (c))) ((@ (language tree-il) make-const) src799 exp800) (decorate-source80 (if (if (self-evaluating? exp800) (not (vector? exp800)) #f) exp800 (list (quote quote) exp800)) src799))))) (build-primref92 (lambda (src802 name803) (if (equal? (module-name (current-module)) '(guile)) (let ((atom-key804 (fluid-ref *mode*71))) (if (memv atom-key804 (quote (c))) ((@ (language tree-il) make-toplevel-ref) src802 name803) (decorate-source80 name803 src802))) (let ((atom-key805 (fluid-ref *mode*71))) (if (memv atom-key805 (quote (c))) ((@ (language tree-il) make-module-ref) src802 '(guile) name803 #f) (decorate-source80 (list (quote @@) (quote (guile)) name803) src802)))))) (build-lambda91 (lambda (src806 ids807 vars808 docstring809 exp810) (let ((atom-key811 (fluid-ref *mode*71))) (if (memv atom-key811 (quote (c))) ((@ (language tree-il) make-lambda) src806 ids807 vars808 (if docstring809 (list (cons (quote documentation) docstring809)) '()) exp810) (decorate-source80 (cons 'lambda (cons vars808 (append (if docstring809 (list docstring809) '()) (list exp810)))) src806))))) (build-global-definition90 (lambda (source812 var813 exp814) (let ((atom-key815 (fluid-ref *mode*71))) (if (memv atom-key815 (quote (c))) (begin (maybe-name-value!89 var813 exp814) ((@ (language tree-il) make-toplevel-define) source812 var813 exp814)) (decorate-source80 (list (quote define) var813 exp814) source812))))) (maybe-name-value!89 (lambda (name816 val817) (if ((@ (language tree-il) lambda?) val817) (let ((meta818 ((@ (language tree-il) lambda-meta) val817))) (if (not (assq (quote name) meta818)) ((setter (@ (language tree-il) lambda-meta)) val817 (acons (quote name) name816 meta818))))))) (build-global-assignment88 (lambda (source819 var820 exp821 mod822) (analyze-variable86 mod822 var820 (lambda (mod823 var824 public?825) (let ((atom-key826 (fluid-ref *mode*71))) (if (memv atom-key826 (quote (c))) ((@ (language tree-il) make-module-set) source819 mod823 var824 public?825 exp821) (decorate-source80 (list 'set! (list (if public?825 (quote @) (quote @@)) mod823 var824) exp821) source819)))) (lambda (var827) (let ((atom-key828 (fluid-ref *mode*71))) (if (memv atom-key828 (quote (c))) ((@ (language tree-il) make-toplevel-set) source819 var827 exp821) (decorate-source80 (list (quote set!) var827 exp821) source819))))))) (build-global-reference87 (lambda (source829 var830 mod831) (analyze-variable86 mod831 var830 (lambda (mod832 var833 public?834) (let ((atom-key835 (fluid-ref *mode*71))) (if (memv atom-key835 (quote (c))) ((@ (language tree-il) make-module-ref) source829 mod832 var833 public?834) (decorate-source80 (list (if public?834 (quote @) (quote @@)) mod832 var833) source829)))) (lambda (var836) (let ((atom-key837 (fluid-ref *mode*71))) (if (memv atom-key837 (quote (c))) ((@ (language tree-il) make-toplevel-ref) source829 var836) (decorate-source80 var836 source829))))))) (analyze-variable86 (lambda (mod838 var839 modref-cont840 bare-cont841) (if (not mod838) (bare-cont841 var839) (let ((kind842 (car mod838)) (mod843 (cdr mod838))) (if (memv kind842 (quote (public))) (modref-cont840 mod843 var839 #t) (if (memv kind842 (quote (private))) (if (not (equal? mod843 (module-name (current-module)))) (modref-cont840 mod843 var839 #f) (bare-cont841 var839)) (if (memv kind842 (quote (bare))) (bare-cont841 var839) (if (memv kind842 (quote (hygiene))) (if (if (not (equal? mod843 (module-name (current-module)))) (module-variable (resolve-module mod843) var839) #f) (modref-cont840 mod843 var839 #f) (bare-cont841 var839)) (syntax-violation #f "bad module kind" var839 mod843))))))))) (build-lexical-assignment85 (lambda (source844 name845 var846 exp847) (let ((atom-key848 (fluid-ref *mode*71))) (if (memv atom-key848 (quote (c))) ((@ (language tree-il) make-lexical-set) source844 name845 var846 exp847) (decorate-source80 (list (quote set!) var846 exp847) source844))))) (build-lexical-reference84 (lambda (type849 source850 name851 var852) (let ((atom-key853 (fluid-ref *mode*71))) (if (memv atom-key853 (quote (c))) ((@ (language tree-il) make-lexical-ref) source850 name851 var852) (decorate-source80 var852 source850))))) (build-conditional83 (lambda (source854 test-exp855 then-exp856 else-exp857) (let ((atom-key858 (fluid-ref *mode*71))) (if (memv atom-key858 (quote (c))) ((@ (language tree-il) make-conditional) source854 test-exp855 then-exp856 else-exp857) (decorate-source80 (if (equal? else-exp857 (quote (if #f #f))) (list (quote if) test-exp855 then-exp856) (list 'if test-exp855 then-exp856 else-exp857)) source854))))) (build-application82 (lambda (source859 fun-exp860 arg-exps861) (let ((atom-key862 (fluid-ref *mode*71))) (if (memv atom-key862 (quote (c))) ((@ (language tree-il) make-application) source859 fun-exp860 arg-exps861) (decorate-source80 (cons fun-exp860 arg-exps861) source859))))) (build-void81 (lambda (source863) (let ((atom-key864 (fluid-ref *mode*71))) (if (memv atom-key864 (quote (c))) ((@ (language tree-il) make-void) source863) (decorate-source80 (quote (if #f #f)) source863))))) (decorate-source80 (lambda (e865 s866) (begin (if (if (pair? e865) s866 #f) (set-source-properties! e865 s866)) e865))) (get-global-definition-hook79 (lambda (symbol867 module868) (begin (if (if (not module868) (current-module) #f) (warn "module system is booted, we should have a module" symbol867)) (let ((v869 (module-variable (if module868 (resolve-module (cdr module868)) (current-module)) symbol867))) (if v869 (if (variable-bound? v869) (let ((val870 (variable-ref v869))) (if (macro? val870) (if (syncase-macro-type val870) (cons (syncase-macro-type val870) (syncase-macro-binding val870)) #f) #f)) #f) #f))))) (put-global-definition-hook78 (lambda (symbol871 type872 val873) (let ((existing874 (let ((v875 (module-variable (current-module) symbol871))) (if v875 (if (variable-bound? v875) (let ((val876 (variable-ref v875))) (if (macro? val876) (if (not (syncase-macro-type val876)) val876 #f) #f)) #f) #f)))) (module-define! (current-module) symbol871 (if existing874 (make-extended-syncase-macro existing874 type872 val873) (make-syncase-macro type872 val873)))))) (local-eval-hook77 (lambda (x877 mod878) (primitive-eval (list noexpand70 (let ((atom-key879 (fluid-ref *mode*71))) (if (memv atom-key879 (quote (c))) ((@ (language tree-il) tree-il->scheme) x877) x877)))))) (top-level-eval-hook76 (lambda (x880 mod881) (primitive-eval (list noexpand70 (let ((atom-key882 (fluid-ref *mode*71))) (if (memv atom-key882 (quote (c))) ((@ (language tree-il) tree-il->scheme) x880) x880)))))) (fx<75 <) (fx=74 =) (fx-73 -) (fx+72 +) (*mode*71 (make-fluid)) (noexpand70 "noexpand")) (begin (global-extend113 'local-syntax 'letrec-syntax #t) (global-extend113 'local-syntax 'let-syntax #f) (global-extend113 'core 'fluid-let-syntax (lambda (e883 r884 w885 s886 mod887) ((lambda (tmp888) ((lambda (tmp889) (if (if tmp889 (apply (lambda (_890 var891 val892 e1893 e2894) (valid-bound-ids?140 var891)) tmp889) #f) (apply (lambda (_896 var897 val898 e1899 e2900) (let ((names901 (map (lambda (x902) (id-var-name137 x902 w885)) var897))) (begin (for-each (lambda (id904 n905) (let ((atom-key906 (binding-type107 (lookup112 n905 r884 mod887)))) (if (memv atom-key906 '(displaced-lexical)) (syntax-violation 'fluid-let-syntax "identifier out of context" e883 (source-wrap144 id904 w885 s886 mod887))))) var897 names901) (chi-body155 (cons e1899 e2900) (source-wrap144 e883 w885 s886 mod887) (extend-env109 names901 (let ((trans-r909 (macros-only-env111 r884))) (map (lambda (x910) (cons 'macro (eval-local-transformer158 (chi151 x910 trans-r909 w885 mod887) mod887))) val898)) r884) w885 mod887)))) tmp889) ((lambda (_912) (syntax-violation 'fluid-let-syntax "bad syntax" (source-wrap144 e883 w885 s886 mod887))) tmp888))) ($sc-dispatch tmp888 '(any #(each (any any)) any . each-any)))) e883))) (global-extend113 'core 'quote (lambda (e913 r914 w915 s916 mod917) ((lambda (tmp918) ((lambda (tmp919) (if tmp919 (apply (lambda (_920 e921) (build-data93 s916 (strip161 e921 w915))) tmp919) ((lambda (_922) (syntax-violation 'quote "bad syntax" (source-wrap144 e913 w915 s916 mod917))) tmp918))) ($sc-dispatch tmp918 (quote (any any))))) e913))) (global-extend113 'core 'syntax (letrec ((regen930 (lambda (x931) (let ((atom-key932 (car x931))) (if (memv atom-key932 (quote (ref))) (build-lexical-reference84 'value #f (cadr x931) (cadr x931)) (if (memv atom-key932 (quote (primitive))) (build-primref92 #f (cadr x931)) (if (memv atom-key932 (quote (quote))) (build-data93 #f (cadr x931)) (if (memv atom-key932 (quote (lambda))) (build-lambda91 #f (cadr x931) (cadr x931) #f (regen930 (caddr x931))) (build-application82 #f (build-primref92 #f (car x931)) (map regen930 (cdr x931)))))))))) (gen-vector929 (lambda (x933) (if (eq? (car x933) (quote list)) (cons (quote vector) (cdr x933)) (if (eq? (car x933) (quote quote)) (list (quote quote) (list->vector (cadr x933))) (list (quote list->vector) x933))))) (gen-append928 (lambda (x934 y935) (if (equal? y935 (quote (quote ()))) x934 (list (quote append) x934 y935)))) (gen-cons927 (lambda (x936 y937) (let ((atom-key938 (car y937))) (if (memv atom-key938 (quote (quote))) (if (eq? (car x936) (quote quote)) (list 'quote (cons (cadr x936) (cadr y937))) (if (eq? (cadr y937) (quote ())) (list (quote list) x936) (list (quote cons) x936 y937))) (if (memv atom-key938 (quote (list))) (cons (quote list) (cons x936 (cdr y937))) (list (quote cons) x936 y937)))))) (gen-map926 (lambda (e939 map-env940) (let ((formals941 (map cdr map-env940)) (actuals942 (map (lambda (x943) (list (quote ref) (car x943))) map-env940))) (if (eq? (car e939) (quote ref)) (car actuals942) (if (and-map (lambda (x944) (if (eq? (car x944) (quote ref)) (memq (cadr x944) formals941) #f)) (cdr e939)) (cons 'map (cons (list (quote primitive) (car e939)) (map (let ((r945 (map cons formals941 actuals942))) (lambda (x946) (cdr (assq (cadr x946) r945)))) (cdr e939)))) (cons 'map (cons (list (quote lambda) formals941 e939) actuals942))))))) (gen-mappend925 (lambda (e947 map-env948) (list 'apply '(primitive append) (gen-map926 e947 map-env948)))) (gen-ref924 (lambda (src949 var950 level951 maps952) (if (fx=74 level951 0) (values var950 maps952) (if (null? maps952) (syntax-violation 'syntax "missing ellipsis" src949) (call-with-values (lambda () (gen-ref924 src949 var950 (fx-73 level951 1) (cdr maps952))) (lambda (outer-var953 outer-maps954) (let ((b955 (assq outer-var953 (car maps952)))) (if b955 (values (cdr b955) maps952) (let ((inner-var956 (gen-var162 (quote tmp)))) (values inner-var956 (cons (cons (cons outer-var953 inner-var956) (car maps952)) outer-maps954))))))))))) (gen-syntax923 (lambda (src957 e958 r959 maps960 ellipsis?961 mod962) (if (id?115 e958) (let ((label963 (id-var-name137 e958 (quote (()))))) (let ((b964 (lookup112 label963 r959 mod962))) (if (eq? (binding-type107 b964) (quote syntax)) (call-with-values (lambda () (let ((var.lev965 (binding-value108 b964))) (gen-ref924 src957 (car var.lev965) (cdr var.lev965) maps960))) (lambda (var966 maps967) (values (list (quote ref) var966) maps967))) (if (ellipsis?961 e958) (syntax-violation 'syntax "misplaced ellipsis" src957) (values (list (quote quote) e958) maps960))))) ((lambda (tmp968) ((lambda (tmp969) (if (if tmp969 (apply (lambda (dots970 e971) (ellipsis?961 dots970)) tmp969) #f) (apply (lambda (dots972 e973) (gen-syntax923 src957 e973 r959 maps960 (lambda (x974) #f) mod962)) tmp969) ((lambda (tmp975) (if (if tmp975 (apply (lambda (x976 dots977 y978) (ellipsis?961 dots977)) tmp975) #f) (apply (lambda (x979 dots980 y981) (letrec ((f982 (lambda (y983 k984) ((lambda (tmp988) ((lambda (tmp989) (if (if tmp989 (apply (lambda (dots990 y991) (ellipsis?961 dots990)) tmp989) #f) (apply (lambda (dots992 y993) (f982 y993 (lambda (maps994) (call-with-values (lambda () (k984 (cons '() maps994))) (lambda (x995 maps996) (if (null? (car maps996)) (syntax-violation 'syntax "extra ellipsis" src957) (values (gen-mappend925 x995 (car maps996)) (cdr maps996)))))))) tmp989) ((lambda (_997) (call-with-values (lambda () (gen-syntax923 src957 y983 r959 maps960 ellipsis?961 mod962)) (lambda (y998 maps999) (call-with-values (lambda () (k984 maps999)) (lambda (x1000 maps1001) (values (gen-append928 x1000 y998) maps1001)))))) tmp988))) ($sc-dispatch tmp988 '(any . any)))) y983)))) (f982 y981 (lambda (maps985) (call-with-values (lambda () (gen-syntax923 src957 x979 r959 (cons '() maps985) ellipsis?961 mod962)) (lambda (x986 maps987) (if (null? (car maps987)) (syntax-violation 'syntax "extra ellipsis" src957) (values (gen-map926 x986 (car maps987)) (cdr maps987))))))))) tmp975) ((lambda (tmp1002) (if tmp1002 (apply (lambda (x1003 y1004) (call-with-values (lambda () (gen-syntax923 src957 x1003 r959 maps960 ellipsis?961 mod962)) (lambda (x1005 maps1006) (call-with-values (lambda () (gen-syntax923 src957 y1004 r959 maps1006 ellipsis?961 mod962)) (lambda (y1007 maps1008) (values (gen-cons927 x1005 y1007) maps1008)))))) tmp1002) ((lambda (tmp1009) (if tmp1009 (apply (lambda (e11010 e21011) (call-with-values (lambda () (gen-syntax923 src957 (cons e11010 e21011) r959 maps960 ellipsis?961 mod962)) (lambda (e1013 maps1014) (values (gen-vector929 e1013) maps1014)))) tmp1009) ((lambda (_1015) (values (list (quote quote) e958) maps960)) tmp968))) ($sc-dispatch tmp968 '#(vector (any . each-any)))))) ($sc-dispatch tmp968 '(any . any))))) ($sc-dispatch tmp968 '(any any . any))))) ($sc-dispatch tmp968 (quote (any any))))) e958))))) (lambda (e1016 r1017 w1018 s1019 mod1020) (let ((e1021 (source-wrap144 e1016 w1018 s1019 mod1020))) ((lambda (tmp1022) ((lambda (tmp1023) (if tmp1023 (apply (lambda (_1024 x1025) (call-with-values (lambda () (gen-syntax923 e1021 x1025 r1017 '() ellipsis?160 mod1020)) (lambda (e1026 maps1027) (regen930 e1026)))) tmp1023) ((lambda (_1028) (syntax-violation 'syntax "bad `syntax' form" e1021)) tmp1022))) ($sc-dispatch tmp1022 (quote (any any))))) e1021))))) (global-extend113 'core 'lambda (lambda (e1029 r1030 w1031 s1032 mod1033) ((lambda (tmp1034) ((lambda (tmp1035) (if tmp1035 (apply (lambda (_1036 c1037) (chi-lambda-clause156 (source-wrap144 e1029 w1031 s1032 mod1033) #f c1037 r1030 w1031 mod1033 (lambda (names1038 vars1039 docstring1040 body1041) (build-lambda91 s1032 names1038 vars1039 docstring1040 body1041)))) tmp1035) (syntax-violation #f "source expression failed to match any pattern" tmp1034))) ($sc-dispatch tmp1034 (quote (any . any))))) e1029))) (global-extend113 'core 'let (letrec ((chi-let1042 (lambda (e1043 r1044 w1045 s1046 mod1047 constructor1048 ids1049 vals1050 exps1051) (if (not (valid-bound-ids?140 ids1049)) (syntax-violation 'let "duplicate bound variable" e1043) (let ((labels1052 (gen-labels121 ids1049)) (new-vars1053 (map gen-var162 ids1049))) (let ((nw1054 (make-binding-wrap132 ids1049 labels1052 w1045)) (nr1055 (extend-var-env110 labels1052 new-vars1053 r1044))) (constructor1048 s1046 (map syntax->datum ids1049) new-vars1053 (map (lambda (x1056) (chi151 x1056 r1044 w1045 mod1047)) vals1050) (chi-body155 exps1051 (source-wrap144 e1043 nw1054 s1046 mod1047) nr1055 nw1054 mod1047)))))))) (lambda (e1057 r1058 w1059 s1060 mod1061) ((lambda (tmp1062) ((lambda (tmp1063) (if (if tmp1063 (apply (lambda (_1064 id1065 val1066 e11067 e21068) (and-map id?115 id1065)) tmp1063) #f) (apply (lambda (_1070 id1071 val1072 e11073 e21074) (chi-let1042 e1057 r1058 w1059 s1060 mod1061 build-let95 id1071 val1072 (cons e11073 e21074))) tmp1063) ((lambda (tmp1078) (if (if tmp1078 (apply (lambda (_1079 f1080 id1081 val1082 e11083 e21084) (if (id?115 f1080) (and-map id?115 id1081) #f)) tmp1078) #f) (apply (lambda (_1086 f1087 id1088 val1089 e11090 e21091) (chi-let1042 e1057 r1058 w1059 s1060 mod1061 build-named-let96 (cons f1087 id1088) val1089 (cons e11090 e21091))) tmp1078) ((lambda (_1095) (syntax-violation 'let "bad let" (source-wrap144 e1057 w1059 s1060 mod1061))) tmp1062))) ($sc-dispatch tmp1062 '(any any #(each (any any)) any . each-any))))) ($sc-dispatch tmp1062 '(any #(each (any any)) any . each-any)))) e1057)))) (global-extend113 'core 'letrec (lambda (e1096 r1097 w1098 s1099 mod1100) ((lambda (tmp1101) ((lambda (tmp1102) (if (if tmp1102 (apply (lambda (_1103 id1104 val1105 e11106 e21107) (and-map id?115 id1104)) tmp1102) #f) (apply (lambda (_1109 id1110 val1111 e11112 e21113) (let ((ids1114 id1110)) (if (not (valid-bound-ids?140 ids1114)) (syntax-violation 'letrec "duplicate bound variable" e1096) (let ((labels1116 (gen-labels121 ids1114)) (new-vars1117 (map gen-var162 ids1114))) (let ((w1118 (make-binding-wrap132 ids1114 labels1116 w1098)) (r1119 (extend-var-env110 labels1116 new-vars1117 r1097))) (build-letrec97 s1099 (map syntax->datum ids1114) new-vars1117 (map (lambda (x1120) (chi151 x1120 r1119 w1118 mod1100)) val1111) (chi-body155 (cons e11112 e21113) (source-wrap144 e1096 w1118 s1099 mod1100) r1119 w1118 mod1100))))))) tmp1102) ((lambda (_1123) (syntax-violation 'letrec "bad letrec" (source-wrap144 e1096 w1098 s1099 mod1100))) tmp1101))) ($sc-dispatch tmp1101 '(any #(each (any any)) any . each-any)))) e1096))) (global-extend113 'core 'set! (lambda (e1124 r1125 w1126 s1127 mod1128) ((lambda (tmp1129) ((lambda (tmp1130) (if (if tmp1130 (apply (lambda (_1131 id1132 val1133) (id?115 id1132)) tmp1130) #f) (apply (lambda (_1134 id1135 val1136) (let ((val1137 (chi151 val1136 r1125 w1126 mod1128)) (n1138 (id-var-name137 id1135 w1126))) (let ((b1139 (lookup112 n1138 r1125 mod1128))) (let ((atom-key1140 (binding-type107 b1139))) (if (memv atom-key1140 (quote (lexical))) (build-lexical-assignment85 s1127 (syntax->datum id1135) (binding-value108 b1139) val1137) (if (memv atom-key1140 (quote (global))) (build-global-assignment88 s1127 n1138 val1137 mod1128) (if (memv atom-key1140 '(displaced-lexical)) (syntax-violation 'set! "identifier out of context" (wrap143 id1135 w1126 mod1128)) (syntax-violation 'set! "bad set!" (source-wrap144 e1124 w1126 s1127 mod1128))))))))) tmp1130) ((lambda (tmp1141) (if tmp1141 (apply (lambda (_1142 head1143 tail1144 val1145) (call-with-values (lambda () (syntax-type149 head1143 r1125 '(()) #f #f mod1128 #t)) (lambda (type1146 value1147 ee1148 ww1149 ss1150 modmod1151) (if (memv type1146 (quote (module-ref))) (let ((val1152 (chi151 val1145 r1125 w1126 mod1128))) (call-with-values (lambda () (value1147 (cons head1143 tail1144))) (lambda (id1154 mod1155) (build-global-assignment88 s1127 id1154 val1152 mod1155)))) (build-application82 s1127 (chi151 (list '#(syntax-object setter ((top) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(type value ee ww ss modmod) #((top) (top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i" "i")) #(ribcage #(_ head tail val) #((top) (top) (top) (top)) #("i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(e r w s mod) #((top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i")) #(ribcage (lambda-var-list gen-var strip ellipsis? chi-void eval-local-transformer chi-local-syntax chi-lambda-clause chi-body chi-macro chi-application chi-expr chi chi-top syntax-type chi-when-list chi-install-global chi-top-sequence chi-sequence source-wrap wrap bound-id-member? distinct-bound-ids? valid-bound-ids? bound-id=? free-id=? id-var-name same-marks? join-marks join-wraps smart-append make-binding-wrap extend-ribcage! make-empty-ribcage new-mark anti-mark the-anti-mark top-marked? top-wrap empty-wrap set-ribcage-labels! set-ribcage-marks! set-ribcage-symnames! ribcage-labels ribcage-marks ribcage-symnames ribcage? make-ribcage gen-labels gen-label make-rename rename-marks rename-new rename-old subst-rename? wrap-subst wrap-marks make-wrap id-sym-name&marks id-sym-name id? nonsymbol-id? global-extend lookup macros-only-env extend-var-env extend-env null-env binding-value binding-type make-binding arg-check source-annotation no-source set-syntax-object-module! set-syntax-object-wrap! set-syntax-object-expression! syntax-object-module syntax-object-wrap syntax-object-expression syntax-object? make-syntax-object build-lexical-var build-letrec build-named-let build-let build-sequence build-data build-primref build-lambda build-global-definition maybe-name-value! build-global-assignment build-global-reference analyze-variable build-lexical-assignment build-lexical-reference build-conditional build-application build-void decorate-source get-global-definition-hook put-global-definition-hook gensym-hook local-eval-hook top-level-eval-hook fx< fx= fx- fx+ *mode* noexpand) ((top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top)) ("i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i")) #(ribcage (define-structure and-map*) ((top) (top)) ("i" "i"))) (hygiene guile)) head1143) r1125 w1126 mod1128) (map (lambda (e1156) (chi151 e1156 r1125 w1126 mod1128)) (append tail1144 (list val1145)))))))) tmp1141) ((lambda (_1158) (syntax-violation 'set! "bad set!" (source-wrap144 e1124 w1126 s1127 mod1128))) tmp1129))) ($sc-dispatch tmp1129 '(any (any . each-any) any))))) ($sc-dispatch tmp1129 (quote (any any any))))) e1124))) (global-extend113 'module-ref '@ (lambda (e1159) ((lambda (tmp1160) ((lambda (tmp1161) (if (if tmp1161 (apply (lambda (_1162 mod1163 id1164) (if (and-map id?115 mod1163) (id?115 id1164) #f)) tmp1161) #f) (apply (lambda (_1166 mod1167 id1168) (values (syntax->datum id1168) (syntax->datum (cons '#(syntax-object public ((top) #(ribcage #(_ mod id) #((top) (top) (top)) #("i" "i" "i")) #(ribcage () () ()) #(ribcage #(e) #((top)) #("i")) #(ribcage (lambda-var-list gen-var strip ellipsis? chi-void eval-local-transformer chi-local-syntax chi-lambda-clause chi-body chi-macro chi-application chi-expr chi chi-top syntax-type chi-when-list chi-install-global chi-top-sequence chi-sequence source-wrap wrap bound-id-member? distinct-bound-ids? valid-bound-ids? bound-id=? free-id=? id-var-name same-marks? join-marks join-wraps smart-append make-binding-wrap extend-ribcage! make-empty-ribcage new-mark anti-mark the-anti-mark top-marked? top-wrap empty-wrap set-ribcage-labels! set-ribcage-marks! set-ribcage-symnames! ribcage-labels ribcage-marks ribcage-symnames ribcage? make-ribcage gen-labels gen-label make-rename rename-marks rename-new rename-old subst-rename? wrap-subst wrap-marks make-wrap id-sym-name&marks id-sym-name id? nonsymbol-id? global-extend lookup macros-only-env extend-var-env extend-env null-env binding-value binding-type make-binding arg-check source-annotation no-source set-syntax-object-module! set-syntax-object-wrap! set-syntax-object-expression! syntax-object-module syntax-object-wrap syntax-object-expression syntax-object? make-syntax-object build-lexical-var build-letrec build-named-let build-let build-sequence build-data build-primref build-lambda build-global-definition maybe-name-value! build-global-assignment build-global-reference analyze-variable build-lexical-assignment build-lexical-reference build-conditional build-application build-void decorate-source get-global-definition-hook put-global-definition-hook gensym-hook local-eval-hook top-level-eval-hook fx< fx= fx- fx+ *mode* noexpand) ((top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top)) ("i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i")) #(ribcage (define-structure and-map*) ((top) (top)) ("i" "i"))) (hygiene guile)) mod1167)))) tmp1161) (syntax-violation #f "source expression failed to match any pattern" tmp1160))) ($sc-dispatch tmp1160 (quote (any each-any any))))) e1159))) (global-extend113 'module-ref '@@ (lambda (e1170) ((lambda (tmp1171) ((lambda (tmp1172) (if (if tmp1172 (apply (lambda (_1173 mod1174 id1175) (if (and-map id?115 mod1174) (id?115 id1175) #f)) tmp1172) #f) (apply (lambda (_1177 mod1178 id1179) (values (syntax->datum id1179) (syntax->datum (cons '#(syntax-object private ((top) #(ribcage #(_ mod id) #((top) (top) (top)) #("i" "i" "i")) #(ribcage () () ()) #(ribcage #(e) #((top)) #("i")) #(ribcage (lambda-var-list gen-var strip ellipsis? chi-void eval-local-transformer chi-local-syntax chi-lambda-clause chi-body chi-macro chi-application chi-expr chi chi-top syntax-type chi-when-list chi-install-global chi-top-sequence chi-sequence source-wrap wrap bound-id-member? distinct-bound-ids? valid-bound-ids? bound-id=? free-id=? id-var-name same-marks? join-marks join-wraps smart-append make-binding-wrap extend-ribcage! make-empty-ribcage new-mark anti-mark the-anti-mark top-marked? top-wrap empty-wrap set-ribcage-labels! set-ribcage-marks! set-ribcage-symnames! ribcage-labels ribcage-marks ribcage-symnames ribcage? make-ribcage gen-labels gen-label make-rename rename-marks rename-new rename-old subst-rename? wrap-subst wrap-marks make-wrap id-sym-name&marks id-sym-name id? nonsymbol-id? global-extend lookup macros-only-env extend-var-env extend-env null-env binding-value binding-type make-binding arg-check source-annotation no-source set-syntax-object-module! set-syntax-object-wrap! set-syntax-object-expression! syntax-object-module syntax-object-wrap syntax-object-expression syntax-object? make-syntax-object build-lexical-var build-letrec build-named-let build-let build-sequence build-data build-primref build-lambda build-global-definition maybe-name-value! build-global-assignment build-global-reference analyze-variable build-lexical-assignment build-lexical-reference build-conditional build-application build-void decorate-source get-global-definition-hook put-global-definition-hook gensym-hook local-eval-hook top-level-eval-hook fx< fx= fx- fx+ *mode* noexpand) ((top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top)) ("i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i")) #(ribcage (define-structure and-map*) ((top) (top)) ("i" "i"))) (hygiene guile)) mod1178)))) tmp1172) (syntax-violation #f "source expression failed to match any pattern" tmp1171))) ($sc-dispatch tmp1171 (quote (any each-any any))))) e1170))) (global-extend113 'core 'if (lambda (e1181 r1182 w1183 s1184 mod1185) ((lambda (tmp1186) ((lambda (tmp1187) (if tmp1187 (apply (lambda (_1188 test1189 then1190) (build-conditional83 s1184 (chi151 test1189 r1182 w1183 mod1185) (chi151 then1190 r1182 w1183 mod1185) (build-void81 #f))) tmp1187) ((lambda (tmp1191) (if tmp1191 (apply (lambda (_1192 test1193 then1194 else1195) (build-conditional83 s1184 (chi151 test1193 r1182 w1183 mod1185) (chi151 then1194 r1182 w1183 mod1185) (chi151 else1195 r1182 w1183 mod1185))) tmp1191) (syntax-violation #f "source expression failed to match any pattern" tmp1186))) ($sc-dispatch tmp1186 (quote (any any any any)))))) ($sc-dispatch tmp1186 (quote (any any any))))) e1181))) (global-extend113 'begin 'begin '()) (global-extend113 'define 'define '()) (global-extend113 'define-syntax 'define-syntax '()) (global-extend113 'eval-when 'eval-when '()) (global-extend113 'core 'syntax-case (letrec ((gen-syntax-case1199 (lambda (x1200 keys1201 clauses1202 r1203 mod1204) (if (null? clauses1202) (build-application82 #f (build-primref92 #f (quote syntax-violation)) (list (build-data93 #f #f) (build-data93 #f "source expression failed to match any pattern") x1200)) ((lambda (tmp1205) ((lambda (tmp1206) (if tmp1206 (apply (lambda (pat1207 exp1208) (if (if (id?115 pat1207) (and-map (lambda (x1209) (not (free-id=?138 pat1207 x1209))) (cons '#(syntax-object ... ((top) #(ribcage #(pat exp) #((top) (top)) #("i" "i")) #(ribcage () () ()) #(ribcage #(x keys clauses r mod) #((top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i")) #(ribcage (gen-syntax-case gen-clause build-dispatch-call convert-pattern) ((top) (top) (top) (top)) ("i" "i" "i" "i")) #(ribcage (lambda-var-list gen-var strip ellipsis? chi-void eval-local-transformer chi-local-syntax chi-lambda-clause chi-body chi-macro chi-application chi-expr chi chi-top syntax-type chi-when-list chi-install-global chi-top-sequence chi-sequence source-wrap wrap bound-id-member? distinct-bound-ids? valid-bound-ids? bound-id=? free-id=? id-var-name same-marks? join-marks join-wraps smart-append make-binding-wrap extend-ribcage! make-empty-ribcage new-mark anti-mark the-anti-mark top-marked? top-wrap empty-wrap set-ribcage-labels! set-ribcage-marks! set-ribcage-symnames! ribcage-labels ribcage-marks ribcage-symnames ribcage? make-ribcage gen-labels gen-label make-rename rename-marks rename-new rename-old subst-rename? wrap-subst wrap-marks make-wrap id-sym-name&marks id-sym-name id? nonsymbol-id? global-extend lookup macros-only-env extend-var-env extend-env null-env binding-value binding-type make-binding arg-check source-annotation no-source set-syntax-object-module! set-syntax-object-wrap! set-syntax-object-expression! syntax-object-module syntax-object-wrap syntax-object-expression syntax-object? make-syntax-object build-lexical-var build-letrec build-named-let build-let build-sequence build-data build-primref build-lambda build-global-definition maybe-name-value! build-global-assignment build-global-reference analyze-variable build-lexical-assignment build-lexical-reference build-conditional build-application build-void decorate-source get-global-definition-hook put-global-definition-hook gensym-hook local-eval-hook top-level-eval-hook fx< fx= fx- fx+ *mode* noexpand) ((top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top) (top)) ("i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i" "i")) #(ribcage (define-structure and-map*) ((top) (top)) ("i" "i"))) (hygiene guile)) keys1201)) #f) (let ((labels1210 (list (gen-label120))) (var1211 (gen-var162 pat1207))) (build-application82 #f (build-lambda91 #f (list (syntax->datum pat1207)) (list var1211) #f (chi151 exp1208 (extend-env109 labels1210 (list (cons 'syntax (cons var1211 0))) r1203) (make-binding-wrap132 (list pat1207) labels1210 '(())) mod1204)) (list x1200))) (gen-clause1198 x1200 keys1201 (cdr clauses1202) r1203 pat1207 #t exp1208 mod1204))) tmp1206) ((lambda (tmp1212) (if tmp1212 (apply (lambda (pat1213 fender1214 exp1215) (gen-clause1198 x1200 keys1201 (cdr clauses1202) r1203 pat1213 fender1214 exp1215 mod1204)) tmp1212) ((lambda (_1216) (syntax-violation 'syntax-case "invalid clause" (car clauses1202))) tmp1205))) ($sc-dispatch tmp1205 (quote (any any any)))))) ($sc-dispatch tmp1205 (quote (any any))))) (car clauses1202))))) (gen-clause1198 (lambda (x1217 keys1218 clauses1219 r1220 pat1221 fender1222 exp1223 mod1224) (call-with-values (lambda () (convert-pattern1196 pat1221 keys1218)) (lambda (p1225 pvars1226) (if (not (distinct-bound-ids?141 (map car pvars1226))) (syntax-violation 'syntax-case "duplicate pattern variable" pat1221) (if (not (and-map (lambda (x1227) (not (ellipsis?160 (car x1227)))) pvars1226)) (syntax-violation 'syntax-case "misplaced ellipsis" pat1221) (let ((y1228 (gen-var162 (quote tmp)))) (build-application82 #f (build-lambda91 #f (list (quote tmp)) (list y1228) #f (let ((y1229 (build-lexical-reference84 'value #f 'tmp y1228))) (build-conditional83 #f ((lambda (tmp1230) ((lambda (tmp1231) (if tmp1231 (apply (lambda () y1229) tmp1231) ((lambda (_1232) (build-conditional83 #f y1229 (build-dispatch-call1197 pvars1226 fender1222 y1229 r1220 mod1224) (build-data93 #f #f))) tmp1230))) ($sc-dispatch tmp1230 '#(atom #t)))) fender1222) (build-dispatch-call1197 pvars1226 exp1223 y1229 r1220 mod1224) (gen-syntax-case1199 x1217 keys1218 clauses1219 r1220 mod1224)))) (list (if (eq? p1225 (quote any)) (build-application82 #f (build-primref92 #f (quote list)) (list x1217)) (build-application82 #f (build-primref92 #f '$sc-dispatch) (list x1217 (build-data93 #f p1225))))))))))))) (build-dispatch-call1197 (lambda (pvars1233 exp1234 y1235 r1236 mod1237) (let ((ids1238 (map car pvars1233)) (levels1239 (map cdr pvars1233))) (let ((labels1240 (gen-labels121 ids1238)) (new-vars1241 (map gen-var162 ids1238))) (build-application82 #f (build-primref92 #f (quote apply)) (list (build-lambda91 #f (map syntax->datum ids1238) new-vars1241 #f (chi151 exp1234 (extend-env109 labels1240 (map (lambda (var1242 level1243) (cons 'syntax (cons var1242 level1243))) new-vars1241 (map cdr pvars1233)) r1236) (make-binding-wrap132 ids1238 labels1240 '(())) mod1237)) y1235)))))) (convert-pattern1196 (lambda (pattern1244 keys1245) (letrec ((cvt1246 (lambda (p1247 n1248 ids1249) (if (id?115 p1247) (if (bound-id-member?142 p1247 keys1245) (values (vector (quote free-id) p1247) ids1249) (values 'any (cons (cons p1247 n1248) ids1249))) ((lambda (tmp1250) ((lambda (tmp1251) (if (if tmp1251 (apply (lambda (x1252 dots1253) (ellipsis?160 dots1253)) tmp1251) #f) (apply (lambda (x1254 dots1255) (call-with-values (lambda () (cvt1246 x1254 (fx+72 n1248 1) ids1249)) (lambda (p1256 ids1257) (values (if (eq? p1256 'any) 'each-any (vector 'each p1256)) ids1257)))) tmp1251) ((lambda (tmp1258) (if tmp1258 (apply (lambda (x1259 y1260) (call-with-values (lambda () (cvt1246 y1260 n1248 ids1249)) (lambda (y1261 ids1262) (call-with-values (lambda () (cvt1246 x1259 n1248 ids1262)) (lambda (x1263 ids1264) (values (cons x1263 y1261) ids1264)))))) tmp1258) ((lambda (tmp1265) (if tmp1265 (apply (lambda () (values '() ids1249)) tmp1265) ((lambda (tmp1266) (if tmp1266 (apply (lambda (x1267) (call-with-values (lambda () (cvt1246 x1267 n1248 ids1249)) (lambda (p1269 ids1270) (values (vector 'vector p1269) ids1270)))) tmp1266) ((lambda (x1271) (values (vector 'atom (strip161 p1247 '(()))) ids1249)) tmp1250))) ($sc-dispatch tmp1250 '#(vector each-any))))) ($sc-dispatch tmp1250 '())))) ($sc-dispatch tmp1250 '(any . any))))) ($sc-dispatch tmp1250 '(any any)))) p1247))))) (cvt1246 pattern1244 0 (quote ())))))) (lambda (e1272 r1273 w1274 s1275 mod1276) (let ((e1277 (source-wrap144 e1272 w1274 s1275 mod1276))) ((lambda (tmp1278) ((lambda (tmp1279) (if tmp1279 (apply (lambda (_1280 val1281 key1282 m1283) (if (and-map (lambda (x1284) (if (id?115 x1284) (not (ellipsis?160 x1284)) #f)) key1282) (let ((x1286 (gen-var162 (quote tmp)))) (build-application82 s1275 (build-lambda91 #f (list (quote tmp)) (list x1286) #f (gen-syntax-case1199 (build-lexical-reference84 'value #f 'tmp x1286) key1282 m1283 r1273 mod1276)) (list (chi151 val1281 r1273 '(()) mod1276)))) (syntax-violation 'syntax-case "invalid literals list" e1277))) tmp1279) (syntax-violation #f "source expression failed to match any pattern" tmp1278))) ($sc-dispatch tmp1278 '(any any each-any . each-any)))) e1277))))) (set! sc-expand (lambda (x1290 . rest1289) (if (if (pair? x1290) (equal? (car x1290) noexpand70) #f) (cadr x1290) (let ((m1291 (if (null? rest1289) (quote e) (car rest1289))) (esew1292 (if (let ((t1293 (null? rest1289))) (if t1293 t1293 (null? (cdr rest1289)))) '(eval) (cadr rest1289)))) (with-fluid* *mode*71 m1291 (lambda () (chi-top150 x1290 '() '((top)) m1291 esew1292 (cons 'hygiene (module-name (current-module)))))))))) (set! identifier? (lambda (x1294) (nonsymbol-id?114 x1294))) (set! datum->syntax (lambda (id1295 datum1296) (make-syntax-object98 datum1296 (syntax-object-wrap101 id1295) #f))) (set! syntax->datum (lambda (x1297) (strip161 x1297 (quote (()))))) (set! generate-temporaries (lambda (ls1298) (begin (let ((x1299 ls1298)) (if (not (list? x1299)) (syntax-violation 'generate-temporaries "invalid argument" x1299))) (map (lambda (x1300) (wrap143 (gensym) (quote ((top))) #f)) ls1298)))) (set! free-identifier=? (lambda (x1301 y1302) (begin (let ((x1303 x1301)) (if (not (nonsymbol-id?114 x1303)) (syntax-violation 'free-identifier=? "invalid argument" x1303))) (let ((x1304 y1302)) (if (not (nonsymbol-id?114 x1304)) (syntax-violation 'free-identifier=? "invalid argument" x1304))) (free-id=?138 x1301 y1302)))) (set! bound-identifier=? (lambda (x1305 y1306) (begin (let ((x1307 x1305)) (if (not (nonsymbol-id?114 x1307)) (syntax-violation 'bound-identifier=? "invalid argument" x1307))) (let ((x1308 y1306)) (if (not (nonsymbol-id?114 x1308)) (syntax-violation 'bound-identifier=? "invalid argument" x1308))) (bound-id=?139 x1305 y1306)))) (set! syntax-violation (lambda (who1312 message1311 form1310 . subform1309) (begin (let ((x1313 who1312)) (if (not ((lambda (x1314) (let ((t1315 (not x1314))) (if t1315 t1315 (let ((t1316 (string? x1314))) (if t1316 t1316 (symbol? x1314)))))) x1313)) (syntax-violation 'syntax-violation "invalid argument" x1313))) (let ((x1317 message1311)) (if (not (string? x1317)) (syntax-violation 'syntax-violation "invalid argument" x1317))) (scm-error 'syntax-error 'sc-expand (string-append (if who1312 "~a: " "") "~a " (if (null? subform1309) "in ~a" "in subform `~s' of `~s'")) (let ((tail1318 (cons message1311 (map (lambda (x1319) (strip161 x1319 (quote (())))) (append subform1309 (list form1310)))))) (if who1312 (cons who1312 tail1318) tail1318)) #f)))) (letrec ((match1324 (lambda (e1325 p1326 w1327 r1328 mod1329) (if (not r1328) #f (if (eq? p1326 (quote any)) (cons (wrap143 e1325 w1327 mod1329) r1328) (if (syntax-object?99 e1325) (match*1323 (syntax-object-expression100 e1325) p1326 (join-wraps134 w1327 (syntax-object-wrap101 e1325)) r1328 (syntax-object-module102 e1325)) (match*1323 e1325 p1326 w1327 r1328 mod1329)))))) (match*1323 (lambda (e1330 p1331 w1332 r1333 mod1334) (if (null? p1331) (if (null? e1330) r1333 #f) (if (pair? p1331) (if (pair? e1330) (match1324 (car e1330) (car p1331) w1332 (match1324 (cdr e1330) (cdr p1331) w1332 r1333 mod1334) mod1334) #f) (if (eq? p1331 (quote each-any)) (let ((l1335 (match-each-any1321 e1330 w1332 mod1334))) (if l1335 (cons l1335 r1333) #f)) (let ((atom-key1336 (vector-ref p1331 0))) (if (memv atom-key1336 (quote (each))) (if (null? e1330) (match-empty1322 (vector-ref p1331 1) r1333) (let ((l1337 (match-each1320 e1330 (vector-ref p1331 1) w1332 mod1334))) (if l1337 (letrec ((collect1338 (lambda (l1339) (if (null? (car l1339)) r1333 (cons (map car l1339) (collect1338 (map cdr l1339))))))) (collect1338 l1337)) #f))) (if (memv atom-key1336 (quote (free-id))) (if (id?115 e1330) (if (free-id=?138 (wrap143 e1330 w1332 mod1334) (vector-ref p1331 1)) r1333 #f) #f) (if (memv atom-key1336 (quote (atom))) (if (equal? (vector-ref p1331 1) (strip161 e1330 w1332)) r1333 #f) (if (memv atom-key1336 (quote (vector))) (if (vector? e1330) (match1324 (vector->list e1330) (vector-ref p1331 1) w1332 r1333 mod1334) #f))))))))))) (match-empty1322 (lambda (p1340 r1341) (if (null? p1340) r1341 (if (eq? p1340 (quote any)) (cons (quote ()) r1341) (if (pair? p1340) (match-empty1322 (car p1340) (match-empty1322 (cdr p1340) r1341)) (if (eq? p1340 (quote each-any)) (cons (quote ()) r1341) (let ((atom-key1342 (vector-ref p1340 0))) (if (memv atom-key1342 (quote (each))) (match-empty1322 (vector-ref p1340 1) r1341) (if (memv atom-key1342 (quote (free-id atom))) r1341 (if (memv atom-key1342 (quote (vector))) (match-empty1322 (vector-ref p1340 1) r1341))))))))))) (match-each-any1321 (lambda (e1343 w1344 mod1345) (if (pair? e1343) (let ((l1346 (match-each-any1321 (cdr e1343) w1344 mod1345))) (if l1346 (cons (wrap143 (car e1343) w1344 mod1345) l1346) #f)) (if (null? e1343) '() (if (syntax-object?99 e1343) (match-each-any1321 (syntax-object-expression100 e1343) (join-wraps134 w1344 (syntax-object-wrap101 e1343)) mod1345) #f))))) (match-each1320 (lambda (e1347 p1348 w1349 mod1350) (if (pair? e1347) (let ((first1351 (match1324 (car e1347) p1348 w1349 '() mod1350))) (if first1351 (let ((rest1352 (match-each1320 (cdr e1347) p1348 w1349 mod1350))) (if rest1352 (cons first1351 rest1352) #f)) #f)) (if (null? e1347) '() (if (syntax-object?99 e1347) (match-each1320 (syntax-object-expression100 e1347) p1348 (join-wraps134 w1349 (syntax-object-wrap101 e1347)) (syntax-object-module102 e1347)) #f)))))) (set! $sc-dispatch (lambda (e1353 p1354) (if (eq? p1354 (quote any)) (list e1353) (if (syntax-object?99 e1353) (match*1323 (syntax-object-expression100 e1353) p1354 (syntax-object-wrap101 e1353) '() (syntax-object-module102 e1353)) (match*1323 e1353 p1354 '(()) '() #f))))))))) (define with-syntax (make-syncase-macro 'macro (lambda (x1355) ((lambda (tmp1356) ((lambda (tmp1357) (if tmp1357 (apply (lambda (_1358 e11359 e21360) (cons '#(syntax-object begin ((top) #(ribcage #(_ e1 e2) #((top) (top) (top)) #("i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile)) (cons e11359 e21360))) tmp1357) ((lambda (tmp1362) (if tmp1362 (apply (lambda (_1363 out1364 in1365 e11366 e21367) (list '#(syntax-object syntax-case ((top) #(ribcage #(_ out in e1 e2) #((top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile)) in1365 '() (list out1364 (cons '#(syntax-object begin ((top) #(ribcage #(_ out in e1 e2) #((top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile)) (cons e11366 e21367))))) tmp1362) ((lambda (tmp1369) (if tmp1369 (apply (lambda (_1370 out1371 in1372 e11373 e21374) (list '#(syntax-object syntax-case ((top) #(ribcage #(_ out in e1 e2) #((top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile)) (cons '#(syntax-object list ((top) #(ribcage #(_ out in e1 e2) #((top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile)) in1372) '() (list out1371 (cons '#(syntax-object begin ((top) #(ribcage #(_ out in e1 e2) #((top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile)) (cons e11373 e21374))))) tmp1369) (syntax-violation #f "source expression failed to match any pattern" tmp1356))) ($sc-dispatch tmp1356 '(any #(each (any any)) any . each-any))))) ($sc-dispatch tmp1356 '(any ((any any)) any . each-any))))) ($sc-dispatch tmp1356 '(any () any . each-any)))) x1355)))) (define syntax-rules (make-syncase-macro 'macro (lambda (x1378) ((lambda (tmp1379) ((lambda (tmp1380) (if tmp1380 (apply (lambda (_1381 k1382 keyword1383 pattern1384 template1385) (list '#(syntax-object lambda ((top) #(ribcage #(_ k keyword pattern template) #((top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile)) '(#(syntax-object x ((top) #(ribcage #(_ k keyword pattern template) #((top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile))) (cons '#(syntax-object syntax-case ((top) #(ribcage #(_ k keyword pattern template) #((top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile)) (cons '#(syntax-object x ((top) #(ribcage #(_ k keyword pattern template) #((top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile)) (cons k1382 (map (lambda (tmp1388 tmp1387) (list (cons '#(syntax-object dummy ((top) #(ribcage #(_ k keyword pattern template) #((top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile)) tmp1387) (list '#(syntax-object syntax ((top) #(ribcage #(_ k keyword pattern template) #((top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile)) tmp1388))) template1385 pattern1384)))))) tmp1380) (syntax-violation #f "source expression failed to match any pattern" tmp1379))) ($sc-dispatch tmp1379 '(any each-any . #(each ((any . any) any)))))) x1378)))) (define let* (make-extended-syncase-macro (module-ref (current-module) (quote let*)) 'macro (lambda (x1389) ((lambda (tmp1390) ((lambda (tmp1391) (if (if tmp1391 (apply (lambda (let*1392 x1393 v1394 e11395 e21396) (and-map identifier? x1393)) tmp1391) #f) (apply (lambda (let*1398 x1399 v1400 e11401 e21402) (letrec ((f1403 (lambda (bindings1404) (if (null? bindings1404) (cons '#(syntax-object let ((top) #(ribcage () () ()) #(ribcage #(f bindings) #((top) (top)) #("i" "i")) #(ribcage #(let* x v e1 e2) #((top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile)) (cons '() (cons e11401 e21402))) ((lambda (tmp1408) ((lambda (tmp1409) (if tmp1409 (apply (lambda (body1410 binding1411) (list '#(syntax-object let ((top) #(ribcage #(body binding) #((top) (top)) #("i" "i")) #(ribcage () () ()) #(ribcage #(f bindings) #((top) (top)) #("i" "i")) #(ribcage #(let* x v e1 e2) #((top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile)) (list binding1411) body1410)) tmp1409) (syntax-violation #f "source expression failed to match any pattern" tmp1408))) ($sc-dispatch tmp1408 '(any any)))) (list (f1403 (cdr bindings1404)) (car bindings1404))))))) (f1403 (map list x1399 v1400)))) tmp1391) (syntax-violation #f "source expression failed to match any pattern" tmp1390))) ($sc-dispatch tmp1390 '(any #(each (any any)) any . each-any)))) x1389)))) (define do (make-extended-syncase-macro (module-ref (current-module) (quote do)) 'macro (lambda (orig-x1412) ((lambda (tmp1413) ((lambda (tmp1414) (if tmp1414 (apply (lambda (_1415 var1416 init1417 step1418 e01419 e11420 c1421) ((lambda (tmp1422) ((lambda (tmp1423) (if tmp1423 (apply (lambda (step1424) ((lambda (tmp1425) ((lambda (tmp1426) (if tmp1426 (apply (lambda () (list '#(syntax-object let ((top) #(ribcage #(step) #((top)) #("i")) #(ribcage #(_ var init step e0 e1 c) #((top) (top) (top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(orig-x) #((top)) #("i"))) (hygiene guile)) '#(syntax-object doloop ((top) #(ribcage #(step) #((top)) #("i")) #(ribcage #(_ var init step e0 e1 c) #((top) (top) (top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(orig-x) #((top)) #("i"))) (hygiene guile)) (map list var1416 init1417) (list '#(syntax-object if ((top) #(ribcage #(step) #((top)) #("i")) #(ribcage #(_ var init step e0 e1 c) #((top) (top) (top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(orig-x) #((top)) #("i"))) (hygiene guile)) (list '#(syntax-object not ((top) #(ribcage #(step) #((top)) #("i")) #(ribcage #(_ var init step e0 e1 c) #((top) (top) (top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(orig-x) #((top)) #("i"))) (hygiene guile)) e01419) (cons '#(syntax-object begin ((top) #(ribcage #(step) #((top)) #("i")) #(ribcage #(_ var init step e0 e1 c) #((top) (top) (top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(orig-x) #((top)) #("i"))) (hygiene guile)) (append c1421 (list (cons '#(syntax-object doloop ((top) #(ribcage #(step) #((top)) #("i")) #(ribcage #(_ var init step e0 e1 c) #((top) (top) (top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(orig-x) #((top)) #("i"))) (hygiene guile)) step1424))))))) tmp1426) ((lambda (tmp1431) (if tmp1431 (apply (lambda (e11432 e21433) (list '#(syntax-object let ((top) #(ribcage #(e1 e2) #((top) (top)) #("i" "i")) #(ribcage #(step) #((top)) #("i")) #(ribcage #(_ var init step e0 e1 c) #((top) (top) (top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(orig-x) #((top)) #("i"))) (hygiene guile)) '#(syntax-object doloop ((top) #(ribcage #(e1 e2) #((top) (top)) #("i" "i")) #(ribcage #(step) #((top)) #("i")) #(ribcage #(_ var init step e0 e1 c) #((top) (top) (top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(orig-x) #((top)) #("i"))) (hygiene guile)) (map list var1416 init1417) (list '#(syntax-object if ((top) #(ribcage #(e1 e2) #((top) (top)) #("i" "i")) #(ribcage #(step) #((top)) #("i")) #(ribcage #(_ var init step e0 e1 c) #((top) (top) (top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(orig-x) #((top)) #("i"))) (hygiene guile)) e01419 (cons '#(syntax-object begin ((top) #(ribcage #(e1 e2) #((top) (top)) #("i" "i")) #(ribcage #(step) #((top)) #("i")) #(ribcage #(_ var init step e0 e1 c) #((top) (top) (top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(orig-x) #((top)) #("i"))) (hygiene guile)) (cons e11432 e21433)) (cons '#(syntax-object begin ((top) #(ribcage #(e1 e2) #((top) (top)) #("i" "i")) #(ribcage #(step) #((top)) #("i")) #(ribcage #(_ var init step e0 e1 c) #((top) (top) (top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(orig-x) #((top)) #("i"))) (hygiene guile)) (append c1421 (list (cons '#(syntax-object doloop ((top) #(ribcage #(e1 e2) #((top) (top)) #("i" "i")) #(ribcage #(step) #((top)) #("i")) #(ribcage #(_ var init step e0 e1 c) #((top) (top) (top) (top) (top) (top) (top)) #("i" "i" "i" "i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(orig-x) #((top)) #("i"))) (hygiene guile)) step1424))))))) tmp1431) (syntax-violation #f "source expression failed to match any pattern" tmp1425))) ($sc-dispatch tmp1425 '(any . each-any))))) ($sc-dispatch tmp1425 (quote ())))) e11420)) tmp1423) (syntax-violation #f "source expression failed to match any pattern" tmp1422))) ($sc-dispatch tmp1422 (quote each-any)))) (map (lambda (v1440 s1441) ((lambda (tmp1442) ((lambda (tmp1443) (if tmp1443 (apply (lambda () v1440) tmp1443) ((lambda (tmp1444) (if tmp1444 (apply (lambda (e1445) e1445) tmp1444) ((lambda (_1446) (syntax-violation 'do "bad step expression" orig-x1412 s1441)) tmp1442))) ($sc-dispatch tmp1442 (quote (any)))))) ($sc-dispatch tmp1442 (quote ())))) s1441)) var1416 step1418))) tmp1414) (syntax-violation #f "source expression failed to match any pattern" tmp1413))) ($sc-dispatch tmp1413 '(any #(each (any any . any)) (any . each-any) . each-any)))) orig-x1412)))) (define quasiquote (make-extended-syncase-macro (module-ref (current-module) (quote quasiquote)) 'macro (letrec ((quasicons1449 (lambda (x1453 y1454) ((lambda (tmp1455) ((lambda (tmp1456) (if tmp1456 (apply (lambda (x1457 y1458) ((lambda (tmp1459) ((lambda (tmp1460) (if tmp1460 (apply (lambda (dy1461) ((lambda (tmp1462) ((lambda (tmp1463) (if tmp1463 (apply (lambda (dx1464) (list '#(syntax-object quote ((top) #(ribcage #(dx) #((top)) #("i")) #(ribcage #(dy) #((top)) #("i")) #(ribcage #(x y) #((top) (top)) #("i" "i")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(x y) #((top) (top)) #("i" "i")) #(ribcage #(quasicons quasiappend quasivector quasi) #((top) (top) (top) (top)) #("i" "i" "i" "i"))) (hygiene guile)) (cons dx1464 dy1461))) tmp1463) ((lambda (_1465) (if (null? dy1461) (list '#(syntax-object list ((top) #(ribcage #(_) #((top)) #("i")) #(ribcage #(dy) #((top)) #("i")) #(ribcage #(x y) #((top) (top)) #("i" "i")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(x y) #((top) (top)) #("i" "i")) #(ribcage #(quasicons quasiappend quasivector quasi) #((top) (top) (top) (top)) #("i" "i" "i" "i"))) (hygiene guile)) x1457) (list '#(syntax-object cons ((top) #(ribcage #(_) #((top)) #("i")) #(ribcage #(dy) #((top)) #("i")) #(ribcage #(x y) #((top) (top)) #("i" "i")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(x y) #((top) (top)) #("i" "i")) #(ribcage #(quasicons quasiappend quasivector quasi) #((top) (top) (top) (top)) #("i" "i" "i" "i"))) (hygiene guile)) x1457 y1458))) tmp1462))) ($sc-dispatch tmp1462 '(#(free-id #(syntax-object quote ((top) #(ribcage #(dy) #((top)) #("i")) #(ribcage #(x y) #((top) (top)) #("i" "i")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(x y) #((top) (top)) #("i" "i")) #(ribcage #(quasicons quasiappend quasivector quasi) #((top) (top) (top) (top)) #("i" "i" "i" "i"))) (hygiene guile))) any)))) x1457)) tmp1460) ((lambda (tmp1466) (if tmp1466 (apply (lambda (stuff1467) (cons '#(syntax-object list ((top) #(ribcage #(stuff) #((top)) #("i")) #(ribcage #(x y) #((top) (top)) #("i" "i")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(x y) #((top) (top)) #("i" "i")) #(ribcage #(quasicons quasiappend quasivector quasi) #((top) (top) (top) (top)) #("i" "i" "i" "i"))) (hygiene guile)) (cons x1457 stuff1467))) tmp1466) ((lambda (else1468) (list '#(syntax-object cons ((top) #(ribcage #(else) #((top)) #("i")) #(ribcage #(x y) #((top) (top)) #("i" "i")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(x y) #((top) (top)) #("i" "i")) #(ribcage #(quasicons quasiappend quasivector quasi) #((top) (top) (top) (top)) #("i" "i" "i" "i"))) (hygiene guile)) x1457 y1458)) tmp1459))) ($sc-dispatch tmp1459 '(#(free-id #(syntax-object list ((top) #(ribcage #(x y) #((top) (top)) #("i" "i")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(x y) #((top) (top)) #("i" "i")) #(ribcage #(quasicons quasiappend quasivector quasi) #((top) (top) (top) (top)) #("i" "i" "i" "i"))) (hygiene guile))) . any))))) ($sc-dispatch tmp1459 '(#(free-id #(syntax-object quote ((top) #(ribcage #(x y) #((top) (top)) #("i" "i")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(x y) #((top) (top)) #("i" "i")) #(ribcage #(quasicons quasiappend quasivector quasi) #((top) (top) (top) (top)) #("i" "i" "i" "i"))) (hygiene guile))) any)))) y1458)) tmp1456) (syntax-violation #f "source expression failed to match any pattern" tmp1455))) ($sc-dispatch tmp1455 (quote (any any))))) (list x1453 y1454)))) (quasiappend1450 (lambda (x1469 y1470) ((lambda (tmp1471) ((lambda (tmp1472) (if tmp1472 (apply (lambda (x1473 y1474) ((lambda (tmp1475) ((lambda (tmp1476) (if tmp1476 (apply (lambda () x1473) tmp1476) ((lambda (_1477) (list '#(syntax-object append ((top) #(ribcage #(_) #((top)) #("i")) #(ribcage #(x y) #((top) (top)) #("i" "i")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(x y) #((top) (top)) #("i" "i")) #(ribcage #(quasicons quasiappend quasivector quasi) #((top) (top) (top) (top)) #("i" "i" "i" "i"))) (hygiene guile)) x1473 y1474)) tmp1475))) ($sc-dispatch tmp1475 '(#(free-id #(syntax-object quote ((top) #(ribcage #(x y) #((top) (top)) #("i" "i")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(x y) #((top) (top)) #("i" "i")) #(ribcage #(quasicons quasiappend quasivector quasi) #((top) (top) (top) (top)) #("i" "i" "i" "i"))) (hygiene guile))) ())))) y1474)) tmp1472) (syntax-violation #f "source expression failed to match any pattern" tmp1471))) ($sc-dispatch tmp1471 (quote (any any))))) (list x1469 y1470)))) (quasivector1451 (lambda (x1478) ((lambda (tmp1479) ((lambda (x1480) ((lambda (tmp1481) ((lambda (tmp1482) (if tmp1482 (apply (lambda (x1483) (list '#(syntax-object quote ((top) #(ribcage #(x) #((top)) #("i")) #(ribcage #(x) #((top)) #("i")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i")) #(ribcage #(quasicons quasiappend quasivector quasi) #((top) (top) (top) (top)) #("i" "i" "i" "i"))) (hygiene guile)) (list->vector x1483))) tmp1482) ((lambda (tmp1485) (if tmp1485 (apply (lambda (x1486) (cons '#(syntax-object vector ((top) #(ribcage #(x) #((top)) #("i")) #(ribcage #(x) #((top)) #("i")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i")) #(ribcage #(quasicons quasiappend quasivector quasi) #((top) (top) (top) (top)) #("i" "i" "i" "i"))) (hygiene guile)) x1486)) tmp1485) ((lambda (_1488) (list '#(syntax-object list->vector ((top) #(ribcage #(_) #((top)) #("i")) #(ribcage #(x) #((top)) #("i")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i")) #(ribcage #(quasicons quasiappend quasivector quasi) #((top) (top) (top) (top)) #("i" "i" "i" "i"))) (hygiene guile)) x1480)) tmp1481))) ($sc-dispatch tmp1481 '(#(free-id #(syntax-object list ((top) #(ribcage #(x) #((top)) #("i")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i")) #(ribcage #(quasicons quasiappend quasivector quasi) #((top) (top) (top) (top)) #("i" "i" "i" "i"))) (hygiene guile))) . each-any))))) ($sc-dispatch tmp1481 '(#(free-id #(syntax-object quote ((top) #(ribcage #(x) #((top)) #("i")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i")) #(ribcage #(quasicons quasiappend quasivector quasi) #((top) (top) (top) (top)) #("i" "i" "i" "i"))) (hygiene guile))) each-any)))) x1480)) tmp1479)) x1478))) (quasi1452 (lambda (p1489 lev1490) ((lambda (tmp1491) ((lambda (tmp1492) (if tmp1492 (apply (lambda (p1493) (if (= lev1490 0) p1493 (quasicons1449 '(#(syntax-object quote ((top) #(ribcage #(p) #((top)) #("i")) #(ribcage () () ()) #(ribcage #(p lev) #((top) (top)) #("i" "i")) #(ribcage #(quasicons quasiappend quasivector quasi) #((top) (top) (top) (top)) #("i" "i" "i" "i"))) (hygiene guile)) #(syntax-object unquote ((top) #(ribcage #(p) #((top)) #("i")) #(ribcage () () ()) #(ribcage #(p lev) #((top) (top)) #("i" "i")) #(ribcage #(quasicons quasiappend quasivector quasi) #((top) (top) (top) (top)) #("i" "i" "i" "i"))) (hygiene guile))) (quasi1452 (list p1493) (- lev1490 1))))) tmp1492) ((lambda (tmp1494) (if (if tmp1494 (apply (lambda (args1495) (= lev1490 0)) tmp1494) #f) (apply (lambda (args1496) (syntax-violation 'unquote "unquote takes exactly one argument" p1489 (cons '#(syntax-object unquote ((top) #(ribcage #(args) #((top)) #("i")) #(ribcage () () ()) #(ribcage #(p lev) #((top) (top)) #("i" "i")) #(ribcage #(quasicons quasiappend quasivector quasi) #((top) (top) (top) (top)) #("i" "i" "i" "i"))) (hygiene guile)) args1496))) tmp1494) ((lambda (tmp1497) (if tmp1497 (apply (lambda (p1498 q1499) (if (= lev1490 0) (quasiappend1450 p1498 (quasi1452 q1499 lev1490)) (quasicons1449 (quasicons1449 '(#(syntax-object quote ((top) #(ribcage #(p q) #((top) (top)) #("i" "i")) #(ribcage () () ()) #(ribcage #(p lev) #((top) (top)) #("i" "i")) #(ribcage #(quasicons quasiappend quasivector quasi) #((top) (top) (top) (top)) #("i" "i" "i" "i"))) (hygiene guile)) #(syntax-object unquote-splicing ((top) #(ribcage #(p q) #((top) (top)) #("i" "i")) #(ribcage () () ()) #(ribcage #(p lev) #((top) (top)) #("i" "i")) #(ribcage #(quasicons quasiappend quasivector quasi) #((top) (top) (top) (top)) #("i" "i" "i" "i"))) (hygiene guile))) (quasi1452 (list p1498) (- lev1490 1))) (quasi1452 q1499 lev1490)))) tmp1497) ((lambda (tmp1500) (if (if tmp1500 (apply (lambda (args1501 q1502) (= lev1490 0)) tmp1500) #f) (apply (lambda (args1503 q1504) (syntax-violation 'unquote-splicing "unquote-splicing takes exactly one argument" p1489 (cons '#(syntax-object unquote-splicing ((top) #(ribcage #(args q) #((top) (top)) #("i" "i")) #(ribcage () () ()) #(ribcage #(p lev) #((top) (top)) #("i" "i")) #(ribcage #(quasicons quasiappend quasivector quasi) #((top) (top) (top) (top)) #("i" "i" "i" "i"))) (hygiene guile)) args1503))) tmp1500) ((lambda (tmp1505) (if tmp1505 (apply (lambda (p1506) (quasicons1449 '(#(syntax-object quote ((top) #(ribcage #(p) #((top)) #("i")) #(ribcage () () ()) #(ribcage #(p lev) #((top) (top)) #("i" "i")) #(ribcage #(quasicons quasiappend quasivector quasi) #((top) (top) (top) (top)) #("i" "i" "i" "i"))) (hygiene guile)) #(syntax-object quasiquote ((top) #(ribcage #(p) #((top)) #("i")) #(ribcage () () ()) #(ribcage #(p lev) #((top) (top)) #("i" "i")) #(ribcage #(quasicons quasiappend quasivector quasi) #((top) (top) (top) (top)) #("i" "i" "i" "i"))) (hygiene guile))) (quasi1452 (list p1506) (+ lev1490 1)))) tmp1505) ((lambda (tmp1507) (if tmp1507 (apply (lambda (p1508 q1509) (quasicons1449 (quasi1452 p1508 lev1490) (quasi1452 q1509 lev1490))) tmp1507) ((lambda (tmp1510) (if tmp1510 (apply (lambda (x1511) (quasivector1451 (quasi1452 x1511 lev1490))) tmp1510) ((lambda (p1513) (list '#(syntax-object quote ((top) #(ribcage #(p) #((top)) #("i")) #(ribcage () () ()) #(ribcage #(p lev) #((top) (top)) #("i" "i")) #(ribcage #(quasicons quasiappend quasivector quasi) #((top) (top) (top) (top)) #("i" "i" "i" "i"))) (hygiene guile)) p1513)) tmp1491))) ($sc-dispatch tmp1491 '#(vector each-any))))) ($sc-dispatch tmp1491 '(any . any))))) ($sc-dispatch tmp1491 '(#(free-id #(syntax-object quasiquote ((top) #(ribcage () () ()) #(ribcage #(p lev) #((top) (top)) #("i" "i")) #(ribcage #(quasicons quasiappend quasivector quasi) #((top) (top) (top) (top)) #("i" "i" "i" "i"))) (hygiene guile))) any))))) ($sc-dispatch tmp1491 '((#(free-id #(syntax-object unquote-splicing ((top) #(ribcage () () ()) #(ribcage #(p lev) #((top) (top)) #("i" "i")) #(ribcage #(quasicons quasiappend quasivector quasi) #((top) (top) (top) (top)) #("i" "i" "i" "i"))) (hygiene guile))) . any) . any))))) ($sc-dispatch tmp1491 '((#(free-id #(syntax-object unquote-splicing ((top) #(ribcage () () ()) #(ribcage #(p lev) #((top) (top)) #("i" "i")) #(ribcage #(quasicons quasiappend quasivector quasi) #((top) (top) (top) (top)) #("i" "i" "i" "i"))) (hygiene guile))) any) . any))))) ($sc-dispatch tmp1491 '(#(free-id #(syntax-object unquote ((top) #(ribcage () () ()) #(ribcage #(p lev) #((top) (top)) #("i" "i")) #(ribcage #(quasicons quasiappend quasivector quasi) #((top) (top) (top) (top)) #("i" "i" "i" "i"))) (hygiene guile))) . any))))) ($sc-dispatch tmp1491 '(#(free-id #(syntax-object unquote ((top) #(ribcage () () ()) #(ribcage #(p lev) #((top) (top)) #("i" "i")) #(ribcage #(quasicons quasiappend quasivector quasi) #((top) (top) (top) (top)) #("i" "i" "i" "i"))) (hygiene guile))) any)))) p1489)))) (lambda (x1514) ((lambda (tmp1515) ((lambda (tmp1516) (if tmp1516 (apply (lambda (_1517 e1518) (quasi1452 e1518 0)) tmp1516) (syntax-violation #f "source expression failed to match any pattern" tmp1515))) ($sc-dispatch tmp1515 (quote (any any))))) x1514))))) (define include (make-syncase-macro 'macro (lambda (x1519) (letrec ((read-file1520 (lambda (fn1521 k1522) (let ((p1523 (open-input-file fn1521))) (letrec ((f1524 (lambda (x1525) (if (eof-object? x1525) (begin (close-input-port p1523) '()) (cons (datum->syntax k1522 x1525) (f1524 (read p1523))))))) (f1524 (read p1523))))))) ((lambda (tmp1526) ((lambda (tmp1527) (if tmp1527 (apply (lambda (k1528 filename1529) (let ((fn1530 (syntax->datum filename1529))) ((lambda (tmp1531) ((lambda (tmp1532) (if tmp1532 (apply (lambda (exp1533) (cons '#(syntax-object begin ((top) #(ribcage #(exp) #((top)) #("i")) #(ribcage () () ()) #(ribcage () () ()) #(ribcage #(fn) #((top)) #("i")) #(ribcage #(k filename) #((top) (top)) #("i" "i")) #(ribcage (read-file) ((top)) ("i")) #(ribcage #(x) #((top)) #("i"))) (hygiene guile)) exp1533)) tmp1532) (syntax-violation #f "source expression failed to match any pattern" tmp1531))) ($sc-dispatch tmp1531 (quote each-any)))) (read-file1520 fn1530 k1528)))) tmp1527) (syntax-violation #f "source expression failed to match any pattern" tmp1526))) ($sc-dispatch tmp1526 (quote (any any))))) x1519))))) (define unquote (make-syncase-macro 'macro (lambda (x1535) ((lambda (tmp1536) ((lambda (tmp1537) (if tmp1537 (apply (lambda (_1538 e1539) (syntax-violation 'unquote "expression not valid outside of quasiquote" x1535)) tmp1537) (syntax-violation #f "source expression failed to match any pattern" tmp1536))) ($sc-dispatch tmp1536 (quote (any any))))) x1535)))) (define unquote-splicing (make-syncase-macro 'macro (lambda (x1540) ((lambda (tmp1541) ((lambda (tmp1542) (if tmp1542 (apply (lambda (_1543 e1544) (syntax-violation 'unquote-splicing "expression not valid outside of quasiquote" x1540)) tmp1542) (syntax-violation #f "source expression failed to match any pattern" tmp1541))) ($sc-dispatch tmp1541 (quote (any any))))) x1540)))) (define case (make-extended-syncase-macro (module-ref (current-module) (quote case)) 'macro (lambda (x1545) ((lambda (tmp1546) ((lambda (tmp1547) (if tmp1547 (apply (lambda (_1548 e1549 m11550 m21551) ((lambda (tmp1552) ((lambda (body1553) (list '#(syntax-object let ((top) #(ribcage #(body) #((top)) #("i")) #(ribcage #(_ e m1 m2) #((top) (top) (top) (top)) #("i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile)) (list (list '#(syntax-object t ((top) #(ribcage #(body) #((top)) #("i")) #(ribcage #(_ e m1 m2) #((top) (top) (top) (top)) #("i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile)) e1549)) body1553)) tmp1552)) (letrec ((f1554 (lambda (clause1555 clauses1556) (if (null? clauses1556) ((lambda (tmp1558) ((lambda (tmp1559) (if tmp1559 (apply (lambda (e11560 e21561) (cons '#(syntax-object begin ((top) #(ribcage #(e1 e2) #((top) (top)) #("i" "i")) #(ribcage () () ()) #(ribcage #(f clause clauses) #((top) (top) (top)) #("i" "i" "i")) #(ribcage #(_ e m1 m2) #((top) (top) (top) (top)) #("i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile)) (cons e11560 e21561))) tmp1559) ((lambda (tmp1563) (if tmp1563 (apply (lambda (k1564 e11565 e21566) (list '#(syntax-object if ((top) #(ribcage #(k e1 e2) #((top) (top) (top)) #("i" "i" "i")) #(ribcage () () ()) #(ribcage #(f clause clauses) #((top) (top) (top)) #("i" "i" "i")) #(ribcage #(_ e m1 m2) #((top) (top) (top) (top)) #("i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile)) (list '#(syntax-object memv ((top) #(ribcage #(k e1 e2) #((top) (top) (top)) #("i" "i" "i")) #(ribcage () () ()) #(ribcage #(f clause clauses) #((top) (top) (top)) #("i" "i" "i")) #(ribcage #(_ e m1 m2) #((top) (top) (top) (top)) #("i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile)) '#(syntax-object t ((top) #(ribcage #(k e1 e2) #((top) (top) (top)) #("i" "i" "i")) #(ribcage () () ()) #(ribcage #(f clause clauses) #((top) (top) (top)) #("i" "i" "i")) #(ribcage #(_ e m1 m2) #((top) (top) (top) (top)) #("i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile)) (list '#(syntax-object quote ((top) #(ribcage #(k e1 e2) #((top) (top) (top)) #("i" "i" "i")) #(ribcage () () ()) #(ribcage #(f clause clauses) #((top) (top) (top)) #("i" "i" "i")) #(ribcage #(_ e m1 m2) #((top) (top) (top) (top)) #("i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile)) k1564)) (cons '#(syntax-object begin ((top) #(ribcage #(k e1 e2) #((top) (top) (top)) #("i" "i" "i")) #(ribcage () () ()) #(ribcage #(f clause clauses) #((top) (top) (top)) #("i" "i" "i")) #(ribcage #(_ e m1 m2) #((top) (top) (top) (top)) #("i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile)) (cons e11565 e21566)))) tmp1563) ((lambda (_1569) (syntax-violation 'case "bad clause" x1545 clause1555)) tmp1558))) ($sc-dispatch tmp1558 '(each-any any . each-any))))) ($sc-dispatch tmp1558 '(#(free-id #(syntax-object else ((top) #(ribcage () () ()) #(ribcage #(f clause clauses) #((top) (top) (top)) #("i" "i" "i")) #(ribcage #(_ e m1 m2) #((top) (top) (top) (top)) #("i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile))) any . each-any)))) clause1555) ((lambda (tmp1570) ((lambda (rest1571) ((lambda (tmp1572) ((lambda (tmp1573) (if tmp1573 (apply (lambda (k1574 e11575 e21576) (list '#(syntax-object if ((top) #(ribcage #(k e1 e2) #((top) (top) (top)) #("i" "i" "i")) #(ribcage #(rest) #((top)) #("i")) #(ribcage () () ()) #(ribcage #(f clause clauses) #((top) (top) (top)) #("i" "i" "i")) #(ribcage #(_ e m1 m2) #((top) (top) (top) (top)) #("i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile)) (list '#(syntax-object memv ((top) #(ribcage #(k e1 e2) #((top) (top) (top)) #("i" "i" "i")) #(ribcage #(rest) #((top)) #("i")) #(ribcage () () ()) #(ribcage #(f clause clauses) #((top) (top) (top)) #("i" "i" "i")) #(ribcage #(_ e m1 m2) #((top) (top) (top) (top)) #("i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile)) '#(syntax-object t ((top) #(ribcage #(k e1 e2) #((top) (top) (top)) #("i" "i" "i")) #(ribcage #(rest) #((top)) #("i")) #(ribcage () () ()) #(ribcage #(f clause clauses) #((top) (top) (top)) #("i" "i" "i")) #(ribcage #(_ e m1 m2) #((top) (top) (top) (top)) #("i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile)) (list '#(syntax-object quote ((top) #(ribcage #(k e1 e2) #((top) (top) (top)) #("i" "i" "i")) #(ribcage #(rest) #((top)) #("i")) #(ribcage () () ()) #(ribcage #(f clause clauses) #((top) (top) (top)) #("i" "i" "i")) #(ribcage #(_ e m1 m2) #((top) (top) (top) (top)) #("i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile)) k1574)) (cons '#(syntax-object begin ((top) #(ribcage #(k e1 e2) #((top) (top) (top)) #("i" "i" "i")) #(ribcage #(rest) #((top)) #("i")) #(ribcage () () ()) #(ribcage #(f clause clauses) #((top) (top) (top)) #("i" "i" "i")) #(ribcage #(_ e m1 m2) #((top) (top) (top) (top)) #("i" "i" "i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile)) (cons e11575 e21576)) rest1571)) tmp1573) ((lambda (_1579) (syntax-violation 'case "bad clause" x1545 clause1555)) tmp1572))) ($sc-dispatch tmp1572 '(each-any any . each-any)))) clause1555)) tmp1570)) (f1554 (car clauses1556) (cdr clauses1556))))))) (f1554 m11550 m21551)))) tmp1547) (syntax-violation #f "source expression failed to match any pattern" tmp1546))) ($sc-dispatch tmp1546 '(any any any . each-any)))) x1545)))) (define identifier-syntax (make-syncase-macro 'macro (lambda (x1580) ((lambda (tmp1581) ((lambda (tmp1582) (if tmp1582 (apply (lambda (_1583 e1584) (list '#(syntax-object lambda ((top) #(ribcage #(_ e) #((top) (top)) #("i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile)) '(#(syntax-object x ((top) #(ribcage #(_ e) #((top) (top)) #("i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile))) (list '#(syntax-object syntax-case ((top) #(ribcage #(_ e) #((top) (top)) #("i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile)) '#(syntax-object x ((top) #(ribcage #(_ e) #((top) (top)) #("i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile)) '() (list '#(syntax-object id ((top) #(ribcage #(_ e) #((top) (top)) #("i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile)) '(#(syntax-object identifier? ((top) #(ribcage #(_ e) #((top) (top)) #("i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile)) (#(syntax-object syntax ((top) #(ribcage #(_ e) #((top) (top)) #("i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile)) #(syntax-object id ((top) #(ribcage #(_ e) #((top) (top)) #("i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile)))) (list '#(syntax-object syntax ((top) #(ribcage #(_ e) #((top) (top)) #("i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile)) e1584)) (list (cons _1583 '(#(syntax-object x ((top) #(ribcage #(_ e) #((top) (top)) #("i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile)) #(syntax-object ... ((top) #(ribcage #(_ e) #((top) (top)) #("i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile)))) (list '#(syntax-object syntax ((top) #(ribcage #(_ e) #((top) (top)) #("i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile)) (cons e1584 '(#(syntax-object x ((top) #(ribcage #(_ e) #((top) (top)) #("i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile)) #(syntax-object ... ((top) #(ribcage #(_ e) #((top) (top)) #("i" "i")) #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile))))))))) tmp1582) (syntax-violation #f "source expression failed to match any pattern" tmp1581))) ($sc-dispatch tmp1581 (quote (any any))))) x1580))))