static IterableIterator it_observePrefix(final Iterator src) { ret iteratorFF(new F0 { S prefix; O get() { if (!src.hasNext()) ret endMarker(); S s = src.next(); prefix = prefix == null ? s : commonPrefix(prefix, s); ret prefix; } }); }