Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

60362 lines (60301 sloc) 610.998 kb
;;;============================================================================
;;; File: "syntax-case.scm", Time-stamp: <2008-12-15 11:35:18 feeley>
;;; Copyright (c) 1998-2008 by Marc Feeley, All Rights Reserved.
;;; This is version 3.2 .
;; This version includes a patch which avoids quoting self-evaluating
;; constants. This makes it possible to use some Gambit specific forms
;; such as declare, namespace and define-macro.
;; This is an implementation of "syntax-case" for the Gambit-C 4.0
;; system based on the portable implementation "psyntax.ss". At the
;; top of the file "psyntax.ss" can be found this information:
;;
;; Portable implementation of syntax-case
;; Extracted from Chez Scheme Version 7.3 (Feb 26, 2007)
;; Authors: R. Kent Dybvig, Oscar Waddell, Bob Hieb, Carl Bruggeman
;; This file can be used to replace the builtin macro expander of the
;; interpreter and compiler. Source code correlation information
;; (filename and position in file) is preserved by the expander. The
;; expander mangles non-global variable names and this complicates
;; debugging somewhat. Note that Gambit's normal parser processes the
;; input after expansion by the syntax-case expander. Since the
;; syntax-case expander does not know about Gambit's syntactic
;; extensions (like DSSSL parameters) some of the syntactic
;; extensions cannot be used. On the other hand, the syntax-case
;; expander defines some new special forms, such as "module",
;; "alias", and "eval-when".
;; You can simply load this file at the REPL with:
;;
;; (load "syntax-case")
;;
;; For faster macro processing it is worthwhile to compile the file
;; with the compiler. You can also rename this file to "gambcext.scm"
;; and put it in the Gambit "lib" installation directory so that it is
;; loaded every time the interpreter and compiler are started.
;;
;; Alternatively, the expander can be loaded from the command line
;; like this:
;;
;; % gsi ~~lib/syntax-case -
;; > (pp (lambda (x y) (if (< x y) (let ((z (* x x))) z))))
;; (lambda (%%x0 %%y1)
;; (if (< %%x0 %%y1) ((lambda (%%z2) %%z2) (* %%x0 %%x0)) (void)))
;;;============================================================================
(##declare
(standard-bindings)
(extended-bindings)
(inlining-limit 100)
(block)
)
(##namespace ("sc#"))
(##include "~~lib/gambit#.scm")
(##namespace (""
$make-environment
$sc-put-cte
$syntax-dispatch
bound-identifier=?
datum->syntax-object
environment?
free-identifier=?
generate-temporaries
identifier?
interaction-environment
literal-identifier=?
sc-expand
syntax-error
syntax-object->datum
syntax->list
syntax->vector
))
(##namespace ("sc#"
interaction-environment
eval
gensym
))
;;;============================================================================
;; The following procedures are needed by the syntax-case system.
(define andmap
(lambda (f first . rest)
(or (null? first)
(if (null? rest)
(let andmap ((first first))
(let ((x (car first)) (first (cdr first)))
(if (null? first)
(f x)
(and (f x) (andmap first)))))
(let andmap ((first first) (rest rest))
(let ((x (car first))
(xr (map car rest))
(first (cdr first))
(rest (map cdr rest)))
(if (null? first)
(apply f (cons x xr))
(and (apply f (cons x xr)) (andmap first rest)))))))))
(define ormap
(lambda (proc list1)
(and (not (null? list1))
(or (proc (car list1)) (ormap proc (cdr list1))))))
(define eval
(lambda (expr)
(cond ((and (##pair? expr)
(##equal? (##car expr) "noexpand")
(##pair? (##cdr expr))
(##null? (##cddr expr)))
(##eval (##cadr expr)))
((and (##source? expr)
(##pair? (##source-code expr))
(##source? (##car (##source-code expr)))
(##equal? (##source-code (##car (##source-code expr))) "noexpand")
(##pair? (##cdr (##source-code expr)))
(##null? (##cddr (##source-code expr))))
(##eval (##cadr (##source-code expr))))
(else
(##raise-error-exception
"eval expects an expression of the form (\"noexpand\" <expr>)"
(##list expr))))))
(define gensym-count 0)
(define gensym
(lambda id
(let ((n gensym-count))
(set! gensym-count (+ n 1))
(string->symbol
(string-append "%%"
(if (null? id) "" (symbol->string (car id)))
(number->string n))))))
(define gensym?
(lambda (obj)
(and (symbol? obj)
(let ((str (symbol->string obj)))
(and (> (string-length str) 2)
(string=? (substring str 0 2) "%%"))))))
(define prop-table (##make-table))
(define remprop
(lambda (sym key)
(let ((sym-key (cons sym key)))
(##table-set! prop-table sym-key))))
(define putprop
(lambda (sym key val)
(let ((sym-key (cons sym key)))
(##table-set! prop-table sym-key val))))
(define getprop
(lambda (sym key)
(let ((sym-key (cons sym key)))
(##table-ref prop-table sym-key #f))))
(define list*
(lambda (arg1 . other-args)
(define (fix lst)
(if (null? (cdr lst))
(car lst)
(cons (car lst) (fix (cdr lst)))))
(fix (cons arg1 other-args))))
(define remq
(lambda (obj lst)
(cond ((null? lst)
'())
((eq? (car lst) obj)
(remq obj (cdr lst)))
(else
(cons (car lst) (remq obj (cdr lst)))))))
;;;----------------------------------------------------------------------------
;; These initial definitions are needed because these variables are
;; mutated with a "set!" without a prior definition.
(define $sc-put-cte #f)
(define sc-expand (lambda (src) src)) ; temporary definition
(define $make-environment #f)
(define environment? #f)
(define interaction-environment #f)
(define identifier? #f)
(define syntax->list #f)
(define syntax->vector #f)
(define syntax-object->datum #f)
(define datum->syntax-object #f)
(define generate-temporaries #f)
(define free-identifier=? #f)
(define bound-identifier=? #f)
(define literal-identifier=? #f)
(define syntax-error #f)
(define $syntax-dispatch #f)
;;;----------------------------------------------------------------------------
;;; Interface to Gambit's source code annotations.
(define annotation?
(lambda (x)
;; (pp `(annotation? ,x))
(##source? x)))
(define annotation-expression
(lambda (x)
;; (pp `(annotation-expression ,x))
(##source-code x)))
(define annotation-stripped
(lambda (x)
;; (pp `(annotation-stripped ,x))
(##desourcify x)))
(define build-source
(lambda (ae x)
;; (pp `(build-source ,ae ,x))
(if (##source? ae)
(##make-source x (##source-locat ae))
(##make-source x #f))))
(define build-params
(lambda (ae vars)
(define fix
(lambda (vars)
(cond ((null? vars)
'())
((pair? vars)
(cons (build-source ae (car vars))
(fix (cdr vars))))
(else
(build-source ae vars)))))
(if (or (null? vars) (pair? vars))
(build-source ae (fix vars))
(fix vars))))
(define attach-source
(lambda (ae datum)
;; (pp `(attach-source ,ae ,datum))
(let ((src
(if (##source? ae)
ae
(##make-source ae #f))))
(define (datum->source x)
(##make-source (cond ((pair? x)
(list-convert x))
((box? x)
(box (datum->source (unbox x))))
((vector? x)
(vector-convert x))
(else
x))
(##source-locat src)))
(define (list-convert lst)
(cons (datum->source (car lst))
(list-tail-convert (cdr lst))))
(define (list-tail-convert lst)
(cond ((pair? lst)
(if (quoting-form? lst)
(datum->source lst)
(cons (datum->source (car lst))
(list-tail-convert (cdr lst)))))
((null? lst)
'())
(else
(datum->source lst))))
(define (quoting-form? x)
(let ((first (car x))
(rest (cdr x)))
(and (pair? rest)
(null? (cdr rest))
(or (eq? first 'quote)
(eq? first 'quasiquote)
(eq? first 'unquote)
(eq? first 'unquote-splicing)))))
(define (vector-convert vect)
(let* ((len (vector-length vect))
(v (make-vector len)))
(let loop ((i (- len 1)))
(if (>= i 0)
(begin
(vector-set! v i (datum->source (vector-ref vect i)))
(loop (- i 1)))))
v))
(datum->source datum))))
;;;----------------------------------------------------------------------------
(define self-eval?
(lambda (x)
(or (number? x)
(string? x)
(char? x)
(keyword? x)
(memq x
'(#f
#t
#!eof
#!void
#!unbound
#!unbound2
#!optional
#!rest
#!key)))))
;;;============================================================================
(begin
((lambda ()
(letrec ((%%noexpand62 "noexpand")
(%%make-syntax-object63
(lambda (%%expression460 %%wrap461)
(vector 'syntax-object %%expression460 %%wrap461)))
(%%syntax-object?64
(lambda (%%x462)
(if (vector? %%x462)
(if (= (vector-length %%x462) 3)
(eq? (vector-ref %%x462 0) 'syntax-object)
#f)
#f)))
(%%syntax-object-expression65
(lambda (%%x463) (vector-ref %%x463 1)))
(%%syntax-object-wrap66 (lambda (%%x464) (vector-ref %%x464 2)))
(%%set-syntax-object-expression!67
(lambda (%%x465 %%update466)
(vector-set! %%x465 1 %%update466)))
(%%set-syntax-object-wrap!68
(lambda (%%x467 %%update468)
(vector-set! %%x467 2 %%update468)))
(%%top-level-eval-hook69
(lambda (%%x469) (eval (list %%noexpand62 %%x469))))
(%%local-eval-hook70
(lambda (%%x470) (eval (list %%noexpand62 %%x470))))
(%%define-top-level-value-hook71
(lambda (%%sym471 %%val472)
(%%top-level-eval-hook69
(build-source
#f
(list (build-source #f 'define)
(build-source #f %%sym471)
((lambda (%%x473)
(if (self-eval? %%val472)
%%x473
(build-source
#f
(list (build-source #f 'quote) %%x473))))
(attach-source #f %%val472)))))))
(%%put-cte-hook72
(lambda (%%symbol474 %%val475)
($sc-put-cte %%symbol474 %%val475 '*top*)))
(%%get-global-definition-hook73
(lambda (%%symbol476) (getprop %%symbol476 '*sc-expander*)))
(%%put-global-definition-hook74
(lambda (%%symbol477 %%x478)
(if (not %%x478)
(remprop %%symbol477 '*sc-expander*)
(putprop %%symbol477 '*sc-expander* %%x478))))
(%%read-only-binding?75 (lambda (%%symbol479) #f))
(%%get-import-binding76
(lambda (%%symbol480 %%token481)
(getprop %%symbol480 %%token481)))
(%%update-import-binding!77
(lambda (%%symbol482 %%token483 %%p484)
((lambda (%%x485)
(if (not %%x485)
(remprop %%symbol482 %%token483)
(putprop %%symbol482 %%token483 %%x485)))
(%%p484 (%%get-import-binding76 %%symbol482 %%token483)))))
(%%generate-id78
((lambda (%%digits486)
((lambda (%%base487 %%session-key488)
(letrec ((%%make-digit489
(lambda (%%x491)
(string-ref %%digits486 %%x491)))
(%%fmt490
(lambda (%%n492)
((letrec ((%%fmt493
(lambda (%%n494 %%a495)
(if (< %%n494 %%base487)
(list->string
(cons (%%make-digit489
%%n494)
%%a495))
((lambda (%%r496 %%rest497)
(%%fmt493
%%rest497
(cons (%%make-digit489
%%r496)
%%a495)))
(modulo %%n494 %%base487)
(quotient
%%n494
%%base487))))))
%%fmt493)
%%n492
'()))))
((lambda (%%n498)
(lambda (%%name499)
(begin
(set! %%n498 (+ %%n498 1))
(string->symbol
(string-append
%%session-key488
(%%fmt490 %%n498))))))
-1)))
(string-length %%digits486)
"_"))
"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!$%&*/:<=>?~_^.+-"))
(%%built-lambda?152
(lambda (%%x500)
((lambda (%%t501)
(if %%t501
%%t501
(if (##source? %%x500)
(if (pair? (##source-code %%x500))
(if (##source? (car (##source-code %%x500)))
(eq? (##source-code
(car (##source-code %%x500)))
'lambda)
#f)
#f)
#f)))
(if (pair? %%x500) (eq? (car %%x500) 'lambda) #f))))
(%%build-sequence170
(lambda (%%ae502 %%exps503)
((letrec ((%%loop504
(lambda (%%exps505)
(if (null? (cdr %%exps505))
(car %%exps505)
(if ((lambda (%%x506)
((lambda (%%t507)
(if %%t507
%%t507
(if (##source? %%x506)
(if (pair? (##source-code
%%x506))
(if (##source?
(car (##source-code
%%x506)))
(if (eq? (##source-code
(car (##source-code
%%x506)))
'void)
(null? (cdr (##source-code
%%x506)))
#f)
#f)
#f)
#f)))
(equal? %%x506 '(void))))
(car %%exps505))
(%%loop504 (cdr %%exps505))
(build-source
%%ae502
(cons (build-source %%ae502 'begin)
%%exps505)))))))
%%loop504)
%%exps503)))
(%%build-letrec171
(lambda (%%ae508 %%vars509 %%val-exps510 %%body-exp511)
(if (null? %%vars509)
%%body-exp511
(build-source
%%ae508
(list (build-source %%ae508 'letrec)
(build-source
%%ae508
(map (lambda (%%var512 %%val513)
(build-source
%%ae508
(list (build-source %%ae508 %%var512)
%%val513)))
%%vars509
%%val-exps510))
%%body-exp511)))))
(%%build-body172
(lambda (%%ae514 %%vars515 %%val-exps516 %%body-exp517)
(%%build-letrec171
%%ae514
%%vars515
%%val-exps516
%%body-exp517)))
(%%build-top-module173
(lambda (%%ae518
%%types519
%%vars520
%%val-exps521
%%body-exp522)
(call-with-values
(lambda ()
((letrec ((%%f523 (lambda (%%types524 %%vars525)
(if (null? %%types524)
(values '() '() '())
((lambda (%%var526)
(call-with-values
(lambda ()
(%%f523 (cdr %%types524)
(cdr %%vars525)))
(lambda (%%vars527
%%defns528
%%sets529)
(if (eq? (car %%types524)
'global)
((lambda (%%x530)
(values (cons %%x530
%%vars527)
(cons (build-source
#f
(list (build-source
#f
'define)
(build-source
#f
%%var526)
(%%chi-void453)))
%%defns528)
(cons (build-source
#f
(list (build-source
#f
'set!)
(build-source
#f
%%var526)
(build-source
#f
%%x530)))
%%sets529)))
(gensym %%var526))
(values (cons %%var526
%%vars527)
%%defns528
%%sets529)))))
(car %%vars525))))))
%%f523)
%%types519
%%vars520))
(lambda (%%vars531 %%defns532 %%sets533)
(if (null? %%defns532)
(%%build-letrec171
%%ae518
%%vars531
%%val-exps521
%%body-exp522)
(%%build-sequence170
#f
(append %%defns532
(list (%%build-letrec171
%%ae518
%%vars531
%%val-exps521
(%%build-sequence170
#f
(append %%sets533
(list %%body-exp522))))))))))))
(%%sanitize-binding206
(lambda (%%b534)
(if (procedure? %%b534)
(cons 'macro %%b534)
(if (%%binding?220 %%b534)
(if ((lambda (%%t535)
(if (memv %%t535 '(core macro macro! deferred))
(procedure? (%%binding-value217 %%b534))
(if (memv %%t535 '($module))
(%%interface?387
(%%binding-value217 %%b534))
(if (memv %%t535 '(lexical))
#f
(if (memv %%t535
'(global meta-variable))
(symbol? (%%binding-value217
%%b534))
(if (memv %%t535 '(syntax))
((lambda (%%x536)
(if (pair? %%x536)
(if #f
((lambda (%%n537)
(if (integer?
%%n537)
(if (exact? %%n537)
(>= %%n537
0)
#f)
#f))
(cdr %%x536))
#f)
#f))
(%%binding-value217
%%b534))
(if (memv %%t535
'(begin
define
define-syntax
set!
$module-key
$import
eval-when
meta))
(null? (%%binding-value217
%%b534))
(if (memv %%t535
'(local-syntax))
(boolean?
(%%binding-value217
%%b534))
(if (memv %%t535
'(displaced-lexical))
(eq? (%%binding-value217
%%b534)
#f)
#t)))))))))
(%%binding-type216 %%b534))
%%b534
#f)
#f))))
(%%binding-type216 car)
(%%binding-value217 cdr)
(%%set-binding-type!218 set-car!)
(%%set-binding-value!219 set-cdr!)
(%%binding?220
(lambda (%%x538) (if (pair? %%x538) (symbol? (car %%x538)) #f)))
(%%extend-env230
(lambda (%%label539 %%binding540 %%r541)
(cons (cons %%label539 %%binding540) %%r541)))
(%%extend-env*231
(lambda (%%labels542 %%bindings543 %%r544)
(if (null? %%labels542)
%%r544
(%%extend-env*231
(cdr %%labels542)
(cdr %%bindings543)
(%%extend-env230
(car %%labels542)
(car %%bindings543)
%%r544)))))
(%%extend-var-env*232
(lambda (%%labels545 %%vars546 %%r547)
(if (null? %%labels545)
%%r547
(%%extend-var-env*232
(cdr %%labels545)
(cdr %%vars546)
(%%extend-env230
(car %%labels545)
(cons 'lexical (car %%vars546))
%%r547)))))
(%%displaced-lexical?233
(lambda (%%id548 %%r549)
((lambda (%%n550)
(if %%n550
((lambda (%%b551)
(eq? (%%binding-type216 %%b551) 'displaced-lexical))
(%%lookup236 %%n550 %%r549))
#f))
(%%id-var-name369 %%id548 '(())))))
(%%displaced-lexical-error234
(lambda (%%id552)
(syntax-error
%%id552
(if (%%id-var-name369 %%id552 '(()))
"identifier out of context"
"identifier not visible"))))
(%%lookup*235
(lambda (%%x553 %%r554)
((lambda (%%t555)
(if %%t555
(cdr %%t555)
(if (symbol? %%x553)
((lambda (%%t556)
(if %%t556 %%t556 (cons 'global %%x553)))
(%%get-global-definition-hook73 %%x553))
'(displaced-lexical . #f))))
(assq %%x553 %%r554))))
(%%lookup236
(lambda (%%x557 %%r558)
(letrec ((%%whack-binding!559
(lambda (%%b560 %%*b561)
(begin
(%%set-binding-type!218
%%b560
(%%binding-type216 %%*b561))
(%%set-binding-value!219
%%b560
(%%binding-value217 %%*b561))))))
((lambda (%%b562)
(begin
(if (eq? (%%binding-type216 %%b562) 'deferred)
(%%whack-binding!559
%%b562
(%%make-transformer-binding237
((%%binding-value217 %%b562))))
(void))
%%b562))
(%%lookup*235 %%x557 %%r558)))))
(%%make-transformer-binding237
(lambda (%%b563)
((lambda (%%t564)
(if %%t564
%%t564
(syntax-error %%b563 "invalid transformer")))
(%%sanitize-binding206 %%b563))))
(%%defer-or-eval-transformer238
(lambda (%%eval565 %%x566)
(if (%%built-lambda?152 %%x566)
(cons 'deferred (lambda () (%%eval565 %%x566)))
(%%make-transformer-binding237 (%%eval565 %%x566)))))
(%%global-extend239
(lambda (%%type567 %%sym568 %%val569)
(%%put-cte-hook72 %%sym568 (cons %%type567 %%val569))))
(%%nonsymbol-id?240
(lambda (%%x570)
(if (%%syntax-object?64 %%x570)
(symbol? ((lambda (%%e571)
(if (annotation? %%e571)
(annotation-expression %%e571)
%%e571))
(%%syntax-object-expression65 %%x570)))
#f)))
(%%id?241
(lambda (%%x572)
(if (symbol? %%x572)
#t
(if (%%syntax-object?64 %%x572)
(symbol? ((lambda (%%e573)
(if (annotation? %%e573)
(annotation-expression %%e573)
%%e573))
(%%syntax-object-expression65 %%x572)))
(if (annotation? %%x572)
(symbol? (annotation-expression %%x572))
#f)))))
(%%id-marks247
(lambda (%%id574)
(if (%%syntax-object?64 %%id574)
(%%wrap-marks251 (%%syntax-object-wrap66 %%id574))
(%%wrap-marks251 '((top))))))
(%%id-subst248
(lambda (%%id575)
(if (%%syntax-object?64 %%id575)
(%%wrap-subst252 (%%syntax-object-wrap66 %%id575))
(%%wrap-marks251 '((top))))))
(%%id-sym-name&marks249
(lambda (%%x576 %%w577)
(if (%%syntax-object?64 %%x576)
(values ((lambda (%%e578)
(if (annotation? %%e578)
(annotation-expression %%e578)
%%e578))
(%%syntax-object-expression65 %%x576))
(%%join-marks358
(%%wrap-marks251 %%w577)
(%%wrap-marks251
(%%syntax-object-wrap66 %%x576))))
(values ((lambda (%%e579)
(if (annotation? %%e579)
(annotation-expression %%e579)
%%e579))
%%x576)
(%%wrap-marks251 %%w577)))))
(%%make-wrap250 cons)
(%%wrap-marks251 car)
(%%wrap-subst252 cdr)
(%%make-indirect-label290
(lambda (%%label580) (vector 'indirect-label %%label580)))
(%%indirect-label?291
(lambda (%%x581)
(if (vector? %%x581)
(if (= (vector-length %%x581) 2)
(eq? (vector-ref %%x581 0) 'indirect-label)
#f)
#f)))
(%%indirect-label-label292
(lambda (%%x582) (vector-ref %%x582 1)))
(%%set-indirect-label-label!293
(lambda (%%x583 %%update584)
(vector-set! %%x583 1 %%update584)))
(%%gen-indirect-label294
(lambda () (%%make-indirect-label290 (%%gen-label297))))
(%%get-indirect-label295
(lambda (%%x585) (%%indirect-label-label292 %%x585)))
(%%set-indirect-label!296
(lambda (%%x586 %%v587)
(%%set-indirect-label-label!293 %%x586 %%v587)))
(%%gen-label297 (lambda () (string #\i)))
(%%label?298
(lambda (%%x588)
((lambda (%%t589)
(if %%t589
%%t589
((lambda (%%t590)
(if %%t590 %%t590 (%%indirect-label?291 %%x588)))
(symbol? %%x588))))
(string? %%x588))))
(%%gen-labels299
(lambda (%%ls591)
(if (null? %%ls591)
'()
(cons (%%gen-label297) (%%gen-labels299 (cdr %%ls591))))))
(%%make-ribcage300
(lambda (%%symnames592 %%marks593 %%labels594)
(vector 'ribcage %%symnames592 %%marks593 %%labels594)))
(%%ribcage?301
(lambda (%%x595)
(if (vector? %%x595)
(if (= (vector-length %%x595) 4)
(eq? (vector-ref %%x595 0) 'ribcage)
#f)
#f)))
(%%ribcage-symnames302 (lambda (%%x596) (vector-ref %%x596 1)))
(%%ribcage-marks303 (lambda (%%x597) (vector-ref %%x597 2)))
(%%ribcage-labels304 (lambda (%%x598) (vector-ref %%x598 3)))
(%%set-ribcage-symnames!305
(lambda (%%x599 %%update600)
(vector-set! %%x599 1 %%update600)))
(%%set-ribcage-marks!306
(lambda (%%x601 %%update602)
(vector-set! %%x601 2 %%update602)))
(%%set-ribcage-labels!307
(lambda (%%x603 %%update604)
(vector-set! %%x603 3 %%update604)))
(%%make-top-ribcage308
(lambda (%%key605 %%mutable?606)
(vector 'top-ribcage %%key605 %%mutable?606)))
(%%top-ribcage?309
(lambda (%%x607)
(if (vector? %%x607)
(if (= (vector-length %%x607) 3)
(eq? (vector-ref %%x607 0) 'top-ribcage)
#f)
#f)))
(%%top-ribcage-key310 (lambda (%%x608) (vector-ref %%x608 1)))
(%%top-ribcage-mutable?311
(lambda (%%x609) (vector-ref %%x609 2)))
(%%set-top-ribcage-key!312
(lambda (%%x610 %%update611)
(vector-set! %%x610 1 %%update611)))
(%%set-top-ribcage-mutable?!313
(lambda (%%x612 %%update613)
(vector-set! %%x612 2 %%update613)))
(%%make-import-interface314
(lambda (%%interface614 %%new-marks615)
(vector 'import-interface %%interface614 %%new-marks615)))
(%%import-interface?315
(lambda (%%x616)
(if (vector? %%x616)
(if (= (vector-length %%x616) 3)
(eq? (vector-ref %%x616 0) 'import-interface)
#f)
#f)))
(%%import-interface-interface316
(lambda (%%x617) (vector-ref %%x617 1)))
(%%import-interface-new-marks317
(lambda (%%x618) (vector-ref %%x618 2)))
(%%set-import-interface-interface!318
(lambda (%%x619 %%update620)
(vector-set! %%x619 1 %%update620)))
(%%set-import-interface-new-marks!319
(lambda (%%x621 %%update622)
(vector-set! %%x621 2 %%update622)))
(%%make-env320
(lambda (%%top-ribcage623 %%wrap624)
(vector 'env %%top-ribcage623 %%wrap624)))
(%%env?321
(lambda (%%x625)
(if (vector? %%x625)
(if (= (vector-length %%x625) 3)
(eq? (vector-ref %%x625 0) 'env)
#f)
#f)))
(%%env-top-ribcage322 (lambda (%%x626) (vector-ref %%x626 1)))
(%%env-wrap323 (lambda (%%x627) (vector-ref %%x627 2)))
(%%set-env-top-ribcage!324
(lambda (%%x628 %%update629)
(vector-set! %%x628 1 %%update629)))
(%%set-env-wrap!325
(lambda (%%x630 %%update631)
(vector-set! %%x630 2 %%update631)))
(%%anti-mark335
(lambda (%%w632)
(%%make-wrap250
(cons #f (%%wrap-marks251 %%w632))
(cons 'shift (%%wrap-subst252 %%w632)))))
(%%barrier-marker340 #f)
(%%extend-ribcage!345
(lambda (%%ribcage633 %%id634 %%label635)
(begin
(%%set-ribcage-symnames!305
%%ribcage633
(cons ((lambda (%%e636)
(if (annotation? %%e636)
(annotation-expression %%e636)
%%e636))
(%%syntax-object-expression65 %%id634))
(%%ribcage-symnames302 %%ribcage633)))
(%%set-ribcage-marks!306
%%ribcage633
(cons (%%wrap-marks251 (%%syntax-object-wrap66 %%id634))
(%%ribcage-marks303 %%ribcage633)))
(%%set-ribcage-labels!307
%%ribcage633
(cons %%label635 (%%ribcage-labels304 %%ribcage633))))))
(%%import-extend-ribcage!346
(lambda (%%ribcage637 %%new-marks638 %%id639 %%label640)
(begin
(%%set-ribcage-symnames!305
%%ribcage637
(cons ((lambda (%%e641)
(if (annotation? %%e641)
(annotation-expression %%e641)
%%e641))
(%%syntax-object-expression65 %%id639))
(%%ribcage-symnames302 %%ribcage637)))
(%%set-ribcage-marks!306
%%ribcage637
(cons (%%join-marks358
%%new-marks638
(%%wrap-marks251 (%%syntax-object-wrap66 %%id639)))
(%%ribcage-marks303 %%ribcage637)))
(%%set-ribcage-labels!307
%%ribcage637
(cons %%label640 (%%ribcage-labels304 %%ribcage637))))))
(%%extend-ribcage-barrier!347
(lambda (%%ribcage642 %%killer-id643)
(%%extend-ribcage-barrier-help!348
%%ribcage642
(%%syntax-object-wrap66 %%killer-id643))))
(%%extend-ribcage-barrier-help!348
(lambda (%%ribcage644 %%wrap645)
(begin
(%%set-ribcage-symnames!305
%%ribcage644
(cons %%barrier-marker340
(%%ribcage-symnames302 %%ribcage644)))
(%%set-ribcage-marks!306
%%ribcage644
(cons (%%wrap-marks251 %%wrap645)
(%%ribcage-marks303 %%ribcage644))))))
(%%extend-ribcage-subst!349
(lambda (%%ribcage646 %%import-iface647)
(%%set-ribcage-symnames!305
%%ribcage646
(cons %%import-iface647
(%%ribcage-symnames302 %%ribcage646)))))
(%%lookup-import-binding-name350
(lambda (%%sym648 %%marks649 %%token650 %%new-marks651)
((lambda (%%new652)
(if %%new652
((letrec ((%%f653 (lambda (%%new654)
(if (pair? %%new654)
((lambda (%%t655)
(if %%t655
%%t655
(%%f653 (cdr %%new654))))
(%%f653 (car %%new654)))
(if (symbol? %%new654)
(if (%%same-marks?360
%%marks649
(%%join-marks358
%%new-marks651
(%%wrap-marks251
'((top)))))
%%new654
#f)
(if (%%same-marks?360
%%marks649
(%%join-marks358
%%new-marks651
(%%wrap-marks251
(%%syntax-object-wrap66
%%new654))))
%%new654
#f))))))
%%f653)
%%new652)
#f))
(%%get-import-binding76 %%sym648 %%token650))))
(%%store-import-binding351
(lambda (%%id656 %%token657 %%new-marks658)
(letrec ((%%cons-id659
(lambda (%%id661 %%x662)
(if (not %%x662) %%id661 (cons %%id661 %%x662))))
(%%weed660
(lambda (%%marks663 %%x664)
(if (pair? %%x664)
(if (%%same-marks?360
(%%id-marks247 (car %%x664))
%%marks663)
(%%weed660 %%marks663 (cdr %%x664))
(%%cons-id659
(car %%x664)
(%%weed660 %%marks663 (cdr %%x664))))
(if %%x664
(if (not (%%same-marks?360
(%%id-marks247 %%x664)
%%marks663))
%%x664
#f)
#f)))))
((lambda (%%id665)
((lambda (%%sym666)
(if (not (eq? %%id665 %%sym666))
((lambda (%%marks667)
(%%update-import-binding!77
%%sym666
%%token657
(lambda (%%old-binding668)
((lambda (%%x669)
(%%cons-id659
(if (%%same-marks?360
%%marks667
(%%wrap-marks251 '((top))))
(%%resolved-id-var-name355 %%id665)
%%id665)
%%x669))
(%%weed660 %%marks667 %%old-binding668)))))
(%%id-marks247 %%id665))
(void)))
((lambda (%%x670)
((lambda (%%e671)
(if (annotation? %%e671)
(annotation-expression %%e671)
%%e671))
(if (%%syntax-object?64 %%x670)
(%%syntax-object-expression65 %%x670)
%%x670)))
%%id665)))
(if (null? %%new-marks658)
%%id656
(%%make-syntax-object63
((lambda (%%x672)
((lambda (%%e673)
(if (annotation? %%e673)
(annotation-expression %%e673)
%%e673))
(if (%%syntax-object?64 %%x672)
(%%syntax-object-expression65 %%x672)
%%x672)))
%%id656)
(%%make-wrap250
(%%join-marks358
%%new-marks658
(%%id-marks247 %%id656))
(%%id-subst248 %%id656))))))))
(%%make-binding-wrap352
(lambda (%%ids674 %%labels675 %%w676)
(if (null? %%ids674)
%%w676
(%%make-wrap250
(%%wrap-marks251 %%w676)
(cons ((lambda (%%labelvec677)
((lambda (%%n678)
((lambda (%%symnamevec679 %%marksvec680)
(begin
((letrec ((%%f681 (lambda (%%ids682
%%i683)
(if (not (null? %%ids682))
(call-with-values
(lambda ()
(%%id-sym-name&marks249
(car %%ids682)
%%w676))
(lambda (%%symname684
%%marks685)
(begin
(vector-set!
%%symnamevec679
%%i683
%%symname684)
(vector-set!
%%marksvec680
%%i683
%%marks685)
(%%f681 (cdr %%ids682)
(fx+ %%i683
1)))))
(void)))))
%%f681)
%%ids674
0)
(%%make-ribcage300
%%symnamevec679
%%marksvec680
%%labelvec677)))
(make-vector %%n678)
(make-vector %%n678)))
(vector-length %%labelvec677)))
(list->vector %%labels675))
(%%wrap-subst252 %%w676))))))
(%%make-resolved-id353
(lambda (%%fromsym686 %%marks687 %%tosym688)
(%%make-syntax-object63
%%fromsym686
(%%make-wrap250
%%marks687
(list (%%make-ribcage300
(vector %%fromsym686)
(vector %%marks687)
(vector %%tosym688)))))))
(%%id->resolved-id354
(lambda (%%id689)
(call-with-values
(lambda () (%%id-var-name&marks367 %%id689 '(())))
(lambda (%%tosym690 %%marks691)
(begin
(if (not %%tosym690)
(syntax-error
%%id689
"identifier not visible for export")
(void))
(%%make-resolved-id353
((lambda (%%x692)
((lambda (%%e693)
(if (annotation? %%e693)
(annotation-expression %%e693)
%%e693))
(if (%%syntax-object?64 %%x692)
(%%syntax-object-expression65 %%x692)
%%x692)))
%%id689)
%%marks691
%%tosym690))))))
(%%resolved-id-var-name355
(lambda (%%id694)
(vector-ref
(%%ribcage-labels304
(car (%%wrap-subst252 (%%syntax-object-wrap66 %%id694))))
0)))
(%%smart-append356
(lambda (%%m1695 %%m2696)
(if (null? %%m2696) %%m1695 (append %%m1695 %%m2696))))
(%%join-wraps357
(lambda (%%w1697 %%w2698)
((lambda (%%m1699 %%s1700)
(if (null? %%m1699)
(if (null? %%s1700)
%%w2698
(%%make-wrap250
(%%wrap-marks251 %%w2698)
(%%join-subst359
%%s1700
(%%wrap-subst252 %%w2698))))
(%%make-wrap250
(%%join-marks358 %%m1699 (%%wrap-marks251 %%w2698))
(%%join-subst359 %%s1700 (%%wrap-subst252 %%w2698)))))
(%%wrap-marks251 %%w1697)
(%%wrap-subst252 %%w1697))))
(%%join-marks358
(lambda (%%m1701 %%m2702) (%%smart-append356 %%m1701 %%m2702)))
(%%join-subst359
(lambda (%%s1703 %%s2704) (%%smart-append356 %%s1703 %%s2704)))
(%%same-marks?360
(lambda (%%x705 %%y706)
((lambda (%%t707)
(if %%t707
%%t707
(if (not (null? %%x705))
(if (not (null? %%y706))
(if (eq? (car %%x705) (car %%y706))
(%%same-marks?360
(cdr %%x705)
(cdr %%y706))
#f)
#f)
#f)))
(eq? %%x705 %%y706))))
(%%diff-marks361
(lambda (%%m1708 %%m2709)
((lambda (%%n1710 %%n2711)
((letrec ((%%f712 (lambda (%%n1713 %%m1714)
(if (> %%n1713 %%n2711)
(cons (car %%m1714)
(%%f712 (- %%n1713 1)
(cdr %%m1714)))
(if (equal? %%m1714 %%m2709)
'()
(error "internal error in diff-marks"
%%m1714
%%m2709))))))
%%f712)
%%n1710
%%m1708))
(length %%m1708)
(length %%m2709))))
(%%leave-implicit?362
(lambda (%%token715) (eq? %%token715 '*top*)))
(%%new-binding363
(lambda (%%sym716 %%marks717 %%token718)
((lambda (%%loc719)
((lambda (%%id720)
(begin
(%%store-import-binding351 %%id720 %%token718 '())
(values %%loc719 %%id720)))
(%%make-resolved-id353 %%sym716 %%marks717 %%loc719)))
(if (if (%%leave-implicit?362 %%token718)
(%%same-marks?360
%%marks717
(%%wrap-marks251 '((top))))
#f)
%%sym716
(%%generate-id78 %%sym716)))))
(%%top-id-bound-var-name364
(lambda (%%sym721 %%marks722 %%top-ribcage723)
((lambda (%%token724)
((lambda (%%t725)
(if %%t725
((lambda (%%id726)
(if (symbol? %%id726)
(if (%%read-only-binding?75 %%id726)
(%%new-binding363
%%sym721
%%marks722
%%token724)
(values %%id726
(%%make-resolved-id353
%%sym721
%%marks722
%%id726)))
(values (%%resolved-id-var-name355 %%id726)
%%id726)))
%%t725)
(%%new-binding363 %%sym721 %%marks722 %%token724)))
(%%lookup-import-binding-name350
%%sym721
%%marks722
%%token724
'())))
(%%top-ribcage-key310 %%top-ribcage723))))
(%%top-id-free-var-name365
(lambda (%%sym727 %%marks728 %%top-ribcage729)
((lambda (%%token730)
((lambda (%%t731)
(if %%t731
((lambda (%%id732)
(if (symbol? %%id732)
%%id732
(%%resolved-id-var-name355 %%id732)))
%%t731)
(if (if (%%top-ribcage-mutable?311 %%top-ribcage729)
(%%same-marks?360
%%marks728
(%%wrap-marks251 '((top))))
#f)
(call-with-values
(lambda ()
(%%new-binding363
%%sym727
(%%wrap-marks251 '((top)))
%%token730))
(lambda (%%sym733 %%id734) %%sym733))
#f)))
(%%lookup-import-binding-name350
%%sym727
%%marks728
%%token730
'())))
(%%top-ribcage-key310 %%top-ribcage729))))
(%%id-var-name-loc&marks366
(lambda (%%id735 %%w736)
(letrec ((%%search737
(lambda (%%sym740 %%subst741 %%marks742)
(if (null? %%subst741)
(values #f %%marks742)
((lambda (%%fst743)
(if (eq? %%fst743 'shift)
(%%search737
%%sym740
(cdr %%subst741)
(cdr %%marks742))
(if (%%ribcage?301 %%fst743)
((lambda (%%symnames744)
(if (vector? %%symnames744)
(%%search-vector-rib739
%%sym740
%%subst741
%%marks742
%%symnames744
%%fst743)
(%%search-list-rib738
%%sym740
%%subst741
%%marks742
%%symnames744
%%fst743)))
(%%ribcage-symnames302 %%fst743))
(if (%%top-ribcage?309 %%fst743)
((lambda (%%t745)
(if %%t745
((lambda (%%var-name746)
(values %%var-name746
%%marks742))
%%t745)
(%%search737
%%sym740
(cdr %%subst741)
%%marks742)))
(%%top-id-free-var-name365
%%sym740
%%marks742
%%fst743))
(error "internal error in id-var-name-loc&marks: improper subst"
%%subst741)))))
(car %%subst741)))))
(%%search-list-rib738
(lambda (%%sym747
%%subst748
%%marks749
%%symnames750
%%ribcage751)
((letrec ((%%f752 (lambda (%%symnames753 %%i754)
(if (null? %%symnames753)
(%%search737
%%sym747
(cdr %%subst748)
%%marks749)
((lambda (%%x755)
(if (if (eq? %%x755
%%sym747)
(%%same-marks?360
%%marks749
(list-ref
(%%ribcage-marks303
%%ribcage751)
%%i754))
#f)
(values (list-ref
(%%ribcage-labels304
%%ribcage751)
%%i754)
%%marks749)
(if (%%import-interface?315
%%x755)
((lambda (%%iface756
%%new-marks757)
((lambda (%%t758)
(if %%t758
((lambda (%%token759)
((lambda (%%t760)
(if %%t760
((lambda (%%id761)
(values (if (symbol? %%id761)
%%id761
(%%resolved-id-var-name355
%%id761))
%%marks749))
%%t760)
(%%f752 (cdr %%symnames753)
%%i754)))
(%%lookup-import-binding-name350
%%sym747
%%marks749
%%token759
%%new-marks757)))
%%t758)
((lambda (%%ie762)
((lambda (%%n763)
((lambda ()
((letrec ((%%g764 (lambda (%%j765)
(if (fx= %%j765
%%n763)
(%%f752 (cdr %%symnames753)
%%i754)
((lambda (%%id766)
((lambda (%%id.sym767
%%id.marks768)
(if (%%help-bound-id=?372
%%id.sym767
%%id.marks768
%%sym747
%%marks749)
(values (%%lookup-import-label441
%%id766)
%%marks749)
(%%g764 (fx+ %%j765
1))))
((lambda (%%x769)
((lambda (%%e770)
(if (annotation?
%%e770)
(annotation-expression
%%e770)
%%e770))
(if (%%syntax-object?64
%%x769)
(%%syntax-object-expression65
%%x769)
%%x769)))
%%id766)
(%%join-marks358
%%new-marks757
(%%id-marks247
%%id766))))
(vector-ref
%%ie762
%%j765))))))
%%g764)
0))))
(vector-length
%%ie762)))
(%%interface-exports389
%%iface756))))
(%%interface-token390
%%iface756)))
(%%import-interface-interface316
%%x755)
(%%import-interface-new-marks317
%%x755))
(if (if (eq? %%x755
%%barrier-marker340)
(%%same-marks?360
%%marks749
(list-ref
(%%ribcage-marks303
%%ribcage751)
%%i754))
#f)
(values #f
%%marks749)
(%%f752 (cdr %%symnames753)
(fx+ %%i754
1))))))
(car %%symnames753))))))
%%f752)
%%symnames750
0)))
(%%search-vector-rib739
(lambda (%%sym771
%%subst772
%%marks773
%%symnames774
%%ribcage775)
((lambda (%%n776)
((letrec ((%%f777 (lambda (%%i778)
(if (fx= %%i778 %%n776)
(%%search737
%%sym771
(cdr %%subst772)
%%marks773)
(if (if (eq? (vector-ref
%%symnames774
%%i778)
%%sym771)
(%%same-marks?360
%%marks773
(vector-ref
(%%ribcage-marks303
%%ribcage775)
%%i778))
#f)
(values (vector-ref
(%%ribcage-labels304
%%ribcage775)
%%i778)
%%marks773)
(%%f777 (fx+ %%i778
1)))))))
%%f777)
0))
(vector-length %%symnames774)))))
(if (symbol? %%id735)
(%%search737
%%id735
(%%wrap-subst252 %%w736)
(%%wrap-marks251 %%w736))
(if (%%syntax-object?64 %%id735)
((lambda (%%sym779 %%w1780)
(call-with-values
(lambda ()
(%%search737
%%sym779
(%%wrap-subst252 %%w736)
(%%join-marks358
(%%wrap-marks251 %%w736)
(%%wrap-marks251 %%w1780))))
(lambda (%%name781 %%marks782)
(if %%name781
(values %%name781 %%marks782)
(%%search737
%%sym779
(%%wrap-subst252 %%w1780)
%%marks782)))))
((lambda (%%e783)
(if (annotation? %%e783)
(annotation-expression %%e783)
%%e783))
(%%syntax-object-expression65 %%id735))
(%%syntax-object-wrap66 %%id735))
(if (annotation? %%id735)
(%%search737
((lambda (%%e784)
(if (annotation? %%e784)
(annotation-expression %%e784)
%%e784))
%%id735)
(%%wrap-subst252 %%w736)
(%%wrap-marks251 %%w736))
(error "(in id-var-name) invalid id"
%%id735)))))))
(%%id-var-name&marks367
(lambda (%%id785 %%w786)
(call-with-values
(lambda () (%%id-var-name-loc&marks366 %%id785 %%w786))
(lambda (%%label787 %%marks788)
(values (if (%%indirect-label?291 %%label787)
(%%get-indirect-label295 %%label787)
%%label787)
%%marks788)))))
(%%id-var-name-loc368
(lambda (%%id789 %%w790)
(call-with-values
(lambda () (%%id-var-name-loc&marks366 %%id789 %%w790))
(lambda (%%label791 %%marks792) %%label791))))
(%%id-var-name369
(lambda (%%id793 %%w794)
(call-with-values
(lambda () (%%id-var-name-loc&marks366 %%id793 %%w794))
(lambda (%%label795 %%marks796)
(if (%%indirect-label?291 %%label795)
(%%get-indirect-label295 %%label795)
%%label795)))))
(%%free-id=?370
(lambda (%%i797 %%j798)
(if (eq? ((lambda (%%x799)
((lambda (%%e800)
(if (annotation? %%e800)
(annotation-expression %%e800)
%%e800))
(if (%%syntax-object?64 %%x799)
(%%syntax-object-expression65 %%x799)
%%x799)))
%%i797)
((lambda (%%x801)
((lambda (%%e802)
(if (annotation? %%e802)
(annotation-expression %%e802)
%%e802))
(if (%%syntax-object?64 %%x801)
(%%syntax-object-expression65 %%x801)
%%x801)))
%%j798))
(eq? (%%id-var-name369 %%i797 '(()))
(%%id-var-name369 %%j798 '(())))
#f)))
(%%literal-id=?371
(lambda (%%id803 %%literal804)
(if (eq? ((lambda (%%x805)
((lambda (%%e806)
(if (annotation? %%e806)
(annotation-expression %%e806)
%%e806))
(if (%%syntax-object?64 %%x805)
(%%syntax-object-expression65 %%x805)
%%x805)))
%%id803)
((lambda (%%x807)
((lambda (%%e808)
(if (annotation? %%e808)
(annotation-expression %%e808)
%%e808))
(if (%%syntax-object?64 %%x807)
(%%syntax-object-expression65 %%x807)
%%x807)))
%%literal804))
((lambda (%%n-id809 %%n-literal810)
((lambda (%%t811)
(if %%t811
%%t811
(if ((lambda (%%t812)
(if %%t812 %%t812 (symbol? %%n-id809)))
(not %%n-id809))
((lambda (%%t813)
(if %%t813
%%t813
(symbol? %%n-literal810)))
(not %%n-literal810))
#f)))
(eq? %%n-id809 %%n-literal810)))
(%%id-var-name369 %%id803 '(()))
(%%id-var-name369 %%literal804 '(())))
#f)))
(%%help-bound-id=?372
(lambda (%%i.sym814 %%i.marks815 %%j.sym816 %%j.marks817)
(if (eq? %%i.sym814 %%j.sym816)
(%%same-marks?360 %%i.marks815 %%j.marks817)
#f)))
(%%bound-id=?373
(lambda (%%i818 %%j819)
(%%help-bound-id=?372
((lambda (%%x820)
((lambda (%%e821)
(if (annotation? %%e821)
(annotation-expression %%e821)
%%e821))
(if (%%syntax-object?64 %%x820)
(%%syntax-object-expression65 %%x820)
%%x820)))
%%i818)
(%%id-marks247 %%i818)
((lambda (%%x822)
((lambda (%%e823)
(if (annotation? %%e823)
(annotation-expression %%e823)
%%e823))
(if (%%syntax-object?64 %%x822)
(%%syntax-object-expression65 %%x822)
%%x822)))
%%j819)
(%%id-marks247 %%j819))))
(%%valid-bound-ids?374
(lambda (%%ids824)
(if ((letrec ((%%all-ids?825
(lambda (%%ids826)
((lambda (%%t827)
(if %%t827
%%t827
(if (%%id?241 (car %%ids826))
(%%all-ids?825 (cdr %%ids826))
#f)))
(null? %%ids826)))))
%%all-ids?825)
%%ids824)
(%%distinct-bound-ids?375 %%ids824)
#f)))
(%%distinct-bound-ids?375
(lambda (%%ids828)
((letrec ((%%distinct?829
(lambda (%%ids830)
((lambda (%%t831)
(if %%t831
%%t831
(if (not (%%bound-id-member?377
(car %%ids830)
(cdr %%ids830)))
(%%distinct?829 (cdr %%ids830))
#f)))
(null? %%ids830)))))
%%distinct?829)
%%ids828)))
(%%invalid-ids-error376
(lambda (%%ids832 %%exp833 %%class834)
((letrec ((%%find835
(lambda (%%ids836 %%gooduns837)
(if (null? %%ids836)
(syntax-error %%exp833)
(if (%%id?241 (car %%ids836))
(if (%%bound-id-member?377
(car %%ids836)
%%gooduns837)
(syntax-error
(car %%ids836)
"duplicate "
%%class834)
(%%find835
(cdr %%ids836)
(cons (car %%ids836) %%gooduns837)))
(syntax-error
(car %%ids836)
"invalid "
%%class834))))))
%%find835)
%%ids832
'())))
(%%bound-id-member?377
(lambda (%%x838 %%list839)
(if (not (null? %%list839))
((lambda (%%t840)
(if %%t840
%%t840
(%%bound-id-member?377 %%x838 (cdr %%list839))))
(%%bound-id=?373 %%x838 (car %%list839)))
#f)))
(%%wrap378
(lambda (%%x841 %%w842)
(if (if (null? (%%wrap-marks251 %%w842))
(null? (%%wrap-subst252 %%w842))
#f)
%%x841
(if (%%syntax-object?64 %%x841)
(%%make-syntax-object63
(%%syntax-object-expression65 %%x841)
(%%join-wraps357
%%w842
(%%syntax-object-wrap66 %%x841)))
(if (null? %%x841)
%%x841
(%%make-syntax-object63 %%x841 %%w842))))))
(%%source-wrap379
(lambda (%%x843 %%w844 %%ae845)
(%%wrap378
(if (annotation? %%ae845)
(begin
(if (not (eq? (annotation-expression %%ae845) %%x843))
(error "internal error in source-wrap: ae/x mismatch")
(void))
%%ae845)
%%x843)
%%w844)))
(%%chi-when-list380
(lambda (%%when-list846 %%w847)
(map (lambda (%%x848)
(if (%%literal-id=?371
%%x848
'#(syntax-object
compile
((top)
#(ribcage () () ())
#(ribcage #(x) #((top)) #("i"))
#(ribcage () () ())
#(ribcage
#(when-list w)
#((top) (top))
#("i" "i"))
#(ribcage
(lambda-var-list
gen-var
strip
strip*
strip-annotation
ellipsis?
chi-void
chi-local-syntax
chi-lambda-clause
parse-begin
parse-alias
parse-eval-when
parse-meta
parse-define-syntax
parse-define
parse-import
parse-module
do-import!
lookup-import-label
import-mark-delta
chi-internal
chi-body
chi-macro
chi-set!
chi-application
chi-expr
chi
chi-sequence
chi-meta-frob
chi-frobs
ct-eval/residualize3
ct-eval/residualize2
rt-eval/residualize
initial-mode-set
update-mode-set
do-top-import
vfor-each
vmap
chi-external
check-defined-ids
check-module-exports
id-set-diff
chi-top-module
set-frob-meta?!
set-frob-e!
frob-meta?
frob-e
frob?
make-frob
create-module-binding
set-module-binding-exported!
set-module-binding-val!
set-module-binding-imps!
set-module-binding-label!
set-module-binding-id!
set-module-binding-type!
module-binding-exported
module-binding-val
module-binding-imps
module-binding-label
module-binding-id
module-binding-type
module-binding?
make-module-binding
make-resolved-interface
make-unresolved-interface
set-interface-token!
set-interface-exports!
set-interface-marks!
interface-token
interface-exports
interface-marks
interface?
make-interface
flatten-exports
chi-top
chi-top-sequence
chi-top*
syntax-type
chi-when-list
source-wrap
wrap
bound-id-member?
invalid-ids-error
distinct-bound-ids?
valid-bound-ids?
bound-id=?
help-bound-id=?
literal-id=?
free-id=?
id-var-name
id-var-name-loc
id-var-name&marks
id-var-name-loc&marks
top-id-free-var-name
top-id-bound-var-name
anon
diff-marks
same-marks?
join-subst
join-marks
join-wraps
smart-append
resolved-id-var-name
id->resolved-id
make-resolved-id
make-binding-wrap
store-import-binding
lookup-import-binding-name
extend-ribcage-subst!
extend-ribcage-barrier-help!
extend-ribcage-barrier!
import-extend-ribcage!
extend-ribcage!
make-empty-ribcage
barrier-marker
new-mark
anti-mark
the-anti-mark
set-env-wrap!
set-env-top-ribcage!
env-wrap
env-top-ribcage
env?
make-env
set-import-interface-new-marks!
set-import-interface-interface!
import-interface-new-marks
import-interface-interface
import-interface?
make-import-interface
set-top-ribcage-mutable?!
set-top-ribcage-key!
top-ribcage-mutable?
top-ribcage-key
top-ribcage?
make-top-ribcage
set-ribcage-labels!
set-ribcage-marks!
set-ribcage-symnames!
ribcage-labels
ribcage-marks
ribcage-symnames
ribcage?
make-ribcage
gen-labels
label?
gen-label
set-indirect-label!
get-indirect-label
indirect-label?
gen-indirect-label
anon
only-top-marked?
top-marked?
tmp-wrap
top-wrap
empty-wrap
wrap-subst
wrap-marks
make-wrap
id-sym-name&marks
id-subst
id-marks
id-sym-name
id?
nonsymbol-id?
global-extend
defer-or-eval-transformer
make-transformer-binding
lookup
lookup*
displaced-lexical-error
displaced-lexical?
extend-var-env*
extend-env*
extend-env
null-env
binding?
set-binding-value!
set-binding-type!
binding-value
binding-type
make-binding
sanitize-binding
arg-check
no-source
unannotate
self-evaluating?
lexical-var?
build-lexical-var
build-top-module
build-body
build-letrec
build-sequence
build-data
build-primref
built-lambda?
build-lambda
build-revisit-only
build-visit-only
build-cte-install
build-global-definition
build-global-assignment
build-global-reference
build-lexical-assignment
build-lexical-reference
build-conditional
build-application
generate-id
update-import-binding!
get-import-binding
read-only-binding?
put-global-definition-hook
get-global-definition-hook
put-cte-hook
define-top-level-value-hook
local-eval-hook
top-level-eval-hook
set-syntax-object-wrap!
set-syntax-object-expression!
syntax-object-wrap
syntax-object-expression
syntax-object?
make-syntax-object
noexpand
let-values
define-structure
unless
when)
((top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
("m" top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
("m" top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top))
("i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"))
#(top-ribcage *top* #t))))
'compile
(if (%%literal-id=?371
%%x848
'#(syntax-object
load
((top)
#(ribcage () () ())
#(ribcage #(x) #((top)) #("i"))
#(ribcage () () ())
#(ribcage
#(when-list w)
#((top) (top))
#("i" "i"))
#(ribcage
(lambda-var-list
gen-var
strip
strip*
strip-annotation
ellipsis?
chi-void
chi-local-syntax
chi-lambda-clause
parse-begin
parse-alias
parse-eval-when
parse-meta
parse-define-syntax
parse-define
parse-import
parse-module
do-import!
lookup-import-label
import-mark-delta
chi-internal
chi-body
chi-macro
chi-set!
chi-application
chi-expr
chi
chi-sequence
chi-meta-frob
chi-frobs
ct-eval/residualize3
ct-eval/residualize2
rt-eval/residualize
initial-mode-set
update-mode-set
do-top-import
vfor-each
vmap
chi-external
check-defined-ids
check-module-exports
id-set-diff
chi-top-module
set-frob-meta?!
set-frob-e!
frob-meta?
frob-e
frob?
make-frob
create-module-binding
set-module-binding-exported!
set-module-binding-val!
set-module-binding-imps!
set-module-binding-label!
set-module-binding-id!
set-module-binding-type!
module-binding-exported
module-binding-val
module-binding-imps
module-binding-label
module-binding-id
module-binding-type
module-binding?
make-module-binding
make-resolved-interface
make-unresolved-interface
set-interface-token!
set-interface-exports!
set-interface-marks!
interface-token
interface-exports
interface-marks
interface?
make-interface
flatten-exports
chi-top
chi-top-sequence
chi-top*
syntax-type
chi-when-list
source-wrap
wrap
bound-id-member?
invalid-ids-error
distinct-bound-ids?
valid-bound-ids?
bound-id=?
help-bound-id=?
literal-id=?
free-id=?
id-var-name
id-var-name-loc
id-var-name&marks
id-var-name-loc&marks
top-id-free-var-name
top-id-bound-var-name
anon
diff-marks
same-marks?
join-subst
join-marks
join-wraps
smart-append
resolved-id-var-name
id->resolved-id
make-resolved-id
make-binding-wrap
store-import-binding
lookup-import-binding-name
extend-ribcage-subst!
extend-ribcage-barrier-help!
extend-ribcage-barrier!
import-extend-ribcage!
extend-ribcage!
make-empty-ribcage
barrier-marker
new-mark
anti-mark
the-anti-mark
set-env-wrap!
set-env-top-ribcage!
env-wrap
env-top-ribcage
env?
make-env
set-import-interface-new-marks!
set-import-interface-interface!
import-interface-new-marks
import-interface-interface
import-interface?
make-import-interface
set-top-ribcage-mutable?!
set-top-ribcage-key!
top-ribcage-mutable?
top-ribcage-key
top-ribcage?
make-top-ribcage
set-ribcage-labels!
set-ribcage-marks!
set-ribcage-symnames!
ribcage-labels
ribcage-marks
ribcage-symnames
ribcage?
make-ribcage
gen-labels
label?
gen-label
set-indirect-label!
get-indirect-label
indirect-label?
gen-indirect-label
anon
only-top-marked?
top-marked?
tmp-wrap
top-wrap
empty-wrap
wrap-subst
wrap-marks
make-wrap
id-sym-name&marks
id-subst
id-marks
id-sym-name
id?
nonsymbol-id?
global-extend
defer-or-eval-transformer
make-transformer-binding
lookup
lookup*
displaced-lexical-error
displaced-lexical?
extend-var-env*
extend-env*
extend-env
null-env
binding?
set-binding-value!
set-binding-type!
binding-value
binding-type
make-binding
sanitize-binding
arg-check
no-source
unannotate
self-evaluating?
lexical-var?
build-lexical-var
build-top-module
build-body
build-letrec
build-sequence
build-data
build-primref
built-lambda?
build-lambda
build-revisit-only
build-visit-only
build-cte-install
build-global-definition
build-global-assignment
build-global-reference
build-lexical-assignment
build-lexical-reference
build-conditional
build-application
generate-id
update-import-binding!
get-import-binding
read-only-binding?
put-global-definition-hook
get-global-definition-hook
put-cte-hook
define-top-level-value-hook
local-eval-hook
top-level-eval-hook
set-syntax-object-wrap!
set-syntax-object-expression!
syntax-object-wrap
syntax-object-expression
syntax-object?
make-syntax-object
noexpand
let-values
define-structure
unless
when)
((top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
("m" top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
("m" top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top))
("i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"))
#(top-ribcage *top* #t))))
'load
(if (%%literal-id=?371
%%x848
'#(syntax-object
visit
((top)
#(ribcage () () ())
#(ribcage #(x) #((top)) #("i"))
#(ribcage () () ())
#(ribcage
#(when-list w)
#((top) (top))
#("i" "i"))
#(ribcage
(lambda-var-list
gen-var
strip
strip*
strip-annotation
ellipsis?
chi-void
chi-local-syntax
chi-lambda-clause
parse-begin
parse-alias
parse-eval-when
parse-meta
parse-define-syntax
parse-define
parse-import
parse-module
do-import!
lookup-import-label
import-mark-delta
chi-internal
chi-body
chi-macro
chi-set!
chi-application
chi-expr
chi
chi-sequence
chi-meta-frob
chi-frobs
ct-eval/residualize3
ct-eval/residualize2
rt-eval/residualize
initial-mode-set
update-mode-set
do-top-import
vfor-each
vmap
chi-external
check-defined-ids
check-module-exports
id-set-diff
chi-top-module
set-frob-meta?!
set-frob-e!
frob-meta?
frob-e
frob?
make-frob
create-module-binding
set-module-binding-exported!
set-module-binding-val!
set-module-binding-imps!
set-module-binding-label!
set-module-binding-id!
set-module-binding-type!
module-binding-exported
module-binding-val
module-binding-imps
module-binding-label
module-binding-id
module-binding-type
module-binding?
make-module-binding
make-resolved-interface
make-unresolved-interface
set-interface-token!
set-interface-exports!
set-interface-marks!
interface-token
interface-exports
interface-marks
interface?
make-interface
flatten-exports
chi-top
chi-top-sequence
chi-top*
syntax-type
chi-when-list
source-wrap
wrap
bound-id-member?
invalid-ids-error
distinct-bound-ids?
valid-bound-ids?
bound-id=?
help-bound-id=?
literal-id=?
free-id=?
id-var-name
id-var-name-loc
id-var-name&marks
id-var-name-loc&marks
top-id-free-var-name
top-id-bound-var-name
anon
diff-marks
same-marks?
join-subst
join-marks
join-wraps
smart-append
resolved-id-var-name
id->resolved-id
make-resolved-id
make-binding-wrap
store-import-binding
lookup-import-binding-name
extend-ribcage-subst!
extend-ribcage-barrier-help!
extend-ribcage-barrier!
import-extend-ribcage!
extend-ribcage!
make-empty-ribcage
barrier-marker
new-mark
anti-mark
the-anti-mark
set-env-wrap!
set-env-top-ribcage!
env-wrap
env-top-ribcage
env?
make-env
set-import-interface-new-marks!
set-import-interface-interface!
import-interface-new-marks
import-interface-interface
import-interface?
make-import-interface
set-top-ribcage-mutable?!
set-top-ribcage-key!
top-ribcage-mutable?
top-ribcage-key
top-ribcage?
make-top-ribcage
set-ribcage-labels!
set-ribcage-marks!
set-ribcage-symnames!
ribcage-labels
ribcage-marks
ribcage-symnames
ribcage?
make-ribcage
gen-labels
label?
gen-label
set-indirect-label!
get-indirect-label
indirect-label?
gen-indirect-label
anon
only-top-marked?
top-marked?
tmp-wrap
top-wrap
empty-wrap
wrap-subst
wrap-marks
make-wrap
id-sym-name&marks
id-subst
id-marks
id-sym-name
id?
nonsymbol-id?
global-extend
defer-or-eval-transformer
make-transformer-binding
lookup
lookup*
displaced-lexical-error
displaced-lexical?
extend-var-env*
extend-env*
extend-env
null-env
binding?
set-binding-value!
set-binding-type!
binding-value
binding-type
make-binding
sanitize-binding
arg-check
no-source
unannotate
self-evaluating?
lexical-var?
build-lexical-var
build-top-module
build-body
build-letrec
build-sequence
build-data
build-primref
built-lambda?
build-lambda
build-revisit-only
build-visit-only
build-cte-install
build-global-definition
build-global-assignment
build-global-reference
build-lexical-assignment
build-lexical-reference
build-conditional
build-application
generate-id
update-import-binding!
get-import-binding
read-only-binding?
put-global-definition-hook
get-global-definition-hook
put-cte-hook
define-top-level-value-hook
local-eval-hook
top-level-eval-hook
set-syntax-object-wrap!
set-syntax-object-expression!
syntax-object-wrap
syntax-object-expression
syntax-object?
make-syntax-object
noexpand
let-values
define-structure
unless
when)
((top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
("m" top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
("m" top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top))
("i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"))
#(top-ribcage *top* #t))))
'visit
(if (%%literal-id=?371
%%x848
'#(syntax-object
revisit
((top)
#(ribcage () () ())
#(ribcage #(x) #((top)) #("i"))
#(ribcage () () ())
#(ribcage
#(when-list w)
#((top) (top))
#("i" "i"))
#(ribcage
(lambda-var-list
gen-var
strip
strip*
strip-annotation
ellipsis?
chi-void
chi-local-syntax
chi-lambda-clause
parse-begin
parse-alias
parse-eval-when
parse-meta
parse-define-syntax
parse-define
parse-import
parse-module
do-import!
lookup-import-label
import-mark-delta
chi-internal
chi-body
chi-macro
chi-set!
chi-application
chi-expr
chi
chi-sequence
chi-meta-frob
chi-frobs
ct-eval/residualize3
ct-eval/residualize2
rt-eval/residualize
initial-mode-set
update-mode-set
do-top-import
vfor-each
vmap
chi-external
check-defined-ids
check-module-exports
id-set-diff
chi-top-module
set-frob-meta?!
set-frob-e!
frob-meta?
frob-e
frob?
make-frob
create-module-binding
set-module-binding-exported!
set-module-binding-val!
set-module-binding-imps!
set-module-binding-label!
set-module-binding-id!
set-module-binding-type!
module-binding-exported
module-binding-val
module-binding-imps
module-binding-label
module-binding-id
module-binding-type
module-binding?
make-module-binding
make-resolved-interface
make-unresolved-interface
set-interface-token!
set-interface-exports!
set-interface-marks!
interface-token
interface-exports
interface-marks
interface?
make-interface
flatten-exports
chi-top
chi-top-sequence
chi-top*
syntax-type
chi-when-list
source-wrap
wrap
bound-id-member?
invalid-ids-error
distinct-bound-ids?
valid-bound-ids?
bound-id=?
help-bound-id=?
literal-id=?
free-id=?
id-var-name
id-var-name-loc
id-var-name&marks
id-var-name-loc&marks
top-id-free-var-name
top-id-bound-var-name
anon
diff-marks
same-marks?
join-subst
join-marks
join-wraps
smart-append
resolved-id-var-name
id->resolved-id
make-resolved-id
make-binding-wrap
store-import-binding
lookup-import-binding-name
extend-ribcage-subst!
extend-ribcage-barrier-help!
extend-ribcage-barrier!
import-extend-ribcage!
extend-ribcage!
make-empty-ribcage
barrier-marker
new-mark
anti-mark
the-anti-mark
set-env-wrap!
set-env-top-ribcage!
env-wrap
env-top-ribcage
env?
make-env
set-import-interface-new-marks!
set-import-interface-interface!
import-interface-new-marks
import-interface-interface
import-interface?
make-import-interface
set-top-ribcage-mutable?!
set-top-ribcage-key!
top-ribcage-mutable?
top-ribcage-key
top-ribcage?
make-top-ribcage
set-ribcage-labels!
set-ribcage-marks!
set-ribcage-symnames!
ribcage-labels
ribcage-marks
ribcage-symnames
ribcage?
make-ribcage
gen-labels
label?
gen-label
set-indirect-label!
get-indirect-label
indirect-label?
gen-indirect-label
anon
only-top-marked?
top-marked?
tmp-wrap
top-wrap
empty-wrap
wrap-subst
wrap-marks
make-wrap
id-sym-name&marks
id-subst
id-marks
id-sym-name
id?
nonsymbol-id?
global-extend
defer-or-eval-transformer
make-transformer-binding
lookup
lookup*
displaced-lexical-error
displaced-lexical?
extend-var-env*
extend-env*
extend-env
null-env
binding?
set-binding-value!
set-binding-type!
binding-value
binding-type
make-binding
sanitize-binding
arg-check
no-source
unannotate
self-evaluating?
lexical-var?
build-lexical-var
build-top-module
build-body
build-letrec
build-sequence
build-data
build-primref
built-lambda?
build-lambda
build-revisit-only
build-visit-only
build-cte-install
build-global-definition
build-global-assignment
build-global-reference
build-lexical-assignment
build-lexical-reference
build-conditional
build-application
generate-id
update-import-binding!
get-import-binding
read-only-binding?
put-global-definition-hook
get-global-definition-hook
put-cte-hook
define-top-level-value-hook
local-eval-hook
top-level-eval-hook
set-syntax-object-wrap!
set-syntax-object-expression!
syntax-object-wrap
syntax-object-expression
syntax-object?
make-syntax-object
noexpand
let-values
define-structure
unless
when)
((top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
("m" top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
("m" top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top)
(top))
("i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"
"i"