It's an eq check, so it is extremely cheap. The "common heritage" scenario is one that is very important for the use case that caused me to work on this in the first place, so I thought since the whole thing is much faster than before I could justify leaving it in. I have no idea how common this is in usage of HashSet. But note that having good performance on something like this might enable new use cases.