static DoubleRange intersectDoubleRanges(DoubleRange a, DoubleRange b) { double start = max(a.start, b.start); double end = min(a.end, b.end); ret start <= end ? DoubleRange(start, end) : null; }