- (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.