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


_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to