If the types are different I think we should return NotImplemented rather than False. This makes mistakes like comparing a Monomer to a Parameter fail noisily rather than silently returning False. I like to use this pattern for operator overloads (see the various implementations for `__add__` et al.) :

```python
def __op__(self, other):
    if <types are OK>:
        return <whatever>
    else:
        return NotImplemented