You should not override Equals on a mutable reference type. This is because overriding Equals requires that you also override the GetHashCode method, as discussed in the previous section. This means that the hash code of an instance of a mutable reference type can change during its lifetime, which can cause the object to be lost in a hash table.
It seems that this won’t be easy task, especially not to break existing solutions.
I have to think more thoughtfully how to handle this issue.