Module providing the building blocks to create macros and expand them.
Type containing macros bound to symbols which can be applied on an AST expression to transform it.
A trait which abstracts over macros.