Le simple code suivantImpossible déduire (Functor r) de (MonadRandom r)
import Control.Monad
import Control.Monad.Random
psum :: (MonadRandom r) => Int -> r Double -> r Double
psum n x = fmap sum $ replicateM n x
rendements l'erreur:
Could not deduce (Functor r) arising from a use of `fmap'
from the context (MonadRandom r)
Cela me est bizarre à cause de
class (Monad m) => MonadRandom m where ...
dans Control.Monad.Random.Class
fichier source, et puisque les monades sont des foncteurs, GHC aurait dû en déduire que r
est af unctor dans mon contexte. J'ai également essayé d'importer Control.Monad.Random.Class
sans succès.
Ajoutant manuellement la contrainte Functor
sur r
fonctionne, mais je trouve cela assez moche.
Qu'est-ce qui me manque ici?
Aha. Je fais trop de mathématiques. Merci Monsieur. –