static L collectNonNulls(Collection c, S field) { ret collectNonNulls(field, c); } static L mapMethodLike collectNonNulls(S field, Collection c) { new L l; if (c != null) for (O a : c) { O x = getOpt(a, field); if (x != null) l.add(x); } ret l; } /*ifclass Concept static L collect(Class c, S field) { ret collect(list(c), field); } endif TODO: make translator ignore stuff in ifclass until resolved */