|
| Control.Monad.Logic | | Portability | non-portable (multi-parameter type classes) | | Stability | experimental | | Maintainer | dan.doel@gmail.com |
|
|
|
|
|
| Description |
A backtracking, logic programming monad.
Adapted from the paper
/Backtracking, Interleaving, and Terminating
Monad Transformers/, by
Oleg Kiselyov, Chung-chieh Shan, Daniel P. Friedman, Amr Sabry
(http://www.cs.rutgers.edu/~ccshan/logicprog/LogicT-icfp2005.pdf).
|
|
| Synopsis |
|
|
|
| Documentation |
|
| module Control.Monad.Logic.Class |
|
| The Logic monad
|
|
|
| The basic Logic monad, for performing backtracking computations
returning values of type a
| Instances | |
|
|
|
| Runs a Logic computation with the specified initial success and
failure continuations.
|
|
|
| Extracts the first result from a Logic computation.
|
|
|
| Extracts up to a given number of results from a Logic computation.
|
|
|
| Extracts all results from a Logic computation.
|
|
| The LogicT monad transformer
|
|
|
| A monad transformer for performing backtracking computations
layered over another monad m
| Instances | |
|
|
| runLogicT :: LogicT m a -> (a -> m r -> m r) -> m r -> m r | Source |
|
| Runs a LogicT computation with the specified initial success and
failure continuations.
|
|
|
| Extracts the first result from a LogicT computation,
failing otherwise.
|
|
|
| Extracts up to a given number of results from a LogicT computation.
|
|
|
| Extracts all results from a LogicT computation.
|
|
| Produced by Haddock version 2.3.0 |