static L filter(Iterable c, O pred) {
new L x;
if (c != null) 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);
}
static L filter(Iterable c, F1 pred) {
new L x;
if (c != null) for (O o : c)
if (pred.get(o).booleanValue())
x.add(o);
ret x;
}
static L filter(F1 pred, Iterable c) {
ret filter(c, pred);
}