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