static Steppable steppable_forEach(Iterable items, VF1 f) {
ret steppable_forEach(items, (O) f);
}
static Steppable steppable_forEach(Iterable items, IVF1 f) {
ret steppable_forEach(items, (O) f);
}
static Steppable steppable_forEach(Iterable items, O f) {
ret new Steppable {
Iterator it = iterator(items);
public bool step() { // return false if done
if (!it.hasNext()) false;
callF(f, it.next());
true;
}
};
}