David: Thanks again for your explanation
> Because, in general, m isn't an instance of Monad.
Talking about my example:
class (Monad m) => GetMV m a where
...
instance GetMV m c where (2)
(2) There are only 2 cases:
ghc supposes m does instantiates Monad
=> success
ghc doesn't suppose this
=> failure becuase the class head of GetMV does require it.
fix: adding (Monad m) => (3)
That's why it would be save to assume that the programmer doesn't want a
failure but success.
Thus ghc could infer (3) automatically but doesn't
Do I still miss a point?
Marc
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe