monadiccp-0.7.4: Constraint Programming

Safe HaskellSafe-Infered

Control.CP.SearchTree

Synopsis

Documentation

data Tree s a whereSource

Constructors

Fail :: Tree s a 
Return :: a -> Tree s a 
Try :: Tree s a -> Tree s a -> Tree s a 
Add :: Constraint s -> Tree s a -> Tree s a 
NewVar :: Term s t => (t -> Tree s a) -> Tree s a 
Label :: s (Tree s a) -> Tree s a 

Instances

Solver s => Monad (Tree s) 
Solver s => Functor (Tree s) 
Solver solver => MonadTree (Tree solver) 
Show (Tree s a) 
ModelExprClass (Tree DummySolver ()) 
CompilableModel (Tree (FDInstance (GecodeWrappedSolver CodegenGecodeSolver)) ModelCol) 

transformTree :: Solver s => Mixin (Tree s a -> Tree s a)Source

bindTree :: Solver s => Tree s a -> (a -> Tree s b) -> Tree s bSource

insertTree :: Solver s => Tree s a -> Tree s () -> Tree s aSource

(/\) :: MonadTree tree => tree a -> tree b -> tree bSource

true :: MonadTree tree => tree ()Source

disj :: MonadTree tree => [tree a] -> tree aSource

conj :: MonadTree tree => [tree ()] -> tree ()Source

disj2 :: MonadTree tree => [tree a] -> tree aSource

prim :: MonadTree tree => TreeSolver tree a -> tree aSource

addC :: MonadTree tree => Constraint (TreeSolver tree) -> tree ()Source

addT :: MonadTree tree => Constraint (TreeSolver tree) -> tree BoolSource

exist :: (MonadTree tree, Term (TreeSolver tree) t) => Int -> ([t] -> tree a) -> tree aSource

forall :: (MonadTree tree, Term (TreeSolver tree) t) => [t] -> (t -> tree ()) -> tree ()Source

showTree :: (Show (Constraint s), Show a, Solver s) => Int -> Tree s a -> s StringSource

mapTree :: (Solver s1, Solver s2, MonadTree m, TreeSolver m ~ s2) => (forall t. s1 t -> s2 t) -> Tree s1 a -> m aSource

class (Monad m, Solver (TreeSolver m)) => MonadTree m whereSource

Generalization of the search tree data type, allowing monad transformer decoration.

Associated Types

type TreeSolver m :: * -> *Source

Methods

addTo :: Constraint (TreeSolver m) -> m a -> m aSource

false :: m aSource

(\/) :: m a -> m a -> m aSource

exists :: Term (TreeSolver m) t => (t -> m a) -> m aSource

label :: TreeSolver m (m a) -> m aSource

Instances

Solver solver => MonadTree (Tree solver) 
(MonadTree m, Solver (TreeSolver m)) => MonadTree (ContT r m) 
MonadTree t => MonadTree (ReaderT env t) 
MonadTree t => MonadTree (StateT s t) 
(Monoid w, MonadTree t) => MonadTree (WriterT w t) 

untree :: Solver s => v -> Tree s v -> s vSource