1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-07 18:30:25 +02:00
guile/module/ice-9/psyntax-pp.scm
Andy Wingo 89cb70a0d5 fix source information lossage for (define (foo) ...) lambda sugar
* module/ice-9/psyntax.scm (source-wrap): Use decorate-source, for
  clarity.
  (syntax-type): When turning the RHS of (define (foo) ...) into a
  lambda, decorate the resulting lambda expression with source
  information, as the RHS later goes to chi-expr, which receives no
  source information. Perhaps that is a bug. In any case, fixes some
  source location lossage, reported by Jao.

* module/ice-9/psyntax-pp.scm: Regenerated.
2009-06-20 12:41:11 +02:00

11283 lines
721 KiB
Scheme

(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))))