The 1.4 report says:

"A type may not be declared as an instance of a particular class more than
once in the program."

Doesn't it really mean that a type _constructor_ may not appear in more
than one instance declaration for a particular class?  That (stronger)
condition seems to be what ghc and hugs implement, and probably makes more
sense, given the rationale of the overlapping instance rule in the first
place.


Specifically, I'm thinking of situations such as:

instance A a => C [a]

instance B a => C [a]

where A and B are incomparable classes.  If I were to take the report
at its word, then this would be legal, provided no type is declared to
be an instance of both A and B.  But that's not what's intended, is it?

Cheers,
Alex.



Reply via email to