I don't think anyone is going to say that Haskell's type classes in any way fit the traditional notion of a type. It's more the exception that proves the rule in this case.
It is a very old saying from when "prove" meant what "test" means now. Exception is meant in the sense of exceptional, unusual. "The unusual event tests the heuristic."
It's actually a really simple thing that most people misunderstand (such as the parent). It means that if you only provide an exception, it implies a rule. For example, if you say:
Parking allowed 3pm-5pm
that implies that parking is not allowed at other times.
Pointing out how flexible Haskell's type system is just proves how inflexible type systems generally are. It doesn't really demonstrate that most type systems are useful.
In C++ or Java they certainly are, but Haskell's type classes, for instance, are much more similar to Go's interfaces.