monadiccp-0.5.2: Constraint Programming

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) 

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

insertTree :: Solver s => Tree s a -> Tree s () -> Tree s 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) 
(Monoid w, MonadTree t) => MonadTree (WriterT w t) 
MonadTree t => MonadTree (StateT s t) 
MonadTree t => MonadTree (ReaderT env t) 

(/\) :: 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 :: Solver s => [Tree s a] -> Tree s aSource

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

forall :: (Solver s, Term s t) => [t] -> (t -> Tree s ()) -> Tree s ()Source

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

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