internal virtual SequenceSorter <TSource> GetEnumerableSorter(SequenceSorter <TSource> next)
            {
                var sorter = new SequenceByElementSorter <TSource>(m_comparer, m_descending, next);

                if (m_parent == null)
                {
                    return(sorter);
                }
                return(m_parent.GetEnumerableSorter(sorter));
            }
            internal virtual SequenceSorter <TSource> GetEnumerableSorter(SequenceSorter <TSource>?next)
            {
                var sorter = new SequenceByElementSorter <TSource>(m_comparer ?? Comparer <TSource> .Default, m_descending, next);

                return(m_parent == null ? sorter : m_parent.GetEnumerableSorter(sorter));
            }