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