static LongRange intersectLongRanges(LongRange a, LongRange b) { long start = max(a.start, b.start); long end = min(a.end, b.end); ret start <= end ? LongRange(start, end) : null; }