[Haskell-cafe] Re: type class question

Jules Bean jules at jellybean.co.uk
Mon Dec 10 06:34:32 EST 2007


Try again without missing out the list...

Peter Padawitz wrote:
 > Jules Bean wrote:
 >> Incidentally, I question why the "compFoo" are methods. Why not just 
make them polymorphic functions? They don't look like you expect 
instances to change them. The code continues to compile if I make them 
functions and amend their signatures as required.
 >
 > I put compFoo into the class for the same reason why /= is part of 
the class Eq: both functions are unique as soon as the others have been 
instantiated.

I believe you misunderstand the reason.

/= is part of Eq in case a particular instance has a particularly 
efficient way to implement /=, rather than using not and (==).

"Being unique as soon as the others are implemented" is not a reason not 
to make it a method.


compBlock :: (Java block command intE boolE) => Block -> block
compBlock = block_ . map compCommand

still retains that property.

Jules




More information about the Haskell-Cafe mailing list