
Patrick Browne :
I was checking out a paper that said: "Type classes allow for partial inheritance, so that penguins can be birds without flying behavior." ... as pointed out by Jerzy my question is silly because can penguins can fly ...
No, the question is not silly because of that crazy Adelie tribe. The question is doubtful, because the Haskell type classes is not an object-oriented system of classes, subclasses, etc. When you declare Rationals, you don't "inherit" the multiplication for them as Numbers. This "inheritance" you wish may manifest itself when you specify the *instances*. That's why I suggested how you might do that: for some datatypes, say the Emperors, you specify some special flying method (e.g. dummy or bombing), or you don't specify it at all. And the Emperors won't fly. Jerzy Karczmarczuk