Backtracking, interleaving, and terminating monad transformers: (functional pearl)

  title={Backtracking, interleaving, and terminating monad transformers: (functional pearl)},
  author={Oleg Kiselyov and Chung-chieh Shan and Daniel P. Friedman and Amr Sabry},
We design and implement a library for adding backtracking computations to any Haskell monad. Inspired by logic programming, our library provides, in addition to the operations required by the MonadPlus interface, constructs for fair disjunctions, fair conjunctions, conditionals, pruning, and an expressive top-level interface. Implementing these additional constructs is easy in models of backtracking based on streams, but not known to be possible in continuation-based models. We show that all… CONTINUE READING
Highly Cited
This paper has 86 citations. REVIEW CITATIONS
49 Citations
7 References
Similar Papers


Publications citing this paper.

86 Citations

Citations per Year
Semantic Scholar estimates that this publication has 86 citations based on the available data.

See our FAQ for additional information.


Publications referenced by this paper.
Showing 1-7 of 7 references

A MonadPlusT with fair operations and pruning. 016037.html

  • B A.
  • 2005
Highly Influential
10 Excerpts

Combinators for breadth-first search

  • S J.M.
  • Journal of Functional Programming
  • 2000
Highly Influential
5 Excerpts

Pruning in logic programming

  • N L.
  • Tech. Rep
  • 1995
Highly Influential
7 Excerpts

Relating models of backtracking

  • W M., V D.
  • In ACM SIGPLAN International Conference on…
  • 2004
Highly Influential
3 Excerpts

Similar Papers

Loading similar papers…