Range overlaps other range
bool overlaps(Range other) { return contains(other.minValue) || contains(other.maxValue); }