static L filter_pcall(Iterable c, O pred) {
if (pred instanceof F1) ret filter_pcall(c, (F1) pred);
new L x;
if (c != null) for (O o : c)
if (isTrue(pcallF(pred, o)))
x.add(o);
ret x;
}
static L filter_pcall(O pred, Iterable c) {
ret filter_pcall(c, pred);
}
static L filter_pcall(Iterable c, F1 pred) {
new L x;
if (c != null) for (B o : c) pcall {
if (pred.get(o).booleanValue())
x.add(o);
}
ret x;
}
static L filter_pcall(F1 pred, Iterable c) {
ret filter_pcall(c, pred);
}