No good solution in the short term. Longer term I think we need 3 things: the ability to iterate over array dimensionality, the ability to iterate over cluster elements, and the ability to have recursive macros. The first two probably require variations of the for loop while the last probably only needs an enhancement to the xnode that implements macros. Actually, it might be possible to do all 3 by just modifying the xnode. I'll have to think about that some more...