Luca Cardelli and friends studied a mechanism for adding new productions to a language in the early 90s and came up with a pretty decent solution. (I actually had an undergraduate do some similar, and he produced a paper with the title "Extend-syntax doesn't". The `extend-syntax' refers to the predecessor of define-syntax in Scheme (Kohlbecker, Scheme 84).) -- Matthias