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 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.
A unique ID associated with a macro invocation and expansion.
The kind of AST transform.
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.