// iterate safely (& quickly) in the face of concurrent modifications static IterableIterator concurrentlyIterateList(final L l) { ret iteratorFromFunction_withEndMarker_f0(new F0() { int i; A get() { int _i = i++; synchronized(l) { ret _i < l(l) ? l.get(i) : (A) iteratorFromFunction_endMarker; // ugly cast } } }); }