Hieb's and Dybvig's hygienic macro package. Provides syntax-case and syntax-rules. A postscript manual can be found here: Indiana University Computer Science Department, Technical Report #356 21
Notes:
The alternative form
(define-syntax (keyword var) ...)
is allowed for define-syntax.
The module system described in the Chez Scheme Uses Manual is provided. Note that this module system does not facilitate separate compilation.
To use the macro-system in compiled or interpreted code, just give the -hygienic option to the compiler or interpreter. The syntax-case unit has only to be declared as used if compiled code invokes macroexpand or eval with high-level macro syntax forms.
The macros define-id-macro, let-macro and let-id-macro and the procedures undefine-macro! and macro? can currently not be used.
define-values is not allowed in internal definitions.
define-syntax can not be used inside an eval-when form.
21 http://www.call-with-current-continuation.org/tr356.ps