public List map(Func f) { Type r = f.returns(); if (r == Sys.VoidType) r = Sys.ObjType.toNullable(); List acc = new List(r, (int)size()); for (int i=0; i<m_size; i++) acc.add(f.call(m_values[i], i)); return acc; }