Documentation
class (MonadUpdate s m, Update s m m, ChoiceStore s) => CFLP s m Source
MonadPlus m => MonadUpdate s (UpdateT s m) | |
CFLP ChoiceStoreIM (UpdateT ChoiceStoreIM []) | |
MonadPlus m => Update s (UpdateT s m) m | |
MonadPlus m => Update s (UpdateT s m) (UpdateT s m) | |
MonadTrans (UpdateT s) | |
Monad m => Monad (UpdateT s m) | |
Show (HeadNormalForm cs (UpdateT cs [])) | |
MonadPlus m => MonadPlus (UpdateT s m) | |
Show a => Show (UpdateT s [] a) | |
Show (Nondet cs (UpdateT cs []) a) |
class ChoiceStore s Source
ChoiceStore ChoiceStoreIM |
eval :: (CFLP CS m, Update CS m m', Generic a) => Strategy m' -> (Context CS -> ID -> Nondet CS m a) -> IO [a]Source
evalPartial :: (CFLP CS m, Update CS m m', Generic a) => Strategy m' -> (Context CS -> ID -> Nondet CS m a) -> IO [a]Source
evalPrint :: (CFLP CS m, Update CS m m', Generic a) => Strategy m' -> (Context CS -> ID -> Nondet CS m a) -> IO ()Source
depthFirst :: Strategy []Source
NestLambda cs m t (Nondet cs m b -> f) => NestLambda cs m (a -> t) (Nondet cs m a -> Nondet cs m b -> f) | |
NestLambda cs m (a -> b) (Nondet cs m a -> Context cs -> ID -> Nondet cs m b) | |
With x (Nondet cs m a) | |
(cs ~ Ctx b, m ~ Mon b, MkCons b) => MkCons (Nondet cs m a -> b) | |
(cs ~ C a, m ~ M a, WithUntyped a) => WithUntyped (Nondet cs m b -> a) | |
LiftFun (Nondet cs m b -> f) => LiftFun (Nondet cs m a -> Nondet cs m b -> f) | |
LiftFun (Nondet cs m a -> Context cs -> ID -> Nondet cs m b) | |
LiftFun (Nondet cs m a -> ID -> Nondet cs m b) | |
LiftFun (Nondet cs m a -> Context cs -> Nondet cs m b) | |
LiftFun (Nondet cs m a -> Nondet cs m b) | |
Show (Nondet cs (UpdateT cs []) a) | |
Show (Nondet cs [] a) | |
Monad m => MkCons (Nondet cs m a) | |
WithUntyped (Nondet cs m a) |
Context cs |
NestLambda cs m (a -> b) (Nondet cs m a -> Context cs -> ID -> Nondet cs m b) | |
(cs ~ C a, m ~ M a, b ~ T a, WithUntyped a, PatternList p) => PatternList (ConsPatList ((Context cs -> a) -> Match t cs m b) p) | |
LiftFun (Nondet cs m a -> Context cs -> ID -> Nondet cs m b) | |
LiftFun (Nondet cs m a -> Context cs -> Nondet cs m b) |
class ChoiceStore cs => Narrow cs a whereSource
ChoiceStore cs => Narrow cs Bool | |
(ChoiceStore cs, Narrow cs a, Generic a) => Narrow cs [a] |
oneOf :: (MonadUpdate cs m, ChoiceStore cs) => [Nondet cs m a] -> Context cs -> ID -> Nondet cs m aSource
(?) :: (MonadUpdate cs m, ChoiceStore cs) => Nondet cs m a -> Nondet cs m a -> ID -> Nondet cs m aSource
withHNF :: Update cs m m => Nondet cs m a -> (HeadNormalForm cs m -> Context cs -> Nondet cs m b) -> Context cs -> Nondet cs m bSource
caseOf_ :: Update cs m m => Nondet cs m a -> [Match a cs m b] -> Nondet cs m b -> Context cs -> Nondet cs m bSource
(cs ~ C a, m ~ M a, b ~ T a, WithUntyped a, PatternList p) => PatternList (ConsPatList ((Context cs -> a) -> Match t cs m b) p) |
genericOps :: GenericOps aSource
primitive :: Generic a => NormalForm -> aSource
generic :: Generic a => a -> NormalFormSource
type Decons a = ([NormalForm] -> NormalForm) -> Result a -> Maybe NormalFormSource
applyCons :: a -> [NormalForm] -> Result aSource
groundNormalForm :: Update cs m m' => Nondet cs m a -> Context cs -> m' NormalFormSource
partialNormalForm :: (Update cs m m', ChoiceStore cs) => Nondet cs m a -> Context cs -> m' NormalFormSource
data ConsPatList a b Source
a :! b |
(cs ~ C a, m ~ M a, b ~ T a, WithUntyped a, PatternList p) => PatternList (ConsPatList ((Context cs -> a) -> Match t cs m b) p) | |
(MkCons a, ConsList b) => ConsList (ConsPatList a b) |
constructors :: (ConsList a, Generic (CData a)) => aSource