static ItIt takeFirstI(int n, Iterator i) { ret i == null ? null : iff(new F0 { int remaining = n; O get() { ret remaining-- <= 0 || !i.hasNext() ? endMarker() : i.next(); } }); }