Copyright | (c) Michal Konecny |
---|---|
License | BSD3 |
Maintainer | mikkonecny@gmail.com |
Stability | experimental |
Portability | portable |
Safe Haskell | None |
Language | Haskell98 |
A monad-generic state of a QA net.
Documentation
data QANetState m Source #
QANetState | |
|
initQANetState :: Bool -> QANetState m Source #
data AnyQAComputation m Source #
QAProtocolCacheable p => AnyQAComputation (QAComputation m p) |
data QAComputation m p Source #
QAComputation p (QACache p) ((Maybe ValueId, Maybe ValueId) -> Q p -> m (QAPromiseA (Kleisli m) (A p))) | used only if a suitable answer is not in the above cache |
insertNode :: QAProtocolCacheable p => p -> String -> [ValueId] -> ((Maybe ValueId, Maybe ValueId) -> Q p -> m (QAPromiseA (Kleisli m) (A p))) -> QANetState m -> (ValueId, QANetState m) Source #
logQuery :: QANetState m -> Maybe ValueId -> ValueId -> String -> QANetState m Source #
logAnswerUpdateCache :: QAProtocolCacheable p => QANetState m -> p -> Maybe ValueId -> ValueId -> (String, String, QACache p) -> QANetState m Source #
getAnswerPromise :: (QAProtocolCacheable p, Monad m) => QANetState m -> p -> Maybe ValueId -> ValueId -> Q p -> m (() -> m (A p, [Char], QACache p)) Source #