monadiccp-0.6.1: Constraint Programming

Control.CP.Transformers

Documentation

eval :: (Solver solver, Queue q, Elem q ~ (Label solver, Tree solver (ForResult t), TreeState t), Transformer t, ForSolver t ~ solver) => Tree solver (ForResult t) -> q -> t -> solver (Int, [ForResult t])Source

eval' :: SearchSig solver q t (ForResult t)Source

continue :: ContinueSig solver q t (ForResult t)Source

data NodeBoundedST solver a Source

Instances

Solver solver => Transformer (NodeBoundedST solver a) 

data DepthBoundedST solver a Source

Instances

Solver solver => Transformer (DepthBoundedST solver a) 

class Transformer t whereSource

Associated Types

type EvalState t :: *Source

type TreeState t :: *Source

type ForSolver t :: * -> *Source

type ForResult t :: *Source

Methods

leftT :: t -> EvalState t -> TreeState t -> TreeState tSource

rightT :: t -> EvalState t -> TreeState t -> TreeState tSource

nextT :: SearchSig (ForSolver t) q t (ForResult t)Source

initT :: t -> Tree (ForSolver t) (ForResult t) -> ForSolver t (EvalState t, TreeState t)Source

returnT :: ContinueSig solver q t (ForResult t)Source

endT :: ContinueSig solver q t (ForResult t)Source

Instances

Solver solver => Transformer (NodeBoundedST solver a) 
Solver solver => Transformer (DepthBoundedST solver a) 
Solver solver => Transformer (RestartST es ts solver a) 
Solver solver => Transformer (TStack es ts solver a)