bool IEqualityComparer <T> .Equals(T?x, T?y)
 {
     if (x is null)
     {
         return(y is null);
     }
     else
     {
         return(y is not null && _comparer.PartEquals(x, y));
     }
 }
 protected override bool PartEquals(TPart?x, TPart?y)
 {
     if (x is null)
     {
         return(y is null);
     }
     else
     {
         return(y is not null && _partComparer.PartEquals(x, y));
     }
 }
 protected override bool PartEquals(TPart x, TPart y)
 {
     return(_partComparer.PartEquals(x, y));
 }