static A second(L l) {
return get(l, 1);
}
static A second(Iterable l) {
if (l == null) null;
Iterator it = iterator(l);
if (!it.hasNext()) null;
it.next();
ret it.hasNext() ? it.next() : null;
}
static A second(A[] bla) {
ret bla == null || bla.length <= 1 ? null : bla[1];
}
ifclass Pair
static B second(Pair p) {
ret p == null ? null : p.b;
}
endif
ifclass T3
static B second(T3 t) {
ret t == null ? null : t.b;
}
endif
ifclass Producer
static A second(Producer p) {
if (p == null) null;
if (p.next() == null) null;
ret p.next();
}
endif
static char second(S s) {
ret charAt(s, 1);
}
ifclass Either
static B second(Either e) {
ret e == null ? null : e.bOpt();
}
endif