A library for parallel, non-deterministic, search.
Latest commit b07a2fa Jan 31, 2016 @barrucadu Update stackage version


search-party Build Status

Often in search problems you don't care exactly which solution you get, only that you are guaranteed to get one if it exists. Furthermore the problem itself might be expensive. This makes cases where the problem can be re-arranged to checking the suitability of some collection of candidates suitable for parallelisation.

This package provides a monad for short-circuiting search problems, where blocking only occurs when the result of something is demanded. In particular, this means that parallelism can be preserved and blocking avoided completely if just using the Functor, Applicative, or Alternative instances.

The documentation of the latest developmental version is available online.


search-party depends on dejafu, which has yet to be pushed to hackage. Assuming you are using sandboxes, you can do something like this:

git clone https://github.com/barrucadu/search-party.git
git clone https://github.com/barrucadu/dejafu.git
cd search-party
cabal sandbox init
cabal sandbox add-source ../dejafu
cabal install --only-dependencies
cabal build


Bug reports, pull requests, and comments are very welcome!

Feel free to contact me on GitHub, through IRC (#haskell on freenode), or email (mike@barrucadu.co.uk).