monadiccp-0.7.6: Constraint Programming

Safe HaskellNone

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

restart :: (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

type NewBound solver = solver (Bound solver)Source

newtype Bound solver Source

Constructors

Bound (forall a. Tree solver a -> Tree 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) 

class Solver (CForSolver c) => CTransformer c Source

Associated Types

type CTreeState c :: *Source

type CForSolver c :: * -> *Source

type CForResult c :: *Source

Instances

Solver solver => CTransformer (CBranchBoundST solver a) 
Solver solver => CTransformer (CSolutionBoundST 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) 

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) 

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) 

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 CBranchBoundST solver a Source

Constructors

CBBST (NewBound solver) 

Instances

Solver solver => CTransformer (CBranchBoundST solver a) 

data CFirstSolutionST solver a Source

Constructors

CFSST 

Instances

Solver solver => CTransformer (CFirstSolutionST solver a) 

data CSolutionBoundST solver a Source

Constructors

CSBST Int 

Instances

Solver solver => CTransformer (CSolutionBoundST solver a) 

data CIdentityCST solver a Source

Constructors

CIST 

Instances

Solver solver => CTransformer (CIdentityCST solver a) 

newtype CRandomST solver a Source

Constructors

CRST Int 

Instances

Solver solver => CTransformer (CRandomST solver a) 

newtype CLimitedDiscrepancyST solver a Source

Constructors

CLDST Int 

Instances