cflp-0.1: Constraint Functional-Logic Programming in HaskellSource codeContentsIndex
Control.CFLP
Documentation
class (MonadConstr Choice m, ConstraintStore Choice cs, MonadSolve cs m m) => CFLP cs m Source
show/hide Instances
CFLP ChoiceStore (ConstrT ChoiceStore [])
CFLP ChoiceStore (ConstrT ChoiceStore [])
type Computation m a = EvalStore -> ID -> Nondet (ConstrT EvalStore m) aSource
eval :: (CFLP EvalStore m, MonadSolve EvalStore m m', Data a) => Strategy m' -> (EvalStore -> ID -> Nondet m a) -> IO [a]Source
evalPrint :: (CFLP EvalStore m, MonadSolve EvalStore m m', Data a, Show a) => Strategy m' -> (EvalStore -> ID -> Nondet m a) -> IO ()Source
type Strategy m = forall a. m a -> [a]Source
depthFirst :: Strategy []Source
data NormalForm Source
show/hide Instances
data HeadNormalForm m Source
Constructors
Cons DataType ConIndex [Untyped m]
show/hide Instances
Show (HeadNormalForm [])
Show (HeadNormalForm (ConstrT cs []))
mkHNF :: Constr -> [Untyped m] -> HeadNormalForm mSource
newtype Nondet m a Source
Constructors
Typed
untyped :: Untyped m
show/hide Instances
(Monad m, Data a) => MkCons m a (Nondet m t)
With x (Nondet m a)
Show (Nondet [] a)
Show (Nondet (ConstrT cs []) a)
WithUntyped (Nondet 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 (Mon ID a) (Typ ID a)Source
class Unknown a whereSource
Methods
unknown :: MonadConstr Choice m => ID -> Nondet m aSource
show/hide Instances
failure :: MonadPlus m => Nondet m aSource
oneOf :: MonadConstr Choice m => [Nondet m a] -> ID -> Nondet m aSource
withHNF :: (Monad m, MonadSolve cs m m) => Nondet m a -> (HeadNormalForm m -> cs -> Nondet m b) -> cs -> Nondet m bSource
caseOf :: MonadSolve cs m m => Nondet m a -> [Match cs m b] -> cs -> Nondet m bSource
caseOf_ :: MonadSolve cs m m => Nondet m a -> [Match cs m b] -> Nondet m b -> cs -> Nondet m bSource
data Match cs m a Source
Data (gfoldl, gunfold, toConstr, dataTypeOf, dataCast1, dataCast2, gmapT, gmapQl, gmapQr, gmapQ, gmapQi, gmapM, gmapMp, gmapMo)
nondet :: (Monad m, Data a) => a -> Nondet m aSource
normalForm :: (MonadSolve cs m m', Data a) => Nondet m a -> cs -> m' aSource
class ConsRep a whereSource
Methods
consRep :: a -> ConstrSource
show/hide Instances
cons :: MkCons m a b => a -> bSource
match :: (ConsRep a, WithUntyped b) => a -> (cs -> b) -> Match cs (M b) (T b)Source
prim_eq :: MonadSolve cs m m => Untyped m -> Untyped m -> StateT cs m BoolSource
true :: Monad m => Nondet m BoolSource
pTrue :: (cs -> Nondet m a) -> Match cs m aSource
false :: Monad m => Nondet m BoolSource
pFalse :: (cs -> Nondet m a) -> Match cs m aSource
not :: MonadSolve cs m m => Nondet m Bool -> cs -> Nondet m BoolSource
(===) :: MonadSolve cs m m => Nondet m a -> Nondet m a -> cs -> Nondet m BoolSource
nil :: Monad m => Nondet m [a]Source
pNil :: (cs -> Nondet m a) -> Match cs m aSource
(^:) :: Monad m => Nondet m a -> Nondet m [a] -> Nondet m [a]Source
pCons :: (cs -> Nondet m a -> Nondet m [a] -> Nondet m b) -> Match cs m bSource
fromList :: Monad m => [Nondet m a] -> Nondet m [a]Source
null :: MonadSolve cs m m => Nondet m [a] -> cs -> Nondet m BoolSource
head :: MonadSolve cs m m => Nondet m [a] -> cs -> Nondet m aSource
tail :: MonadSolve cs m m => Nondet m [a] -> cs -> Nondet m [a]Source
Produced by Haddock version 2.4.2