Suppose that
class A a where
m1 :: a -> a
m2 :: a -> a
m3 :: a -> a
...
where it is possible to write default implementation for m2 and m3 by using m1.
Is it better to leave m2 and m3 into A or write them as extra functions m2 :: A a => a -> a outside A? Or in other words, is worth to minimize the class API or does it matter?
I checked (quickly) some style guides, like programmin guidelines and some of the links in large-scale design-question, and some books (craft & rwh), but couldn't find a recommendation to this one. If there are presentations, blogs or books covering this kind of issues, please, could you share some pointers?
Email-list thread type class design discusses this and might emphasize minimizing.