static Iterator chainIterators(Collection> l) { final L> _l = new LinkedList(l); ret iteratorFromFunction(func -> A { while (nempty(_l)) { if (first(_l).hasNext()) ret first(_l).next(); _l.remove(0); } null; }); }