I don't really want to encourage an in-depth discussion of Heron here, and I'd like to steer things back towards the article or at least towards metaprogramming in general. That said, some remarks on Heron's metaprogramming:
1. I for one am flattered that Christopher's work was inspired by MPL.
2. One of the drawbacks of many proposed in-language metaprogramming systems is that they impose limitations that don't apply to the runtime part of the language. Template metaprogramming may work that way, but using a different syntax and limited semantics doesn't seem to provide any real advantage. I don't see any reason that
all of the language's capabilities shouldn't be available at compile-time. There's precedent for what I'm describing in Forth and I think also in Scheme.
The OP might want to read about metacode:
http://www.vandevoorde.com/Daveed/News/Archives/000014.html for more examples of language-based metaprogramming support.