The argument that people should define custom data types rather than using triples doesn't have any bearing on whether triples should implement these type classes. That argument would imply that whether the type classes are implemented doesn't matter, because if you're complaining about getting unexpected results the response is "use a custom data type", and similarly if you're complaining about the lack of a type class instance the response is "use a custom data type". So, even though it's true that people generally should use custom data types instead of triples, it's irrelevant to the discussion.
+1 on the proposal. Consistency is good.