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

Reply via email to