monadiccp-0.7.5: Constraint Programming

Safe HaskellNone

Control.CP.EnumTerm

Documentation

class (Solver s, Term s t, Show (TermBaseType s t)) => EnumTerm s t whereSource

Associated Types

type TermBaseType s t :: *Source

Methods

getDomainSize :: t -> s IntSource

getDomain :: t -> s [TermBaseType s t]Source

setValue :: t -> TermBaseType s t -> s [Constraint s]Source

splitDomain :: t -> s ([[Constraint s]], Bool)Source

splitDomains :: [t] -> s ([[Constraint s]], [t])Source

getValue :: t -> s (Maybe (TermBaseType s t))Source

defaultOrder :: [t] -> s [t]Source

enumerator :: (MonadTree m, TreeSolver m ~ s) => Maybe ([t] -> m ())Source

assignment :: (EnumTerm s t, MonadTree m, TreeSolver m ~ s) => t -> m (TermBaseType s t)Source

assignments :: (EnumTerm s t, MonadTree m, TreeSolver m ~ s) => [t] -> m [TermBaseType s t]Source

inOrder :: EnumTerm s t => [t] -> s [t]Source

firstFail :: EnumTerm s t => [t] -> s [t]Source

middleOut :: EnumTerm s t => [t] -> s [t]Source

endsOut :: EnumTerm s t => [t] -> s [t]Source

labelling :: (MonadTree m, TreeSolver m ~ s, EnumTerm s t) => ([t] -> s [t]) -> [t] -> m ()Source

levelList :: (Solver s, MonadTree m, TreeSolver m ~ s) => [m ()] -> m ()Source

enumerate :: (MonadTree m, TreeSolver m ~ s, EnumTerm s t) => [t] -> m ()Source