static L filter(Iterable c, O pred) { new L x; for (O o : c) if (isTrue(callF(pred, o))) x.add(o); ret x; } static L filter(O pred, Iterable c) { ret filter(c, pred); }