internal static bool Intersects(IRange range1, IRange range2) { Contract.Requires(range1 != null); Contract.Requires(range2 != null); return range2.End > range1.Start && range1.End > range2.Start; }