Documentation
class (Strategy (Ctx s) s, MonadPlus s, MonadUpdate (Ctx s) s, Update (Ctx s) s s, Update (Ctx s) s (Res s), MonadPlus (Res s), Enumerable (Res s)) => CFLP s Source
class Enumerable s whereSource
enumeration :: s a -> [a]Source
Enumerable [] | |
Enumerable m => Enumerable (Monadic m) | |
Enumerable s => Enumerable (CTC s) |
evalPartial :: (Monad s, CFLP s, Generic a) => s (Ctx s) -> Computation a -> IO [a]Source
Monadic | |
|
MonadUpdate c m => MonadUpdate c (Monadic m) | |
MonadPlus m => Strategy c (Monadic m) | |
Update s m m' => Update s (Monadic m) (Monadic m') | |
Monad m => Monad (Monadic m) | |
MonadPlus m => MonadPlus (Monadic m) | |
Enumerable m => Enumerable (Monadic m) | |
(MonadPlus m, Enumerable m) => CFLP (Monadic (UpdateT () m)) | |
(MonadPlus m, Enumerable m) => CFLP (CTC (Monadic (UpdateT (StoreCTC ()) m))) |
MonadPlus m => MonadUpdate s (UpdateT s m) | |
MonadPlus m => Update s (UpdateT s m) m | |
MonadPlus m => Update s (UpdateT s m) (UpdateT s m) | |
MonadTrans (UpdateT s) | |
(MonadPlus m, Enumerable m) => CFLP (Monadic (UpdateT () m)) | |
(MonadPlus m, Enumerable m) => CFLP (CTC (Monadic (UpdateT (StoreCTC ()) m))) | |
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) |
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) |
(?) :: (Monad s, Strategy c s, MonadUpdate c s) => Nondet c s a -> Nondet c s a -> ID -> Nondet c s aSource
withHNF :: (Monad m, Update cs m m) => Nondet cs m a -> (HeadNormalForm cs m -> Context cs -> Nondet cs m b) -> Context cs -> Nondet cs m bSource
caseOf :: (MonadPlus m, Update cs m m) => Nondet cs m a -> [Match a cs m b] -> Context cs -> Nondet cs m bSource
caseOf_ :: (Monad m, 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 :: (Monad s, Monad m, Update c s m) => Nondet c s a -> Context c -> m NormalFormSource
partialNormalForm :: (Monad s, Strategy c s, Monad m, Update c s m) => Nondet c s a -> Context c -> 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