static ItIt cyclicListIterator(L l) { if (empty(l)) ret emptyItIt(); ret new ItIt { int i; public bool hasNext() { true; } public A next() { A a = l.get(i); if (++i >= l(l)) i = 0; ret a; } }; }