There's nothing wrong with the definition of FooGraph. That's how you do it.
-- Lennart On Tue, Feb 24, 2009 at 6:09 PM, Derek Gladding <de...@solidmath.com> wrote: > Please forgive me if I'm still mentally contaminated by the OO way of seeing > (and discussing) the universe, but I'm trying to figure out how to "inherit > an interface" from a multi-parameter type class. > > I have a Graph class that's parameterisable by Node and Edge type: > > class (Node a, Edge b) => Graph a b where > (lots of stuff that you can do with Graph a b) > > Now, I'd like to build a FooGraph on top of this that adds additional > capabilities: > > class (Graph a b) => FooGraph a b where > (lots of additional stuff) > > but this isn't allowed (kind mismatch). > > Of couse, I can do: > > class (Node a, Edge b) => FooGraph a b > > but this means that I have to manually replicate the Graph a b operations in > the FooGraph a b class definition, which is (a) work that the machine should > (?) be able to do for me, and (b) fragile. > > Any pointers / wisdom would be very much appreciated. > > - Derek > > > > _______________________________________________ > Haskell-Cafe mailing list > Haskell-Cafe@haskell.org > http://www.haskell.org/mailman/listinfo/haskell-cafe > _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe