"This paper describes a modified form of Kohlbecker’s algo-
rithm for reliably hygienic (capture-free) macro expansion
in block-structured languages, where macros are source-to-
source transformations specified using a high-level pattern
language."