This is analogous to the exception in `__mul__`. It's not clear to me when to raise an exception and when to return `NotImplemented`. I wrapped all subclass calls with `try: ... except ValueError: return NotImplemented`. However, this solution does not produce any valuable error message.