monadiccp-0.3: Package for Constraint Programming

Control.CP.ComposableTransformers

Documentation

solve :: (Queue q, Solver solver, CTransformer c, CForSolver c ~ solver, Elem q ~ (Label solver, Tree solver (CForResult c), CTreeState c)) => q -> c -> Tree solver (CForResult c) -> (Int, [CForResult c])Source

data TStack es ts solver a whereSource

Constructors

TStack :: (CTransformer c, CForSolver c ~ solver, CForResult c ~ a) => c -> TStack (CEvalState c) (CTreeState c) solver a 

Instances

Solver solver => Transformer (TStack es ts solver a) 

nextTStack :: (Solver solver, Queue q, Elem q ~ (Label solver, Tree solver a, ts)) => Int -> Tree solver a -> q -> TStack es ts solver a -> es -> ts -> solver (Int, [a])Source

type CSearchSig c a = (Solver (CForSolver c), CTransformer c) => Tree (CForSolver c) a -> c -> CEvalState c -> CTreeState c -> EVAL c a -> CONTINUE c a -> EXIT c a -> CForSolver c (Int, [a])Source

type CContinueSig c a = (Solver (CForSolver c), CTransformer c) => c -> CEvalState c -> CONTINUE c a -> EXIT c a -> CForSolver c (Int, [a])Source

type EVAL c a = Tree (CForSolver c) a -> CEvalState c -> CTreeState c -> CForSolver c (Int, [a])Source

type CONTINUE c a = CEvalState c -> CForSolver c (Int, [a])Source

type EXIT c a = CEvalState c -> CForSolver c (Int, [a])Source

class Solver (CForSolver c) => CTransformer c whereSource

Associated Types

type CEvalState c :: *Source

type CTreeState c :: *Source

type CForSolver c :: * -> *Source

type CForResult c :: *Source

Instances

Solver solver => CTransformer (CBranchBoundST solver a) 
Solver solver => CTransformer (CFirstSolutionST solver a) 
Solver solver => CTransformer (CIdentityCST solver a) 
Solver solver => CTransformer (CRandomST solver a) 
Solver solver => CTransformer (CLimitedDiscrepancyST solver a) 
Solver solver => CTransformer (CDepthBoundedST solver a) 
Solver solver => CTransformer (CNodeBoundedST solver a) 
Solver solver => CTransformer (SealedCST es ts solver a) 
Solver solver => CTransformer (Composition es ts solver a) 

newtype CNodeBoundedST solver a Source

Constructors

CNBST Int 

Instances

Solver solver => CTransformer (CNodeBoundedST solver a) 

newtype CDepthBoundedST solver a Source

Constructors

CDBST Int 

Instances

Solver solver => CTransformer (CDepthBoundedST solver a) 

newtype CLimitedDiscrepancyST solver a Source

Constructors

CLDST Int 

Instances

newtype CRandomST solver a Source

Constructors

CRST Int 

Instances

Solver solver => CTransformer (CRandomST solver a) 

data CIdentityCST solver a Source

Constructors

CIST 

Instances

Solver solver => CTransformer (CIdentityCST solver a) 

data CFirstSolutionST solver a Source

Constructors

CFSST 

Instances

Solver solver => CTransformer (CFirstSolutionST solver a) 

data Composition es ts solver a whereSource

Constructors

:- :: (CTransformer c1, CTransformer c2, CForSolver c1 ~ solver, CForSolver c2 ~ solver, CForResult c1 ~ a, CForResult c2 ~ a) => c1 -> c2 -> Composition (CEvalState c1, CEvalState c2) (CTreeState c1, CTreeState c2) solver a 

Instances

Solver solver => CTransformer (Composition es ts solver a) 

newtype CBranchBoundST solver a Source

Constructors

CBBST (NewBound solver) 

Instances

Solver solver => CTransformer (CBranchBoundST solver a) 

data BBEvalState solver Source

Constructors

BBP Int (Bound solver) 

type Bound solver = forall a. Tree solver a -> Tree solver aSource

type NewBound solver = solver (Bound solver)Source

data SealedCST es ts solver a whereSource

Constructors

Seal :: CTransformer c => c -> SealedCST (CEvalState c) (CTreeState c) (CForSolver c) (CForResult c) 

Instances

Solver solver => CTransformer (SealedCST es ts solver a) 

data RestartST es ts solver a Source

Constructors

RestartST [SealedCST es ts solver a] (Tree solver a -> solver (Tree solver a)) 

Instances

Solver solver => Transformer (RestartST es ts solver a)