I have a question about calling __eq__ in some cases.
We're thinking about doing an optimization where say:
if x in d:
where d is a dict would result in only one dict lookup (the second one
being constant folded away). The question is whether it's ok to do it,
despite the fact that it changes the semantics on how many times
__eq__ is called on x.