The current example uses recursion which can be hard to understand for newcomers. Maybe something like this would be better: ```d int opApply(int delegate(int) dg) { foreach (i; 0 .. 5) { if (auto result = dg(i)) { return result; } } return 0; } ```