public object eachWhile(Func f) { for (int i=0; i<m_size; i++) { object r = f.call(m_values[i], i); if (r != null) return r; } return null; }