> Well i don't use the value in my custom hash

`std::unordered_set` can't know that.

> Are you sure you'd prefer a less intuitive solution to remove a 'mutable' keyword?

Yes, very much so. For one, the use of `mutable` here is more a workaround than what the keyword is intended for. 

It's also not very future proof. What if someone decides that having all the separate durations would be nice and adds the duration to the hash function? At best, the program crashes, but more likely is that some collisions will seemingly vanish because the internal state of the set is jumbled. Incredibly hard to debug if the poor guy doesn't know where to look. 

Finally, whenever we need more information about a collision event (force, contact points), these fields also need to be mutable.