code: C offset(C origin, long distance) {
      checkNonnegative(distance, "distance");
      for (long i = 0; i < distance; i++) {
        origin = next(origin);
      }
      return origin;
    }
docs: Returns, conceptually, "origin + distance", or equivalently, the result of calling {@link
  #next} on {@code origin} {@code distance} times.