
18 Jul
2011
18 Jul
'11
11:53 p.m.
On 19/07/2011, at 11:09 AM, Patrick Browne wrote:
data Emperor = Emperor data Robin = Robin
class Bird a where fly :: a -> a -> a walk :: a -> a -> a
instance Bird Robin where fly x y = y walk x y = x
instance Bird Emperor where -- No fly method walk x y = y
Note that "no 'fly' method is visibly presented" is not at all the same thing as "no 'fly' method EXISTS". From the report: "The default class method for v sub i is used if no binding for it is given in a particular instance declaration (see Section 4.3.2)." so the absence of a method in 'instance Bird Emperor' doesn't mean that it doesn't _have_ one, just that it inherits the default class method.