- data Tree s a where
- bindTree :: Solver s => Tree s a -> (a -> Tree s b) -> Tree s b
- insertTree :: Solver s => Tree s a -> Tree s () -> Tree s a
- class (Monad m, Solver (TreeSolver m)) => MonadTree m where
- type TreeSolver m :: * -> *
- addTo :: Constraint (TreeSolver m) -> m a -> m a
- false :: m a
- (\/) :: m a -> m a -> m a
- exists :: Term (TreeSolver m) t => (t -> m a) -> m a
- label :: TreeSolver m (m a) -> m a
- (/\) :: MonadTree tree => tree a -> tree b -> tree b
- true :: MonadTree tree => tree ()
- disj :: MonadTree tree => [tree a] -> tree a
- conj :: MonadTree tree => [tree ()] -> tree ()
- disj2 :: Solver s => [Tree s a] -> Tree s a
- exist :: (MonadTree tree, Term (TreeSolver tree) t) => Int -> ([t] -> tree a) -> tree a
- forall :: (Solver s, Term s t) => [t] -> (t -> Tree s ()) -> Tree s ()
- prim :: MonadTree tree => TreeSolver tree a -> tree a
- add :: MonadTree tree => Constraint (TreeSolver tree) -> tree ()
Documentation
class (Monad m, Solver (TreeSolver m)) => MonadTree m whereSource
Generalization of the search tree data type, allowing monad transformer decoration.
type TreeSolver m :: * -> *Source
addTo :: Constraint (TreeSolver m) -> m a -> 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
prim :: MonadTree tree => TreeSolver tree a -> tree aSource
add :: MonadTree tree => Constraint (TreeSolver tree) -> tree ()Source