úÎȸ&      !"#$%NoneDR!This extracts results from a CSP.LLift an IO computation into the CSP monad. CSPs are only in IO temporarily.)Extract the current domain of a variable..Extract the current constraints of a variable. Is the variable currently bound?3Compute the size of the current domain of variable.'Create a variable with the given domainšThis performs a side-effect, writing to the given IORef but records this in the nondeterministic computation so that it can be undone when backtracking.gThe low-level function out of which constraints are constructed. It modifies the domain of a variable.'Add a constraint to the given variable.Assert a unary constraint.0Assert a binary constraint with arc consistency.¦Assert an n-ary constraint with arc consistency. One day this will allow for a heterogeneous list of variables, but at the moment they must all be of the same type.+Retrieve the current binding of a variable.¸Solve the given CSP. The CSP solver is a nondeterministic function in IO and this is the generic interface which specifies how the nondeterministic computation should be carried out.%Return a single solution to the CSP.  running with &!Return all solutions to the CSP.  running with '&  !"#$%        !"#$%(       !"#$%&'%&() csp-1.3.1-18M2iFB5Nlv5qTfbAnxcouControl.Monad.CSP CSPResultResultresultCSPunCSP DVContainer dvcIsBounddvcConstraints dvcABinding ConstraintDVdvDomain dvConstraintscspdomaindemonsisBound domainSizemkDVlocalWriteIORefrestrictDomain addConstraint constraint1 constraint2 constraintbindingsolveCSPoneCSPSolutionallCSPSolutions $fCSPResult[]$fCSPResult(,) $fCSPResultDV $fMonadCSP$fApplicativeCSP $fFunctorCSP)nondeterminism-1.4-3MIywAbuqaXIXcit1AvtNbControl.Monad.Amb oneValueT allValuesT