cflp-0.2.5: Constraint Functional-Logic Programming in HaskellSource codeContentsIndex
Control.CFLP
Documentation
class (MonadUpdate s m, Update s m m, ChoiceStore s) => CFLP s m Source
show/hide Instances
CFLP ChoiceStoreIM (UpdateT ChoiceStoreIM [])
CFLP ChoiceStoreIM (UpdateT ChoiceStoreIM [])
class ChoiceStore s Source
show/hide Instances
ChoiceStore ChoiceStoreIM
type Computation m a = CS -> ID -> Nondet CS (UpdateT CS m) aSource
evalPartial :: (CFLP CS m, Update CS m m', Data a) => Strategy m' -> (CS -> ID -> Nondet CS m a) -> IO [a]Source
evalPrint :: (CFLP CS m, Update CS m m', Data a, Show a) => Strategy m' -> (CS -> ID -> Nondet CS m a) -> IO ()Source
type Strategy m = forall a. m a -> [a]Source
depthFirst :: Strategy []Source
data NormalForm Source
show/hide Instances
data Nondet cs m a Source
show/hide Instances
(Monad m, Data a) => MkCons cs m a (Nondet cs m t)
With x (Nondet cs m a)
Show (Nondet cs (UpdateT cs []) a)
Show (Nondet cs [] a)
WithUntyped (Nondet cs m a)
data ID Source
show/hide Instances
With ID a => With ID (ID -> a)
initID :: IO IDSource
withUnique :: With ID a => a -> ID -> Nondet (C ID a) (M ID a) (T ID a)Source
class ChoiceStore cs => Narrow cs a whereSource
Methods
narrow :: MonadUpdate cs m => cs -> ID -> Nondet cs m aSource
show/hide Instances
ChoiceStore cs => Narrow cs Bool
(ChoiceStore cs, Narrow cs a) => Narrow cs ([] a)
unknown :: (MonadUpdate cs m, Narrow cs a) => ID -> Nondet cs m aSource
failure :: MonadPlus m => Nondet cs m aSource
oneOf :: (MonadUpdate cs m, ChoiceStore cs) => [Nondet cs m a] -> 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 :: (Monad m, Update cs m m) => Nondet cs m a -> (HeadNormalForm cs m -> cs -> Nondet cs m b) -> cs -> Nondet cs m bSource
caseOf :: Update cs m m => Nondet cs m a -> [Match a cs m b] -> cs -> Nondet cs m bSource
caseOf_ :: Update cs m m => Nondet cs m a -> [Match a cs m b] -> Nondet cs m b -> cs -> Nondet cs m bSource
data Match a cs m b Source
nondet :: (Monad m, Data a) => a -> Nondet cs m aSource
prim :: Data a => NormalForm -> aSource
groundNormalForm :: Update cs m m' => Nondet cs m a -> cs -> m' NormalFormSource
partialNormalForm :: (Update cs m m', ChoiceStore cs) => Nondet cs m a -> cs -> m' NormalFormSource
class ConsRep a whereSource
Methods
consRep :: a -> ConstrSource
show/hide Instances
ConsRep Bool
ConsRep ([] ())
ConsRep b => ConsRep (a -> b)
cons :: MkCons cs m a b => a -> bSource
match :: (ConsRep a, WithUntyped b) => a -> (C b -> b) -> Match t (C b) (M b) (T b)Source
true :: Monad m => Nondet cs m BoolSource
pTrue :: (cs -> Nondet cs m a) -> Match Bool cs m aSource
false :: Monad m => Nondet cs m BoolSource
pFalse :: (cs -> Nondet cs m a) -> Match Bool cs m aSource
not :: Update cs m m => Nondet cs m Bool -> cs -> Nondet cs m BoolSource
(===) :: Update cs m m => Nondet cs m a -> Nondet cs m a -> cs -> Nondet cs m BoolSource
nil :: Monad m => Nondet cs m [a]Source
pNil :: (cs -> Nondet cs m b) -> Match [a] cs m bSource
(^:) :: Monad m => Nondet cs m a -> Nondet cs m [a] -> Nondet cs m [a]Source
pCons :: (cs -> Nondet cs m a -> Nondet cs m [a] -> Nondet cs m b) -> Match [a] cs m bSource
fromList :: Monad m => [Nondet cs m a] -> Nondet cs m [a]Source
null :: Update cs m m => Nondet cs m [a] -> cs -> Nondet cs m BoolSource
head :: Update cs m m => Nondet cs m [a] -> cs -> Nondet cs m aSource
tail :: Update cs m m => Nondet cs m [a] -> cs -> Nondet cs m [a]Source
Produced by Haddock version 2.3.0