Safe Haskell | None |
---|---|
Language | Haskell98 |
- currentProblem :: TCM ProblemId
- stealConstraints :: ProblemId -> TCM ()
- solvingProblem :: ProblemId -> TCM a -> TCM a
- solvingProblems :: [ProblemId] -> TCM a -> TCM a
- isProblemSolved :: ProblemId -> TCM Bool
- getConstraintsForProblem :: ProblemId -> TCM Constraints
- getAwakeConstraints :: TCM Constraints
- wakeConstraints :: (ProblemConstraint -> TCM Bool) -> TCM ()
- partitionM :: (a -> TCM Bool) -> [a] -> TCM ([a], [a])
- dropConstraints :: (ProblemConstraint -> Bool) -> TCM ()
- putAllConstraintsToSleep :: TCM ()
- data ConstraintStatus
- holdConstraints :: (ConstraintStatus -> ProblemConstraint -> Bool) -> TCM a -> TCM a
- takeAwakeConstraint :: TCM (Maybe ProblemConstraint)
- getAllConstraints :: TCM Constraints
- withConstraint :: (Constraint -> TCM a) -> ProblemConstraint -> TCM a
- buildProblemConstraint :: ProblemId -> Constraint -> TCM ProblemConstraint
- buildConstraint :: Constraint -> TCM ProblemConstraint
- addConstraint' :: Constraint -> TCM ()
- addAwakeConstraints :: Constraints -> TCM ()
- nowSolvingConstraints :: TCM a -> TCM a
- isSolvingConstraints :: TCM Bool
- mapAwakeConstraints :: (Constraints -> Constraints) -> TCState -> TCState
- mapSleepingConstraints :: (Constraints -> Constraints) -> TCState -> TCState
- modifyAwakeConstraints :: (Constraints -> Constraints) -> TCM ()
- modifySleepingConstraints :: (Constraints -> Constraints) -> TCM ()
Documentation
currentProblem :: TCM ProblemId Source #
Get the current problem
stealConstraints :: ProblemId -> TCM () Source #
Steal all constraints belonging to the given problem and add them to the current problem.
getAwakeConstraints :: TCM Constraints Source #
Get the awake constraints
wakeConstraints :: (ProblemConstraint -> TCM Bool) -> TCM () Source #
dropConstraints :: (ProblemConstraint -> Bool) -> TCM () Source #
putAllConstraintsToSleep :: TCM () Source #
data ConstraintStatus Source #
holdConstraints :: (ConstraintStatus -> ProblemConstraint -> Bool) -> TCM a -> TCM a Source #
Suspend constraints matching the predicate during the execution of the second argument. Caution: held sleeping constraints will not be woken up by events that would normally trigger a wakeup call.
withConstraint :: (Constraint -> TCM a) -> ProblemConstraint -> TCM a Source #
addConstraint' :: Constraint -> TCM () Source #
Add new a constraint
addAwakeConstraints :: Constraints -> TCM () Source #
Add already awake constraints
nowSolvingConstraints :: TCM a -> TCM a Source #
Start solving constraints
Lenses
mapAwakeConstraints :: (Constraints -> Constraints) -> TCState -> TCState Source #
mapSleepingConstraints :: (Constraints -> Constraints) -> TCState -> TCState Source #
modifyAwakeConstraints :: (Constraints -> Constraints) -> TCM () Source #
modifySleepingConstraints :: (Constraints -> Constraints) -> TCM () Source #