In the early work on language extensi- bility [Gal74, Sta75], both syntax and semantics could be modi ed arbitrarily, sometimes with disastrous e ects [Chr90]. Traditional macro facilities allow only syntax ext