[Haskell-cafe] Class invariants/laws
Janis Voigtlaender
voigt at tcs.inf.tu-dresden.de
Thu Oct 18 03:47:41 EDT 2007
ajb at spamcop.net 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:voigt at tcs.inf.tu-dresden.de
More information about the Haskell-Cafe
mailing list