static A firstThat(Collection l, O pred) { if (l != null) for (A a : 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); }