22022
((3) 0 () 32 ((q lib "syntax/id-table.rkt") (q lib "syntax/keyword.rkt") (q lib "syntax/id-set.rkt") (q lib "syntax/boundmap.rkt") (q lib "syntax/parse.rkt") (q lib "syntax/macro-testing.rkt") (q lib "syntax/modcollapse.rkt") (q lib "syntax/parse/experimental/reflect.rkt") (q lib "syntax/srcloc.rkt") (q lib "syntax/datum.rkt") (q lib "syntax/modcode.rkt") (q lib "syntax/toplevel.rkt") (q lib "syntax/module-reader.rkt") (q lib "syntax/stx.rkt") (q lib "syntax/parse/experimental/template.rkt") (q 43708 . 4) (q lib "syntax/location.rkt") (q lib "syntax/readerr.rkt") (q lib "syntax/context.rkt") (q lib "syntax/parse/debug.rkt") (q lib "syntax/flatten-begin.rkt") (q lib "syntax/struct.rkt") (q lib "syntax/strip-context.rkt") (q lib "syntax/parse/experimental/provide.rkt") (q lib "syntax/parse/lib/function-header.rkt") (q lib "syntax/kerncase.rkt") (q lib "syntax/parse/experimental/eh.rkt") (q lib "syntax/modread.rkt") (q lib "syntax/docprovide.rkt") (q lib "syntax/modresolve.rkt") (q lib "syntax/parse/define.rkt") (q lib "syntax/define.rkt")) () (h ! (equal) ((c def c (c (? . 0) q immutable-bound-id-table?)) q (20031 . 3)) ((c def c (c (? . 1) q check-identifier)) q (39166 . 4)) ((c def c (c (? . 0) q free-id-table-set*!)) q (16586 . 5)) ((c def c (c (? . 11) q expand-top-level-with-compile-time-evals)) q (60663 . 3)) ((q def ((lib "syntax/template.rkt") transform-template)) q (51526 . 24)) ((c def c (c (? . 2) q bound-id-set-first)) q (29216 . 3)) ((q def ((lib "syntax/intdef.rkt") internal-definition-context-track)) q (62748 . 5)) ((c def c (c (? . 29) q resolve-module-path-index)) q (44150 . 7)) ((c def c (c (? . 1) q check-stx-listof)) q (39388 . 5)) ((c form c (c (? . 4) q ~and)) q (4704 . 2)) ((c form c (c (? . 14) q template)) q (13584 . 19)) ((c def c (c (? . 0) q bound-id-table-set!)) q (20433 . 5)) ((c def c (c (? . 0) q bound-id-table-set)) q (20567 . 5)) ((c def c (c (? . 3) q bound-identifier-mapping-map)) q (32549 . 5)) ((c def c (c (? . 2) q immutable-bound-id-set?)) q (28338 . 3)) ((c def c (c (? . 0) q free-id-table-for-each)) q (18275 . 4)) ((c def c (c (? . 2) q free-id-set-remove)) q (24835 . 4)) ((c def c (c (? . 3) q bound-identifier-mapping-put!)) q (32086 . 7)) ((c form c (c (? . 4) q ~peek)) q (6631 . 2)) ((c def c (c (? . 3) q free-identifier-mapping-put!)) q (33247 . 5)) ((c def c (c (? . 0) q in-bound-id-table)) q (22359 . 3)) ((c def c (c (? . 0) q make-free-id-table)) q (15299 . 5)) ((c def c (c (? . 0) q bound-id-table-iterate-key)) q (22968 . 4)) ((c form c (c (? . 4) q attribute)) q (4645 . 2)) ((c def c (c (? . 8) q check-source-location!)) q (57713 . 4)) ((c form c (c (? . 7) q ~reflect)) q (12699 . 5)) ((c def c (c (? . 6) q collapse-module-path-index)) q (44754 . 9)) ((c def c (c (? . 3) q bound-identifier-mapping-get)) q (31737 . 8)) ((c def c (c (? . 2) q free-id-subset?)) q (26740 . 4)) ((c def c (c (? . 3) q module-identifier-mapping-get)) q (33917 . 8)) ((c form c (c (? . 9) q with-datum)) q (39855 . 3)) ((c form c (c (? . 5) q convert-compile-time-error)) q (62670 . 2)) ((c form c (c (? . 4) q ~or)) q (4716 . 2)) ((c form c (c (? . 4) q pattern)) q (4060 . 2)) ((c form c (c (? . 5) q phase1-eval)) q (62481 . 8)) ((c form c (c (? . 12) q #%module-begin)) q (54218 . 31)) ((c def c (c (? . 3) q make-module-identifier-mapping)) q (33770 . 2)) ((c def c (c (? . 2) q bound-id-set-for-each)) q (31275 . 3)) ((q def ((lib "syntax/moddep.rkt") show-import-tree)) q (45152 . 3)) ((c def c (c (? . 2) q bound-id-set-member?)) q (28570 . 4)) ((c form c (c (? . 23) q provide-syntax-class/contract)) q (11211 . 12)) ((c def c (c (? . 0) q bound-id-table-ref)) q (20102 . 5)) ((c def c (c (? . 6) q collapse-module-path)) q (44485 . 6)) ((c form c (c (? . 4) q define/syntax-parse)) q (2302 . 4)) ((c def c (c (? . 7) q reified-syntax-class-keywords)) q (12193 . 4)) ((c form c (c (? . 16) q quote-column-number)) q (60064 . 3)) ((c def c (c (? . 18) q build-expand-context)) q (45595 . 3)) ((c def c (c (? . 0) q bound-id-table-count)) q (22574 . 3)) ((c form c (c (? . 19) q debug-parse)) q (11092 . 4)) ((c def c (c (? . 0) q free-id-table-update!)) q (17144 . 9)) ((c def c (c (? . 0) q bound-id-table-remove)) q (21152 . 4)) ((c form c (c (? . 4) q ~commit)) q (4744 . 2)) ((c def c (c (? . 2) q bound-id-set->stream)) q (29457 . 3)) ((c def c (c (? . 10) q get-module-path)) q (42242 . 22)) ((c def c (c (? . 0) q mutable-bound-id-table?)) q (19962 . 3)) ((c def c (c (? . 2) q free-id-set-union)) q (25751 . 4)) ((q def ((lib "syntax/name.rkt") syntax-local-infer-name)) q (45477 . 4)) ((c def c (c (? . 4) q static)) q (9894 . 4)) ((c def c (c (? . 0) q mutable-free-id-table?)) q (15837 . 3)) ((c def c (c (? . 2) q free-id-set-add!)) q (24736 . 4)) ((c form c (c (? . 4) q ~not)) q (5386 . 2)) ((c def c (c (? . 8) q build-source-location-list)) q (57891 . 3)) ((c form c (c (? . 4) q kernel-literals)) q (10781 . 2)) ((c def c (c (? . 0) q free-id-table?)) q (15777 . 3)) ((c def c (c (? . 0) q free-id-table-ref!)) q (16160 . 5)) ((c form c (c (? . 9) q datum-case)) q (39763 . 3)) ((c def c (c (? . 10) q moddep-current-open-input-file)) q (43524 . 5)) ((c def c (c (? . 0) q free-id-table-map)) q (17885 . 4)) ((c def c (c (? . 13) q stx-pair?)) q (14422 . 3)) ((c def c (c (? . 2) q bound-id-set-remove!)) q (29112 . 4)) ((c def c (c (? . 11) q expand-syntax-top-level-with-compile-time-evals/flatten)) q (60754 . 4)) ((c def c (c (? . 0) q make-immutable-free-id-table)) q (15529 . 6)) ((c def c (c (? . 10) q struct:exn:get-module-code)) c (? . 15)) ((c def c (c (? . 2) q free-id-set-symmetric-difference!)) q (26616 . 4)) ((c def c (c (? . 0) q free-id-table-remove!)) q (16892 . 4)) ((c def c (c (? . 17) q raise-read-eof-error)) q (53747 . 13)) ((c def c (c (? . 2) q mutable-bound-id-set)) q (27748 . 5)) ((c def c (c (? . 12) q wrap-read-all)) q (56763 . 17)) ((c def c (c (? . 0) q bound-id-table-iterate-next)) q (22778 . 5)) ((c def c (c (? . 13) q stx-car)) q (14614 . 3)) ((c def c (c (? . 2) q free-id-set-rest)) q (25130 . 3)) ((c form c (c (? . 4) q ~literal)) q (5096 . 5)) ((c def c (c (? . 3) q module-identifier-mapping-put!)) q (34271 . 7)) ((c form c (c (? . 14) q ?@)) q (14223 . 2)) ((c def c (c (? . 3) q free-identifier-mapping-for-each)) q (33397 . 5)) ((q def ((lib "syntax/path-spec.rkt") resolve-path-spec)) q (51209 . 9)) ((c def c (c (? . 10) q make-exn:get-module-code)) c (? . 15)) ((c def c (c (? . 3) q free-identifier-mapping-map)) q (33605 . 4)) ((c def c (c (? . 1) q check-stx-boolean)) q (39653 . 4)) ((c def c (c (? . 0) q bound-id-table-keys)) q (22171 . 3)) ((q def ((lib "syntax/to-string.rkt") syntax->string)) q (34968 . 3)) ((c def c (c (? . 2) q free-id-set-copy)) q (25429 . 3)) ((c form c (c (? . 16) q quote-srcloc)) q (59871 . 4)) ((c def c (c (? . 4) q pattern-expander)) q (8152 . 3)) ((c form c (c (? . 4) q ~do)) q (8106 . 2)) ((q def ((lib "syntax/wrap-modbeg.rkt") make-wrapping-module-begin)) q (45242 . 6)) ((c form c (c (? . 7) q reify-syntax-class)) q (11688 . 2)) ((c def c (c (? . 2) q bound-id-proper-subset?)) q (31100 . 4)) ((c form c (c (? . 4) q ~delimit-cut)) q (4759 . 2)) ((c def c (c (? . 2) q free-id-set-for-each)) q (27046 . 4)) ((c def c (c (? . 2) q free-id-set-intersect!)) q (26118 . 4)) ((c def c (c (? . 17) q raise-read-error)) q (53057 . 15)) ((c def c (c (? . 1) q options-select-value)) q (38929 . 7)) ((c def c (c (? . 0) q free-id-table-keys)) q (18011 . 3)) ((c def c (c (? . 1) q options-select-row)) q (38698 . 7)) ((c def c (c (? . 20) q flatten-all-begins)) q (46596 . 3)) ((q form ((lib "syntax/parse/experimental/specialize.rkt") define-syntax-class/specialize)) q (13331 . 8)) ((c def c (c (? . 0) q id-table-iter?)) q (19051 . 3)) ((c def c (c (? . 1) q check-stx-string)) q (39544 . 4)) ((c def c (c (? . 27) q with-module-reading-parameterization)) q (40005 . 3)) ((c def c (c (? . 10) q get-metadata-path)) q (43206 . 8)) ((c def c (c (? . 2) q immutable-bound-id-set)) q (27979 . 6)) ((c def c (c (? . 2) q id-set/c)) q (27154 . 8)) ((c form c (c (? . 24) q formals)) q (10841 . 2)) ((c def c (c (? . 8) q source-location->prefix)) q (59620 . 3)) ((c def c (c (? . 21) q build-struct-names)) q (46957 . 14)) ((c def c (c (? . 2) q in-bound-id-set)) q (29387 . 3)) ((c def c (c (? . 2) q free-id-set-count)) q (24338 . 3)) ((c def c (c (? . 31) q normalize-definition)) q (45722 . 9)) ((c def c (c (? . 18) q generate-expand-context)) q (45675 . 2)) ((c def c (c (? . 4) q expr/c)) q (10039 . 15)) ((c form c (c (? . 19) q syntax-class-arity)) q (10906 . 2)) ((c form c (c (? . 16) q quote-source-file)) q (59958 . 3)) ((c form c (c (? . 4) q define-syntax-class)) q (2409 . 25)) ((c form c (c (? . 4) q syntax-parser)) q (2246 . 2)) ((c form c (c (? . 14) q define-template-metafunction)) q (14233 . 3)) ((c def c (c (? . 20) q flatten-begin)) q (46522 . 3)) ((c def c (c (? . 3) q free-identifier-mapping-get)) q (32903 . 8)) ((c def c (c (? . 2) q bound-id-set-copy)) q (29599 . 3)) ((c def c (c (? . 11) q eval-compile-time-part-of-top-level)) q (60871 . 3)) ((c def c (c (? . 0) q bound-id-table-iterate-first)) q (22676 . 3)) ((c def c (c (? . 0) q bound-id-table-map)) q (22043 . 4)) ((c form c (c (? . 19) q syntax-class-keywords)) q (10951 . 2)) ((c def c (c (? . 2) q bound-id-set-clear!)) q (29854 . 3)) ((c def c (c (? . 4) q prop:pattern-expander)) q (8246 . 3)) ((c def c (c (? . 12) q make-meta-reader)) q (55827 . 17)) ((c form c (c (? . 4) q define-literal-set)) q (8672 . 18)) ((c form c (c (? . 4) q id)) q (9873 . 2)) ((c def c (c (? . 8) q source-location-source)) q (58281 . 3)) ((c form c (c (? . 25) q kernel-syntax-case)) q (14928 . 2)) ((c def c (c (? . 22) q strip-context)) q (35329 . 3)) ((c def c (c (? . 8) q source-location-span)) q (58699 . 4)) ((c def c (c (? . 21) q struct-declaration-info?)) q (50331 . 3)) ((c form c (c (? . 4) q ~once)) q (6710 . 10)) ((c def c (c (? . 2) q bound-id-set-add)) q (28768 . 4)) ((c def c (c (? . 7) q reified-splicing-syntax-class?)) q (11800 . 3)) ((c def c (c (? . 22) q replace-context)) q (35393 . 4)) ((c def c (c (? . 21) q build-struct-generation)) q (47537 . 18)) ((c form c (c (? . 23) q syntax-class/c)) q (11666 . 2)) ((q form ((lib "syntax/quote.rkt") quote-syntax/keep-srcloc)) q (60467 . 3)) ((c def c (c (? . 1) q check-expression)) q (39279 . 4)) ((c def c (c (? . 2) q free-id-set->list)) q (25362 . 3)) ((c form c (c (? . 4) q exact-nonnegative-integer)) q (9810 . 2)) ((c def c (c (? . 0) q bound-id-table-update!)) q (21291 . 9)) ((c def c (c (? . 0) q free-id-table/c)) q (19111 . 7)) ((c def c (c (? . 21) q build-struct-expand-info)) q (49242 . 21)) ((c form c (c (? . 24) q function-header)) q (10804 . 2)) ((c def c (c (? . 2) q free-id-set-first)) q (25057 . 3)) ((c def c (c (? . 2) q bound-id-set-rest)) q (29291 . 3)) ((c def c (c (? . 0) q bound-id-table-set*!)) q (20722 . 5)) ((c def c (c (? . 2) q bound-id-set-subtract)) q (30426 . 4)) ((c form c (c (? . 4) q ~parse)) q (8050 . 2)) ((c def c (c (? . 10) q exn:get-module-code)) c (? . 15)) ((c def c (c (? . 7) q reified-syntax-class-curry)) q (12355 . 8)) ((c def c (c (? . 0) q in-free-id-table)) q (18195 . 3)) ((c def c (c (? . 2) q free-id-set-remove!)) q (24955 . 4)) ((c def c (c (? . 2) q immutable-free-id-set?)) q (24199 . 3)) ((c form c (c (? . 9) q undatum)) q (39950 . 2)) ((c def c (c (? . 0) q bound-id-table-values)) q (22267 . 3)) ((c def c (c (? . 2) q free-id-set-subtract)) q (26231 . 4)) ((c def c (c (? . 3) q bound-identifier-mapping-for-each)) q (32336 . 5)) ((c form c (c (? . 4) q ~peek-not)) q (6651 . 2)) ((c def c (c (? . 2) q free-id-set-add)) q (24619 . 4)) ((c def c (c (? . 0) q bound-id-table-iterate-value)) q (23107 . 5)) ((c def c (c (? . 8) q source-location-end)) q (58811 . 4)) ((c def c (c (? . 2) q bound-id-set-clear)) q (29757 . 3)) ((c def c (c (? . 2) q bound-id-set-union!)) q (30063 . 4)) ((c form c (c (? . 4) q str)) q (9722 . 2)) ((c form c (c (? . 4) q ~post)) q (4779 . 2)) ((c def c (c (? . 7) q reified-syntax-class?)) q (11733 . 3)) ((c form c (c (? . 9) q undatum-splicing)) q (39973 . 2)) ((c def c (c (? . 21) q build-struct-generation*)) q (48334 . 20)) ((c def c (c (? . 10) q exn:get-module-code-path)) c (? . 15)) ((c form c (c (? . 4) q this-syntax)) q (4673 . 2)) ((c def c (c (? . 0) q bound-id-table-update)) q (21658 . 9)) ((c def c (c (? . 2) q bound-id-set=?)) q (28669 . 4)) ((c def c (c (? . 25) q kernel-form-identifier-list)) q (15232 . 2)) ((c def c (c (? . 2) q bound-id-set-intersect)) q (30175 . 4)) ((c def c (c (? . 8) q build-source-location-syntax)) q (58105 . 3)) ((c def c (c (? . 0) q free-id-table-update)) q (17506 . 9)) ((c def c (c (? . 2) q bound-id-set-intersect!)) q (30310 . 4)) ((c form c (c (? . 4) q ~var)) q (4692 . 2)) ((c form c (c (? . 4) q syntax-parse)) q (104 . 30)) ((c form c (c (? . 16) q quote-srcloc-string)) q (60247 . 3)) ((c def c (c (? . 16) q syntax-source-file-name)) q (59787 . 3)) ((c def c (c (? . 3) q module-identifier-mapping-for-each)) q (34529 . 5)) ((c def c (c (? . 2) q free-id-set/c)) q (27504 . 6)) ((c def c (c (? . 8) q source-location-vector?)) q (57644 . 3)) ((c def c (c (? . 10) q get-module-code)) q (40382 . 35)) ((c form c (c (? . 4) q ~!)) q (7609 . 2)) ((c def c (c (? . 2) q free-id-set-map)) q (26943 . 4)) ((c form c (c (? . 24) q formal)) q (10827 . 2)) ((c def c (c (? . 16) q syntax-source-directory)) q (59703 . 3)) ((c form c (c (? . 9) q datum)) q (39830 . 2)) ((c def c (c (? . 13) q stx->list)) q (14532 . 3)) ((c def c (c (? . 3) q bound-identifier-mapping?)) q (31666 . 3)) ((c form c (c (? . 16) q quote-module-path)) q (60414 . 2)) ((c form c (c (? . 4) q expr)) q (9677 . 2)) ((c form c (c (? . 4) q char)) q (9733 . 2)) ((c def c (c (? . 2) q free-id-set-subtract!)) q (26361 . 4)) ((c def c (c (? . 11) q eval-compile-time-part-of-top-level/compile)) q (60955 . 4)) ((c form c (c (? . 25) q kernel-syntax-case*/phase)) q (15143 . 3)) ((c form c (c (? . 4) q define-splicing-syntax-class)) q (3859 . 5)) ((c def c (c (? . 10) q exn:get-module-code?)) c (? . 15)) ((c form c (c (? . 28) q provide-and-document)) q (61073 . 9)) ((c form c (c (? . 16) q quote-line-number)) q (60011 . 3)) ((c form c (c (? . 30) q define-simple-macro)) q (8510 . 3)) ((c def c (c (? . 2) q bound-id-subset?)) q (30999 . 4)) ((c def c (c (? . 12) q lang-reader-module-paths)) q (56657 . 4)) ((c def c (c (? . 0) q bound-id-table-for-each)) q (22441 . 4)) ((c def c (c (? . 3) q module-identifier-mapping?)) q (33845 . 3)) ((c def c (c (? . 19) q debug-syntax-parse!)) q (11168 . 2)) ((c form c (c (? . 4) q keyword)) q (9745 . 2)) ((c def c (c (? . 2) q bound-id-set-union)) q (29932 . 4)) ((c def c (c (? . 2) q mutable-bound-id-set?)) q (28271 . 3)) ((c def c (c (? . 1) q options-select)) q (38583 . 4)) ((c def c (c (? . 7) q reified-syntax-class-arity)) q (12057 . 3)) ((c def c (c (? . 2) q free-id-set->stream)) q (25291 . 3)) ((c def c (c (? . 2) q bound-id-set-symmetric-difference!)) q (30822 . 5)) ((c def c (c (? . 2) q mutable-free-id-set?)) q (24133 . 3)) ((c form c (c (? . 4) q identifier)) q (9689 . 2)) ((c def c (c (? . 8) q source-location-position)) q (58586 . 4)) ((c form c (c (? . 14) q ??)) q (14213 . 2)) ((c def c (c (? . 8) q source-location?)) q (57515 . 3)) ((c def c (c (? . 2) q immutable-free-id-set)) q (23833 . 5)) ((q def ((lib "syntax/for-body.rkt") split-for-body)) q (57302 . 4)) ((q def ((lib "syntax/free-vars.rkt") free-vars)) q (35045 . 8)) ((c def c (c (? . 13) q module-or-top-identifier=?)) q (14813 . 4)) ((c form c (c (? . 16) q quote-srcloc-prefix)) q (60304 . 3)) ((c def c (c (? . 0) q free-id-table-iterate-first)) q (18506 . 3)) ((c form c (c (? . 4) q define-conventions)) q (9372 . 10)) ((c def c (c (? . 13) q stx-null?)) q (14367 . 3)) ((c def c (c (? . 2) q bound-id-set-copy-clear)) q (29675 . 3)) ((c def c (c (? . 2) q free-id-proper-subset?)) q (26838 . 4)) ((q form ((lib "syntax/parse/experimental/splicing.rkt") define-primitive-splicing-syntax-class)) q (12910 . 8)) ((c def c (c (? . 0) q free-id-table-iterate-next)) q (18602 . 4)) ((c def c (c (? . 8) q source-location->string)) q (59537 . 3)) ((c def c (c (? . 0) q bound-id-table-remove!)) q (21034 . 4)) ((c def c (c (? . 0) q immutable-free-id-table?)) q (15905 . 3)) ((c def c (c (? . 0) q free-id-table-ref)) q (15975 . 5)) ((c def c (c (? . 2) q bound-id-set-remove)) q (28989 . 4)) ((c def c (c (? . 0) q free-id-table-set*)) q (16729 . 5)) ((c def c (c (? . 0) q make-immutable-bound-id-table)) q (19650 . 6)) ((c def c (c (? . 13) q stx-cdr)) q (14666 . 3)) ((c def c (c (? . 2) q free-id-set-clear)) q (25581 . 3)) ((c def c (c (? . 8) q build-source-location)) q (57805 . 3)) ((c def c (c (? . 13) q stx-map)) q (14718 . 4)) ((c form c (c (? . 26) q ~eh-var)) q (13291 . 2)) ((c form c (c (? . 25) q kernel-syntax-case*)) q (14992 . 2)) ((c def c (c (? . 3) q make-bound-identifier-mapping)) q (31593 . 2)) ((c def c (c (? . 0) q free-id-table-count)) q (18406 . 3)) ((c def c (c (? . 1) q parse-keyword-options/eol)) q (36890 . 30)) ((c def c (c (? . 0) q free-id-table-iterate-key)) q (18739 . 4)) ((c def c (c (? . 21) q parse-define-struct)) q (46675 . 7)) ((c def c (c (? . 2) q in-free-id-set)) q (25223 . 3)) ((c def c (c (? . 2) q bound-id-set-map)) q (31208 . 3)) ((c def c (c (? . 2) q bound-id-set?)) q (28212 . 3)) ((c def c (c (? . 7) q reified-syntax-class-attributes)) q (11876 . 4)) ((c def c (c (? . 0) q free-id-table-set)) q (16434 . 5)) ((c def c (c (? . 2) q bound-id-set-subtract!)) q (30560 . 4)) ((c def c (c (? . 2) q bound-id-set->list)) q (29530 . 3)) ((q def ((lib "syntax/contract.rkt") wrap-expr/c)) q (61588 . 19)) ((c def c (c (? . 0) q make-bound-id-table)) q (19417 . 5)) ((c def c (c (? . 3) q make-free-identifier-mapping)) q (32762 . 2)) ((c form c (c (? . 26) q define-eh-alternative-set)) q (13188 . 4)) ((c form c (c (? . 4) q number)) q (9760 . 2)) ((c form c (c (? . 4) q ...+)) q (5305 . 2)) ((c form c (c (? . 4) q integer)) q (9774 . 2)) ((c def c (c (? . 8) q source-location-column)) q (58472 . 4)) ((c def c (c (? . 2) q free-id-set=?)) q (24523 . 4)) ((c def c (c (? . 2) q free-id-set-empty?)) q (24267 . 3)) ((c def c (c (? . 27) q check-module-form)) q (40094 . 8)) ((c def c (c (? . 4) q syntax-local-syntax-parse-pattern-introduce)) q (8416 . 3)) ((c def c (c (? . 11) q expand-syntax-top-level-with-compile-time-evals)) q (60565 . 3)) ((c def c (c (? . 0) q bound-id-table/c)) q (23292 . 7)) ((c form c (c (? . 4) q exact-integer)) q (9789 . 2)) ((c form c (c (? . 4) q boolean)) q (9707 . 2)) ((c form c (c (? . 16) q quote-module-name)) q (60361 . 2)) ((c form c (c (? . 4) q nat)) q (9883 . 2)) ((c def c (c (? . 0) q bound-id-table-ref!)) q (20289 . 5)) ((c def c (c (? . 3) q module-identifier-mapping-map)) q (34749 . 5)) ((c def c (c (? . 13) q stx-list?)) q (14477 . 3)) ((c def c (c (? . 2) q bound-id-set-count)) q (28480 . 3)) ((c form c (c (? . 4) q ~between)) q (7314 . 9)) ((c form c (c (? . 4) q literal-set->predicate)) q (9329 . 2)) ((c def c (c (? . 2) q bound-id-set/c)) q (31347 . 6)) ((c def c (c (? . 28) q lookup-documentation)) q (61424 . 5)) ((c form c (c (? . 5) q convert-syntax-error)) q (62712 . 2)) ((c def c (c (? . 21) q generate-struct-declaration)) q (50401 . 17)) ((c form c (c (? . 16) q quote-character-span)) q (60188 . 3)) ((c def c (c (? . 8) q update-source-location)) q (58922 . 13)) ((c def c (c (? . 29) q resolve-module-path)) q (43841 . 7)) ((c form c (c (? . 4) q ~fail)) q (7731 . 11)) ((c form c (c (? . 4) q ~bind)) q (7613 . 5)) ((c def c (c (? . 2) q bound-id-set-empty?)) q (28407 . 3)) ((c def c (c (? . 2) q bound-id-set-symmetric-difference)) q (30675 . 5)) ((c def c (c (? . 0) q free-id-table-values)) q (18105 . 3)) ((q def ((lib "syntax/transformer.rkt") make-variable-like-transformer)) q (52846 . 6)) ((c def c (c (? . 2) q free-id-set?)) q (24075 . 3)) ((c def c (c (? . 0) q bound-id-table-set*)) q (20867 . 6)) ((c form c (c (? . 16) q quote-character-position)) q (60121 . 3)) ((c def c (c (? . 0) q bound-id-table?)) q (19901 . 3)) ((c def c (c (? . 2) q free-id-set-member?)) q (24426 . 4)) ((c def c (c (? . 1) q parse-keyword-options)) q (35504 . 25)) ((c def c (c (? . 2) q free-id-set-clear!)) q (25675 . 3)) ((c form c (c (? . 4) q ~datum)) q (5204 . 2)) ((c form c (c (? . 19) q syntax-class-attributes)) q (10856 . 2)) ((c form c (c (? . 4) q ~seq)) q (6208 . 2)) ((c def c (c (? . 2) q free-id-set-copy-clear)) q (25502 . 3)) ((c def c (c (? . 8) q source-location-list?)) q (57577 . 3)) ((c def c (c (? . 2) q free-id-set-symmetric-difference)) q (26473 . 5)) ((c form c (c (? . 30) q define-syntax-parser)) q (8599 . 2)) ((c form c (c (? . 4) q ~optional)) q (4792 . 2)) ((c def c (c (? . 8) q source-location-line)) q (58361 . 4)) ((c def c (c (? . 2) q mutable-free-id-set)) q (23597 . 5)) ((c def c (c (? . 4) q pattern-expander?)) q (8353 . 3)) ((c def c (c (? . 8) q build-source-location-vector)) q (57996 . 3)) ((c form c (c (? . 19) q syntax-class-parse)) q (10999 . 4)) ((c def c (c (? . 2) q free-id-set-intersect)) q (25987 . 4)) ((c def c (c (? . 2) q bound-id-set-add!)) q (28888 . 4)) ((c def c (c (? . 0) q free-id-table-set!)) q (16302 . 5)) ((c def c (c (? . 0) q free-id-table-iterate-value)) q (18872 . 5)) ((c def c (c (? . 2) q free-id-set-union!)) q (25878 . 4)) ((c form c (c (? . 4) q ~describe)) q (4727 . 2)) ((c def c (c (? . 3) q free-identifier-mapping?)) q (32833 . 3)) ((c def c (c (? . 31) q normalize-definition/mk-rhs)) q (46075 . 12)) ((c form c (c (? . 25) q kernel-syntax-case/phase)) q (15074 . 2)) ((c def c (c (? . 8) q source-location-known?)) q (58198 . 3)) ((c form c (c (? . 7) q ~splicing-reflect)) q (12837 . 2)) ((c form c (c (? . 4) q exact-positive-integer)) q (9843 . 2)) ((q def ((lib "syntax/unsafe/for-transform.rkt") expand-for-clause)) q (57406 . 4)) ((c form c (c (? . 9) q quasidatum)) q (39920 . 2)) ((c def c (c (? . 0) q free-id-table-remove)) q (17008 . 4)) ((c form c (c (? . 4) q ~rest)) q (5482 . 2))))

(mylet ([var-id rhs-expr] ...) body ...+)
(mylet loop-id ([var-id rhs-expr] ...) body ...+)
syntax
(syntax-parse stx-expr parse-option ... clause ...+)
 
      parse-option = #:context context-expr
                   | #:literals (literal ...)
                   | #:datum-literals (datum-literal ...)
                   | #:literal-sets (literal-set ...)
                   | #:conventions (convention-id ...)
                   | #:local-conventions (convention-rule ...)
                   | #:disable-colon-notation
                      
           literal = literal-id
                   | (pattern-id literal-id)
                   | (pattern-id literal-id #:phase phase-expr)
                      
     datum-literal = literal-id
                   | (pattern-id literal-id)
                      
       literal-set = literal-set-id
                   | (literal-set-id literal-set-option ...)
                      
literal-set-option = #:at context-id
                   | #:phase phase-expr
                      
            clause = (syntax-pattern pattern-directive ... body ...+)
 
  stx-expr : syntax?
  context-expr : (or/c syntax? symbol? #f
                       (list/c symbol? syntax?))
  phase-expr : (or/c exact-integer? #f)

#:context context-expr
 
  context-expr : (or/c syntax? symbol? #f
                       (list/c symbol? syntax?))

#:literals (literal ...)
 
literal = literal-id
        | (pattern-id literal-id)
        | (pattern-id literal-id #:phase phase-expr)
 
  phase-expr : (or/c exact-integer? #f)

#:datum-literals (datum-literal ...)
 
datum-literal = literal-id
              | (pattern-id literal-id)

#:literal-sets (literal-set ...)
 
       literal-set = literal-set-id
                   | (literal-set-id literal-set-option ...)
                      
literal-set-option = #:at lctx
                   | #:phase phase-expr
 
  phase-expr : (or/c exact-integer? #f)

#:conventions (conventions-id ...)

#:local-conventions (convention-rule ...)

#:disable-colon-notation
syntax
(syntax-parser parse-option ... clause ...+)
syntax
(define/syntax-parse syntax-pattern pattern-directive ... stx-expr)
 
  stx-expr : syntax?
syntax
(define-syntax-class name-id stxclass-option ...
  stxclass-variant ...+)
(define-syntax-class (name-id . kw-formals) stxclass-option ...
  stxclass-variant ...+)
 
 stxclass-option = #:attributes (attr-arity-decl ...)
                 | #:auto-nested-attributes
                 | #:description description-expr
                 | #:opaque
                 | #:commit
                 | #:no-delimit-cut
                 | #:literals (literal-entry ...)
                 | #:datum-literals (datum-literal-entry ...)
                 | #:literal-sets (literal-set ...)
                 | #:conventions (convention-id ...)
                 | #:local-conventions (convention-rule ...)
                 | #:disable-colon-notation
                    
 attr-arity-decl = attr-name-id
                 | (attr-name-id depth)
                    
stxclass-variant = (pattern syntax-pattern pattern-directive ...)
 
  description-expr : (or/c string? #f)

#:attributes (attr-arity-decl ...)
 
attr-arity-decl = attr-id
                | (attr-id depth)

#:auto-nested-attributes

#:description description-expr
 
  description-expr : (or/c string? #f)

#:opaque

#:commit

#:no-delimit-cut

#:literals (literal-entry ...)

#:datum-literals (datum-literal-entry ...)

#:literal-sets (literal-set ...)

#:conventions (convention-id ...)
syntax
(define-splicing-syntax-class name-id stxclass-option ...
  stxclass-variant ...+)
(define-splicing-syntax-class (name-id . kw-formals) stxclass-option ...
  stxclass-variant ...+)
syntax
(pattern syntax-pattern pattern-directive ...)

#:declare pvar-id stxclass maybe-role
 
  stxclass = syntax-class-id
           | (syntax-class-id arg ...)
              
maybe-role = 
           | #:role role-expr

#:post action-pattern

#:and action-pattern

#:with syntax-pattern stx-expr

#:attr attr-arity-decl expr

#:fail-when condition-expr message-expr
 
  message-expr : (or/c string? #f)

#:fail-unless condition-expr message-expr
 
  message-expr : (or/c string? #f)

#:when condition-expr

#:do [def-or-expr ...]
syntax
(attribute attr-id)
syntax
this-syntax
syntax
~var
syntax
~and
syntax
~or
syntax
~describe
syntax
~commit
syntax
~delimit-cut
syntax
~post
syntax
~optional

id

(~var pvar-id)

(~var pvar-id syntax-class-use maybe-role)
 
syntax-class-use = syntax-class-id
                 | (syntax-class-id arg ...)
                    
      maybe-role = 
                 | #:role role-expr
 
  role-expr : (or/c string? #f)

(~literal literal-id maybe-phase)
 
maybe-phase = 
            | #:phase phase-expr

atomic-datum

(~datum datum)

(H-pattern . S-pattern)

(A-pattern . S-pattern)

(EH-pattern ... . S-pattern)

(H-pattern ...+ . S-pattern)

(~and S/A-pattern ...)

(~or S-pattern ...)

(~not S-pattern)

#(pattern-part ...)

#s(prefab-struct-key pattern-part ...)

#&S-pattern

(~rest S-pattern)

(~describe maybe-role maybe-opaque expr S-pattern)
 
maybe-opaque = 
             | #:opaque
                
  maybe-role = 
             | #:role role-expr
 
  expr : (or/c string? #f)
  role-expr : (or/c string? #f)

(~commit S-pattern)

(~delimit-cut S-pattern)

(~post S-pattern)

A-pattern

pvar-id:splicing-syntax-class-id

(~var pvar-id splicing-syntax-class-use maybe-role)
 
splicing-syntax-class-use = splicing-syntax-class-id
                          | (splicing-syntax-class-id arg ...)
                             
               maybe-role = 
                          | #:role role-expr
 
  role-expr : (or/c string? #f)

(~seq . L-pattern)

(~and H-pattern ...)

(~or H-pattern ...)

(~optional H-pattern maybe-optional-option)
 
maybe-optional-option = 
                      | #:defaults ([attr-arity-decl expr] ...)
                         
      attr-arity-decl = attr-id
                      | (attr-id depth)

(~describe expr H-pattern)

(~commit H-pattern)

(~delimit-cut H-pattern)

(~post H-pattern)

(~peek H-pattern)

(~peek-not H-pattern)

S-pattern

(~or EH-pattern ...)

(~once H-pattern once-option ...)
 
once-option = #:name name-expr
            | #:too-few too-few-message-expr
            | #:too-many too-many-message-expr
 
  name-expr : (or/c string? #f)
  too-few-message-expr : (or/c string? #f)
  too-many-message-expr : (or/c string? #f)

(~optional H-pattern optional-option ...)
 
optional-option = #:name name-expr
                | #:too-many too-many-message-expr
                | #:defaults ([attr-id expr] ...)
 
  name-expr : (or/c string? #f)
  too-many-message-expr : (or/c string? #f)

(~between H-pattern min-number max-number between-option ...)
 
reps-option = #:name name-expr
            | #:too-few too-few-message-expr
            | #:too-many too-many-message-expr
 
  name-expr : (or/c syntax? #f)
  too-few-message-expr : (or/c syntax? #f)

~!

(~bind [attr-arity-decl expr] ...)
 
attr-arity-decl = attr-name-id
                | (attr-name-id depth)

(~fail maybe-fail-condition maybe-message-expr)
 
maybe-fail-condition = 
                     | #:when condition-expr
                     | #:unless condition-expr
                        
  maybe-message-expr = 
                     | message-expr
 
  message-expr : (or/c string? #f)

(~parse S-pattern stx-expr)

(~and A-pattern ...+)

(~do defn-or-expr ...)

(~post A-pattern)
procedure
(pattern-expander proc) -> pattern-expander?
  proc : (-> syntax? syntax?)
value
prop:pattern-expander
 : (struct-type-property/c (-> pattern-expander? (-> syntax? syntax?)))
procedure
(pattern-expander? v) -> boolean?
  v : any/c
procedure
(syntax-local-syntax-parse-pattern-introduce stx) -> syntax?
  stx : syntax?
syntax
(define-simple-macro (macro-id . pattern) pattern-directive ...
  template)
syntax
(define-syntax-parser macro-id parse-option ... clause ...+)
syntax
(define-literal-set id maybe-phase maybe-imports maybe-datum-literals
  (literal ...))
 
             literal = literal-id
                     | (pattern-id literal-id)
                        
         maybe-phase = 
                     | #:for-template
                     | #:for-syntax
                     | #:for-label
                     | #:phase phase-level
                        
maybe-datum-literals = 
                     | #:datum-literals (datum-literal ...)
                        
       maybe-imports = 
                     | #:literal-sets (imported-litset-id ...)
syntax
(literal-set->predicate litset-id)
syntax
(define-conventions name-id convention-rule ...)
 
convention-rule = (name-pattern syntax-class)
                   
   name-pattern = exact-id
                | name-rx
                   
   syntax-class = syntax-class-id
                | (syntax-class-id expr ...)
syntax
expr
syntax
identifier
syntax
boolean
syntax
str
syntax
char
syntax
keyword
syntax
number
syntax
integer
syntax
exact-integer
syntax
exact-nonnegative-integer
syntax
exact-positive-integer
syntax
id
syntax
nat
procedure
(static predicate description) -> (attributes value)
  predicate : (-> any/c any/c)
  description : (or/c string? #f)
procedure
(expr/c  contract-expr            
        [#:positive pos-blame     
         #:negative neg-blame     
         #:name expr-name         
         #:macro macro-name       
         #:context ctx])      -> (attributes c)
  contract-expr : syntax?
  pos-blame : (or/c syntax? string? module-path-index? 'from-macro 'use-site 'unknown)
            = 'use-site
  neg-blame : (or/c syntax? string? module-path-index? 'from-macro 'use-site 'unknown)
            = 'from-macro
  expr-name : (or/c identifier? string? symbol?) = #f
  macro-name : (or/c identifier? string? symbol?) = #f
  ctx : (or/c syntax? #f) = determined automatically
syntax
kernel-literals
syntax
function-header
syntax
formal
syntax
formals
syntax
(syntax-class-attributes syntax-class-id)
syntax
(syntax-class-arity syntax-class-id)
syntax
(syntax-class-keywords syntax-class-id)
syntax
(syntax-class-parse syntax-class-id stx-expr arg ...)
 
  stx-expr : syntax?
syntax
(debug-parse stx-expr S-pattern ...+)
 
  stx-expr : syntax?
procedure
(debug-syntax-parse!) -> void?
syntax
(provide-syntax-class/contract
  [syntax-class-id syntax-class-contract] ...)
 
syntax-class-contract = (syntax-class/c (mandatory-arg ...))
                      | (syntax-class/c (mandatory-arg ...)
                                        (optional-arg ...))
                         
                  arg = contract-expr
                      | keyword contract-expr
 
  contract-expr : contract?
syntax
syntax-class/c
syntax
(reify-syntax-class syntax-class-id)
procedure
(reified-syntax-class? x) -> boolean?
  x : any/c
procedure
(reified-splicing-syntax-class? x) -> boolean?
  x : any/c
procedure
(reified-syntax-class-attributes r)
 -> (listof (list/c symbol? exact-nonnegative-integer?))
  r : (or/c reified-syntax-class? reified-splicing-syntax-class?)
procedure
(reified-syntax-class-arity r) -> procedure-arity?
  r : (or/c reified-syntax-class? reified-splicing-syntax-class?)
procedure
(reified-syntax-class-keywords r)
 -> (listof keyword?) (listof keyword?)
  r : (or/c reified-syntax-class? reified-splicing-syntax-class?)
procedure
(reified-syntax-class-curry r                  
                            arg ...            
                            #:<kw> kw-arg ...) 
 -> (or/c reified-syntax-class? reified-splicing-syntax-class?)
  r : (or/c reified-syntax-class? reified-splicing-syntax-class?)
  arg : any/c
  kw-arg : any/c

(~reflect var-id (reified-expr arg-expr ...) maybe-attrs)
 
maybe-attrs = 
            | #:attributes (attr-arity-decl ...)

(~splicing-reflect var-id (reified-expr arg-expr ...) maybe-attrs)
syntax
(define-primitive-splicing-syntax-class (name-id param-id ...)
  maybe-description maybe-attrs
  parser-expr)
 
  parser : (-> syntax?
               (->* () ((or/c string? #f) -> any))
               (cons/c exact-positive-integer? list?))
syntax
(define-eh-alternative-set name eh-alternative ...)
 
alternative = (pattern EH-pattern)

(~eh-var name eh-alternative-set-id)
syntax
(define-syntax-class/specialize header syntax-class-use)
 
          header = id
                 | (id . kw-formals)
                    
syntax-class-use = target-stxclass-id
                 | (target-stxclass-id arg ...)
syntax
(template tmpl)
 
      tmpl = pattern-variable-id
           | (head-tmpl . tmpl)
           | (head-tmpl ellipsis ...+ . tmpl)
           | (metafunction-id . tmpl)
           | (?? tmpl tmpl)
           | #(head-tmpl ...)
           | #s(prefab-struct-key head-tmpl ...)
           | #&tmpl
           | constant-term
              
head-templ = tmpl
           | (?? head-tmpl)
           | (?? head-tmpl head-tmpl)
           | (?@ . tmpl)
              
  ellipsis = ...

(?? tmpl alt-tmpl)

(?? head-tmpl)

(?@ . tmpl)

(metafunction-id . tmpl)
syntax
??
syntax
?@
syntax
(define-template-metafunction metafunction-id expr)
(define-template-metafunction (metafunction-id . formals) body ...+)
procedure
(stx-null? v) -> boolean?
  v : any/c
procedure
(stx-pair? v) -> boolean?
  v : any/c
procedure
(stx-list? v) -> boolean?
  v : any/c
procedure
(stx->list stx-list) -> (or/c list? #f)
  stx-list : stx-list?
procedure
(stx-car v) -> any
  v : stx-pair?
procedure
(stx-cdr v) -> any
  v : stx-pair?
procedure
(stx-map proc stxl ...) -> list?
  proc : procedure?
  stxl : stx-list?
procedure
(module-or-top-identifier=? a-id b-id) -> boolean?
  a-id : identifier?
  b-id : identifier?
syntax
(kernel-syntax-case stx-expr trans?-expr clause ...)
syntax
(kernel-syntax-case* stx-expr trans?-expr (extra-id ...) clause ...)
syntax
(kernel-syntax-case/phase stx-expr phase-expr clause ...)
syntax
(kernel-syntax-case*/phase stx-expr phase-expr (extra-id ..)
  clause ...)
procedure
(kernel-form-identifier-list) -> (listof identifier?)
procedure
(make-free-id-table [init-dict           
                     #:phase phase]) -> mutable-free-id-table?
  init-dict : dict? = null
  phase : (or/c exact-integer? #f) = (syntax-local-phase-level)
procedure
(make-immutable-free-id-table [init-dict       
                               #:phase phase]) 
 -> immutable-free-id-table?
  init-dict : dict? = null
  phase : (or/c exact-integer? #f) = (syntax-local-phase-level)
procedure
(free-id-table? v) -> boolean?
  v : any/c
procedure
(mutable-free-id-table? v) -> boolean?
  v : any/c
procedure
(immutable-free-id-table? v) -> boolean?
  v : any/c
procedure
(free-id-table-ref table id [failure]) -> any
  table : free-id-table?
  id : identifier?
  failure : any/c = (lambda () (raise (make-exn:fail .....)))
procedure
(free-id-table-ref! table id failure) -> any
  table : mutable-free-id-table?
  id : identifier?
  failure : any/c
procedure
(free-id-table-set! table id v) -> void?
  table : mutable-free-id-table?
  id : identifier?
  v : any/c
procedure
(free-id-table-set table id v) -> immutable-free-id-table?
  table : immutable-free-id-table?
  id : identifier?
  v : any/c
procedure
(free-id-table-set*! table id v ... ...) -> void?
  table : mutable-free-id-table?
  id : identifier?
  v : any/c
procedure
(free-id-table-set* table id v ... ...) -> immutable-free-id-table?
  table : immutable-free-id-table?
  id : identifier?
  v : any/c
procedure
(free-id-table-remove! table id) -> void?
  table : mutable-free-id-table?
  id : identifier?
procedure
(free-id-table-remove table id) -> immutable-free-id-table?
  table : immutable-free-id-table?
  id : identifier?
procedure
(free-id-table-update!  table         
                        id            
                        updater       
                       [failure]) -> void?
  table : mutable-free-id-table?
  id : identifier?
  updater : (any/c . -> . any/c)
  failure : any/c = (lambda () (raise (make-exn:fail .....)))
procedure
(free-id-table-update  table         
                       id            
                       updater       
                      [failure]) -> immutable-free-id-table?
  table : immutable-free-id-table?
  id : identifier?
  updater : (any/c . -> . any/c)
  failure : any/c = (lambda () (raise (make-exn:fail .....)))
procedure
(free-id-table-map table proc) -> list?
  table : free-id-table?
  proc : (-> identifier? any/c any)
procedure
(free-id-table-keys table) -> (listof identifier?)
  table : free-id-table?
procedure
(free-id-table-values table) -> (listof any/c)
  table : free-id-table?
procedure
(in-free-id-table table) -> sequence?
  table : free-id-table?
procedure
(free-id-table-for-each table proc) -> void?
  table : free-id-table?
  proc : (-> identifier? any/c any)
procedure
(free-id-table-count table) -> exact-nonnegative-integer?
  table : free-id-table?
procedure
(free-id-table-iterate-first table) -> id-table-iter?
  table : free-id-table?
procedure
(free-id-table-iterate-next table position) -> id-table-iter?
  table : free-id-table?
  position : id-table-iter?
procedure
(free-id-table-iterate-key table position) -> identifier?
  table : free-id-table?
  position : id-table-iter?
procedure
(free-id-table-iterate-value table         
                             position) -> identifier?
  table : bound-it-table?
  position : id-table-iter?
procedure
(id-table-iter? v) -> boolean?
  v : any/c
procedure
(free-id-table/c  key-ctc                      
                  val-ctc                      
                 [#:immutable immutable?]) -> contract?
  key-ctc : flat-contract?
  val-ctc : chaperone-contract?
  immutable? : (or/c #t #f 'dont-care) = 'dont-care
procedure
(make-bound-id-table [init-dict           
                      #:phase phase]) -> mutable-bound-id-table?
  init-dict : dict? = null
  phase : (or/c exact-integer? #f) = (syntax-local-phase-level)
procedure
(make-immutable-bound-id-table [init-dict       
                                #:phase phase]) 
 -> immutable-bound-id-table?
  init-dict : dict? = null
  phase : (or/c exact-integer? #f) = (syntax-local-phase-level)
procedure
(bound-id-table? v) -> boolean?
  v : any/c
procedure
(mutable-bound-id-table? v) -> boolean?
  v : any/c
procedure
(immutable-bound-id-table? v) -> boolean?
  v : any/c
procedure
(bound-id-table-ref table id [failure]) -> any
  table : bound-id-table?
  id : identifier?
  failure : any/c = (lambda () (raise (make-exn:fail .....)))
procedure
(bound-id-table-ref! table id failure) -> any
  table : mutable-bound-id-table?
  id : identifier?
  failure : any/c
procedure
(bound-id-table-set! table id v) -> void?
  table : mutable-bound-id-table?
  id : identifier?
  v : any/c
procedure
(bound-id-table-set table id v) -> immutable-bound-id-table?
  table : immutable-bound-id-table?
  id : identifier?
  v : any/c
procedure
(bound-id-table-set*! table id v ... ...) -> void?
  table : mutable-bound-id-table?
  id : identifier?
  v : any/c
procedure
(bound-id-table-set* table id v ... ...)
 -> immutable-bound-id-table?
  table : immutable-bound-id-table?
  id : identifier?
  v : any/c
procedure
(bound-id-table-remove! table id) -> void?
  table : mutable-bound-id-table?
  id : identifier?
procedure
(bound-id-table-remove table id) -> immutable-bound-id-table?
  table : immutable-bound-id-table?
  id : identifier?
procedure
(bound-id-table-update!  table         
                         id            
                         updater       
                        [failure]) -> void?
  table : mutable-bound-id-table?
  id : identifier?
  updater : (any/c . -> . any/c)
  failure : any/c = (lambda () (raise (make-exn:fail .....)))
procedure
(bound-id-table-update  table         
                        id            
                        updater       
                       [failure]) -> immutable-bound-id-table?
  table : immutable-bound-id-table?
  id : identifier?
  updater : (any/c . -> . any/c)
  failure : any/c = (lambda () (raise (make-exn:fail .....)))
procedure
(bound-id-table-map table proc) -> list?
  table : bound-id-table?
  proc : (-> identifier? any/c any)
procedure
(bound-id-table-keys table) -> (listof identifier?)
  table : bound-id-table?
procedure
(bound-id-table-values table) -> (listof any/c)
  table : bound-id-table?
procedure
(in-bound-id-table table) -> sequence?
  table : bound-id-table?
procedure
(bound-id-table-for-each table proc) -> void?
  table : bound-id-table?
  proc : (-> identifier? any/c any)
procedure
(bound-id-table-count table) -> exact-nonnegative-integer?
  table : bound-id-table?
procedure
(bound-id-table-iterate-first table) -> id-table-position?
  table : bound-id-table?
procedure
(bound-id-table-iterate-next table         
                             position) -> id-table-position?
  table : bound-id-table?
  position : id-table-position?
procedure
(bound-id-table-iterate-key table position) -> identifier?
  table : bound-id-table?
  position : id-table-position?
procedure
(bound-id-table-iterate-value table         
                              position) -> identifier?
  table : bound-id-table?
  position : id-table-position?
procedure
(bound-id-table/c  key-ctc                     
                   val-ctc                     
                  [#:immutable immutable]) -> contract?
  key-ctc : flat-contract?
  val-ctc : chaperone-contract?
  immutable : (or/c #t #f 'dont-care) = 'dont-care
procedure
(mutable-free-id-set [init-set            
                      #:phase phase]) -> mutable-free-id-set?
  init-set : generic-set? = null
  phase : (or/c exact-integer? #f) = (syntax-local-phase-level)
procedure
(immutable-free-id-set [init-set            
                        #:phase phase]) -> immutable-free-id-set?
  init-set : generic-set? = null
  phase : (or/c exact-integer? #f) = (syntax-local-phase-level)
procedure
(free-id-set? v) -> boolean?
  v : any/c
procedure
(mutable-free-id-set? v) -> boolean?
  v : any/c
procedure
(immutable-free-id-set? v) -> boolean?
  v : any/c
procedure
(free-id-set-empty? s) -> boolean?
  s : free-id-set?
procedure
(free-id-set-count s) -> exact-nonnegative-integer?
  s : free-id-set?
procedure
(free-id-set-member? s v) -> boolean?
  s : free-id-set?
  v : identifier?
procedure
(free-id-set=? s1 s2) -> boolean?
  s1 : free-id-set?
  s2 : free-id-set?
procedure
(free-id-set-add s v) -> immutable-free-id-set?
  s : immutable-free-id-set?
  v : identifier?
procedure
(free-id-set-add! s v) -> void?
  s : mutable-free-id-set?
  v : identifier?
procedure
(free-id-set-remove s v) -> immutable-free-id-set?
  s : immutable-free-id-set?
  v : identifier?
procedure
(free-id-set-remove! s v) -> void?
  s : mutable-free-id-set?
  v : identifier?
procedure
(free-id-set-first s) -> identifier?
  s : free-id-set?
procedure
(free-id-set-rest s) -> immutable-free-id-set?
  s : immutable-free-id-set?
procedure
(in-free-id-set s) -> sequence?
  s : free-id-set?
procedure
(free-id-set->stream s) -> stream?
  s : free-id-set?
procedure
(free-id-set->list s) -> list?
  s : free-id-set?
procedure
(free-id-set-copy s) -> free-id-set?
  s : free-id-set?
procedure
(free-id-set-copy-clear s) -> free-id-set?
  s : free-id-set?
procedure
(free-id-set-clear s) -> immutable-free-id-set?
  s : immutable-free-id-set?
procedure
(free-id-set-clear! s) -> void?
  s : mutable-free-id-set?
procedure
(free-id-set-union s0 s ...) -> immutable-free-id-set?
  s0 : immutable-free-id-set?
  s : free-id-set?
procedure
(free-id-set-union! s0 s ...) -> void?
  s0 : mutable-free-id-set?
  s : free-id-set?
procedure
(free-id-set-intersect s0 s ...) -> immutable-free-id-set?
  s0 : immutable-free-id-set?
  s : free-id-set?
procedure
(free-id-set-intersect! s0 s ...) -> void?
  s0 : mutable-free-id-set?
  s : free-id-set?
procedure
(free-id-set-subtract s0 s ...) -> immutable-free-id-set?
  s0 : immutable-free-id-set?
  s : free-id-set?
procedure
(free-id-set-subtract! s0 s ...) -> void?
  s0 : mutable-free-id-set?
  s : free-id-set?
procedure
(free-id-set-symmetric-difference s0 s ...)
 -> immutable-free-id-set?
  s0 : immutable-free-id-set?
  s : free-id-set?
procedure
(free-id-set-symmetric-difference! s0 s ...) -> void?
  s0 : mutable-free-id-set?
  s : free-id-set?
procedure
(free-id-subset? s1 s2) -> boolean?
  s1 : free-id-set?
  s2 : free-id-set?
procedure
(free-id-proper-subset? s1 s2) -> boolean?
  s1 : free-id-set?
  s2 : free-id-set?
procedure
(free-id-set-map s f) -> list?
  s : free-id-set?
  f : (-> identifier? any/c)
procedure
(free-id-set-for-each s f) -> void?
  s : free-id-set?
  f : (-> identifier? any/c)
procedure
(id-set/c  elem-ctc                      
          [#:setidtype idsettype         
           #:mutability mutability]) -> contract?
  elem-ctc : flat-contract?
  idsettype : (or/c 'dont-care 'free 'bound) = 'dont-care
  mutability : (or/c 'dont-care 'mutable 'immutable)
             = 'immutable
procedure
(free-id-set/c  elem-ctc                      
               [#:mutability mutability]) -> contract?
  elem-ctc : flat-contract?
  mutability : (or/c 'dont-care 'mutable 'immutable)
             = 'immutable
procedure
(mutable-bound-id-set [init-set            
                       #:phase phase]) -> mutable-bound-id-set?
  init-set : set? = null
  phase : (or/c exact-integer? #f) = (syntax-local-phase-level)
procedure
(immutable-bound-id-set [init-set        
                         #:phase phase]) 
 -> immutable-bound-id-set?
  init-set : set? = null
  phase : (or/c exact-integer? #f) = (syntax-local-phase-level)
procedure
(bound-id-set? v) -> boolean?
  v : any/c
procedure
(mutable-bound-id-set? v) -> boolean?
  v : any/c
procedure
(immutable-bound-id-set? v) -> boolean?
  v : any/c
procedure
(bound-id-set-empty? s) -> boolean?
  s : bound-id-set?
procedure
(bound-id-set-count s) -> exact-nonnegative-integer?
  s : bound-id-set?
procedure
(bound-id-set-member? s v) -> boolean?
  s : bound-id-set?
  v : identifier?
procedure
(bound-id-set=? s1 s2) -> boolean?
  s1 : bound-id-set?
  s2 : bound-id-set?
procedure
(bound-id-set-add s v) -> immutable-bound-id-set?
  s : immutable-bound-id-set?
  v : identifier?
procedure
(bound-id-set-add! s v) -> void?
  s : mutable-bound-id-set?
  v : identifier?
procedure
(bound-id-set-remove s v) -> immutable-bound-id-set?
  s : immutable-bound-id-set?
  v : identifier?
procedure
(bound-id-set-remove! s v) -> void?
  s : mutable-bound-id-set?
  v : identifier?
procedure
(bound-id-set-first s) -> identifier?
  s : bound-id-set?
procedure
(bound-id-set-rest s) -> immutable-bound-id-set?
  s : immutable-bound-id-set?
procedure
(in-bound-id-set s) -> sequence?
  s : bound-id-set?
procedure
(bound-id-set->stream s) -> stream?
  s : bound-id-set?
procedure
(bound-id-set->list s) -> list?
  s : bound-id-set?
procedure
(bound-id-set-copy s) -> bound-id-set?
  s : bound-id-set?
procedure
(bound-id-set-copy-clear s) -> bound-id-set?
  s : bound-id-set?
procedure
(bound-id-set-clear s) -> immutable-bound-id-set?
  s : immutable-bound-id-set?
procedure
(bound-id-set-clear! s) -> void?
  s : mutable-bound-id-set?
procedure
(bound-id-set-union s0 s ...) -> immutable-bound-id-set?
  s0 : immutable-bound-id-set?
  s : bound-id-set?
procedure
(bound-id-set-union! s0 s ...) -> void?
  s0 : mutable-bound-id-set?
  s : bound-id-set?
procedure
(bound-id-set-intersect s0 s ...) -> immutable-bound-id-set?
  s0 : immutable-bound-id-set?
  s : bound-id-set?
procedure
(bound-id-set-intersect! s0 s ...) -> void?
  s0 : mutable-bound-id-set?
  s : bound-id-set?
procedure
(bound-id-set-subtract s0 s ...) -> immutable-bound-id-set?
  s0 : immutable-bound-id-set?
  s : bound-id-set?
procedure
(bound-id-set-subtract! s0 s ...) -> void?
  s0 : mutable-bound-id-set?
  s : bound-id-set?
procedure
(bound-id-set-symmetric-difference s0 s ...)
 -> immutable-bound-id-set?
  s0 : immutable-bound-id-set?
  s : bound-id-set?
procedure
(bound-id-set-symmetric-difference! s0         
                                    s ...) -> void?
  s0 : mutable-bound-id-set?
  s : bound-id-set?
procedure
(bound-id-subset? s1 s2) -> boolean?
  s1 : bound-id-set?
  s2 : bound-id-set?
procedure
(bound-id-proper-subset? s1 s2) -> boolean?
  s1 : bound-id-set?
  s2 : bound-id-set?
procedure
(bound-id-set-map s) -> list?
  s : bound-id-set?
procedure
(bound-id-set-for-each s) -> void?
  s : bound-id-set?
procedure
(bound-id-set/c  elem-ctc                      
                [#:mutability mutability]) -> contract?
  elem-ctc : flat-contract?
  mutability : (or/c 'dont-care 'mutable 'immutable)
             = 'immutable
procedure
(make-bound-identifier-mapping) -> bound-identifier-mapping?
procedure
(bound-identifier-mapping? v) -> boolean?
  v : any/c
procedure
(bound-identifier-mapping-get  bound-map           
                               id                  
                              [failure-thunk]) -> any
  bound-map : bound-identifier-mapping?
  id : identifier?
  failure-thunk : (-> any)
                = (lambda () (raise (make-exn:fail ....)))
procedure
(bound-identifier-mapping-put! bound-map     
                               id            
                               v)        -> void?
  bound-map : bound-identifier-mapping?
  id : identifier?
  v : any/c
procedure
(bound-identifier-mapping-for-each bound-map     
                                   proc)     -> void?
  bound-map : boud-identifier-mapping?
  proc : (identifier? any/c . -> . any)
procedure
(bound-identifier-mapping-map bound-map     
                              proc)     -> (listof any?)
  bound-map : bound-identifier-mapping?
  proc : (identifier? any/c . -> . any)
procedure
(make-free-identifier-mapping) -> free-identifier-mapping?
procedure
(free-identifier-mapping? v) -> boolean?
  v : any/c
procedure
(free-identifier-mapping-get  free-map            
                              id                  
                             [failure-thunk]) -> any
  free-map : free-identifier-mapping?
  id : identifier?
  failure-thunk : (-> any)
                = (lambda () (raise (make-exn:fail ....)))
procedure
(free-identifier-mapping-put! free-map id v) -> void?
  free-map : free-identifier-mapping?
  id : identifier?
  v : any/c
procedure
(free-identifier-mapping-for-each free-map     
                                  proc)    -> void?
  free-map : free-identifier-mapping?
  proc : (identifier? any/c . -> . any)
procedure
(free-identifier-mapping-map free-map proc) -> (listof any?)
  free-map : free-identifier-mapping?
  proc : (identifier? any/c . -> . any)
procedure
(make-module-identifier-mapping) -> module-identifier-mapping?
procedure
(module-identifier-mapping? v) -> boolean?
  v : any/c
procedure
(module-identifier-mapping-get  module-map          
                                id                  
                               [failure-thunk]) -> any
  module-map : module-identifier-mapping?
  id : identifier?
  failure-thunk : (-> any)
                = (lambda () (raise (make-exn:fail ....)))
procedure
(module-identifier-mapping-put! module-map     
                                id             
                                v)         -> void?
  module-map : module-identifier-mapping?
  id : identifier?
  v : any/c
procedure
(module-identifier-mapping-for-each module-map     
                                    proc)      -> void?
  module-map : module-identifier-mapping?
  proc : (identifier? any/c . -> . any)
procedure
(module-identifier-mapping-map module-map     
                               proc)      -> (listof any?)
  module-map : module-identifier-mapping?
  proc : (identifier? any/c . -> . any)
procedure
(syntax->string stx-list) -> string?
  stx-list : stx-list?
procedure
(free-vars  expr-stx                        
           [insp                            
            #:module-bound? module-bound?]) 
 -> (listof identifier?)
  expr-stx : syntax?
  insp : inspector? = mod-decl-insp
  module-bound? : any/c = #f
procedure
(strip-context stx) -> syntax?
  stx : syntax?
procedure
(replace-context ctx-stx stx) -> syntax?
  ctx-stx : (or/c syntax? #f)
  stx : syntax?
procedure
(parse-keyword-options  stx                                      
                        table                                    
                       [#:context ctx                            
                        #:no-duplicates? no-duplicates?          
                        #:incompatible incompatible              
                        #:on-incompatible incompatible-handler   
                        #:on-too-short too-short-handler         
                        #:on-not-in-table not-in-table-handler]) 
 -> options any/c
  stx : syntax?
  table : keyword-table
  ctx : (or/c false/c syntax?) = #f
  no-duplicates? : boolean? = #f
  incompatible : (listof (listof keyword?)) = '()
  incompatible-handler : (-> keyword? keyword?
                             options syntax? syntax?
                             (values options syntax?))
                       = (lambda (....) (error ....))
  too-short-handler : (-> keyword? options syntax? syntax?
                          (values options syntax?))
                    = (lambda (....) (error ....))
  not-in-table-handler : (-> keyword? options syntax? syntax?
                             (values options syntax?))
                       = (lambda (....) (error ....))
procedure
(parse-keyword-options/eol                                         
                            stx                                    
                            table                                  
                           [#:context ctx                          
                            #:no-duplicates? no-duplicates?        
                            #:incompatible incompatible            
                            #:on-incompatible incompatible-handler 
                            #:on-too-short too-short-handler       
                            #:on-not-in-table not-in-table-handler 
                            #:on-not-eol not-eol-handler])         
 -> options
  stx : syntax?
  table : keyword-table
  ctx : (or/c false/c syntax?) = #f
  no-duplicates? : boolean? = #f
  incompatible : (listof (list keyword? keyword?)) = '()
  incompatible-handler : (-> keyword? keyword?
                             options syntax? syntax?
                             (values options syntax?))
                       = (lambda (....) (error ....))
  too-short-handler : (-> keyword? options syntax? syntax?
                          (values options syntax?))
                    = (lambda (....) (error ....))
  not-in-table-handler : (-> keyword? options syntax? syntax?
                             (values options syntax?))
                       = (lambda (....) (error ....))
  not-eol-handler : (-> options syntax? syntax?
                        options)
                  = (lambda (....) (error ....))
procedure
(options-select options keyword) -> (listof list?)
  options : options
  keyword : keyword?
procedure
(options-select-row options                
                    keyword                
                    #:default default) -> any
  options : options
  keyword : keyword?
  default : any/c
procedure
(options-select-value options                
                      keyword                
                      #:default default) -> any
  options : options
  keyword : keyword?
  default : any/c
procedure
(check-identifier stx ctx) -> identifier?
  stx : syntax?
  ctx : (or/c false/c syntax?)
procedure
(check-expression stx ctx) -> syntax?
  stx : syntax?
  ctx : (or/c false/c syntax?)
procedure
((check-stx-listof check) stx ctx) -> (listof any/c)
  check : check-procedure
  stx : syntax?
  ctx : (or/c false/c syntax?)
procedure
(check-stx-string stx ctx) -> syntax?
  stx : syntax?
  ctx : (or/c false/c syntax?)
procedure
(check-stx-boolean stx ctx) -> syntax?
  stx : syntax?
  ctx : (or/c false/c syntax?)
syntax
(datum-case datum-expr (literal-id ...)
  clause ...)
syntax
(datum template)
syntax
(with-datum ([pattern datum-expr] ...)
  body ...+)
syntax
(quasidatum template)
syntax
(undatum expr)
syntax
(undatum-splicing expr)
procedure
(with-module-reading-parameterization thunk) -> any
  thunk : (-> any)
procedure
(check-module-form stx                 
                   expected-module-sym 
                   source-v)           
 -> (or/c syntax? false/c)
  stx : (or/c syntax? eof-object?)
  expected-module-sym : symbol?
  source-v : (or/c string? false/c)
procedure
(get-module-code  path                                 
                 [#:submodule-path submodule-path      
                  #:sub-path compiled-subdir0          
                  compiled-subdir                      
                  #:roots roots                        
                  #:compile compile-proc0              
                  compile-proc                         
                  #:extension-handler ext-proc0        
                  ext-proc                             
                  #:choose choose-proc                 
                  #:notify notify-proc                 
                  #:source-reader read-syntax-proc     
                  #:rkt-try-ss? rkt-try-ss?])      -> any
  path : path-string?
  submodule-path : (listof symbol?) = '()
  compiled-subdir0 : (and/c path-string? relative-path?)
                   = "compiled"
  compiled-subdir : (and/c path-string? relative-path?)
                  = compiled-subdir0
  roots : (listof (or/c path-string? 'same))
        = (current-compiled-file-roots)
  compile-proc0 : (any/c . -> . any) = compile
  compile-proc : (any/c . -> . any) = compile-proc0
  ext-proc0 : (or/c false/c (path? boolean? . -> . any)) = #f
  ext-proc : (or/c false/c (path? boolean? . -> . any))
           = ext-proc0
  choose-proc : (path? path? path?
                 . -> .
                 (or/c (symbols 'src 'zo 'so) false/c))
              = (lambda (src zo so) #f)
  notify-proc : (any/c . -> . any) = void
  read-syntax-proc : (any/c input-port? . -> . (or/c syntax? eof-object?))
                   = read-syntax
  rkt-try-ss? : boolean? = #t
procedure
(get-module-path  path                        
                  #:submodule? submodule?     
                 [#:sub-path compiled-subdir0 
                  compiled-subdir             
                  #:roots roots               
                  #:choose choose-proc        
                  #:rkt-try-ss? rkt-try-ss?]) 
 -> path? (or/c 'src 'zo 'so)
  path : path-string?
  submodule? : boolean?
  compiled-subdir0 : (and/c path-string? relative-path?)
                   = "compiled"
  compiled-subdir : (and/c path-string? relative-path?)
                  = compiled-subdir0
  roots : (listof (or/c path-string? 'same))
        = (current-compiled-file-roots)
  choose-proc : (path? path? path?
                 . -> .
                 (or/c (symbols 'src 'zo 'so) false/c))
              = (lambda (src zo so) #f)
  rkt-try-ss? : boolean? = #t
procedure
(get-metadata-path  path               
                   [#:roots roots]     
                    sub-path ...+) -> path?
  path : path-string?
  roots : (listof (or/c path-string? 'same))
        = (current-compiled-file-roots)
  sub-path : (or/c path-string? 'same)
parameter
(moddep-current-open-input-file)
 -> (path-string? . -> . input-port?)
(moddep-current-open-input-file proc) -> void?
  proc : (path-string? . -> . input-port?)
struct
(struct exn:get-module-code exn:fail (path)
    #:extra-constructor-name make-exn:get-module-code)
  path : path?
procedure
(resolve-module-path  module-path-v   
                     [rel-to-path-v]) 
 -> (or/c path? symbol?
          (cons/c 'submod (cons/c (or/c path? symbol?) (listof symbol?))))
  module-path-v : module-path?
  rel-to-path-v : (or/c #f path-string? (-> any)) = #f
procedure
(resolve-module-path-index  module-path-index 
                           [rel-to-path-v])   
 -> (or/c path? symbol?
          (cons/c 'submod (cons/c (or/c path? symbol?) (listof symbol?))))
  module-path-index : module-path-index?
  rel-to-path-v : (or/c #f path-string? (-> any)) = #f
procedure
(collapse-module-path module-path-v             
                      rel-to-module-path-v) -> module-path?
  module-path-v : module-path?
  rel-to-module-path-v : (or/c module-path?
                               (-> module-path?))
procedure
(collapse-module-path-index module-path-index     
                            rel-to-module-path-v) 
 -> module-path?
  module-path-index : module-path-index?
  rel-to-module-path-v : (or/c module-path?
                               (-> module-path?))
(collapse-module-path-index module-path-index) -> module-path?
  module-path-index : module-path-index?
procedure
(show-import-tree module-path-v) -> void?
  module-path-v : module-path?
procedure
(make-wrapping-module-begin  wrap-form           
                            [module-begin-form]) 
 -> (syntax? . -> . syntax?)
  wrap-form : syntax?
  module-begin-form : syntax? = #'#%plain-module-begin
procedure
(syntax-local-infer-name stx [use-local?]) -> any/c
  stx : syntax?
  use-local? : any/c = #t
procedure
(build-expand-context v) -> list?
  v : (or/c symbol? list?)
procedure
(generate-expand-context) -> list?
procedure
(normalize-definition  defn-stx           
                       lambda-id-stx      
                      [check-context?     
                       opt+kws?])     -> identifier? syntax?
  defn-stx : syntax?
  lambda-id-stx : identifier?
  check-context? : boolean? = #t
  opt+kws? : boolean? = #f
procedure
(normalize-definition/mk-rhs defn-stx       
                             lambda-id-stx  
                             check-context? 
                             opt+kws?       
                             err-no-body?)  
 -> identifier? (-> syntax? syntax?) syntax?
  defn-stx : syntax?
  lambda-id-stx : identifier?
  check-context? : boolean?
  opt+kws? : boolean?
  err-no-body? : boolean?
procedure
(flatten-begin stx) -> (listof syntax?)
  stx : syntax?
procedure
(flatten-all-begins stx) -> (listof syntax?)
  stx : syntax?
procedure
(parse-define-struct stx orig-stx) -> identifier?
                                      (or/c identifier? false/c)
                                      (listof identifier?)
                                      syntax?
  stx : syntax?
  orig-stx : syntax?
procedure
(build-struct-names  name-id                      
                     field-ids                    
                    [#:constructor-name ctr-name] 
                     omit-sel?                    
                     omit-set?                    
                    [src-stx])                    
 -> (listof identifier?)
  name-id : identifier?
  field-ids : (listof identifier?)
  ctr-name : (or/c identifier? #f) = #f
  omit-sel? : boolean?
  omit-set? : boolean?
  src-stx : (or/c syntax? false/c) = #f
procedure
(build-struct-generation  name-id                      
                          field-ids                    
                         [#:constructor-name ctr-name] 
                          omit-sel?                    
                          omit-set?                    
                         [super-type                   
                          prop-value-list              
                          immutable-k-list])           
 -> (listof identifier?)
  name-id : identifier?
  field-ids : (listof identifier?)
  ctr-name : (or/c identifier? #f) = #f
  omit-sel? : boolean?
  omit-set? : boolean?
  super-type : any/c = #f
  prop-value-list : list? = '(list)
  immutable-k-list : list? = '(list)
procedure
(build-struct-generation*  all-name-ids                 
                           name-id                      
                           field-ids                    
                          [#:constructor-name ctr-name] 
                           omit-sel?                    
                           omit-set?                    
                          [super-type                   
                           prop-value-list              
                           immutable-k-list])           
 -> (listof identifier?)
  all-name-ids : (listof identifier?)
  name-id : identifier?
  field-ids : (listof identifier?)
  ctr-name : (or/c identifier? #f) = #f
  omit-sel? : boolean?
  omit-set? : boolean?
  super-type : any/c = #f
  prop-value-list : list? = '(list)
  immutable-k-list : list? = '(list)
procedure
(build-struct-expand-info  name-id                           
                           field-ids                         
                          [#:omit-constructor? no-ctr?       
                           #:constructor-name ctr-name       
                           #:omit-struct-type? no-type?]     
                           omit-sel?                         
                           omit-set?                         
                           base-name                         
                           base-getters                      
                           base-setters)                 -> any
  name-id : identifier?
  field-ids : (listof identifier?)
  no-ctr? : any/c = #f
  ctr-name : (or/c identifier? #f) = #f
  no-type? : any/c = #f
  omit-sel? : boolean?
  omit-set? : boolean?
  base-name : (or/c identifier? boolean?)
  base-getters : (listof (or/c identifier? false/c))
  base-setters : (listof (or/c identifier? false/c))
procedure
(struct-declaration-info? v) -> boolean?
  v : any/c
procedure
(generate-struct-declaration  orig-stx                  
                              name-id                   
                              super-id-or-false         
                              field-id-list             
                              current-context           
                              make-make-struct-type     
                             [omit-sel?                 
                              omit-set?])           -> syntax?
  orig-stx : syntax?
  name-id : identifier?
  super-id-or-false : (or/c identifier? false/c)
  field-id-list : (listof identifier?)
  current-context : any/c
  make-make-struct-type : procedure?
  omit-sel? : boolean? = #f
  omit-set? : boolean? = #f
procedure
(resolve-path-spec path-spec-stx       
                   source-stx          
                   expr-stx            
                   build-path-stx) -> complete-path?
  path-spec-stx : syntax?
  source-stx : syntax?
  expr-stx : syntax?
  build-path-stx : syntax?
procedure
(transform-template  template-stx                             
                     #:save save-proc                         
                     #:restore-stx restore-proc-stx           
                    [#:leaf-save leaf-save-proc               
                     #:leaf-restore-stx leaf-restore-proc-stx 
                     #:leaf-datum-stx leaf-datum-proc-stx     
                     #:pvar-save pvar-save-proc               
                     #:pvar-restore-stx pvar-restore-stx      
                     #:cons-stx cons-proc-stx                 
                     #:ellipses-end-stx ellipses-end-stx      
                     #:constant-as-leaf? constant-as-leaf?])  
 -> syntax?
  template-stx : syntax?
  save-proc : (syntax? . -> . any/c)
  restore-proc-stx : syntax?
  leaf-save-proc : (syntax? . -> . any/c) = save-proc
  leaf-restore-proc-stx : syntax? = #'(lambda (data stx) stx)
  leaf-datum-proc-stx : syntax? = #'(lambda (v) v)
  pvar-save-proc : (identifier? . -> . any/c) = (lambda (x) #f)
  pvar-restore-stx : syntax? = #'(lambda (d stx) stx)
  cons-proc-stx : syntax? = cons
  ellipses-end-stx : syntax? = #'values
  constant-as-leaf? : boolean? = #f
procedure
(make-variable-like-transformer  reference-stx 
                                [setter-stx])  
 -> set!-transformer?
  reference-stx : syntax?
  setter-stx : (or/c syntax? #f) = #f
procedure
(raise-read-error  msg-string                          
                   source                              
                   line                                
                   col                                 
                   pos                                 
                   span                                
                  [#:extra-srclocs extra-srclocs]) -> any
  msg-string : string?
  source : any/c
  line : (or/c number? false/c)
  col : (or/c number? false/c)
  pos : (or/c number? false/c)
  span : (or/c number? false/c)
  extra-srclocs : (listof srcloc?) = '()
procedure
(raise-read-eof-error msg-string     
                      source         
                      line           
                      col            
                      pos            
                      span)      -> any
  msg-string : string?
  source : any/c
  line : (or/c number? false/c)
  col : (or/c number? false/c)
  pos : (or/c number? false/c)
  span : (or/c number? false/c)
syntax
(#%module-begin module-path)
(#%module-begin module-path reader-option ... form ....)
(#%module-begin             reader-option ... form ....)
 
reader-option = #:read        read-expr
              | #:read-syntax read-syntax-expr
              | #:whole-body-readers? whole?-expr
              | #:wrapper1    wrapper1-expr
              | #:wrapper2    wrapper2-expr
              | #:module-wrapper module-wrapper-expr
              | #:language    lang-expr
              | #:info        info-expr
              | #:language-info language-info-expr
 
  read-expr : (input-port? . -> . any/c)
  read-syntax-expr : (any/c input-port? . -> . any/c)
  whole?-expr : any/c
  wrapper1-expr : (or/c ((-> any/c) . -> . any/c)
                        ((-> any/c) boolean? . -> . any/c))
  wrapper2-expr : (or/c (input-port? (input-port? . -> . any/c)
                         . -> . any/c)
                        (input-port? (input-port? . -> . any/c)
                         boolean? . -> . any/c))
  module-wrapper : (or/c ((-> any/c) . -> . any/c)
                         ((-> any/c) boolean? . -> . any/c))
  info-expr : (symbol? any/c (symbol? any/c . -> . any/c) . -> . any/c)
  language-info-expr : (or/c (vector/c module-path? symbol? any/c) #f)
  lang-expr : (or/c module-path?
                    (and/c syntax? (compose module-path? syntax->datum))
                    procedure?)
procedure
(make-meta-reader  self-sym               
                   path-desc-str          
                  [#:read-spec read-spec] 
                   module-path-parser     
                   convert-read           
                   convert-read-syntax    
                   convert-get-info)      
 -> procedure? procedure? procedure?
  self-sym : symbol?
  path-desc-str : string?
  read-spec : (input-port? . -> . any/c) = (lambda (in) ....)
  module-path-parser : (any/c . -> . (or/c module-path? #f
                                           (vectorof module-path?)))
  convert-read : (procedure? . -> . procedure?)
  convert-read-syntax : (procedure? . -> . procedure?)
  convert-get-info : (procedure? . -> . procedure?)
procedure
(lang-reader-module-paths bstr)
 -> (or/c #f (vectorof module-path?))
  bstr : bytes?
procedure
(wrap-read-all mod-path         
               in               
               read             
               mod-path-stx     
               src              
               line             
               col              
               pos)         -> any/c
  mod-path : module-path?
  in : input-port?
  read : (input-port . -> . any/c)
  mod-path-stx : syntax?
  src : (or/c syntax? #f)
  line : number?
  col : number?
  pos : number?
procedure
(split-for-body stx body-stxes) -> syntax?
  stx : syntax?
  body-stxes : syntax?
procedure
(expand-for-clause orig-stx clause) -> syntax?
  orig-stx : syntax?
  clause : syntax?
procedure
(source-location? x) -> boolean?
  x : any/c
procedure
(source-location-list? x) -> boolean?
  x : any/c
procedure
(source-location-vector? x) -> boolean?
  x : any/c
procedure
(check-source-location! name x) -> void?
  name : symbol?
  x : any/c
procedure
(build-source-location loc ...) -> srcloc?
  loc : source-location?
procedure
(build-source-location-list loc ...) -> source-location-list?
  loc : source-location?
procedure
(build-source-location-vector loc ...) -> source-location-vector?
  loc : source-location?
procedure
(build-source-location-syntax loc ...) -> syntax?
  loc : source-location?
procedure
(source-location-known? loc) -> boolean?
  loc : source-location?
procedure
(source-location-source loc) -> any/c
  loc : source-location?
procedure
(source-location-line loc)
 -> (or/c orexact-positive-integer? #f)
  loc : source-location?
procedure
(source-location-column loc)
 -> (or/c exact-nonnegative-integer? #f)
  loc : source-location?
procedure
(source-location-position loc)
 -> (or/c exact-positive-integer? #f)
  loc : source-location?
procedure
(source-location-span loc)
 -> (or/c exact-nonnegative-integer? #f)
  loc : source-location?
procedure
(source-location-end loc)
 -> (or/c exact-nonnegative-integer? #f)
  loc : source-location?
procedure
(update-source-location loc                     
                        #:source source         
                        #:line line             
                        #:column column         
                        #:position position     
                        #:span span)        -> source-location?
  loc : source-location?
  source : any/c
  line : (or/c exact-nonnegative-integer? #f)
  column : (or/c exact-positive-integer? #f)
  position : (or/c exact-nonnegative-integer? #f)
  span : (or/c exact-positive-integer? #f)
procedure
(source-location->string loc) -> string?
  loc : source-location?
procedure
(source-location->prefix loc) -> string?
  loc : source-location?
procedure
(syntax-source-directory stx) -> (or/c path? #f)
  stx : syntax?
procedure
(syntax-source-file-name stx) -> (or/c path? #f)
  stx : syntax?
syntax
(quote-srcloc)
(quote-srcloc form)
(quote-srcloc form #:module-source expr)
syntax
(quote-source-file)
(quote-source-file form)
syntax
(quote-line-number)
(quote-line-number form)
syntax
(quote-column-number)
(quote-column-number form)
syntax
(quote-character-position)
(quote-character-position form)
syntax
(quote-character-span)
(quote-character-span form)
syntax
(quote-srcloc-string)
(quote-srcloc-string form)
syntax
(quote-srcloc-prefix)
(quote-srcloc-prefix form)
syntax
(quote-module-name submod-path-element ...)
syntax
(quote-module-path submod-path-element ...)
syntax
(quote-syntax/keep-srcloc datum)
(quote-syntax/keep-srcloc #:source source-expr datum)
procedure
(expand-syntax-top-level-with-compile-time-evals stx) -> syntax?
  stx : syntax?
procedure
(expand-top-level-with-compile-time-evals stx) -> syntax?
  stx : syntax?
procedure
(expand-syntax-top-level-with-compile-time-evals/flatten stx)
 -> (listof syntax?)
  stx : syntax?
procedure
(eval-compile-time-part-of-top-level stx) -> void?
  stx : syntax?
procedure
(eval-compile-time-part-of-top-level/compile stx)
 -> (listof compiled-expression?)
  stx : syntax?
syntax
(provide-and-document doc-label-id doc-row ...)
 
doc-row = (section-string (name type-datum doc-string ...) ...)
        | (all-from prefix-id module-path doc-label-id)
        | (all-from-except prefix-id module-path doc-label-id id ...)
           
   name = id
        | (local-name-id external-name-id)
procedure
(lookup-documentation module-path-v     
                      label-sym)    -> any
  module-path-v : module-path?
  label-sym : symbol?
procedure
(wrap-expr/c  contract-expr            
              expr                     
             [#:positive pos-blame     
              #:negative neg-blame     
              #:name expr-name         
              #:macro macro-name       
              #:context context])  -> syntax?
  contract-expr : syntax?
  expr : syntax?
  pos-blame : (or/c syntax? string? module-path-index?
                    'from-macro 'use-site 'unknown)
            = 'use-site
  neg-blame : (or/c syntax? string? module-path-index?
                    'from-macro 'use-site 'unknown)
            = 'from-macro
  expr-name : (or/c identifier? symbol? string? #f) = #f
  macro-name : (or/c identifier? symbol? string? #f) = #f
  context : (or/c syntax? #f) = (current-syntax-context)
syntax
(phase1-eval ct-expr maybe-quote maybe-catch?)
 
 maybe-quote = 
             | #:quote quote-id
                
maybe-catch? = 
             | #:catch? catch?
syntax
(convert-compile-time-error expr)
syntax
(convert-syntax-error expr)
procedure
(internal-definition-context-track intdef-ctx     
                                   stx)       -> syntax?
  intdef-ctx : internal-definition-context?
  stx : syntax?
