Я пытаюсь acid-state
. Документация утверждает, что Update st
является экземпляром MonadState st
. Я пробовал разные вещи, но мой компилятор не хочет этого видеть :( Я пробовал HelloWorld. hs
from examples, но возникла та же проблема:
HelloWorld.hs:26:7:
No instance for (MonadState
HelloWorldState (Update HelloWorldState))
arising from a use of `put'
Possible fix:
add an instance declaration for
(MonadState HelloWorldState (Update HelloWorldState))
In the expression: put (HelloWorldState newValue)
In an equation for `writeState':
writeState newValue = put (HelloWorldState newValue)
HelloWorld.hs:29:43:
No instance for (MonadReader
HelloWorldState (Query HelloWorldState))
arising from a use of `ask'
Possible fix:
add an instance declaration for
(MonadReader HelloWorldState (Query HelloWorldState))
In a stmt of a 'do' block: HelloWorldState string <- ask
In the expression:
do { HelloWorldState string <- ask;
return string }
In an equation for `queryState':
queryState
= do { HelloWorldState string <- ask;
return string }
Что я делаю не так? Как заставить это работать?
Я использую
кислотное состояние-0,6,4
,
ghc-7.4.2
,
debian-6.0.5
(amd64)
Спасибо, Юрась
ДОБАВЛЕНО: Похоже, это работает в ghc-7.4.1 и не работает в ghc-7.4.2. Может ли кто-нибудь оба компилятора?
Я попытался переустановить кислотное состояние, но это не помогло. Либо ошибка в ghc-7.4.2, либо мой идентификатор среды не работает.