android/guava/src/com/google/common/collect/DiscreteDomain.java
C offset(C origin, long distance) {
    checkNonnegative(distance, "distance");
    for (long i = 0; i < distance; i++) {
      origin = next(origin);
    }
    return origin;
  }
C offset(C origin, long distance) {
    checkNonnegative(distance, "distance");
    for (long i = 0; i < distance; i++) {
      origin = next(origin);
    }
    return origin;
  }
Returns, conceptually, "origin + distance", or equivalently, the result of calling {@link
#next} on {@code origin} {@code distance} times.