The problem with `isinstance` is that it checks only the object and it does not care about its contents, when you compare that to `Hashable` . If you let it check over the `((1,2, (3, {})), 1)`, it will tell you True but you can't hash that.