public CompositeRange <T> Except <TKey2>(CompositeRange <T, TKey2> other)
        {
            if (IsEmpty || other.IsEmpty || !ContainingRange.HasIntersection(other.ContainingRange))
            {
                return(this);
            }

            return(Intersect(other.GetComplementation()));
        }
        public CompositeRange <T> Except(

            #region T4-dont-replace
            CompositeRange <T> other
            #endregion

            )
        {
            if (IsEmpty || other.IsEmpty || !ContainingRange.HasIntersection(other.ContainingRange))
            {
                return(this);
            }

            return(Intersect(other.GetComplementation()));
        }