tree-monad-0.3.1: Non-Determinism Monad for Tree Search
CopyrightSebastian Fischer
LicenseBSD3
MaintainerNiels Bunkenburg (nbu@informatik.uni-kiel.de)
Stabilityexperimental
Portabilityportable
Safe HaskellSafe
LanguageHaskell2010

Control.Monad.SearchTree

Description

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.

Synopsis

Documentation

data SearchTree a Source #

The type SearchTree a represents non-deterministic computations as a tree structure.

Constructors

None 
One a 
Choice (SearchTree a) (SearchTree a) 

Instances

Instances details
Monad SearchTree Source # 
Instance details

Defined in Control.Monad.SearchTree

Methods

(>>=) :: SearchTree a -> (a -> SearchTree b) -> SearchTree b

(>>) :: SearchTree a -> SearchTree b -> SearchTree b

return :: a -> SearchTree a

Functor SearchTree Source # 
Instance details

Defined in Control.Monad.SearchTree

Methods

fmap :: (a -> b) -> SearchTree a -> SearchTree b

(<$) :: a -> SearchTree b -> SearchTree a

MonadFail SearchTree Source # 
Instance details

Defined in Control.Monad.SearchTree

Methods

fail :: String -> SearchTree a

Applicative SearchTree Source # 
Instance details

Defined in Control.Monad.SearchTree

Methods

pure :: a -> SearchTree a

(<*>) :: SearchTree (a -> b) -> SearchTree a -> SearchTree b

liftA2 :: (a -> b -> c) -> SearchTree a -> SearchTree b -> SearchTree c

(*>) :: SearchTree a -> SearchTree b -> SearchTree b

(<*) :: SearchTree a -> SearchTree b -> SearchTree a

Alternative SearchTree Source # 
Instance details

Defined in Control.Monad.SearchTree

MonadPlus SearchTree Source # 
Instance details

Defined in Control.Monad.SearchTree

Show a => Show (SearchTree a) Source # 
Instance details

Defined in Control.Monad.SearchTree

Methods

showsPrec :: Int -> SearchTree a -> ShowS

show :: SearchTree a -> String

showList :: [SearchTree a] -> ShowS

data Search a Source #

Another search monad based on continuations that produce search trees.

Instances

Instances details
Monad Search Source # 
Instance details

Defined in Control.Monad.SearchTree

Methods

(>>=) :: Search a -> (a -> Search b) -> Search b

(>>) :: Search a -> Search b -> Search b

return :: a -> Search a

Functor Search Source # 
Instance details

Defined in Control.Monad.SearchTree

Methods

fmap :: (a -> b) -> Search a -> Search b

(<$) :: a -> Search b -> Search a

MonadFail Search Source # 
Instance details

Defined in Control.Monad.SearchTree

Methods

fail :: String -> Search a

Applicative Search Source # 
Instance details

Defined in Control.Monad.SearchTree

Methods

pure :: a -> Search a

(<*>) :: Search (a -> b) -> Search a -> Search b

liftA2 :: (a -> b -> c) -> Search a -> Search b -> Search c

(*>) :: Search a -> Search b -> Search b

(<*) :: Search a -> Search b -> Search a

Alternative Search Source # 
Instance details

Defined in Control.Monad.SearchTree

Methods

empty :: Search a

(<|>) :: Search a -> Search a -> Search a

some :: Search a -> Search [a]

many :: Search a -> Search [a]

MonadPlus Search Source # 
Instance details

Defined in Control.Monad.SearchTree

Methods

mzero :: Search a

mplus :: Search a -> Search a -> Search a

searchTree :: Search a -> SearchTree a Source #

Computes the SearchTree representation of a Search action.