# 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

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

type SearchSig solver q t a = (Solver solver, Queue q, Transformer t, Elem q ~ (Label solver, Tree solver a, TreeState t), ForSolver t ~ solver) => Int -> Tree solver a -> q -> t -> EvalState t -> TreeState t -> solver (Int, [a])Source

type ContinueSig solver q t a = (Solver solver, Queue q, Transformer t, Elem q ~ (Label solver, Tree solver a, TreeState t), ForSolver t ~ solver) => Int -> q -> t -> EvalState t -> solver (Int, [a])Source

class Transformer t whereSource

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

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) |

newtype DepthBoundedST solver a Source

Solver solver => Transformer (DepthBoundedST solver a) |