•Each template name records its original name, lexical context, and specific macro call context
•A named value reference and a binding connect if and
only if the original name and the specific
macro call occurrences are both the same
–Hygiene context is dynamically bound during
expansion
–Hygiene contexts can also be manually established and dynamically bound
•References to global bindings should mean the same thing
as it did in macro definition
–Hard to do in Java without violating security
–Forces user to manually export macro uses