Intervals are nonEmpty and don't intersect lower.upperBound is strictly less than upper.lowerBound.
An interval that joins lower and upper in a continuous interval without intersecting any of them. For example for (-5, 1] and (4, 6), a join is (1,4]