+ def __eq__(self, their): # pragma: no cover
+ raise NotImplementedError()
+
+ def __ne__(self, their):
+ return not(self == their)
+
+ def __lt__(self, their): # pragma: no cover
+ raise NotImplementedError()
+
+ def __gt__(self, their): # pragma: no cover
+ return not(self < their)
+
+ def __le__(self, their): # pragma: no cover
+ return (self == their) or (self < their)
+
+ def __ge__(self, their): # pragma: no cover
+ return (self == their) or (self > their)
+