if there's only one definition, then define it
*outside* the typeclass.
I have a typeclass, which defines the following two member functions:
(t is a Rose Tree.)
getCompNodes :: t -> [CompNode a]
getAllCompNodes :: t -> [CompNode a]
getAllCompNodes t = getCompNodes t
++ (concatMap getAllCompNodes (subForest t))
The first one must be defined uniquely by each instance, but the second
never needs a unique definition.
So, I provided its implementation in the typeclass definition, as shown.