Section 3 (Specification) of the proposed SRFI includes the paragraph
> The expander maintains hygiene with the help of marks and substitutions. Marks are applied
> selectively by the expander to the output of each transformer it invokes, and substitutions
> are applied to the portions of each binding form that are supposed to be within the scope of
> the bound identifiers. Marks are used to distinguish like-named identifiers that are introduced
> at different times (either present in the source or introduced into the output of a particular
> transformer call), and substitutions are used to map identifiers to their expand-time values.
Should marks and substitutions be considered part of the
specification, or an implementation technique? I would suggest that
the SRFI author try to find a way to specify the macro system
precisely without going into details of how the expander is
implemented.
David Feuer