static A firstThat(Collection l, O pred) { for (A a : unnull(l)) if (checkCondition(pred, a)) ret a; null; } static A firstThat(Collection l, IF1 pred) { ret firstThat(l, (O) pred); } static A firstThat(IF1 pred, Collection l) { ret firstThat(l, pred); }