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

Reply via email to