[EMAIL PROTECTED] wrote:
Agreed. I was about to answer that the situation is the same with the
monad laws not being valid for some monad we all love, and still we do
not consider the resulting programs illegal.


I do!  The H98 report says that all Monad instances must obey the monad
laws.  If they don't, they're illegal.

Okay. I wasn't aware that the report makes this mandatory.

In general, it'd be nice to be able to get the compiler to check that
you've implemented at least a minimal set of operations in your class
instance.

Yes. But actually what we would need would be that it checks as well
that we have implemented at *most* a minimal set of operations.
Otherwise, we are back to the point where I can implement both (==) and
(/=), and in a way that the supposed invariant is broken.

Ciao, Janis.

--
Dr. Janis Voigtlaender
http://wwwtcs.inf.tu-dresden.de/~voigt/
mailto:[EMAIL PROTECTED]
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to