static A third(L l) { return _get(l, 2); } static A third(Iterable l) { if (l == null) null; Iterator it = iterator(l); repeat 2 { if (!it.hasNext()) null; it.next(); } ret it.hasNext() ? it.next() : null; } ifclass Producer static A third(Producer p) { if (p == null) null; repeat 2 { if (p.next() == null) null; } ret p.next(); } endif static A third(A[] bla) { ret bla == null || bla.length <= 2 ? null : bla[2]; } ifclass T3 static C third(T3 t) { ret t == null ? null : t.c; } endif