public static IComparer<T> ThenByDescending<T, TKey>(this IComparer<T> baseComparer, Func<T, TKey> keySelector)
        {
            if (baseComparer is null)
            {
                throw new ArgumentNullException(nameof(baseComparer));