exploring-interpreters-0.3.2.0: A generic exploring interpreter for exploratory programming
Safe HaskellNone
LanguageHaskell2010

Language.Explorer.Monadic

Synopsis

Documentation

data Explorer programs m configs output Source #

execute :: (Eq c, Eq p, Eq o, Monad m, Monoid o) => p -> Explorer p m c o -> m (Explorer p m c o, o) Source #

executeAll :: (Eq c, Eq p, Eq o, Monad m, Monoid o) => [p] -> Explorer p m c o -> m (Explorer p m c o, o) Source #

revert :: Ref -> Explorer p m c o -> Maybe (Explorer p m c o) Source #

dynamicRevert :: Bool -> Ref -> Explorer p m c o -> Maybe (Explorer p m c o) Source #

toTree :: Explorer p m c o -> Tree (Ref, c) Source #

incomingEdges :: Ref -> Explorer p m c o -> [((Ref, c), (p, o), (Ref, c))] Source #

mkExplorerStack :: (Show a, Eq a, Eq b, Monad m, Monoid o) => (a -> b -> m (Maybe b, o)) -> b -> Explorer a m b o Source #

mkExplorerTree :: (Show a, Eq a, Eq b, Monad m, Monoid o) => (a -> b -> m (Maybe b, o)) -> b -> Explorer a m b o Source #

mkExplorerGraph :: (Show a, Eq a, Eq b, Monad m, Monoid o) => (a -> b -> m (Maybe b, o)) -> b -> Explorer a m b o Source #

mkExplorerGSS :: (Show a, Eq a, Eq b, Monad m, Monoid o) => (a -> b -> m (Maybe b, o)) -> b -> Explorer a m b o Source #

config :: Explorer programs m configs output -> configs Source #

execEnv :: Explorer programs m configs output -> Gr Ref (programs, output) Source #

currRef :: Explorer programs m configs output -> Ref Source #

leaves :: Explorer p m c o -> [(Ref, c)] Source #

Returns all configurations that have not been the source for an execute action. This corresponds to leaves in a tree or nodes without an outbound-edge in a graph.

type Ref = Int Source #

deref :: Explorer p m c o -> Ref -> Maybe c Source #

getTrace :: Explorer p m c o -> [((Ref, c), (p, o), (Ref, c))] Source #

getTraces :: Explorer p m c o -> [[((Ref, c), (p, o), (Ref, c))]] Source #

getPathsFromTo :: Explorer p m c o -> Ref -> Ref -> [[((Ref, c), (p, o), (Ref, c))]] Source #

getPathFromTo :: Explorer p m c o -> Ref -> Ref -> [((Ref, c), (p, o), (Ref, c))] Source #

executionGraph :: Explorer p m c o -> (Ref, [Ref], [((Ref, c), (p, o), (Ref, c))]) Source #

toExport :: Explorer p m c o -> (Ref, [(Ref, c)], [(Ref, Ref, (p, o))]) Source #

fromExport :: Explorer p m c o -> (Ref, [(Ref, c)], [(Ref, Ref, (p, o))]) -> Explorer p m c o Source #