| > 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