> I haven't followed the thread carefully but why does the bird have to be a penguin?
A bird doesn't have to be a penguin : *instance* (Penguin b) => Bird b where fly = -- fly method for penguins Says that every Penguin is a Bird. But thinking back about it, there is a problem when trying to define the method walk, because: class Penguin p where walkPenguin :: .... instance (Penguin b) => Bird b where fly = ..... walk = walkPenguin is kind of awful, because walk has to be duplicated. So, not the best way to go... 2011/7/19 Maciej Marcin Piechotka <uzytkown...@gmail.com> > On Tue, 2011-07-19 at 01:13 +0200, Yves Parès wrote: > > Oh, I got it: You want to have: > > > > class Bird b where > > > > class Penguin p where > > > > instance (Penguin b) => Bird b where > > fly = -- fly method for penguins > > > > I haven't followed the thread carefully but why does the bird have to be > a penguin? > > ---------- > > As a side note - I agree with Christopher Done that the answer is that > you shouldn't require for bird to fly. > > Regards > > _______________________________________________ > 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