int IEqualityComparer <MergeKey <TKey> > .GetHashCode(MergeKey <TKey> obj)
 {
     return(ReferenceEquals(obj.Key, null) ? 0 : _comparer.GetHashCode(obj.Key));
 }
 bool IEqualityComparer <MergeKey <TKey> > .Equals(MergeKey <TKey> x, MergeKey <TKey> y)
 {
     return(ReferenceEquals(x.Key, null)
                             ? ReferenceEquals(y.Key, null)
                             : !ReferenceEquals(y.Key, null) && _comparer.Equals(x.Key, y.Key));
 }