static SplittableSteppable splittableSteppable_forEach(final Iterable items, final VF1 f) {
ret new SplittableSteppable {
Iterator it = iterator(items);
public bool step() { // return false if done
if (!it.hasNext()) false;
callF(f, it.next());
true;
}
// invalidates original steppable
public L split(int n) {
final Lock lock = lock();
ret rep((Steppable) new Steppable {
public bool step() {
A a;
{
lock lock;
if (!it.hasNext()) false;
a = it.next();
}
callF(f, a);
true;
}
}, n);
}
};
}