-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Non-Determinism Monad for Tree Search
--
-- This Haskell library provides an implementation of the MonadPlus type
-- class that represents the search space as a tree whose constructors
-- represent mzero, return, and mplus.
@package tree-monad
@version 0.2
-- | This Haskell library provides an implementation of the MonadPlus type
-- class that represents the search space as a tree whose constructors
-- represent mzero, return, and mplus.
--
-- Such a tree can be used to implement different search strategies,
-- e.g., by using a queue. It can also be used as a basis for parallel
-- search strategies that evaluate different parts of the search space
-- concurrently.
module Control.Monad.SearchTree
-- | The type SearchTree a represents non-deterministic
-- computations as a tree structure.
data SearchTree a
None :: SearchTree a
One :: a -> SearchTree a
Choice :: (SearchTree a) -> (SearchTree a) -> SearchTree a
-- | Another search monad based on continuations that produce search trees.
data Search a
-- | Computes the SearchTree representation of a Search
-- action.
searchTree :: Search a -> SearchTree a
instance (Show a) => Show (SearchTree a)
instance MonadPlus Search
instance Monad Search
instance MonadPlus SearchTree
instance Monad SearchTree