From 24bf130fd15afbc8b3a2ccdc50a027f9b6c9e623 Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Mon, 26 Oct 2009 21:20:23 +0100 Subject: [PATCH] implement #:predicate will be useful for making e.g. typecase-lambda. Tough to tell though. * module/ice-9/psyntax.scm (lambda-formals, lambda*-formals): Parse out a #:predicate, which goes right before the rest args. The vanilla lambda doesn't parse it out of course, but it does return another value. (chi-lambda-case, lambda*, lambda): Expand and pass the predicate on to build-lambda-case. * module/ice-9/psyntax-pp.scm: Regenerate. * module/language/tree-il/compile-glil.scm (flatten): Compile a failing predicate without an else clause into a call to `error'. Also, fix something the compile warnings caught. --- module/ice-9/psyntax-pp.scm | 9221 +++++++++++----------- module/ice-9/psyntax.scm | 86 +- module/language/tree-il/compile-glil.scm | 7 +- 3 files changed, 4783 insertions(+), 4531 deletions(-) diff --git a/module/ice-9/psyntax-pp.scm b/module/ice-9/psyntax-pp.scm index 56f15e84a..1dc6469bf 100644 --- a/module/ice-9/psyntax-pp.scm +++ b/module/ice-9/psyntax-pp.scm @@ -123,343 +123,383 @@ #{mod\ 325}# #{get-formals\ 326}# #{clauses\ 327}#) - (letrec ((#{expand-body\ 331}# - (lambda (#{req\ 332}# - #{opt\ 333}# - #{rest\ 334}# - #{kw\ 335}# - #{body\ 336}# - #{vars\ 337}# - #{r*\ 338}# - #{w*\ 339}# - #{inits\ 340}#) - ((lambda (#{tmp\ 341}#) - ((lambda (#{tmp\ 342}#) - (if (if #{tmp\ 342}# - (apply (lambda (#{docstring\ 343}# - #{e1\ 344}# - #{e2\ 345}#) + (letrec ((#{expand-body\ 332}# + (lambda (#{req\ 333}# + #{opt\ 334}# + #{rest\ 335}# + #{kw\ 336}# + #{pred\ 337}# + #{body\ 338}# + #{vars\ 339}# + #{r*\ 340}# + #{w*\ 341}# + #{inits\ 342}#) + ((lambda (#{tmp\ 343}#) + ((lambda (#{tmp\ 344}#) + (if (if #{tmp\ 344}# + (apply (lambda (#{docstring\ 345}# + #{e1\ 346}# + #{e2\ 347}#) (string? (syntax->datum - #{docstring\ 343}#))) - #{tmp\ 342}#) + #{docstring\ 345}#))) + #{tmp\ 344}#) #f) - (apply (lambda (#{docstring\ 346}# - #{e1\ 347}# - #{e2\ 348}#) + (apply (lambda (#{docstring\ 348}# + #{e1\ 349}# + #{e2\ 350}#) (values (syntax->datum - #{docstring\ 346}#) - #{req\ 332}# - #{opt\ 333}# - #{rest\ 334}# - #{kw\ 335}# - #{inits\ 340}# - #{vars\ 337}# - #f + #{docstring\ 348}#) + #{req\ 333}# + #{opt\ 334}# + #{rest\ 335}# + #{kw\ 336}# + #{inits\ 342}# + #{vars\ 339}# + #{pred\ 337}# (#{chi-body\ 171}# - (cons #{e1\ 347}# #{e2\ 348}#) + (cons #{e1\ 349}# #{e2\ 350}#) (#{source-wrap\ 160}# #{e\ 321}# #{w\ 323}# #{s\ 324}# #{mod\ 325}#) - #{r*\ 338}# - #{w*\ 339}# + #{r*\ 340}# + #{w*\ 341}# #{mod\ 325}#))) - #{tmp\ 342}#) - ((lambda (#{tmp\ 350}#) - (if #{tmp\ 350}# - (apply (lambda (#{e1\ 351}# - #{e2\ 352}#) + #{tmp\ 344}#) + ((lambda (#{tmp\ 352}#) + (if #{tmp\ 352}# + (apply (lambda (#{e1\ 353}# + #{e2\ 354}#) (values #f - #{req\ 332}# - #{opt\ 333}# - #{rest\ 334}# - #{kw\ 335}# - #{inits\ 340}# - #{vars\ 337}# - #f + #{req\ 333}# + #{opt\ 334}# + #{rest\ 335}# + #{kw\ 336}# + #{inits\ 342}# + #{vars\ 339}# + #{pred\ 337}# (#{chi-body\ 171}# - (cons #{e1\ 351}# - #{e2\ 352}#) + (cons #{e1\ 353}# + #{e2\ 354}#) (#{source-wrap\ 160}# #{e\ 321}# #{w\ 323}# #{s\ 324}# #{mod\ 325}#) - #{r*\ 338}# - #{w*\ 339}# + #{r*\ 340}# + #{w*\ 341}# #{mod\ 325}#))) - #{tmp\ 350}#) + #{tmp\ 352}#) (syntax-violation #f "source expression failed to match any pattern" - #{tmp\ 341}#))) + #{tmp\ 343}#))) ($sc-dispatch - #{tmp\ 341}# + #{tmp\ 343}# '(any . each-any))))) ($sc-dispatch - #{tmp\ 341}# + #{tmp\ 343}# '(any any . each-any)))) - #{body\ 336}#))) + #{body\ 338}#))) + (#{expand-pred\ 331}# + (lambda (#{req\ 356}# + #{opt\ 357}# + #{rest\ 358}# + #{kw\ 359}# + #{pred\ 360}# + #{body\ 361}# + #{vars\ 362}# + #{r*\ 363}# + #{w*\ 364}# + #{inits\ 365}#) + (#{expand-body\ 332}# + #{req\ 356}# + #{opt\ 357}# + #{rest\ 358}# + #{kw\ 359}# + (if #{pred\ 360}# + (#{chi\ 167}# + #{pred\ 360}# + #{r*\ 363}# + #{w*\ 364}# + #{mod\ 325}#) + #f) + #{body\ 361}# + #{vars\ 362}# + #{r*\ 363}# + #{w*\ 364}# + #{inits\ 365}#))) (#{expand-kw\ 330}# - (lambda (#{req\ 354}# - #{opt\ 355}# - #{rest\ 356}# - #{kw\ 357}# - #{body\ 358}# - #{vars\ 359}# - #{r*\ 360}# - #{w*\ 361}# - #{aok\ 362}# - #{out\ 363}# - #{inits\ 364}#) - (if (pair? #{kw\ 357}#) - ((lambda (#{tmp\ 365}#) - ((lambda (#{tmp\ 366}#) - (if #{tmp\ 366}# - (apply (lambda (#{k\ 367}# - #{id\ 368}# - #{i\ 369}#) - (let ((#{v\ 370}# (#{gen-var\ 181}# - #{id\ 368}#))) - (let ((#{l\ 371}# (#{gen-labels\ 137}# - (list #{v\ 370}#)))) - (let ((#{r**\ 372}# + (lambda (#{req\ 366}# + #{opt\ 367}# + #{rest\ 368}# + #{kw\ 369}# + #{pred\ 370}# + #{body\ 371}# + #{vars\ 372}# + #{r*\ 373}# + #{w*\ 374}# + #{aok\ 375}# + #{out\ 376}# + #{inits\ 377}#) + (if (pair? #{kw\ 369}#) + ((lambda (#{tmp\ 378}#) + ((lambda (#{tmp\ 379}#) + (if #{tmp\ 379}# + (apply (lambda (#{k\ 380}# + #{id\ 381}# + #{i\ 382}#) + (let ((#{v\ 383}# (#{gen-var\ 181}# + #{id\ 381}#))) + (let ((#{l\ 384}# (#{gen-labels\ 137}# + (list #{v\ 383}#)))) + (let ((#{r**\ 385}# (#{extend-var-env\ 126}# - #{l\ 371}# - (list #{v\ 370}#) - #{r*\ 360}#))) - (let ((#{w**\ 373}# + #{l\ 384}# + (list #{v\ 383}#) + #{r*\ 373}#))) + (let ((#{w**\ 386}# (#{make-binding-wrap\ 148}# - (list #{id\ 368}#) - #{l\ 371}# - #{w*\ 361}#))) + (list #{id\ 381}#) + #{l\ 384}# + #{w*\ 374}#))) (#{expand-kw\ 330}# - #{req\ 354}# - #{opt\ 355}# - #{rest\ 356}# - (cdr #{kw\ 357}#) - #{body\ 358}# - (cons #{v\ 370}# - #{vars\ 359}#) - #{r**\ 372}# - #{w**\ 373}# - #{aok\ 362}# + #{req\ 366}# + #{opt\ 367}# + #{rest\ 368}# + (cdr #{kw\ 369}#) + #{pred\ 370}# + #{body\ 371}# + (cons #{v\ 383}# + #{vars\ 372}#) + #{r**\ 385}# + #{w**\ 386}# + #{aok\ 375}# (cons (list (syntax->datum - #{k\ 367}#) + #{k\ 380}#) (syntax->datum - #{id\ 368}#) - #{v\ 370}#) - #{out\ 363}#) + #{id\ 381}#) + #{v\ 383}#) + #{out\ 376}#) (cons (#{chi\ 167}# - #{i\ 369}# - #{r*\ 360}# - #{w*\ 361}# + #{i\ 382}# + #{r*\ 373}# + #{w*\ 374}# #{mod\ 325}#) - #{inits\ 364}#))))))) - #{tmp\ 366}#) + #{inits\ 377}#))))))) + #{tmp\ 379}#) (syntax-violation #f "source expression failed to match any pattern" - #{tmp\ 365}#))) + #{tmp\ 378}#))) ($sc-dispatch - #{tmp\ 365}# + #{tmp\ 378}# '(any any any)))) - (car #{kw\ 357}#)) - (#{expand-body\ 331}# - #{req\ 354}# - #{opt\ 355}# - #{rest\ 356}# - (if (let ((#{t\ 374}# #{aok\ 362}#)) - (if #{t\ 374}# - #{t\ 374}# - (pair? #{out\ 363}#))) - (cons #{aok\ 362}# (reverse #{out\ 363}#)) + (car #{kw\ 369}#)) + (#{expand-pred\ 331}# + #{req\ 366}# + #{opt\ 367}# + #{rest\ 368}# + (if (let ((#{t\ 387}# #{aok\ 375}#)) + (if #{t\ 387}# + #{t\ 387}# + (pair? #{out\ 376}#))) + (cons #{aok\ 375}# (reverse #{out\ 376}#)) #f) - #{body\ 358}# - (reverse #{vars\ 359}#) - #{r*\ 360}# - #{w*\ 361}# - (reverse #{inits\ 364}#))))) + #{pred\ 370}# + #{body\ 371}# + (reverse #{vars\ 372}#) + #{r*\ 373}# + #{w*\ 374}# + (reverse #{inits\ 377}#))))) (#{expand-opt\ 329}# - (lambda (#{req\ 375}# - #{opt\ 376}# - #{rest\ 377}# - #{kw\ 378}# - #{body\ 379}# - #{vars\ 380}# - #{r*\ 381}# - #{w*\ 382}# - #{out\ 383}# - #{inits\ 384}#) - (if (pair? #{opt\ 376}#) - ((lambda (#{tmp\ 385}#) - ((lambda (#{tmp\ 386}#) - (if #{tmp\ 386}# - (apply (lambda (#{id\ 387}# #{i\ 388}#) - (let ((#{v\ 389}# (#{gen-var\ 181}# - #{id\ 387}#))) - (let ((#{l\ 390}# (#{gen-labels\ 137}# - (list #{v\ 389}#)))) - (let ((#{r**\ 391}# + (lambda (#{req\ 388}# + #{opt\ 389}# + #{rest\ 390}# + #{kw\ 391}# + #{pred\ 392}# + #{body\ 393}# + #{vars\ 394}# + #{r*\ 395}# + #{w*\ 396}# + #{out\ 397}# + #{inits\ 398}#) + (if (pair? #{opt\ 389}#) + ((lambda (#{tmp\ 399}#) + ((lambda (#{tmp\ 400}#) + (if #{tmp\ 400}# + (apply (lambda (#{id\ 401}# #{i\ 402}#) + (let ((#{v\ 403}# (#{gen-var\ 181}# + #{id\ 401}#))) + (let ((#{l\ 404}# (#{gen-labels\ 137}# + (list #{v\ 403}#)))) + (let ((#{r**\ 405}# (#{extend-var-env\ 126}# - #{l\ 390}# - (list #{v\ 389}#) - #{r*\ 381}#))) - (let ((#{w**\ 392}# + #{l\ 404}# + (list #{v\ 403}#) + #{r*\ 395}#))) + (let ((#{w**\ 406}# (#{make-binding-wrap\ 148}# - (list #{id\ 387}#) - #{l\ 390}# - #{w*\ 382}#))) + (list #{id\ 401}#) + #{l\ 404}# + #{w*\ 396}#))) (#{expand-opt\ 329}# - #{req\ 375}# - (cdr #{opt\ 376}#) - #{rest\ 377}# - #{kw\ 378}# - #{body\ 379}# - (cons #{v\ 389}# - #{vars\ 380}#) - #{r**\ 391}# - #{w**\ 392}# + #{req\ 388}# + (cdr #{opt\ 389}#) + #{rest\ 390}# + #{kw\ 391}# + #{pred\ 392}# + #{body\ 393}# + (cons #{v\ 403}# + #{vars\ 394}#) + #{r**\ 405}# + #{w**\ 406}# (cons (syntax->datum - #{id\ 387}#) - #{out\ 383}#) + #{id\ 401}#) + #{out\ 397}#) (cons (#{chi\ 167}# - #{i\ 388}# - #{r*\ 381}# - #{w*\ 382}# + #{i\ 402}# + #{r*\ 395}# + #{w*\ 396}# #{mod\ 325}#) - #{inits\ 384}#))))))) - #{tmp\ 386}#) + #{inits\ 398}#))))))) + #{tmp\ 400}#) (syntax-violation #f "source expression failed to match any pattern" - #{tmp\ 385}#))) + #{tmp\ 399}#))) ($sc-dispatch - #{tmp\ 385}# + #{tmp\ 399}# '(any any)))) - (car #{opt\ 376}#)) - (if #{rest\ 377}# - (let ((#{v\ 393}# (#{gen-var\ 181}# - #{rest\ 377}#))) - (let ((#{l\ 394}# (#{gen-labels\ 137}# - (list #{v\ 393}#)))) - (let ((#{r*\ 395}# + (car #{opt\ 389}#)) + (if #{rest\ 390}# + (let ((#{v\ 407}# (#{gen-var\ 181}# + #{rest\ 390}#))) + (let ((#{l\ 408}# (#{gen-labels\ 137}# + (list #{v\ 407}#)))) + (let ((#{r*\ 409}# (#{extend-var-env\ 126}# - #{l\ 394}# - (list #{v\ 393}#) - #{r*\ 381}#))) - (let ((#{w*\ 396}# + #{l\ 408}# + (list #{v\ 407}#) + #{r*\ 395}#))) + (let ((#{w*\ 410}# (#{make-binding-wrap\ 148}# - (list #{rest\ 377}#) - #{l\ 394}# - #{w*\ 382}#))) + (list #{rest\ 390}#) + #{l\ 408}# + #{w*\ 396}#))) (#{expand-kw\ 330}# - #{req\ 375}# - (if (pair? #{out\ 383}#) - (reverse #{out\ 383}#) + #{req\ 388}# + (if (pair? #{out\ 397}#) + (reverse #{out\ 397}#) #f) - (syntax->datum #{rest\ 377}#) - (if (pair? #{kw\ 378}#) - (cdr #{kw\ 378}#) - #{kw\ 378}#) - #{body\ 379}# - (cons #{v\ 393}# #{vars\ 380}#) - #{r*\ 395}# - #{w*\ 396}# - (if (pair? #{kw\ 378}#) - (car #{kw\ 378}#) + (syntax->datum #{rest\ 390}#) + (if (pair? #{kw\ 391}#) + (cdr #{kw\ 391}#) + #{kw\ 391}#) + #{pred\ 392}# + #{body\ 393}# + (cons #{v\ 407}# #{vars\ 394}#) + #{r*\ 409}# + #{w*\ 410}# + (if (pair? #{kw\ 391}#) + (car #{kw\ 391}#) #f) '() - #{inits\ 384}#))))) + #{inits\ 398}#))))) (#{expand-kw\ 330}# - #{req\ 375}# - (if (pair? #{out\ 383}#) - (reverse #{out\ 383}#) + #{req\ 388}# + (if (pair? #{out\ 397}#) + (reverse #{out\ 397}#) #f) #f - (if (pair? #{kw\ 378}#) - (cdr #{kw\ 378}#) - #{kw\ 378}#) - #{body\ 379}# - #{vars\ 380}# - #{r*\ 381}# - #{w*\ 382}# - (if (pair? #{kw\ 378}#) (car #{kw\ 378}#) #f) + (if (pair? #{kw\ 391}#) + (cdr #{kw\ 391}#) + #{kw\ 391}#) + #{pred\ 392}# + #{body\ 393}# + #{vars\ 394}# + #{r*\ 395}# + #{w*\ 396}# + (if (pair? #{kw\ 391}#) (car #{kw\ 391}#) #f) '() - #{inits\ 384}#))))) + #{inits\ 398}#))))) (#{expand-req\ 328}# - (lambda (#{req\ 397}# - #{opt\ 398}# - #{rest\ 399}# - #{kw\ 400}# - #{body\ 401}#) - (let ((#{vars\ 402}# - (map #{gen-var\ 181}# #{req\ 397}#)) - (#{labels\ 403}# - (#{gen-labels\ 137}# #{req\ 397}#))) - (let ((#{r*\ 404}# + (lambda (#{req\ 411}# + #{opt\ 412}# + #{rest\ 413}# + #{kw\ 414}# + #{pred\ 415}# + #{body\ 416}#) + (let ((#{vars\ 417}# + (map #{gen-var\ 181}# #{req\ 411}#)) + (#{labels\ 418}# + (#{gen-labels\ 137}# #{req\ 411}#))) + (let ((#{r*\ 419}# (#{extend-var-env\ 126}# - #{labels\ 403}# - #{vars\ 402}# + #{labels\ 418}# + #{vars\ 417}# #{r\ 322}#)) - (#{w*\ 405}# + (#{w*\ 420}# (#{make-binding-wrap\ 148}# - #{req\ 397}# - #{labels\ 403}# + #{req\ 411}# + #{labels\ 418}# #{w\ 323}#))) (#{expand-opt\ 329}# - (map syntax->datum #{req\ 397}#) - #{opt\ 398}# - #{rest\ 399}# - #{kw\ 400}# - #{body\ 401}# - (reverse #{vars\ 402}#) - #{r*\ 404}# - #{w*\ 405}# + (map syntax->datum #{req\ 411}#) + #{opt\ 412}# + #{rest\ 413}# + #{kw\ 414}# + #{pred\ 415}# + #{body\ 416}# + (reverse #{vars\ 417}#) + #{r*\ 419}# + #{w*\ 420}# '() '())))))) - ((lambda (#{tmp\ 406}#) - ((lambda (#{tmp\ 407}#) - (if #{tmp\ 407}# - (apply (lambda () (values #f #f)) #{tmp\ 407}#) - ((lambda (#{tmp\ 408}#) - (if #{tmp\ 408}# - (apply (lambda (#{args\ 409}# - #{e1\ 410}# - #{e2\ 411}# - #{args*\ 412}# - #{e1*\ 413}# - #{e2*\ 414}#) + ((lambda (#{tmp\ 421}#) + ((lambda (#{tmp\ 422}#) + (if #{tmp\ 422}# + (apply (lambda () (values #f #f)) #{tmp\ 422}#) + ((lambda (#{tmp\ 423}#) + (if #{tmp\ 423}# + (apply (lambda (#{args\ 424}# + #{e1\ 425}# + #{e2\ 426}# + #{args*\ 427}# + #{e1*\ 428}# + #{e2*\ 429}#) (call-with-values (lambda () (#{get-formals\ 326}# - #{args\ 409}#)) - (lambda (#{req\ 415}# - #{opt\ 416}# - #{rest\ 417}# - #{kw\ 418}#) + #{args\ 424}#)) + (lambda (#{req\ 430}# + #{opt\ 431}# + #{rest\ 432}# + #{kw\ 433}# + #{pred\ 434}#) (call-with-values (lambda () (#{expand-req\ 328}# - #{req\ 415}# - #{opt\ 416}# - #{rest\ 417}# - #{kw\ 418}# - (cons #{e1\ 410}# - #{e2\ 411}#))) - (lambda (#{docstring\ 420}# - #{req\ 421}# - #{opt\ 422}# - #{rest\ 423}# - #{kw\ 424}# - #{inits\ 425}# - #{vars\ 426}# - #{pred\ 427}# - #{body\ 428}#) + #{req\ 430}# + #{opt\ 431}# + #{rest\ 432}# + #{kw\ 433}# + #{pred\ 434}# + (cons #{e1\ 425}# + #{e2\ 426}#))) + (lambda (#{docstring\ 436}# + #{req\ 437}# + #{opt\ 438}# + #{rest\ 439}# + #{kw\ 440}# + #{inits\ 441}# + #{vars\ 442}# + #{pred\ 443}# + #{body\ 444}#) (call-with-values (lambda () (#{chi-lambda-case\ 179}# @@ -469,132 +509,207 @@ #{s\ 324}# #{mod\ 325}# #{get-formals\ 326}# - (map (lambda (#{tmp\ 431}# - #{tmp\ 430}# - #{tmp\ 429}#) - (cons #{tmp\ 429}# - (cons #{tmp\ 430}# - #{tmp\ 431}#))) - #{e2*\ 414}# - #{e1*\ 413}# - #{args*\ 412}#))) - (lambda (#{docstring*\ 433}# - #{else*\ 434}#) + (map (lambda (#{tmp\ 447}# + #{tmp\ 446}# + #{tmp\ 445}#) + (cons #{tmp\ 445}# + (cons #{tmp\ 446}# + #{tmp\ 447}#))) + #{e2*\ 429}# + #{e1*\ 428}# + #{args*\ 427}#))) + (lambda (#{docstring*\ 449}# + #{else*\ 450}#) (values - (let ((#{t\ 435}# #{docstring\ 420}#)) - (if #{t\ 435}# - #{t\ 435}# - #{docstring*\ 433}#)) + (let ((#{t\ 451}# #{docstring\ 436}#)) + (if #{t\ 451}# + #{t\ 451}# + #{docstring*\ 449}#)) (#{build-lambda-case\ 107}# #{s\ 324}# - #{req\ 421}# - #{opt\ 422}# - #{rest\ 423}# - #{kw\ 424}# - #{inits\ 425}# - #{vars\ 426}# - #{pred\ 427}# - #{body\ 428}# - #{else*\ 434}#))))))))) - #{tmp\ 408}#) + #{req\ 437}# + #{opt\ 438}# + #{rest\ 439}# + #{kw\ 440}# + #{inits\ 441}# + #{vars\ 442}# + #{pred\ 443}# + #{body\ 444}# + #{else*\ 450}#))))))))) + #{tmp\ 423}#) (syntax-violation #f "source expression failed to match any pattern" - #{tmp\ 406}#))) + #{tmp\ 421}#))) ($sc-dispatch - #{tmp\ 406}# + #{tmp\ 421}# '((any any . each-any) . #(each (any any . each-any))))))) - ($sc-dispatch #{tmp\ 406}# (quote ())))) + ($sc-dispatch #{tmp\ 421}# (quote ())))) #{clauses\ 327}#)))) (#{lambda*-formals\ 178}# - (lambda (#{orig-args\ 436}#) - (letrec ((#{check\ 441}# - (lambda (#{req\ 442}# - #{opt\ 443}# - #{rest\ 444}# - #{kw\ 445}#) + (lambda (#{orig-args\ 452}#) + (letrec ((#{check\ 458}# + (lambda (#{req\ 459}# + #{opt\ 460}# + #{rest\ 461}# + #{kw\ 462}# + #{pred\ 463}#) (if (#{distinct-bound-ids?\ 157}# (append - #{req\ 442}# - (map car #{opt\ 443}#) - (if #{rest\ 444}# - (list #{rest\ 444}#) + #{req\ 459}# + (map car #{opt\ 460}#) + (if #{rest\ 461}# + (list #{rest\ 461}#) '()) - (if (pair? #{kw\ 445}#) - (map cadr (cdr #{kw\ 445}#)) + (if (pair? #{kw\ 462}#) + (map cadr (cdr #{kw\ 462}#)) '()))) (values - #{req\ 442}# - #{opt\ 443}# - #{rest\ 444}# - #{kw\ 445}#) + #{req\ 459}# + #{opt\ 460}# + #{rest\ 461}# + #{kw\ 462}# + #{pred\ 463}#) (syntax-violation 'lambda* "duplicate identifier in argument list" - #{orig-args\ 436}#)))) - (#{rest\ 440}# - (lambda (#{args\ 446}# - #{req\ 447}# - #{opt\ 448}# - #{kw\ 449}#) - ((lambda (#{tmp\ 450}#) - ((lambda (#{tmp\ 451}#) - (if (if #{tmp\ 451}# - (apply (lambda (#{r\ 452}#) - (#{id?\ 131}# #{r\ 452}#)) - #{tmp\ 451}#) + #{orig-args\ 452}#)))) + (#{rest\ 457}# + (lambda (#{args\ 464}# + #{req\ 465}# + #{opt\ 466}# + #{kw\ 467}# + #{pred\ 468}#) + ((lambda (#{tmp\ 469}#) + ((lambda (#{tmp\ 470}#) + (if (if #{tmp\ 470}# + (apply (lambda (#{r\ 471}#) + (#{id?\ 131}# #{r\ 471}#)) + #{tmp\ 470}#) #f) - (apply (lambda (#{r\ 453}#) - (#{check\ 441}# - #{req\ 447}# - #{opt\ 448}# - #{r\ 453}# - #{kw\ 449}#)) - #{tmp\ 451}#) - ((lambda (#{else\ 454}#) + (apply (lambda (#{r\ 472}#) + (#{check\ 458}# + #{req\ 465}# + #{opt\ 466}# + #{r\ 472}# + #{kw\ 467}# + #{pred\ 468}#)) + #{tmp\ 470}#) + ((lambda (#{else\ 473}#) (syntax-violation 'lambda* "invalid rest argument" - #{orig-args\ 436}# - #{args\ 446}#)) - #{tmp\ 450}#))) - (list #{tmp\ 450}#))) - #{args\ 446}#))) - (#{key\ 439}# - (lambda (#{args\ 455}# - #{req\ 456}# - #{opt\ 457}# - #{rkey\ 458}#) - ((lambda (#{tmp\ 459}#) - ((lambda (#{tmp\ 460}#) - (if #{tmp\ 460}# + #{orig-args\ 452}# + #{args\ 464}#)) + #{tmp\ 469}#))) + (list #{tmp\ 469}#))) + #{args\ 464}#))) + (#{pred\ 456}# + (lambda (#{args\ 474}# + #{req\ 475}# + #{opt\ 476}# + #{kw\ 477}#) + ((lambda (#{tmp\ 478}#) + ((lambda (#{tmp\ 479}#) + (if #{tmp\ 479}# + (apply (lambda (#{x\ 480}#) + (#{check\ 458}# + #{req\ 475}# + #{opt\ 476}# + #f + #{kw\ 477}# + #{x\ 480}#)) + #{tmp\ 479}#) + ((lambda (#{tmp\ 481}#) + (if (if #{tmp\ 481}# + (apply (lambda (#{x\ 482}# + #{a\ 483}# + #{b\ 484}#) + (eq? (syntax->datum + #{a\ 483}# + #:rest))) + #{tmp\ 481}#) + #f) + (apply (lambda (#{x\ 485}# + #{a\ 486}# + #{b\ 487}#) + (#{rest\ 457}# + #{b\ 487}# + #{req\ 475}# + #{opt\ 476}# + #f + #{kw\ 477}# + #{x\ 485}#)) + #{tmp\ 481}#) + ((lambda (#{tmp\ 488}#) + (if (if #{tmp\ 488}# + (apply (lambda (#{x\ 489}# + #{b\ 490}#) + (#{id?\ 131}# + #{b\ 490}#)) + #{tmp\ 488}#) + #f) + (apply (lambda (#{x\ 491}# + #{b\ 492}#) + (#{rest\ 457}# + #{b\ 492}# + #{req\ 475}# + #{opt\ 476}# + #f + #{kw\ 477}# + #{x\ 491}#)) + #{tmp\ 488}#) + ((lambda (#{else\ 493}#) + (syntax-violation + 'lambda* + "invalid argument list following #:predicate" + #{orig-args\ 452}# + #{args\ 474}#)) + #{tmp\ 478}#))) + ($sc-dispatch + #{tmp\ 478}# + '(any . any))))) + ($sc-dispatch + #{tmp\ 478}# + '(any any any))))) + ($sc-dispatch #{tmp\ 478}# (quote (any))))) + #{args\ 474}#))) + (#{key\ 455}# + (lambda (#{args\ 494}# + #{req\ 495}# + #{opt\ 496}# + #{rkey\ 497}#) + ((lambda (#{tmp\ 498}#) + ((lambda (#{tmp\ 499}#) + (if #{tmp\ 499}# (apply (lambda () - (#{check\ 441}# - #{req\ 456}# - #{opt\ 457}# + (#{check\ 458}# + #{req\ 495}# + #{opt\ 496}# #f (cons #f - (reverse #{rkey\ 458}#)))) - #{tmp\ 460}#) - ((lambda (#{tmp\ 461}#) - (if (if #{tmp\ 461}# - (apply (lambda (#{a\ 462}# - #{b\ 463}#) + (reverse #{rkey\ 497}#)) + #f)) + #{tmp\ 499}#) + ((lambda (#{tmp\ 500}#) + (if (if #{tmp\ 500}# + (apply (lambda (#{a\ 501}# + #{b\ 502}#) (#{id?\ 131}# - #{a\ 462}#)) - #{tmp\ 461}#) + #{a\ 501}#)) + #{tmp\ 500}#) #f) - (apply (lambda (#{a\ 464}# #{b\ 465}#) - ((lambda (#{tmp\ 466}#) - ((lambda (#{k\ 467}#) - (#{key\ 439}# - #{b\ 465}# - #{req\ 456}# - #{opt\ 457}# - (cons (cons #{k\ 467}# - (cons #{a\ 464}# + (apply (lambda (#{a\ 503}# #{b\ 504}#) + ((lambda (#{tmp\ 505}#) + ((lambda (#{k\ 506}#) + (#{key\ 455}# + #{b\ 504}# + #{req\ 495}# + #{opt\ 496}# + (cons (cons #{k\ 506}# + (cons #{a\ 503}# '(#(syntax-object #f ((top) @@ -628,6 +743,7 @@ "i")) #(ribcage (check rest + pred key opt req) @@ -635,11 +751,13 @@ (top) (top) (top) + (top) (top)) ("i" "i" "i" "i" + "i" "i")) #(ribcage #(orig-args) @@ -1006,222 +1124,278 @@ "i"))) (hygiene guile))))) - #{rkey\ 458}#))) - #{tmp\ 466}#)) + #{rkey\ 497}#))) + #{tmp\ 505}#)) (symbol->keyword (syntax->datum - #{a\ 464}#)))) - #{tmp\ 461}#) - ((lambda (#{tmp\ 468}#) - (if (if #{tmp\ 468}# - (apply (lambda (#{a\ 469}# - #{init\ 470}# - #{b\ 471}#) + #{a\ 503}#)))) + #{tmp\ 500}#) + ((lambda (#{tmp\ 507}#) + (if (if #{tmp\ 507}# + (apply (lambda (#{a\ 508}# + #{init\ 509}# + #{b\ 510}#) (#{id?\ 131}# - #{a\ 469}#)) - #{tmp\ 468}#) + #{a\ 508}#)) + #{tmp\ 507}#) #f) - (apply (lambda (#{a\ 472}# - #{init\ 473}# - #{b\ 474}#) - ((lambda (#{tmp\ 475}#) - ((lambda (#{k\ 476}#) - (#{key\ 439}# - #{b\ 474}# - #{req\ 456}# - #{opt\ 457}# - (cons (list #{k\ 476}# - #{a\ 472}# - #{init\ 473}#) - #{rkey\ 458}#))) - #{tmp\ 475}#)) + (apply (lambda (#{a\ 511}# + #{init\ 512}# + #{b\ 513}#) + ((lambda (#{tmp\ 514}#) + ((lambda (#{k\ 515}#) + (#{key\ 455}# + #{b\ 513}# + #{req\ 495}# + #{opt\ 496}# + (cons (list #{k\ 515}# + #{a\ 511}# + #{init\ 512}#) + #{rkey\ 497}#))) + #{tmp\ 514}#)) (symbol->keyword (syntax->datum - #{a\ 472}#)))) - #{tmp\ 468}#) - ((lambda (#{tmp\ 477}#) - (if (if #{tmp\ 477}# - (apply (lambda (#{a\ 478}# - #{init\ 479}# - #{k\ 480}# - #{b\ 481}#) + #{a\ 511}#)))) + #{tmp\ 507}#) + ((lambda (#{tmp\ 516}#) + (if (if #{tmp\ 516}# + (apply (lambda (#{a\ 517}# + #{init\ 518}# + #{k\ 519}# + #{b\ 520}#) (if (#{id?\ 131}# - #{a\ 478}#) + #{a\ 517}#) (keyword? (syntax->datum - #{k\ 480}#)) + #{k\ 519}#)) #f)) - #{tmp\ 477}#) + #{tmp\ 516}#) #f) - (apply (lambda (#{a\ 482}# - #{init\ 483}# - #{k\ 484}# - #{b\ 485}#) - (#{key\ 439}# - #{b\ 485}# - #{req\ 456}# - #{opt\ 457}# - (cons (list #{k\ 484}# - #{a\ 482}# - #{init\ 483}#) - #{rkey\ 458}#))) - #{tmp\ 477}#) - ((lambda (#{tmp\ 486}#) - (if (if #{tmp\ 486}# - (apply (lambda (#{aok\ 487}#) + (apply (lambda (#{a\ 521}# + #{init\ 522}# + #{k\ 523}# + #{b\ 524}#) + (#{key\ 455}# + #{b\ 524}# + #{req\ 495}# + #{opt\ 496}# + (cons (list #{k\ 523}# + #{a\ 521}# + #{init\ 522}#) + #{rkey\ 497}#))) + #{tmp\ 516}#) + ((lambda (#{tmp\ 525}#) + (if (if #{tmp\ 525}# + (apply (lambda (#{aok\ 526}#) (eq? (syntax->datum - #{aok\ 487}#) + #{aok\ 526}#) #:allow-other-keys)) - #{tmp\ 486}#) + #{tmp\ 525}#) #f) - (apply (lambda (#{aok\ 488}#) - (#{check\ 441}# - #{req\ 456}# - #{opt\ 457}# + (apply (lambda (#{aok\ 527}#) + (#{check\ 458}# + #{req\ 495}# + #{opt\ 496}# #f (cons #t (reverse - #{rkey\ 458}#)))) - #{tmp\ 486}#) - ((lambda (#{tmp\ 489}#) - (if (if #{tmp\ 489}# - (apply (lambda (#{aok\ 490}# - #{a\ 491}# - #{b\ 492}#) + #{rkey\ 497}#)) + #f)) + #{tmp\ 525}#) + ((lambda (#{tmp\ 528}#) + (if (if #{tmp\ 528}# + (apply (lambda (#{aok\ 529}# + #{a\ 530}# + #{b\ 531}#) (if (eq? (syntax->datum - #{aok\ 490}#) + #{aok\ 529}#) #:allow-other-keys) (eq? (syntax->datum - #{a\ 491}#) - #:rest) + #{a\ 530}#) + #:predicate) #f)) - #{tmp\ 489}#) + #{tmp\ 528}#) #f) - (apply (lambda (#{aok\ 493}# - #{a\ 494}# - #{b\ 495}#) - (#{rest\ 440}# - #{b\ 495}# - #{req\ 456}# - #{opt\ 457}# + (apply (lambda (#{aok\ 532}# + #{a\ 533}# + #{b\ 534}#) + (#{pred\ 456}# + #{b\ 534}# + #{req\ 495}# + #{opt\ 496}# (cons #t (reverse - #{rkey\ 458}#)))) - #{tmp\ 489}#) - ((lambda (#{tmp\ 496}#) - (if (if #{tmp\ 496}# - (apply (lambda (#{aok\ 497}# - #{r\ 498}#) + #{rkey\ 497}#)))) + #{tmp\ 528}#) + ((lambda (#{tmp\ 535}#) + (if (if #{tmp\ 535}# + (apply (lambda (#{aok\ 536}# + #{a\ 537}# + #{b\ 538}#) (if (eq? (syntax->datum - #{aok\ 497}#) + #{aok\ 536}#) #:allow-other-keys) - (#{id?\ 131}# - #{r\ 498}#) + (eq? (syntax->datum + #{a\ 537}#) + #:rest) #f)) - #{tmp\ 496}#) + #{tmp\ 535}#) #f) - (apply (lambda (#{aok\ 499}# - #{r\ 500}#) - (#{rest\ 440}# - #{r\ 500}# - #{req\ 456}# - #{opt\ 457}# + (apply (lambda (#{aok\ 539}# + #{a\ 540}# + #{b\ 541}#) + (#{rest\ 457}# + #{b\ 541}# + #{req\ 495}# + #{opt\ 496}# (cons #t (reverse - #{rkey\ 458}#)))) - #{tmp\ 496}#) - ((lambda (#{tmp\ 501}#) - (if (if #{tmp\ 501}# - (apply (lambda (#{a\ 502}# - #{b\ 503}#) - (eq? (syntax->datum - #{a\ 502}#) - #:rest)) - #{tmp\ 501}#) + #{rkey\ 497}#)))) + #{tmp\ 535}#) + ((lambda (#{tmp\ 542}#) + (if (if #{tmp\ 542}# + (apply (lambda (#{aok\ 543}# + #{r\ 544}#) + (if (eq? (syntax->datum + #{aok\ 543}#) + #:allow-other-keys) + (#{id?\ 131}# + #{r\ 544}#) + #f)) + #{tmp\ 542}#) #f) - (apply (lambda (#{a\ 504}# - #{b\ 505}#) - (#{rest\ 440}# - #{b\ 505}# - #{req\ 456}# - #{opt\ 457}# - (cons #f + (apply (lambda (#{aok\ 545}# + #{r\ 546}#) + (#{rest\ 457}# + #{r\ 546}# + #{req\ 495}# + #{opt\ 496}# + (cons #t (reverse - #{rkey\ 458}#)))) - #{tmp\ 501}#) - ((lambda (#{tmp\ 506}#) - (if (if #{tmp\ 506}# - (apply (lambda (#{r\ 507}#) - (#{id?\ 131}# - #{r\ 507}#)) - #{tmp\ 506}#) + #{rkey\ 497}#)))) + #{tmp\ 542}#) + ((lambda (#{tmp\ 547}#) + (if (if #{tmp\ 547}# + (apply (lambda (#{a\ 548}# + #{b\ 549}#) + (eq? (syntax->datum + #{a\ 548}#) + #:predicate)) + #{tmp\ 547}#) #f) - (apply (lambda (#{r\ 508}#) - (#{rest\ 440}# - #{r\ 508}# - #{req\ 456}# - #{opt\ 457}# + (apply (lambda (#{a\ 550}# + #{b\ 551}#) + (#{pred\ 456}# + #{b\ 551}# + #{req\ 495}# + #{opt\ 496}# (cons #f (reverse - #{rkey\ 458}#)))) - #{tmp\ 506}#) - ((lambda (#{else\ 509}#) - (syntax-violation - 'lambda* - "invalid keyword argument list" - #{orig-args\ 436}# - #{args\ 455}#)) - #{tmp\ 459}#))) - (list #{tmp\ 459}#)))) + #{rkey\ 497}#)))) + #{tmp\ 547}#) + ((lambda (#{tmp\ 552}#) + (if (if #{tmp\ 552}# + (apply (lambda (#{a\ 553}# + #{b\ 554}#) + (eq? (syntax->datum + #{a\ 553}#) + #:rest)) + #{tmp\ 552}#) + #f) + (apply (lambda (#{a\ 555}# + #{b\ 556}#) + (#{rest\ 457}# + #{b\ 556}# + #{req\ 495}# + #{opt\ 496}# + (cons #f + (reverse + #{rkey\ 497}#)) + #f)) + #{tmp\ 552}#) + ((lambda (#{tmp\ 557}#) + (if (if #{tmp\ 557}# + (apply (lambda (#{r\ 558}#) + (#{id?\ 131}# + #{r\ 558}#)) + #{tmp\ 557}#) + #f) + (apply (lambda (#{r\ 559}#) + (#{rest\ 457}# + #{r\ 559}# + #{req\ 495}# + #{opt\ 496}# + (cons #f + (reverse + #{rkey\ 497}#)) + #f)) + #{tmp\ 557}#) + ((lambda (#{else\ 560}#) + (syntax-violation + 'lambda* + "invalid keyword argument list" + #{orig-args\ 452}# + #{args\ 494}#)) + #{tmp\ 498}#))) + (list #{tmp\ 498}#)))) + ($sc-dispatch + #{tmp\ 498}# + '(any any))))) + ($sc-dispatch + #{tmp\ 498}# + '(any . + any))))) ($sc-dispatch - #{tmp\ 459}# - '(any any))))) + #{tmp\ 498}# + '(any . + any))))) ($sc-dispatch - #{tmp\ 459}# - '(any . + #{tmp\ 498}# + '(any any any))))) ($sc-dispatch - #{tmp\ 459}# - '(any any any))))) + #{tmp\ 498}# + '(any any . any))))) ($sc-dispatch - #{tmp\ 459}# + #{tmp\ 498}# '(any))))) ($sc-dispatch - #{tmp\ 459}# + #{tmp\ 498}# '((any any any) . any))))) ($sc-dispatch - #{tmp\ 459}# + #{tmp\ 498}# '((any any) . any))))) ($sc-dispatch - #{tmp\ 459}# + #{tmp\ 498}# '(any . any))))) - ($sc-dispatch #{tmp\ 459}# (quote ())))) - #{args\ 455}#))) - (#{opt\ 438}# - (lambda (#{args\ 510}# #{req\ 511}# #{ropt\ 512}#) - ((lambda (#{tmp\ 513}#) - ((lambda (#{tmp\ 514}#) - (if #{tmp\ 514}# + ($sc-dispatch #{tmp\ 498}# (quote ())))) + #{args\ 494}#))) + (#{opt\ 454}# + (lambda (#{args\ 561}# #{req\ 562}# #{ropt\ 563}#) + ((lambda (#{tmp\ 564}#) + ((lambda (#{tmp\ 565}#) + (if #{tmp\ 565}# (apply (lambda () - (#{check\ 441}# - #{req\ 511}# - (reverse #{ropt\ 512}#) + (#{check\ 458}# + #{req\ 562}# + (reverse #{ropt\ 563}#) #f - '())) - #{tmp\ 514}#) - ((lambda (#{tmp\ 515}#) - (if (if #{tmp\ 515}# - (apply (lambda (#{a\ 516}# - #{b\ 517}#) + '() + #f)) + #{tmp\ 565}#) + ((lambda (#{tmp\ 566}#) + (if (if #{tmp\ 566}# + (apply (lambda (#{a\ 567}# + #{b\ 568}#) (#{id?\ 131}# - #{a\ 516}#)) - #{tmp\ 515}#) + #{a\ 567}#)) + #{tmp\ 566}#) #f) - (apply (lambda (#{a\ 518}# #{b\ 519}#) - (#{opt\ 438}# - #{b\ 519}# - #{req\ 511}# - (cons (cons #{a\ 518}# + (apply (lambda (#{a\ 569}# #{b\ 570}#) + (#{opt\ 454}# + #{b\ 570}# + #{req\ 562}# + (cons (cons #{a\ 569}# '(#(syntax-object #f ((top) @@ -1247,6 +1421,7 @@ "i")) #(ribcage (check rest + pred key opt req) @@ -1254,11 +1429,13 @@ (top) (top) (top) + (top) (top)) ("i" "i" "i" "i" + "i" "i")) #(ribcage #(orig-args) @@ -1625,328 +1802,375 @@ "i"))) (hygiene guile)))) - #{ropt\ 512}#))) - #{tmp\ 515}#) - ((lambda (#{tmp\ 520}#) - (if (if #{tmp\ 520}# - (apply (lambda (#{a\ 521}# - #{init\ 522}# - #{b\ 523}#) + #{ropt\ 563}#))) + #{tmp\ 566}#) + ((lambda (#{tmp\ 571}#) + (if (if #{tmp\ 571}# + (apply (lambda (#{a\ 572}# + #{init\ 573}# + #{b\ 574}#) (#{id?\ 131}# - #{a\ 521}#)) - #{tmp\ 520}#) + #{a\ 572}#)) + #{tmp\ 571}#) #f) - (apply (lambda (#{a\ 524}# - #{init\ 525}# - #{b\ 526}#) - (#{opt\ 438}# - #{b\ 526}# - #{req\ 511}# - (cons (list #{a\ 524}# - #{init\ 525}#) - #{ropt\ 512}#))) - #{tmp\ 520}#) - ((lambda (#{tmp\ 527}#) - (if (if #{tmp\ 527}# - (apply (lambda (#{a\ 528}# - #{b\ 529}#) + (apply (lambda (#{a\ 575}# + #{init\ 576}# + #{b\ 577}#) + (#{opt\ 454}# + #{b\ 577}# + #{req\ 562}# + (cons (list #{a\ 575}# + #{init\ 576}#) + #{ropt\ 563}#))) + #{tmp\ 571}#) + ((lambda (#{tmp\ 578}#) + (if (if #{tmp\ 578}# + (apply (lambda (#{a\ 579}# + #{b\ 580}#) (eq? (syntax->datum - #{a\ 528}#) + #{a\ 579}#) #:key)) - #{tmp\ 527}#) + #{tmp\ 578}#) #f) - (apply (lambda (#{a\ 530}# - #{b\ 531}#) - (#{key\ 439}# - #{b\ 531}# - #{req\ 511}# + (apply (lambda (#{a\ 581}# + #{b\ 582}#) + (#{key\ 455}# + #{b\ 582}# + #{req\ 562}# (reverse - #{ropt\ 512}#) + #{ropt\ 563}#) '())) - #{tmp\ 527}#) - ((lambda (#{tmp\ 532}#) - (if (if #{tmp\ 532}# - (apply (lambda (#{a\ 533}# - #{b\ 534}#) + #{tmp\ 578}#) + ((lambda (#{tmp\ 583}#) + (if (if #{tmp\ 583}# + (apply (lambda (#{a\ 584}# + #{b\ 585}#) (eq? (syntax->datum - #{a\ 533}#) - #:rest)) - #{tmp\ 532}#) + #{a\ 584}#) + #:predicate)) + #{tmp\ 583}#) #f) - (apply (lambda (#{a\ 535}# - #{b\ 536}#) - (#{rest\ 440}# - #{b\ 536}# - #{req\ 511}# + (apply (lambda (#{a\ 586}# + #{b\ 587}#) + (#{pred\ 456}# + #{b\ 587}# + #{req\ 562}# (reverse - #{ropt\ 512}#) + #{ropt\ 563}#) '())) - #{tmp\ 532}#) - ((lambda (#{tmp\ 537}#) - (if (if #{tmp\ 537}# - (apply (lambda (#{r\ 538}#) - (#{id?\ 131}# - #{r\ 538}#)) - #{tmp\ 537}#) + #{tmp\ 583}#) + ((lambda (#{tmp\ 588}#) + (if (if #{tmp\ 588}# + (apply (lambda (#{a\ 589}# + #{b\ 590}#) + (eq? (syntax->datum + #{a\ 589}#) + #:rest)) + #{tmp\ 588}#) #f) - (apply (lambda (#{r\ 539}#) - (#{rest\ 440}# - #{r\ 539}# - #{req\ 511}# + (apply (lambda (#{a\ 591}# + #{b\ 592}#) + (#{rest\ 457}# + #{b\ 592}# + #{req\ 562}# (reverse - #{ropt\ 512}#) - '())) - #{tmp\ 537}#) - ((lambda (#{else\ 540}#) - (syntax-violation - 'lambda* - "invalid optional argument list" - #{orig-args\ 436}# - #{args\ 510}#)) - #{tmp\ 513}#))) - (list #{tmp\ 513}#)))) + #{ropt\ 563}#) + '() + #f)) + #{tmp\ 588}#) + ((lambda (#{tmp\ 593}#) + (if (if #{tmp\ 593}# + (apply (lambda (#{r\ 594}#) + (#{id?\ 131}# + #{r\ 594}#)) + #{tmp\ 593}#) + #f) + (apply (lambda (#{r\ 595}#) + (#{rest\ 457}# + #{r\ 595}# + #{req\ 562}# + (reverse + #{ropt\ 563}#) + '() + #f)) + #{tmp\ 593}#) + ((lambda (#{else\ 596}#) + (syntax-violation + 'lambda* + "invalid optional argument list" + #{orig-args\ 452}# + #{args\ 561}#)) + #{tmp\ 564}#))) + (list #{tmp\ 564}#)))) + ($sc-dispatch + #{tmp\ 564}# + '(any any))))) ($sc-dispatch - #{tmp\ 513}# - '(any any))))) + #{tmp\ 564}# + '(any . any))))) ($sc-dispatch - #{tmp\ 513}# + #{tmp\ 564}# '(any . any))))) ($sc-dispatch - #{tmp\ 513}# + #{tmp\ 564}# '((any any) . any))))) ($sc-dispatch - #{tmp\ 513}# + #{tmp\ 564}# '(any . any))))) - ($sc-dispatch #{tmp\ 513}# (quote ())))) - #{args\ 510}#))) - (#{req\ 437}# - (lambda (#{args\ 541}# #{rreq\ 542}#) - ((lambda (#{tmp\ 543}#) - ((lambda (#{tmp\ 544}#) - (if #{tmp\ 544}# + ($sc-dispatch #{tmp\ 564}# (quote ())))) + #{args\ 561}#))) + (#{req\ 453}# + (lambda (#{args\ 597}# #{rreq\ 598}#) + ((lambda (#{tmp\ 599}#) + ((lambda (#{tmp\ 600}#) + (if #{tmp\ 600}# (apply (lambda () - (#{check\ 441}# - (reverse #{rreq\ 542}#) + (#{check\ 458}# + (reverse #{rreq\ 598}#) '() #f - '())) - #{tmp\ 544}#) - ((lambda (#{tmp\ 545}#) - (if (if #{tmp\ 545}# - (apply (lambda (#{a\ 546}# - #{b\ 547}#) + '() + #f)) + #{tmp\ 600}#) + ((lambda (#{tmp\ 601}#) + (if (if #{tmp\ 601}# + (apply (lambda (#{a\ 602}# + #{b\ 603}#) (#{id?\ 131}# - #{a\ 546}#)) - #{tmp\ 545}#) + #{a\ 602}#)) + #{tmp\ 601}#) #f) - (apply (lambda (#{a\ 548}# #{b\ 549}#) - (#{req\ 437}# - #{b\ 549}# - (cons #{a\ 548}# - #{rreq\ 542}#))) - #{tmp\ 545}#) - ((lambda (#{tmp\ 550}#) - (if (if #{tmp\ 550}# - (apply (lambda (#{a\ 551}# - #{b\ 552}#) + (apply (lambda (#{a\ 604}# #{b\ 605}#) + (#{req\ 453}# + #{b\ 605}# + (cons #{a\ 604}# + #{rreq\ 598}#))) + #{tmp\ 601}#) + ((lambda (#{tmp\ 606}#) + (if (if #{tmp\ 606}# + (apply (lambda (#{a\ 607}# + #{b\ 608}#) (eq? (syntax->datum - #{a\ 551}#) + #{a\ 607}#) #:optional)) - #{tmp\ 550}#) + #{tmp\ 606}#) #f) - (apply (lambda (#{a\ 553}# - #{b\ 554}#) - (#{opt\ 438}# - #{b\ 554}# + (apply (lambda (#{a\ 609}# + #{b\ 610}#) + (#{opt\ 454}# + #{b\ 610}# (reverse - #{rreq\ 542}#) + #{rreq\ 598}#) '())) - #{tmp\ 550}#) - ((lambda (#{tmp\ 555}#) - (if (if #{tmp\ 555}# - (apply (lambda (#{a\ 556}# - #{b\ 557}#) + #{tmp\ 606}#) + ((lambda (#{tmp\ 611}#) + (if (if #{tmp\ 611}# + (apply (lambda (#{a\ 612}# + #{b\ 613}#) (eq? (syntax->datum - #{a\ 556}#) + #{a\ 612}#) #:key)) - #{tmp\ 555}#) + #{tmp\ 611}#) #f) - (apply (lambda (#{a\ 558}# - #{b\ 559}#) - (#{key\ 439}# - #{b\ 559}# + (apply (lambda (#{a\ 614}# + #{b\ 615}#) + (#{key\ 455}# + #{b\ 615}# (reverse - #{rreq\ 542}#) + #{rreq\ 598}#) '() '())) - #{tmp\ 555}#) - ((lambda (#{tmp\ 560}#) - (if (if #{tmp\ 560}# - (apply (lambda (#{a\ 561}# - #{b\ 562}#) + #{tmp\ 611}#) + ((lambda (#{tmp\ 616}#) + (if (if #{tmp\ 616}# + (apply (lambda (#{a\ 617}# + #{b\ 618}#) (eq? (syntax->datum - #{a\ 561}#) - #:rest)) - #{tmp\ 560}#) + #{a\ 617}#) + #:predicate)) + #{tmp\ 616}#) #f) - (apply (lambda (#{a\ 563}# - #{b\ 564}#) - (#{rest\ 440}# - #{b\ 564}# + (apply (lambda (#{a\ 619}# + #{b\ 620}#) + (#{pred\ 456}# + #{b\ 620}# (reverse - #{rreq\ 542}#) + #{rreq\ 598}#) '() '())) - #{tmp\ 560}#) - ((lambda (#{tmp\ 565}#) - (if (if #{tmp\ 565}# - (apply (lambda (#{r\ 566}#) - (#{id?\ 131}# - #{r\ 566}#)) - #{tmp\ 565}#) + #{tmp\ 616}#) + ((lambda (#{tmp\ 621}#) + (if (if #{tmp\ 621}# + (apply (lambda (#{a\ 622}# + #{b\ 623}#) + (eq? (syntax->datum + #{a\ 622}#) + #:rest)) + #{tmp\ 621}#) #f) - (apply (lambda (#{r\ 567}#) - (#{rest\ 440}# - #{r\ 567}# + (apply (lambda (#{a\ 624}# + #{b\ 625}#) + (#{rest\ 457}# + #{b\ 625}# (reverse - #{rreq\ 542}#) + #{rreq\ 598}#) '() - '())) - #{tmp\ 565}#) - ((lambda (#{else\ 568}#) - (syntax-violation - 'lambda* - "invalid argument list" - #{orig-args\ 436}# - #{args\ 541}#)) - #{tmp\ 543}#))) - (list #{tmp\ 543}#)))) + '() + #f)) + #{tmp\ 621}#) + ((lambda (#{tmp\ 626}#) + (if (if #{tmp\ 626}# + (apply (lambda (#{r\ 627}#) + (#{id?\ 131}# + #{r\ 627}#)) + #{tmp\ 626}#) + #f) + (apply (lambda (#{r\ 628}#) + (#{rest\ 457}# + #{r\ 628}# + (reverse + #{rreq\ 598}#) + '() + '() + #f)) + #{tmp\ 626}#) + ((lambda (#{else\ 629}#) + (syntax-violation + 'lambda* + "invalid argument list" + #{orig-args\ 452}# + #{args\ 597}#)) + #{tmp\ 599}#))) + (list #{tmp\ 599}#)))) + ($sc-dispatch + #{tmp\ 599}# + '(any any))))) ($sc-dispatch - #{tmp\ 543}# - '(any any))))) + #{tmp\ 599}# + '(any . any))))) ($sc-dispatch - #{tmp\ 543}# + #{tmp\ 599}# '(any . any))))) ($sc-dispatch - #{tmp\ 543}# + #{tmp\ 599}# '(any . any))))) ($sc-dispatch - #{tmp\ 543}# + #{tmp\ 599}# '(any . any))))) - ($sc-dispatch #{tmp\ 543}# (quote ())))) - #{args\ 541}#)))) - (#{req\ 437}# #{orig-args\ 436}# (quote ()))))) + ($sc-dispatch #{tmp\ 599}# (quote ())))) + #{args\ 597}#)))) + (#{req\ 453}# #{orig-args\ 452}# (quote ()))))) (#{chi-simple-lambda\ 177}# - (lambda (#{e\ 569}# - #{r\ 570}# - #{w\ 571}# - #{s\ 572}# - #{mod\ 573}# - #{req\ 574}# - #{rest\ 575}# - #{docstring\ 576}# - #{body\ 577}#) - (let ((#{ids\ 578}# - (if #{rest\ 575}# - (append #{req\ 574}# (list #{rest\ 575}#)) - #{req\ 574}#))) - (let ((#{vars\ 579}# - (map #{gen-var\ 181}# #{ids\ 578}#))) - (let ((#{labels\ 580}# - (#{gen-labels\ 137}# #{ids\ 578}#))) + (lambda (#{e\ 630}# + #{r\ 631}# + #{w\ 632}# + #{s\ 633}# + #{mod\ 634}# + #{req\ 635}# + #{rest\ 636}# + #{docstring\ 637}# + #{body\ 638}#) + (let ((#{ids\ 639}# + (if #{rest\ 636}# + (append #{req\ 635}# (list #{rest\ 636}#)) + #{req\ 635}#))) + (let ((#{vars\ 640}# + (map #{gen-var\ 181}# #{ids\ 639}#))) + (let ((#{labels\ 641}# + (#{gen-labels\ 137}# #{ids\ 639}#))) (#{build-simple-lambda\ 105}# - #{s\ 572}# - (map syntax->datum #{req\ 574}#) - (if #{rest\ 575}# - (syntax->datum #{rest\ 575}#) + #{s\ 633}# + (map syntax->datum #{req\ 635}#) + (if #{rest\ 636}# + (syntax->datum #{rest\ 636}#) #f) - #{vars\ 579}# - #{docstring\ 576}# + #{vars\ 640}# + #{docstring\ 637}# (#{chi-body\ 171}# - #{body\ 577}# + #{body\ 638}# (#{source-wrap\ 160}# - #{e\ 569}# - #{w\ 571}# - #{s\ 572}# - #{mod\ 573}#) + #{e\ 630}# + #{w\ 632}# + #{s\ 633}# + #{mod\ 634}#) (#{extend-var-env\ 126}# - #{labels\ 580}# - #{vars\ 579}# - #{r\ 570}#) + #{labels\ 641}# + #{vars\ 640}# + #{r\ 631}#) (#{make-binding-wrap\ 148}# - #{ids\ 578}# - #{labels\ 580}# - #{w\ 571}#) - #{mod\ 573}#))))))) + #{ids\ 639}# + #{labels\ 641}# + #{w\ 632}#) + #{mod\ 634}#))))))) (#{lambda-formals\ 176}# - (lambda (#{orig-args\ 581}#) - (letrec ((#{check\ 583}# - (lambda (#{req\ 584}# #{rest\ 585}#) + (lambda (#{orig-args\ 642}#) + (letrec ((#{check\ 644}# + (lambda (#{req\ 645}# #{rest\ 646}#) (if (#{distinct-bound-ids?\ 157}# - (if #{rest\ 585}# - (cons #{rest\ 585}# #{req\ 584}#) - #{req\ 584}#)) - (values #{req\ 584}# #f #{rest\ 585}# #f) + (if #{rest\ 646}# + (cons #{rest\ 646}# #{req\ 645}#) + #{req\ 645}#)) + (values #{req\ 645}# #f #{rest\ 646}# #f #f) (syntax-violation 'lambda "duplicate identifier in argument list" - #{orig-args\ 581}#)))) - (#{req\ 582}# - (lambda (#{args\ 586}# #{rreq\ 587}#) - ((lambda (#{tmp\ 588}#) - ((lambda (#{tmp\ 589}#) - (if #{tmp\ 589}# + #{orig-args\ 642}#)))) + (#{req\ 643}# + (lambda (#{args\ 647}# #{rreq\ 648}#) + ((lambda (#{tmp\ 649}#) + ((lambda (#{tmp\ 650}#) + (if #{tmp\ 650}# (apply (lambda () - (#{check\ 583}# - (reverse #{rreq\ 587}#) + (#{check\ 644}# + (reverse #{rreq\ 648}#) #f)) - #{tmp\ 589}#) - ((lambda (#{tmp\ 590}#) - (if (if #{tmp\ 590}# - (apply (lambda (#{a\ 591}# - #{b\ 592}#) + #{tmp\ 650}#) + ((lambda (#{tmp\ 651}#) + (if (if #{tmp\ 651}# + (apply (lambda (#{a\ 652}# + #{b\ 653}#) (#{id?\ 131}# - #{a\ 591}#)) - #{tmp\ 590}#) + #{a\ 652}#)) + #{tmp\ 651}#) #f) - (apply (lambda (#{a\ 593}# #{b\ 594}#) - (#{req\ 582}# - #{b\ 594}# - (cons #{a\ 593}# - #{rreq\ 587}#))) - #{tmp\ 590}#) - ((lambda (#{tmp\ 595}#) - (if (if #{tmp\ 595}# - (apply (lambda (#{r\ 596}#) + (apply (lambda (#{a\ 654}# #{b\ 655}#) + (#{req\ 643}# + #{b\ 655}# + (cons #{a\ 654}# + #{rreq\ 648}#))) + #{tmp\ 651}#) + ((lambda (#{tmp\ 656}#) + (if (if #{tmp\ 656}# + (apply (lambda (#{r\ 657}#) (#{id?\ 131}# - #{r\ 596}#)) - #{tmp\ 595}#) + #{r\ 657}#)) + #{tmp\ 656}#) #f) - (apply (lambda (#{r\ 597}#) - (#{check\ 583}# + (apply (lambda (#{r\ 658}#) + (#{check\ 644}# (reverse - #{rreq\ 587}#) - #{r\ 597}#)) - #{tmp\ 595}#) - ((lambda (#{else\ 598}#) + #{rreq\ 648}#) + #{r\ 658}#)) + #{tmp\ 656}#) + ((lambda (#{else\ 659}#) (syntax-violation 'lambda "invalid argument list" - #{orig-args\ 581}# - #{args\ 586}#)) - #{tmp\ 588}#))) - (list #{tmp\ 588}#)))) + #{orig-args\ 642}# + #{args\ 647}#)) + #{tmp\ 649}#))) + (list #{tmp\ 649}#)))) ($sc-dispatch - #{tmp\ 588}# + #{tmp\ 649}# '(any . any))))) - ($sc-dispatch #{tmp\ 588}# (quote ())))) - #{args\ 586}#)))) - (#{req\ 582}# #{orig-args\ 581}# (quote ()))))) + ($sc-dispatch #{tmp\ 649}# (quote ())))) + #{args\ 647}#)))) + (#{req\ 643}# #{orig-args\ 642}# (quote ()))))) (#{ellipsis?\ 175}# - (lambda (#{x\ 599}#) - (if (#{nonsymbol-id?\ 130}# #{x\ 599}#) + (lambda (#{x\ 660}#) + (if (#{nonsymbol-id?\ 130}# #{x\ 660}#) (#{free-id=?\ 154}# - #{x\ 599}# + #{x\ 660}# '#(syntax-object ... ((top) @@ -2314,368 +2538,368 @@ (#{chi-void\ 174}# (lambda () (#{build-void\ 95}# #f))) (#{eval-local-transformer\ 173}# - (lambda (#{expanded\ 600}# #{mod\ 601}#) - (let ((#{p\ 602}# (#{local-eval-hook\ 91}# - #{expanded\ 600}# - #{mod\ 601}#))) - (if (procedure? #{p\ 602}#) - #{p\ 602}# + (lambda (#{expanded\ 661}# #{mod\ 662}#) + (let ((#{p\ 663}# (#{local-eval-hook\ 91}# + #{expanded\ 661}# + #{mod\ 662}#))) + (if (procedure? #{p\ 663}#) + #{p\ 663}# (syntax-violation #f "nonprocedure transformer" - #{p\ 602}#))))) + #{p\ 663}#))))) (#{chi-local-syntax\ 172}# - (lambda (#{rec?\ 603}# - #{e\ 604}# - #{r\ 605}# - #{w\ 606}# - #{s\ 607}# - #{mod\ 608}# - #{k\ 609}#) - ((lambda (#{tmp\ 610}#) - ((lambda (#{tmp\ 611}#) - (if #{tmp\ 611}# - (apply (lambda (#{_\ 612}# - #{id\ 613}# - #{val\ 614}# - #{e1\ 615}# - #{e2\ 616}#) - (let ((#{ids\ 617}# #{id\ 613}#)) + (lambda (#{rec?\ 664}# + #{e\ 665}# + #{r\ 666}# + #{w\ 667}# + #{s\ 668}# + #{mod\ 669}# + #{k\ 670}#) + ((lambda (#{tmp\ 671}#) + ((lambda (#{tmp\ 672}#) + (if #{tmp\ 672}# + (apply (lambda (#{_\ 673}# + #{id\ 674}# + #{val\ 675}# + #{e1\ 676}# + #{e2\ 677}#) + (let ((#{ids\ 678}# #{id\ 674}#)) (if (not (#{valid-bound-ids?\ 156}# - #{ids\ 617}#)) + #{ids\ 678}#)) (syntax-violation #f "duplicate bound keyword" - #{e\ 604}#) - (let ((#{labels\ 619}# + #{e\ 665}#) + (let ((#{labels\ 680}# (#{gen-labels\ 137}# - #{ids\ 617}#))) - (let ((#{new-w\ 620}# + #{ids\ 678}#))) + (let ((#{new-w\ 681}# (#{make-binding-wrap\ 148}# - #{ids\ 617}# - #{labels\ 619}# - #{w\ 606}#))) - (#{k\ 609}# (cons #{e1\ 615}# - #{e2\ 616}#) + #{ids\ 678}# + #{labels\ 680}# + #{w\ 667}#))) + (#{k\ 670}# (cons #{e1\ 676}# + #{e2\ 677}#) (#{extend-env\ 125}# - #{labels\ 619}# - (let ((#{w\ 622}# (if #{rec?\ 603}# - #{new-w\ 620}# - #{w\ 606}#)) - (#{trans-r\ 623}# + #{labels\ 680}# + (let ((#{w\ 683}# (if #{rec?\ 664}# + #{new-w\ 681}# + #{w\ 667}#)) + (#{trans-r\ 684}# (#{macros-only-env\ 127}# - #{r\ 605}#))) - (map (lambda (#{x\ 624}#) + #{r\ 666}#))) + (map (lambda (#{x\ 685}#) (cons 'macro (#{eval-local-transformer\ 173}# (#{chi\ 167}# - #{x\ 624}# - #{trans-r\ 623}# - #{w\ 622}# - #{mod\ 608}#) - #{mod\ 608}#))) - #{val\ 614}#)) - #{r\ 605}#) - #{new-w\ 620}# - #{s\ 607}# - #{mod\ 608}#)))))) - #{tmp\ 611}#) - ((lambda (#{_\ 626}#) + #{x\ 685}# + #{trans-r\ 684}# + #{w\ 683}# + #{mod\ 669}#) + #{mod\ 669}#))) + #{val\ 675}#)) + #{r\ 666}#) + #{new-w\ 681}# + #{s\ 668}# + #{mod\ 669}#)))))) + #{tmp\ 672}#) + ((lambda (#{_\ 687}#) (syntax-violation #f "bad local syntax definition" (#{source-wrap\ 160}# - #{e\ 604}# - #{w\ 606}# - #{s\ 607}# - #{mod\ 608}#))) - #{tmp\ 610}#))) + #{e\ 665}# + #{w\ 667}# + #{s\ 668}# + #{mod\ 669}#))) + #{tmp\ 671}#))) ($sc-dispatch - #{tmp\ 610}# + #{tmp\ 671}# '(any #(each (any any)) any . each-any)))) - #{e\ 604}#))) + #{e\ 665}#))) (#{chi-body\ 171}# - (lambda (#{body\ 627}# - #{outer-form\ 628}# - #{r\ 629}# - #{w\ 630}# - #{mod\ 631}#) - (let ((#{r\ 632}# (cons '("placeholder" placeholder) - #{r\ 629}#))) - (let ((#{ribcage\ 633}# + (lambda (#{body\ 688}# + #{outer-form\ 689}# + #{r\ 690}# + #{w\ 691}# + #{mod\ 692}#) + (let ((#{r\ 693}# (cons '("placeholder" placeholder) + #{r\ 690}#))) + (let ((#{ribcage\ 694}# (#{make-ribcage\ 138}# '() '() '()))) - (let ((#{w\ 634}# (#{make-wrap\ 133}# - (#{wrap-marks\ 134}# #{w\ 630}#) - (cons #{ribcage\ 633}# + (let ((#{w\ 695}# (#{make-wrap\ 133}# + (#{wrap-marks\ 134}# #{w\ 691}#) + (cons #{ribcage\ 694}# (#{wrap-subst\ 135}# - #{w\ 630}#))))) - (letrec ((#{parse\ 635}# - (lambda (#{body\ 636}# - #{ids\ 637}# - #{labels\ 638}# - #{var-ids\ 639}# - #{vars\ 640}# - #{vals\ 641}# - #{bindings\ 642}#) - (if (null? #{body\ 636}#) + #{w\ 691}#))))) + (letrec ((#{parse\ 696}# + (lambda (#{body\ 697}# + #{ids\ 698}# + #{labels\ 699}# + #{var-ids\ 700}# + #{vars\ 701}# + #{vals\ 702}# + #{bindings\ 703}#) + (if (null? #{body\ 697}#) (syntax-violation #f "no expressions in body" - #{outer-form\ 628}#) - (let ((#{e\ 644}# (cdar #{body\ 636}#)) - (#{er\ 645}# (caar #{body\ 636}#))) + #{outer-form\ 689}#) + (let ((#{e\ 705}# (cdar #{body\ 697}#)) + (#{er\ 706}# (caar #{body\ 697}#))) (call-with-values (lambda () (#{syntax-type\ 165}# - #{e\ 644}# - #{er\ 645}# + #{e\ 705}# + #{er\ 706}# '(()) (#{source-annotation\ 122}# - #{er\ 645}#) - #{ribcage\ 633}# - #{mod\ 631}# + #{er\ 706}#) + #{ribcage\ 694}# + #{mod\ 692}# #f)) - (lambda (#{type\ 646}# - #{value\ 647}# - #{e\ 648}# - #{w\ 649}# - #{s\ 650}# - #{mod\ 651}#) - (if (memv #{type\ 646}# + (lambda (#{type\ 707}# + #{value\ 708}# + #{e\ 709}# + #{w\ 710}# + #{s\ 711}# + #{mod\ 712}#) + (if (memv #{type\ 707}# '(define-form)) - (let ((#{id\ 652}# + (let ((#{id\ 713}# (#{wrap\ 159}# - #{value\ 647}# - #{w\ 649}# - #{mod\ 651}#)) - (#{label\ 653}# + #{value\ 708}# + #{w\ 710}# + #{mod\ 712}#)) + (#{label\ 714}# (#{gen-label\ 136}#))) - (let ((#{var\ 654}# + (let ((#{var\ 715}# (#{gen-var\ 181}# - #{id\ 652}#))) + #{id\ 713}#))) (begin (#{extend-ribcage!\ 147}# - #{ribcage\ 633}# - #{id\ 652}# - #{label\ 653}#) - (#{parse\ 635}# - (cdr #{body\ 636}#) - (cons #{id\ 652}# - #{ids\ 637}#) - (cons #{label\ 653}# - #{labels\ 638}#) - (cons #{id\ 652}# - #{var-ids\ 639}#) - (cons #{var\ 654}# - #{vars\ 640}#) - (cons (cons #{er\ 645}# + #{ribcage\ 694}# + #{id\ 713}# + #{label\ 714}#) + (#{parse\ 696}# + (cdr #{body\ 697}#) + (cons #{id\ 713}# + #{ids\ 698}#) + (cons #{label\ 714}# + #{labels\ 699}#) + (cons #{id\ 713}# + #{var-ids\ 700}#) + (cons #{var\ 715}# + #{vars\ 701}#) + (cons (cons #{er\ 706}# (#{wrap\ 159}# - #{e\ 648}# - #{w\ 649}# - #{mod\ 651}#)) - #{vals\ 641}#) + #{e\ 709}# + #{w\ 710}# + #{mod\ 712}#)) + #{vals\ 702}#) (cons (cons 'lexical - #{var\ 654}#) - #{bindings\ 642}#))))) - (if (memv #{type\ 646}# + #{var\ 715}#) + #{bindings\ 703}#))))) + (if (memv #{type\ 707}# '(define-syntax-form)) - (let ((#{id\ 655}# + (let ((#{id\ 716}# (#{wrap\ 159}# - #{value\ 647}# - #{w\ 649}# - #{mod\ 651}#)) - (#{label\ 656}# + #{value\ 708}# + #{w\ 710}# + #{mod\ 712}#)) + (#{label\ 717}# (#{gen-label\ 136}#))) (begin (#{extend-ribcage!\ 147}# - #{ribcage\ 633}# - #{id\ 655}# - #{label\ 656}#) - (#{parse\ 635}# - (cdr #{body\ 636}#) - (cons #{id\ 655}# - #{ids\ 637}#) - (cons #{label\ 656}# - #{labels\ 638}#) - #{var-ids\ 639}# - #{vars\ 640}# - #{vals\ 641}# + #{ribcage\ 694}# + #{id\ 716}# + #{label\ 717}#) + (#{parse\ 696}# + (cdr #{body\ 697}#) + (cons #{id\ 716}# + #{ids\ 698}#) + (cons #{label\ 717}# + #{labels\ 699}#) + #{var-ids\ 700}# + #{vars\ 701}# + #{vals\ 702}# (cons (cons 'macro - (cons #{er\ 645}# + (cons #{er\ 706}# (#{wrap\ 159}# - #{e\ 648}# - #{w\ 649}# - #{mod\ 651}#))) - #{bindings\ 642}#)))) - (if (memv #{type\ 646}# + #{e\ 709}# + #{w\ 710}# + #{mod\ 712}#))) + #{bindings\ 703}#)))) + (if (memv #{type\ 707}# '(begin-form)) - ((lambda (#{tmp\ 657}#) - ((lambda (#{tmp\ 658}#) - (if #{tmp\ 658}# - (apply (lambda (#{_\ 659}# - #{e1\ 660}#) - (#{parse\ 635}# - (letrec ((#{f\ 661}# (lambda (#{forms\ 662}#) - (if (null? #{forms\ 662}#) - (cdr #{body\ 636}#) - (cons (cons #{er\ 645}# + ((lambda (#{tmp\ 718}#) + ((lambda (#{tmp\ 719}#) + (if #{tmp\ 719}# + (apply (lambda (#{_\ 720}# + #{e1\ 721}#) + (#{parse\ 696}# + (letrec ((#{f\ 722}# (lambda (#{forms\ 723}#) + (if (null? #{forms\ 723}#) + (cdr #{body\ 697}#) + (cons (cons #{er\ 706}# (#{wrap\ 159}# - (car #{forms\ 662}#) - #{w\ 649}# - #{mod\ 651}#)) - (#{f\ 661}# (cdr #{forms\ 662}#))))))) - (#{f\ 661}# #{e1\ 660}#)) - #{ids\ 637}# - #{labels\ 638}# - #{var-ids\ 639}# - #{vars\ 640}# - #{vals\ 641}# - #{bindings\ 642}#)) - #{tmp\ 658}#) + (car #{forms\ 723}#) + #{w\ 710}# + #{mod\ 712}#)) + (#{f\ 722}# (cdr #{forms\ 723}#))))))) + (#{f\ 722}# #{e1\ 721}#)) + #{ids\ 698}# + #{labels\ 699}# + #{var-ids\ 700}# + #{vars\ 701}# + #{vals\ 702}# + #{bindings\ 703}#)) + #{tmp\ 719}#) (syntax-violation #f "source expression failed to match any pattern" - #{tmp\ 657}#))) + #{tmp\ 718}#))) ($sc-dispatch - #{tmp\ 657}# + #{tmp\ 718}# '(any . each-any)))) - #{e\ 648}#) - (if (memv #{type\ 646}# + #{e\ 709}#) + (if (memv #{type\ 707}# '(local-syntax-form)) (#{chi-local-syntax\ 172}# - #{value\ 647}# - #{e\ 648}# - #{er\ 645}# - #{w\ 649}# - #{s\ 650}# - #{mod\ 651}# - (lambda (#{forms\ 664}# - #{er\ 665}# - #{w\ 666}# - #{s\ 667}# - #{mod\ 668}#) - (#{parse\ 635}# - (letrec ((#{f\ 669}# (lambda (#{forms\ 670}#) - (if (null? #{forms\ 670}#) - (cdr #{body\ 636}#) - (cons (cons #{er\ 665}# + #{value\ 708}# + #{e\ 709}# + #{er\ 706}# + #{w\ 710}# + #{s\ 711}# + #{mod\ 712}# + (lambda (#{forms\ 725}# + #{er\ 726}# + #{w\ 727}# + #{s\ 728}# + #{mod\ 729}#) + (#{parse\ 696}# + (letrec ((#{f\ 730}# (lambda (#{forms\ 731}#) + (if (null? #{forms\ 731}#) + (cdr #{body\ 697}#) + (cons (cons #{er\ 726}# (#{wrap\ 159}# - (car #{forms\ 670}#) - #{w\ 666}# - #{mod\ 668}#)) - (#{f\ 669}# (cdr #{forms\ 670}#))))))) - (#{f\ 669}# #{forms\ 664}#)) - #{ids\ 637}# - #{labels\ 638}# - #{var-ids\ 639}# - #{vars\ 640}# - #{vals\ 641}# - #{bindings\ 642}#))) - (if (null? #{ids\ 637}#) + (car #{forms\ 731}#) + #{w\ 727}# + #{mod\ 729}#)) + (#{f\ 730}# (cdr #{forms\ 731}#))))))) + (#{f\ 730}# #{forms\ 725}#)) + #{ids\ 698}# + #{labels\ 699}# + #{var-ids\ 700}# + #{vars\ 701}# + #{vals\ 702}# + #{bindings\ 703}#))) + (if (null? #{ids\ 698}#) (#{build-sequence\ 110}# #f - (map (lambda (#{x\ 671}#) + (map (lambda (#{x\ 732}#) (#{chi\ 167}# - (cdr #{x\ 671}#) - (car #{x\ 671}#) + (cdr #{x\ 732}#) + (car #{x\ 732}#) '(()) - #{mod\ 651}#)) - (cons (cons #{er\ 645}# + #{mod\ 712}#)) + (cons (cons #{er\ 706}# (#{source-wrap\ 160}# - #{e\ 648}# - #{w\ 649}# - #{s\ 650}# - #{mod\ 651}#)) - (cdr #{body\ 636}#)))) + #{e\ 709}# + #{w\ 710}# + #{s\ 711}# + #{mod\ 712}#)) + (cdr #{body\ 697}#)))) (begin (if (not (#{valid-bound-ids?\ 156}# - #{ids\ 637}#)) + #{ids\ 698}#)) (syntax-violation #f "invalid or duplicate identifier in definition" - #{outer-form\ 628}#)) - (letrec ((#{loop\ 672}# - (lambda (#{bs\ 673}# - #{er-cache\ 674}# - #{r-cache\ 675}#) - (if (not (null? #{bs\ 673}#)) - (let ((#{b\ 676}# (car #{bs\ 673}#))) - (if (eq? (car #{b\ 676}#) + #{outer-form\ 689}#)) + (letrec ((#{loop\ 733}# + (lambda (#{bs\ 734}# + #{er-cache\ 735}# + #{r-cache\ 736}#) + (if (not (null? #{bs\ 734}#)) + (let ((#{b\ 737}# (car #{bs\ 734}#))) + (if (eq? (car #{b\ 737}#) 'macro) - (let ((#{er\ 677}# - (cadr #{b\ 676}#))) - (let ((#{r-cache\ 678}# - (if (eq? #{er\ 677}# - #{er-cache\ 674}#) - #{r-cache\ 675}# + (let ((#{er\ 738}# + (cadr #{b\ 737}#))) + (let ((#{r-cache\ 739}# + (if (eq? #{er\ 738}# + #{er-cache\ 735}#) + #{r-cache\ 736}# (#{macros-only-env\ 127}# - #{er\ 677}#)))) + #{er\ 738}#)))) (begin (set-cdr! - #{b\ 676}# + #{b\ 737}# (#{eval-local-transformer\ 173}# (#{chi\ 167}# - (cddr #{b\ 676}#) - #{r-cache\ 678}# + (cddr #{b\ 737}#) + #{r-cache\ 739}# '(()) - #{mod\ 651}#) - #{mod\ 651}#)) - (#{loop\ 672}# - (cdr #{bs\ 673}#) - #{er\ 677}# - #{r-cache\ 678}#)))) - (#{loop\ 672}# - (cdr #{bs\ 673}#) - #{er-cache\ 674}# - #{r-cache\ 675}#))))))) - (#{loop\ 672}# - #{bindings\ 642}# + #{mod\ 712}#) + #{mod\ 712}#)) + (#{loop\ 733}# + (cdr #{bs\ 734}#) + #{er\ 738}# + #{r-cache\ 739}#)))) + (#{loop\ 733}# + (cdr #{bs\ 734}#) + #{er-cache\ 735}# + #{r-cache\ 736}#))))))) + (#{loop\ 733}# + #{bindings\ 703}# #f #f)) (set-cdr! - #{r\ 632}# + #{r\ 693}# (#{extend-env\ 125}# - #{labels\ 638}# - #{bindings\ 642}# - (cdr #{r\ 632}#))) + #{labels\ 699}# + #{bindings\ 703}# + (cdr #{r\ 693}#))) (#{build-letrec\ 113}# #f (map syntax->datum - #{var-ids\ 639}#) - #{vars\ 640}# - (map (lambda (#{x\ 679}#) + #{var-ids\ 700}#) + #{vars\ 701}# + (map (lambda (#{x\ 740}#) (#{chi\ 167}# - (cdr #{x\ 679}#) - (car #{x\ 679}#) + (cdr #{x\ 740}#) + (car #{x\ 740}#) '(()) - #{mod\ 651}#)) - #{vals\ 641}#) + #{mod\ 712}#)) + #{vals\ 702}#) (#{build-sequence\ 110}# #f - (map (lambda (#{x\ 680}#) + (map (lambda (#{x\ 741}#) (#{chi\ 167}# - (cdr #{x\ 680}#) - (car #{x\ 680}#) + (cdr #{x\ 741}#) + (car #{x\ 741}#) '(()) - #{mod\ 651}#)) - (cons (cons #{er\ 645}# + #{mod\ 712}#)) + (cons (cons #{er\ 706}# (#{source-wrap\ 160}# - #{e\ 648}# - #{w\ 649}# - #{s\ 650}# - #{mod\ 651}#)) - (cdr #{body\ 636}#)))))))))))))))))) - (#{parse\ 635}# - (map (lambda (#{x\ 643}#) - (cons #{r\ 632}# + #{e\ 709}# + #{w\ 710}# + #{s\ 711}# + #{mod\ 712}#)) + (cdr #{body\ 697}#)))))))))))))))))) + (#{parse\ 696}# + (map (lambda (#{x\ 704}#) + (cons #{r\ 693}# (#{wrap\ 159}# - #{x\ 643}# - #{w\ 634}# - #{mod\ 631}#))) - #{body\ 627}#) + #{x\ 704}# + #{w\ 695}# + #{mod\ 692}#))) + #{body\ 688}#) '() '() '() @@ -2683,850 +2907,850 @@ '() '()))))))) (#{chi-macro\ 170}# - (lambda (#{p\ 681}# - #{e\ 682}# - #{r\ 683}# - #{w\ 684}# - #{rib\ 685}# - #{mod\ 686}#) - (letrec ((#{rebuild-macro-output\ 687}# - (lambda (#{x\ 688}# #{m\ 689}#) - (if (pair? #{x\ 688}#) - (cons (#{rebuild-macro-output\ 687}# - (car #{x\ 688}#) - #{m\ 689}#) - (#{rebuild-macro-output\ 687}# - (cdr #{x\ 688}#) - #{m\ 689}#)) - (if (#{syntax-object?\ 115}# #{x\ 688}#) - (let ((#{w\ 690}# (#{syntax-object-wrap\ 117}# - #{x\ 688}#))) - (let ((#{ms\ 691}# - (#{wrap-marks\ 134}# #{w\ 690}#)) - (#{s\ 692}# (#{wrap-subst\ 135}# - #{w\ 690}#))) - (if (if (pair? #{ms\ 691}#) - (eq? (car #{ms\ 691}#) #f) + (lambda (#{p\ 742}# + #{e\ 743}# + #{r\ 744}# + #{w\ 745}# + #{rib\ 746}# + #{mod\ 747}#) + (letrec ((#{rebuild-macro-output\ 748}# + (lambda (#{x\ 749}# #{m\ 750}#) + (if (pair? #{x\ 749}#) + (cons (#{rebuild-macro-output\ 748}# + (car #{x\ 749}#) + #{m\ 750}#) + (#{rebuild-macro-output\ 748}# + (cdr #{x\ 749}#) + #{m\ 750}#)) + (if (#{syntax-object?\ 115}# #{x\ 749}#) + (let ((#{w\ 751}# (#{syntax-object-wrap\ 117}# + #{x\ 749}#))) + (let ((#{ms\ 752}# + (#{wrap-marks\ 134}# #{w\ 751}#)) + (#{s\ 753}# (#{wrap-subst\ 135}# + #{w\ 751}#))) + (if (if (pair? #{ms\ 752}#) + (eq? (car #{ms\ 752}#) #f) #f) (#{make-syntax-object\ 114}# (#{syntax-object-expression\ 116}# - #{x\ 688}#) + #{x\ 749}#) (#{make-wrap\ 133}# - (cdr #{ms\ 691}#) - (if #{rib\ 685}# - (cons #{rib\ 685}# - (cdr #{s\ 692}#)) - (cdr #{s\ 692}#))) + (cdr #{ms\ 752}#) + (if #{rib\ 746}# + (cons #{rib\ 746}# + (cdr #{s\ 753}#)) + (cdr #{s\ 753}#))) (#{syntax-object-module\ 118}# - #{x\ 688}#)) + #{x\ 749}#)) (#{make-syntax-object\ 114}# (#{syntax-object-expression\ 116}# - #{x\ 688}#) + #{x\ 749}#) (#{make-wrap\ 133}# - (cons #{m\ 689}# #{ms\ 691}#) - (if #{rib\ 685}# - (cons #{rib\ 685}# + (cons #{m\ 750}# #{ms\ 752}#) + (if #{rib\ 746}# + (cons #{rib\ 746}# (cons 'shift - #{s\ 692}#)) - (cons (quote shift) #{s\ 692}#))) - (let ((#{pmod\ 693}# - (procedure-module #{p\ 681}#))) - (if #{pmod\ 693}# + #{s\ 753}#)) + (cons (quote shift) #{s\ 753}#))) + (let ((#{pmod\ 754}# + (procedure-module #{p\ 742}#))) + (if #{pmod\ 754}# (cons 'hygiene - (module-name #{pmod\ 693}#)) + (module-name #{pmod\ 754}#)) '(hygiene guile))))))) - (if (vector? #{x\ 688}#) - (let ((#{n\ 694}# (vector-length - #{x\ 688}#))) - (let ((#{v\ 695}# (make-vector - #{n\ 694}#))) - (letrec ((#{loop\ 696}# - (lambda (#{i\ 697}#) + (if (vector? #{x\ 749}#) + (let ((#{n\ 755}# (vector-length + #{x\ 749}#))) + (let ((#{v\ 756}# (make-vector + #{n\ 755}#))) + (letrec ((#{loop\ 757}# + (lambda (#{i\ 758}#) (if (#{fx=\ 88}# - #{i\ 697}# - #{n\ 694}#) + #{i\ 758}# + #{n\ 755}#) (begin (if #f #f) - #{v\ 695}#) + #{v\ 756}#) (begin (vector-set! - #{v\ 695}# - #{i\ 697}# - (#{rebuild-macro-output\ 687}# + #{v\ 756}# + #{i\ 758}# + (#{rebuild-macro-output\ 748}# (vector-ref - #{x\ 688}# - #{i\ 697}#) - #{m\ 689}#)) - (#{loop\ 696}# + #{x\ 749}# + #{i\ 758}#) + #{m\ 750}#)) + (#{loop\ 757}# (#{fx+\ 86}# - #{i\ 697}# + #{i\ 758}# 1))))))) - (#{loop\ 696}# 0)))) - (if (symbol? #{x\ 688}#) + (#{loop\ 757}# 0)))) + (if (symbol? #{x\ 749}#) (syntax-violation #f "encountered raw symbol in macro output" (#{source-wrap\ 160}# - #{e\ 682}# - #{w\ 684}# - (#{wrap-subst\ 135}# #{w\ 684}#) - #{mod\ 686}#) - #{x\ 688}#) - #{x\ 688}#))))))) - (#{rebuild-macro-output\ 687}# - (#{p\ 681}# (#{wrap\ 159}# - #{e\ 682}# - (#{anti-mark\ 146}# #{w\ 684}#) - #{mod\ 686}#)) + #{e\ 743}# + #{w\ 745}# + (#{wrap-subst\ 135}# #{w\ 745}#) + #{mod\ 747}#) + #{x\ 749}#) + #{x\ 749}#))))))) + (#{rebuild-macro-output\ 748}# + (#{p\ 742}# (#{wrap\ 159}# + #{e\ 743}# + (#{anti-mark\ 146}# #{w\ 745}#) + #{mod\ 747}#)) (string #\m))))) (#{chi-application\ 169}# - (lambda (#{x\ 698}# - #{e\ 699}# - #{r\ 700}# - #{w\ 701}# - #{s\ 702}# - #{mod\ 703}#) - ((lambda (#{tmp\ 704}#) - ((lambda (#{tmp\ 705}#) - (if #{tmp\ 705}# - (apply (lambda (#{e0\ 706}# #{e1\ 707}#) + (lambda (#{x\ 759}# + #{e\ 760}# + #{r\ 761}# + #{w\ 762}# + #{s\ 763}# + #{mod\ 764}#) + ((lambda (#{tmp\ 765}#) + ((lambda (#{tmp\ 766}#) + (if #{tmp\ 766}# + (apply (lambda (#{e0\ 767}# #{e1\ 768}#) (#{build-application\ 96}# - #{s\ 702}# - #{x\ 698}# - (map (lambda (#{e\ 708}#) + #{s\ 763}# + #{x\ 759}# + (map (lambda (#{e\ 769}#) (#{chi\ 167}# - #{e\ 708}# - #{r\ 700}# - #{w\ 701}# - #{mod\ 703}#)) - #{e1\ 707}#))) - #{tmp\ 705}#) + #{e\ 769}# + #{r\ 761}# + #{w\ 762}# + #{mod\ 764}#)) + #{e1\ 768}#))) + #{tmp\ 766}#) (syntax-violation #f "source expression failed to match any pattern" - #{tmp\ 704}#))) + #{tmp\ 765}#))) ($sc-dispatch - #{tmp\ 704}# + #{tmp\ 765}# '(any . each-any)))) - #{e\ 699}#))) + #{e\ 760}#))) (#{chi-expr\ 168}# - (lambda (#{type\ 710}# - #{value\ 711}# - #{e\ 712}# - #{r\ 713}# - #{w\ 714}# - #{s\ 715}# - #{mod\ 716}#) - (if (memv #{type\ 710}# (quote (lexical))) + (lambda (#{type\ 771}# + #{value\ 772}# + #{e\ 773}# + #{r\ 774}# + #{w\ 775}# + #{s\ 776}# + #{mod\ 777}#) + (if (memv #{type\ 771}# (quote (lexical))) (#{build-lexical-reference\ 98}# 'value - #{s\ 715}# - #{e\ 712}# - #{value\ 711}#) - (if (memv #{type\ 710}# (quote (core core-form))) - (#{value\ 711}# - #{e\ 712}# - #{r\ 713}# - #{w\ 714}# - #{s\ 715}# - #{mod\ 716}#) - (if (memv #{type\ 710}# (quote (module-ref))) + #{s\ 776}# + #{e\ 773}# + #{value\ 772}#) + (if (memv #{type\ 771}# (quote (core core-form))) + (#{value\ 772}# + #{e\ 773}# + #{r\ 774}# + #{w\ 775}# + #{s\ 776}# + #{mod\ 777}#) + (if (memv #{type\ 771}# (quote (module-ref))) (call-with-values - (lambda () (#{value\ 711}# #{e\ 712}#)) - (lambda (#{id\ 717}# #{mod\ 718}#) + (lambda () (#{value\ 772}# #{e\ 773}#)) + (lambda (#{id\ 778}# #{mod\ 779}#) (#{build-global-reference\ 101}# - #{s\ 715}# - #{id\ 717}# - #{mod\ 718}#))) - (if (memv #{type\ 710}# (quote (lexical-call))) + #{s\ 776}# + #{id\ 778}# + #{mod\ 779}#))) + (if (memv #{type\ 771}# (quote (lexical-call))) (#{chi-application\ 169}# (#{build-lexical-reference\ 98}# 'fun - (#{source-annotation\ 122}# (car #{e\ 712}#)) - (car #{e\ 712}#) - #{value\ 711}#) - #{e\ 712}# - #{r\ 713}# - #{w\ 714}# - #{s\ 715}# - #{mod\ 716}#) - (if (memv #{type\ 710}# (quote (global-call))) + (#{source-annotation\ 122}# (car #{e\ 773}#)) + (car #{e\ 773}#) + #{value\ 772}#) + #{e\ 773}# + #{r\ 774}# + #{w\ 775}# + #{s\ 776}# + #{mod\ 777}#) + (if (memv #{type\ 771}# (quote (global-call))) (#{chi-application\ 169}# (#{build-global-reference\ 101}# - (#{source-annotation\ 122}# (car #{e\ 712}#)) - (if (#{syntax-object?\ 115}# #{value\ 711}#) + (#{source-annotation\ 122}# (car #{e\ 773}#)) + (if (#{syntax-object?\ 115}# #{value\ 772}#) (#{syntax-object-expression\ 116}# - #{value\ 711}#) - #{value\ 711}#) - (if (#{syntax-object?\ 115}# #{value\ 711}#) - (#{syntax-object-module\ 118}# #{value\ 711}#) - #{mod\ 716}#)) - #{e\ 712}# - #{r\ 713}# - #{w\ 714}# - #{s\ 715}# - #{mod\ 716}#) - (if (memv #{type\ 710}# (quote (constant))) + #{value\ 772}#) + #{value\ 772}#) + (if (#{syntax-object?\ 115}# #{value\ 772}#) + (#{syntax-object-module\ 118}# #{value\ 772}#) + #{mod\ 777}#)) + #{e\ 773}# + #{r\ 774}# + #{w\ 775}# + #{s\ 776}# + #{mod\ 777}#) + (if (memv #{type\ 771}# (quote (constant))) (#{build-data\ 109}# - #{s\ 715}# + #{s\ 776}# (#{strip\ 180}# (#{source-wrap\ 160}# - #{e\ 712}# - #{w\ 714}# - #{s\ 715}# - #{mod\ 716}#) + #{e\ 773}# + #{w\ 775}# + #{s\ 776}# + #{mod\ 777}#) '(()))) - (if (memv #{type\ 710}# (quote (global))) + (if (memv #{type\ 771}# (quote (global))) (#{build-global-reference\ 101}# - #{s\ 715}# - #{value\ 711}# - #{mod\ 716}#) - (if (memv #{type\ 710}# (quote (call))) + #{s\ 776}# + #{value\ 772}# + #{mod\ 777}#) + (if (memv #{type\ 771}# (quote (call))) (#{chi-application\ 169}# (#{chi\ 167}# - (car #{e\ 712}#) - #{r\ 713}# - #{w\ 714}# - #{mod\ 716}#) - #{e\ 712}# - #{r\ 713}# - #{w\ 714}# - #{s\ 715}# - #{mod\ 716}#) - (if (memv #{type\ 710}# (quote (begin-form))) - ((lambda (#{tmp\ 719}#) - ((lambda (#{tmp\ 720}#) - (if #{tmp\ 720}# - (apply (lambda (#{_\ 721}# - #{e1\ 722}# - #{e2\ 723}#) + (car #{e\ 773}#) + #{r\ 774}# + #{w\ 775}# + #{mod\ 777}#) + #{e\ 773}# + #{r\ 774}# + #{w\ 775}# + #{s\ 776}# + #{mod\ 777}#) + (if (memv #{type\ 771}# (quote (begin-form))) + ((lambda (#{tmp\ 780}#) + ((lambda (#{tmp\ 781}#) + (if #{tmp\ 781}# + (apply (lambda (#{_\ 782}# + #{e1\ 783}# + #{e2\ 784}#) (#{chi-sequence\ 161}# - (cons #{e1\ 722}# - #{e2\ 723}#) - #{r\ 713}# - #{w\ 714}# - #{s\ 715}# - #{mod\ 716}#)) - #{tmp\ 720}#) + (cons #{e1\ 783}# + #{e2\ 784}#) + #{r\ 774}# + #{w\ 775}# + #{s\ 776}# + #{mod\ 777}#)) + #{tmp\ 781}#) (syntax-violation #f "source expression failed to match any pattern" - #{tmp\ 719}#))) + #{tmp\ 780}#))) ($sc-dispatch - #{tmp\ 719}# + #{tmp\ 780}# '(any any . each-any)))) - #{e\ 712}#) - (if (memv #{type\ 710}# + #{e\ 773}#) + (if (memv #{type\ 771}# '(local-syntax-form)) (#{chi-local-syntax\ 172}# - #{value\ 711}# - #{e\ 712}# - #{r\ 713}# - #{w\ 714}# - #{s\ 715}# - #{mod\ 716}# + #{value\ 772}# + #{e\ 773}# + #{r\ 774}# + #{w\ 775}# + #{s\ 776}# + #{mod\ 777}# #{chi-sequence\ 161}#) - (if (memv #{type\ 710}# + (if (memv #{type\ 771}# '(eval-when-form)) - ((lambda (#{tmp\ 725}#) - ((lambda (#{tmp\ 726}#) - (if #{tmp\ 726}# - (apply (lambda (#{_\ 727}# - #{x\ 728}# - #{e1\ 729}# - #{e2\ 730}#) - (let ((#{when-list\ 731}# + ((lambda (#{tmp\ 786}#) + ((lambda (#{tmp\ 787}#) + (if #{tmp\ 787}# + (apply (lambda (#{_\ 788}# + #{x\ 789}# + #{e1\ 790}# + #{e2\ 791}#) + (let ((#{when-list\ 792}# (#{chi-when-list\ 164}# - #{e\ 712}# - #{x\ 728}# - #{w\ 714}#))) + #{e\ 773}# + #{x\ 789}# + #{w\ 775}#))) (if (memq 'eval - #{when-list\ 731}#) + #{when-list\ 792}#) (#{chi-sequence\ 161}# - (cons #{e1\ 729}# - #{e2\ 730}#) - #{r\ 713}# - #{w\ 714}# - #{s\ 715}# - #{mod\ 716}#) + (cons #{e1\ 790}# + #{e2\ 791}#) + #{r\ 774}# + #{w\ 775}# + #{s\ 776}# + #{mod\ 777}#) (#{chi-void\ 174}#)))) - #{tmp\ 726}#) + #{tmp\ 787}#) (syntax-violation #f "source expression failed to match any pattern" - #{tmp\ 725}#))) + #{tmp\ 786}#))) ($sc-dispatch - #{tmp\ 725}# + #{tmp\ 786}# '(any each-any any . each-any)))) - #{e\ 712}#) - (if (memv #{type\ 710}# + #{e\ 773}#) + (if (memv #{type\ 771}# '(define-form define-syntax-form)) (syntax-violation #f "definition in expression context" - #{e\ 712}# + #{e\ 773}# (#{wrap\ 159}# - #{value\ 711}# - #{w\ 714}# - #{mod\ 716}#)) - (if (memv #{type\ 710}# + #{value\ 772}# + #{w\ 775}# + #{mod\ 777}#)) + (if (memv #{type\ 771}# '(syntax)) (syntax-violation #f "reference to pattern variable outside syntax form" (#{source-wrap\ 160}# - #{e\ 712}# - #{w\ 714}# - #{s\ 715}# - #{mod\ 716}#)) - (if (memv #{type\ 710}# + #{e\ 773}# + #{w\ 775}# + #{s\ 776}# + #{mod\ 777}#)) + (if (memv #{type\ 771}# '(displaced-lexical)) (syntax-violation #f "reference to identifier outside its scope" (#{source-wrap\ 160}# - #{e\ 712}# - #{w\ 714}# - #{s\ 715}# - #{mod\ 716}#)) + #{e\ 773}# + #{w\ 775}# + #{s\ 776}# + #{mod\ 777}#)) (syntax-violation #f "unexpected syntax" (#{source-wrap\ 160}# - #{e\ 712}# - #{w\ 714}# - #{s\ 715}# - #{mod\ 716}#)))))))))))))))))) + #{e\ 773}# + #{w\ 775}# + #{s\ 776}# + #{mod\ 777}#)))))))))))))))))) (#{chi\ 167}# - (lambda (#{e\ 734}# #{r\ 735}# #{w\ 736}# #{mod\ 737}#) + (lambda (#{e\ 795}# #{r\ 796}# #{w\ 797}# #{mod\ 798}#) (call-with-values (lambda () (#{syntax-type\ 165}# - #{e\ 734}# - #{r\ 735}# - #{w\ 736}# - (#{source-annotation\ 122}# #{e\ 734}#) + #{e\ 795}# + #{r\ 796}# + #{w\ 797}# + (#{source-annotation\ 122}# #{e\ 795}#) #f - #{mod\ 737}# + #{mod\ 798}# #f)) - (lambda (#{type\ 738}# - #{value\ 739}# - #{e\ 740}# - #{w\ 741}# - #{s\ 742}# - #{mod\ 743}#) + (lambda (#{type\ 799}# + #{value\ 800}# + #{e\ 801}# + #{w\ 802}# + #{s\ 803}# + #{mod\ 804}#) (#{chi-expr\ 168}# - #{type\ 738}# - #{value\ 739}# - #{e\ 740}# - #{r\ 735}# - #{w\ 741}# - #{s\ 742}# - #{mod\ 743}#))))) + #{type\ 799}# + #{value\ 800}# + #{e\ 801}# + #{r\ 796}# + #{w\ 802}# + #{s\ 803}# + #{mod\ 804}#))))) (#{chi-top\ 166}# - (lambda (#{e\ 744}# - #{r\ 745}# - #{w\ 746}# - #{m\ 747}# - #{esew\ 748}# - #{mod\ 749}#) + (lambda (#{e\ 805}# + #{r\ 806}# + #{w\ 807}# + #{m\ 808}# + #{esew\ 809}# + #{mod\ 810}#) (call-with-values (lambda () (#{syntax-type\ 165}# - #{e\ 744}# - #{r\ 745}# - #{w\ 746}# - (#{source-annotation\ 122}# #{e\ 744}#) + #{e\ 805}# + #{r\ 806}# + #{w\ 807}# + (#{source-annotation\ 122}# #{e\ 805}#) #f - #{mod\ 749}# + #{mod\ 810}# #f)) - (lambda (#{type\ 757}# - #{value\ 758}# - #{e\ 759}# - #{w\ 760}# - #{s\ 761}# - #{mod\ 762}#) - (if (memv #{type\ 757}# (quote (begin-form))) - ((lambda (#{tmp\ 763}#) - ((lambda (#{tmp\ 764}#) - (if #{tmp\ 764}# - (apply (lambda (#{_\ 765}#) (#{chi-void\ 174}#)) - #{tmp\ 764}#) - ((lambda (#{tmp\ 766}#) - (if #{tmp\ 766}# - (apply (lambda (#{_\ 767}# - #{e1\ 768}# - #{e2\ 769}#) + (lambda (#{type\ 818}# + #{value\ 819}# + #{e\ 820}# + #{w\ 821}# + #{s\ 822}# + #{mod\ 823}#) + (if (memv #{type\ 818}# (quote (begin-form))) + ((lambda (#{tmp\ 824}#) + ((lambda (#{tmp\ 825}#) + (if #{tmp\ 825}# + (apply (lambda (#{_\ 826}#) (#{chi-void\ 174}#)) + #{tmp\ 825}#) + ((lambda (#{tmp\ 827}#) + (if #{tmp\ 827}# + (apply (lambda (#{_\ 828}# + #{e1\ 829}# + #{e2\ 830}#) (#{chi-top-sequence\ 162}# - (cons #{e1\ 768}# #{e2\ 769}#) - #{r\ 745}# - #{w\ 760}# - #{s\ 761}# - #{m\ 747}# - #{esew\ 748}# - #{mod\ 762}#)) - #{tmp\ 766}#) + (cons #{e1\ 829}# #{e2\ 830}#) + #{r\ 806}# + #{w\ 821}# + #{s\ 822}# + #{m\ 808}# + #{esew\ 809}# + #{mod\ 823}#)) + #{tmp\ 827}#) (syntax-violation #f "source expression failed to match any pattern" - #{tmp\ 763}#))) + #{tmp\ 824}#))) ($sc-dispatch - #{tmp\ 763}# + #{tmp\ 824}# '(any any . each-any))))) - ($sc-dispatch #{tmp\ 763}# (quote (any))))) - #{e\ 759}#) - (if (memv #{type\ 757}# (quote (local-syntax-form))) + ($sc-dispatch #{tmp\ 824}# (quote (any))))) + #{e\ 820}#) + (if (memv #{type\ 818}# (quote (local-syntax-form))) (#{chi-local-syntax\ 172}# - #{value\ 758}# - #{e\ 759}# - #{r\ 745}# - #{w\ 760}# - #{s\ 761}# - #{mod\ 762}# - (lambda (#{body\ 771}# - #{r\ 772}# - #{w\ 773}# - #{s\ 774}# - #{mod\ 775}#) + #{value\ 819}# + #{e\ 820}# + #{r\ 806}# + #{w\ 821}# + #{s\ 822}# + #{mod\ 823}# + (lambda (#{body\ 832}# + #{r\ 833}# + #{w\ 834}# + #{s\ 835}# + #{mod\ 836}#) (#{chi-top-sequence\ 162}# - #{body\ 771}# - #{r\ 772}# - #{w\ 773}# - #{s\ 774}# - #{m\ 747}# - #{esew\ 748}# - #{mod\ 775}#))) - (if (memv #{type\ 757}# (quote (eval-when-form))) - ((lambda (#{tmp\ 776}#) - ((lambda (#{tmp\ 777}#) - (if #{tmp\ 777}# - (apply (lambda (#{_\ 778}# - #{x\ 779}# - #{e1\ 780}# - #{e2\ 781}#) - (let ((#{when-list\ 782}# + #{body\ 832}# + #{r\ 833}# + #{w\ 834}# + #{s\ 835}# + #{m\ 808}# + #{esew\ 809}# + #{mod\ 836}#))) + (if (memv #{type\ 818}# (quote (eval-when-form))) + ((lambda (#{tmp\ 837}#) + ((lambda (#{tmp\ 838}#) + (if #{tmp\ 838}# + (apply (lambda (#{_\ 839}# + #{x\ 840}# + #{e1\ 841}# + #{e2\ 842}#) + (let ((#{when-list\ 843}# (#{chi-when-list\ 164}# - #{e\ 759}# - #{x\ 779}# - #{w\ 760}#)) - (#{body\ 783}# - (cons #{e1\ 780}# - #{e2\ 781}#))) - (if (eq? #{m\ 747}# (quote e)) + #{e\ 820}# + #{x\ 840}# + #{w\ 821}#)) + (#{body\ 844}# + (cons #{e1\ 841}# + #{e2\ 842}#))) + (if (eq? #{m\ 808}# (quote e)) (if (memq 'eval - #{when-list\ 782}#) + #{when-list\ 843}#) (#{chi-top-sequence\ 162}# - #{body\ 783}# - #{r\ 745}# - #{w\ 760}# - #{s\ 761}# + #{body\ 844}# + #{r\ 806}# + #{w\ 821}# + #{s\ 822}# 'e '(eval) - #{mod\ 762}#) + #{mod\ 823}#) (#{chi-void\ 174}#)) (if (memq 'load - #{when-list\ 782}#) - (if (let ((#{t\ 786}# (memq 'compile - #{when-list\ 782}#))) - (if #{t\ 786}# - #{t\ 786}# - (if (eq? #{m\ 747}# + #{when-list\ 843}#) + (if (let ((#{t\ 847}# (memq 'compile + #{when-list\ 843}#))) + (if #{t\ 847}# + #{t\ 847}# + (if (eq? #{m\ 808}# 'c&e) (memq 'eval - #{when-list\ 782}#) + #{when-list\ 843}#) #f))) (#{chi-top-sequence\ 162}# - #{body\ 783}# - #{r\ 745}# - #{w\ 760}# - #{s\ 761}# + #{body\ 844}# + #{r\ 806}# + #{w\ 821}# + #{s\ 822}# 'c&e '(compile load) - #{mod\ 762}#) - (if (memq #{m\ 747}# + #{mod\ 823}#) + (if (memq #{m\ 808}# '(c c&e)) (#{chi-top-sequence\ 162}# - #{body\ 783}# - #{r\ 745}# - #{w\ 760}# - #{s\ 761}# + #{body\ 844}# + #{r\ 806}# + #{w\ 821}# + #{s\ 822}# 'c '(load) - #{mod\ 762}#) + #{mod\ 823}#) (#{chi-void\ 174}#))) - (if (let ((#{t\ 787}# (memq 'compile - #{when-list\ 782}#))) - (if #{t\ 787}# - #{t\ 787}# - (if (eq? #{m\ 747}# + (if (let ((#{t\ 848}# (memq 'compile + #{when-list\ 843}#))) + (if #{t\ 848}# + #{t\ 848}# + (if (eq? #{m\ 808}# 'c&e) (memq 'eval - #{when-list\ 782}#) + #{when-list\ 843}#) #f))) (begin (#{top-level-eval-hook\ 90}# (#{chi-top-sequence\ 162}# - #{body\ 783}# - #{r\ 745}# - #{w\ 760}# - #{s\ 761}# + #{body\ 844}# + #{r\ 806}# + #{w\ 821}# + #{s\ 822}# 'e '(eval) - #{mod\ 762}#) - #{mod\ 762}#) + #{mod\ 823}#) + #{mod\ 823}#) (#{chi-void\ 174}#)) (#{chi-void\ 174}#)))))) - #{tmp\ 777}#) + #{tmp\ 838}#) (syntax-violation #f "source expression failed to match any pattern" - #{tmp\ 776}#))) + #{tmp\ 837}#))) ($sc-dispatch - #{tmp\ 776}# + #{tmp\ 837}# '(any each-any any . each-any)))) - #{e\ 759}#) - (if (memv #{type\ 757}# (quote (define-syntax-form))) - (let ((#{n\ 788}# (#{id-var-name\ 153}# - #{value\ 758}# - #{w\ 760}#)) - (#{r\ 789}# (#{macros-only-env\ 127}# - #{r\ 745}#))) - (if (memv #{m\ 747}# (quote (c))) - (if (memq (quote compile) #{esew\ 748}#) - (let ((#{e\ 790}# (#{chi-install-global\ 163}# - #{n\ 788}# + #{e\ 820}#) + (if (memv #{type\ 818}# (quote (define-syntax-form))) + (let ((#{n\ 849}# (#{id-var-name\ 153}# + #{value\ 819}# + #{w\ 821}#)) + (#{r\ 850}# (#{macros-only-env\ 127}# + #{r\ 806}#))) + (if (memv #{m\ 808}# (quote (c))) + (if (memq (quote compile) #{esew\ 809}#) + (let ((#{e\ 851}# (#{chi-install-global\ 163}# + #{n\ 849}# (#{chi\ 167}# - #{e\ 759}# - #{r\ 789}# - #{w\ 760}# - #{mod\ 762}#)))) + #{e\ 820}# + #{r\ 850}# + #{w\ 821}# + #{mod\ 823}#)))) (begin (#{top-level-eval-hook\ 90}# - #{e\ 790}# - #{mod\ 762}#) - (if (memq (quote load) #{esew\ 748}#) - #{e\ 790}# + #{e\ 851}# + #{mod\ 823}#) + (if (memq (quote load) #{esew\ 809}#) + #{e\ 851}# (#{chi-void\ 174}#)))) - (if (memq (quote load) #{esew\ 748}#) + (if (memq (quote load) #{esew\ 809}#) (#{chi-install-global\ 163}# - #{n\ 788}# + #{n\ 849}# (#{chi\ 167}# - #{e\ 759}# - #{r\ 789}# - #{w\ 760}# - #{mod\ 762}#)) + #{e\ 820}# + #{r\ 850}# + #{w\ 821}# + #{mod\ 823}#)) (#{chi-void\ 174}#))) - (if (memv #{m\ 747}# (quote (c&e))) - (let ((#{e\ 791}# (#{chi-install-global\ 163}# - #{n\ 788}# + (if (memv #{m\ 808}# (quote (c&e))) + (let ((#{e\ 852}# (#{chi-install-global\ 163}# + #{n\ 849}# (#{chi\ 167}# - #{e\ 759}# - #{r\ 789}# - #{w\ 760}# - #{mod\ 762}#)))) + #{e\ 820}# + #{r\ 850}# + #{w\ 821}# + #{mod\ 823}#)))) (begin (#{top-level-eval-hook\ 90}# - #{e\ 791}# - #{mod\ 762}#) - #{e\ 791}#)) + #{e\ 852}# + #{mod\ 823}#) + #{e\ 852}#)) (begin - (if (memq (quote eval) #{esew\ 748}#) + (if (memq (quote eval) #{esew\ 809}#) (#{top-level-eval-hook\ 90}# (#{chi-install-global\ 163}# - #{n\ 788}# + #{n\ 849}# (#{chi\ 167}# - #{e\ 759}# - #{r\ 789}# - #{w\ 760}# - #{mod\ 762}#)) - #{mod\ 762}#)) + #{e\ 820}# + #{r\ 850}# + #{w\ 821}# + #{mod\ 823}#)) + #{mod\ 823}#)) (#{chi-void\ 174}#))))) - (if (memv #{type\ 757}# (quote (define-form))) - (let ((#{n\ 792}# (#{id-var-name\ 153}# - #{value\ 758}# - #{w\ 760}#))) - (let ((#{type\ 793}# + (if (memv #{type\ 818}# (quote (define-form))) + (let ((#{n\ 853}# (#{id-var-name\ 153}# + #{value\ 819}# + #{w\ 821}#))) + (let ((#{type\ 854}# (#{binding-type\ 123}# (#{lookup\ 128}# - #{n\ 792}# - #{r\ 745}# - #{mod\ 762}#)))) - (if (memv #{type\ 793}# + #{n\ 853}# + #{r\ 806}# + #{mod\ 823}#)))) + (if (memv #{type\ 854}# '(global core macro module-ref)) (begin (if (if (not (module-local-variable (current-module) - #{n\ 792}#)) + #{n\ 853}#)) (current-module) #f) - (let ((#{old\ 794}# + (let ((#{old\ 855}# (module-variable (current-module) - #{n\ 792}#))) + #{n\ 853}#))) (module-define! (current-module) - #{n\ 792}# - (if (variable? #{old\ 794}#) - (variable-ref #{old\ 794}#) + #{n\ 853}# + (if (variable? #{old\ 855}#) + (variable-ref #{old\ 855}#) #f)))) - (let ((#{x\ 795}# (#{build-global-definition\ 104}# - #{s\ 761}# - #{n\ 792}# + (let ((#{x\ 856}# (#{build-global-definition\ 104}# + #{s\ 822}# + #{n\ 853}# (#{chi\ 167}# - #{e\ 759}# - #{r\ 745}# - #{w\ 760}# - #{mod\ 762}#)))) + #{e\ 820}# + #{r\ 806}# + #{w\ 821}# + #{mod\ 823}#)))) (begin - (if (eq? #{m\ 747}# (quote c&e)) + (if (eq? #{m\ 808}# (quote c&e)) (#{top-level-eval-hook\ 90}# - #{x\ 795}# - #{mod\ 762}#)) - #{x\ 795}#))) - (if (memv #{type\ 793}# + #{x\ 856}# + #{mod\ 823}#)) + #{x\ 856}#))) + (if (memv #{type\ 854}# '(displaced-lexical)) (syntax-violation #f "identifier out of context" - #{e\ 759}# + #{e\ 820}# (#{wrap\ 159}# - #{value\ 758}# - #{w\ 760}# - #{mod\ 762}#)) + #{value\ 819}# + #{w\ 821}# + #{mod\ 823}#)) (syntax-violation #f "cannot define keyword at top level" - #{e\ 759}# + #{e\ 820}# (#{wrap\ 159}# - #{value\ 758}# - #{w\ 760}# - #{mod\ 762}#)))))) - (let ((#{x\ 796}# (#{chi-expr\ 168}# - #{type\ 757}# - #{value\ 758}# - #{e\ 759}# - #{r\ 745}# - #{w\ 760}# - #{s\ 761}# - #{mod\ 762}#))) + #{value\ 819}# + #{w\ 821}# + #{mod\ 823}#)))))) + (let ((#{x\ 857}# (#{chi-expr\ 168}# + #{type\ 818}# + #{value\ 819}# + #{e\ 820}# + #{r\ 806}# + #{w\ 821}# + #{s\ 822}# + #{mod\ 823}#))) (begin - (if (eq? #{m\ 747}# (quote c&e)) + (if (eq? #{m\ 808}# (quote c&e)) (#{top-level-eval-hook\ 90}# - #{x\ 796}# - #{mod\ 762}#)) - #{x\ 796}#))))))))))) + #{x\ 857}# + #{mod\ 823}#)) + #{x\ 857}#))))))))))) (#{syntax-type\ 165}# - (lambda (#{e\ 797}# - #{r\ 798}# - #{w\ 799}# - #{s\ 800}# - #{rib\ 801}# - #{mod\ 802}# - #{for-car?\ 803}#) - (if (symbol? #{e\ 797}#) - (let ((#{n\ 804}# (#{id-var-name\ 153}# - #{e\ 797}# - #{w\ 799}#))) - (let ((#{b\ 805}# (#{lookup\ 128}# - #{n\ 804}# - #{r\ 798}# - #{mod\ 802}#))) - (let ((#{type\ 806}# - (#{binding-type\ 123}# #{b\ 805}#))) - (if (memv #{type\ 806}# (quote (lexical))) + (lambda (#{e\ 858}# + #{r\ 859}# + #{w\ 860}# + #{s\ 861}# + #{rib\ 862}# + #{mod\ 863}# + #{for-car?\ 864}#) + (if (symbol? #{e\ 858}#) + (let ((#{n\ 865}# (#{id-var-name\ 153}# + #{e\ 858}# + #{w\ 860}#))) + (let ((#{b\ 866}# (#{lookup\ 128}# + #{n\ 865}# + #{r\ 859}# + #{mod\ 863}#))) + (let ((#{type\ 867}# + (#{binding-type\ 123}# #{b\ 866}#))) + (if (memv #{type\ 867}# (quote (lexical))) (values - #{type\ 806}# - (#{binding-value\ 124}# #{b\ 805}#) - #{e\ 797}# - #{w\ 799}# - #{s\ 800}# - #{mod\ 802}#) - (if (memv #{type\ 806}# (quote (global))) + #{type\ 867}# + (#{binding-value\ 124}# #{b\ 866}#) + #{e\ 858}# + #{w\ 860}# + #{s\ 861}# + #{mod\ 863}#) + (if (memv #{type\ 867}# (quote (global))) (values - #{type\ 806}# - #{n\ 804}# - #{e\ 797}# - #{w\ 799}# - #{s\ 800}# - #{mod\ 802}#) - (if (memv #{type\ 806}# (quote (macro))) - (if #{for-car?\ 803}# + #{type\ 867}# + #{n\ 865}# + #{e\ 858}# + #{w\ 860}# + #{s\ 861}# + #{mod\ 863}#) + (if (memv #{type\ 867}# (quote (macro))) + (if #{for-car?\ 864}# (values - #{type\ 806}# - (#{binding-value\ 124}# #{b\ 805}#) - #{e\ 797}# - #{w\ 799}# - #{s\ 800}# - #{mod\ 802}#) + #{type\ 867}# + (#{binding-value\ 124}# #{b\ 866}#) + #{e\ 858}# + #{w\ 860}# + #{s\ 861}# + #{mod\ 863}#) (#{syntax-type\ 165}# (#{chi-macro\ 170}# - (#{binding-value\ 124}# #{b\ 805}#) - #{e\ 797}# - #{r\ 798}# - #{w\ 799}# - #{rib\ 801}# - #{mod\ 802}#) - #{r\ 798}# + (#{binding-value\ 124}# #{b\ 866}#) + #{e\ 858}# + #{r\ 859}# + #{w\ 860}# + #{rib\ 862}# + #{mod\ 863}#) + #{r\ 859}# '(()) - #{s\ 800}# - #{rib\ 801}# - #{mod\ 802}# + #{s\ 861}# + #{rib\ 862}# + #{mod\ 863}# #f)) (values - #{type\ 806}# - (#{binding-value\ 124}# #{b\ 805}#) - #{e\ 797}# - #{w\ 799}# - #{s\ 800}# - #{mod\ 802}#))))))) - (if (pair? #{e\ 797}#) - (let ((#{first\ 807}# (car #{e\ 797}#))) + #{type\ 867}# + (#{binding-value\ 124}# #{b\ 866}#) + #{e\ 858}# + #{w\ 860}# + #{s\ 861}# + #{mod\ 863}#))))))) + (if (pair? #{e\ 858}#) + (let ((#{first\ 868}# (car #{e\ 858}#))) (call-with-values (lambda () (#{syntax-type\ 165}# - #{first\ 807}# - #{r\ 798}# - #{w\ 799}# - #{s\ 800}# - #{rib\ 801}# - #{mod\ 802}# + #{first\ 868}# + #{r\ 859}# + #{w\ 860}# + #{s\ 861}# + #{rib\ 862}# + #{mod\ 863}# #t)) - (lambda (#{ftype\ 808}# - #{fval\ 809}# - #{fe\ 810}# - #{fw\ 811}# - #{fs\ 812}# - #{fmod\ 813}#) - (if (memv #{ftype\ 808}# (quote (lexical))) + (lambda (#{ftype\ 869}# + #{fval\ 870}# + #{fe\ 871}# + #{fw\ 872}# + #{fs\ 873}# + #{fmod\ 874}#) + (if (memv #{ftype\ 869}# (quote (lexical))) (values 'lexical-call - #{fval\ 809}# - #{e\ 797}# - #{w\ 799}# - #{s\ 800}# - #{mod\ 802}#) - (if (memv #{ftype\ 808}# (quote (global))) + #{fval\ 870}# + #{e\ 858}# + #{w\ 860}# + #{s\ 861}# + #{mod\ 863}#) + (if (memv #{ftype\ 869}# (quote (global))) (values 'global-call (#{make-syntax-object\ 114}# - #{fval\ 809}# - #{w\ 799}# - #{fmod\ 813}#) - #{e\ 797}# - #{w\ 799}# - #{s\ 800}# - #{mod\ 802}#) - (if (memv #{ftype\ 808}# (quote (macro))) + #{fval\ 870}# + #{w\ 860}# + #{fmod\ 874}#) + #{e\ 858}# + #{w\ 860}# + #{s\ 861}# + #{mod\ 863}#) + (if (memv #{ftype\ 869}# (quote (macro))) (#{syntax-type\ 165}# (#{chi-macro\ 170}# - #{fval\ 809}# - #{e\ 797}# - #{r\ 798}# - #{w\ 799}# - #{rib\ 801}# - #{mod\ 802}#) - #{r\ 798}# + #{fval\ 870}# + #{e\ 858}# + #{r\ 859}# + #{w\ 860}# + #{rib\ 862}# + #{mod\ 863}#) + #{r\ 859}# '(()) - #{s\ 800}# - #{rib\ 801}# - #{mod\ 802}# - #{for-car?\ 803}#) - (if (memv #{ftype\ 808}# (quote (module-ref))) + #{s\ 861}# + #{rib\ 862}# + #{mod\ 863}# + #{for-car?\ 864}#) + (if (memv #{ftype\ 869}# (quote (module-ref))) (call-with-values - (lambda () (#{fval\ 809}# #{e\ 797}#)) - (lambda (#{sym\ 814}# #{mod\ 815}#) + (lambda () (#{fval\ 870}# #{e\ 858}#)) + (lambda (#{sym\ 875}# #{mod\ 876}#) (#{syntax-type\ 165}# - #{sym\ 814}# - #{r\ 798}# - #{w\ 799}# - #{s\ 800}# - #{rib\ 801}# - #{mod\ 815}# - #{for-car?\ 803}#))) - (if (memv #{ftype\ 808}# (quote (core))) + #{sym\ 875}# + #{r\ 859}# + #{w\ 860}# + #{s\ 861}# + #{rib\ 862}# + #{mod\ 876}# + #{for-car?\ 864}#))) + (if (memv #{ftype\ 869}# (quote (core))) (values 'core-form - #{fval\ 809}# - #{e\ 797}# - #{w\ 799}# - #{s\ 800}# - #{mod\ 802}#) - (if (memv #{ftype\ 808}# + #{fval\ 870}# + #{e\ 858}# + #{w\ 860}# + #{s\ 861}# + #{mod\ 863}#) + (if (memv #{ftype\ 869}# '(local-syntax)) (values 'local-syntax-form - #{fval\ 809}# - #{e\ 797}# - #{w\ 799}# - #{s\ 800}# - #{mod\ 802}#) - (if (memv #{ftype\ 808}# (quote (begin))) + #{fval\ 870}# + #{e\ 858}# + #{w\ 860}# + #{s\ 861}# + #{mod\ 863}#) + (if (memv #{ftype\ 869}# (quote (begin))) (values 'begin-form #f - #{e\ 797}# - #{w\ 799}# - #{s\ 800}# - #{mod\ 802}#) - (if (memv #{ftype\ 808}# + #{e\ 858}# + #{w\ 860}# + #{s\ 861}# + #{mod\ 863}#) + (if (memv #{ftype\ 869}# '(eval-when)) (values 'eval-when-form #f - #{e\ 797}# - #{w\ 799}# - #{s\ 800}# - #{mod\ 802}#) - (if (memv #{ftype\ 808}# + #{e\ 858}# + #{w\ 860}# + #{s\ 861}# + #{mod\ 863}#) + (if (memv #{ftype\ 869}# '(define)) - ((lambda (#{tmp\ 816}#) - ((lambda (#{tmp\ 817}#) - (if (if #{tmp\ 817}# - (apply (lambda (#{_\ 818}# - #{name\ 819}# - #{val\ 820}#) + ((lambda (#{tmp\ 877}#) + ((lambda (#{tmp\ 878}#) + (if (if #{tmp\ 878}# + (apply (lambda (#{_\ 879}# + #{name\ 880}# + #{val\ 881}#) (#{id?\ 131}# - #{name\ 819}#)) - #{tmp\ 817}#) + #{name\ 880}#)) + #{tmp\ 878}#) #f) - (apply (lambda (#{_\ 821}# - #{name\ 822}# - #{val\ 823}#) + (apply (lambda (#{_\ 882}# + #{name\ 883}# + #{val\ 884}#) (values 'define-form - #{name\ 822}# - #{val\ 823}# - #{w\ 799}# - #{s\ 800}# - #{mod\ 802}#)) - #{tmp\ 817}#) - ((lambda (#{tmp\ 824}#) - (if (if #{tmp\ 824}# - (apply (lambda (#{_\ 825}# - #{name\ 826}# - #{args\ 827}# - #{e1\ 828}# - #{e2\ 829}#) + #{name\ 883}# + #{val\ 884}# + #{w\ 860}# + #{s\ 861}# + #{mod\ 863}#)) + #{tmp\ 878}#) + ((lambda (#{tmp\ 885}#) + (if (if #{tmp\ 885}# + (apply (lambda (#{_\ 886}# + #{name\ 887}# + #{args\ 888}# + #{e1\ 889}# + #{e2\ 890}#) (if (#{id?\ 131}# - #{name\ 826}#) + #{name\ 887}#) (#{valid-bound-ids?\ 156}# (#{lambda-var-list\ 182}# - #{args\ 827}#)) + #{args\ 888}#)) #f)) - #{tmp\ 824}#) + #{tmp\ 885}#) #f) - (apply (lambda (#{_\ 830}# - #{name\ 831}# - #{args\ 832}# - #{e1\ 833}# - #{e2\ 834}#) + (apply (lambda (#{_\ 891}# + #{name\ 892}# + #{args\ 893}# + #{e1\ 894}# + #{e2\ 895}#) (values 'define-form (#{wrap\ 159}# - #{name\ 831}# - #{w\ 799}# - #{mod\ 802}#) + #{name\ 892}# + #{w\ 860}# + #{mod\ 863}#) (#{decorate-source\ 94}# (cons '#(syntax-object lambda @@ -3978,32 +4202,32 @@ (hygiene guile)) (#{wrap\ 159}# - (cons #{args\ 832}# - (cons #{e1\ 833}# - #{e2\ 834}#)) - #{w\ 799}# - #{mod\ 802}#)) - #{s\ 800}#) + (cons #{args\ 893}# + (cons #{e1\ 894}# + #{e2\ 895}#)) + #{w\ 860}# + #{mod\ 863}#)) + #{s\ 861}#) '(()) - #{s\ 800}# - #{mod\ 802}#)) - #{tmp\ 824}#) - ((lambda (#{tmp\ 836}#) - (if (if #{tmp\ 836}# - (apply (lambda (#{_\ 837}# - #{name\ 838}#) + #{s\ 861}# + #{mod\ 863}#)) + #{tmp\ 885}#) + ((lambda (#{tmp\ 897}#) + (if (if #{tmp\ 897}# + (apply (lambda (#{_\ 898}# + #{name\ 899}#) (#{id?\ 131}# - #{name\ 838}#)) - #{tmp\ 836}#) + #{name\ 899}#)) + #{tmp\ 897}#) #f) - (apply (lambda (#{_\ 839}# - #{name\ 840}#) + (apply (lambda (#{_\ 900}# + #{name\ 901}#) (values 'define-form (#{wrap\ 159}# - #{name\ 840}# - #{w\ 799}# - #{mod\ 802}#) + #{name\ 901}# + #{w\ 860}# + #{mod\ 863}#) '(#(syntax-object if ((top) @@ -5325,102 +5549,102 @@ (hygiene guile))) '(()) - #{s\ 800}# - #{mod\ 802}#)) - #{tmp\ 836}#) + #{s\ 861}# + #{mod\ 863}#)) + #{tmp\ 897}#) (syntax-violation #f "source expression failed to match any pattern" - #{tmp\ 816}#))) + #{tmp\ 877}#))) ($sc-dispatch - #{tmp\ 816}# + #{tmp\ 877}# '(any any))))) ($sc-dispatch - #{tmp\ 816}# + #{tmp\ 877}# '(any (any . any) any . each-any))))) ($sc-dispatch - #{tmp\ 816}# + #{tmp\ 877}# '(any any any)))) - #{e\ 797}#) - (if (memv #{ftype\ 808}# + #{e\ 858}#) + (if (memv #{ftype\ 869}# '(define-syntax)) - ((lambda (#{tmp\ 841}#) - ((lambda (#{tmp\ 842}#) - (if (if #{tmp\ 842}# - (apply (lambda (#{_\ 843}# - #{name\ 844}# - #{val\ 845}#) + ((lambda (#{tmp\ 902}#) + ((lambda (#{tmp\ 903}#) + (if (if #{tmp\ 903}# + (apply (lambda (#{_\ 904}# + #{name\ 905}# + #{val\ 906}#) (#{id?\ 131}# - #{name\ 844}#)) - #{tmp\ 842}#) + #{name\ 905}#)) + #{tmp\ 903}#) #f) - (apply (lambda (#{_\ 846}# - #{name\ 847}# - #{val\ 848}#) + (apply (lambda (#{_\ 907}# + #{name\ 908}# + #{val\ 909}#) (values 'define-syntax-form - #{name\ 847}# - #{val\ 848}# - #{w\ 799}# - #{s\ 800}# - #{mod\ 802}#)) - #{tmp\ 842}#) + #{name\ 908}# + #{val\ 909}# + #{w\ 860}# + #{s\ 861}# + #{mod\ 863}#)) + #{tmp\ 903}#) (syntax-violation #f "source expression failed to match any pattern" - #{tmp\ 841}#))) + #{tmp\ 902}#))) ($sc-dispatch - #{tmp\ 841}# + #{tmp\ 902}# '(any any any)))) - #{e\ 797}#) + #{e\ 858}#) (values 'call #f - #{e\ 797}# - #{w\ 799}# - #{s\ 800}# - #{mod\ 802}#)))))))))))))) - (if (#{syntax-object?\ 115}# #{e\ 797}#) + #{e\ 858}# + #{w\ 860}# + #{s\ 861}# + #{mod\ 863}#)))))))))))))) + (if (#{syntax-object?\ 115}# #{e\ 858}#) (#{syntax-type\ 165}# - (#{syntax-object-expression\ 116}# #{e\ 797}#) - #{r\ 798}# + (#{syntax-object-expression\ 116}# #{e\ 858}#) + #{r\ 859}# (#{join-wraps\ 150}# - #{w\ 799}# - (#{syntax-object-wrap\ 117}# #{e\ 797}#)) - #{s\ 800}# - #{rib\ 801}# - (let ((#{t\ 849}# (#{syntax-object-module\ 118}# - #{e\ 797}#))) - (if #{t\ 849}# #{t\ 849}# #{mod\ 802}#)) - #{for-car?\ 803}#) - (if (self-evaluating? #{e\ 797}#) + #{w\ 860}# + (#{syntax-object-wrap\ 117}# #{e\ 858}#)) + #{s\ 861}# + #{rib\ 862}# + (let ((#{t\ 910}# (#{syntax-object-module\ 118}# + #{e\ 858}#))) + (if #{t\ 910}# #{t\ 910}# #{mod\ 863}#)) + #{for-car?\ 864}#) + (if (self-evaluating? #{e\ 858}#) (values 'constant #f - #{e\ 797}# - #{w\ 799}# - #{s\ 800}# - #{mod\ 802}#) + #{e\ 858}# + #{w\ 860}# + #{s\ 861}# + #{mod\ 863}#) (values 'other #f - #{e\ 797}# - #{w\ 799}# - #{s\ 800}# - #{mod\ 802}#))))))) + #{e\ 858}# + #{w\ 860}# + #{s\ 861}# + #{mod\ 863}#))))))) (#{chi-when-list\ 164}# - (lambda (#{e\ 850}# #{when-list\ 851}# #{w\ 852}#) - (letrec ((#{f\ 853}# (lambda (#{when-list\ 854}# - #{situations\ 855}#) - (if (null? #{when-list\ 854}#) - #{situations\ 855}# - (#{f\ 853}# (cdr #{when-list\ 854}#) - (cons (let ((#{x\ 856}# (car #{when-list\ 854}#))) + (lambda (#{e\ 911}# #{when-list\ 912}# #{w\ 913}#) + (letrec ((#{f\ 914}# (lambda (#{when-list\ 915}# + #{situations\ 916}#) + (if (null? #{when-list\ 915}#) + #{situations\ 916}# + (#{f\ 914}# (cdr #{when-list\ 915}#) + (cons (let ((#{x\ 917}# (car #{when-list\ 915}#))) (if (#{free-id=?\ 154}# - #{x\ 856}# + #{x\ 917}# '#(syntax-object compile ((top) @@ -5831,7 +6055,7 @@ guile))) 'compile (if (#{free-id=?\ 154}# - #{x\ 856}# + #{x\ 917}# '#(syntax-object load ((top) @@ -6242,7 +6466,7 @@ guile))) 'load (if (#{free-id=?\ 154}# - #{x\ 856}# + #{x\ 917}# '#(syntax-object eval ((top) @@ -6655,25 +6879,25 @@ (syntax-violation 'eval-when "invalid situation" - #{e\ 850}# + #{e\ 911}# (#{wrap\ 159}# - #{x\ 856}# - #{w\ 852}# + #{x\ 917}# + #{w\ 913}# #f)))))) - #{situations\ 855}#)))))) - (#{f\ 853}# #{when-list\ 851}# (quote ()))))) + #{situations\ 916}#)))))) + (#{f\ 914}# #{when-list\ 912}# (quote ()))))) (#{chi-install-global\ 163}# - (lambda (#{name\ 857}# #{e\ 858}#) + (lambda (#{name\ 918}# #{e\ 919}#) (#{build-global-definition\ 104}# #f - #{name\ 857}# - (if (let ((#{v\ 859}# (module-variable + #{name\ 918}# + (if (let ((#{v\ 920}# (module-variable (current-module) - #{name\ 857}#))) - (if #{v\ 859}# - (if (variable-bound? #{v\ 859}#) - (if (macro? (variable-ref #{v\ 859}#)) - (not (eq? (macro-type (variable-ref #{v\ 859}#)) + #{name\ 918}#))) + (if #{v\ 920}# + (if (variable-bound? #{v\ 920}#) + (if (macro? (variable-ref #{v\ 920}#)) + (not (eq? (macro-type (variable-ref #{v\ 920}#)) 'syncase-macro)) #f) #f) @@ -6692,830 +6916,833 @@ #f 'current-module) '()) - (#{build-data\ 109}# #f #{name\ 857}#))) + (#{build-data\ 109}# #f #{name\ 918}#))) (#{build-data\ 109}# #f (quote macro)) - #{e\ 858}#)) + #{e\ 919}#)) (#{build-application\ 96}# #f (#{build-primref\ 108}# #f 'make-syncase-macro) (list (#{build-data\ 109}# #f (quote macro)) - #{e\ 858}#)))))) + #{e\ 919}#)))))) (#{chi-top-sequence\ 162}# - (lambda (#{body\ 860}# - #{r\ 861}# - #{w\ 862}# - #{s\ 863}# - #{m\ 864}# - #{esew\ 865}# - #{mod\ 866}#) + (lambda (#{body\ 921}# + #{r\ 922}# + #{w\ 923}# + #{s\ 924}# + #{m\ 925}# + #{esew\ 926}# + #{mod\ 927}#) (#{build-sequence\ 110}# - #{s\ 863}# - (letrec ((#{dobody\ 867}# - (lambda (#{body\ 868}# - #{r\ 869}# - #{w\ 870}# - #{m\ 871}# - #{esew\ 872}# - #{mod\ 873}#) - (if (null? #{body\ 868}#) + #{s\ 924}# + (letrec ((#{dobody\ 928}# + (lambda (#{body\ 929}# + #{r\ 930}# + #{w\ 931}# + #{m\ 932}# + #{esew\ 933}# + #{mod\ 934}#) + (if (null? #{body\ 929}#) '() - (let ((#{first\ 874}# + (let ((#{first\ 935}# (#{chi-top\ 166}# - (car #{body\ 868}#) - #{r\ 869}# - #{w\ 870}# - #{m\ 871}# - #{esew\ 872}# - #{mod\ 873}#))) - (cons #{first\ 874}# - (#{dobody\ 867}# - (cdr #{body\ 868}#) - #{r\ 869}# - #{w\ 870}# - #{m\ 871}# - #{esew\ 872}# - #{mod\ 873}#))))))) - (#{dobody\ 867}# - #{body\ 860}# - #{r\ 861}# - #{w\ 862}# - #{m\ 864}# - #{esew\ 865}# - #{mod\ 866}#))))) + (car #{body\ 929}#) + #{r\ 930}# + #{w\ 931}# + #{m\ 932}# + #{esew\ 933}# + #{mod\ 934}#))) + (cons #{first\ 935}# + (#{dobody\ 928}# + (cdr #{body\ 929}#) + #{r\ 930}# + #{w\ 931}# + #{m\ 932}# + #{esew\ 933}# + #{mod\ 934}#))))))) + (#{dobody\ 928}# + #{body\ 921}# + #{r\ 922}# + #{w\ 923}# + #{m\ 925}# + #{esew\ 926}# + #{mod\ 927}#))))) (#{chi-sequence\ 161}# - (lambda (#{body\ 875}# - #{r\ 876}# - #{w\ 877}# - #{s\ 878}# - #{mod\ 879}#) + (lambda (#{body\ 936}# + #{r\ 937}# + #{w\ 938}# + #{s\ 939}# + #{mod\ 940}#) (#{build-sequence\ 110}# - #{s\ 878}# - (letrec ((#{dobody\ 880}# - (lambda (#{body\ 881}# - #{r\ 882}# - #{w\ 883}# - #{mod\ 884}#) - (if (null? #{body\ 881}#) + #{s\ 939}# + (letrec ((#{dobody\ 941}# + (lambda (#{body\ 942}# + #{r\ 943}# + #{w\ 944}# + #{mod\ 945}#) + (if (null? #{body\ 942}#) '() - (let ((#{first\ 885}# + (let ((#{first\ 946}# (#{chi\ 167}# - (car #{body\ 881}#) - #{r\ 882}# - #{w\ 883}# - #{mod\ 884}#))) - (cons #{first\ 885}# - (#{dobody\ 880}# - (cdr #{body\ 881}#) - #{r\ 882}# - #{w\ 883}# - #{mod\ 884}#))))))) - (#{dobody\ 880}# - #{body\ 875}# - #{r\ 876}# - #{w\ 877}# - #{mod\ 879}#))))) + (car #{body\ 942}#) + #{r\ 943}# + #{w\ 944}# + #{mod\ 945}#))) + (cons #{first\ 946}# + (#{dobody\ 941}# + (cdr #{body\ 942}#) + #{r\ 943}# + #{w\ 944}# + #{mod\ 945}#))))))) + (#{dobody\ 941}# + #{body\ 936}# + #{r\ 937}# + #{w\ 938}# + #{mod\ 940}#))))) (#{source-wrap\ 160}# - (lambda (#{x\ 886}# - #{w\ 887}# - #{s\ 888}# - #{defmod\ 889}#) + (lambda (#{x\ 947}# + #{w\ 948}# + #{s\ 949}# + #{defmod\ 950}#) (#{wrap\ 159}# - (#{decorate-source\ 94}# #{x\ 886}# #{s\ 888}#) - #{w\ 887}# - #{defmod\ 889}#))) + (#{decorate-source\ 94}# #{x\ 947}# #{s\ 949}#) + #{w\ 948}# + #{defmod\ 950}#))) (#{wrap\ 159}# - (lambda (#{x\ 890}# #{w\ 891}# #{defmod\ 892}#) - (if (if (null? (#{wrap-marks\ 134}# #{w\ 891}#)) - (null? (#{wrap-subst\ 135}# #{w\ 891}#)) + (lambda (#{x\ 951}# #{w\ 952}# #{defmod\ 953}#) + (if (if (null? (#{wrap-marks\ 134}# #{w\ 952}#)) + (null? (#{wrap-subst\ 135}# #{w\ 952}#)) #f) - #{x\ 890}# - (if (#{syntax-object?\ 115}# #{x\ 890}#) + #{x\ 951}# + (if (#{syntax-object?\ 115}# #{x\ 951}#) (#{make-syntax-object\ 114}# - (#{syntax-object-expression\ 116}# #{x\ 890}#) + (#{syntax-object-expression\ 116}# #{x\ 951}#) (#{join-wraps\ 150}# - #{w\ 891}# - (#{syntax-object-wrap\ 117}# #{x\ 890}#)) - (#{syntax-object-module\ 118}# #{x\ 890}#)) - (if (null? #{x\ 890}#) - #{x\ 890}# + #{w\ 952}# + (#{syntax-object-wrap\ 117}# #{x\ 951}#)) + (#{syntax-object-module\ 118}# #{x\ 951}#)) + (if (null? #{x\ 951}#) + #{x\ 951}# (#{make-syntax-object\ 114}# - #{x\ 890}# - #{w\ 891}# - #{defmod\ 892}#)))))) + #{x\ 951}# + #{w\ 952}# + #{defmod\ 953}#)))))) (#{bound-id-member?\ 158}# - (lambda (#{x\ 893}# #{list\ 894}#) - (if (not (null? #{list\ 894}#)) - (let ((#{t\ 895}# (#{bound-id=?\ 155}# - #{x\ 893}# - (car #{list\ 894}#)))) - (if #{t\ 895}# - #{t\ 895}# + (lambda (#{x\ 954}# #{list\ 955}#) + (if (not (null? #{list\ 955}#)) + (let ((#{t\ 956}# (#{bound-id=?\ 155}# + #{x\ 954}# + (car #{list\ 955}#)))) + (if #{t\ 956}# + #{t\ 956}# (#{bound-id-member?\ 158}# - #{x\ 893}# - (cdr #{list\ 894}#)))) + #{x\ 954}# + (cdr #{list\ 955}#)))) #f))) (#{distinct-bound-ids?\ 157}# - (lambda (#{ids\ 896}#) - (letrec ((#{distinct?\ 897}# - (lambda (#{ids\ 898}#) - (let ((#{t\ 899}# (null? #{ids\ 898}#))) - (if #{t\ 899}# - #{t\ 899}# + (lambda (#{ids\ 957}#) + (letrec ((#{distinct?\ 958}# + (lambda (#{ids\ 959}#) + (let ((#{t\ 960}# (null? #{ids\ 959}#))) + (if #{t\ 960}# + #{t\ 960}# (if (not (#{bound-id-member?\ 158}# - (car #{ids\ 898}#) - (cdr #{ids\ 898}#))) - (#{distinct?\ 897}# (cdr #{ids\ 898}#)) + (car #{ids\ 959}#) + (cdr #{ids\ 959}#))) + (#{distinct?\ 958}# (cdr #{ids\ 959}#)) #f)))))) - (#{distinct?\ 897}# #{ids\ 896}#)))) + (#{distinct?\ 958}# #{ids\ 957}#)))) (#{valid-bound-ids?\ 156}# - (lambda (#{ids\ 900}#) - (if (letrec ((#{all-ids?\ 901}# - (lambda (#{ids\ 902}#) - (let ((#{t\ 903}# (null? #{ids\ 902}#))) - (if #{t\ 903}# - #{t\ 903}# - (if (#{id?\ 131}# (car #{ids\ 902}#)) - (#{all-ids?\ 901}# (cdr #{ids\ 902}#)) + (lambda (#{ids\ 961}#) + (if (letrec ((#{all-ids?\ 962}# + (lambda (#{ids\ 963}#) + (let ((#{t\ 964}# (null? #{ids\ 963}#))) + (if #{t\ 964}# + #{t\ 964}# + (if (#{id?\ 131}# (car #{ids\ 963}#)) + (#{all-ids?\ 962}# (cdr #{ids\ 963}#)) #f)))))) - (#{all-ids?\ 901}# #{ids\ 900}#)) - (#{distinct-bound-ids?\ 157}# #{ids\ 900}#) + (#{all-ids?\ 962}# #{ids\ 961}#)) + (#{distinct-bound-ids?\ 157}# #{ids\ 961}#) #f))) (#{bound-id=?\ 155}# - (lambda (#{i\ 904}# #{j\ 905}#) - (if (if (#{syntax-object?\ 115}# #{i\ 904}#) - (#{syntax-object?\ 115}# #{j\ 905}#) + (lambda (#{i\ 965}# #{j\ 966}#) + (if (if (#{syntax-object?\ 115}# #{i\ 965}#) + (#{syntax-object?\ 115}# #{j\ 966}#) #f) - (if (eq? (#{syntax-object-expression\ 116}# #{i\ 904}#) - (#{syntax-object-expression\ 116}# #{j\ 905}#)) + (if (eq? (#{syntax-object-expression\ 116}# #{i\ 965}#) + (#{syntax-object-expression\ 116}# #{j\ 966}#)) (#{same-marks?\ 152}# (#{wrap-marks\ 134}# - (#{syntax-object-wrap\ 117}# #{i\ 904}#)) + (#{syntax-object-wrap\ 117}# #{i\ 965}#)) (#{wrap-marks\ 134}# - (#{syntax-object-wrap\ 117}# #{j\ 905}#))) + (#{syntax-object-wrap\ 117}# #{j\ 966}#))) #f) - (eq? #{i\ 904}# #{j\ 905}#)))) + (eq? #{i\ 965}# #{j\ 966}#)))) (#{free-id=?\ 154}# - (lambda (#{i\ 906}# #{j\ 907}#) - (if (eq? (let ((#{x\ 908}# #{i\ 906}#)) - (if (#{syntax-object?\ 115}# #{x\ 908}#) - (#{syntax-object-expression\ 116}# #{x\ 908}#) - #{x\ 908}#)) - (let ((#{x\ 909}# #{j\ 907}#)) - (if (#{syntax-object?\ 115}# #{x\ 909}#) - (#{syntax-object-expression\ 116}# #{x\ 909}#) - #{x\ 909}#))) - (eq? (#{id-var-name\ 153}# #{i\ 906}# (quote (()))) - (#{id-var-name\ 153}# #{j\ 907}# (quote (())))) + (lambda (#{i\ 967}# #{j\ 968}#) + (if (eq? (let ((#{x\ 969}# #{i\ 967}#)) + (if (#{syntax-object?\ 115}# #{x\ 969}#) + (#{syntax-object-expression\ 116}# #{x\ 969}#) + #{x\ 969}#)) + (let ((#{x\ 970}# #{j\ 968}#)) + (if (#{syntax-object?\ 115}# #{x\ 970}#) + (#{syntax-object-expression\ 116}# #{x\ 970}#) + #{x\ 970}#))) + (eq? (#{id-var-name\ 153}# #{i\ 967}# (quote (()))) + (#{id-var-name\ 153}# #{j\ 968}# (quote (())))) #f))) (#{id-var-name\ 153}# - (lambda (#{id\ 910}# #{w\ 911}#) - (letrec ((#{search-vector-rib\ 914}# - (lambda (#{sym\ 920}# - #{subst\ 921}# - #{marks\ 922}# - #{symnames\ 923}# - #{ribcage\ 924}#) - (let ((#{n\ 925}# (vector-length - #{symnames\ 923}#))) - (letrec ((#{f\ 926}# (lambda (#{i\ 927}#) + (lambda (#{id\ 971}# #{w\ 972}#) + (letrec ((#{search-vector-rib\ 975}# + (lambda (#{sym\ 981}# + #{subst\ 982}# + #{marks\ 983}# + #{symnames\ 984}# + #{ribcage\ 985}#) + (let ((#{n\ 986}# (vector-length + #{symnames\ 984}#))) + (letrec ((#{f\ 987}# (lambda (#{i\ 988}#) (if (#{fx=\ 88}# - #{i\ 927}# - #{n\ 925}#) - (#{search\ 912}# - #{sym\ 920}# - (cdr #{subst\ 921}#) - #{marks\ 922}#) + #{i\ 988}# + #{n\ 986}#) + (#{search\ 973}# + #{sym\ 981}# + (cdr #{subst\ 982}#) + #{marks\ 983}#) (if (if (eq? (vector-ref - #{symnames\ 923}# - #{i\ 927}#) - #{sym\ 920}#) + #{symnames\ 984}# + #{i\ 988}#) + #{sym\ 981}#) (#{same-marks?\ 152}# - #{marks\ 922}# + #{marks\ 983}# (vector-ref (#{ribcage-marks\ 141}# - #{ribcage\ 924}#) - #{i\ 927}#)) + #{ribcage\ 985}#) + #{i\ 988}#)) #f) (values (vector-ref (#{ribcage-labels\ 142}# - #{ribcage\ 924}#) - #{i\ 927}#) - #{marks\ 922}#) - (#{f\ 926}# (#{fx+\ 86}# - #{i\ 927}# + #{ribcage\ 985}#) + #{i\ 988}#) + #{marks\ 983}#) + (#{f\ 987}# (#{fx+\ 86}# + #{i\ 988}# 1))))))) - (#{f\ 926}# 0))))) - (#{search-list-rib\ 913}# - (lambda (#{sym\ 928}# - #{subst\ 929}# - #{marks\ 930}# - #{symnames\ 931}# - #{ribcage\ 932}#) - (letrec ((#{f\ 933}# (lambda (#{symnames\ 934}# - #{i\ 935}#) - (if (null? #{symnames\ 934}#) - (#{search\ 912}# - #{sym\ 928}# - (cdr #{subst\ 929}#) - #{marks\ 930}#) - (if (if (eq? (car #{symnames\ 934}#) - #{sym\ 928}#) + (#{f\ 987}# 0))))) + (#{search-list-rib\ 974}# + (lambda (#{sym\ 989}# + #{subst\ 990}# + #{marks\ 991}# + #{symnames\ 992}# + #{ribcage\ 993}#) + (letrec ((#{f\ 994}# (lambda (#{symnames\ 995}# + #{i\ 996}#) + (if (null? #{symnames\ 995}#) + (#{search\ 973}# + #{sym\ 989}# + (cdr #{subst\ 990}#) + #{marks\ 991}#) + (if (if (eq? (car #{symnames\ 995}#) + #{sym\ 989}#) (#{same-marks?\ 152}# - #{marks\ 930}# + #{marks\ 991}# (list-ref (#{ribcage-marks\ 141}# - #{ribcage\ 932}#) - #{i\ 935}#)) + #{ribcage\ 993}#) + #{i\ 996}#)) #f) (values (list-ref (#{ribcage-labels\ 142}# - #{ribcage\ 932}#) - #{i\ 935}#) - #{marks\ 930}#) - (#{f\ 933}# (cdr #{symnames\ 934}#) + #{ribcage\ 993}#) + #{i\ 996}#) + #{marks\ 991}#) + (#{f\ 994}# (cdr #{symnames\ 995}#) (#{fx+\ 86}# - #{i\ 935}# + #{i\ 996}# 1))))))) - (#{f\ 933}# #{symnames\ 931}# 0)))) - (#{search\ 912}# - (lambda (#{sym\ 936}# #{subst\ 937}# #{marks\ 938}#) - (if (null? #{subst\ 937}#) - (values #f #{marks\ 938}#) - (let ((#{fst\ 939}# (car #{subst\ 937}#))) - (if (eq? #{fst\ 939}# (quote shift)) - (#{search\ 912}# - #{sym\ 936}# - (cdr #{subst\ 937}#) - (cdr #{marks\ 938}#)) - (let ((#{symnames\ 940}# + (#{f\ 994}# #{symnames\ 992}# 0)))) + (#{search\ 973}# + (lambda (#{sym\ 997}# #{subst\ 998}# #{marks\ 999}#) + (if (null? #{subst\ 998}#) + (values #f #{marks\ 999}#) + (let ((#{fst\ 1000}# (car #{subst\ 998}#))) + (if (eq? #{fst\ 1000}# (quote shift)) + (#{search\ 973}# + #{sym\ 997}# + (cdr #{subst\ 998}#) + (cdr #{marks\ 999}#)) + (let ((#{symnames\ 1001}# (#{ribcage-symnames\ 140}# - #{fst\ 939}#))) - (if (vector? #{symnames\ 940}#) - (#{search-vector-rib\ 914}# - #{sym\ 936}# - #{subst\ 937}# - #{marks\ 938}# - #{symnames\ 940}# - #{fst\ 939}#) - (#{search-list-rib\ 913}# - #{sym\ 936}# - #{subst\ 937}# - #{marks\ 938}# - #{symnames\ 940}# - #{fst\ 939}#))))))))) - (if (symbol? #{id\ 910}#) - (let ((#{t\ 941}# (call-with-values - (lambda () - (#{search\ 912}# - #{id\ 910}# - (#{wrap-subst\ 135}# #{w\ 911}#) - (#{wrap-marks\ 134}# #{w\ 911}#))) - (lambda (#{x\ 942}# . #{ignore\ 943}#) - #{x\ 942}#)))) - (if #{t\ 941}# #{t\ 941}# #{id\ 910}#)) - (if (#{syntax-object?\ 115}# #{id\ 910}#) - (let ((#{id\ 944}# - (#{syntax-object-expression\ 116}# #{id\ 910}#)) - (#{w1\ 945}# - (#{syntax-object-wrap\ 117}# #{id\ 910}#))) - (let ((#{marks\ 946}# + #{fst\ 1000}#))) + (if (vector? #{symnames\ 1001}#) + (#{search-vector-rib\ 975}# + #{sym\ 997}# + #{subst\ 998}# + #{marks\ 999}# + #{symnames\ 1001}# + #{fst\ 1000}#) + (#{search-list-rib\ 974}# + #{sym\ 997}# + #{subst\ 998}# + #{marks\ 999}# + #{symnames\ 1001}# + #{fst\ 1000}#))))))))) + (if (symbol? #{id\ 971}#) + (let ((#{t\ 1002}# + (call-with-values + (lambda () + (#{search\ 973}# + #{id\ 971}# + (#{wrap-subst\ 135}# #{w\ 972}#) + (#{wrap-marks\ 134}# #{w\ 972}#))) + (lambda (#{x\ 1003}# . #{ignore\ 1004}#) + #{x\ 1003}#)))) + (if #{t\ 1002}# #{t\ 1002}# #{id\ 971}#)) + (if (#{syntax-object?\ 115}# #{id\ 971}#) + (let ((#{id\ 1005}# + (#{syntax-object-expression\ 116}# #{id\ 971}#)) + (#{w1\ 1006}# + (#{syntax-object-wrap\ 117}# #{id\ 971}#))) + (let ((#{marks\ 1007}# (#{join-marks\ 151}# - (#{wrap-marks\ 134}# #{w\ 911}#) - (#{wrap-marks\ 134}# #{w1\ 945}#)))) + (#{wrap-marks\ 134}# #{w\ 972}#) + (#{wrap-marks\ 134}# #{w1\ 1006}#)))) (call-with-values (lambda () - (#{search\ 912}# - #{id\ 944}# - (#{wrap-subst\ 135}# #{w\ 911}#) - #{marks\ 946}#)) - (lambda (#{new-id\ 947}# #{marks\ 948}#) - (let ((#{t\ 949}# #{new-id\ 947}#)) - (if #{t\ 949}# - #{t\ 949}# - (let ((#{t\ 950}# (call-with-values - (lambda () - (#{search\ 912}# - #{id\ 944}# - (#{wrap-subst\ 135}# - #{w1\ 945}#) - #{marks\ 948}#)) - (lambda (#{x\ 951}# - . - #{ignore\ 952}#) - #{x\ 951}#)))) - (if #{t\ 950}# - #{t\ 950}# - #{id\ 944}#)))))))) + (#{search\ 973}# + #{id\ 1005}# + (#{wrap-subst\ 135}# #{w\ 972}#) + #{marks\ 1007}#)) + (lambda (#{new-id\ 1008}# #{marks\ 1009}#) + (let ((#{t\ 1010}# #{new-id\ 1008}#)) + (if #{t\ 1010}# + #{t\ 1010}# + (let ((#{t\ 1011}# + (call-with-values + (lambda () + (#{search\ 973}# + #{id\ 1005}# + (#{wrap-subst\ 135}# + #{w1\ 1006}#) + #{marks\ 1009}#)) + (lambda (#{x\ 1012}# + . + #{ignore\ 1013}#) + #{x\ 1012}#)))) + (if #{t\ 1011}# + #{t\ 1011}# + #{id\ 1005}#)))))))) (syntax-violation 'id-var-name "invalid id" - #{id\ 910}#)))))) + #{id\ 971}#)))))) (#{same-marks?\ 152}# - (lambda (#{x\ 953}# #{y\ 954}#) - (let ((#{t\ 955}# (eq? #{x\ 953}# #{y\ 954}#))) - (if #{t\ 955}# - #{t\ 955}# - (if (not (null? #{x\ 953}#)) - (if (not (null? #{y\ 954}#)) - (if (eq? (car #{x\ 953}#) (car #{y\ 954}#)) + (lambda (#{x\ 1014}# #{y\ 1015}#) + (let ((#{t\ 1016}# (eq? #{x\ 1014}# #{y\ 1015}#))) + (if #{t\ 1016}# + #{t\ 1016}# + (if (not (null? #{x\ 1014}#)) + (if (not (null? #{y\ 1015}#)) + (if (eq? (car #{x\ 1014}#) (car #{y\ 1015}#)) (#{same-marks?\ 152}# - (cdr #{x\ 953}#) - (cdr #{y\ 954}#)) + (cdr #{x\ 1014}#) + (cdr #{y\ 1015}#)) #f) #f) #f))))) (#{join-marks\ 151}# - (lambda (#{m1\ 956}# #{m2\ 957}#) - (#{smart-append\ 149}# #{m1\ 956}# #{m2\ 957}#))) + (lambda (#{m1\ 1017}# #{m2\ 1018}#) + (#{smart-append\ 149}# #{m1\ 1017}# #{m2\ 1018}#))) (#{join-wraps\ 150}# - (lambda (#{w1\ 958}# #{w2\ 959}#) - (let ((#{m1\ 960}# (#{wrap-marks\ 134}# #{w1\ 958}#)) - (#{s1\ 961}# (#{wrap-subst\ 135}# #{w1\ 958}#))) - (if (null? #{m1\ 960}#) - (if (null? #{s1\ 961}#) - #{w2\ 959}# + (lambda (#{w1\ 1019}# #{w2\ 1020}#) + (let ((#{m1\ 1021}# (#{wrap-marks\ 134}# #{w1\ 1019}#)) + (#{s1\ 1022}# (#{wrap-subst\ 135}# #{w1\ 1019}#))) + (if (null? #{m1\ 1021}#) + (if (null? #{s1\ 1022}#) + #{w2\ 1020}# (#{make-wrap\ 133}# - (#{wrap-marks\ 134}# #{w2\ 959}#) + (#{wrap-marks\ 134}# #{w2\ 1020}#) (#{smart-append\ 149}# - #{s1\ 961}# - (#{wrap-subst\ 135}# #{w2\ 959}#)))) + #{s1\ 1022}# + (#{wrap-subst\ 135}# #{w2\ 1020}#)))) (#{make-wrap\ 133}# (#{smart-append\ 149}# - #{m1\ 960}# - (#{wrap-marks\ 134}# #{w2\ 959}#)) + #{m1\ 1021}# + (#{wrap-marks\ 134}# #{w2\ 1020}#)) (#{smart-append\ 149}# - #{s1\ 961}# - (#{wrap-subst\ 135}# #{w2\ 959}#))))))) + #{s1\ 1022}# + (#{wrap-subst\ 135}# #{w2\ 1020}#))))))) (#{smart-append\ 149}# - (lambda (#{m1\ 962}# #{m2\ 963}#) - (if (null? #{m2\ 963}#) - #{m1\ 962}# - (append #{m1\ 962}# #{m2\ 963}#)))) + (lambda (#{m1\ 1023}# #{m2\ 1024}#) + (if (null? #{m2\ 1024}#) + #{m1\ 1023}# + (append #{m1\ 1023}# #{m2\ 1024}#)))) (#{make-binding-wrap\ 148}# - (lambda (#{ids\ 964}# #{labels\ 965}# #{w\ 966}#) - (if (null? #{ids\ 964}#) - #{w\ 966}# + (lambda (#{ids\ 1025}# #{labels\ 1026}# #{w\ 1027}#) + (if (null? #{ids\ 1025}#) + #{w\ 1027}# (#{make-wrap\ 133}# - (#{wrap-marks\ 134}# #{w\ 966}#) - (cons (let ((#{labelvec\ 967}# - (list->vector #{labels\ 965}#))) - (let ((#{n\ 968}# (vector-length - #{labelvec\ 967}#))) - (let ((#{symnamevec\ 969}# - (make-vector #{n\ 968}#)) - (#{marksvec\ 970}# - (make-vector #{n\ 968}#))) + (#{wrap-marks\ 134}# #{w\ 1027}#) + (cons (let ((#{labelvec\ 1028}# + (list->vector #{labels\ 1026}#))) + (let ((#{n\ 1029}# + (vector-length #{labelvec\ 1028}#))) + (let ((#{symnamevec\ 1030}# + (make-vector #{n\ 1029}#)) + (#{marksvec\ 1031}# + (make-vector #{n\ 1029}#))) (begin - (letrec ((#{f\ 971}# (lambda (#{ids\ 972}# - #{i\ 973}#) - (if (not (null? #{ids\ 972}#)) - (call-with-values - (lambda () - (#{id-sym-name&marks\ 132}# - (car #{ids\ 972}#) - #{w\ 966}#)) - (lambda (#{symname\ 974}# - #{marks\ 975}#) - (begin - (vector-set! - #{symnamevec\ 969}# - #{i\ 973}# - #{symname\ 974}#) - (vector-set! - #{marksvec\ 970}# - #{i\ 973}# - #{marks\ 975}#) - (#{f\ 971}# (cdr #{ids\ 972}#) - (#{fx+\ 86}# - #{i\ 973}# - 1))))))))) - (#{f\ 971}# #{ids\ 964}# 0)) + (letrec ((#{f\ 1032}# + (lambda (#{ids\ 1033}# #{i\ 1034}#) + (if (not (null? #{ids\ 1033}#)) + (call-with-values + (lambda () + (#{id-sym-name&marks\ 132}# + (car #{ids\ 1033}#) + #{w\ 1027}#)) + (lambda (#{symname\ 1035}# + #{marks\ 1036}#) + (begin + (vector-set! + #{symnamevec\ 1030}# + #{i\ 1034}# + #{symname\ 1035}#) + (vector-set! + #{marksvec\ 1031}# + #{i\ 1034}# + #{marks\ 1036}#) + (#{f\ 1032}# + (cdr #{ids\ 1033}#) + (#{fx+\ 86}# + #{i\ 1034}# + 1))))))))) + (#{f\ 1032}# #{ids\ 1025}# 0)) (#{make-ribcage\ 138}# - #{symnamevec\ 969}# - #{marksvec\ 970}# - #{labelvec\ 967}#))))) - (#{wrap-subst\ 135}# #{w\ 966}#)))))) + #{symnamevec\ 1030}# + #{marksvec\ 1031}# + #{labelvec\ 1028}#))))) + (#{wrap-subst\ 135}# #{w\ 1027}#)))))) (#{extend-ribcage!\ 147}# - (lambda (#{ribcage\ 976}# #{id\ 977}# #{label\ 978}#) + (lambda (#{ribcage\ 1037}# #{id\ 1038}# #{label\ 1039}#) (begin (#{set-ribcage-symnames!\ 143}# - #{ribcage\ 976}# - (cons (#{syntax-object-expression\ 116}# #{id\ 977}#) - (#{ribcage-symnames\ 140}# #{ribcage\ 976}#))) + #{ribcage\ 1037}# + (cons (#{syntax-object-expression\ 116}# #{id\ 1038}#) + (#{ribcage-symnames\ 140}# #{ribcage\ 1037}#))) (#{set-ribcage-marks!\ 144}# - #{ribcage\ 976}# + #{ribcage\ 1037}# (cons (#{wrap-marks\ 134}# - (#{syntax-object-wrap\ 117}# #{id\ 977}#)) - (#{ribcage-marks\ 141}# #{ribcage\ 976}#))) + (#{syntax-object-wrap\ 117}# #{id\ 1038}#)) + (#{ribcage-marks\ 141}# #{ribcage\ 1037}#))) (#{set-ribcage-labels!\ 145}# - #{ribcage\ 976}# - (cons #{label\ 978}# - (#{ribcage-labels\ 142}# #{ribcage\ 976}#)))))) + #{ribcage\ 1037}# + (cons #{label\ 1039}# + (#{ribcage-labels\ 142}# #{ribcage\ 1037}#)))))) (#{anti-mark\ 146}# - (lambda (#{w\ 979}#) + (lambda (#{w\ 1040}#) (#{make-wrap\ 133}# - (cons #f (#{wrap-marks\ 134}# #{w\ 979}#)) + (cons #f (#{wrap-marks\ 134}# #{w\ 1040}#)) (cons 'shift - (#{wrap-subst\ 135}# #{w\ 979}#))))) + (#{wrap-subst\ 135}# #{w\ 1040}#))))) (#{set-ribcage-labels!\ 145}# - (lambda (#{x\ 980}# #{update\ 981}#) - (vector-set! #{x\ 980}# 3 #{update\ 981}#))) + (lambda (#{x\ 1041}# #{update\ 1042}#) + (vector-set! #{x\ 1041}# 3 #{update\ 1042}#))) (#{set-ribcage-marks!\ 144}# - (lambda (#{x\ 982}# #{update\ 983}#) - (vector-set! #{x\ 982}# 2 #{update\ 983}#))) + (lambda (#{x\ 1043}# #{update\ 1044}#) + (vector-set! #{x\ 1043}# 2 #{update\ 1044}#))) (#{set-ribcage-symnames!\ 143}# - (lambda (#{x\ 984}# #{update\ 985}#) - (vector-set! #{x\ 984}# 1 #{update\ 985}#))) + (lambda (#{x\ 1045}# #{update\ 1046}#) + (vector-set! #{x\ 1045}# 1 #{update\ 1046}#))) (#{ribcage-labels\ 142}# - (lambda (#{x\ 986}#) (vector-ref #{x\ 986}# 3))) + (lambda (#{x\ 1047}#) (vector-ref #{x\ 1047}# 3))) (#{ribcage-marks\ 141}# - (lambda (#{x\ 987}#) (vector-ref #{x\ 987}# 2))) + (lambda (#{x\ 1048}#) (vector-ref #{x\ 1048}# 2))) (#{ribcage-symnames\ 140}# - (lambda (#{x\ 988}#) (vector-ref #{x\ 988}# 1))) + (lambda (#{x\ 1049}#) (vector-ref #{x\ 1049}# 1))) (#{ribcage?\ 139}# - (lambda (#{x\ 989}#) - (if (vector? #{x\ 989}#) - (if (= (vector-length #{x\ 989}#) 4) - (eq? (vector-ref #{x\ 989}# 0) (quote ribcage)) + (lambda (#{x\ 1050}#) + (if (vector? #{x\ 1050}#) + (if (= (vector-length #{x\ 1050}#) 4) + (eq? (vector-ref #{x\ 1050}# 0) (quote ribcage)) #f) #f))) (#{make-ribcage\ 138}# - (lambda (#{symnames\ 990}# - #{marks\ 991}# - #{labels\ 992}#) + (lambda (#{symnames\ 1051}# + #{marks\ 1052}# + #{labels\ 1053}#) (vector 'ribcage - #{symnames\ 990}# - #{marks\ 991}# - #{labels\ 992}#))) + #{symnames\ 1051}# + #{marks\ 1052}# + #{labels\ 1053}#))) (#{gen-labels\ 137}# - (lambda (#{ls\ 993}#) - (if (null? #{ls\ 993}#) + (lambda (#{ls\ 1054}#) + (if (null? #{ls\ 1054}#) '() (cons (#{gen-label\ 136}#) - (#{gen-labels\ 137}# (cdr #{ls\ 993}#)))))) + (#{gen-labels\ 137}# (cdr #{ls\ 1054}#)))))) (#{gen-label\ 136}# (lambda () (string #\i))) (#{wrap-subst\ 135}# cdr) (#{wrap-marks\ 134}# car) (#{make-wrap\ 133}# cons) (#{id-sym-name&marks\ 132}# - (lambda (#{x\ 994}# #{w\ 995}#) - (if (#{syntax-object?\ 115}# #{x\ 994}#) + (lambda (#{x\ 1055}# #{w\ 1056}#) + (if (#{syntax-object?\ 115}# #{x\ 1055}#) (values - (#{syntax-object-expression\ 116}# #{x\ 994}#) + (#{syntax-object-expression\ 116}# #{x\ 1055}#) (#{join-marks\ 151}# - (#{wrap-marks\ 134}# #{w\ 995}#) + (#{wrap-marks\ 134}# #{w\ 1056}#) (#{wrap-marks\ 134}# - (#{syntax-object-wrap\ 117}# #{x\ 994}#)))) + (#{syntax-object-wrap\ 117}# #{x\ 1055}#)))) (values - #{x\ 994}# - (#{wrap-marks\ 134}# #{w\ 995}#))))) + #{x\ 1055}# + (#{wrap-marks\ 134}# #{w\ 1056}#))))) (#{id?\ 131}# - (lambda (#{x\ 996}#) - (if (symbol? #{x\ 996}#) + (lambda (#{x\ 1057}#) + (if (symbol? #{x\ 1057}#) #t - (if (#{syntax-object?\ 115}# #{x\ 996}#) + (if (#{syntax-object?\ 115}# #{x\ 1057}#) (symbol? - (#{syntax-object-expression\ 116}# #{x\ 996}#)) + (#{syntax-object-expression\ 116}# #{x\ 1057}#)) #f)))) (#{nonsymbol-id?\ 130}# - (lambda (#{x\ 997}#) - (if (#{syntax-object?\ 115}# #{x\ 997}#) + (lambda (#{x\ 1058}#) + (if (#{syntax-object?\ 115}# #{x\ 1058}#) (symbol? - (#{syntax-object-expression\ 116}# #{x\ 997}#)) + (#{syntax-object-expression\ 116}# #{x\ 1058}#)) #f))) (#{global-extend\ 129}# - (lambda (#{type\ 998}# #{sym\ 999}# #{val\ 1000}#) + (lambda (#{type\ 1059}# #{sym\ 1060}# #{val\ 1061}#) (#{put-global-definition-hook\ 92}# - #{sym\ 999}# - #{type\ 998}# - #{val\ 1000}#))) + #{sym\ 1060}# + #{type\ 1059}# + #{val\ 1061}#))) (#{lookup\ 128}# - (lambda (#{x\ 1001}# #{r\ 1002}# #{mod\ 1003}#) - (let ((#{t\ 1004}# (assq #{x\ 1001}# #{r\ 1002}#))) - (if #{t\ 1004}# - (cdr #{t\ 1004}#) - (if (symbol? #{x\ 1001}#) - (let ((#{t\ 1005}# + (lambda (#{x\ 1062}# #{r\ 1063}# #{mod\ 1064}#) + (let ((#{t\ 1065}# (assq #{x\ 1062}# #{r\ 1063}#))) + (if #{t\ 1065}# + (cdr #{t\ 1065}#) + (if (symbol? #{x\ 1062}#) + (let ((#{t\ 1066}# (#{get-global-definition-hook\ 93}# - #{x\ 1001}# - #{mod\ 1003}#))) - (if #{t\ 1005}# #{t\ 1005}# (quote (global)))) + #{x\ 1062}# + #{mod\ 1064}#))) + (if #{t\ 1066}# #{t\ 1066}# (quote (global)))) '(displaced-lexical)))))) (#{macros-only-env\ 127}# - (lambda (#{r\ 1006}#) - (if (null? #{r\ 1006}#) + (lambda (#{r\ 1067}#) + (if (null? #{r\ 1067}#) '() - (let ((#{a\ 1007}# (car #{r\ 1006}#))) - (if (eq? (cadr #{a\ 1007}#) (quote macro)) - (cons #{a\ 1007}# - (#{macros-only-env\ 127}# (cdr #{r\ 1006}#))) - (#{macros-only-env\ 127}# (cdr #{r\ 1006}#))))))) + (let ((#{a\ 1068}# (car #{r\ 1067}#))) + (if (eq? (cadr #{a\ 1068}#) (quote macro)) + (cons #{a\ 1068}# + (#{macros-only-env\ 127}# (cdr #{r\ 1067}#))) + (#{macros-only-env\ 127}# (cdr #{r\ 1067}#))))))) (#{extend-var-env\ 126}# - (lambda (#{labels\ 1008}# #{vars\ 1009}# #{r\ 1010}#) - (if (null? #{labels\ 1008}#) - #{r\ 1010}# + (lambda (#{labels\ 1069}# #{vars\ 1070}# #{r\ 1071}#) + (if (null? #{labels\ 1069}#) + #{r\ 1071}# (#{extend-var-env\ 126}# - (cdr #{labels\ 1008}#) - (cdr #{vars\ 1009}#) - (cons (cons (car #{labels\ 1008}#) - (cons (quote lexical) (car #{vars\ 1009}#))) - #{r\ 1010}#))))) + (cdr #{labels\ 1069}#) + (cdr #{vars\ 1070}#) + (cons (cons (car #{labels\ 1069}#) + (cons (quote lexical) (car #{vars\ 1070}#))) + #{r\ 1071}#))))) (#{extend-env\ 125}# - (lambda (#{labels\ 1011}# #{bindings\ 1012}# #{r\ 1013}#) - (if (null? #{labels\ 1011}#) - #{r\ 1013}# + (lambda (#{labels\ 1072}# #{bindings\ 1073}# #{r\ 1074}#) + (if (null? #{labels\ 1072}#) + #{r\ 1074}# (#{extend-env\ 125}# - (cdr #{labels\ 1011}#) - (cdr #{bindings\ 1012}#) - (cons (cons (car #{labels\ 1011}#) - (car #{bindings\ 1012}#)) - #{r\ 1013}#))))) + (cdr #{labels\ 1072}#) + (cdr #{bindings\ 1073}#) + (cons (cons (car #{labels\ 1072}#) + (car #{bindings\ 1073}#)) + #{r\ 1074}#))))) (#{binding-value\ 124}# cdr) (#{binding-type\ 123}# car) (#{source-annotation\ 122}# - (lambda (#{x\ 1014}#) - (if (#{syntax-object?\ 115}# #{x\ 1014}#) + (lambda (#{x\ 1075}#) + (if (#{syntax-object?\ 115}# #{x\ 1075}#) (#{source-annotation\ 122}# - (#{syntax-object-expression\ 116}# #{x\ 1014}#)) - (if (pair? #{x\ 1014}#) - (let ((#{props\ 1015}# (source-properties #{x\ 1014}#))) - (if (pair? #{props\ 1015}#) #{props\ 1015}# #f)) + (#{syntax-object-expression\ 116}# #{x\ 1075}#)) + (if (pair? #{x\ 1075}#) + (let ((#{props\ 1076}# (source-properties #{x\ 1075}#))) + (if (pair? #{props\ 1076}#) #{props\ 1076}# #f)) #f)))) (#{set-syntax-object-module!\ 121}# - (lambda (#{x\ 1016}# #{update\ 1017}#) - (vector-set! #{x\ 1016}# 3 #{update\ 1017}#))) + (lambda (#{x\ 1077}# #{update\ 1078}#) + (vector-set! #{x\ 1077}# 3 #{update\ 1078}#))) (#{set-syntax-object-wrap!\ 120}# - (lambda (#{x\ 1018}# #{update\ 1019}#) - (vector-set! #{x\ 1018}# 2 #{update\ 1019}#))) + (lambda (#{x\ 1079}# #{update\ 1080}#) + (vector-set! #{x\ 1079}# 2 #{update\ 1080}#))) (#{set-syntax-object-expression!\ 119}# - (lambda (#{x\ 1020}# #{update\ 1021}#) - (vector-set! #{x\ 1020}# 1 #{update\ 1021}#))) + (lambda (#{x\ 1081}# #{update\ 1082}#) + (vector-set! #{x\ 1081}# 1 #{update\ 1082}#))) (#{syntax-object-module\ 118}# - (lambda (#{x\ 1022}#) (vector-ref #{x\ 1022}# 3))) + (lambda (#{x\ 1083}#) (vector-ref #{x\ 1083}# 3))) (#{syntax-object-wrap\ 117}# - (lambda (#{x\ 1023}#) (vector-ref #{x\ 1023}# 2))) + (lambda (#{x\ 1084}#) (vector-ref #{x\ 1084}# 2))) (#{syntax-object-expression\ 116}# - (lambda (#{x\ 1024}#) (vector-ref #{x\ 1024}# 1))) + (lambda (#{x\ 1085}#) (vector-ref #{x\ 1085}# 1))) (#{syntax-object?\ 115}# - (lambda (#{x\ 1025}#) - (if (vector? #{x\ 1025}#) - (if (= (vector-length #{x\ 1025}#) 4) - (eq? (vector-ref #{x\ 1025}# 0) + (lambda (#{x\ 1086}#) + (if (vector? #{x\ 1086}#) + (if (= (vector-length #{x\ 1086}#) 4) + (eq? (vector-ref #{x\ 1086}# 0) 'syntax-object) #f) #f))) (#{make-syntax-object\ 114}# - (lambda (#{expression\ 1026}# - #{wrap\ 1027}# - #{module\ 1028}#) + (lambda (#{expression\ 1087}# + #{wrap\ 1088}# + #{module\ 1089}#) (vector 'syntax-object - #{expression\ 1026}# - #{wrap\ 1027}# - #{module\ 1028}#))) + #{expression\ 1087}# + #{wrap\ 1088}# + #{module\ 1089}#))) (#{build-letrec\ 113}# - (lambda (#{src\ 1029}# - #{ids\ 1030}# - #{vars\ 1031}# - #{val-exps\ 1032}# - #{body-exp\ 1033}#) - (if (null? #{vars\ 1031}#) - #{body-exp\ 1033}# - (let ((#{atom-key\ 1034}# (fluid-ref #{*mode*\ 85}#))) - (if (memv #{atom-key\ 1034}# (quote (c))) + (lambda (#{src\ 1090}# + #{ids\ 1091}# + #{vars\ 1092}# + #{val-exps\ 1093}# + #{body-exp\ 1094}#) + (if (null? #{vars\ 1092}#) + #{body-exp\ 1094}# + (let ((#{atom-key\ 1095}# (fluid-ref #{*mode*\ 85}#))) + (if (memv #{atom-key\ 1095}# (quote (c))) (begin (for-each #{maybe-name-value!\ 103}# - #{ids\ 1030}# - #{val-exps\ 1032}#) + #{ids\ 1091}# + #{val-exps\ 1093}#) ((@ (language tree-il) make-letrec) - #{src\ 1029}# - #{ids\ 1030}# - #{vars\ 1031}# - #{val-exps\ 1032}# - #{body-exp\ 1033}#)) + #{src\ 1090}# + #{ids\ 1091}# + #{vars\ 1092}# + #{val-exps\ 1093}# + #{body-exp\ 1094}#)) (#{decorate-source\ 94}# (list 'letrec - (map list #{vars\ 1031}# #{val-exps\ 1032}#) - #{body-exp\ 1033}#) - #{src\ 1029}#)))))) + (map list #{vars\ 1092}# #{val-exps\ 1093}#) + #{body-exp\ 1094}#) + #{src\ 1090}#)))))) (#{build-named-let\ 112}# - (lambda (#{src\ 1035}# - #{ids\ 1036}# - #{vars\ 1037}# - #{val-exps\ 1038}# - #{body-exp\ 1039}#) - (let ((#{f\ 1040}# (car #{vars\ 1037}#)) - (#{f-name\ 1041}# (car #{ids\ 1036}#)) - (#{vars\ 1042}# (cdr #{vars\ 1037}#)) - (#{ids\ 1043}# (cdr #{ids\ 1036}#))) - (let ((#{atom-key\ 1044}# (fluid-ref #{*mode*\ 85}#))) - (if (memv #{atom-key\ 1044}# (quote (c))) - (let ((#{proc\ 1045}# + (lambda (#{src\ 1096}# + #{ids\ 1097}# + #{vars\ 1098}# + #{val-exps\ 1099}# + #{body-exp\ 1100}#) + (let ((#{f\ 1101}# (car #{vars\ 1098}#)) + (#{f-name\ 1102}# (car #{ids\ 1097}#)) + (#{vars\ 1103}# (cdr #{vars\ 1098}#)) + (#{ids\ 1104}# (cdr #{ids\ 1097}#))) + (let ((#{atom-key\ 1105}# (fluid-ref #{*mode*\ 85}#))) + (if (memv #{atom-key\ 1105}# (quote (c))) + (let ((#{proc\ 1106}# (#{build-simple-lambda\ 105}# - #{src\ 1035}# - #{ids\ 1043}# + #{src\ 1096}# + #{ids\ 1104}# #f - #{vars\ 1042}# + #{vars\ 1103}# #f - #{body-exp\ 1039}#))) + #{body-exp\ 1100}#))) (begin (#{maybe-name-value!\ 103}# - #{f-name\ 1041}# - #{proc\ 1045}#) + #{f-name\ 1102}# + #{proc\ 1106}#) (for-each #{maybe-name-value!\ 103}# - #{ids\ 1043}# - #{val-exps\ 1038}#) + #{ids\ 1104}# + #{val-exps\ 1099}#) ((@ (language tree-il) make-letrec) - #{src\ 1035}# - (list #{f-name\ 1041}#) - (list #{f\ 1040}#) - (list #{proc\ 1045}#) + #{src\ 1096}# + (list #{f-name\ 1102}#) + (list #{f\ 1101}#) + (list #{proc\ 1106}#) (#{build-application\ 96}# - #{src\ 1035}# + #{src\ 1096}# (#{build-lexical-reference\ 98}# 'fun - #{src\ 1035}# - #{f-name\ 1041}# - #{f\ 1040}#) - #{val-exps\ 1038}#)))) + #{src\ 1096}# + #{f-name\ 1102}# + #{f\ 1101}#) + #{val-exps\ 1099}#)))) (#{decorate-source\ 94}# (list 'let - #{f\ 1040}# - (map list #{vars\ 1042}# #{val-exps\ 1038}#) - #{body-exp\ 1039}#) - #{src\ 1035}#)))))) + #{f\ 1101}# + (map list #{vars\ 1103}# #{val-exps\ 1099}#) + #{body-exp\ 1100}#) + #{src\ 1096}#)))))) (#{build-let\ 111}# - (lambda (#{src\ 1046}# - #{ids\ 1047}# - #{vars\ 1048}# - #{val-exps\ 1049}# - #{body-exp\ 1050}#) - (if (null? #{vars\ 1048}#) - #{body-exp\ 1050}# - (let ((#{atom-key\ 1051}# (fluid-ref #{*mode*\ 85}#))) - (if (memv #{atom-key\ 1051}# (quote (c))) + (lambda (#{src\ 1107}# + #{ids\ 1108}# + #{vars\ 1109}# + #{val-exps\ 1110}# + #{body-exp\ 1111}#) + (if (null? #{vars\ 1109}#) + #{body-exp\ 1111}# + (let ((#{atom-key\ 1112}# (fluid-ref #{*mode*\ 85}#))) + (if (memv #{atom-key\ 1112}# (quote (c))) (begin (for-each #{maybe-name-value!\ 103}# - #{ids\ 1047}# - #{val-exps\ 1049}#) + #{ids\ 1108}# + #{val-exps\ 1110}#) ((@ (language tree-il) make-let) - #{src\ 1046}# - #{ids\ 1047}# - #{vars\ 1048}# - #{val-exps\ 1049}# - #{body-exp\ 1050}#)) + #{src\ 1107}# + #{ids\ 1108}# + #{vars\ 1109}# + #{val-exps\ 1110}# + #{body-exp\ 1111}#)) (#{decorate-source\ 94}# (list 'let - (map list #{vars\ 1048}# #{val-exps\ 1049}#) - #{body-exp\ 1050}#) - #{src\ 1046}#)))))) + (map list #{vars\ 1109}# #{val-exps\ 1110}#) + #{body-exp\ 1111}#) + #{src\ 1107}#)))))) (#{build-sequence\ 110}# - (lambda (#{src\ 1052}# #{exps\ 1053}#) - (if (null? (cdr #{exps\ 1053}#)) - (car #{exps\ 1053}#) - (let ((#{atom-key\ 1054}# (fluid-ref #{*mode*\ 85}#))) - (if (memv #{atom-key\ 1054}# (quote (c))) + (lambda (#{src\ 1113}# #{exps\ 1114}#) + (if (null? (cdr #{exps\ 1114}#)) + (car #{exps\ 1114}#) + (let ((#{atom-key\ 1115}# (fluid-ref #{*mode*\ 85}#))) + (if (memv #{atom-key\ 1115}# (quote (c))) ((@ (language tree-il) make-sequence) - #{src\ 1052}# - #{exps\ 1053}#) + #{src\ 1113}# + #{exps\ 1114}#) (#{decorate-source\ 94}# - (cons (quote begin) #{exps\ 1053}#) - #{src\ 1052}#)))))) + (cons (quote begin) #{exps\ 1114}#) + #{src\ 1113}#)))))) (#{build-data\ 109}# - (lambda (#{src\ 1055}# #{exp\ 1056}#) - (let ((#{atom-key\ 1057}# (fluid-ref #{*mode*\ 85}#))) - (if (memv #{atom-key\ 1057}# (quote (c))) + (lambda (#{src\ 1116}# #{exp\ 1117}#) + (let ((#{atom-key\ 1118}# (fluid-ref #{*mode*\ 85}#))) + (if (memv #{atom-key\ 1118}# (quote (c))) ((@ (language tree-il) make-const) - #{src\ 1055}# - #{exp\ 1056}#) + #{src\ 1116}# + #{exp\ 1117}#) (#{decorate-source\ 94}# - (if (if (self-evaluating? #{exp\ 1056}#) - (not (vector? #{exp\ 1056}#)) + (if (if (self-evaluating? #{exp\ 1117}#) + (not (vector? #{exp\ 1117}#)) #f) - #{exp\ 1056}# - (list (quote quote) #{exp\ 1056}#)) - #{src\ 1055}#))))) + #{exp\ 1117}# + (list (quote quote) #{exp\ 1117}#)) + #{src\ 1116}#))))) (#{build-primref\ 108}# - (lambda (#{src\ 1058}# #{name\ 1059}#) + (lambda (#{src\ 1119}# #{name\ 1120}#) (if (equal? (module-name (current-module)) '(guile)) - (let ((#{atom-key\ 1060}# (fluid-ref #{*mode*\ 85}#))) - (if (memv #{atom-key\ 1060}# (quote (c))) + (let ((#{atom-key\ 1121}# (fluid-ref #{*mode*\ 85}#))) + (if (memv #{atom-key\ 1121}# (quote (c))) ((@ (language tree-il) make-toplevel-ref) - #{src\ 1058}# - #{name\ 1059}#) + #{src\ 1119}# + #{name\ 1120}#) (#{decorate-source\ 94}# - #{name\ 1059}# - #{src\ 1058}#))) - (let ((#{atom-key\ 1061}# (fluid-ref #{*mode*\ 85}#))) - (if (memv #{atom-key\ 1061}# (quote (c))) + #{name\ 1120}# + #{src\ 1119}#))) + (let ((#{atom-key\ 1122}# (fluid-ref #{*mode*\ 85}#))) + (if (memv #{atom-key\ 1122}# (quote (c))) ((@ (language tree-il) make-module-ref) - #{src\ 1058}# + #{src\ 1119}# '(guile) - #{name\ 1059}# + #{name\ 1120}# #f) (#{decorate-source\ 94}# - (list (quote @@) (quote (guile)) #{name\ 1059}#) - #{src\ 1058}#)))))) + (list (quote @@) (quote (guile)) #{name\ 1120}#) + #{src\ 1119}#)))))) (#{build-lambda-case\ 107}# - (lambda (#{src\ 1062}# - #{req\ 1063}# - #{opt\ 1064}# - #{rest\ 1065}# - #{kw\ 1066}# - #{inits\ 1067}# - #{vars\ 1068}# - #{predicate\ 1069}# - #{body\ 1070}# - #{else-case\ 1071}#) - (let ((#{atom-key\ 1072}# (fluid-ref #{*mode*\ 85}#))) - (if (memv #{atom-key\ 1072}# (quote (c))) + (lambda (#{src\ 1123}# + #{req\ 1124}# + #{opt\ 1125}# + #{rest\ 1126}# + #{kw\ 1127}# + #{inits\ 1128}# + #{vars\ 1129}# + #{predicate\ 1130}# + #{body\ 1131}# + #{else-case\ 1132}#) + (let ((#{atom-key\ 1133}# (fluid-ref #{*mode*\ 85}#))) + (if (memv #{atom-key\ 1133}# (quote (c))) ((@ (language tree-il) make-lambda-case) - #{src\ 1062}# - #{req\ 1063}# - #{opt\ 1064}# - #{rest\ 1065}# - #{kw\ 1066}# - #{inits\ 1067}# - #{vars\ 1068}# - #{predicate\ 1069}# - #{body\ 1070}# - #{else-case\ 1071}#) - (let ((#{nreq\ 1073}# (length #{req\ 1063}#))) - (let ((#{nopt\ 1074}# - (if #{opt\ 1064}# (length #{opt\ 1064}#) 0))) - (let ((#{rest-idx\ 1075}# - (if #{rest\ 1065}# - (+ #{nreq\ 1073}# #{nopt\ 1074}#) + #{src\ 1123}# + #{req\ 1124}# + #{opt\ 1125}# + #{rest\ 1126}# + #{kw\ 1127}# + #{inits\ 1128}# + #{vars\ 1129}# + #{predicate\ 1130}# + #{body\ 1131}# + #{else-case\ 1132}#) + (let ((#{nreq\ 1134}# (length #{req\ 1124}#))) + (let ((#{nopt\ 1135}# + (if #{opt\ 1125}# (length #{opt\ 1125}#) 0))) + (let ((#{rest-idx\ 1136}# + (if #{rest\ 1126}# + (+ #{nreq\ 1134}# #{nopt\ 1135}#) #f))) - (let ((#{allow-other-keys?\ 1076}# - (if #{kw\ 1066}# (car #{kw\ 1066}#) #f))) - (let ((#{kw-indices\ 1077}# - (map (lambda (#{x\ 1078}#) - (cons (car #{x\ 1078}#) + (let ((#{allow-other-keys?\ 1137}# + (if #{kw\ 1127}# (car #{kw\ 1127}#) #f))) + (let ((#{kw-indices\ 1138}# + (map (lambda (#{x\ 1139}#) + (cons (car #{x\ 1139}#) (list-index - #{vars\ 1068}# - (caddr #{x\ 1078}#)))) - (if #{kw\ 1066}# - (cdr #{kw\ 1066}#) + #{vars\ 1129}# + (caddr #{x\ 1139}#)))) + (if #{kw\ 1127}# + (cdr #{kw\ 1127}#) '())))) - (let ((#{nargs\ 1079}# + (let ((#{nargs\ 1140}# (apply max - (+ #{nreq\ 1073}# - #{nopt\ 1074}# - (if #{rest\ 1065}# 1 0)) + (+ #{nreq\ 1134}# + #{nopt\ 1135}# + (if #{rest\ 1126}# 1 0)) (map 1+ (map cdr - #{kw-indices\ 1077}#))))) + #{kw-indices\ 1138}#))))) (begin - (let ((#{t\ 1080}# - (= #{nargs\ 1079}# - (length #{vars\ 1068}#) - (+ #{nreq\ 1073}# - (length #{inits\ 1067}#) - (if #{rest\ 1065}# 1 0))))) - (if #{t\ 1080}# - #{t\ 1080}# + (let ((#{t\ 1141}# + (= #{nargs\ 1140}# + (length #{vars\ 1129}#) + (+ #{nreq\ 1134}# + (length #{inits\ 1128}#) + (if #{rest\ 1126}# 1 0))))) + (if #{t\ 1141}# + #{t\ 1141}# (error "something went wrong" - #{req\ 1063}# - #{opt\ 1064}# - #{rest\ 1065}# - #{kw\ 1066}# - #{inits\ 1067}# - #{vars\ 1068}# - #{nreq\ 1073}# - #{nopt\ 1074}# - #{kw-indices\ 1077}# - #{nargs\ 1079}#))) + #{req\ 1124}# + #{opt\ 1125}# + #{rest\ 1126}# + #{kw\ 1127}# + #{inits\ 1128}# + #{vars\ 1129}# + #{nreq\ 1134}# + #{nopt\ 1135}# + #{kw-indices\ 1138}# + #{nargs\ 1140}#))) (#{decorate-source\ 94}# (cons (list (cons '(@@ (ice-9 optargs) parse-lambda-case) (cons (list 'quote - (list #{nreq\ 1073}# - #{nopt\ 1074}# - #{rest-idx\ 1075}# - #{nargs\ 1079}# - #{allow-other-keys?\ 1076}# - #{kw-indices\ 1077}#)) + (list #{nreq\ 1134}# + #{nopt\ 1135}# + #{rest-idx\ 1136}# + #{nargs\ 1140}# + #{allow-other-keys?\ 1137}# + #{kw-indices\ 1138}#)) (cons (cons 'list - (map (lambda (#{i\ 1081}#) + (map (lambda (#{i\ 1142}#) (list 'lambda - #{vars\ 1068}# - #{i\ 1081}#)) - #{inits\ 1067}#)) - (cons (if #{predicate\ 1069}# + #{vars\ 1129}# + #{i\ 1142}#)) + #{inits\ 1128}#)) + (cons (if #{predicate\ 1130}# (list 'lambda - #{vars\ 1068}# - #{predicate\ 1069}#) + #{vars\ 1129}# + #{predicate\ 1130}#) #f) '(%%args))))) '=> @@ -7523,353 +7750,353 @@ '(%%%args . _) (cons 'apply (cons (list 'lambda - #{vars\ 1068}# - #{body\ 1070}#) + #{vars\ 1129}# + #{body\ 1131}#) '(%%%args))))) - (let ((#{t\ 1082}# - #{else-case\ 1071}#)) - (if #{t\ 1082}# - #{t\ 1082}# + (let ((#{t\ 1143}# + #{else-case\ 1132}#)) + (if #{t\ 1143}# + #{t\ 1143}# '((%%args (error "wrong number of arguments" %%args)))))) - #{src\ 1062}#)))))))))))) + #{src\ 1123}#)))))))))))) (#{build-case-lambda\ 106}# - (lambda (#{src\ 1083}# - #{docstring\ 1084}# - #{body\ 1085}#) - (let ((#{atom-key\ 1086}# (fluid-ref #{*mode*\ 85}#))) - (if (memv #{atom-key\ 1086}# (quote (c))) + (lambda (#{src\ 1144}# + #{docstring\ 1145}# + #{body\ 1146}#) + (let ((#{atom-key\ 1147}# (fluid-ref #{*mode*\ 85}#))) + (if (memv #{atom-key\ 1147}# (quote (c))) ((@ (language tree-il) make-lambda) - #{src\ 1083}# - (if #{docstring\ 1084}# - (list (cons (quote documentation) #{docstring\ 1084}#)) + #{src\ 1144}# + (if #{docstring\ 1145}# + (list (cons (quote documentation) #{docstring\ 1145}#)) '()) - #{body\ 1085}#) + #{body\ 1146}#) (#{decorate-source\ 94}# (cons 'lambda (cons '%%args (append - (if #{docstring\ 1084}# - (list #{docstring\ 1084}#) + (if #{docstring\ 1145}# + (list #{docstring\ 1145}#) '()) - (list (cons (quote cond) #{body\ 1085}#))))) - #{src\ 1083}#))))) + (list (cons (quote cond) #{body\ 1146}#))))) + #{src\ 1144}#))))) (#{build-simple-lambda\ 105}# - (lambda (#{src\ 1087}# - #{req\ 1088}# - #{rest\ 1089}# - #{vars\ 1090}# - #{docstring\ 1091}# - #{exp\ 1092}#) - (let ((#{atom-key\ 1093}# (fluid-ref #{*mode*\ 85}#))) - (if (memv #{atom-key\ 1093}# (quote (c))) + (lambda (#{src\ 1148}# + #{req\ 1149}# + #{rest\ 1150}# + #{vars\ 1151}# + #{docstring\ 1152}# + #{exp\ 1153}#) + (let ((#{atom-key\ 1154}# (fluid-ref #{*mode*\ 85}#))) + (if (memv #{atom-key\ 1154}# (quote (c))) ((@ (language tree-il) make-lambda) - #{src\ 1087}# - (if #{docstring\ 1091}# - (list (cons (quote documentation) #{docstring\ 1091}#)) + #{src\ 1148}# + (if #{docstring\ 1152}# + (list (cons (quote documentation) #{docstring\ 1152}#)) '()) ((@ (language tree-il) make-lambda-case) - #{src\ 1087}# - #{req\ 1088}# + #{src\ 1148}# + #{req\ 1149}# #f - #{rest\ 1089}# + #{rest\ 1150}# #f '() - #{vars\ 1090}# + #{vars\ 1151}# #f - #{exp\ 1092}# + #{exp\ 1153}# #f)) (#{decorate-source\ 94}# (cons 'lambda - (cons (if #{rest\ 1089}# - (apply cons* #{vars\ 1090}#) - #{vars\ 1090}#) + (cons (if #{rest\ 1150}# + (apply cons* #{vars\ 1151}#) + #{vars\ 1151}#) (append - (if #{docstring\ 1091}# - (list #{docstring\ 1091}#) + (if #{docstring\ 1152}# + (list #{docstring\ 1152}#) '()) - (list #{exp\ 1092}#)))) - #{src\ 1087}#))))) + (list #{exp\ 1153}#)))) + #{src\ 1148}#))))) (#{build-global-definition\ 104}# - (lambda (#{source\ 1094}# #{var\ 1095}# #{exp\ 1096}#) - (let ((#{atom-key\ 1097}# (fluid-ref #{*mode*\ 85}#))) - (if (memv #{atom-key\ 1097}# (quote (c))) + (lambda (#{source\ 1155}# #{var\ 1156}# #{exp\ 1157}#) + (let ((#{atom-key\ 1158}# (fluid-ref #{*mode*\ 85}#))) + (if (memv #{atom-key\ 1158}# (quote (c))) (begin (#{maybe-name-value!\ 103}# - #{var\ 1095}# - #{exp\ 1096}#) + #{var\ 1156}# + #{exp\ 1157}#) ((@ (language tree-il) make-toplevel-define) - #{source\ 1094}# - #{var\ 1095}# - #{exp\ 1096}#)) + #{source\ 1155}# + #{var\ 1156}# + #{exp\ 1157}#)) (#{decorate-source\ 94}# - (list (quote define) #{var\ 1095}# #{exp\ 1096}#) - #{source\ 1094}#))))) + (list (quote define) #{var\ 1156}# #{exp\ 1157}#) + #{source\ 1155}#))))) (#{maybe-name-value!\ 103}# - (lambda (#{name\ 1098}# #{val\ 1099}#) - (if ((@ (language tree-il) lambda?) #{val\ 1099}#) - (let ((#{meta\ 1100}# + (lambda (#{name\ 1159}# #{val\ 1160}#) + (if ((@ (language tree-il) lambda?) #{val\ 1160}#) + (let ((#{meta\ 1161}# ((@ (language tree-il) lambda-meta) - #{val\ 1099}#))) - (if (not (assq (quote name) #{meta\ 1100}#)) + #{val\ 1160}#))) + (if (not (assq (quote name) #{meta\ 1161}#)) ((setter (@ (language tree-il) lambda-meta)) - #{val\ 1099}# + #{val\ 1160}# (acons 'name - #{name\ 1098}# - #{meta\ 1100}#))))))) + #{name\ 1159}# + #{meta\ 1161}#))))))) (#{build-global-assignment\ 102}# - (lambda (#{source\ 1101}# - #{var\ 1102}# - #{exp\ 1103}# - #{mod\ 1104}#) + (lambda (#{source\ 1162}# + #{var\ 1163}# + #{exp\ 1164}# + #{mod\ 1165}#) (#{analyze-variable\ 100}# - #{mod\ 1104}# - #{var\ 1102}# - (lambda (#{mod\ 1105}# #{var\ 1106}# #{public?\ 1107}#) - (let ((#{atom-key\ 1108}# (fluid-ref #{*mode*\ 85}#))) - (if (memv #{atom-key\ 1108}# (quote (c))) + #{mod\ 1165}# + #{var\ 1163}# + (lambda (#{mod\ 1166}# #{var\ 1167}# #{public?\ 1168}#) + (let ((#{atom-key\ 1169}# (fluid-ref #{*mode*\ 85}#))) + (if (memv #{atom-key\ 1169}# (quote (c))) ((@ (language tree-il) make-module-set) - #{source\ 1101}# - #{mod\ 1105}# - #{var\ 1106}# - #{public?\ 1107}# - #{exp\ 1103}#) + #{source\ 1162}# + #{mod\ 1166}# + #{var\ 1167}# + #{public?\ 1168}# + #{exp\ 1164}#) (#{decorate-source\ 94}# (list 'set! - (list (if #{public?\ 1107}# + (list (if #{public?\ 1168}# '@ '@@) - #{mod\ 1105}# - #{var\ 1106}#) - #{exp\ 1103}#) - #{source\ 1101}#)))) - (lambda (#{var\ 1109}#) - (let ((#{atom-key\ 1110}# (fluid-ref #{*mode*\ 85}#))) - (if (memv #{atom-key\ 1110}# (quote (c))) + #{mod\ 1166}# + #{var\ 1167}#) + #{exp\ 1164}#) + #{source\ 1162}#)))) + (lambda (#{var\ 1170}#) + (let ((#{atom-key\ 1171}# (fluid-ref #{*mode*\ 85}#))) + (if (memv #{atom-key\ 1171}# (quote (c))) ((@ (language tree-il) make-toplevel-set) - #{source\ 1101}# - #{var\ 1109}# - #{exp\ 1103}#) + #{source\ 1162}# + #{var\ 1170}# + #{exp\ 1164}#) (#{decorate-source\ 94}# - (list (quote set!) #{var\ 1109}# #{exp\ 1103}#) - #{source\ 1101}#))))))) + (list (quote set!) #{var\ 1170}# #{exp\ 1164}#) + #{source\ 1162}#))))))) (#{build-global-reference\ 101}# - (lambda (#{source\ 1111}# #{var\ 1112}# #{mod\ 1113}#) + (lambda (#{source\ 1172}# #{var\ 1173}# #{mod\ 1174}#) (#{analyze-variable\ 100}# - #{mod\ 1113}# - #{var\ 1112}# - (lambda (#{mod\ 1114}# #{var\ 1115}# #{public?\ 1116}#) - (let ((#{atom-key\ 1117}# (fluid-ref #{*mode*\ 85}#))) - (if (memv #{atom-key\ 1117}# (quote (c))) + #{mod\ 1174}# + #{var\ 1173}# + (lambda (#{mod\ 1175}# #{var\ 1176}# #{public?\ 1177}#) + (let ((#{atom-key\ 1178}# (fluid-ref #{*mode*\ 85}#))) + (if (memv #{atom-key\ 1178}# (quote (c))) ((@ (language tree-il) make-module-ref) - #{source\ 1111}# - #{mod\ 1114}# - #{var\ 1115}# - #{public?\ 1116}#) + #{source\ 1172}# + #{mod\ 1175}# + #{var\ 1176}# + #{public?\ 1177}#) (#{decorate-source\ 94}# - (list (if #{public?\ 1116}# (quote @) (quote @@)) - #{mod\ 1114}# - #{var\ 1115}#) - #{source\ 1111}#)))) - (lambda (#{var\ 1118}#) - (let ((#{atom-key\ 1119}# (fluid-ref #{*mode*\ 85}#))) - (if (memv #{atom-key\ 1119}# (quote (c))) + (list (if #{public?\ 1177}# (quote @) (quote @@)) + #{mod\ 1175}# + #{var\ 1176}#) + #{source\ 1172}#)))) + (lambda (#{var\ 1179}#) + (let ((#{atom-key\ 1180}# (fluid-ref #{*mode*\ 85}#))) + (if (memv #{atom-key\ 1180}# (quote (c))) ((@ (language tree-il) make-toplevel-ref) - #{source\ 1111}# - #{var\ 1118}#) + #{source\ 1172}# + #{var\ 1179}#) (#{decorate-source\ 94}# - #{var\ 1118}# - #{source\ 1111}#))))))) + #{var\ 1179}# + #{source\ 1172}#))))))) (#{analyze-variable\ 100}# - (lambda (#{mod\ 1120}# - #{var\ 1121}# - #{modref-cont\ 1122}# - #{bare-cont\ 1123}#) - (if (not #{mod\ 1120}#) - (#{bare-cont\ 1123}# #{var\ 1121}#) - (let ((#{kind\ 1124}# (car #{mod\ 1120}#)) - (#{mod\ 1125}# (cdr #{mod\ 1120}#))) - (if (memv #{kind\ 1124}# (quote (public))) - (#{modref-cont\ 1122}# - #{mod\ 1125}# - #{var\ 1121}# + (lambda (#{mod\ 1181}# + #{var\ 1182}# + #{modref-cont\ 1183}# + #{bare-cont\ 1184}#) + (if (not #{mod\ 1181}#) + (#{bare-cont\ 1184}# #{var\ 1182}#) + (let ((#{kind\ 1185}# (car #{mod\ 1181}#)) + (#{mod\ 1186}# (cdr #{mod\ 1181}#))) + (if (memv #{kind\ 1185}# (quote (public))) + (#{modref-cont\ 1183}# + #{mod\ 1186}# + #{var\ 1182}# #t) - (if (memv #{kind\ 1124}# (quote (private))) + (if (memv #{kind\ 1185}# (quote (private))) (if (not (equal? - #{mod\ 1125}# + #{mod\ 1186}# (module-name (current-module)))) - (#{modref-cont\ 1122}# - #{mod\ 1125}# - #{var\ 1121}# + (#{modref-cont\ 1183}# + #{mod\ 1186}# + #{var\ 1182}# #f) - (#{bare-cont\ 1123}# #{var\ 1121}#)) - (if (memv #{kind\ 1124}# (quote (bare))) - (#{bare-cont\ 1123}# #{var\ 1121}#) - (if (memv #{kind\ 1124}# (quote (hygiene))) + (#{bare-cont\ 1184}# #{var\ 1182}#)) + (if (memv #{kind\ 1185}# (quote (bare))) + (#{bare-cont\ 1184}# #{var\ 1182}#) + (if (memv #{kind\ 1185}# (quote (hygiene))) (if (if (not (equal? - #{mod\ 1125}# + #{mod\ 1186}# (module-name (current-module)))) (module-variable - (resolve-module #{mod\ 1125}#) - #{var\ 1121}#) + (resolve-module #{mod\ 1186}#) + #{var\ 1182}#) #f) - (#{modref-cont\ 1122}# - #{mod\ 1125}# - #{var\ 1121}# + (#{modref-cont\ 1183}# + #{mod\ 1186}# + #{var\ 1182}# #f) - (#{bare-cont\ 1123}# #{var\ 1121}#)) + (#{bare-cont\ 1184}# #{var\ 1182}#)) (syntax-violation #f "bad module kind" - #{var\ 1121}# - #{mod\ 1125}#))))))))) + #{var\ 1182}# + #{mod\ 1186}#))))))))) (#{build-lexical-assignment\ 99}# - (lambda (#{source\ 1126}# - #{name\ 1127}# - #{var\ 1128}# - #{exp\ 1129}#) - (let ((#{atom-key\ 1130}# (fluid-ref #{*mode*\ 85}#))) - (if (memv #{atom-key\ 1130}# (quote (c))) + (lambda (#{source\ 1187}# + #{name\ 1188}# + #{var\ 1189}# + #{exp\ 1190}#) + (let ((#{atom-key\ 1191}# (fluid-ref #{*mode*\ 85}#))) + (if (memv #{atom-key\ 1191}# (quote (c))) ((@ (language tree-il) make-lexical-set) - #{source\ 1126}# - #{name\ 1127}# - #{var\ 1128}# - #{exp\ 1129}#) + #{source\ 1187}# + #{name\ 1188}# + #{var\ 1189}# + #{exp\ 1190}#) (#{decorate-source\ 94}# - (list (quote set!) #{var\ 1128}# #{exp\ 1129}#) - #{source\ 1126}#))))) + (list (quote set!) #{var\ 1189}# #{exp\ 1190}#) + #{source\ 1187}#))))) (#{build-lexical-reference\ 98}# - (lambda (#{type\ 1131}# - #{source\ 1132}# - #{name\ 1133}# - #{var\ 1134}#) - (let ((#{atom-key\ 1135}# (fluid-ref #{*mode*\ 85}#))) - (if (memv #{atom-key\ 1135}# (quote (c))) + (lambda (#{type\ 1192}# + #{source\ 1193}# + #{name\ 1194}# + #{var\ 1195}#) + (let ((#{atom-key\ 1196}# (fluid-ref #{*mode*\ 85}#))) + (if (memv #{atom-key\ 1196}# (quote (c))) ((@ (language tree-il) make-lexical-ref) - #{source\ 1132}# - #{name\ 1133}# - #{var\ 1134}#) + #{source\ 1193}# + #{name\ 1194}# + #{var\ 1195}#) (#{decorate-source\ 94}# - #{var\ 1134}# - #{source\ 1132}#))))) + #{var\ 1195}# + #{source\ 1193}#))))) (#{build-conditional\ 97}# - (lambda (#{source\ 1136}# - #{test-exp\ 1137}# - #{then-exp\ 1138}# - #{else-exp\ 1139}#) - (let ((#{atom-key\ 1140}# (fluid-ref #{*mode*\ 85}#))) - (if (memv #{atom-key\ 1140}# (quote (c))) + (lambda (#{source\ 1197}# + #{test-exp\ 1198}# + #{then-exp\ 1199}# + #{else-exp\ 1200}#) + (let ((#{atom-key\ 1201}# (fluid-ref #{*mode*\ 85}#))) + (if (memv #{atom-key\ 1201}# (quote (c))) ((@ (language tree-il) make-conditional) - #{source\ 1136}# - #{test-exp\ 1137}# - #{then-exp\ 1138}# - #{else-exp\ 1139}#) + #{source\ 1197}# + #{test-exp\ 1198}# + #{then-exp\ 1199}# + #{else-exp\ 1200}#) (#{decorate-source\ 94}# - (if (equal? #{else-exp\ 1139}# (quote (if #f #f))) + (if (equal? #{else-exp\ 1200}# (quote (if #f #f))) (list 'if - #{test-exp\ 1137}# - #{then-exp\ 1138}#) + #{test-exp\ 1198}# + #{then-exp\ 1199}#) (list 'if - #{test-exp\ 1137}# - #{then-exp\ 1138}# - #{else-exp\ 1139}#)) - #{source\ 1136}#))))) + #{test-exp\ 1198}# + #{then-exp\ 1199}# + #{else-exp\ 1200}#)) + #{source\ 1197}#))))) (#{build-application\ 96}# - (lambda (#{source\ 1141}# - #{fun-exp\ 1142}# - #{arg-exps\ 1143}#) - (let ((#{atom-key\ 1144}# (fluid-ref #{*mode*\ 85}#))) - (if (memv #{atom-key\ 1144}# (quote (c))) + (lambda (#{source\ 1202}# + #{fun-exp\ 1203}# + #{arg-exps\ 1204}#) + (let ((#{atom-key\ 1205}# (fluid-ref #{*mode*\ 85}#))) + (if (memv #{atom-key\ 1205}# (quote (c))) ((@ (language tree-il) make-application) - #{source\ 1141}# - #{fun-exp\ 1142}# - #{arg-exps\ 1143}#) + #{source\ 1202}# + #{fun-exp\ 1203}# + #{arg-exps\ 1204}#) (#{decorate-source\ 94}# - (cons #{fun-exp\ 1142}# #{arg-exps\ 1143}#) - #{source\ 1141}#))))) + (cons #{fun-exp\ 1203}# #{arg-exps\ 1204}#) + #{source\ 1202}#))))) (#{build-void\ 95}# - (lambda (#{source\ 1145}#) - (let ((#{atom-key\ 1146}# (fluid-ref #{*mode*\ 85}#))) - (if (memv #{atom-key\ 1146}# (quote (c))) + (lambda (#{source\ 1206}#) + (let ((#{atom-key\ 1207}# (fluid-ref #{*mode*\ 85}#))) + (if (memv #{atom-key\ 1207}# (quote (c))) ((@ (language tree-il) make-void) - #{source\ 1145}#) + #{source\ 1206}#) (#{decorate-source\ 94}# '(if #f #f) - #{source\ 1145}#))))) + #{source\ 1206}#))))) (#{decorate-source\ 94}# - (lambda (#{e\ 1147}# #{s\ 1148}#) + (lambda (#{e\ 1208}# #{s\ 1209}#) (begin - (if (if (pair? #{e\ 1147}#) #{s\ 1148}# #f) - (set-source-properties! #{e\ 1147}# #{s\ 1148}#)) - #{e\ 1147}#))) + (if (if (pair? #{e\ 1208}#) #{s\ 1209}# #f) + (set-source-properties! #{e\ 1208}# #{s\ 1209}#)) + #{e\ 1208}#))) (#{get-global-definition-hook\ 93}# - (lambda (#{symbol\ 1149}# #{module\ 1150}#) + (lambda (#{symbol\ 1210}# #{module\ 1211}#) (begin - (if (if (not #{module\ 1150}#) (current-module) #f) + (if (if (not #{module\ 1211}#) (current-module) #f) (warn "module system is booted, we should have a module" - #{symbol\ 1149}#)) - (let ((#{v\ 1151}# + #{symbol\ 1210}#)) + (let ((#{v\ 1212}# (module-variable - (if #{module\ 1150}# - (resolve-module (cdr #{module\ 1150}#)) + (if #{module\ 1211}# + (resolve-module (cdr #{module\ 1211}#)) (current-module)) - #{symbol\ 1149}#))) - (if #{v\ 1151}# - (if (variable-bound? #{v\ 1151}#) - (let ((#{val\ 1152}# (variable-ref #{v\ 1151}#))) - (if (macro? #{val\ 1152}#) - (if (syncase-macro-type #{val\ 1152}#) - (cons (syncase-macro-type #{val\ 1152}#) - (syncase-macro-binding #{val\ 1152}#)) + #{symbol\ 1210}#))) + (if #{v\ 1212}# + (if (variable-bound? #{v\ 1212}#) + (let ((#{val\ 1213}# (variable-ref #{v\ 1212}#))) + (if (macro? #{val\ 1213}#) + (if (syncase-macro-type #{val\ 1213}#) + (cons (syncase-macro-type #{val\ 1213}#) + (syncase-macro-binding #{val\ 1213}#)) #f) #f)) #f) #f))))) (#{put-global-definition-hook\ 92}# - (lambda (#{symbol\ 1153}# #{type\ 1154}# #{val\ 1155}#) - (let ((#{existing\ 1156}# - (let ((#{v\ 1157}# + (lambda (#{symbol\ 1214}# #{type\ 1215}# #{val\ 1216}#) + (let ((#{existing\ 1217}# + (let ((#{v\ 1218}# (module-variable (current-module) - #{symbol\ 1153}#))) - (if #{v\ 1157}# - (if (variable-bound? #{v\ 1157}#) - (let ((#{val\ 1158}# (variable-ref #{v\ 1157}#))) - (if (macro? #{val\ 1158}#) - (if (not (syncase-macro-type #{val\ 1158}#)) - #{val\ 1158}# + #{symbol\ 1214}#))) + (if #{v\ 1218}# + (if (variable-bound? #{v\ 1218}#) + (let ((#{val\ 1219}# (variable-ref #{v\ 1218}#))) + (if (macro? #{val\ 1219}#) + (if (not (syncase-macro-type #{val\ 1219}#)) + #{val\ 1219}# #f) #f)) #f) #f)))) (module-define! (current-module) - #{symbol\ 1153}# - (if #{existing\ 1156}# + #{symbol\ 1214}# + (if #{existing\ 1217}# (make-extended-syncase-macro - #{existing\ 1156}# - #{type\ 1154}# - #{val\ 1155}#) - (make-syncase-macro #{type\ 1154}# #{val\ 1155}#)))))) + #{existing\ 1217}# + #{type\ 1215}# + #{val\ 1216}#) + (make-syncase-macro #{type\ 1215}# #{val\ 1216}#)))))) (#{local-eval-hook\ 91}# - (lambda (#{x\ 1159}# #{mod\ 1160}#) + (lambda (#{x\ 1220}# #{mod\ 1221}#) (primitive-eval (list #{noexpand\ 84}# - (let ((#{atom-key\ 1161}# (fluid-ref #{*mode*\ 85}#))) - (if (memv #{atom-key\ 1161}# (quote (c))) + (let ((#{atom-key\ 1222}# (fluid-ref #{*mode*\ 85}#))) + (if (memv #{atom-key\ 1222}# (quote (c))) ((@ (language tree-il) tree-il->scheme) - #{x\ 1159}#) - #{x\ 1159}#)))))) + #{x\ 1220}#) + #{x\ 1220}#)))))) (#{top-level-eval-hook\ 90}# - (lambda (#{x\ 1162}# #{mod\ 1163}#) + (lambda (#{x\ 1223}# #{mod\ 1224}#) (primitive-eval (list #{noexpand\ 84}# - (let ((#{atom-key\ 1164}# (fluid-ref #{*mode*\ 85}#))) - (if (memv #{atom-key\ 1164}# (quote (c))) + (let ((#{atom-key\ 1225}# (fluid-ref #{*mode*\ 85}#))) + (if (memv #{atom-key\ 1225}# (quote (c))) ((@ (language tree-il) tree-il->scheme) - #{x\ 1162}#) - #{x\ 1162}#)))))) + #{x\ 1223}#) + #{x\ 1223}#)))))) (#{fx<\ 89}# <) (#{fx=\ 88}# =) (#{fx-\ 87}# -) @@ -7888,1068 +8115,1070 @@ (#{global-extend\ 129}# 'core 'fluid-let-syntax - (lambda (#{e\ 1165}# - #{r\ 1166}# - #{w\ 1167}# - #{s\ 1168}# - #{mod\ 1169}#) - ((lambda (#{tmp\ 1170}#) - ((lambda (#{tmp\ 1171}#) - (if (if #{tmp\ 1171}# - (apply (lambda (#{_\ 1172}# - #{var\ 1173}# - #{val\ 1174}# - #{e1\ 1175}# - #{e2\ 1176}#) - (#{valid-bound-ids?\ 156}# #{var\ 1173}#)) - #{tmp\ 1171}#) + (lambda (#{e\ 1226}# + #{r\ 1227}# + #{w\ 1228}# + #{s\ 1229}# + #{mod\ 1230}#) + ((lambda (#{tmp\ 1231}#) + ((lambda (#{tmp\ 1232}#) + (if (if #{tmp\ 1232}# + (apply (lambda (#{_\ 1233}# + #{var\ 1234}# + #{val\ 1235}# + #{e1\ 1236}# + #{e2\ 1237}#) + (#{valid-bound-ids?\ 156}# #{var\ 1234}#)) + #{tmp\ 1232}#) #f) - (apply (lambda (#{_\ 1178}# - #{var\ 1179}# - #{val\ 1180}# - #{e1\ 1181}# - #{e2\ 1182}#) - (let ((#{names\ 1183}# - (map (lambda (#{x\ 1184}#) + (apply (lambda (#{_\ 1239}# + #{var\ 1240}# + #{val\ 1241}# + #{e1\ 1242}# + #{e2\ 1243}#) + (let ((#{names\ 1244}# + (map (lambda (#{x\ 1245}#) (#{id-var-name\ 153}# - #{x\ 1184}# - #{w\ 1167}#)) - #{var\ 1179}#))) + #{x\ 1245}# + #{w\ 1228}#)) + #{var\ 1240}#))) (begin (for-each - (lambda (#{id\ 1186}# #{n\ 1187}#) - (let ((#{atom-key\ 1188}# + (lambda (#{id\ 1247}# #{n\ 1248}#) + (let ((#{atom-key\ 1249}# (#{binding-type\ 123}# (#{lookup\ 128}# - #{n\ 1187}# - #{r\ 1166}# - #{mod\ 1169}#)))) - (if (memv #{atom-key\ 1188}# + #{n\ 1248}# + #{r\ 1227}# + #{mod\ 1230}#)))) + (if (memv #{atom-key\ 1249}# '(displaced-lexical)) (syntax-violation 'fluid-let-syntax "identifier out of context" - #{e\ 1165}# + #{e\ 1226}# (#{source-wrap\ 160}# - #{id\ 1186}# - #{w\ 1167}# - #{s\ 1168}# - #{mod\ 1169}#))))) - #{var\ 1179}# - #{names\ 1183}#) + #{id\ 1247}# + #{w\ 1228}# + #{s\ 1229}# + #{mod\ 1230}#))))) + #{var\ 1240}# + #{names\ 1244}#) (#{chi-body\ 171}# - (cons #{e1\ 1181}# #{e2\ 1182}#) + (cons #{e1\ 1242}# #{e2\ 1243}#) (#{source-wrap\ 160}# - #{e\ 1165}# - #{w\ 1167}# - #{s\ 1168}# - #{mod\ 1169}#) + #{e\ 1226}# + #{w\ 1228}# + #{s\ 1229}# + #{mod\ 1230}#) (#{extend-env\ 125}# - #{names\ 1183}# - (let ((#{trans-r\ 1191}# + #{names\ 1244}# + (let ((#{trans-r\ 1252}# (#{macros-only-env\ 127}# - #{r\ 1166}#))) - (map (lambda (#{x\ 1192}#) + #{r\ 1227}#))) + (map (lambda (#{x\ 1253}#) (cons 'macro (#{eval-local-transformer\ 173}# (#{chi\ 167}# - #{x\ 1192}# - #{trans-r\ 1191}# - #{w\ 1167}# - #{mod\ 1169}#) - #{mod\ 1169}#))) - #{val\ 1180}#)) - #{r\ 1166}#) - #{w\ 1167}# - #{mod\ 1169}#)))) - #{tmp\ 1171}#) - ((lambda (#{_\ 1194}#) + #{x\ 1253}# + #{trans-r\ 1252}# + #{w\ 1228}# + #{mod\ 1230}#) + #{mod\ 1230}#))) + #{val\ 1241}#)) + #{r\ 1227}#) + #{w\ 1228}# + #{mod\ 1230}#)))) + #{tmp\ 1232}#) + ((lambda (#{_\ 1255}#) (syntax-violation 'fluid-let-syntax "bad syntax" (#{source-wrap\ 160}# - #{e\ 1165}# - #{w\ 1167}# - #{s\ 1168}# - #{mod\ 1169}#))) - #{tmp\ 1170}#))) + #{e\ 1226}# + #{w\ 1228}# + #{s\ 1229}# + #{mod\ 1230}#))) + #{tmp\ 1231}#))) ($sc-dispatch - #{tmp\ 1170}# + #{tmp\ 1231}# '(any #(each (any any)) any . each-any)))) - #{e\ 1165}#))) + #{e\ 1226}#))) (#{global-extend\ 129}# 'core 'quote - (lambda (#{e\ 1195}# - #{r\ 1196}# - #{w\ 1197}# - #{s\ 1198}# - #{mod\ 1199}#) - ((lambda (#{tmp\ 1200}#) - ((lambda (#{tmp\ 1201}#) - (if #{tmp\ 1201}# - (apply (lambda (#{_\ 1202}# #{e\ 1203}#) + (lambda (#{e\ 1256}# + #{r\ 1257}# + #{w\ 1258}# + #{s\ 1259}# + #{mod\ 1260}#) + ((lambda (#{tmp\ 1261}#) + ((lambda (#{tmp\ 1262}#) + (if #{tmp\ 1262}# + (apply (lambda (#{_\ 1263}# #{e\ 1264}#) (#{build-data\ 109}# - #{s\ 1198}# - (#{strip\ 180}# #{e\ 1203}# #{w\ 1197}#))) - #{tmp\ 1201}#) - ((lambda (#{_\ 1204}#) + #{s\ 1259}# + (#{strip\ 180}# #{e\ 1264}# #{w\ 1258}#))) + #{tmp\ 1262}#) + ((lambda (#{_\ 1265}#) (syntax-violation 'quote "bad syntax" (#{source-wrap\ 160}# - #{e\ 1195}# - #{w\ 1197}# - #{s\ 1198}# - #{mod\ 1199}#))) - #{tmp\ 1200}#))) - ($sc-dispatch #{tmp\ 1200}# (quote (any any))))) - #{e\ 1195}#))) + #{e\ 1256}# + #{w\ 1258}# + #{s\ 1259}# + #{mod\ 1260}#))) + #{tmp\ 1261}#))) + ($sc-dispatch #{tmp\ 1261}# (quote (any any))))) + #{e\ 1256}#))) (#{global-extend\ 129}# 'core 'syntax - (letrec ((#{regen\ 1212}# - (lambda (#{x\ 1213}#) - (let ((#{atom-key\ 1214}# (car #{x\ 1213}#))) - (if (memv #{atom-key\ 1214}# (quote (ref))) + (letrec ((#{regen\ 1273}# + (lambda (#{x\ 1274}#) + (let ((#{atom-key\ 1275}# (car #{x\ 1274}#))) + (if (memv #{atom-key\ 1275}# (quote (ref))) (#{build-lexical-reference\ 98}# 'value #f - (cadr #{x\ 1213}#) - (cadr #{x\ 1213}#)) - (if (memv #{atom-key\ 1214}# (quote (primitive))) - (#{build-primref\ 108}# #f (cadr #{x\ 1213}#)) - (if (memv #{atom-key\ 1214}# (quote (quote))) - (#{build-data\ 109}# #f (cadr #{x\ 1213}#)) - (if (memv #{atom-key\ 1214}# (quote (lambda))) - (if (list? (cadr #{x\ 1213}#)) + (cadr #{x\ 1274}#) + (cadr #{x\ 1274}#)) + (if (memv #{atom-key\ 1275}# (quote (primitive))) + (#{build-primref\ 108}# #f (cadr #{x\ 1274}#)) + (if (memv #{atom-key\ 1275}# (quote (quote))) + (#{build-data\ 109}# #f (cadr #{x\ 1274}#)) + (if (memv #{atom-key\ 1275}# (quote (lambda))) + (if (list? (cadr #{x\ 1274}#)) (#{build-simple-lambda\ 105}# #f - (cadr #{x\ 1213}#) + (cadr #{x\ 1274}#) #f - (cadr #{x\ 1213}#) + (cadr #{x\ 1274}#) #f - (#{regen\ 1212}# (caddr #{x\ 1213}#))) - (error "how did we get here" #{x\ 1213}#)) + (#{regen\ 1273}# (caddr #{x\ 1274}#))) + (error "how did we get here" #{x\ 1274}#)) (#{build-application\ 96}# #f - (#{build-primref\ 108}# #f (car #{x\ 1213}#)) - (map #{regen\ 1212}# - (cdr #{x\ 1213}#)))))))))) - (#{gen-vector\ 1211}# - (lambda (#{x\ 1215}#) - (if (eq? (car #{x\ 1215}#) (quote list)) - (cons (quote vector) (cdr #{x\ 1215}#)) - (if (eq? (car #{x\ 1215}#) (quote quote)) + (#{build-primref\ 108}# #f (car #{x\ 1274}#)) + (map #{regen\ 1273}# + (cdr #{x\ 1274}#)))))))))) + (#{gen-vector\ 1272}# + (lambda (#{x\ 1276}#) + (if (eq? (car #{x\ 1276}#) (quote list)) + (cons (quote vector) (cdr #{x\ 1276}#)) + (if (eq? (car #{x\ 1276}#) (quote quote)) (list 'quote - (list->vector (cadr #{x\ 1215}#))) - (list (quote list->vector) #{x\ 1215}#))))) - (#{gen-append\ 1210}# - (lambda (#{x\ 1216}# #{y\ 1217}#) - (if (equal? #{y\ 1217}# (quote (quote ()))) - #{x\ 1216}# - (list (quote append) #{x\ 1216}# #{y\ 1217}#)))) - (#{gen-cons\ 1209}# - (lambda (#{x\ 1218}# #{y\ 1219}#) - (let ((#{atom-key\ 1220}# (car #{y\ 1219}#))) - (if (memv #{atom-key\ 1220}# (quote (quote))) - (if (eq? (car #{x\ 1218}#) (quote quote)) + (list->vector (cadr #{x\ 1276}#))) + (list (quote list->vector) #{x\ 1276}#))))) + (#{gen-append\ 1271}# + (lambda (#{x\ 1277}# #{y\ 1278}#) + (if (equal? #{y\ 1278}# (quote (quote ()))) + #{x\ 1277}# + (list (quote append) #{x\ 1277}# #{y\ 1278}#)))) + (#{gen-cons\ 1270}# + (lambda (#{x\ 1279}# #{y\ 1280}#) + (let ((#{atom-key\ 1281}# (car #{y\ 1280}#))) + (if (memv #{atom-key\ 1281}# (quote (quote))) + (if (eq? (car #{x\ 1279}#) (quote quote)) (list 'quote - (cons (cadr #{x\ 1218}#) (cadr #{y\ 1219}#))) - (if (eq? (cadr #{y\ 1219}#) (quote ())) - (list (quote list) #{x\ 1218}#) - (list (quote cons) #{x\ 1218}# #{y\ 1219}#))) - (if (memv #{atom-key\ 1220}# (quote (list))) + (cons (cadr #{x\ 1279}#) (cadr #{y\ 1280}#))) + (if (eq? (cadr #{y\ 1280}#) (quote ())) + (list (quote list) #{x\ 1279}#) + (list (quote cons) #{x\ 1279}# #{y\ 1280}#))) + (if (memv #{atom-key\ 1281}# (quote (list))) (cons 'list - (cons #{x\ 1218}# (cdr #{y\ 1219}#))) - (list (quote cons) #{x\ 1218}# #{y\ 1219}#)))))) - (#{gen-map\ 1208}# - (lambda (#{e\ 1221}# #{map-env\ 1222}#) - (let ((#{formals\ 1223}# (map cdr #{map-env\ 1222}#)) - (#{actuals\ 1224}# - (map (lambda (#{x\ 1225}#) - (list (quote ref) (car #{x\ 1225}#))) - #{map-env\ 1222}#))) - (if (eq? (car #{e\ 1221}#) (quote ref)) - (car #{actuals\ 1224}#) + (cons #{x\ 1279}# (cdr #{y\ 1280}#))) + (list (quote cons) #{x\ 1279}# #{y\ 1280}#)))))) + (#{gen-map\ 1269}# + (lambda (#{e\ 1282}# #{map-env\ 1283}#) + (let ((#{formals\ 1284}# (map cdr #{map-env\ 1283}#)) + (#{actuals\ 1285}# + (map (lambda (#{x\ 1286}#) + (list (quote ref) (car #{x\ 1286}#))) + #{map-env\ 1283}#))) + (if (eq? (car #{e\ 1282}#) (quote ref)) + (car #{actuals\ 1285}#) (if (and-map - (lambda (#{x\ 1226}#) - (if (eq? (car #{x\ 1226}#) (quote ref)) - (memq (cadr #{x\ 1226}#) #{formals\ 1223}#) + (lambda (#{x\ 1287}#) + (if (eq? (car #{x\ 1287}#) (quote ref)) + (memq (cadr #{x\ 1287}#) #{formals\ 1284}#) #f)) - (cdr #{e\ 1221}#)) + (cdr #{e\ 1282}#)) (cons 'map (cons (list 'primitive - (car #{e\ 1221}#)) - (map (let ((#{r\ 1227}# + (car #{e\ 1282}#)) + (map (let ((#{r\ 1288}# (map cons - #{formals\ 1223}# - #{actuals\ 1224}#))) - (lambda (#{x\ 1228}#) - (cdr (assq (cadr #{x\ 1228}#) - #{r\ 1227}#)))) - (cdr #{e\ 1221}#)))) + #{formals\ 1284}# + #{actuals\ 1285}#))) + (lambda (#{x\ 1289}#) + (cdr (assq (cadr #{x\ 1289}#) + #{r\ 1288}#)))) + (cdr #{e\ 1282}#)))) (cons 'map (cons (list 'lambda - #{formals\ 1223}# - #{e\ 1221}#) - #{actuals\ 1224}#))))))) - (#{gen-mappend\ 1207}# - (lambda (#{e\ 1229}# #{map-env\ 1230}#) + #{formals\ 1284}# + #{e\ 1282}#) + #{actuals\ 1285}#))))))) + (#{gen-mappend\ 1268}# + (lambda (#{e\ 1290}# #{map-env\ 1291}#) (list 'apply '(primitive append) - (#{gen-map\ 1208}# #{e\ 1229}# #{map-env\ 1230}#)))) - (#{gen-ref\ 1206}# - (lambda (#{src\ 1231}# - #{var\ 1232}# - #{level\ 1233}# - #{maps\ 1234}#) - (if (#{fx=\ 88}# #{level\ 1233}# 0) - (values #{var\ 1232}# #{maps\ 1234}#) - (if (null? #{maps\ 1234}#) + (#{gen-map\ 1269}# #{e\ 1290}# #{map-env\ 1291}#)))) + (#{gen-ref\ 1267}# + (lambda (#{src\ 1292}# + #{var\ 1293}# + #{level\ 1294}# + #{maps\ 1295}#) + (if (#{fx=\ 88}# #{level\ 1294}# 0) + (values #{var\ 1293}# #{maps\ 1295}#) + (if (null? #{maps\ 1295}#) (syntax-violation 'syntax "missing ellipsis" - #{src\ 1231}#) + #{src\ 1292}#) (call-with-values (lambda () - (#{gen-ref\ 1206}# - #{src\ 1231}# - #{var\ 1232}# - (#{fx-\ 87}# #{level\ 1233}# 1) - (cdr #{maps\ 1234}#))) - (lambda (#{outer-var\ 1235}# #{outer-maps\ 1236}#) - (let ((#{b\ 1237}# - (assq #{outer-var\ 1235}# - (car #{maps\ 1234}#)))) - (if #{b\ 1237}# - (values (cdr #{b\ 1237}#) #{maps\ 1234}#) - (let ((#{inner-var\ 1238}# + (#{gen-ref\ 1267}# + #{src\ 1292}# + #{var\ 1293}# + (#{fx-\ 87}# #{level\ 1294}# 1) + (cdr #{maps\ 1295}#))) + (lambda (#{outer-var\ 1296}# #{outer-maps\ 1297}#) + (let ((#{b\ 1298}# + (assq #{outer-var\ 1296}# + (car #{maps\ 1295}#)))) + (if #{b\ 1298}# + (values (cdr #{b\ 1298}#) #{maps\ 1295}#) + (let ((#{inner-var\ 1299}# (#{gen-var\ 181}# (quote tmp)))) (values - #{inner-var\ 1238}# - (cons (cons (cons #{outer-var\ 1235}# - #{inner-var\ 1238}#) - (car #{maps\ 1234}#)) - #{outer-maps\ 1236}#))))))))))) - (#{gen-syntax\ 1205}# - (lambda (#{src\ 1239}# - #{e\ 1240}# - #{r\ 1241}# - #{maps\ 1242}# - #{ellipsis?\ 1243}# - #{mod\ 1244}#) - (if (#{id?\ 131}# #{e\ 1240}#) - (let ((#{label\ 1245}# + #{inner-var\ 1299}# + (cons (cons (cons #{outer-var\ 1296}# + #{inner-var\ 1299}#) + (car #{maps\ 1295}#)) + #{outer-maps\ 1297}#))))))))))) + (#{gen-syntax\ 1266}# + (lambda (#{src\ 1300}# + #{e\ 1301}# + #{r\ 1302}# + #{maps\ 1303}# + #{ellipsis?\ 1304}# + #{mod\ 1305}#) + (if (#{id?\ 131}# #{e\ 1301}#) + (let ((#{label\ 1306}# (#{id-var-name\ 153}# - #{e\ 1240}# + #{e\ 1301}# '(())))) - (let ((#{b\ 1246}# + (let ((#{b\ 1307}# (#{lookup\ 128}# - #{label\ 1245}# - #{r\ 1241}# - #{mod\ 1244}#))) - (if (eq? (#{binding-type\ 123}# #{b\ 1246}#) + #{label\ 1306}# + #{r\ 1302}# + #{mod\ 1305}#))) + (if (eq? (#{binding-type\ 123}# #{b\ 1307}#) 'syntax) (call-with-values (lambda () - (let ((#{var.lev\ 1247}# - (#{binding-value\ 124}# #{b\ 1246}#))) - (#{gen-ref\ 1206}# - #{src\ 1239}# - (car #{var.lev\ 1247}#) - (cdr #{var.lev\ 1247}#) - #{maps\ 1242}#))) - (lambda (#{var\ 1248}# #{maps\ 1249}#) + (let ((#{var.lev\ 1308}# + (#{binding-value\ 124}# #{b\ 1307}#))) + (#{gen-ref\ 1267}# + #{src\ 1300}# + (car #{var.lev\ 1308}#) + (cdr #{var.lev\ 1308}#) + #{maps\ 1303}#))) + (lambda (#{var\ 1309}# #{maps\ 1310}#) (values - (list (quote ref) #{var\ 1248}#) - #{maps\ 1249}#))) - (if (#{ellipsis?\ 1243}# #{e\ 1240}#) + (list (quote ref) #{var\ 1309}#) + #{maps\ 1310}#))) + (if (#{ellipsis?\ 1304}# #{e\ 1301}#) (syntax-violation 'syntax "misplaced ellipsis" - #{src\ 1239}#) + #{src\ 1300}#) (values - (list (quote quote) #{e\ 1240}#) - #{maps\ 1242}#))))) - ((lambda (#{tmp\ 1250}#) - ((lambda (#{tmp\ 1251}#) - (if (if #{tmp\ 1251}# - (apply (lambda (#{dots\ 1252}# #{e\ 1253}#) - (#{ellipsis?\ 1243}# - #{dots\ 1252}#)) - #{tmp\ 1251}#) + (list (quote quote) #{e\ 1301}#) + #{maps\ 1303}#))))) + ((lambda (#{tmp\ 1311}#) + ((lambda (#{tmp\ 1312}#) + (if (if #{tmp\ 1312}# + (apply (lambda (#{dots\ 1313}# #{e\ 1314}#) + (#{ellipsis?\ 1304}# + #{dots\ 1313}#)) + #{tmp\ 1312}#) #f) - (apply (lambda (#{dots\ 1254}# #{e\ 1255}#) - (#{gen-syntax\ 1205}# - #{src\ 1239}# - #{e\ 1255}# - #{r\ 1241}# - #{maps\ 1242}# - (lambda (#{x\ 1256}#) #f) - #{mod\ 1244}#)) - #{tmp\ 1251}#) - ((lambda (#{tmp\ 1257}#) - (if (if #{tmp\ 1257}# - (apply (lambda (#{x\ 1258}# - #{dots\ 1259}# - #{y\ 1260}#) - (#{ellipsis?\ 1243}# - #{dots\ 1259}#)) - #{tmp\ 1257}#) + (apply (lambda (#{dots\ 1315}# #{e\ 1316}#) + (#{gen-syntax\ 1266}# + #{src\ 1300}# + #{e\ 1316}# + #{r\ 1302}# + #{maps\ 1303}# + (lambda (#{x\ 1317}#) #f) + #{mod\ 1305}#)) + #{tmp\ 1312}#) + ((lambda (#{tmp\ 1318}#) + (if (if #{tmp\ 1318}# + (apply (lambda (#{x\ 1319}# + #{dots\ 1320}# + #{y\ 1321}#) + (#{ellipsis?\ 1304}# + #{dots\ 1320}#)) + #{tmp\ 1318}#) #f) - (apply (lambda (#{x\ 1261}# - #{dots\ 1262}# - #{y\ 1263}#) - (letrec ((#{f\ 1264}# - (lambda (#{y\ 1265}# - #{k\ 1266}#) - ((lambda (#{tmp\ 1270}#) - ((lambda (#{tmp\ 1271}#) - (if (if #{tmp\ 1271}# - (apply (lambda (#{dots\ 1272}# - #{y\ 1273}#) - (#{ellipsis?\ 1243}# - #{dots\ 1272}#)) - #{tmp\ 1271}#) + (apply (lambda (#{x\ 1322}# + #{dots\ 1323}# + #{y\ 1324}#) + (letrec ((#{f\ 1325}# + (lambda (#{y\ 1326}# + #{k\ 1327}#) + ((lambda (#{tmp\ 1331}#) + ((lambda (#{tmp\ 1332}#) + (if (if #{tmp\ 1332}# + (apply (lambda (#{dots\ 1333}# + #{y\ 1334}#) + (#{ellipsis?\ 1304}# + #{dots\ 1333}#)) + #{tmp\ 1332}#) #f) - (apply (lambda (#{dots\ 1274}# - #{y\ 1275}#) - (#{f\ 1264}# - #{y\ 1275}# - (lambda (#{maps\ 1276}#) + (apply (lambda (#{dots\ 1335}# + #{y\ 1336}#) + (#{f\ 1325}# + #{y\ 1336}# + (lambda (#{maps\ 1337}#) (call-with-values (lambda () - (#{k\ 1266}# + (#{k\ 1327}# (cons '() - #{maps\ 1276}#))) - (lambda (#{x\ 1277}# - #{maps\ 1278}#) - (if (null? (car #{maps\ 1278}#)) + #{maps\ 1337}#))) + (lambda (#{x\ 1338}# + #{maps\ 1339}#) + (if (null? (car #{maps\ 1339}#)) (syntax-violation 'syntax "extra ellipsis" - #{src\ 1239}#) + #{src\ 1300}#) (values - (#{gen-mappend\ 1207}# - #{x\ 1277}# - (car #{maps\ 1278}#)) - (cdr #{maps\ 1278}#)))))))) - #{tmp\ 1271}#) - ((lambda (#{_\ 1279}#) + (#{gen-mappend\ 1268}# + #{x\ 1338}# + (car #{maps\ 1339}#)) + (cdr #{maps\ 1339}#)))))))) + #{tmp\ 1332}#) + ((lambda (#{_\ 1340}#) (call-with-values (lambda () - (#{gen-syntax\ 1205}# - #{src\ 1239}# - #{y\ 1265}# - #{r\ 1241}# - #{maps\ 1242}# - #{ellipsis?\ 1243}# - #{mod\ 1244}#)) - (lambda (#{y\ 1280}# - #{maps\ 1281}#) + (#{gen-syntax\ 1266}# + #{src\ 1300}# + #{y\ 1326}# + #{r\ 1302}# + #{maps\ 1303}# + #{ellipsis?\ 1304}# + #{mod\ 1305}#)) + (lambda (#{y\ 1341}# + #{maps\ 1342}#) (call-with-values (lambda () - (#{k\ 1266}# - #{maps\ 1281}#)) - (lambda (#{x\ 1282}# - #{maps\ 1283}#) + (#{k\ 1327}# + #{maps\ 1342}#)) + (lambda (#{x\ 1343}# + #{maps\ 1344}#) (values - (#{gen-append\ 1210}# - #{x\ 1282}# - #{y\ 1280}#) - #{maps\ 1283}#)))))) - #{tmp\ 1270}#))) + (#{gen-append\ 1271}# + #{x\ 1343}# + #{y\ 1341}#) + #{maps\ 1344}#)))))) + #{tmp\ 1331}#))) ($sc-dispatch - #{tmp\ 1270}# + #{tmp\ 1331}# '(any . any)))) - #{y\ 1265}#)))) - (#{f\ 1264}# - #{y\ 1263}# - (lambda (#{maps\ 1267}#) + #{y\ 1326}#)))) + (#{f\ 1325}# + #{y\ 1324}# + (lambda (#{maps\ 1328}#) (call-with-values (lambda () - (#{gen-syntax\ 1205}# - #{src\ 1239}# - #{x\ 1261}# - #{r\ 1241}# + (#{gen-syntax\ 1266}# + #{src\ 1300}# + #{x\ 1322}# + #{r\ 1302}# (cons '() - #{maps\ 1267}#) - #{ellipsis?\ 1243}# - #{mod\ 1244}#)) - (lambda (#{x\ 1268}# - #{maps\ 1269}#) - (if (null? (car #{maps\ 1269}#)) + #{maps\ 1328}#) + #{ellipsis?\ 1304}# + #{mod\ 1305}#)) + (lambda (#{x\ 1329}# + #{maps\ 1330}#) + (if (null? (car #{maps\ 1330}#)) (syntax-violation 'syntax "extra ellipsis" - #{src\ 1239}#) + #{src\ 1300}#) (values - (#{gen-map\ 1208}# - #{x\ 1268}# - (car #{maps\ 1269}#)) - (cdr #{maps\ 1269}#))))))))) - #{tmp\ 1257}#) - ((lambda (#{tmp\ 1284}#) - (if #{tmp\ 1284}# - (apply (lambda (#{x\ 1285}# - #{y\ 1286}#) + (#{gen-map\ 1269}# + #{x\ 1329}# + (car #{maps\ 1330}#)) + (cdr #{maps\ 1330}#))))))))) + #{tmp\ 1318}#) + ((lambda (#{tmp\ 1345}#) + (if #{tmp\ 1345}# + (apply (lambda (#{x\ 1346}# + #{y\ 1347}#) (call-with-values (lambda () - (#{gen-syntax\ 1205}# - #{src\ 1239}# - #{x\ 1285}# - #{r\ 1241}# - #{maps\ 1242}# - #{ellipsis?\ 1243}# - #{mod\ 1244}#)) - (lambda (#{x\ 1287}# - #{maps\ 1288}#) + (#{gen-syntax\ 1266}# + #{src\ 1300}# + #{x\ 1346}# + #{r\ 1302}# + #{maps\ 1303}# + #{ellipsis?\ 1304}# + #{mod\ 1305}#)) + (lambda (#{x\ 1348}# + #{maps\ 1349}#) (call-with-values (lambda () - (#{gen-syntax\ 1205}# - #{src\ 1239}# - #{y\ 1286}# - #{r\ 1241}# - #{maps\ 1288}# - #{ellipsis?\ 1243}# - #{mod\ 1244}#)) - (lambda (#{y\ 1289}# - #{maps\ 1290}#) + (#{gen-syntax\ 1266}# + #{src\ 1300}# + #{y\ 1347}# + #{r\ 1302}# + #{maps\ 1349}# + #{ellipsis?\ 1304}# + #{mod\ 1305}#)) + (lambda (#{y\ 1350}# + #{maps\ 1351}#) (values - (#{gen-cons\ 1209}# - #{x\ 1287}# - #{y\ 1289}#) - #{maps\ 1290}#)))))) - #{tmp\ 1284}#) - ((lambda (#{tmp\ 1291}#) - (if #{tmp\ 1291}# - (apply (lambda (#{e1\ 1292}# - #{e2\ 1293}#) + (#{gen-cons\ 1270}# + #{x\ 1348}# + #{y\ 1350}#) + #{maps\ 1351}#)))))) + #{tmp\ 1345}#) + ((lambda (#{tmp\ 1352}#) + (if #{tmp\ 1352}# + (apply (lambda (#{e1\ 1353}# + #{e2\ 1354}#) (call-with-values (lambda () - (#{gen-syntax\ 1205}# - #{src\ 1239}# - (cons #{e1\ 1292}# - #{e2\ 1293}#) - #{r\ 1241}# - #{maps\ 1242}# - #{ellipsis?\ 1243}# - #{mod\ 1244}#)) - (lambda (#{e\ 1295}# - #{maps\ 1296}#) + (#{gen-syntax\ 1266}# + #{src\ 1300}# + (cons #{e1\ 1353}# + #{e2\ 1354}#) + #{r\ 1302}# + #{maps\ 1303}# + #{ellipsis?\ 1304}# + #{mod\ 1305}#)) + (lambda (#{e\ 1356}# + #{maps\ 1357}#) (values - (#{gen-vector\ 1211}# - #{e\ 1295}#) - #{maps\ 1296}#)))) - #{tmp\ 1291}#) - ((lambda (#{_\ 1297}#) + (#{gen-vector\ 1272}# + #{e\ 1356}#) + #{maps\ 1357}#)))) + #{tmp\ 1352}#) + ((lambda (#{_\ 1358}#) (values (list 'quote - #{e\ 1240}#) - #{maps\ 1242}#)) - #{tmp\ 1250}#))) + #{e\ 1301}#) + #{maps\ 1303}#)) + #{tmp\ 1311}#))) ($sc-dispatch - #{tmp\ 1250}# + #{tmp\ 1311}# '#(vector (any . each-any)))))) ($sc-dispatch - #{tmp\ 1250}# + #{tmp\ 1311}# '(any . any))))) ($sc-dispatch - #{tmp\ 1250}# + #{tmp\ 1311}# '(any any . any))))) - ($sc-dispatch #{tmp\ 1250}# (quote (any any))))) - #{e\ 1240}#))))) - (lambda (#{e\ 1298}# - #{r\ 1299}# - #{w\ 1300}# - #{s\ 1301}# - #{mod\ 1302}#) - (let ((#{e\ 1303}# + ($sc-dispatch #{tmp\ 1311}# (quote (any any))))) + #{e\ 1301}#))))) + (lambda (#{e\ 1359}# + #{r\ 1360}# + #{w\ 1361}# + #{s\ 1362}# + #{mod\ 1363}#) + (let ((#{e\ 1364}# (#{source-wrap\ 160}# - #{e\ 1298}# - #{w\ 1300}# - #{s\ 1301}# - #{mod\ 1302}#))) - ((lambda (#{tmp\ 1304}#) - ((lambda (#{tmp\ 1305}#) - (if #{tmp\ 1305}# - (apply (lambda (#{_\ 1306}# #{x\ 1307}#) + #{e\ 1359}# + #{w\ 1361}# + #{s\ 1362}# + #{mod\ 1363}#))) + ((lambda (#{tmp\ 1365}#) + ((lambda (#{tmp\ 1366}#) + (if #{tmp\ 1366}# + (apply (lambda (#{_\ 1367}# #{x\ 1368}#) (call-with-values (lambda () - (#{gen-syntax\ 1205}# - #{e\ 1303}# - #{x\ 1307}# - #{r\ 1299}# + (#{gen-syntax\ 1266}# + #{e\ 1364}# + #{x\ 1368}# + #{r\ 1360}# '() #{ellipsis?\ 175}# - #{mod\ 1302}#)) - (lambda (#{e\ 1308}# #{maps\ 1309}#) - (#{regen\ 1212}# #{e\ 1308}#)))) - #{tmp\ 1305}#) - ((lambda (#{_\ 1310}#) + #{mod\ 1363}#)) + (lambda (#{e\ 1369}# #{maps\ 1370}#) + (#{regen\ 1273}# #{e\ 1369}#)))) + #{tmp\ 1366}#) + ((lambda (#{_\ 1371}#) (syntax-violation 'syntax "bad `syntax' form" - #{e\ 1303}#)) - #{tmp\ 1304}#))) - ($sc-dispatch #{tmp\ 1304}# (quote (any any))))) - #{e\ 1303}#))))) + #{e\ 1364}#)) + #{tmp\ 1365}#))) + ($sc-dispatch #{tmp\ 1365}# (quote (any any))))) + #{e\ 1364}#))))) (#{global-extend\ 129}# 'core 'lambda - (lambda (#{e\ 1311}# - #{r\ 1312}# - #{w\ 1313}# - #{s\ 1314}# - #{mod\ 1315}#) - ((lambda (#{tmp\ 1316}#) - ((lambda (#{tmp\ 1317}#) - (if (if #{tmp\ 1317}# - (apply (lambda (#{_\ 1318}# - #{args\ 1319}# - #{docstring\ 1320}# - #{e1\ 1321}# - #{e2\ 1322}#) - (string? (syntax->datum #{docstring\ 1320}#))) - #{tmp\ 1317}#) + (lambda (#{e\ 1372}# + #{r\ 1373}# + #{w\ 1374}# + #{s\ 1375}# + #{mod\ 1376}#) + ((lambda (#{tmp\ 1377}#) + ((lambda (#{tmp\ 1378}#) + (if (if #{tmp\ 1378}# + (apply (lambda (#{_\ 1379}# + #{args\ 1380}# + #{docstring\ 1381}# + #{e1\ 1382}# + #{e2\ 1383}#) + (string? (syntax->datum #{docstring\ 1381}#))) + #{tmp\ 1378}#) #f) - (apply (lambda (#{_\ 1323}# - #{args\ 1324}# - #{docstring\ 1325}# - #{e1\ 1326}# - #{e2\ 1327}#) + (apply (lambda (#{_\ 1384}# + #{args\ 1385}# + #{docstring\ 1386}# + #{e1\ 1387}# + #{e2\ 1388}#) (call-with-values (lambda () - (#{lambda-formals\ 176}# #{args\ 1324}#)) - (lambda (#{req\ 1328}# - #{opt\ 1329}# - #{rest\ 1330}# - #{kw\ 1331}#) + (#{lambda-formals\ 176}# #{args\ 1385}#)) + (lambda (#{req\ 1389}# + #{opt\ 1390}# + #{rest\ 1391}# + #{kw\ 1392}# + #{pred\ 1393}#) (#{chi-simple-lambda\ 177}# - #{e\ 1311}# - #{r\ 1312}# - #{w\ 1313}# - #{s\ 1314}# - #{mod\ 1315}# - #{req\ 1328}# - #{rest\ 1330}# - (syntax->datum #{docstring\ 1325}#) - (cons #{e1\ 1326}# #{e2\ 1327}#))))) - #{tmp\ 1317}#) - ((lambda (#{tmp\ 1333}#) - (if #{tmp\ 1333}# - (apply (lambda (#{_\ 1334}# - #{args\ 1335}# - #{e1\ 1336}# - #{e2\ 1337}#) + #{e\ 1372}# + #{r\ 1373}# + #{w\ 1374}# + #{s\ 1375}# + #{mod\ 1376}# + #{req\ 1389}# + #{rest\ 1391}# + (syntax->datum #{docstring\ 1386}#) + (cons #{e1\ 1387}# #{e2\ 1388}#))))) + #{tmp\ 1378}#) + ((lambda (#{tmp\ 1395}#) + (if #{tmp\ 1395}# + (apply (lambda (#{_\ 1396}# + #{args\ 1397}# + #{e1\ 1398}# + #{e2\ 1399}#) (call-with-values (lambda () - (#{lambda-formals\ 176}# #{args\ 1335}#)) - (lambda (#{req\ 1338}# - #{opt\ 1339}# - #{rest\ 1340}# - #{kw\ 1341}#) + (#{lambda-formals\ 176}# #{args\ 1397}#)) + (lambda (#{req\ 1400}# + #{opt\ 1401}# + #{rest\ 1402}# + #{kw\ 1403}# + #{pred\ 1404}#) (#{chi-simple-lambda\ 177}# - #{e\ 1311}# - #{r\ 1312}# - #{w\ 1313}# - #{s\ 1314}# - #{mod\ 1315}# - #{req\ 1338}# - #{rest\ 1340}# + #{e\ 1372}# + #{r\ 1373}# + #{w\ 1374}# + #{s\ 1375}# + #{mod\ 1376}# + #{req\ 1400}# + #{rest\ 1402}# #f - (cons #{e1\ 1336}# #{e2\ 1337}#))))) - #{tmp\ 1333}#) - ((lambda (#{_\ 1343}#) + (cons #{e1\ 1398}# #{e2\ 1399}#))))) + #{tmp\ 1395}#) + ((lambda (#{_\ 1406}#) (syntax-violation 'lambda "bad lambda" - #{e\ 1311}#)) - #{tmp\ 1316}#))) + #{e\ 1372}#)) + #{tmp\ 1377}#))) ($sc-dispatch - #{tmp\ 1316}# + #{tmp\ 1377}# '(any any any . each-any))))) ($sc-dispatch - #{tmp\ 1316}# + #{tmp\ 1377}# '(any any any any . each-any)))) - #{e\ 1311}#))) + #{e\ 1372}#))) (#{global-extend\ 129}# 'core 'lambda* - (lambda (#{e\ 1344}# - #{r\ 1345}# - #{w\ 1346}# - #{s\ 1347}# - #{mod\ 1348}#) - ((lambda (#{tmp\ 1349}#) - ((lambda (#{tmp\ 1350}#) - (if #{tmp\ 1350}# - (apply (lambda (#{_\ 1351}# - #{args\ 1352}# - #{e1\ 1353}# - #{e2\ 1354}#) + (lambda (#{e\ 1407}# + #{r\ 1408}# + #{w\ 1409}# + #{s\ 1410}# + #{mod\ 1411}#) + ((lambda (#{tmp\ 1412}#) + ((lambda (#{tmp\ 1413}#) + (if #{tmp\ 1413}# + (apply (lambda (#{_\ 1414}# + #{args\ 1415}# + #{e1\ 1416}# + #{e2\ 1417}#) (call-with-values (lambda () (#{chi-lambda-case\ 179}# - #{e\ 1344}# - #{r\ 1345}# - #{w\ 1346}# - #{s\ 1347}# - #{mod\ 1348}# + #{e\ 1407}# + #{r\ 1408}# + #{w\ 1409}# + #{s\ 1410}# + #{mod\ 1411}# #{lambda*-formals\ 178}# - (list (cons #{args\ 1352}# - (cons #{e1\ 1353}# - #{e2\ 1354}#))))) - (lambda (#{docstring\ 1356}# #{lcase\ 1357}#) + (list (cons #{args\ 1415}# + (cons #{e1\ 1416}# + #{e2\ 1417}#))))) + (lambda (#{docstring\ 1419}# #{lcase\ 1420}#) (#{build-case-lambda\ 106}# - #{s\ 1347}# - #{docstring\ 1356}# - #{lcase\ 1357}#)))) - #{tmp\ 1350}#) - ((lambda (#{_\ 1358}#) + #{s\ 1410}# + #{docstring\ 1419}# + #{lcase\ 1420}#)))) + #{tmp\ 1413}#) + ((lambda (#{_\ 1421}#) (syntax-violation 'lambda "bad lambda*" - #{e\ 1344}#)) - #{tmp\ 1349}#))) + #{e\ 1407}#)) + #{tmp\ 1412}#))) ($sc-dispatch - #{tmp\ 1349}# + #{tmp\ 1412}# '(any any any . each-any)))) - #{e\ 1344}#))) + #{e\ 1407}#))) (#{global-extend\ 129}# 'core 'case-lambda - (lambda (#{e\ 1359}# - #{r\ 1360}# - #{w\ 1361}# - #{s\ 1362}# - #{mod\ 1363}#) - ((lambda (#{tmp\ 1364}#) - ((lambda (#{tmp\ 1365}#) - (if #{tmp\ 1365}# - (apply (lambda (#{_\ 1366}# - #{args\ 1367}# - #{e1\ 1368}# - #{e2\ 1369}# - #{args*\ 1370}# - #{e1*\ 1371}# - #{e2*\ 1372}#) + (lambda (#{e\ 1422}# + #{r\ 1423}# + #{w\ 1424}# + #{s\ 1425}# + #{mod\ 1426}#) + ((lambda (#{tmp\ 1427}#) + ((lambda (#{tmp\ 1428}#) + (if #{tmp\ 1428}# + (apply (lambda (#{_\ 1429}# + #{args\ 1430}# + #{e1\ 1431}# + #{e2\ 1432}# + #{args*\ 1433}# + #{e1*\ 1434}# + #{e2*\ 1435}#) (call-with-values (lambda () (#{chi-lambda-case\ 179}# - #{e\ 1359}# - #{r\ 1360}# - #{w\ 1361}# - #{s\ 1362}# - #{mod\ 1363}# + #{e\ 1422}# + #{r\ 1423}# + #{w\ 1424}# + #{s\ 1425}# + #{mod\ 1426}# #{lambda-formals\ 176}# - (cons (cons #{args\ 1367}# - (cons #{e1\ 1368}# #{e2\ 1369}#)) - (map (lambda (#{tmp\ 1376}# - #{tmp\ 1375}# - #{tmp\ 1374}#) - (cons #{tmp\ 1374}# - (cons #{tmp\ 1375}# - #{tmp\ 1376}#))) - #{e2*\ 1372}# - #{e1*\ 1371}# - #{args*\ 1370}#)))) - (lambda (#{docstring\ 1378}# #{lcase\ 1379}#) + (cons (cons #{args\ 1430}# + (cons #{e1\ 1431}# #{e2\ 1432}#)) + (map (lambda (#{tmp\ 1439}# + #{tmp\ 1438}# + #{tmp\ 1437}#) + (cons #{tmp\ 1437}# + (cons #{tmp\ 1438}# + #{tmp\ 1439}#))) + #{e2*\ 1435}# + #{e1*\ 1434}# + #{args*\ 1433}#)))) + (lambda (#{docstring\ 1441}# #{lcase\ 1442}#) (#{build-case-lambda\ 106}# - #{s\ 1362}# - #{docstring\ 1378}# - #{lcase\ 1379}#)))) - #{tmp\ 1365}#) - ((lambda (#{_\ 1380}#) + #{s\ 1425}# + #{docstring\ 1441}# + #{lcase\ 1442}#)))) + #{tmp\ 1428}#) + ((lambda (#{_\ 1443}#) (syntax-violation 'case-lambda "bad case-lambda" - #{e\ 1359}#)) - #{tmp\ 1364}#))) + #{e\ 1422}#)) + #{tmp\ 1427}#))) ($sc-dispatch - #{tmp\ 1364}# + #{tmp\ 1427}# '(any (any any . each-any) . #(each (any any . each-any)))))) - #{e\ 1359}#))) + #{e\ 1422}#))) (#{global-extend\ 129}# 'core 'case-lambda* - (lambda (#{e\ 1381}# - #{r\ 1382}# - #{w\ 1383}# - #{s\ 1384}# - #{mod\ 1385}#) - ((lambda (#{tmp\ 1386}#) - ((lambda (#{tmp\ 1387}#) - (if #{tmp\ 1387}# - (apply (lambda (#{_\ 1388}# - #{args\ 1389}# - #{e1\ 1390}# - #{e2\ 1391}# - #{args*\ 1392}# - #{e1*\ 1393}# - #{e2*\ 1394}#) + (lambda (#{e\ 1444}# + #{r\ 1445}# + #{w\ 1446}# + #{s\ 1447}# + #{mod\ 1448}#) + ((lambda (#{tmp\ 1449}#) + ((lambda (#{tmp\ 1450}#) + (if #{tmp\ 1450}# + (apply (lambda (#{_\ 1451}# + #{args\ 1452}# + #{e1\ 1453}# + #{e2\ 1454}# + #{args*\ 1455}# + #{e1*\ 1456}# + #{e2*\ 1457}#) (call-with-values (lambda () (#{chi-lambda-case\ 179}# - #{e\ 1381}# - #{r\ 1382}# - #{w\ 1383}# - #{s\ 1384}# - #{mod\ 1385}# + #{e\ 1444}# + #{r\ 1445}# + #{w\ 1446}# + #{s\ 1447}# + #{mod\ 1448}# #{lambda*-formals\ 178}# - (cons (cons #{args\ 1389}# - (cons #{e1\ 1390}# #{e2\ 1391}#)) - (map (lambda (#{tmp\ 1398}# - #{tmp\ 1397}# - #{tmp\ 1396}#) - (cons #{tmp\ 1396}# - (cons #{tmp\ 1397}# - #{tmp\ 1398}#))) - #{e2*\ 1394}# - #{e1*\ 1393}# - #{args*\ 1392}#)))) - (lambda (#{docstring\ 1400}# #{lcase\ 1401}#) + (cons (cons #{args\ 1452}# + (cons #{e1\ 1453}# #{e2\ 1454}#)) + (map (lambda (#{tmp\ 1461}# + #{tmp\ 1460}# + #{tmp\ 1459}#) + (cons #{tmp\ 1459}# + (cons #{tmp\ 1460}# + #{tmp\ 1461}#))) + #{e2*\ 1457}# + #{e1*\ 1456}# + #{args*\ 1455}#)))) + (lambda (#{docstring\ 1463}# #{lcase\ 1464}#) (#{build-case-lambda\ 106}# - #{s\ 1384}# - #{docstring\ 1400}# - #{lcase\ 1401}#)))) - #{tmp\ 1387}#) - ((lambda (#{_\ 1402}#) + #{s\ 1447}# + #{docstring\ 1463}# + #{lcase\ 1464}#)))) + #{tmp\ 1450}#) + ((lambda (#{_\ 1465}#) (syntax-violation 'case-lambda "bad case-lambda*" - #{e\ 1381}#)) - #{tmp\ 1386}#))) + #{e\ 1444}#)) + #{tmp\ 1449}#))) ($sc-dispatch - #{tmp\ 1386}# + #{tmp\ 1449}# '(any (any any . each-any) . #(each (any any . each-any)))))) - #{e\ 1381}#))) + #{e\ 1444}#))) (#{global-extend\ 129}# 'core 'let - (letrec ((#{chi-let\ 1403}# - (lambda (#{e\ 1404}# - #{r\ 1405}# - #{w\ 1406}# - #{s\ 1407}# - #{mod\ 1408}# - #{constructor\ 1409}# - #{ids\ 1410}# - #{vals\ 1411}# - #{exps\ 1412}#) - (if (not (#{valid-bound-ids?\ 156}# #{ids\ 1410}#)) + (letrec ((#{chi-let\ 1466}# + (lambda (#{e\ 1467}# + #{r\ 1468}# + #{w\ 1469}# + #{s\ 1470}# + #{mod\ 1471}# + #{constructor\ 1472}# + #{ids\ 1473}# + #{vals\ 1474}# + #{exps\ 1475}#) + (if (not (#{valid-bound-ids?\ 156}# #{ids\ 1473}#)) (syntax-violation 'let "duplicate bound variable" - #{e\ 1404}#) - (let ((#{labels\ 1413}# - (#{gen-labels\ 137}# #{ids\ 1410}#)) - (#{new-vars\ 1414}# - (map #{gen-var\ 181}# #{ids\ 1410}#))) - (let ((#{nw\ 1415}# + #{e\ 1467}#) + (let ((#{labels\ 1476}# + (#{gen-labels\ 137}# #{ids\ 1473}#)) + (#{new-vars\ 1477}# + (map #{gen-var\ 181}# #{ids\ 1473}#))) + (let ((#{nw\ 1478}# (#{make-binding-wrap\ 148}# - #{ids\ 1410}# - #{labels\ 1413}# - #{w\ 1406}#)) - (#{nr\ 1416}# + #{ids\ 1473}# + #{labels\ 1476}# + #{w\ 1469}#)) + (#{nr\ 1479}# (#{extend-var-env\ 126}# - #{labels\ 1413}# - #{new-vars\ 1414}# - #{r\ 1405}#))) - (#{constructor\ 1409}# - #{s\ 1407}# - (map syntax->datum #{ids\ 1410}#) - #{new-vars\ 1414}# - (map (lambda (#{x\ 1417}#) + #{labels\ 1476}# + #{new-vars\ 1477}# + #{r\ 1468}#))) + (#{constructor\ 1472}# + #{s\ 1470}# + (map syntax->datum #{ids\ 1473}#) + #{new-vars\ 1477}# + (map (lambda (#{x\ 1480}#) (#{chi\ 167}# - #{x\ 1417}# - #{r\ 1405}# - #{w\ 1406}# - #{mod\ 1408}#)) - #{vals\ 1411}#) + #{x\ 1480}# + #{r\ 1468}# + #{w\ 1469}# + #{mod\ 1471}#)) + #{vals\ 1474}#) (#{chi-body\ 171}# - #{exps\ 1412}# + #{exps\ 1475}# (#{source-wrap\ 160}# - #{e\ 1404}# - #{nw\ 1415}# - #{s\ 1407}# - #{mod\ 1408}#) - #{nr\ 1416}# - #{nw\ 1415}# - #{mod\ 1408}#)))))))) - (lambda (#{e\ 1418}# - #{r\ 1419}# - #{w\ 1420}# - #{s\ 1421}# - #{mod\ 1422}#) - ((lambda (#{tmp\ 1423}#) - ((lambda (#{tmp\ 1424}#) - (if (if #{tmp\ 1424}# - (apply (lambda (#{_\ 1425}# - #{id\ 1426}# - #{val\ 1427}# - #{e1\ 1428}# - #{e2\ 1429}#) - (and-map #{id?\ 131}# #{id\ 1426}#)) - #{tmp\ 1424}#) + #{e\ 1467}# + #{nw\ 1478}# + #{s\ 1470}# + #{mod\ 1471}#) + #{nr\ 1479}# + #{nw\ 1478}# + #{mod\ 1471}#)))))))) + (lambda (#{e\ 1481}# + #{r\ 1482}# + #{w\ 1483}# + #{s\ 1484}# + #{mod\ 1485}#) + ((lambda (#{tmp\ 1486}#) + ((lambda (#{tmp\ 1487}#) + (if (if #{tmp\ 1487}# + (apply (lambda (#{_\ 1488}# + #{id\ 1489}# + #{val\ 1490}# + #{e1\ 1491}# + #{e2\ 1492}#) + (and-map #{id?\ 131}# #{id\ 1489}#)) + #{tmp\ 1487}#) #f) - (apply (lambda (#{_\ 1431}# - #{id\ 1432}# - #{val\ 1433}# - #{e1\ 1434}# - #{e2\ 1435}#) - (#{chi-let\ 1403}# - #{e\ 1418}# - #{r\ 1419}# - #{w\ 1420}# - #{s\ 1421}# - #{mod\ 1422}# + (apply (lambda (#{_\ 1494}# + #{id\ 1495}# + #{val\ 1496}# + #{e1\ 1497}# + #{e2\ 1498}#) + (#{chi-let\ 1466}# + #{e\ 1481}# + #{r\ 1482}# + #{w\ 1483}# + #{s\ 1484}# + #{mod\ 1485}# #{build-let\ 111}# - #{id\ 1432}# - #{val\ 1433}# - (cons #{e1\ 1434}# #{e2\ 1435}#))) - #{tmp\ 1424}#) - ((lambda (#{tmp\ 1439}#) - (if (if #{tmp\ 1439}# - (apply (lambda (#{_\ 1440}# - #{f\ 1441}# - #{id\ 1442}# - #{val\ 1443}# - #{e1\ 1444}# - #{e2\ 1445}#) - (if (#{id?\ 131}# #{f\ 1441}#) - (and-map #{id?\ 131}# #{id\ 1442}#) + #{id\ 1495}# + #{val\ 1496}# + (cons #{e1\ 1497}# #{e2\ 1498}#))) + #{tmp\ 1487}#) + ((lambda (#{tmp\ 1502}#) + (if (if #{tmp\ 1502}# + (apply (lambda (#{_\ 1503}# + #{f\ 1504}# + #{id\ 1505}# + #{val\ 1506}# + #{e1\ 1507}# + #{e2\ 1508}#) + (if (#{id?\ 131}# #{f\ 1504}#) + (and-map #{id?\ 131}# #{id\ 1505}#) #f)) - #{tmp\ 1439}#) + #{tmp\ 1502}#) #f) - (apply (lambda (#{_\ 1447}# - #{f\ 1448}# - #{id\ 1449}# - #{val\ 1450}# - #{e1\ 1451}# - #{e2\ 1452}#) - (#{chi-let\ 1403}# - #{e\ 1418}# - #{r\ 1419}# - #{w\ 1420}# - #{s\ 1421}# - #{mod\ 1422}# + (apply (lambda (#{_\ 1510}# + #{f\ 1511}# + #{id\ 1512}# + #{val\ 1513}# + #{e1\ 1514}# + #{e2\ 1515}#) + (#{chi-let\ 1466}# + #{e\ 1481}# + #{r\ 1482}# + #{w\ 1483}# + #{s\ 1484}# + #{mod\ 1485}# #{build-named-let\ 112}# - (cons #{f\ 1448}# #{id\ 1449}#) - #{val\ 1450}# - (cons #{e1\ 1451}# #{e2\ 1452}#))) - #{tmp\ 1439}#) - ((lambda (#{_\ 1456}#) + (cons #{f\ 1511}# #{id\ 1512}#) + #{val\ 1513}# + (cons #{e1\ 1514}# #{e2\ 1515}#))) + #{tmp\ 1502}#) + ((lambda (#{_\ 1519}#) (syntax-violation 'let "bad let" (#{source-wrap\ 160}# - #{e\ 1418}# - #{w\ 1420}# - #{s\ 1421}# - #{mod\ 1422}#))) - #{tmp\ 1423}#))) + #{e\ 1481}# + #{w\ 1483}# + #{s\ 1484}# + #{mod\ 1485}#))) + #{tmp\ 1486}#))) ($sc-dispatch - #{tmp\ 1423}# + #{tmp\ 1486}# '(any any #(each (any any)) any . each-any))))) ($sc-dispatch - #{tmp\ 1423}# + #{tmp\ 1486}# '(any #(each (any any)) any . each-any)))) - #{e\ 1418}#)))) + #{e\ 1481}#)))) (#{global-extend\ 129}# 'core 'letrec - (lambda (#{e\ 1457}# - #{r\ 1458}# - #{w\ 1459}# - #{s\ 1460}# - #{mod\ 1461}#) - ((lambda (#{tmp\ 1462}#) - ((lambda (#{tmp\ 1463}#) - (if (if #{tmp\ 1463}# - (apply (lambda (#{_\ 1464}# - #{id\ 1465}# - #{val\ 1466}# - #{e1\ 1467}# - #{e2\ 1468}#) - (and-map #{id?\ 131}# #{id\ 1465}#)) - #{tmp\ 1463}#) + (lambda (#{e\ 1520}# + #{r\ 1521}# + #{w\ 1522}# + #{s\ 1523}# + #{mod\ 1524}#) + ((lambda (#{tmp\ 1525}#) + ((lambda (#{tmp\ 1526}#) + (if (if #{tmp\ 1526}# + (apply (lambda (#{_\ 1527}# + #{id\ 1528}# + #{val\ 1529}# + #{e1\ 1530}# + #{e2\ 1531}#) + (and-map #{id?\ 131}# #{id\ 1528}#)) + #{tmp\ 1526}#) #f) - (apply (lambda (#{_\ 1470}# - #{id\ 1471}# - #{val\ 1472}# - #{e1\ 1473}# - #{e2\ 1474}#) - (let ((#{ids\ 1475}# #{id\ 1471}#)) + (apply (lambda (#{_\ 1533}# + #{id\ 1534}# + #{val\ 1535}# + #{e1\ 1536}# + #{e2\ 1537}#) + (let ((#{ids\ 1538}# #{id\ 1534}#)) (if (not (#{valid-bound-ids?\ 156}# - #{ids\ 1475}#)) + #{ids\ 1538}#)) (syntax-violation 'letrec "duplicate bound variable" - #{e\ 1457}#) - (let ((#{labels\ 1477}# - (#{gen-labels\ 137}# #{ids\ 1475}#)) - (#{new-vars\ 1478}# - (map #{gen-var\ 181}# #{ids\ 1475}#))) - (let ((#{w\ 1479}# + #{e\ 1520}#) + (let ((#{labels\ 1540}# + (#{gen-labels\ 137}# #{ids\ 1538}#)) + (#{new-vars\ 1541}# + (map #{gen-var\ 181}# #{ids\ 1538}#))) + (let ((#{w\ 1542}# (#{make-binding-wrap\ 148}# - #{ids\ 1475}# - #{labels\ 1477}# - #{w\ 1459}#)) - (#{r\ 1480}# + #{ids\ 1538}# + #{labels\ 1540}# + #{w\ 1522}#)) + (#{r\ 1543}# (#{extend-var-env\ 126}# - #{labels\ 1477}# - #{new-vars\ 1478}# - #{r\ 1458}#))) + #{labels\ 1540}# + #{new-vars\ 1541}# + #{r\ 1521}#))) (#{build-letrec\ 113}# - #{s\ 1460}# - (map syntax->datum #{ids\ 1475}#) - #{new-vars\ 1478}# - (map (lambda (#{x\ 1481}#) + #{s\ 1523}# + (map syntax->datum #{ids\ 1538}#) + #{new-vars\ 1541}# + (map (lambda (#{x\ 1544}#) (#{chi\ 167}# - #{x\ 1481}# - #{r\ 1480}# - #{w\ 1479}# - #{mod\ 1461}#)) - #{val\ 1472}#) + #{x\ 1544}# + #{r\ 1543}# + #{w\ 1542}# + #{mod\ 1524}#)) + #{val\ 1535}#) (#{chi-body\ 171}# - (cons #{e1\ 1473}# #{e2\ 1474}#) + (cons #{e1\ 1536}# #{e2\ 1537}#) (#{source-wrap\ 160}# - #{e\ 1457}# - #{w\ 1479}# - #{s\ 1460}# - #{mod\ 1461}#) - #{r\ 1480}# - #{w\ 1479}# - #{mod\ 1461}#))))))) - #{tmp\ 1463}#) - ((lambda (#{_\ 1484}#) + #{e\ 1520}# + #{w\ 1542}# + #{s\ 1523}# + #{mod\ 1524}#) + #{r\ 1543}# + #{w\ 1542}# + #{mod\ 1524}#))))))) + #{tmp\ 1526}#) + ((lambda (#{_\ 1547}#) (syntax-violation 'letrec "bad letrec" (#{source-wrap\ 160}# - #{e\ 1457}# - #{w\ 1459}# - #{s\ 1460}# - #{mod\ 1461}#))) - #{tmp\ 1462}#))) + #{e\ 1520}# + #{w\ 1522}# + #{s\ 1523}# + #{mod\ 1524}#))) + #{tmp\ 1525}#))) ($sc-dispatch - #{tmp\ 1462}# + #{tmp\ 1525}# '(any #(each (any any)) any . each-any)))) - #{e\ 1457}#))) + #{e\ 1520}#))) (#{global-extend\ 129}# 'core 'set! - (lambda (#{e\ 1485}# - #{r\ 1486}# - #{w\ 1487}# - #{s\ 1488}# - #{mod\ 1489}#) - ((lambda (#{tmp\ 1490}#) - ((lambda (#{tmp\ 1491}#) - (if (if #{tmp\ 1491}# - (apply (lambda (#{_\ 1492}# #{id\ 1493}# #{val\ 1494}#) - (#{id?\ 131}# #{id\ 1493}#)) - #{tmp\ 1491}#) + (lambda (#{e\ 1548}# + #{r\ 1549}# + #{w\ 1550}# + #{s\ 1551}# + #{mod\ 1552}#) + ((lambda (#{tmp\ 1553}#) + ((lambda (#{tmp\ 1554}#) + (if (if #{tmp\ 1554}# + (apply (lambda (#{_\ 1555}# #{id\ 1556}# #{val\ 1557}#) + (#{id?\ 131}# #{id\ 1556}#)) + #{tmp\ 1554}#) #f) - (apply (lambda (#{_\ 1495}# #{id\ 1496}# #{val\ 1497}#) - (let ((#{val\ 1498}# + (apply (lambda (#{_\ 1558}# #{id\ 1559}# #{val\ 1560}#) + (let ((#{val\ 1561}# (#{chi\ 167}# - #{val\ 1497}# - #{r\ 1486}# - #{w\ 1487}# - #{mod\ 1489}#)) - (#{n\ 1499}# + #{val\ 1560}# + #{r\ 1549}# + #{w\ 1550}# + #{mod\ 1552}#)) + (#{n\ 1562}# (#{id-var-name\ 153}# - #{id\ 1496}# - #{w\ 1487}#))) - (let ((#{b\ 1500}# + #{id\ 1559}# + #{w\ 1550}#))) + (let ((#{b\ 1563}# (#{lookup\ 128}# - #{n\ 1499}# - #{r\ 1486}# - #{mod\ 1489}#))) - (let ((#{atom-key\ 1501}# - (#{binding-type\ 123}# #{b\ 1500}#))) - (if (memv #{atom-key\ 1501}# + #{n\ 1562}# + #{r\ 1549}# + #{mod\ 1552}#))) + (let ((#{atom-key\ 1564}# + (#{binding-type\ 123}# #{b\ 1563}#))) + (if (memv #{atom-key\ 1564}# '(lexical)) (#{build-lexical-assignment\ 99}# - #{s\ 1488}# - (syntax->datum #{id\ 1496}#) - (#{binding-value\ 124}# #{b\ 1500}#) - #{val\ 1498}#) - (if (memv #{atom-key\ 1501}# + #{s\ 1551}# + (syntax->datum #{id\ 1559}#) + (#{binding-value\ 124}# #{b\ 1563}#) + #{val\ 1561}#) + (if (memv #{atom-key\ 1564}# '(global)) (#{build-global-assignment\ 102}# - #{s\ 1488}# - #{n\ 1499}# - #{val\ 1498}# - #{mod\ 1489}#) - (if (memv #{atom-key\ 1501}# + #{s\ 1551}# + #{n\ 1562}# + #{val\ 1561}# + #{mod\ 1552}#) + (if (memv #{atom-key\ 1564}# '(displaced-lexical)) (syntax-violation 'set! "identifier out of context" (#{wrap\ 159}# - #{id\ 1496}# - #{w\ 1487}# - #{mod\ 1489}#)) + #{id\ 1559}# + #{w\ 1550}# + #{mod\ 1552}#)) (syntax-violation 'set! "bad set!" (#{source-wrap\ 160}# - #{e\ 1485}# - #{w\ 1487}# - #{s\ 1488}# - #{mod\ 1489}#))))))))) - #{tmp\ 1491}#) - ((lambda (#{tmp\ 1502}#) - (if #{tmp\ 1502}# - (apply (lambda (#{_\ 1503}# - #{head\ 1504}# - #{tail\ 1505}# - #{val\ 1506}#) + #{e\ 1548}# + #{w\ 1550}# + #{s\ 1551}# + #{mod\ 1552}#))))))))) + #{tmp\ 1554}#) + ((lambda (#{tmp\ 1565}#) + (if #{tmp\ 1565}# + (apply (lambda (#{_\ 1566}# + #{head\ 1567}# + #{tail\ 1568}# + #{val\ 1569}#) (call-with-values (lambda () (#{syntax-type\ 165}# - #{head\ 1504}# - #{r\ 1486}# + #{head\ 1567}# + #{r\ 1549}# '(()) #f #f - #{mod\ 1489}# + #{mod\ 1552}# #t)) - (lambda (#{type\ 1507}# - #{value\ 1508}# - #{ee\ 1509}# - #{ww\ 1510}# - #{ss\ 1511}# - #{modmod\ 1512}#) - (if (memv #{type\ 1507}# + (lambda (#{type\ 1570}# + #{value\ 1571}# + #{ee\ 1572}# + #{ww\ 1573}# + #{ss\ 1574}# + #{modmod\ 1575}#) + (if (memv #{type\ 1570}# '(module-ref)) - (let ((#{val\ 1513}# + (let ((#{val\ 1576}# (#{chi\ 167}# - #{val\ 1506}# - #{r\ 1486}# - #{w\ 1487}# - #{mod\ 1489}#))) + #{val\ 1569}# + #{r\ 1549}# + #{w\ 1550}# + #{mod\ 1552}#))) (call-with-values (lambda () - (#{value\ 1508}# - (cons #{head\ 1504}# - #{tail\ 1505}#))) - (lambda (#{id\ 1515}# #{mod\ 1516}#) + (#{value\ 1571}# + (cons #{head\ 1567}# + #{tail\ 1568}#))) + (lambda (#{id\ 1578}# #{mod\ 1579}#) (#{build-global-assignment\ 102}# - #{s\ 1488}# - #{id\ 1515}# - #{val\ 1513}# - #{mod\ 1516}#)))) + #{s\ 1551}# + #{id\ 1578}# + #{val\ 1576}# + #{mod\ 1579}#)))) (#{build-application\ 96}# - #{s\ 1488}# + #{s\ 1551}# (#{chi\ 167}# (list '#(syntax-object setter @@ -9349,53 +9578,53 @@ ((top) (top)) ("i" "i"))) (hygiene guile)) - #{head\ 1504}#) - #{r\ 1486}# - #{w\ 1487}# - #{mod\ 1489}#) - (map (lambda (#{e\ 1517}#) + #{head\ 1567}#) + #{r\ 1549}# + #{w\ 1550}# + #{mod\ 1552}#) + (map (lambda (#{e\ 1580}#) (#{chi\ 167}# - #{e\ 1517}# - #{r\ 1486}# - #{w\ 1487}# - #{mod\ 1489}#)) + #{e\ 1580}# + #{r\ 1549}# + #{w\ 1550}# + #{mod\ 1552}#)) (append - #{tail\ 1505}# - (list #{val\ 1506}#)))))))) - #{tmp\ 1502}#) - ((lambda (#{_\ 1519}#) + #{tail\ 1568}# + (list #{val\ 1569}#)))))))) + #{tmp\ 1565}#) + ((lambda (#{_\ 1582}#) (syntax-violation 'set! "bad set!" (#{source-wrap\ 160}# - #{e\ 1485}# - #{w\ 1487}# - #{s\ 1488}# - #{mod\ 1489}#))) - #{tmp\ 1490}#))) + #{e\ 1548}# + #{w\ 1550}# + #{s\ 1551}# + #{mod\ 1552}#))) + #{tmp\ 1553}#))) ($sc-dispatch - #{tmp\ 1490}# + #{tmp\ 1553}# '(any (any . each-any) any))))) ($sc-dispatch - #{tmp\ 1490}# + #{tmp\ 1553}# '(any any any)))) - #{e\ 1485}#))) + #{e\ 1548}#))) (#{global-extend\ 129}# 'module-ref '@ - (lambda (#{e\ 1520}#) - ((lambda (#{tmp\ 1521}#) - ((lambda (#{tmp\ 1522}#) - (if (if #{tmp\ 1522}# - (apply (lambda (#{_\ 1523}# #{mod\ 1524}# #{id\ 1525}#) - (if (and-map #{id?\ 131}# #{mod\ 1524}#) - (#{id?\ 131}# #{id\ 1525}#) + (lambda (#{e\ 1583}#) + ((lambda (#{tmp\ 1584}#) + ((lambda (#{tmp\ 1585}#) + (if (if #{tmp\ 1585}# + (apply (lambda (#{_\ 1586}# #{mod\ 1587}# #{id\ 1588}#) + (if (and-map #{id?\ 131}# #{mod\ 1587}#) + (#{id?\ 131}# #{id\ 1588}#) #f)) - #{tmp\ 1522}#) + #{tmp\ 1585}#) #f) - (apply (lambda (#{_\ 1527}# #{mod\ 1528}# #{id\ 1529}#) + (apply (lambda (#{_\ 1590}# #{mod\ 1591}# #{id\ 1592}#) (values - (syntax->datum #{id\ 1529}#) + (syntax->datum #{id\ 1592}#) (syntax->datum (cons '#(syntax-object public @@ -9763,32 +9992,32 @@ ((top) (top)) ("i" "i"))) (hygiene guile)) - #{mod\ 1528}#)))) - #{tmp\ 1522}#) + #{mod\ 1591}#)))) + #{tmp\ 1585}#) (syntax-violation #f "source expression failed to match any pattern" - #{tmp\ 1521}#))) + #{tmp\ 1584}#))) ($sc-dispatch - #{tmp\ 1521}# + #{tmp\ 1584}# '(any each-any any)))) - #{e\ 1520}#))) + #{e\ 1583}#))) (#{global-extend\ 129}# 'module-ref '@@ - (lambda (#{e\ 1531}#) - ((lambda (#{tmp\ 1532}#) - ((lambda (#{tmp\ 1533}#) - (if (if #{tmp\ 1533}# - (apply (lambda (#{_\ 1534}# #{mod\ 1535}# #{id\ 1536}#) - (if (and-map #{id?\ 131}# #{mod\ 1535}#) - (#{id?\ 131}# #{id\ 1536}#) + (lambda (#{e\ 1594}#) + ((lambda (#{tmp\ 1595}#) + ((lambda (#{tmp\ 1596}#) + (if (if #{tmp\ 1596}# + (apply (lambda (#{_\ 1597}# #{mod\ 1598}# #{id\ 1599}#) + (if (and-map #{id?\ 131}# #{mod\ 1598}#) + (#{id?\ 131}# #{id\ 1599}#) #f)) - #{tmp\ 1533}#) + #{tmp\ 1596}#) #f) - (apply (lambda (#{_\ 1538}# #{mod\ 1539}# #{id\ 1540}#) + (apply (lambda (#{_\ 1601}# #{mod\ 1602}# #{id\ 1603}#) (values - (syntax->datum #{id\ 1540}#) + (syntax->datum #{id\ 1603}#) (syntax->datum (cons '#(syntax-object private @@ -10156,77 +10385,77 @@ ((top) (top)) ("i" "i"))) (hygiene guile)) - #{mod\ 1539}#)))) - #{tmp\ 1533}#) + #{mod\ 1602}#)))) + #{tmp\ 1596}#) (syntax-violation #f "source expression failed to match any pattern" - #{tmp\ 1532}#))) + #{tmp\ 1595}#))) ($sc-dispatch - #{tmp\ 1532}# + #{tmp\ 1595}# '(any each-any any)))) - #{e\ 1531}#))) + #{e\ 1594}#))) (#{global-extend\ 129}# 'core 'if - (lambda (#{e\ 1542}# - #{r\ 1543}# - #{w\ 1544}# - #{s\ 1545}# - #{mod\ 1546}#) - ((lambda (#{tmp\ 1547}#) - ((lambda (#{tmp\ 1548}#) - (if #{tmp\ 1548}# - (apply (lambda (#{_\ 1549}# #{test\ 1550}# #{then\ 1551}#) + (lambda (#{e\ 1605}# + #{r\ 1606}# + #{w\ 1607}# + #{s\ 1608}# + #{mod\ 1609}#) + ((lambda (#{tmp\ 1610}#) + ((lambda (#{tmp\ 1611}#) + (if #{tmp\ 1611}# + (apply (lambda (#{_\ 1612}# #{test\ 1613}# #{then\ 1614}#) (#{build-conditional\ 97}# - #{s\ 1545}# + #{s\ 1608}# (#{chi\ 167}# - #{test\ 1550}# - #{r\ 1543}# - #{w\ 1544}# - #{mod\ 1546}#) + #{test\ 1613}# + #{r\ 1606}# + #{w\ 1607}# + #{mod\ 1609}#) (#{chi\ 167}# - #{then\ 1551}# - #{r\ 1543}# - #{w\ 1544}# - #{mod\ 1546}#) + #{then\ 1614}# + #{r\ 1606}# + #{w\ 1607}# + #{mod\ 1609}#) (#{build-void\ 95}# #f))) - #{tmp\ 1548}#) - ((lambda (#{tmp\ 1552}#) - (if #{tmp\ 1552}# - (apply (lambda (#{_\ 1553}# - #{test\ 1554}# - #{then\ 1555}# - #{else\ 1556}#) + #{tmp\ 1611}#) + ((lambda (#{tmp\ 1615}#) + (if #{tmp\ 1615}# + (apply (lambda (#{_\ 1616}# + #{test\ 1617}# + #{then\ 1618}# + #{else\ 1619}#) (#{build-conditional\ 97}# - #{s\ 1545}# + #{s\ 1608}# (#{chi\ 167}# - #{test\ 1554}# - #{r\ 1543}# - #{w\ 1544}# - #{mod\ 1546}#) + #{test\ 1617}# + #{r\ 1606}# + #{w\ 1607}# + #{mod\ 1609}#) (#{chi\ 167}# - #{then\ 1555}# - #{r\ 1543}# - #{w\ 1544}# - #{mod\ 1546}#) + #{then\ 1618}# + #{r\ 1606}# + #{w\ 1607}# + #{mod\ 1609}#) (#{chi\ 167}# - #{else\ 1556}# - #{r\ 1543}# - #{w\ 1544}# - #{mod\ 1546}#))) - #{tmp\ 1552}#) + #{else\ 1619}# + #{r\ 1606}# + #{w\ 1607}# + #{mod\ 1609}#))) + #{tmp\ 1615}#) (syntax-violation #f "source expression failed to match any pattern" - #{tmp\ 1547}#))) + #{tmp\ 1610}#))) ($sc-dispatch - #{tmp\ 1547}# + #{tmp\ 1610}# '(any any any any))))) ($sc-dispatch - #{tmp\ 1547}# + #{tmp\ 1610}# '(any any any)))) - #{e\ 1542}#))) + #{e\ 1605}#))) (#{global-extend\ 129}# 'begin 'begin @@ -10246,13 +10475,13 @@ (#{global-extend\ 129}# 'core 'syntax-case - (letrec ((#{gen-syntax-case\ 1560}# - (lambda (#{x\ 1561}# - #{keys\ 1562}# - #{clauses\ 1563}# - #{r\ 1564}# - #{mod\ 1565}#) - (if (null? #{clauses\ 1563}#) + (letrec ((#{gen-syntax-case\ 1623}# + (lambda (#{x\ 1624}# + #{keys\ 1625}# + #{clauses\ 1626}# + #{r\ 1627}# + #{mod\ 1628}#) + (if (null? #{clauses\ 1626}#) (#{build-application\ 96}# #f (#{build-primref\ 108}# @@ -10262,17 +10491,17 @@ (#{build-data\ 109}# #f "source expression failed to match any pattern") - #{x\ 1561}#)) - ((lambda (#{tmp\ 1566}#) - ((lambda (#{tmp\ 1567}#) - (if #{tmp\ 1567}# - (apply (lambda (#{pat\ 1568}# #{exp\ 1569}#) - (if (if (#{id?\ 131}# #{pat\ 1568}#) + #{x\ 1624}#)) + ((lambda (#{tmp\ 1629}#) + ((lambda (#{tmp\ 1630}#) + (if #{tmp\ 1630}# + (apply (lambda (#{pat\ 1631}# #{exp\ 1632}#) + (if (if (#{id?\ 131}# #{pat\ 1631}#) (and-map - (lambda (#{x\ 1570}#) + (lambda (#{x\ 1633}#) (not (#{free-id=?\ 154}# - #{pat\ 1568}# - #{x\ 1570}#))) + #{pat\ 1631}# + #{x\ 1633}#))) (cons '#(syntax-object ... ((top) @@ -10665,103 +10894,103 @@ ((top) (top)) ("i" "i"))) (hygiene guile)) - #{keys\ 1562}#)) + #{keys\ 1625}#)) #f) - (let ((#{labels\ 1571}# + (let ((#{labels\ 1634}# (list (#{gen-label\ 136}#))) - (#{var\ 1572}# + (#{var\ 1635}# (#{gen-var\ 181}# - #{pat\ 1568}#))) + #{pat\ 1631}#))) (#{build-application\ 96}# #f (#{build-simple-lambda\ 105}# #f (list (syntax->datum - #{pat\ 1568}#)) + #{pat\ 1631}#)) #f - (list #{var\ 1572}#) + (list #{var\ 1635}#) #f (#{chi\ 167}# - #{exp\ 1569}# + #{exp\ 1632}# (#{extend-env\ 125}# - #{labels\ 1571}# + #{labels\ 1634}# (list (cons 'syntax - (cons #{var\ 1572}# + (cons #{var\ 1635}# 0))) - #{r\ 1564}#) + #{r\ 1627}#) (#{make-binding-wrap\ 148}# - (list #{pat\ 1568}#) - #{labels\ 1571}# + (list #{pat\ 1631}#) + #{labels\ 1634}# '(())) - #{mod\ 1565}#)) - (list #{x\ 1561}#))) - (#{gen-clause\ 1559}# - #{x\ 1561}# - #{keys\ 1562}# - (cdr #{clauses\ 1563}#) - #{r\ 1564}# - #{pat\ 1568}# + #{mod\ 1628}#)) + (list #{x\ 1624}#))) + (#{gen-clause\ 1622}# + #{x\ 1624}# + #{keys\ 1625}# + (cdr #{clauses\ 1626}#) + #{r\ 1627}# + #{pat\ 1631}# #t - #{exp\ 1569}# - #{mod\ 1565}#))) - #{tmp\ 1567}#) - ((lambda (#{tmp\ 1573}#) - (if #{tmp\ 1573}# - (apply (lambda (#{pat\ 1574}# - #{fender\ 1575}# - #{exp\ 1576}#) - (#{gen-clause\ 1559}# - #{x\ 1561}# - #{keys\ 1562}# - (cdr #{clauses\ 1563}#) - #{r\ 1564}# - #{pat\ 1574}# - #{fender\ 1575}# - #{exp\ 1576}# - #{mod\ 1565}#)) - #{tmp\ 1573}#) - ((lambda (#{_\ 1577}#) + #{exp\ 1632}# + #{mod\ 1628}#))) + #{tmp\ 1630}#) + ((lambda (#{tmp\ 1636}#) + (if #{tmp\ 1636}# + (apply (lambda (#{pat\ 1637}# + #{fender\ 1638}# + #{exp\ 1639}#) + (#{gen-clause\ 1622}# + #{x\ 1624}# + #{keys\ 1625}# + (cdr #{clauses\ 1626}#) + #{r\ 1627}# + #{pat\ 1637}# + #{fender\ 1638}# + #{exp\ 1639}# + #{mod\ 1628}#)) + #{tmp\ 1636}#) + ((lambda (#{_\ 1640}#) (syntax-violation 'syntax-case "invalid clause" - (car #{clauses\ 1563}#))) - #{tmp\ 1566}#))) + (car #{clauses\ 1626}#))) + #{tmp\ 1629}#))) ($sc-dispatch - #{tmp\ 1566}# + #{tmp\ 1629}# '(any any any))))) - ($sc-dispatch #{tmp\ 1566}# (quote (any any))))) - (car #{clauses\ 1563}#))))) - (#{gen-clause\ 1559}# - (lambda (#{x\ 1578}# - #{keys\ 1579}# - #{clauses\ 1580}# - #{r\ 1581}# - #{pat\ 1582}# - #{fender\ 1583}# - #{exp\ 1584}# - #{mod\ 1585}#) + ($sc-dispatch #{tmp\ 1629}# (quote (any any))))) + (car #{clauses\ 1626}#))))) + (#{gen-clause\ 1622}# + (lambda (#{x\ 1641}# + #{keys\ 1642}# + #{clauses\ 1643}# + #{r\ 1644}# + #{pat\ 1645}# + #{fender\ 1646}# + #{exp\ 1647}# + #{mod\ 1648}#) (call-with-values (lambda () - (#{convert-pattern\ 1557}# - #{pat\ 1582}# - #{keys\ 1579}#)) - (lambda (#{p\ 1586}# #{pvars\ 1587}#) + (#{convert-pattern\ 1620}# + #{pat\ 1645}# + #{keys\ 1642}#)) + (lambda (#{p\ 1649}# #{pvars\ 1650}#) (if (not (#{distinct-bound-ids?\ 157}# - (map car #{pvars\ 1587}#))) + (map car #{pvars\ 1650}#))) (syntax-violation 'syntax-case "duplicate pattern variable" - #{pat\ 1582}#) + #{pat\ 1645}#) (if (not (and-map - (lambda (#{x\ 1588}#) + (lambda (#{x\ 1651}#) (not (#{ellipsis?\ 175}# - (car #{x\ 1588}#)))) - #{pvars\ 1587}#)) + (car #{x\ 1651}#)))) + #{pvars\ 1650}#)) (syntax-violation 'syntax-case "misplaced ellipsis" - #{pat\ 1582}#) - (let ((#{y\ 1589}# + #{pat\ 1645}#) + (let ((#{y\ 1652}# (#{gen-var\ 181}# (quote tmp)))) (#{build-application\ 96}# #f @@ -10769,630 +10998,630 @@ #f (list (quote tmp)) #f - (list #{y\ 1589}#) + (list #{y\ 1652}#) #f - (let ((#{y\ 1590}# + (let ((#{y\ 1653}# (#{build-lexical-reference\ 98}# 'value #f 'tmp - #{y\ 1589}#))) + #{y\ 1652}#))) (#{build-conditional\ 97}# #f - ((lambda (#{tmp\ 1591}#) - ((lambda (#{tmp\ 1592}#) - (if #{tmp\ 1592}# - (apply (lambda () #{y\ 1590}#) - #{tmp\ 1592}#) - ((lambda (#{_\ 1593}#) + ((lambda (#{tmp\ 1654}#) + ((lambda (#{tmp\ 1655}#) + (if #{tmp\ 1655}# + (apply (lambda () #{y\ 1653}#) + #{tmp\ 1655}#) + ((lambda (#{_\ 1656}#) (#{build-conditional\ 97}# #f - #{y\ 1590}# - (#{build-dispatch-call\ 1558}# - #{pvars\ 1587}# - #{fender\ 1583}# - #{y\ 1590}# - #{r\ 1581}# - #{mod\ 1585}#) + #{y\ 1653}# + (#{build-dispatch-call\ 1621}# + #{pvars\ 1650}# + #{fender\ 1646}# + #{y\ 1653}# + #{r\ 1644}# + #{mod\ 1648}#) (#{build-data\ 109}# #f #f))) - #{tmp\ 1591}#))) + #{tmp\ 1654}#))) ($sc-dispatch - #{tmp\ 1591}# + #{tmp\ 1654}# '#(atom #t)))) - #{fender\ 1583}#) - (#{build-dispatch-call\ 1558}# - #{pvars\ 1587}# - #{exp\ 1584}# - #{y\ 1590}# - #{r\ 1581}# - #{mod\ 1585}#) - (#{gen-syntax-case\ 1560}# - #{x\ 1578}# - #{keys\ 1579}# - #{clauses\ 1580}# - #{r\ 1581}# - #{mod\ 1585}#)))) - (list (if (eq? #{p\ 1586}# (quote any)) + #{fender\ 1646}#) + (#{build-dispatch-call\ 1621}# + #{pvars\ 1650}# + #{exp\ 1647}# + #{y\ 1653}# + #{r\ 1644}# + #{mod\ 1648}#) + (#{gen-syntax-case\ 1623}# + #{x\ 1641}# + #{keys\ 1642}# + #{clauses\ 1643}# + #{r\ 1644}# + #{mod\ 1648}#)))) + (list (if (eq? #{p\ 1649}# (quote any)) (#{build-application\ 96}# #f (#{build-primref\ 108}# #f 'list) - (list #{x\ 1578}#)) + (list #{x\ 1641}#)) (#{build-application\ 96}# #f (#{build-primref\ 108}# #f '$sc-dispatch) - (list #{x\ 1578}# + (list #{x\ 1641}# (#{build-data\ 109}# #f - #{p\ 1586}#))))))))))))) - (#{build-dispatch-call\ 1558}# - (lambda (#{pvars\ 1594}# - #{exp\ 1595}# - #{y\ 1596}# - #{r\ 1597}# - #{mod\ 1598}#) - (let ((#{ids\ 1599}# (map car #{pvars\ 1594}#)) - (#{levels\ 1600}# (map cdr #{pvars\ 1594}#))) - (let ((#{labels\ 1601}# - (#{gen-labels\ 137}# #{ids\ 1599}#)) - (#{new-vars\ 1602}# - (map #{gen-var\ 181}# #{ids\ 1599}#))) + #{p\ 1649}#))))))))))))) + (#{build-dispatch-call\ 1621}# + (lambda (#{pvars\ 1657}# + #{exp\ 1658}# + #{y\ 1659}# + #{r\ 1660}# + #{mod\ 1661}#) + (let ((#{ids\ 1662}# (map car #{pvars\ 1657}#)) + (#{levels\ 1663}# (map cdr #{pvars\ 1657}#))) + (let ((#{labels\ 1664}# + (#{gen-labels\ 137}# #{ids\ 1662}#)) + (#{new-vars\ 1665}# + (map #{gen-var\ 181}# #{ids\ 1662}#))) (#{build-application\ 96}# #f (#{build-primref\ 108}# #f (quote apply)) (list (#{build-simple-lambda\ 105}# #f - (map syntax->datum #{ids\ 1599}#) + (map syntax->datum #{ids\ 1662}#) #f - #{new-vars\ 1602}# + #{new-vars\ 1665}# #f (#{chi\ 167}# - #{exp\ 1595}# + #{exp\ 1658}# (#{extend-env\ 125}# - #{labels\ 1601}# - (map (lambda (#{var\ 1603}# - #{level\ 1604}#) + #{labels\ 1664}# + (map (lambda (#{var\ 1666}# + #{level\ 1667}#) (cons 'syntax - (cons #{var\ 1603}# - #{level\ 1604}#))) - #{new-vars\ 1602}# - (map cdr #{pvars\ 1594}#)) - #{r\ 1597}#) + (cons #{var\ 1666}# + #{level\ 1667}#))) + #{new-vars\ 1665}# + (map cdr #{pvars\ 1657}#)) + #{r\ 1660}#) (#{make-binding-wrap\ 148}# - #{ids\ 1599}# - #{labels\ 1601}# + #{ids\ 1662}# + #{labels\ 1664}# '(())) - #{mod\ 1598}#)) - #{y\ 1596}#)))))) - (#{convert-pattern\ 1557}# - (lambda (#{pattern\ 1605}# #{keys\ 1606}#) - (letrec ((#{cvt\ 1607}# - (lambda (#{p\ 1608}# #{n\ 1609}# #{ids\ 1610}#) - (if (#{id?\ 131}# #{p\ 1608}#) + #{mod\ 1661}#)) + #{y\ 1659}#)))))) + (#{convert-pattern\ 1620}# + (lambda (#{pattern\ 1668}# #{keys\ 1669}#) + (letrec ((#{cvt\ 1670}# + (lambda (#{p\ 1671}# #{n\ 1672}# #{ids\ 1673}#) + (if (#{id?\ 131}# #{p\ 1671}#) (if (#{bound-id-member?\ 158}# - #{p\ 1608}# - #{keys\ 1606}#) + #{p\ 1671}# + #{keys\ 1669}#) (values - (vector (quote free-id) #{p\ 1608}#) - #{ids\ 1610}#) + (vector (quote free-id) #{p\ 1671}#) + #{ids\ 1673}#) (values 'any - (cons (cons #{p\ 1608}# #{n\ 1609}#) - #{ids\ 1610}#))) - ((lambda (#{tmp\ 1611}#) - ((lambda (#{tmp\ 1612}#) - (if (if #{tmp\ 1612}# - (apply (lambda (#{x\ 1613}# - #{dots\ 1614}#) + (cons (cons #{p\ 1671}# #{n\ 1672}#) + #{ids\ 1673}#))) + ((lambda (#{tmp\ 1674}#) + ((lambda (#{tmp\ 1675}#) + (if (if #{tmp\ 1675}# + (apply (lambda (#{x\ 1676}# + #{dots\ 1677}#) (#{ellipsis?\ 175}# - #{dots\ 1614}#)) - #{tmp\ 1612}#) + #{dots\ 1677}#)) + #{tmp\ 1675}#) #f) - (apply (lambda (#{x\ 1615}# - #{dots\ 1616}#) + (apply (lambda (#{x\ 1678}# + #{dots\ 1679}#) (call-with-values (lambda () - (#{cvt\ 1607}# - #{x\ 1615}# + (#{cvt\ 1670}# + #{x\ 1678}# (#{fx+\ 86}# - #{n\ 1609}# + #{n\ 1672}# 1) - #{ids\ 1610}#)) - (lambda (#{p\ 1617}# - #{ids\ 1618}#) + #{ids\ 1673}#)) + (lambda (#{p\ 1680}# + #{ids\ 1681}#) (values - (if (eq? #{p\ 1617}# + (if (eq? #{p\ 1680}# 'any) 'each-any (vector 'each - #{p\ 1617}#)) - #{ids\ 1618}#)))) - #{tmp\ 1612}#) - ((lambda (#{tmp\ 1619}#) - (if #{tmp\ 1619}# - (apply (lambda (#{x\ 1620}# - #{y\ 1621}#) + #{p\ 1680}#)) + #{ids\ 1681}#)))) + #{tmp\ 1675}#) + ((lambda (#{tmp\ 1682}#) + (if #{tmp\ 1682}# + (apply (lambda (#{x\ 1683}# + #{y\ 1684}#) (call-with-values (lambda () - (#{cvt\ 1607}# - #{y\ 1621}# - #{n\ 1609}# - #{ids\ 1610}#)) - (lambda (#{y\ 1622}# - #{ids\ 1623}#) + (#{cvt\ 1670}# + #{y\ 1684}# + #{n\ 1672}# + #{ids\ 1673}#)) + (lambda (#{y\ 1685}# + #{ids\ 1686}#) (call-with-values (lambda () - (#{cvt\ 1607}# - #{x\ 1620}# - #{n\ 1609}# - #{ids\ 1623}#)) - (lambda (#{x\ 1624}# - #{ids\ 1625}#) + (#{cvt\ 1670}# + #{x\ 1683}# + #{n\ 1672}# + #{ids\ 1686}#)) + (lambda (#{x\ 1687}# + #{ids\ 1688}#) (values - (cons #{x\ 1624}# - #{y\ 1622}#) - #{ids\ 1625}#)))))) - #{tmp\ 1619}#) - ((lambda (#{tmp\ 1626}#) - (if #{tmp\ 1626}# + (cons #{x\ 1687}# + #{y\ 1685}#) + #{ids\ 1688}#)))))) + #{tmp\ 1682}#) + ((lambda (#{tmp\ 1689}#) + (if #{tmp\ 1689}# (apply (lambda () (values '() - #{ids\ 1610}#)) - #{tmp\ 1626}#) - ((lambda (#{tmp\ 1627}#) - (if #{tmp\ 1627}# - (apply (lambda (#{x\ 1628}#) + #{ids\ 1673}#)) + #{tmp\ 1689}#) + ((lambda (#{tmp\ 1690}#) + (if #{tmp\ 1690}# + (apply (lambda (#{x\ 1691}#) (call-with-values (lambda () - (#{cvt\ 1607}# - #{x\ 1628}# - #{n\ 1609}# - #{ids\ 1610}#)) - (lambda (#{p\ 1630}# - #{ids\ 1631}#) + (#{cvt\ 1670}# + #{x\ 1691}# + #{n\ 1672}# + #{ids\ 1673}#)) + (lambda (#{p\ 1693}# + #{ids\ 1694}#) (values (vector 'vector - #{p\ 1630}#) - #{ids\ 1631}#)))) - #{tmp\ 1627}#) - ((lambda (#{x\ 1632}#) + #{p\ 1693}#) + #{ids\ 1694}#)))) + #{tmp\ 1690}#) + ((lambda (#{x\ 1695}#) (values (vector 'atom (#{strip\ 180}# - #{p\ 1608}# + #{p\ 1671}# '(()))) - #{ids\ 1610}#)) - #{tmp\ 1611}#))) + #{ids\ 1673}#)) + #{tmp\ 1674}#))) ($sc-dispatch - #{tmp\ 1611}# + #{tmp\ 1674}# '#(vector each-any))))) ($sc-dispatch - #{tmp\ 1611}# + #{tmp\ 1674}# '())))) ($sc-dispatch - #{tmp\ 1611}# + #{tmp\ 1674}# '(any . any))))) ($sc-dispatch - #{tmp\ 1611}# + #{tmp\ 1674}# '(any any)))) - #{p\ 1608}#))))) - (#{cvt\ 1607}# #{pattern\ 1605}# 0 (quote ())))))) - (lambda (#{e\ 1633}# - #{r\ 1634}# - #{w\ 1635}# - #{s\ 1636}# - #{mod\ 1637}#) - (let ((#{e\ 1638}# + #{p\ 1671}#))))) + (#{cvt\ 1670}# #{pattern\ 1668}# 0 (quote ())))))) + (lambda (#{e\ 1696}# + #{r\ 1697}# + #{w\ 1698}# + #{s\ 1699}# + #{mod\ 1700}#) + (let ((#{e\ 1701}# (#{source-wrap\ 160}# - #{e\ 1633}# - #{w\ 1635}# - #{s\ 1636}# - #{mod\ 1637}#))) - ((lambda (#{tmp\ 1639}#) - ((lambda (#{tmp\ 1640}#) - (if #{tmp\ 1640}# - (apply (lambda (#{_\ 1641}# - #{val\ 1642}# - #{key\ 1643}# - #{m\ 1644}#) + #{e\ 1696}# + #{w\ 1698}# + #{s\ 1699}# + #{mod\ 1700}#))) + ((lambda (#{tmp\ 1702}#) + ((lambda (#{tmp\ 1703}#) + (if #{tmp\ 1703}# + (apply (lambda (#{_\ 1704}# + #{val\ 1705}# + #{key\ 1706}# + #{m\ 1707}#) (if (and-map - (lambda (#{x\ 1645}#) - (if (#{id?\ 131}# #{x\ 1645}#) - (not (#{ellipsis?\ 175}# #{x\ 1645}#)) + (lambda (#{x\ 1708}#) + (if (#{id?\ 131}# #{x\ 1708}#) + (not (#{ellipsis?\ 175}# #{x\ 1708}#)) #f)) - #{key\ 1643}#) - (let ((#{x\ 1647}# + #{key\ 1706}#) + (let ((#{x\ 1710}# (#{gen-var\ 181}# (quote tmp)))) (#{build-application\ 96}# - #{s\ 1636}# + #{s\ 1699}# (#{build-simple-lambda\ 105}# #f (list (quote tmp)) #f - (list #{x\ 1647}#) + (list #{x\ 1710}#) #f - (#{gen-syntax-case\ 1560}# + (#{gen-syntax-case\ 1623}# (#{build-lexical-reference\ 98}# 'value #f 'tmp - #{x\ 1647}#) - #{key\ 1643}# - #{m\ 1644}# - #{r\ 1634}# - #{mod\ 1637}#)) + #{x\ 1710}#) + #{key\ 1706}# + #{m\ 1707}# + #{r\ 1697}# + #{mod\ 1700}#)) (list (#{chi\ 167}# - #{val\ 1642}# - #{r\ 1634}# + #{val\ 1705}# + #{r\ 1697}# '(()) - #{mod\ 1637}#)))) + #{mod\ 1700}#)))) (syntax-violation 'syntax-case "invalid literals list" - #{e\ 1638}#))) - #{tmp\ 1640}#) + #{e\ 1701}#))) + #{tmp\ 1703}#) (syntax-violation #f "source expression failed to match any pattern" - #{tmp\ 1639}#))) + #{tmp\ 1702}#))) ($sc-dispatch - #{tmp\ 1639}# + #{tmp\ 1702}# '(any any each-any . each-any)))) - #{e\ 1638}#))))) + #{e\ 1701}#))))) (set! sc-expand - (lambda (#{x\ 1650}# . #{rest\ 1651}#) - (if (if (pair? #{x\ 1650}#) - (equal? (car #{x\ 1650}#) #{noexpand\ 84}#) + (lambda (#{x\ 1713}# . #{rest\ 1714}#) + (if (if (pair? #{x\ 1713}#) + (equal? (car #{x\ 1713}#) #{noexpand\ 84}#) #f) - (cadr #{x\ 1650}#) - (let ((#{m\ 1652}# - (if (null? #{rest\ 1651}#) + (cadr #{x\ 1713}#) + (let ((#{m\ 1715}# + (if (null? #{rest\ 1714}#) 'e - (car #{rest\ 1651}#))) - (#{esew\ 1653}# - (if (let ((#{t\ 1654}# (null? #{rest\ 1651}#))) - (if #{t\ 1654}# - #{t\ 1654}# - (null? (cdr #{rest\ 1651}#)))) + (car #{rest\ 1714}#))) + (#{esew\ 1716}# + (if (let ((#{t\ 1717}# (null? #{rest\ 1714}#))) + (if #{t\ 1717}# + #{t\ 1717}# + (null? (cdr #{rest\ 1714}#)))) '(eval) - (cadr #{rest\ 1651}#)))) + (cadr #{rest\ 1714}#)))) (with-fluid* #{*mode*\ 85}# - #{m\ 1652}# + #{m\ 1715}# (lambda () (#{chi-top\ 166}# - #{x\ 1650}# + #{x\ 1713}# '() '((top)) - #{m\ 1652}# - #{esew\ 1653}# + #{m\ 1715}# + #{esew\ 1716}# (cons 'hygiene (module-name (current-module)))))))))) (set! identifier? - (lambda (#{x\ 1655}#) - (#{nonsymbol-id?\ 130}# #{x\ 1655}#))) + (lambda (#{x\ 1718}#) + (#{nonsymbol-id?\ 130}# #{x\ 1718}#))) (set! datum->syntax - (lambda (#{id\ 1656}# #{datum\ 1657}#) + (lambda (#{id\ 1719}# #{datum\ 1720}#) (#{make-syntax-object\ 114}# - #{datum\ 1657}# - (#{syntax-object-wrap\ 117}# #{id\ 1656}#) + #{datum\ 1720}# + (#{syntax-object-wrap\ 117}# #{id\ 1719}#) #f))) (set! syntax->datum - (lambda (#{x\ 1658}#) - (#{strip\ 180}# #{x\ 1658}# (quote (()))))) + (lambda (#{x\ 1721}#) + (#{strip\ 180}# #{x\ 1721}# (quote (()))))) (set! generate-temporaries - (lambda (#{ls\ 1659}#) + (lambda (#{ls\ 1722}#) (begin - (let ((#{x\ 1660}# #{ls\ 1659}#)) - (if (not (list? #{x\ 1660}#)) + (let ((#{x\ 1723}# #{ls\ 1722}#)) + (if (not (list? #{x\ 1723}#)) (syntax-violation 'generate-temporaries "invalid argument" - #{x\ 1660}#))) - (map (lambda (#{x\ 1661}#) + #{x\ 1723}#))) + (map (lambda (#{x\ 1724}#) (#{wrap\ 159}# (gensym) (quote ((top))) #f)) - #{ls\ 1659}#)))) + #{ls\ 1722}#)))) (set! free-identifier=? - (lambda (#{x\ 1662}# #{y\ 1663}#) + (lambda (#{x\ 1725}# #{y\ 1726}#) (begin - (let ((#{x\ 1664}# #{x\ 1662}#)) - (if (not (#{nonsymbol-id?\ 130}# #{x\ 1664}#)) + (let ((#{x\ 1727}# #{x\ 1725}#)) + (if (not (#{nonsymbol-id?\ 130}# #{x\ 1727}#)) (syntax-violation 'free-identifier=? "invalid argument" - #{x\ 1664}#))) - (let ((#{x\ 1665}# #{y\ 1663}#)) - (if (not (#{nonsymbol-id?\ 130}# #{x\ 1665}#)) + #{x\ 1727}#))) + (let ((#{x\ 1728}# #{y\ 1726}#)) + (if (not (#{nonsymbol-id?\ 130}# #{x\ 1728}#)) (syntax-violation 'free-identifier=? "invalid argument" - #{x\ 1665}#))) - (#{free-id=?\ 154}# #{x\ 1662}# #{y\ 1663}#)))) + #{x\ 1728}#))) + (#{free-id=?\ 154}# #{x\ 1725}# #{y\ 1726}#)))) (set! bound-identifier=? - (lambda (#{x\ 1666}# #{y\ 1667}#) + (lambda (#{x\ 1729}# #{y\ 1730}#) (begin - (let ((#{x\ 1668}# #{x\ 1666}#)) - (if (not (#{nonsymbol-id?\ 130}# #{x\ 1668}#)) + (let ((#{x\ 1731}# #{x\ 1729}#)) + (if (not (#{nonsymbol-id?\ 130}# #{x\ 1731}#)) (syntax-violation 'bound-identifier=? "invalid argument" - #{x\ 1668}#))) - (let ((#{x\ 1669}# #{y\ 1667}#)) - (if (not (#{nonsymbol-id?\ 130}# #{x\ 1669}#)) + #{x\ 1731}#))) + (let ((#{x\ 1732}# #{y\ 1730}#)) + (if (not (#{nonsymbol-id?\ 130}# #{x\ 1732}#)) (syntax-violation 'bound-identifier=? "invalid argument" - #{x\ 1669}#))) - (#{bound-id=?\ 155}# #{x\ 1666}# #{y\ 1667}#)))) + #{x\ 1732}#))) + (#{bound-id=?\ 155}# #{x\ 1729}# #{y\ 1730}#)))) (set! syntax-violation - (lambda (#{who\ 1670}# - #{message\ 1671}# - #{form\ 1672}# + (lambda (#{who\ 1733}# + #{message\ 1734}# + #{form\ 1735}# . - #{subform\ 1673}#) + #{subform\ 1736}#) (begin - (let ((#{x\ 1674}# #{who\ 1670}#)) - (if (not ((lambda (#{x\ 1675}#) - (let ((#{t\ 1676}# (not #{x\ 1675}#))) - (if #{t\ 1676}# - #{t\ 1676}# - (let ((#{t\ 1677}# (string? #{x\ 1675}#))) - (if #{t\ 1677}# - #{t\ 1677}# - (symbol? #{x\ 1675}#)))))) - #{x\ 1674}#)) + (let ((#{x\ 1737}# #{who\ 1733}#)) + (if (not ((lambda (#{x\ 1738}#) + (let ((#{t\ 1739}# (not #{x\ 1738}#))) + (if #{t\ 1739}# + #{t\ 1739}# + (let ((#{t\ 1740}# (string? #{x\ 1738}#))) + (if #{t\ 1740}# + #{t\ 1740}# + (symbol? #{x\ 1738}#)))))) + #{x\ 1737}#)) (syntax-violation 'syntax-violation "invalid argument" - #{x\ 1674}#))) - (let ((#{x\ 1678}# #{message\ 1671}#)) - (if (not (string? #{x\ 1678}#)) + #{x\ 1737}#))) + (let ((#{x\ 1741}# #{message\ 1734}#)) + (if (not (string? #{x\ 1741}#)) (syntax-violation 'syntax-violation "invalid argument" - #{x\ 1678}#))) + #{x\ 1741}#))) (scm-error 'syntax-error 'sc-expand (string-append - (if #{who\ 1670}# "~a: " "") + (if #{who\ 1733}# "~a: " "") "~a " - (if (null? #{subform\ 1673}#) + (if (null? #{subform\ 1736}#) "in ~a" "in subform `~s' of `~s'")) - (let ((#{tail\ 1679}# - (cons #{message\ 1671}# - (map (lambda (#{x\ 1680}#) - (#{strip\ 180}# #{x\ 1680}# (quote (())))) + (let ((#{tail\ 1742}# + (cons #{message\ 1734}# + (map (lambda (#{x\ 1743}#) + (#{strip\ 180}# #{x\ 1743}# (quote (())))) (append - #{subform\ 1673}# - (list #{form\ 1672}#)))))) - (if #{who\ 1670}# - (cons #{who\ 1670}# #{tail\ 1679}#) - #{tail\ 1679}#)) + #{subform\ 1736}# + (list #{form\ 1735}#)))))) + (if #{who\ 1733}# + (cons #{who\ 1733}# #{tail\ 1742}#) + #{tail\ 1742}#)) #f)))) - (letrec ((#{match\ 1685}# - (lambda (#{e\ 1686}# - #{p\ 1687}# - #{w\ 1688}# - #{r\ 1689}# - #{mod\ 1690}#) - (if (not #{r\ 1689}#) + (letrec ((#{match\ 1748}# + (lambda (#{e\ 1749}# + #{p\ 1750}# + #{w\ 1751}# + #{r\ 1752}# + #{mod\ 1753}#) + (if (not #{r\ 1752}#) #f - (if (eq? #{p\ 1687}# (quote any)) + (if (eq? #{p\ 1750}# (quote any)) (cons (#{wrap\ 159}# - #{e\ 1686}# - #{w\ 1688}# - #{mod\ 1690}#) - #{r\ 1689}#) - (if (#{syntax-object?\ 115}# #{e\ 1686}#) - (#{match*\ 1684}# - (#{syntax-object-expression\ 116}# #{e\ 1686}#) - #{p\ 1687}# + #{e\ 1749}# + #{w\ 1751}# + #{mod\ 1753}#) + #{r\ 1752}#) + (if (#{syntax-object?\ 115}# #{e\ 1749}#) + (#{match*\ 1747}# + (#{syntax-object-expression\ 116}# #{e\ 1749}#) + #{p\ 1750}# (#{join-wraps\ 150}# - #{w\ 1688}# - (#{syntax-object-wrap\ 117}# #{e\ 1686}#)) - #{r\ 1689}# - (#{syntax-object-module\ 118}# #{e\ 1686}#)) - (#{match*\ 1684}# - #{e\ 1686}# - #{p\ 1687}# - #{w\ 1688}# - #{r\ 1689}# - #{mod\ 1690}#)))))) - (#{match*\ 1684}# - (lambda (#{e\ 1691}# - #{p\ 1692}# - #{w\ 1693}# - #{r\ 1694}# - #{mod\ 1695}#) - (if (null? #{p\ 1692}#) - (if (null? #{e\ 1691}#) #{r\ 1694}# #f) - (if (pair? #{p\ 1692}#) - (if (pair? #{e\ 1691}#) - (#{match\ 1685}# - (car #{e\ 1691}#) - (car #{p\ 1692}#) - #{w\ 1693}# - (#{match\ 1685}# - (cdr #{e\ 1691}#) - (cdr #{p\ 1692}#) - #{w\ 1693}# - #{r\ 1694}# - #{mod\ 1695}#) - #{mod\ 1695}#) + #{w\ 1751}# + (#{syntax-object-wrap\ 117}# #{e\ 1749}#)) + #{r\ 1752}# + (#{syntax-object-module\ 118}# #{e\ 1749}#)) + (#{match*\ 1747}# + #{e\ 1749}# + #{p\ 1750}# + #{w\ 1751}# + #{r\ 1752}# + #{mod\ 1753}#)))))) + (#{match*\ 1747}# + (lambda (#{e\ 1754}# + #{p\ 1755}# + #{w\ 1756}# + #{r\ 1757}# + #{mod\ 1758}#) + (if (null? #{p\ 1755}#) + (if (null? #{e\ 1754}#) #{r\ 1757}# #f) + (if (pair? #{p\ 1755}#) + (if (pair? #{e\ 1754}#) + (#{match\ 1748}# + (car #{e\ 1754}#) + (car #{p\ 1755}#) + #{w\ 1756}# + (#{match\ 1748}# + (cdr #{e\ 1754}#) + (cdr #{p\ 1755}#) + #{w\ 1756}# + #{r\ 1757}# + #{mod\ 1758}#) + #{mod\ 1758}#) #f) - (if (eq? #{p\ 1692}# (quote each-any)) - (let ((#{l\ 1696}# - (#{match-each-any\ 1682}# - #{e\ 1691}# - #{w\ 1693}# - #{mod\ 1695}#))) - (if #{l\ 1696}# - (cons #{l\ 1696}# #{r\ 1694}#) + (if (eq? #{p\ 1755}# (quote each-any)) + (let ((#{l\ 1759}# + (#{match-each-any\ 1745}# + #{e\ 1754}# + #{w\ 1756}# + #{mod\ 1758}#))) + (if #{l\ 1759}# + (cons #{l\ 1759}# #{r\ 1757}#) #f)) - (let ((#{atom-key\ 1697}# (vector-ref #{p\ 1692}# 0))) - (if (memv #{atom-key\ 1697}# (quote (each))) - (if (null? #{e\ 1691}#) - (#{match-empty\ 1683}# - (vector-ref #{p\ 1692}# 1) - #{r\ 1694}#) - (let ((#{l\ 1698}# - (#{match-each\ 1681}# - #{e\ 1691}# - (vector-ref #{p\ 1692}# 1) - #{w\ 1693}# - #{mod\ 1695}#))) - (if #{l\ 1698}# - (letrec ((#{collect\ 1699}# - (lambda (#{l\ 1700}#) - (if (null? (car #{l\ 1700}#)) - #{r\ 1694}# - (cons (map car #{l\ 1700}#) - (#{collect\ 1699}# + (let ((#{atom-key\ 1760}# (vector-ref #{p\ 1755}# 0))) + (if (memv #{atom-key\ 1760}# (quote (each))) + (if (null? #{e\ 1754}#) + (#{match-empty\ 1746}# + (vector-ref #{p\ 1755}# 1) + #{r\ 1757}#) + (let ((#{l\ 1761}# + (#{match-each\ 1744}# + #{e\ 1754}# + (vector-ref #{p\ 1755}# 1) + #{w\ 1756}# + #{mod\ 1758}#))) + (if #{l\ 1761}# + (letrec ((#{collect\ 1762}# + (lambda (#{l\ 1763}#) + (if (null? (car #{l\ 1763}#)) + #{r\ 1757}# + (cons (map car #{l\ 1763}#) + (#{collect\ 1762}# (map cdr - #{l\ 1700}#))))))) - (#{collect\ 1699}# #{l\ 1698}#)) + #{l\ 1763}#))))))) + (#{collect\ 1762}# #{l\ 1761}#)) #f))) - (if (memv #{atom-key\ 1697}# (quote (free-id))) - (if (#{id?\ 131}# #{e\ 1691}#) + (if (memv #{atom-key\ 1760}# (quote (free-id))) + (if (#{id?\ 131}# #{e\ 1754}#) (if (#{free-id=?\ 154}# (#{wrap\ 159}# - #{e\ 1691}# - #{w\ 1693}# - #{mod\ 1695}#) - (vector-ref #{p\ 1692}# 1)) - #{r\ 1694}# + #{e\ 1754}# + #{w\ 1756}# + #{mod\ 1758}#) + (vector-ref #{p\ 1755}# 1)) + #{r\ 1757}# #f) #f) - (if (memv #{atom-key\ 1697}# (quote (atom))) + (if (memv #{atom-key\ 1760}# (quote (atom))) (if (equal? - (vector-ref #{p\ 1692}# 1) + (vector-ref #{p\ 1755}# 1) (#{strip\ 180}# - #{e\ 1691}# - #{w\ 1693}#)) - #{r\ 1694}# + #{e\ 1754}# + #{w\ 1756}#)) + #{r\ 1757}# #f) - (if (memv #{atom-key\ 1697}# (quote (vector))) - (if (vector? #{e\ 1691}#) - (#{match\ 1685}# - (vector->list #{e\ 1691}#) - (vector-ref #{p\ 1692}# 1) - #{w\ 1693}# - #{r\ 1694}# - #{mod\ 1695}#) + (if (memv #{atom-key\ 1760}# (quote (vector))) + (if (vector? #{e\ 1754}#) + (#{match\ 1748}# + (vector->list #{e\ 1754}#) + (vector-ref #{p\ 1755}# 1) + #{w\ 1756}# + #{r\ 1757}# + #{mod\ 1758}#) #f))))))))))) - (#{match-empty\ 1683}# - (lambda (#{p\ 1701}# #{r\ 1702}#) - (if (null? #{p\ 1701}#) - #{r\ 1702}# - (if (eq? #{p\ 1701}# (quote any)) - (cons (quote ()) #{r\ 1702}#) - (if (pair? #{p\ 1701}#) - (#{match-empty\ 1683}# - (car #{p\ 1701}#) - (#{match-empty\ 1683}# - (cdr #{p\ 1701}#) - #{r\ 1702}#)) - (if (eq? #{p\ 1701}# (quote each-any)) - (cons (quote ()) #{r\ 1702}#) - (let ((#{atom-key\ 1703}# - (vector-ref #{p\ 1701}# 0))) - (if (memv #{atom-key\ 1703}# (quote (each))) - (#{match-empty\ 1683}# - (vector-ref #{p\ 1701}# 1) - #{r\ 1702}#) - (if (memv #{atom-key\ 1703}# + (#{match-empty\ 1746}# + (lambda (#{p\ 1764}# #{r\ 1765}#) + (if (null? #{p\ 1764}#) + #{r\ 1765}# + (if (eq? #{p\ 1764}# (quote any)) + (cons (quote ()) #{r\ 1765}#) + (if (pair? #{p\ 1764}#) + (#{match-empty\ 1746}# + (car #{p\ 1764}#) + (#{match-empty\ 1746}# + (cdr #{p\ 1764}#) + #{r\ 1765}#)) + (if (eq? #{p\ 1764}# (quote each-any)) + (cons (quote ()) #{r\ 1765}#) + (let ((#{atom-key\ 1766}# + (vector-ref #{p\ 1764}# 0))) + (if (memv #{atom-key\ 1766}# (quote (each))) + (#{match-empty\ 1746}# + (vector-ref #{p\ 1764}# 1) + #{r\ 1765}#) + (if (memv #{atom-key\ 1766}# '(free-id atom)) - #{r\ 1702}# - (if (memv #{atom-key\ 1703}# (quote (vector))) - (#{match-empty\ 1683}# - (vector-ref #{p\ 1701}# 1) - #{r\ 1702}#))))))))))) - (#{match-each-any\ 1682}# - (lambda (#{e\ 1704}# #{w\ 1705}# #{mod\ 1706}#) - (if (pair? #{e\ 1704}#) - (let ((#{l\ 1707}# - (#{match-each-any\ 1682}# - (cdr #{e\ 1704}#) - #{w\ 1705}# - #{mod\ 1706}#))) - (if #{l\ 1707}# + #{r\ 1765}# + (if (memv #{atom-key\ 1766}# (quote (vector))) + (#{match-empty\ 1746}# + (vector-ref #{p\ 1764}# 1) + #{r\ 1765}#))))))))))) + (#{match-each-any\ 1745}# + (lambda (#{e\ 1767}# #{w\ 1768}# #{mod\ 1769}#) + (if (pair? #{e\ 1767}#) + (let ((#{l\ 1770}# + (#{match-each-any\ 1745}# + (cdr #{e\ 1767}#) + #{w\ 1768}# + #{mod\ 1769}#))) + (if #{l\ 1770}# (cons (#{wrap\ 159}# - (car #{e\ 1704}#) - #{w\ 1705}# - #{mod\ 1706}#) - #{l\ 1707}#) + (car #{e\ 1767}#) + #{w\ 1768}# + #{mod\ 1769}#) + #{l\ 1770}#) #f)) - (if (null? #{e\ 1704}#) + (if (null? #{e\ 1767}#) '() - (if (#{syntax-object?\ 115}# #{e\ 1704}#) - (#{match-each-any\ 1682}# - (#{syntax-object-expression\ 116}# #{e\ 1704}#) + (if (#{syntax-object?\ 115}# #{e\ 1767}#) + (#{match-each-any\ 1745}# + (#{syntax-object-expression\ 116}# #{e\ 1767}#) (#{join-wraps\ 150}# - #{w\ 1705}# - (#{syntax-object-wrap\ 117}# #{e\ 1704}#)) - #{mod\ 1706}#) + #{w\ 1768}# + (#{syntax-object-wrap\ 117}# #{e\ 1767}#)) + #{mod\ 1769}#) #f))))) - (#{match-each\ 1681}# - (lambda (#{e\ 1708}# - #{p\ 1709}# - #{w\ 1710}# - #{mod\ 1711}#) - (if (pair? #{e\ 1708}#) - (let ((#{first\ 1712}# - (#{match\ 1685}# - (car #{e\ 1708}#) - #{p\ 1709}# - #{w\ 1710}# + (#{match-each\ 1744}# + (lambda (#{e\ 1771}# + #{p\ 1772}# + #{w\ 1773}# + #{mod\ 1774}#) + (if (pair? #{e\ 1771}#) + (let ((#{first\ 1775}# + (#{match\ 1748}# + (car #{e\ 1771}#) + #{p\ 1772}# + #{w\ 1773}# '() - #{mod\ 1711}#))) - (if #{first\ 1712}# - (let ((#{rest\ 1713}# - (#{match-each\ 1681}# - (cdr #{e\ 1708}#) - #{p\ 1709}# - #{w\ 1710}# - #{mod\ 1711}#))) - (if #{rest\ 1713}# - (cons #{first\ 1712}# #{rest\ 1713}#) + #{mod\ 1774}#))) + (if #{first\ 1775}# + (let ((#{rest\ 1776}# + (#{match-each\ 1744}# + (cdr #{e\ 1771}#) + #{p\ 1772}# + #{w\ 1773}# + #{mod\ 1774}#))) + (if #{rest\ 1776}# + (cons #{first\ 1775}# #{rest\ 1776}#) #f)) #f)) - (if (null? #{e\ 1708}#) + (if (null? #{e\ 1771}#) '() - (if (#{syntax-object?\ 115}# #{e\ 1708}#) - (#{match-each\ 1681}# - (#{syntax-object-expression\ 116}# #{e\ 1708}#) - #{p\ 1709}# + (if (#{syntax-object?\ 115}# #{e\ 1771}#) + (#{match-each\ 1744}# + (#{syntax-object-expression\ 116}# #{e\ 1771}#) + #{p\ 1772}# (#{join-wraps\ 150}# - #{w\ 1710}# - (#{syntax-object-wrap\ 117}# #{e\ 1708}#)) - (#{syntax-object-module\ 118}# #{e\ 1708}#)) + #{w\ 1773}# + (#{syntax-object-wrap\ 117}# #{e\ 1771}#)) + (#{syntax-object-module\ 118}# #{e\ 1771}#)) #f)))))) (set! $sc-dispatch - (lambda (#{e\ 1714}# #{p\ 1715}#) - (if (eq? #{p\ 1715}# (quote any)) - (list #{e\ 1714}#) - (if (#{syntax-object?\ 115}# #{e\ 1714}#) - (#{match*\ 1684}# - (#{syntax-object-expression\ 116}# #{e\ 1714}#) - #{p\ 1715}# - (#{syntax-object-wrap\ 117}# #{e\ 1714}#) + (lambda (#{e\ 1777}# #{p\ 1778}#) + (if (eq? #{p\ 1778}# (quote any)) + (list #{e\ 1777}#) + (if (#{syntax-object?\ 115}# #{e\ 1777}#) + (#{match*\ 1747}# + (#{syntax-object-expression\ 116}# #{e\ 1777}#) + #{p\ 1778}# + (#{syntax-object-wrap\ 117}# #{e\ 1777}#) '() - (#{syntax-object-module\ 118}# #{e\ 1714}#)) - (#{match*\ 1684}# - #{e\ 1714}# - #{p\ 1715}# + (#{syntax-object-module\ 118}# #{e\ 1777}#)) + (#{match*\ 1747}# + #{e\ 1777}# + #{p\ 1778}# '(()) '() #f))))))))) @@ -11400,11 +11629,11 @@ (define with-syntax (make-syncase-macro 'macro - (lambda (#{x\ 1716}#) - ((lambda (#{tmp\ 1717}#) - ((lambda (#{tmp\ 1718}#) - (if #{tmp\ 1718}# - (apply (lambda (#{_\ 1719}# #{e1\ 1720}# #{e2\ 1721}#) + (lambda (#{x\ 1779}#) + ((lambda (#{tmp\ 1780}#) + ((lambda (#{tmp\ 1781}#) + (if #{tmp\ 1781}# + (apply (lambda (#{_\ 1782}# #{e1\ 1783}# #{e2\ 1784}#) (cons '#(syntax-object begin ((top) @@ -11415,15 +11644,15 @@ #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile)) - (cons #{e1\ 1720}# #{e2\ 1721}#))) - #{tmp\ 1718}#) - ((lambda (#{tmp\ 1723}#) - (if #{tmp\ 1723}# - (apply (lambda (#{_\ 1724}# - #{out\ 1725}# - #{in\ 1726}# - #{e1\ 1727}# - #{e2\ 1728}#) + (cons #{e1\ 1783}# #{e2\ 1784}#))) + #{tmp\ 1781}#) + ((lambda (#{tmp\ 1786}#) + (if #{tmp\ 1786}# + (apply (lambda (#{_\ 1787}# + #{out\ 1788}# + #{in\ 1789}# + #{e1\ 1790}# + #{e2\ 1791}#) (list '#(syntax-object syntax-case ((top) @@ -11434,9 +11663,9 @@ #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile)) - #{in\ 1726}# + #{in\ 1789}# '() - (list #{out\ 1725}# + (list #{out\ 1788}# (cons '#(syntax-object begin ((top) @@ -11454,16 +11683,16 @@ #((top)) #("i"))) (hygiene guile)) - (cons #{e1\ 1727}# - #{e2\ 1728}#))))) - #{tmp\ 1723}#) - ((lambda (#{tmp\ 1730}#) - (if #{tmp\ 1730}# - (apply (lambda (#{_\ 1731}# - #{out\ 1732}# - #{in\ 1733}# - #{e1\ 1734}# - #{e2\ 1735}#) + (cons #{e1\ 1790}# + #{e2\ 1791}#))))) + #{tmp\ 1786}#) + ((lambda (#{tmp\ 1793}#) + (if #{tmp\ 1793}# + (apply (lambda (#{_\ 1794}# + #{out\ 1795}# + #{in\ 1796}# + #{e1\ 1797}# + #{e2\ 1798}#) (list '#(syntax-object syntax-case ((top) @@ -11491,9 +11720,9 @@ #((top)) #("i"))) (hygiene guile)) - #{in\ 1733}#) + #{in\ 1796}#) '() - (list #{out\ 1732}# + (list #{out\ 1795}# (cons '#(syntax-object begin ((top) @@ -11515,36 +11744,36 @@ #((top)) #("i"))) (hygiene guile)) - (cons #{e1\ 1734}# - #{e2\ 1735}#))))) - #{tmp\ 1730}#) + (cons #{e1\ 1797}# + #{e2\ 1798}#))))) + #{tmp\ 1793}#) (syntax-violation #f "source expression failed to match any pattern" - #{tmp\ 1717}#))) + #{tmp\ 1780}#))) ($sc-dispatch - #{tmp\ 1717}# + #{tmp\ 1780}# '(any #(each (any any)) any . each-any))))) ($sc-dispatch - #{tmp\ 1717}# + #{tmp\ 1780}# '(any ((any any)) any . each-any))))) ($sc-dispatch - #{tmp\ 1717}# + #{tmp\ 1780}# '(any () any . each-any)))) - #{x\ 1716}#)))) + #{x\ 1779}#)))) (define syntax-rules (make-syncase-macro 'macro - (lambda (#{x\ 1739}#) - ((lambda (#{tmp\ 1740}#) - ((lambda (#{tmp\ 1741}#) - (if #{tmp\ 1741}# - (apply (lambda (#{_\ 1742}# - #{k\ 1743}# - #{keyword\ 1744}# - #{pattern\ 1745}# - #{template\ 1746}#) + (lambda (#{x\ 1802}#) + ((lambda (#{tmp\ 1803}#) + ((lambda (#{tmp\ 1804}#) + (if #{tmp\ 1804}# + (apply (lambda (#{_\ 1805}# + #{k\ 1806}# + #{keyword\ 1807}# + #{pattern\ 1808}# + #{template\ 1809}#) (list '#(syntax-object lambda ((top) @@ -11585,9 +11814,9 @@ #(ribcage () () ()) #(ribcage #(x) #((top)) #("i"))) (hygiene guile)) - (cons #{k\ 1743}# - (map (lambda (#{tmp\ 1749}# - #{tmp\ 1748}#) + (cons #{k\ 1806}# + (map (lambda (#{tmp\ 1812}# + #{tmp\ 1811}#) (list (cons '#(syntax-object dummy ((top) @@ -11617,7 +11846,7 @@ #("i"))) (hygiene guile)) - #{tmp\ 1748}#) + #{tmp\ 1811}#) (list '#(syntax-object syntax ((top) @@ -11647,43 +11876,43 @@ #("i"))) (hygiene guile)) - #{tmp\ 1749}#))) - #{template\ 1746}# - #{pattern\ 1745}#)))))) - #{tmp\ 1741}#) + #{tmp\ 1812}#))) + #{template\ 1809}# + #{pattern\ 1808}#)))))) + #{tmp\ 1804}#) (syntax-violation #f "source expression failed to match any pattern" - #{tmp\ 1740}#))) + #{tmp\ 1803}#))) ($sc-dispatch - #{tmp\ 1740}# + #{tmp\ 1803}# '(any each-any . #(each ((any . any) any)))))) - #{x\ 1739}#)))) + #{x\ 1802}#)))) (define let* (make-extended-syncase-macro (module-ref (current-module) (quote let*)) 'macro - (lambda (#{x\ 1750}#) - ((lambda (#{tmp\ 1751}#) - ((lambda (#{tmp\ 1752}#) - (if (if #{tmp\ 1752}# - (apply (lambda (#{let*\ 1753}# - #{x\ 1754}# - #{v\ 1755}# - #{e1\ 1756}# - #{e2\ 1757}#) - (and-map identifier? #{x\ 1754}#)) - #{tmp\ 1752}#) + (lambda (#{x\ 1813}#) + ((lambda (#{tmp\ 1814}#) + ((lambda (#{tmp\ 1815}#) + (if (if #{tmp\ 1815}# + (apply (lambda (#{let*\ 1816}# + #{x\ 1817}# + #{v\ 1818}# + #{e1\ 1819}# + #{e2\ 1820}#) + (and-map identifier? #{x\ 1817}#)) + #{tmp\ 1815}#) #f) - (apply (lambda (#{let*\ 1759}# - #{x\ 1760}# - #{v\ 1761}# - #{e1\ 1762}# - #{e2\ 1763}#) - (letrec ((#{f\ 1764}# - (lambda (#{bindings\ 1765}#) - (if (null? #{bindings\ 1765}#) + (apply (lambda (#{let*\ 1822}# + #{x\ 1823}# + #{v\ 1824}# + #{e1\ 1825}# + #{e2\ 1826}#) + (letrec ((#{f\ 1827}# + (lambda (#{bindings\ 1828}#) + (if (null? #{bindings\ 1828}#) (cons '#(syntax-object let ((top) @@ -11707,13 +11936,13 @@ #("i"))) (hygiene guile)) (cons '() - (cons #{e1\ 1762}# - #{e2\ 1763}#))) - ((lambda (#{tmp\ 1769}#) - ((lambda (#{tmp\ 1770}#) - (if #{tmp\ 1770}# - (apply (lambda (#{body\ 1771}# - #{binding\ 1772}#) + (cons #{e1\ 1825}# + #{e2\ 1826}#))) + ((lambda (#{tmp\ 1832}#) + ((lambda (#{tmp\ 1833}#) + (if #{tmp\ 1833}# + (apply (lambda (#{body\ 1834}# + #{binding\ 1835}#) (list '#(syntax-object let ((top) @@ -11759,52 +11988,52 @@ #("i"))) (hygiene guile)) - (list #{binding\ 1772}#) - #{body\ 1771}#)) - #{tmp\ 1770}#) + (list #{binding\ 1835}#) + #{body\ 1834}#)) + #{tmp\ 1833}#) (syntax-violation #f "source expression failed to match any pattern" - #{tmp\ 1769}#))) + #{tmp\ 1832}#))) ($sc-dispatch - #{tmp\ 1769}# + #{tmp\ 1832}# '(any any)))) - (list (#{f\ 1764}# - (cdr #{bindings\ 1765}#)) - (car #{bindings\ 1765}#))))))) - (#{f\ 1764}# (map list #{x\ 1760}# #{v\ 1761}#)))) - #{tmp\ 1752}#) + (list (#{f\ 1827}# + (cdr #{bindings\ 1828}#)) + (car #{bindings\ 1828}#))))))) + (#{f\ 1827}# (map list #{x\ 1823}# #{v\ 1824}#)))) + #{tmp\ 1815}#) (syntax-violation #f "source expression failed to match any pattern" - #{tmp\ 1751}#))) + #{tmp\ 1814}#))) ($sc-dispatch - #{tmp\ 1751}# + #{tmp\ 1814}# '(any #(each (any any)) any . each-any)))) - #{x\ 1750}#)))) + #{x\ 1813}#)))) (define do (make-extended-syncase-macro (module-ref (current-module) (quote do)) 'macro - (lambda (#{orig-x\ 1773}#) - ((lambda (#{tmp\ 1774}#) - ((lambda (#{tmp\ 1775}#) - (if #{tmp\ 1775}# - (apply (lambda (#{_\ 1776}# - #{var\ 1777}# - #{init\ 1778}# - #{step\ 1779}# - #{e0\ 1780}# - #{e1\ 1781}# - #{c\ 1782}#) - ((lambda (#{tmp\ 1783}#) - ((lambda (#{tmp\ 1784}#) - (if #{tmp\ 1784}# - (apply (lambda (#{step\ 1785}#) - ((lambda (#{tmp\ 1786}#) - ((lambda (#{tmp\ 1787}#) - (if #{tmp\ 1787}# + (lambda (#{orig-x\ 1836}#) + ((lambda (#{tmp\ 1837}#) + ((lambda (#{tmp\ 1838}#) + (if #{tmp\ 1838}# + (apply (lambda (#{_\ 1839}# + #{var\ 1840}# + #{init\ 1841}# + #{step\ 1842}# + #{e0\ 1843}# + #{e1\ 1844}# + #{c\ 1845}#) + ((lambda (#{tmp\ 1846}#) + ((lambda (#{tmp\ 1847}#) + (if #{tmp\ 1847}# + (apply (lambda (#{step\ 1848}#) + ((lambda (#{tmp\ 1849}#) + ((lambda (#{tmp\ 1850}#) + (if #{tmp\ 1850}# (apply (lambda () (list '#(syntax-object let @@ -11885,8 +12114,8 @@ (hygiene guile)) (map list - #{var\ 1777}# - #{init\ 1778}#) + #{var\ 1840}# + #{init\ 1841}#) (list '#(syntax-object if ((top) @@ -11965,7 +12194,7 @@ #("i"))) (hygiene guile)) - #{e0\ 1780}#) + #{e0\ 1843}#) (cons '#(syntax-object begin ((top) @@ -12006,7 +12235,7 @@ (hygiene guile)) (append - #{c\ 1782}# + #{c\ 1845}# (list (cons '#(syntax-object doloop ((top) @@ -12046,12 +12275,12 @@ #("i"))) (hygiene guile)) - #{step\ 1785}#))))))) - #{tmp\ 1787}#) - ((lambda (#{tmp\ 1792}#) - (if #{tmp\ 1792}# - (apply (lambda (#{e1\ 1793}# - #{e2\ 1794}#) + #{step\ 1848}#))))))) + #{tmp\ 1850}#) + ((lambda (#{tmp\ 1855}#) + (if #{tmp\ 1855}# + (apply (lambda (#{e1\ 1856}# + #{e2\ 1857}#) (list '#(syntax-object let ((top) @@ -12145,8 +12374,8 @@ (hygiene guile)) (map list - #{var\ 1777}# - #{init\ 1778}#) + #{var\ 1840}# + #{init\ 1841}#) (list '#(syntax-object if ((top) @@ -12193,7 +12422,7 @@ #("i"))) (hygiene guile)) - #{e0\ 1780}# + #{e0\ 1843}# (cons '#(syntax-object begin ((top) @@ -12240,8 +12469,8 @@ #("i"))) (hygiene guile)) - (cons #{e1\ 1793}# - #{e2\ 1794}#)) + (cons #{e1\ 1856}# + #{e2\ 1857}#)) (cons '#(syntax-object begin ((top) @@ -12289,7 +12518,7 @@ (hygiene guile)) (append - #{c\ 1782}# + #{c\ 1845}# (list (cons '#(syntax-object doloop ((top) @@ -12336,81 +12565,81 @@ #("i"))) (hygiene guile)) - #{step\ 1785}#))))))) - #{tmp\ 1792}#) + #{step\ 1848}#))))))) + #{tmp\ 1855}#) (syntax-violation #f "source expression failed to match any pattern" - #{tmp\ 1786}#))) + #{tmp\ 1849}#))) ($sc-dispatch - #{tmp\ 1786}# + #{tmp\ 1849}# '(any . each-any))))) ($sc-dispatch - #{tmp\ 1786}# + #{tmp\ 1849}# '()))) - #{e1\ 1781}#)) - #{tmp\ 1784}#) + #{e1\ 1844}#)) + #{tmp\ 1847}#) (syntax-violation #f "source expression failed to match any pattern" - #{tmp\ 1783}#))) - ($sc-dispatch #{tmp\ 1783}# (quote each-any)))) - (map (lambda (#{v\ 1801}# #{s\ 1802}#) - ((lambda (#{tmp\ 1803}#) - ((lambda (#{tmp\ 1804}#) - (if #{tmp\ 1804}# - (apply (lambda () #{v\ 1801}#) - #{tmp\ 1804}#) - ((lambda (#{tmp\ 1805}#) - (if #{tmp\ 1805}# - (apply (lambda (#{e\ 1806}#) - #{e\ 1806}#) - #{tmp\ 1805}#) - ((lambda (#{_\ 1807}#) + #{tmp\ 1846}#))) + ($sc-dispatch #{tmp\ 1846}# (quote each-any)))) + (map (lambda (#{v\ 1864}# #{s\ 1865}#) + ((lambda (#{tmp\ 1866}#) + ((lambda (#{tmp\ 1867}#) + (if #{tmp\ 1867}# + (apply (lambda () #{v\ 1864}#) + #{tmp\ 1867}#) + ((lambda (#{tmp\ 1868}#) + (if #{tmp\ 1868}# + (apply (lambda (#{e\ 1869}#) + #{e\ 1869}#) + #{tmp\ 1868}#) + ((lambda (#{_\ 1870}#) (syntax-violation 'do "bad step expression" - #{orig-x\ 1773}# - #{s\ 1802}#)) - #{tmp\ 1803}#))) + #{orig-x\ 1836}# + #{s\ 1865}#)) + #{tmp\ 1866}#))) ($sc-dispatch - #{tmp\ 1803}# + #{tmp\ 1866}# '(any))))) - ($sc-dispatch #{tmp\ 1803}# (quote ())))) - #{s\ 1802}#)) - #{var\ 1777}# - #{step\ 1779}#))) - #{tmp\ 1775}#) + ($sc-dispatch #{tmp\ 1866}# (quote ())))) + #{s\ 1865}#)) + #{var\ 1840}# + #{step\ 1842}#))) + #{tmp\ 1838}#) (syntax-violation #f "source expression failed to match any pattern" - #{tmp\ 1774}#))) + #{tmp\ 1837}#))) ($sc-dispatch - #{tmp\ 1774}# + #{tmp\ 1837}# '(any #(each (any any . any)) (any . each-any) . each-any)))) - #{orig-x\ 1773}#)))) + #{orig-x\ 1836}#)))) (define quasiquote (make-extended-syncase-macro (module-ref (current-module) (quote quasiquote)) 'macro - (letrec ((#{quasicons\ 1810}# - (lambda (#{x\ 1814}# #{y\ 1815}#) - ((lambda (#{tmp\ 1816}#) - ((lambda (#{tmp\ 1817}#) - (if #{tmp\ 1817}# - (apply (lambda (#{x\ 1818}# #{y\ 1819}#) - ((lambda (#{tmp\ 1820}#) - ((lambda (#{tmp\ 1821}#) - (if #{tmp\ 1821}# - (apply (lambda (#{dy\ 1822}#) - ((lambda (#{tmp\ 1823}#) - ((lambda (#{tmp\ 1824}#) - (if #{tmp\ 1824}# - (apply (lambda (#{dx\ 1825}#) + (letrec ((#{quasicons\ 1873}# + (lambda (#{x\ 1877}# #{y\ 1878}#) + ((lambda (#{tmp\ 1879}#) + ((lambda (#{tmp\ 1880}#) + (if #{tmp\ 1880}# + (apply (lambda (#{x\ 1881}# #{y\ 1882}#) + ((lambda (#{tmp\ 1883}#) + ((lambda (#{tmp\ 1884}#) + (if #{tmp\ 1884}# + (apply (lambda (#{dy\ 1885}#) + ((lambda (#{tmp\ 1886}#) + ((lambda (#{tmp\ 1887}#) + (if #{tmp\ 1887}# + (apply (lambda (#{dx\ 1888}#) (list '#(syntax-object quote ((top) @@ -12459,11 +12688,11 @@ "i"))) (hygiene guile)) - (cons #{dx\ 1825}# - #{dy\ 1822}#))) - #{tmp\ 1824}#) - ((lambda (#{_\ 1826}#) - (if (null? #{dy\ 1822}#) + (cons #{dx\ 1888}# + #{dy\ 1885}#))) + #{tmp\ 1887}#) + ((lambda (#{_\ 1889}#) + (if (null? #{dy\ 1885}#) (list '#(syntax-object list ((top) @@ -12512,7 +12741,7 @@ "i"))) (hygiene guile)) - #{x\ 1818}#) + #{x\ 1881}#) (list '#(syntax-object cons ((top) @@ -12561,11 +12790,11 @@ "i"))) (hygiene guile)) - #{x\ 1818}# - #{y\ 1819}#))) - #{tmp\ 1823}#))) + #{x\ 1881}# + #{y\ 1882}#))) + #{tmp\ 1886}#))) ($sc-dispatch - #{tmp\ 1823}# + #{tmp\ 1886}# '(#(free-id #(syntax-object quote @@ -12608,11 +12837,11 @@ (hygiene guile))) any)))) - #{x\ 1818}#)) - #{tmp\ 1821}#) - ((lambda (#{tmp\ 1827}#) - (if #{tmp\ 1827}# - (apply (lambda (#{stuff\ 1828}#) + #{x\ 1881}#)) + #{tmp\ 1884}#) + ((lambda (#{tmp\ 1890}#) + (if #{tmp\ 1890}# + (apply (lambda (#{stuff\ 1891}#) (cons '#(syntax-object list ((top) @@ -12653,10 +12882,10 @@ "i"))) (hygiene guile)) - (cons #{x\ 1818}# - #{stuff\ 1828}#))) - #{tmp\ 1827}#) - ((lambda (#{else\ 1829}#) + (cons #{x\ 1881}# + #{stuff\ 1891}#))) + #{tmp\ 1890}#) + ((lambda (#{else\ 1892}#) (list '#(syntax-object cons ((top) @@ -12688,11 +12917,11 @@ "i" "i"))) (hygiene guile)) - #{x\ 1818}# - #{y\ 1819}#)) - #{tmp\ 1820}#))) + #{x\ 1881}# + #{y\ 1882}#)) + #{tmp\ 1883}#))) ($sc-dispatch - #{tmp\ 1820}# + #{tmp\ 1883}# '(#(free-id #(syntax-object list @@ -12721,7 +12950,7 @@ . any))))) ($sc-dispatch - #{tmp\ 1820}# + #{tmp\ 1883}# '(#(free-id #(syntax-object quote @@ -12745,26 +12974,26 @@ #("i" "i" "i" "i"))) (hygiene guile))) any)))) - #{y\ 1819}#)) - #{tmp\ 1817}#) + #{y\ 1882}#)) + #{tmp\ 1880}#) (syntax-violation #f "source expression failed to match any pattern" - #{tmp\ 1816}#))) - ($sc-dispatch #{tmp\ 1816}# (quote (any any))))) - (list #{x\ 1814}# #{y\ 1815}#)))) - (#{quasiappend\ 1811}# - (lambda (#{x\ 1830}# #{y\ 1831}#) - ((lambda (#{tmp\ 1832}#) - ((lambda (#{tmp\ 1833}#) - (if #{tmp\ 1833}# - (apply (lambda (#{x\ 1834}# #{y\ 1835}#) - ((lambda (#{tmp\ 1836}#) - ((lambda (#{tmp\ 1837}#) - (if #{tmp\ 1837}# - (apply (lambda () #{x\ 1834}#) - #{tmp\ 1837}#) - ((lambda (#{_\ 1838}#) + #{tmp\ 1879}#))) + ($sc-dispatch #{tmp\ 1879}# (quote (any any))))) + (list #{x\ 1877}# #{y\ 1878}#)))) + (#{quasiappend\ 1874}# + (lambda (#{x\ 1893}# #{y\ 1894}#) + ((lambda (#{tmp\ 1895}#) + ((lambda (#{tmp\ 1896}#) + (if #{tmp\ 1896}# + (apply (lambda (#{x\ 1897}# #{y\ 1898}#) + ((lambda (#{tmp\ 1899}#) + ((lambda (#{tmp\ 1900}#) + (if #{tmp\ 1900}# + (apply (lambda () #{x\ 1897}#) + #{tmp\ 1900}#) + ((lambda (#{_\ 1901}#) (list '#(syntax-object append ((top) @@ -12793,11 +13022,11 @@ (top)) #("i" "i" "i" "i"))) (hygiene guile)) - #{x\ 1834}# - #{y\ 1835}#)) - #{tmp\ 1836}#))) + #{x\ 1897}# + #{y\ 1898}#)) + #{tmp\ 1899}#))) ($sc-dispatch - #{tmp\ 1836}# + #{tmp\ 1899}# '(#(free-id #(syntax-object quote @@ -12821,22 +13050,22 @@ #("i" "i" "i" "i"))) (hygiene guile))) ())))) - #{y\ 1835}#)) - #{tmp\ 1833}#) + #{y\ 1898}#)) + #{tmp\ 1896}#) (syntax-violation #f "source expression failed to match any pattern" - #{tmp\ 1832}#))) - ($sc-dispatch #{tmp\ 1832}# (quote (any any))))) - (list #{x\ 1830}# #{y\ 1831}#)))) - (#{quasivector\ 1812}# - (lambda (#{x\ 1839}#) - ((lambda (#{tmp\ 1840}#) - ((lambda (#{x\ 1841}#) - ((lambda (#{tmp\ 1842}#) - ((lambda (#{tmp\ 1843}#) - (if #{tmp\ 1843}# - (apply (lambda (#{x\ 1844}#) + #{tmp\ 1895}#))) + ($sc-dispatch #{tmp\ 1895}# (quote (any any))))) + (list #{x\ 1893}# #{y\ 1894}#)))) + (#{quasivector\ 1875}# + (lambda (#{x\ 1902}#) + ((lambda (#{tmp\ 1903}#) + ((lambda (#{x\ 1904}#) + ((lambda (#{tmp\ 1905}#) + ((lambda (#{tmp\ 1906}#) + (if #{tmp\ 1906}# + (apply (lambda (#{x\ 1907}#) (list '#(syntax-object quote ((top) @@ -12862,11 +13091,11 @@ #((top) (top) (top) (top)) #("i" "i" "i" "i"))) (hygiene guile)) - (list->vector #{x\ 1844}#))) - #{tmp\ 1843}#) - ((lambda (#{tmp\ 1846}#) - (if #{tmp\ 1846}# - (apply (lambda (#{x\ 1847}#) + (list->vector #{x\ 1907}#))) + #{tmp\ 1906}#) + ((lambda (#{tmp\ 1909}#) + (if #{tmp\ 1909}# + (apply (lambda (#{x\ 1910}#) (cons '#(syntax-object vector ((top) @@ -12895,9 +13124,9 @@ (top)) #("i" "i" "i" "i"))) (hygiene guile)) - #{x\ 1847}#)) - #{tmp\ 1846}#) - ((lambda (#{_\ 1849}#) + #{x\ 1910}#)) + #{tmp\ 1909}#) + ((lambda (#{_\ 1912}#) (list '#(syntax-object list->vector ((top) @@ -12923,10 +13152,10 @@ #((top) (top) (top) (top)) #("i" "i" "i" "i"))) (hygiene guile)) - #{x\ 1841}#)) - #{tmp\ 1842}#))) + #{x\ 1904}#)) + #{tmp\ 1905}#))) ($sc-dispatch - #{tmp\ 1842}# + #{tmp\ 1905}# '(#(free-id #(syntax-object list @@ -12946,7 +13175,7 @@ . each-any))))) ($sc-dispatch - #{tmp\ 1842}# + #{tmp\ 1905}# '(#(free-id #(syntax-object quote @@ -12964,18 +13193,18 @@ #("i" "i" "i" "i"))) (hygiene guile))) each-any)))) - #{x\ 1841}#)) - #{tmp\ 1840}#)) - #{x\ 1839}#))) - (#{quasi\ 1813}# - (lambda (#{p\ 1850}# #{lev\ 1851}#) - ((lambda (#{tmp\ 1852}#) - ((lambda (#{tmp\ 1853}#) - (if #{tmp\ 1853}# - (apply (lambda (#{p\ 1854}#) - (if (= #{lev\ 1851}# 0) - #{p\ 1854}# - (#{quasicons\ 1810}# + #{x\ 1904}#)) + #{tmp\ 1903}#)) + #{x\ 1902}#))) + (#{quasi\ 1876}# + (lambda (#{p\ 1913}# #{lev\ 1914}#) + ((lambda (#{tmp\ 1915}#) + ((lambda (#{tmp\ 1916}#) + (if #{tmp\ 1916}# + (apply (lambda (#{p\ 1917}#) + (if (= #{lev\ 1914}# 0) + #{p\ 1917}# + (#{quasicons\ 1873}# '(#(syntax-object quote ((top) @@ -13010,21 +13239,21 @@ #((top) (top) (top) (top)) #("i" "i" "i" "i"))) (hygiene guile))) - (#{quasi\ 1813}# - (list #{p\ 1854}#) - (- #{lev\ 1851}# 1))))) - #{tmp\ 1853}#) - ((lambda (#{tmp\ 1855}#) - (if (if #{tmp\ 1855}# - (apply (lambda (#{args\ 1856}#) - (= #{lev\ 1851}# 0)) - #{tmp\ 1855}#) + (#{quasi\ 1876}# + (list #{p\ 1917}#) + (- #{lev\ 1914}# 1))))) + #{tmp\ 1916}#) + ((lambda (#{tmp\ 1918}#) + (if (if #{tmp\ 1918}# + (apply (lambda (#{args\ 1919}#) + (= #{lev\ 1914}# 0)) + #{tmp\ 1918}#) #f) - (apply (lambda (#{args\ 1857}#) + (apply (lambda (#{args\ 1920}#) (syntax-violation 'unquote "unquote takes exactly one argument" - #{p\ 1850}# + #{p\ 1913}# (cons '#(syntax-object unquote ((top) @@ -13045,19 +13274,19 @@ #((top) (top) (top) (top)) #("i" "i" "i" "i"))) (hygiene guile)) - #{args\ 1857}#))) - #{tmp\ 1855}#) - ((lambda (#{tmp\ 1858}#) - (if #{tmp\ 1858}# - (apply (lambda (#{p\ 1859}# #{q\ 1860}#) - (if (= #{lev\ 1851}# 0) - (#{quasiappend\ 1811}# - #{p\ 1859}# - (#{quasi\ 1813}# - #{q\ 1860}# - #{lev\ 1851}#)) - (#{quasicons\ 1810}# - (#{quasicons\ 1810}# + #{args\ 1920}#))) + #{tmp\ 1918}#) + ((lambda (#{tmp\ 1921}#) + (if #{tmp\ 1921}# + (apply (lambda (#{p\ 1922}# #{q\ 1923}#) + (if (= #{lev\ 1914}# 0) + (#{quasiappend\ 1874}# + #{p\ 1922}# + (#{quasi\ 1876}# + #{q\ 1923}# + #{lev\ 1914}#)) + (#{quasicons\ 1873}# + (#{quasicons\ 1873}# '(#(syntax-object quote ((top) @@ -13104,26 +13333,26 @@ (top)) #("i" "i" "i" "i"))) (hygiene guile))) - (#{quasi\ 1813}# - (list #{p\ 1859}#) - (- #{lev\ 1851}# 1))) - (#{quasi\ 1813}# - #{q\ 1860}# - #{lev\ 1851}#)))) - #{tmp\ 1858}#) - ((lambda (#{tmp\ 1861}#) - (if (if #{tmp\ 1861}# - (apply (lambda (#{args\ 1862}# - #{q\ 1863}#) - (= #{lev\ 1851}# 0)) - #{tmp\ 1861}#) + (#{quasi\ 1876}# + (list #{p\ 1922}#) + (- #{lev\ 1914}# 1))) + (#{quasi\ 1876}# + #{q\ 1923}# + #{lev\ 1914}#)))) + #{tmp\ 1921}#) + ((lambda (#{tmp\ 1924}#) + (if (if #{tmp\ 1924}# + (apply (lambda (#{args\ 1925}# + #{q\ 1926}#) + (= #{lev\ 1914}# 0)) + #{tmp\ 1924}#) #f) - (apply (lambda (#{args\ 1864}# - #{q\ 1865}#) + (apply (lambda (#{args\ 1927}# + #{q\ 1928}#) (syntax-violation 'unquote-splicing "unquote-splicing takes exactly one argument" - #{p\ 1850}# + #{p\ 1913}# (cons '#(syntax-object unquote-splicing ((top) @@ -13153,12 +13382,12 @@ "i" "i"))) (hygiene guile)) - #{args\ 1864}#))) - #{tmp\ 1861}#) - ((lambda (#{tmp\ 1866}#) - (if #{tmp\ 1866}# - (apply (lambda (#{p\ 1867}#) - (#{quasicons\ 1810}# + #{args\ 1927}#))) + #{tmp\ 1924}#) + ((lambda (#{tmp\ 1929}#) + (if #{tmp\ 1929}# + (apply (lambda (#{p\ 1930}#) + (#{quasicons\ 1873}# '(#(syntax-object quote ((top) @@ -13217,32 +13446,32 @@ "i" "i"))) (hygiene guile))) - (#{quasi\ 1813}# - (list #{p\ 1867}#) - (+ #{lev\ 1851}# + (#{quasi\ 1876}# + (list #{p\ 1930}#) + (+ #{lev\ 1914}# 1)))) - #{tmp\ 1866}#) - ((lambda (#{tmp\ 1868}#) - (if #{tmp\ 1868}# - (apply (lambda (#{p\ 1869}# - #{q\ 1870}#) - (#{quasicons\ 1810}# - (#{quasi\ 1813}# - #{p\ 1869}# - #{lev\ 1851}#) - (#{quasi\ 1813}# - #{q\ 1870}# - #{lev\ 1851}#))) - #{tmp\ 1868}#) - ((lambda (#{tmp\ 1871}#) - (if #{tmp\ 1871}# - (apply (lambda (#{x\ 1872}#) - (#{quasivector\ 1812}# - (#{quasi\ 1813}# - #{x\ 1872}# - #{lev\ 1851}#))) - #{tmp\ 1871}#) - ((lambda (#{p\ 1874}#) + #{tmp\ 1929}#) + ((lambda (#{tmp\ 1931}#) + (if #{tmp\ 1931}# + (apply (lambda (#{p\ 1932}# + #{q\ 1933}#) + (#{quasicons\ 1873}# + (#{quasi\ 1876}# + #{p\ 1932}# + #{lev\ 1914}#) + (#{quasi\ 1876}# + #{q\ 1933}# + #{lev\ 1914}#))) + #{tmp\ 1931}#) + ((lambda (#{tmp\ 1934}#) + (if #{tmp\ 1934}# + (apply (lambda (#{x\ 1935}#) + (#{quasivector\ 1875}# + (#{quasi\ 1876}# + #{x\ 1935}# + #{lev\ 1914}#))) + #{tmp\ 1934}#) + ((lambda (#{p\ 1937}#) (list '#(syntax-object quote ((top) @@ -13275,16 +13504,16 @@ "i"))) (hygiene guile)) - #{p\ 1874}#)) - #{tmp\ 1852}#))) + #{p\ 1937}#)) + #{tmp\ 1915}#))) ($sc-dispatch - #{tmp\ 1852}# + #{tmp\ 1915}# '#(vector each-any))))) ($sc-dispatch - #{tmp\ 1852}# + #{tmp\ 1915}# '(any . any))))) ($sc-dispatch - #{tmp\ 1852}# + #{tmp\ 1915}# '(#(free-id #(syntax-object quasiquote @@ -13304,7 +13533,7 @@ (hygiene guile))) any))))) ($sc-dispatch - #{tmp\ 1852}# + #{tmp\ 1915}# '((#(free-id #(syntax-object unquote-splicing @@ -13327,7 +13556,7 @@ . any))))) ($sc-dispatch - #{tmp\ 1852}# + #{tmp\ 1915}# '((#(free-id #(syntax-object unquote-splicing @@ -13349,7 +13578,7 @@ . any))))) ($sc-dispatch - #{tmp\ 1852}# + #{tmp\ 1915}# '(#(free-id #(syntax-object unquote @@ -13367,7 +13596,7 @@ . any))))) ($sc-dispatch - #{tmp\ 1852}# + #{tmp\ 1915}# '(#(free-id #(syntax-object unquote @@ -13380,49 +13609,49 @@ #("i" "i" "i" "i"))) (hygiene guile))) any)))) - #{p\ 1850}#)))) - (lambda (#{x\ 1875}#) - ((lambda (#{tmp\ 1876}#) - ((lambda (#{tmp\ 1877}#) - (if #{tmp\ 1877}# - (apply (lambda (#{_\ 1878}# #{e\ 1879}#) - (#{quasi\ 1813}# #{e\ 1879}# 0)) - #{tmp\ 1877}#) + #{p\ 1913}#)))) + (lambda (#{x\ 1938}#) + ((lambda (#{tmp\ 1939}#) + ((lambda (#{tmp\ 1940}#) + (if #{tmp\ 1940}# + (apply (lambda (#{_\ 1941}# #{e\ 1942}#) + (#{quasi\ 1876}# #{e\ 1942}# 0)) + #{tmp\ 1940}#) (syntax-violation #f "source expression failed to match any pattern" - #{tmp\ 1876}#))) - ($sc-dispatch #{tmp\ 1876}# (quote (any any))))) - #{x\ 1875}#))))) + #{tmp\ 1939}#))) + ($sc-dispatch #{tmp\ 1939}# (quote (any any))))) + #{x\ 1938}#))))) (define include (make-syncase-macro 'macro - (lambda (#{x\ 1880}#) - (letrec ((#{read-file\ 1881}# - (lambda (#{fn\ 1882}# #{k\ 1883}#) - (let ((#{p\ 1884}# (open-input-file #{fn\ 1882}#))) - (letrec ((#{f\ 1885}# - (lambda (#{x\ 1886}#) - (if (eof-object? #{x\ 1886}#) + (lambda (#{x\ 1943}#) + (letrec ((#{read-file\ 1944}# + (lambda (#{fn\ 1945}# #{k\ 1946}#) + (let ((#{p\ 1947}# (open-input-file #{fn\ 1945}#))) + (letrec ((#{f\ 1948}# + (lambda (#{x\ 1949}#) + (if (eof-object? #{x\ 1949}#) (begin - (close-input-port #{p\ 1884}#) + (close-input-port #{p\ 1947}#) '()) (cons (datum->syntax - #{k\ 1883}# - #{x\ 1886}#) - (#{f\ 1885}# (read #{p\ 1884}#))))))) - (#{f\ 1885}# (read #{p\ 1884}#))))))) - ((lambda (#{tmp\ 1887}#) - ((lambda (#{tmp\ 1888}#) - (if #{tmp\ 1888}# - (apply (lambda (#{k\ 1889}# #{filename\ 1890}#) - (let ((#{fn\ 1891}# - (syntax->datum #{filename\ 1890}#))) - ((lambda (#{tmp\ 1892}#) - ((lambda (#{tmp\ 1893}#) - (if #{tmp\ 1893}# - (apply (lambda (#{exp\ 1894}#) + #{k\ 1946}# + #{x\ 1949}#) + (#{f\ 1948}# (read #{p\ 1947}#))))))) + (#{f\ 1948}# (read #{p\ 1947}#))))))) + ((lambda (#{tmp\ 1950}#) + ((lambda (#{tmp\ 1951}#) + (if #{tmp\ 1951}# + (apply (lambda (#{k\ 1952}# #{filename\ 1953}#) + (let ((#{fn\ 1954}# + (syntax->datum #{filename\ 1953}#))) + ((lambda (#{tmp\ 1955}#) + ((lambda (#{tmp\ 1956}#) + (if #{tmp\ 1956}# + (apply (lambda (#{exp\ 1957}#) (cons '#(syntax-object begin ((top) @@ -13449,76 +13678,76 @@ #((top)) #("i"))) (hygiene guile)) - #{exp\ 1894}#)) - #{tmp\ 1893}#) + #{exp\ 1957}#)) + #{tmp\ 1956}#) (syntax-violation #f "source expression failed to match any pattern" - #{tmp\ 1892}#))) - ($sc-dispatch #{tmp\ 1892}# (quote each-any)))) - (#{read-file\ 1881}# #{fn\ 1891}# #{k\ 1889}#)))) - #{tmp\ 1888}#) + #{tmp\ 1955}#))) + ($sc-dispatch #{tmp\ 1955}# (quote each-any)))) + (#{read-file\ 1944}# #{fn\ 1954}# #{k\ 1952}#)))) + #{tmp\ 1951}#) (syntax-violation #f "source expression failed to match any pattern" - #{tmp\ 1887}#))) - ($sc-dispatch #{tmp\ 1887}# (quote (any any))))) - #{x\ 1880}#))))) + #{tmp\ 1950}#))) + ($sc-dispatch #{tmp\ 1950}# (quote (any any))))) + #{x\ 1943}#))))) (define unquote (make-syncase-macro 'macro - (lambda (#{x\ 1896}#) - ((lambda (#{tmp\ 1897}#) - ((lambda (#{tmp\ 1898}#) - (if #{tmp\ 1898}# - (apply (lambda (#{_\ 1899}# #{e\ 1900}#) + (lambda (#{x\ 1959}#) + ((lambda (#{tmp\ 1960}#) + ((lambda (#{tmp\ 1961}#) + (if #{tmp\ 1961}# + (apply (lambda (#{_\ 1962}# #{e\ 1963}#) (syntax-violation 'unquote "expression not valid outside of quasiquote" - #{x\ 1896}#)) - #{tmp\ 1898}#) + #{x\ 1959}#)) + #{tmp\ 1961}#) (syntax-violation #f "source expression failed to match any pattern" - #{tmp\ 1897}#))) - ($sc-dispatch #{tmp\ 1897}# (quote (any any))))) - #{x\ 1896}#)))) + #{tmp\ 1960}#))) + ($sc-dispatch #{tmp\ 1960}# (quote (any any))))) + #{x\ 1959}#)))) (define unquote-splicing (make-syncase-macro 'macro - (lambda (#{x\ 1901}#) - ((lambda (#{tmp\ 1902}#) - ((lambda (#{tmp\ 1903}#) - (if #{tmp\ 1903}# - (apply (lambda (#{_\ 1904}# #{e\ 1905}#) + (lambda (#{x\ 1964}#) + ((lambda (#{tmp\ 1965}#) + ((lambda (#{tmp\ 1966}#) + (if #{tmp\ 1966}# + (apply (lambda (#{_\ 1967}# #{e\ 1968}#) (syntax-violation 'unquote-splicing "expression not valid outside of quasiquote" - #{x\ 1901}#)) - #{tmp\ 1903}#) + #{x\ 1964}#)) + #{tmp\ 1966}#) (syntax-violation #f "source expression failed to match any pattern" - #{tmp\ 1902}#))) - ($sc-dispatch #{tmp\ 1902}# (quote (any any))))) - #{x\ 1901}#)))) + #{tmp\ 1965}#))) + ($sc-dispatch #{tmp\ 1965}# (quote (any any))))) + #{x\ 1964}#)))) (define case (make-extended-syncase-macro (module-ref (current-module) (quote case)) 'macro - (lambda (#{x\ 1906}#) - ((lambda (#{tmp\ 1907}#) - ((lambda (#{tmp\ 1908}#) - (if #{tmp\ 1908}# - (apply (lambda (#{_\ 1909}# - #{e\ 1910}# - #{m1\ 1911}# - #{m2\ 1912}#) - ((lambda (#{tmp\ 1913}#) - ((lambda (#{body\ 1914}#) + (lambda (#{x\ 1969}#) + ((lambda (#{tmp\ 1970}#) + ((lambda (#{tmp\ 1971}#) + (if #{tmp\ 1971}# + (apply (lambda (#{_\ 1972}# + #{e\ 1973}# + #{m1\ 1974}# + #{m2\ 1975}#) + ((lambda (#{tmp\ 1976}#) + ((lambda (#{body\ 1977}#) (list '#(syntax-object let ((top) @@ -13547,17 +13776,17 @@ #((top)) #("i"))) (hygiene guile)) - #{e\ 1910}#)) - #{body\ 1914}#)) - #{tmp\ 1913}#)) - (letrec ((#{f\ 1915}# - (lambda (#{clause\ 1916}# #{clauses\ 1917}#) - (if (null? #{clauses\ 1917}#) - ((lambda (#{tmp\ 1919}#) - ((lambda (#{tmp\ 1920}#) - (if #{tmp\ 1920}# - (apply (lambda (#{e1\ 1921}# - #{e2\ 1922}#) + #{e\ 1973}#)) + #{body\ 1977}#)) + #{tmp\ 1976}#)) + (letrec ((#{f\ 1978}# + (lambda (#{clause\ 1979}# #{clauses\ 1980}#) + (if (null? #{clauses\ 1980}#) + ((lambda (#{tmp\ 1982}#) + ((lambda (#{tmp\ 1983}#) + (if #{tmp\ 1983}# + (apply (lambda (#{e1\ 1984}# + #{e2\ 1985}#) (cons '#(syntax-object begin ((top) @@ -13603,14 +13832,14 @@ #("i"))) (hygiene guile)) - (cons #{e1\ 1921}# - #{e2\ 1922}#))) - #{tmp\ 1920}#) - ((lambda (#{tmp\ 1924}#) - (if #{tmp\ 1924}# - (apply (lambda (#{k\ 1925}# - #{e1\ 1926}# - #{e2\ 1927}#) + (cons #{e1\ 1984}# + #{e2\ 1985}#))) + #{tmp\ 1983}#) + ((lambda (#{tmp\ 1987}#) + (if #{tmp\ 1987}# + (apply (lambda (#{k\ 1988}# + #{e1\ 1989}# + #{e2\ 1990}#) (list '#(syntax-object if ((top) @@ -13811,7 +14040,7 @@ #("i"))) (hygiene guile)) - #{k\ 1925}#)) + #{k\ 1988}#)) (cons '#(syntax-object begin ((top) @@ -13862,24 +14091,24 @@ #("i"))) (hygiene guile)) - (cons #{e1\ 1926}# - #{e2\ 1927}#)))) - #{tmp\ 1924}#) - ((lambda (#{_\ 1930}#) + (cons #{e1\ 1989}# + #{e2\ 1990}#)))) + #{tmp\ 1987}#) + ((lambda (#{_\ 1993}#) (syntax-violation 'case "bad clause" - #{x\ 1906}# - #{clause\ 1916}#)) - #{tmp\ 1919}#))) + #{x\ 1969}# + #{clause\ 1979}#)) + #{tmp\ 1982}#))) ($sc-dispatch - #{tmp\ 1919}# + #{tmp\ 1982}# '(each-any any . each-any))))) ($sc-dispatch - #{tmp\ 1919}# + #{tmp\ 1982}# '(#(free-id #(syntax-object else @@ -13905,15 +14134,15 @@ any . each-any)))) - #{clause\ 1916}#) - ((lambda (#{tmp\ 1931}#) - ((lambda (#{rest\ 1932}#) - ((lambda (#{tmp\ 1933}#) - ((lambda (#{tmp\ 1934}#) - (if #{tmp\ 1934}# - (apply (lambda (#{k\ 1935}# - #{e1\ 1936}# - #{e2\ 1937}#) + #{clause\ 1979}#) + ((lambda (#{tmp\ 1994}#) + ((lambda (#{rest\ 1995}#) + ((lambda (#{tmp\ 1996}#) + ((lambda (#{tmp\ 1997}#) + (if #{tmp\ 1997}# + (apply (lambda (#{k\ 1998}# + #{e1\ 1999}# + #{e2\ 2000}#) (list '#(syntax-object if ((top) @@ -14130,7 +14359,7 @@ #("i"))) (hygiene guile)) - #{k\ 1935}#)) + #{k\ 1998}#)) (cons '#(syntax-object begin ((top) @@ -14185,47 +14414,47 @@ #("i"))) (hygiene guile)) - (cons #{e1\ 1936}# - #{e2\ 1937}#)) - #{rest\ 1932}#)) - #{tmp\ 1934}#) - ((lambda (#{_\ 1940}#) + (cons #{e1\ 1999}# + #{e2\ 2000}#)) + #{rest\ 1995}#)) + #{tmp\ 1997}#) + ((lambda (#{_\ 2003}#) (syntax-violation 'case "bad clause" - #{x\ 1906}# - #{clause\ 1916}#)) - #{tmp\ 1933}#))) + #{x\ 1969}# + #{clause\ 1979}#)) + #{tmp\ 1996}#))) ($sc-dispatch - #{tmp\ 1933}# + #{tmp\ 1996}# '(each-any any . each-any)))) - #{clause\ 1916}#)) - #{tmp\ 1931}#)) - (#{f\ 1915}# - (car #{clauses\ 1917}#) - (cdr #{clauses\ 1917}#))))))) - (#{f\ 1915}# #{m1\ 1911}# #{m2\ 1912}#)))) - #{tmp\ 1908}#) + #{clause\ 1979}#)) + #{tmp\ 1994}#)) + (#{f\ 1978}# + (car #{clauses\ 1980}#) + (cdr #{clauses\ 1980}#))))))) + (#{f\ 1978}# #{m1\ 1974}# #{m2\ 1975}#)))) + #{tmp\ 1971}#) (syntax-violation #f "source expression failed to match any pattern" - #{tmp\ 1907}#))) + #{tmp\ 1970}#))) ($sc-dispatch - #{tmp\ 1907}# + #{tmp\ 1970}# '(any any any . each-any)))) - #{x\ 1906}#)))) + #{x\ 1969}#)))) (define identifier-syntax (make-syncase-macro 'macro - (lambda (#{x\ 1941}#) - ((lambda (#{tmp\ 1942}#) - ((lambda (#{tmp\ 1943}#) - (if #{tmp\ 1943}# - (apply (lambda (#{_\ 1944}# #{e\ 1945}#) + (lambda (#{x\ 2004}#) + ((lambda (#{tmp\ 2005}#) + ((lambda (#{tmp\ 2006}#) + (if #{tmp\ 2006}# + (apply (lambda (#{_\ 2007}# #{e\ 2008}#) (list '#(syntax-object lambda ((top) @@ -14314,8 +14543,8 @@ #((top)) #("i"))) (hygiene guile)) - #{e\ 1945}#)) - (list (cons #{_\ 1944}# + #{e\ 2008}#)) + (list (cons #{_\ 2007}# '(#(syntax-object x ((top) @@ -14355,7 +14584,7 @@ #((top)) #("i"))) (hygiene guile)) - (cons #{e\ 1945}# + (cons #{e\ 2008}# '(#(syntax-object x ((top) @@ -14383,26 +14612,26 @@ #("i"))) (hygiene guile))))))))) - #{tmp\ 1943}#) + #{tmp\ 2006}#) (syntax-violation #f "source expression failed to match any pattern" - #{tmp\ 1942}#))) - ($sc-dispatch #{tmp\ 1942}# (quote (any any))))) - #{x\ 1941}#)))) + #{tmp\ 2005}#))) + ($sc-dispatch #{tmp\ 2005}# (quote (any any))))) + #{x\ 2004}#)))) (define define* (make-syncase-macro 'macro - (lambda (#{x\ 1946}#) - ((lambda (#{tmp\ 1947}#) - ((lambda (#{tmp\ 1948}#) - (if #{tmp\ 1948}# - (apply (lambda (#{dummy\ 1949}# - #{id\ 1950}# - #{args\ 1951}# - #{b0\ 1952}# - #{b1\ 1953}#) + (lambda (#{x\ 2009}#) + ((lambda (#{tmp\ 2010}#) + ((lambda (#{tmp\ 2011}#) + (if #{tmp\ 2011}# + (apply (lambda (#{dummy\ 2012}# + #{id\ 2013}# + #{args\ 2014}# + #{b0\ 2015}# + #{b1\ 2016}#) (list '#(syntax-object define ((top) @@ -14413,7 +14642,7 @@ #(ribcage () () ()) #(ribcage #(x) #(("m" top)) #("i"))) (hygiene guile)) - #{id\ 1950}# + #{id\ 2013}# (cons '#(syntax-object lambda* ((top) @@ -14424,15 +14653,15 @@ #(ribcage () () ()) #(ribcage #(x) #(("m" top)) #("i"))) (hygiene guile)) - (cons #{args\ 1951}# - (cons #{b0\ 1952}# #{b1\ 1953}#))))) - #{tmp\ 1948}#) + (cons #{args\ 2014}# + (cons #{b0\ 2015}# #{b1\ 2016}#))))) + #{tmp\ 2011}#) (syntax-violation #f "source expression failed to match any pattern" - #{tmp\ 1947}#))) + #{tmp\ 2010}#))) ($sc-dispatch - #{tmp\ 1947}# + #{tmp\ 2010}# '(any (any . any) any . each-any)))) - #{x\ 1946}#)))) + #{x\ 2009}#)))) diff --git a/module/ice-9/psyntax.scm b/module/ice-9/psyntax.scm index 05d2ba068..6fcc9b064 100644 --- a/module/ice-9/psyntax.scm +++ b/module/ice-9/psyntax.scm @@ -1585,7 +1585,7 @@ (define (check req rest) (cond ((distinct-bound-ids? (if rest (cons rest req) req)) - (values req #f rest #f)) + (values req #f rest #f #f)) (else (syntax-violation 'lambda "duplicate identifier in argument list" orig-args)))) @@ -1610,40 +1610,44 @@ (define (req args rreq) (syntax-case args () (() - (check (reverse rreq) '() #f '())) + (check (reverse rreq) '() #f '() #f)) ((a . b) (id? #'a) (req #'b (cons #'a rreq))) ((a . b) (eq? (syntax->datum #'a) #:optional) (opt #'b (reverse rreq) '())) ((a . b) (eq? (syntax->datum #'a) #:key) (key #'b (reverse rreq) '() '())) + ((a . b) (eq? (syntax->datum #'a) #:predicate) + (pred #'b (reverse rreq) '() '())) ((a b) (eq? (syntax->datum #'a) #:rest) - (rest #'b (reverse rreq) '() '())) + (rest #'b (reverse rreq) '() '() #f)) (r (id? #'r) - (rest #'r (reverse rreq) '() '())) + (rest #'r (reverse rreq) '() '() #f)) (else (syntax-violation 'lambda* "invalid argument list" orig-args args)))) (define (opt args req ropt) (syntax-case args () (() - (check req (reverse ropt) #f '())) + (check req (reverse ropt) #f '() #f)) ((a . b) (id? #'a) (opt #'b req (cons #'(a #f) ropt))) (((a init) . b) (id? #'a) (opt #'b req (cons #'(a init) ropt))) ((a . b) (eq? (syntax->datum #'a) #:key) (key #'b req (reverse ropt) '())) + ((a . b) (eq? (syntax->datum #'a) #:predicate) + (pred #'b req (reverse ropt) '())) ((a b) (eq? (syntax->datum #'a) #:rest) - (rest #'b req (reverse ropt) '())) + (rest #'b req (reverse ropt) '() #f)) (r (id? #'r) - (rest #'r req (reverse ropt) '())) + (rest #'r req (reverse ropt) '() #f)) (else (syntax-violation 'lambda* "invalid optional argument list" orig-args args)))) (define (key args req opt rkey) (syntax-case args () (() - (check req opt #f (cons #f (reverse rkey)))) + (check req opt #f (cons #f (reverse rkey)) #f)) ((a . b) (id? #'a) (with-syntax ((k (symbol->keyword (syntax->datum #'a)))) (key #'b req opt (cons #'(k a #f) rkey)))) @@ -1654,33 +1658,48 @@ (keyword? (syntax->datum #'k))) (key #'b req opt (cons #'(k a init) rkey))) ((aok) (eq? (syntax->datum #'aok) #:allow-other-keys) - (check req opt #f (cons #t (reverse rkey)))) + (check req opt #f (cons #t (reverse rkey)) #f)) + ((aok a . b) (and (eq? (syntax->datum #'aok) #:allow-other-keys) + (eq? (syntax->datum #'a) #:predicate)) + (pred #'b req opt (cons #t (reverse rkey)))) ((aok a b) (and (eq? (syntax->datum #'aok) #:allow-other-keys) (eq? (syntax->datum #'a) #:rest)) (rest #'b req opt (cons #t (reverse rkey)))) ((aok . r) (and (eq? (syntax->datum #'aok) #:allow-other-keys) (id? #'r)) (rest #'r req opt (cons #t (reverse rkey)))) + ((a . b) (eq? (syntax->datum #'a) #:predicate) + (pred #'b req opt (cons #f (reverse rkey)))) ((a b) (eq? (syntax->datum #'a) #:rest) - (rest #'b req opt (cons #f (reverse rkey)))) + (rest #'b req opt (cons #f (reverse rkey)) #f)) (r (id? #'r) - (rest #'r req opt (cons #f (reverse rkey)))) + (rest #'r req opt (cons #f (reverse rkey)) #f)) (else (syntax-violation 'lambda* "invalid keyword argument list" orig-args args)))) - (define (rest args req opt kw) + (define (pred args req opt kw) + (syntax-case args () + ((x) (check req opt #f kw #'x)) + ((x a b) (eq? (syntax->datum #'a #:rest)) + (rest #'b req opt #f kw #'x)) + ((x . b) (id? #'b) + (rest #'b req opt #f kw #'x)) + (else + (syntax-violation 'lambda* "invalid argument list following #:predicate" + orig-args args)))) + (define (rest args req opt kw pred) (syntax-case args () (r (id? #'r) - (check req opt #'r kw)) + (check req opt #'r kw pred)) (else (syntax-violation 'lambda* "invalid rest argument" orig-args args)))) - (define (check req opt rest kw) + (define (check req opt rest kw pred) (cond ((distinct-bound-ids? (append req (map car opt) (if rest (list rest) '()) (if (pair? kw) (map cadr (cdr kw)) '()))) - (values req opt rest kw)) + (values req opt rest kw pred)) (else (syntax-violation 'lambda* "duplicate identifier in argument list" orig-args)))) @@ -1688,14 +1707,14 @@ (define chi-lambda-case (lambda (e r w s mod get-formals clauses) - (define (expand-req req opt rest kw body) + (define (expand-req req opt rest kw pred body) (let ((vars (map gen-var req)) (labels (gen-labels req))) (let ((r* (extend-var-env labels vars r)) (w* (make-binding-wrap req labels w))) (expand-opt (map syntax->datum req) - opt rest kw body (reverse vars) r* w* '() '())))) - (define (expand-opt req opt rest kw body vars r* w* out inits) + opt rest kw pred body (reverse vars) r* w* '() '())))) + (define (expand-opt req opt rest kw pred body vars r* w* out inits) (cond ((pair? opt) (syntax-case (car opt) () @@ -1704,7 +1723,7 @@ (l (gen-labels (list v))) (r** (extend-var-env l (list v) r*)) (w** (make-binding-wrap (list #'id) l w*))) - (expand-opt req (cdr opt) rest kw body (cons v vars) + (expand-opt req (cdr opt) rest kw pred body (cons v vars) r** w** (cons (syntax->datum #'id) out) (cons (chi #'i r* w* mod) inits)))))) (rest @@ -1715,16 +1734,16 @@ (expand-kw req (if (pair? out) (reverse out) #f) (syntax->datum rest) (if (pair? kw) (cdr kw) kw) - body (cons v vars) r* w* + pred body (cons v vars) r* w* (if (pair? kw) (car kw) #f) '() inits))) (else (expand-kw req (if (pair? out) (reverse out) #f) #f (if (pair? kw) (cdr kw) kw) - body vars r* w* + pred body vars r* w* (if (pair? kw) (car kw) #f) '() inits)))) - (define (expand-kw req opt rest kw body vars r* w* aok out inits) + (define (expand-kw req opt rest kw pred body vars r* w* aok out inits) (cond ((pair? kw) (syntax-case (car kw) () @@ -1733,7 +1752,7 @@ (l (gen-labels (list v))) (r** (extend-var-env l (list v) r*)) (w** (make-binding-wrap (list #'id) l w*))) - (expand-kw req opt rest (cdr kw) body (cons v vars) + (expand-kw req opt rest (cdr kw) pred body (cons v vars) r** w** aok (cons (list (syntax->datum #'k) (syntax->datum #'id) @@ -1741,17 +1760,20 @@ out) (cons (chi #'i r* w* mod) inits)))))) (else - (expand-body req opt rest + (expand-pred req opt rest (if (or aok (pair? out)) (cons aok (reverse out)) #f) - body (reverse vars) r* w* (reverse inits))))) - (define (expand-body req opt rest kw body vars r* w* inits) + pred body (reverse vars) r* w* (reverse inits))))) + (define (expand-pred req opt rest kw pred body vars r* w* inits) + (expand-body req opt rest kw (and pred (chi pred r* w* mod)) + body vars r* w* inits)) + (define (expand-body req opt rest kw pred body vars r* w* inits) (syntax-case body () ((docstring e1 e2 ...) (string? (syntax->datum #'docstring)) - (values (syntax->datum #'docstring) req opt rest kw inits vars #f + (values (syntax->datum #'docstring) req opt rest kw inits vars pred (chi-body #'(e1 e2 ...) (source-wrap e w s mod) r* w* mod))) ((e1 e2 ...) - (values #f req opt rest kw inits vars #f + (values #f req opt rest kw inits vars pred (chi-body #'(e1 e2 ...) (source-wrap e w s mod) r* w* mod))))) @@ -1759,9 +1781,9 @@ (() (values #f #f)) (((args e1 e2 ...) (args* e1* e2* ...) ...) (call-with-values (lambda () (get-formals #'args)) - (lambda (req opt rest kw) + (lambda (req opt rest kw pred) (call-with-values (lambda () - (expand-req req opt rest kw #'(e1 e2 ...))) + (expand-req req opt rest kw pred #'(e1 e2 ...))) (lambda (docstring req opt rest kw inits vars pred body) (call-with-values (lambda () @@ -2033,12 +2055,12 @@ (syntax-case e () ((_ args docstring e1 e2 ...) (string? (syntax->datum #'docstring)) (call-with-values (lambda () (lambda-formals #'args)) - (lambda (req opt rest kw) + (lambda (req opt rest kw pred) (chi-simple-lambda e r w s mod req rest (syntax->datum #'docstring) #'(e1 e2 ...))))) ((_ args e1 e2 ...) (call-with-values (lambda () (lambda-formals #'args)) - (lambda (req opt rest kw) + (lambda (req opt rest kw pred) (chi-simple-lambda e r w s mod req rest #f #'(e1 e2 ...))))) (_ (syntax-violation 'lambda "bad lambda" e))))) diff --git a/module/language/tree-il/compile-glil.scm b/module/language/tree-il/compile-glil.scm index 191f1bf99..a809e2d32 100644 --- a/module/language/tree-il/compile-glil.scm +++ b/module/language/tree-il/compile-glil.scm @@ -418,7 +418,7 @@ (else ;; no cases left; shuffle args down and jump before the prelude. (for-each (lambda (i) - (emit-code #f (make-glil-lexical #t #f 'set index))) + (emit-code #f (make-glil-lexical #t #f 'set i))) (reverse (iota (length args)))) (emit-branch src 'br self-label))))) @@ -693,8 +693,9 @@ (if else-label ;; fixme: debox if necessary (emit-branch src 'br-if-not else-label) - ;; fixme: better error - (emit-code src (make-glil-call 'assert-true 0))))) + (comp-push (make-application + src (make-primitive-ref #f 'error) + (list (make-const #f "precondition not met"))))))) (comp-tail body) (if (not (null? vars)) (emit-code #f (make-glil-unbind)))