public object reduce(object reduction, Func f) { for (int i=0; i<m_size; i++) reduction = f.call(reduction, m_values[i], i); return reduction; }