protected virtual bool SetValues(TKey key, object[] data)
        {
            _seen.Add(key);
            if (Equals(Min, null) || _comparer.Compare(key, Min) < 0)
            {
                Min = key;
            }
            if (Equals(Max, null) || _comparer.Compare(Max, key) < 0)
            {
                Max = key;
            }

            return(Iterator.Apply(data, (mapper, target) => ((ISequenceMapper <TKey>)mapper).SetValues(key, target)));
        }