
18 Feb
2007
18 Feb
'07
1:09 p.m.
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