code: private int compareStarts(Interval<T> other){
  		if (start == null && other.start == null)
  			return 0;
  		if (start == null)
  			return -1;
  		if (other.start == null)
  			return 1;
  		int compare = start.compareTo(other.start);
  		if (compare != 0)
  			return compare;
  		if (isStartInclusive ^ other.isStartInclusive)
  			return isStartInclusive ? -1 : 1;
  		return 0;
  	}
docs: A {@link Comparator} that only considers the start points of the intervals. It can not and must
  not be used as a standalone {@link Comparator}. It only serves to create a more readable and
  modular code.