Good call, that makes sense. How about having the type check be:

```
if not isinstance(other, self.__class__)
```
?