and every other data structure in every language using Hashable
equivalents
Equatable
documentation says that "Equality implies substitutability—any two instances that compare equally can be used interchangeably in any code that depends on their values".
User should expect that values that aren't equal aren't substituable, i.e. are different keys.
You should treat hash as a tool to speed things up.