Macros that Work Together: Compile-Time Bindings, Partial Expansion, and Definition Contexts
Flatt, Culpepper, Darais, and Findler
Journal of Functional Programming, 22(2), 2012

March 2012 draft   includes April 2014 typo repairs

Models from the paper: models.zip