| >    class C a b | a -> b where
| >      foo :: a -> b
| >      foo = error "Yo dawg."
| >
| >    instance C a b where
| 
| The instance 'C a b' blatantly violates functional dependency and
| should not have been accepted. The fact that it was is a known bug in
| GHC. The bug keeps getting mentioned on Haskell mailing lists
| about every year. Alas, it is still not fixed. Here is one of the
| earlier messages about it:
| 
|   http://www.haskell.org/pipermail/haskell-cafe/2007-March/023916.html

Wait.  What about
        instance C [a] [b]
?  Should that be accepted?  The Coverage Condition says "no", and indeed it is 
rejected. But if you add -XUndecidableInstances it is accepted.  

It's just the same for 
        instance C a b
It is rejected, with the same message, unless you add -XUndecidableInstances.

Do you think the two are different?  Do you argue for unconditional rejection 
of everything not satisfying the Coverage Condition, regardless of flags?

Simon

_______________________________________________
Haskell-prime mailing list
Haskell-prime@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-prime

Reply via email to