racket/collects/rnrs/main-6.ss
2008-03-12 00:22:26 +00:00

44 lines
1.6 KiB
Scheme

#lang scheme/base
(define-syntax re-export
(syntax-rules ()
[(_) (re-export rnrs/base-6
rnrs/exceptions-6
rnrs/programs-6
rnrs/files-6
rnrs/bytevectors-6
rnrs/hashtables-6
rnrs/sorting-6
rnrs/syntax-case-6
rnrs/conditions-6
rnrs/unicode-6
rnrs/control-6
rnrs/lists-6
rnrs/enums-6
rnrs/arithmetic/bitwise-6
rnrs/arithmetic/fixnums-6
rnrs/arithmetic/flonums-6
rnrs/io/ports-6
rnrs/io/simple-6
rnrs/records/inspection-6
rnrs/records/syntactic-6
rnrs/records/procedural-6)]
[(_ id) (begin
(require id
;; Shift any run time exports to for-syntax:
(for-syntax (only-meta-in 0 id))
;; Shift any for-syntax exports for run time:
(for-template (only-meta-in 1 id)))
(provide (all-from-out id)
(for-template (all-from-out id))
(for-syntax (all-from-out id))))]
[(_ id ...)
(begin (re-export id) ...)]))
(re-export)
;; Also need to export prelims for syntax, since there will
;; not be a for-syntax import when this module is imported:
(require (for-syntax r6rs/private/prelims))
(provide (for-syntax (all-from-out r6rs/private/prelims)))