Macro Hygiene and Design: Writing Macros that Compose
Identifiers inside a macro expansion live in a separate namespace from the caller's code. A macro cannot accidentally shadow, capture, or conflict with variables at its call site. Naming collisions are structurally prevented.