Example: named foreach loops over objects:
You can achieve almost exactly this by iterating over a delegate (define a method with the same signature as opApply). The only change at the call site is that instead of "foreach(ref c; ts.text)" you'll type "foreach(ref c; &ts.text)".
-- Best regards, Vladimir mailto:vladi...@thecybershadow.net