=5-H      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                             !"$produce a fresh constraint variable #$the constraints % the labels &+add a constraint to the current state, and 3 return whethe the resulting state is consistent 'run a computation (-mark the current state, and return its label )!go to the state with given label WriterT decoration of a solver 2 useful for producing statistics during solving !"#$%&'() #$%&'()!" !""#$%&'()$%&'()D*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmI*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmDNOCMLKJIHGFEDPQRSAB>?@;<=:6789501234TUVWXYZ[/\]^_`ab,-.*+cdefghijklmD*++,-.-./01234123456789789:;<=<=>?@?@ABBC MLKJIHGFEDDEFGHIJKLMNOOPQRSTUVWXYZ[\]^_`abcdefghijklm$nopqrstu'attributed variable, with given action vbound to term windirection to other variable xState yHerbrand monad z{|Herbrand terms }~unify two arbitrary terms bind a variable to a term alias one variable to another Solver instance 'nopqrstuvwxyz{|}~ #|}~yz{xtwvupqrsno#noopqrsqrstwvuuvwxyz{z{|}~}~!"#$%&'()* !    ////       "+, -. /01234567  8           9 !"#$%&'()*+,-./01234567899:;<<=>?@AABCDEEFGGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvvwwxyz{|}~D=^          2      3                                                                 !" # $ % & ' ( ) * + , - . /0monadiccp-0.5.1Control.CP.FD.DomainControl.CP.PriorityQueueControl.CP.QueueControl.CP.SolverControl.CP.FD.FDControl.CP.Herbrand.HerbrandControl.CP.Herbrand.PrologTermControl.CP.Herbrand.PrologControl.CP.Herbrand.HerbrandTControl.CP.SearchTreeControl.CP.Transformers!Control.CP.ComposableTransformersControl.CP.FD.FDSugarToDomaintoDomainDomainsizemember isSubsetOfelems intersectionunion differencenull singleton isSingletonfilterLessThanfilterGreaterThanfindMaxfindMinempty shiftDomain PriorityQueueis_emptyminKey minKeyValueinsert deleteMindeleteMinAndInsertQueueElememptyQisEmptyQpopQpushQTermnewvarSolver ConstraintLabeladdrunmarkgotoToExprtoExprExprunExprBinaryConstraintFDState varSupplyvarMap objectiveVarMapVarInfodelayedConstraintsdomain VarSupplyFDVarunFDVarFDunFD To_FD_Term to_fd_term FD_ConstraintFD_Dom FD_AllDiffFD_NEqFD_Eq FD_HasValueFD_GTFD_LTFD_LessFD_SameFD_DiffFD_TermFD_Var#<in_range fd_domain fd_objective consistentFDrunFD initStatenewVarnewVarslookupupdate addConstraintaddBinaryConstrainthasValuesame different allDifferent.<.dumpexprVaraddArithmeticConstraint.+..-..*. getDomainPlusgetDomainMinus getDomainMult getDomainDiv.==../=.UnifyHState var_supplyheapBindingACTIONNONVARVARHeapHerbrandunHHTermVarId supplyVarmkVarisVarchildren nonvar_unify updateStatenewvarHaddHunifysuccessfailurebindtbindvregisterActionshallow_normalize normalize PrologTermPVarPTerm PConstraint:/= NotFunctor:=PrologRL HerbrandTunHT MonadTree TreeSolveraddTofalse\/existslabelTreeNewVarAddTryReturnFailbindTree insertTree/\truedisjconjdisj2existforallprim NodeBoundedSTNBSTDepthBoundedSTDBST Transformer EvalState TreeState ForSolver ForResultleftTrightTnextTinitTreturnTendT ContinueSig SearchSigevaleval'continue RestartST SealedCSTSealNewBoundBound BBEvalStateBBPCBranchBoundSTCBBST Composition:-CFirstSolutionSTCFSST CIdentityCSTCIST CRandomSTCRSTCLimitedDiscrepancySTCLDSTCDepthBoundedSTCDBSTCNodeBoundedSTCNBST CTransformer CEvalState CTreeState CForSolver CForResultinitCTleftCTrightCTnextCTreturnCT completeCTEXITCONTINUEEVAL CContinueSig CSearchSigTStacksolve nextTStackevalCT continueCTexitCTPlus:+pfsnbdbbbfsitraldnewBound newBoundBisrestart restartOptin_order@\=@=@\==@<@>RangeSetBranchNil$fSolverWriterTtraceun_fdaddFD all_differentwhenwhen$fSolverHerbrandandMupdater lookupVar gnormalizeVSPTDiffBoolDMaybeDNoDYes runProlog addProlog notFunctordiffdfsbfs enumerate firstfailenumvalue middleoutendsout interleave assignments assignment in_domain@+