public void each(Func f) { long start = m_start; long end = m_end; if (start < end) { if (m_exclusive) --end; for (long i=start; i<=end; ++i) f.call(i); } else { if (m_exclusive) ++end; for (long i=start; i>=end; --i) f.call(i); } }