
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
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