ZA/      !"#$%&'()*+,-./0123456789:;<=>?@ABC D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~        !"#$%&'()*+,-. /0123456789:;<=>?@ABCDEFGHIJK4569:;<=>?@ABCDEFGHI45569:;<=>?@ABCDEFGHI     $produce a fresh constraint variable the constraints  the labels +add a constraint to the current state, and 4 return whether the resulting state is consistent run a computation -mark the current state, and return its label !go to the state with given label LWriterT decoration of a solver 2 useful for producing statistics during solving   $MNOPQR'attributed variable, with given action Sbound to term Tindirection to other variable UState Herbrand monad !"#Herbrand terms $%&'()*+V,-./unify two arbitrary terms 01Wbind a variable to a term Xalias one variable to another 23YZSolver instance  !"#$%&'()*+,-./0123#$%&'()*+ !"10/32,.- !"!"#$%&'()*+$%&'()*+,-./012345645646546556[\]^789:;_`abc456789:;;7:987:9889:;<=>?@AB<=>?@AB@AB>?<=<==>??@ABAB C-Generalization of the search tree data type, * allowing monad transformer decoration. dDEFGHIJKLMNOPQRSTUVWXYZ[\]^show _CDEFGHIJKLMNOPQRSTUVWXYZ[\]^_IONMLKJPQRSTUVWXYZ[\^_CDEFGH]CDEFGHDEFGHIONMLKJJKLMNOPQRSTUVWXYZ[\]^_ `eafbcdefghijklghmno`abcdefghijklmnomno`abcdefghijkl`ab cdefghijklcdefghijklmno /pqrstijkuvlmwxyz{|}~nopqrstuvwxyz{|}~pqrstuvwxyz{|}~tpqrsuvwxyz{|}~pqqrsstuvvwxxyzz{||}~~   !))'Gecode FDSolver instance Gecode constraints boolean terms integer terms  Gecode terms basic compilation linear constraint compilation utility $$$ =Bounds 0StoreNode represents a node in the search tree. 4 * Each node adds new constraints and variables. 0 * A node is a leaf node or an internal node #new constraints added in this node +new bound-generator functions in this node id'"s of variables added in this node 4either no children, or one left and one right child  CodegenSolver monad definition    CodegenSolver compilation $CodegenSolver solver implementation utility   CodegenSolver FDSolver instance CodegenSolver terms Helper functions #Gecode Solver instance declaration                 1        !"#$%&'()* !"#$%&'()* !"#$%&'()* !"#$%&'()*+,-.+,-.,-.++,-. !"#$%&'()*+,-./01234567889:;<=>?@ABCDEFGHIJKLMNOPQRSSTTUUV W X Y Z [ \ ] 1 ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                           \            +        !"#$%&'()*+,-./0123456789:;<=>?@ABCD8EF9GHIJKLMNOP67QRSTUVWXYZ[\]^_`Rabcd e f g h i j k l m n o p q r s t u v w x y z { { | } ~    ;=<C monadiccp-0.6Control.CP.PriorityQueueControl.CP.QueueControl.CP.MixinControl.CP.SolverControl.CP.Herbrand.HerbrandControl.CP.Herbrand.PrologTermControl.CP.Herbrand.PrologControl.CP.Herbrand.HerbrandTControl.CP.SearchTreeControl.CP.Transformers!Control.CP.ComposableTransformersControl.CP.EnumTermControl.CP.FD.ExprControl.CP.FD.FDControl.CP.FD.Gecode.Common"Control.CP.FD.Gecode.CodegenSolverControl.CP.FD.Gecode.Translate!Control.CP.FD.OvertonFD.OvertonFDControl.CP.FD.OvertonFD.SugarControl.CP.FD.SolversControl.CP.FD.Example.ExampleControl.CP.DebugControl.CP.FD.OvertonFD.Domain PriorityQueueis_emptyemptyminKey minKeyValueinsert deleteMindeleteMinAndInsertQueueElememptyQisEmptyQpopQpushQMixin<@>mixin mixinConstmixinIdTermHelpnewvarhelpSolver ConstraintLabeladdrunmarkgotoUnifyHStateHerbrandunHHTermVarId VarSupply varSupply supplyVarmkVarisVarchildren nonvar_unify initStatenewvarHaddHunifysuccessfailureregisterActionshallow_normalize PrologTermPVarPTerm PConstraint:/= NotFunctor:=PrologRL HerbrandTunHT MonadTreeaddTofalse\/existslabelTreeNewVarAddTryReturnFail transformTreebindTree insertTree/\truedisjconjdisj2primaddCaddTexistforalluntreeindentshowTree NodeBoundedSTDepthBoundedST Transformer EvalState TreeState ForSolver ForResultleftTrightTnextTinitTreturnTendTevaleval'continue RestartST SealedCSTSealNewBoundCBranchBoundSTCBBSTCFirstSolutionSTCFSST CIdentityCSTCIST CRandomSTCRSTCLimitedDiscrepancySTCLDSTCDepthBoundedSTCDBSTCNodeBoundedSTCNBST CTransformer CTreeState CForSolver CForResultsolveEnumTerm TermDomainget_domain_size get_valuesplit_domain_partial split_domain split_domains enumeratein_order firstfail middleoutendsout interleave assignment assignmentsExprKeyToExprtoExprExprAbsModDivMultMinusPlusConst unExprKeyFDLabelFDTree FDWrappersubFD FDConstraintSortedAllDiffDomSameDiffLessFDExprFDSolverFDTermspecific_compile_constraintspecific_decomposespecific_fresh_varcompile_constraint decompose fresh_varunwrapwrap@+@-@*@/@%cte@:@<@<=@>@>=@=@/=allDiffsortedsSortedallin GecodeSolversetVarImplicitcaching_decompose GOperatorOLessODiffOEqual GConstraintCSortedCAllDiffCLinearCDomCValueCModCDivCAbsCMultCRelCSameCDiffBoolTerm BoolConstBoolVarIntTermIntConstIntVarGTypeTypeBoolTypeIntGTermgetVarId getIntValue getDefBounds basicCompile linearCompileorElseStorevarsvardatactreecpathcexpr StoreNodeTypeSNIntlSNLeaf StoreNodeconsnboundsnvarsdisVarBoundvaridlboundubound CodegenSolverstatecompile getAllBounds getVarType isVarImplicitgenerate_gecodeFDVar OvertonFD OConstraintOAbsOMultOSubOAddOSame OHasValue fd_domain fd_objectivenewBound newBoundBisrestart restartOpt as_overtonfdas_gecode_codegenpfsnbdbbbfsitraldFDModel example_mainexample_main_voidexample_main_singleBranchNilunion singletondebugToDomaintoDomainDomainRangeSetsizemember isSubsetOfelems intersection differencenull isSingletonfilterLessThanfilterGreaterThanfindMaxfindMin shiftDomain mapDomainprintDomdebugDom$fSolverWriterT var_supplyheapBindingACTIONNONVARVARHeap updateStatebindtbindv normalize$fSolverHerbrandDiffBoolDMaybeDNoDYes runProlog addProlog notFunctordiff TreeSolverNBSTDBST ContinueSig SearchSigBound BBEvalStateBBP Composition:- CEvalStateinitCTleftCTrightCTnextCTreturnCT completeCTEXITCONTINUEEVAL CContinueSig CSearchSigTStack nextTStackevalCT continueCTexitCT levelListvarrefssimplifyEQHelpdefault_compile_constraintdefault_decomposefront_decomposedefault_fresh_vardefault_compile_alldiffdefault_compile_sorteddefault_compile_domgetAsVar getAsTermlinearExprCompileXIntXInfPlusXInfMinVarDatavtypevimplVarBoundPropagator VarBoundMap UpperBound LowerBoundsetVarImplicitHelper execGecode buildState lowestBound highestBounddebugBoundsPropagatorboundsPropagatorpropagateVarBoundsintersectBound unionBounds getBounds getNodeBounds getPathBoundsnewVar runGecode getNumVars getVarData modVarData$fGecodeSolverCodegenSolver$fTermCodegenSolverIntTerm$fSolverCodegenSolver countTypeVarsmaxDepthvarsUsed typeToString typeToDefArgs getVarNamegetNamestateToExplListstateToConstList gopToGCRel gopToInvGCRelstateToPostListstateToBranchList nodeToProg stateToProgBinaryConstraintFDStatevarMap objectiveVarMapVarInfodelayedConstraintsdomainunFDVarunFD consistentFDrunFDnewVarslookupupdate addConstraintaddBinaryConstrainthasValuesame different.<.dumpaddArithmeticConstraintaddUnaryArithmeticConstraint getDomainPlusgetDomainMinus getDomainMult getDomainDiv@@<@@>dfsbfs