Learning MPS involves learning a lot of new concepts. I find templates and their macro language especially arcane. I keep wondering whether the added complexity of templates and macros is essential.
I see a generator as a function
node<A> -> node<B>
Wouldn't it be possible to specify such generators as functions in BaseLanguage, taking advantage of quotations where appropriate? That would decrease the number of new concepts/languages that language developers have to learn.