[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Specification



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