public ORMultiValueDictionary <TKey, TValue> Merge(ORMultiValueDictionary <TKey, TValue> other)
        {
            if (_withValueDeltas == other._withValueDeltas)
            {
                return(_withValueDeltas
                    ? new ORMultiValueDictionary <TKey, TValue>(Underlying.MergeRetainingDeletedValues(other.Underlying), _withValueDeltas)
                    : new ORMultiValueDictionary <TKey, TValue>(Underlying.Merge(other.Underlying), _withValueDeltas));
            }

            throw new ArgumentException($"Trying to merge two ORMultiValueDictionaries of different map sub-types");
        }