シンプルなPurescriptアプリケーションを構築しようとしていますが、なぜ型クラスインスタンスエラーが発生し続けるのかわかりません。Purescript、型クラスインスタンスが見つからない理由を理解しました
具体的には、私のComponent
の中で、eval
という関数を私のクエリ代数を操作するように定義しています。その過程で、私は楽しいためにコンソールに何かを記録するだけです。
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
私はこれを実行すると、コンパイラは叫ぶ:
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.
だから私はタイプを指定:
tryPrint :: Eff (console :: CONSOLE | eff) Unit
tryPrint = log "print me out!"
しかし、コンパイラは、まだ私はインスタンスを実装する必要が私に語りましたMonadEff
typeclass。私はこのエラーを本当に理解していません。誰かが私を正しい方向に向けることができますか?