static A lastThat(L l, O pred) {
for (int i = l(l)-1; i >= 0; i--) {
A a = l.get(i);
if (checkCondition(pred, a))
ret a;
}
null;
}
static A lambdaMapLike lastThat(O pred, L l) {
ret lastThat(l, pred);
}
static A lastThat(IPred pred, L l) {
ret lastThat((O) pred, l);
}
static A lastThat(L l, IPred pred) {
ret lastThat(pred, l);
}
static A lastThat(Iterable l, IPred pred) {
A x = null;
if (l != null) for (a : l)
if (pred.get(a))
x = a;
ret x;
}