Returns the least upper bound.
Interval lub(Interval i) => new Interval(Math.max(min, i.min), Math.max(max, i.max));