To situate Justin and Shriram's work, it's useful to understand the concept of syntactic sugar, a term used to describe programming language syntax that's defined in terms of the rest of the language. Syntactic sugar is often used to make programming languages easier for humans to read or express clearly and concisely. "Syntactic sugar," they explain, "is widely used in language implementation. Its benefits are, however, offset by the comprehension problems it presents to programmers once their program has been transformed. In particular, after a transformed program has begun to evaluate (or otherwise be altered by a black-box process), it can become unrecognizable."

Desugaring is the process of expanding out syntactic sugar; its reverse is resugaring, which reflects evaluation steps in the core language in terms of the syntactic sugar that the programmer used. Justin and Shriram's technique offers two valuable advances: it handles hygiene (ensuring that syntactic sugar doesn't accidentally capture identifiers), and allows almost arbitrary rules for rewriting programs.