chickadee » contracts » define-macro-with-contract

(define-macro-with-contract code docstring body))syntax

where docstring is optional, code is the complete macro-code (name . args), i.e. the pattern of a macro call, and body is one of

 (with-renamed (%sym ...) xpr . xprs)
 (with-injected (sym ...) xpr . xprs)
 xpr . xprs

In the first case each %sym is a renamed version of sym, in the second sym is injected as is, i.e. not renamed, and in the last case no symbol is injected, i.e. the macro is hygienic.