Machinery for hygienic macros, inspired by the
 Matthew Flatt, Ryan Culpepper, David Darais, and Robert Bruce Findler. 2012.
Macros that work together: Compile-time bindings, partial expansion,
and definition contexts. J. Funct. Program. 22, 2 (March 2012), 181-216.
A unique ID associated with a macro invocation and expansion.
A subset of properties from both macro definition and macro call available through global data. Avoid using this if you have access to the original definition or call structures.
The kind of compiler desugaring.
The kind of macro invocation or definition.
A property of a macro expansion that determines how identifiers produced by that expansion are resolved.