static A lowestByField(Iterable l, S field) {
A lowest = null;
O lowestValue = null;
for (A a : unnull(l)) {
O val = getOpt(a, field);
if (lowest == null || cmp(val, lowestValue) < 0) {
lowest = a;
lowestValue = val;
}
}
ret lowest;
}
static A mapMethodLike lowestByField(S field, Iterable l) {
ret lowestByField(l, field);
}