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. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe