I think it would be better to derive `TotalEq` instead of `PartialEq`. By using `TotalEq` you state explicitly that if `a == b` and `b == c` then `a == c`. By using `PartialEq` you implicitly say that this property is not always valid.