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;
  }
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.
Returns conceptually origin + distance or equivalently the result of calling {