static IntRange intersectIntRanges(IntRange a, IntRange b) { int start = max(a.start, b.start); int end = min(a.end, b.end); ret start <= end ? IntRange(start, end) : null; }