code: public Range<T> leftHalfOpen(T lower, T upper) {
          return new DenseRange<T>(sequencer, comparator, Endpoint.Exclude, lower, Optional.of(upper), Endpoint.Include);
      }
docs: returns ( lower, upper ]
  
  @param lower
  @param upper
  @return (lower, upper]