static O smallestList_get(O l, int i) { if (l == null) null; if (l cast Pair) ret i == 0 ? l.a : i == 1 ? l.b : null; if (l cast T3) ret i == 0 ? l.a : i == 1 ? l.b : i == 2 ? l.c : null; if (l cast O[]) ret get(l, i); ret i == 0 ? l : null; }