code: public static <T extends Comparable<? super T>> Range<T> create(final T lower, final T upper) {
          return new Range<T>(lower, upper);
      }
docs: Create a new immutable range, with the argument types inferred.
  <p/>
  <p>
  The endpoints are {@code [lower, upper]}; that
  is the range is bounded. {@code lower} must be {@link Comparable#compareTo lesser or equal}
  to {@code upper}.
  </p>
  
  @param lower The lower endpoint (inclusive)
  @param upper The upper endpoint (inclusive)
  @throws NullPointerException if {@code lower} or {@code upper} is {@code null}