docs: public IPAddressSeqRange join(IPAddressSeqRange other) {
  		IPAddress otherLower = other.getLower();
  		IPAddress otherUpper = other.getUpper();
  		IPAddress lower = this.getLower();
  		IPAddress upper = this.getUpper();
  		int lowerComp = compareLowValues(lower, otherLower);
  		if(!overlaps(other)) {
  			if(lowerComp >= 0) {
  				if(otherUpper.increment(1).equals(lower)) {
  					return create(otherLower, upper);
  				}
  			} else {
  				if(upper.increment(1).equals(otherLower)) {
  					return create(lower, otherUpper);
  				}
  			}
  			return null;
  		}
  		int upperComp = compareLowValues(upper, otherUpper);
  		IPAddress lowestLower, highestUpper;
  		if(lowerComp >= 0) {
  			if(lowerComp == 0 && upperComp == 0) {
  				return this;
  			}
  			lowestLower = otherLower;
  		} else {
  			lowestLower = lower;
  		}
  		highestUpper = upperComp >= 0 ? upper : otherUpper;
  		return create(lowestLower, highestUpper);
  	}