public bool Overlaps( Range2 <T> range ) => (!Start.HasValue || !range.End.HasValue || Start.Value.CompareTo(range.End.Value) <= 0) && (!End.HasValue || !range.Start.HasValue || End.Value.CompareTo(range.Start.Value) >= 0);
public bool Contains( Range2 <T> range ) => (!Start.HasValue || (range.Start.HasValue && Start.Value.CompareTo(range.Start.Value) <= 0)) && (!End.HasValue || (range.End.HasValue && End.Value.CompareTo(range.End.Value) >= 0));