This module contains code for explicit renaming (ER) macros, and is used by the Macro module to provide support for ER macros, both when called directly or when ER macros are found during macro expansion. This ensures both the er-macro-transformer and syntax-rules systems are compatible with each other.
Explicit renaming macros are based on the low-level facility from Will Clinger's paper Hygienic Macros Through Explicit Renaming, which was developed to complement the high level specification language (syntax-rules) from Macros that Work.
Environment where macro was used
Temporary environment to store renamed variables
Form to transform
|-> (LispVal -> LispVal -> [LispVal] -> IOThrowsError LispVal)|
|-> IOThrowsError LispVal|
Handle an explicit renaming macro