-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | A backtracking monad
--
-- This library provides a backtracking monad following Spivey's paper
-- "Algebras for combinatorial search".
@package backtracking
@version 0.1.0
module Control.Monad.Search
-- | MonadSearch represents searches with backtracking.
class MonadPlus m => MonadSearch m
fromList :: MonadSearch m => [a] -> m a
toList :: MonadSearch m => m a -> [a]
failure :: MonadSearch m => m a -> Bool
failure :: MonadSearch m => m a -> Bool
lnot :: MonadSearch m => DFS a -> m ()
lnot :: MonadSearch m => DFS a -> m ()
guard :: MonadSearch m => Bool -> m ()
guard :: MonadSearch m => Bool -> m ()
-- | DFS implementation of MonadSearch.
data DFS a
dfs :: a -> DFS a
-- | BFS implementation of MonadSearch.
data BFS a
bfs :: a -> BFS a
instance GHC.Base.MonadPlus Control.Monad.Search.DFS
instance GHC.Base.Alternative Control.Monad.Search.DFS
instance GHC.Base.Monad Control.Monad.Search.DFS
instance GHC.Base.Applicative Control.Monad.Search.DFS
instance GHC.Base.Functor Control.Monad.Search.DFS
instance GHC.Base.Functor Control.Monad.Search.BFS
instance GHC.Base.Applicative Control.Monad.Search.BFS
instance GHC.Base.Monad Control.Monad.Search.BFS
instance GHC.Base.Alternative Control.Monad.Search.BFS
instance GHC.Base.MonadPlus Control.Monad.Search.BFS
instance Control.Monad.Search.MonadSearch Control.Monad.Search.BFS
instance Control.Monad.Search.MonadSearch Control.Monad.Search.DFS