-- 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