code: public boolean fastEquals(NumberRange that) {
          return that != null
                  && reverse == that.reverse
                  && inclusive == that.inclusive
                  && compareEqual(from, that.from)
                  && compareEqual(to, that.to)
                  && compareEqual(stepSize, that.stepSize);
      }
docs: Compares a {@link NumberRange} to another {@link NumberRange} using only a strict comparison
  of the NumberRange properties. This won't return true for some ranges which represent the same
  discrete items, use equals instead for that but will be much faster for large lists.
  
  @param that the NumberRange to check equality with
  @return <code>true</code> if the ranges are equal