
On 14/06/05, Adde
While we're at it, I tried adding a class Length in between Unit and Meter, like this:
class Unit u where shortName :: u -> String
class (Unit u) => Length u
instance Length Meter where shortName u = "m"
From the information I can find on the web subclassing should include all of the methods in the superclasses but I get this error:
`shortName' is not a (visible) method of class `Length'
It's saying that shortName isn't a method of the class Length, which is right, it's a method of the class Unit, so you should put it in the Unit instance rather than in the Length instance. The declarations in an instance of a class C may contain bindings only for the class methods of C. The class methods of C are exactly those whose type signatures are given in the class declaration of C (which may not overlap with other class declarations or top level bindings).
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe