J'essaie de créer une application Purescript simple, et je n'arrive pas à comprendre pourquoi je continue d'obtenir une erreur d'instance de classe de type. Plus précisément, à l'intérieur de mon Component
je définis la fonction eval
pour fonctionner sur mon algèbre de requête. Dans le processus, je viens de connecter quelque chose à la console pour le plaisir.Purescript, comprendre pourquoi aucune instance de classe de type n'a été trouvée
type AppEffects eff = (HalogenEffects (console :: CONSOLE | eff))
data Query a = DoSomething a
eval :: Query ~> H.ComponentDSL State Query (Aff (AppEffects eff))
eval (DoSomething a) = do
liftEff $ log "print me out!"
-- do some stuff with the action
pure next
Quand je lance cela, le compilateur crie:
No type class instance was found for
Control.Monad.Eff.Class.MonadEff ("console" :: CONSOLE
| t0
)
(Free
(HalogenFP EventSource
{ "someState" :: String
}
Query
(Aff
("avar" :: AVAR
, "err" :: EXCEPTION
, "dom" :: DOM
, "console" :: CONSOLE
| eff1
)
)
)
)
The instance head contains unknown type variables. Consider adding a type annotation.
Je spécifié un type:
tryPrint :: Eff (console :: CONSOLE | eff) Unit
tryPrint = log "print me out!"
Cependant, le compilateur me dit toujours que je dois mettre en œuvre une instance pour le type de classe MonadEff
. Je ne comprends pas vraiment cette erreur. Quelqu'un pourrait-il me pointer dans la bonne direction?