lW      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW 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!{!|!}!~!!!!!!!!"""""""""""""""""""""""""""""""###################$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&& ' ' ' ' ''''''''''''''''''' '!'"'#'$'%'&'''(')'*'+','-'.'/'0'1'2'3'4'5'6'7'8'9':';'<'='>'?'@'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'['\']'^'_'`(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({(|(}(~(((((((((((((((())))))))))))))))))))))))))))))))))*******++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + + + +++++++++++++,,,,,, ,!,",#,$,%,&,',(,),*,+,,,-,.,/,0,1,2,3,4-5-6-7-8-9-:-;-<-=->-?-@-A-B-C.D.E/F/G/H/I/J/K/L/M/N/O/P0Q0R0S0T0U0V0W0X0Y0Z0[0\0]0^0_0`0a0b0c0d0e0f0g0h0i0j0k0l0m0n0o0p0q0r0s1t1u1v1w1x1y1z1{1|1}1~11111? Safe-Inferred  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~|~}v{zyxwnutsrqpokmlgjih`abcdefXYZ[\]^_RSTUVWBQPONMLKJIHGFEDC>A@?/=<;:9876543210*.-,+)('&%$#"!     )('&%$#"! *.-,+/=<;:9876543210>A@?BQPONMLKJIHGFEDCRSTUVWXYZ[\]^_`abcdefgjihkmlnutsrqpov{zyxw|~} Safe-Inferred2 Safe-Inferred: 3None4None>     q !"#$%&'()*+,-./01234567 .     5None89:;<=>?@ABCDEFGHIJKLMNOPQR89:;<=>?@ABCDEFGHIJKL89:;<=>?@ABCDEFGHIJKLMNOPQR6NoneSTUVWXYSVWSTUVWXY7None;Z[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !"#$%&'()*+,-./01234567 Z[\]^_`abcdefghijklmnopqrstuvwxyz{|}~/Z\[]^_a`bcdefghjikmlnopqrstuvwxyz{|}~8None$ !"#$%&'()*+,-./01234567 Z[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None 9None !"#$%&'()*+,-./01234567 89:;<=>?@ABCDEFGHIJKLZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~:None;Noneshift focus to left shift focus to right <None=None   >None     !"#$%&'     !"#     !"#$%&' Safe-Inferred      !"#$%()*+,-./0123456      !"#$%      !"#$%:/      !"#$%()*+,-./0123456 Safe-Inferred-&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOP78+&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOP+435'()*+,-./0126&789:;<=>?@ABCDEFGHIJKLMNOP"&' ()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOP78NoneQRSTUVWXYZ[\]^_`abcdefghijk9:;QRSTUVWXYZ[\]^_`abcdefghijkbcdefghi\]^_`aWXYZ[jTUVkQRS QRSTUVWXYZ[\]^_`abcdefghijk9:;None lmnopqr<=>?lmnopqrlmnopqr lmnopqr<=>?None@ABCDEFGHIJKLMstuvwxyz{|}~NOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~^ stuvwxyz{|}~^ {|~}wxyzstuv}@ABCDEFGHIJKLMstuvwxyz{|~}NOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ None None None None None  NoneNoneNoneNone.% NoneNoneNone    None     None            NoneNoneNone     Safe-Inferred !"#$%&'(!"#$%&'(!#"$%&'( !"#$%&'(None)*)*)*)*None!+,-./0123456789:;<=>?+,-./0123456789:;<=>?-+,/01243<56789:;.=>?+,-./0123456789:;<=>? Safe-Inferred @ABCDE@ABCDE@ABCDE@ABCDE Safe-InferredFType of mixin functions. GMixin composition. H%Turn a mixin into a closed function. IMixin identity function.  Identity for mixin composition:  mixinId <@> f == f  f <@> mixinId == f JMixin lift function  mixin . mixinLift = id FGHIJFGHIJFGHIJFGHIJ Safe-Inferred M$produce a fresh constraint variable Pthe constraints Q the labels R+add a constraint to the current state, and 4 return whether the resulting state is consistent Srun a computation T-mark the current state, and return its label URmark the current state as discontinued, yet return a label that is usable n times V!go to the state with given label WriterT decoration of a solver 2 useful for producing statistics during solving KLMNOPQRSTUV KLMNOPQRSTUV OPQRSTUVKMLNKMLNOPQRSTUV  Safe-InferredW-Generalization of the search tree data type, * allowing monad transformer decoration. tshow (WXYZ[\]^_`abcdefghijklmnopqrstuWXYZ[\]^_`abcdefghijklmnopqrstu^dcba`_eghijklmnopqrtufWXYZ[\]sWXYZ[\]^dcba`_efghijklmnopqrstu!Nonevwxyz{|}~vwxyz{|}~vwxyz{|}~ vwx yz{|}~"None?      !"#$%&'('       !"#$%&'(#None)  )$ Safe-Inferred *+   *+% Safe-Inferred,Show instance | -- Data types | -- -Eq instance | -- 1ExprKey: Provides ordering over expressions | -- @,.-/0123456789:;<=>?@A**,.-/0123456789:;<=>?@A& Safe-Inferredwalk through expressions BHelper functions |-- ETransform expressions over one type to expressions over another | -- VCheck whether an expression is possibly referring to terms with a given property | -- C?Count how many references to terms an expression contains | -- Simplify expressions | -- ?Turn expressions over expressions into simply expressions | -- 'BDEFCGHIJKL"BDEFCGHIJKL'NonemMNOPQ     RS !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNTUOPQRVWXYSTUZVW[XYZ[\]^\_]^_`abW      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_W'JIHGFEDCBA@?>=<;:9876543210/.-,+*)(%&#$!" KNML     V[\XZW]OPQR^_SUTY0MNOPQ     RS !"#$%&'#JIHGFEDCBA@?>=<;:9876543210/.-,+*)(KNMLTUOPQRVWXYSTUZVW[XYZ[\]^\_]^_`ab( Safe-Inferrediconvertion from/to expression types | -- kinteger operators/functions | -- rlist operators/functions | -- boolean operators/functions | -- crelational operators/functions | -- dBuilt-in class instances | -- C`abcdefghijklmnopqrstuvwxyz{|}~efghcijklmnopqrstuvwd1`abcdefghijklmnopqrstuvwxyz{|}~1klmnopqrsutv|z{}wyx~ijghefbcd`a=`abcdefghijklmnopqrstuvwxyz{|}~efghcijklmnopqrstuvwd) Safe-Inferred?xyz{|}~"".xyz{|}~*None !definition of a decomposer monad the state for the DCMonad base instance of DecompData base state for the DCMonad Ltransform an expression into a graph, taking and returning an updated state Feasier version of decomposeEx that does not require or return a state Qdecomposition states can be stacked, this function tests whether a property hold # for a state or any of its parents %Decomposition of special values | -- &Real decomposers for expressions | -- 8* +NoneDA solver needs to be an instance of this FDSolver class in order to ! create an FDInstance around it. fdefinition of FDInstance, a Solver wrapper that adds power to post boolean expressions as constraints Aa label for an FDInstance; must store the FDState plus the Solver's internal state >state kept by FDInstance, in addition to the underlying solver's internal state 0expression representing unprocessed constraints model being processed now Hprivate data for the decomposer (kept to optimize constraints which aren't added in one go) %when adding constraints, the EGEdgeId'$s occurring in the decomposed model 'expressions that need to be decomposed variable counter $already introduced integer variablesterms constants/ expressions needed sets of possible types /which variables are being decomposed right now *which nodes are unified with which others $already introduced boolean variablesterms constants/ expressions 'already introduced collection variablesterms constants/ expressions db of specifiers solver is failed? level of nesting levels of dummyness initial FDState state ?run the second argument as long as the first one produces true $helper function to combine two Maybe's \lift a monad action for the underlying solver to a monad action for an FDInstance around it Smark all new edges(=constraints) of a model given in graph-form as to-be-processed add an int term add a bool term add a col term       !"#$%&'()*+,-./0123456789:;<=>?@ABCDE  F   GHIJKLMNOPQRSTUVWXYZ`abcdefghijklmnopqrstuvwxyz{|}~     c           !"#$%&'()*+,-./0123456789:;<=>?@ABCDE  F   GHIJKLMNOPQRSTUVWXYZ,None+[\]^_`abc !"#$%&'()d*+,-./0123efghijk6Z\jklmnorstuvwxyz{|} !"#$%&'()*+,-./01236klmnorstuvwxz{y|} !#"012$&'*+,()-3%./\jZ&[\]^_`abc !"#$%&'()d*+,-./0123efghijk-None?lmnopqrstuvw4xy5z{6789:;<=>?|@A}~B456789:;<=>?@AB5A@46?>=<;:987B+lmnopqrstuvw4xy5z{6 ?>=<;:987|@A}~B.NoneCDCDCDCD/None EFGHIJKLMNO EFGHIJKLMNO EFGHIJKLMNO EFGHIJKLMNO0None%PQRSTUVWXYZ[\]^_`abcdefghijklmnopqr#PQRSTUVWXYZ[\]^_`abcdefghijklmnopqr#dfecgqponmlkjih[^]\PZYXWVUTSRQ_`bar P ZYXWVUTSRQ[^]\_`bacdfeg qponmlkjihr?None1Nonestuvwxyz{|}~FZ\jklmnorstuvwxyz{|} !"#$%&'()*+,-./0123stuvwxyz{|}~xz{}y|~vwutsstuvwxyz{|}~@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopjqrstuvwxyz{|}~      !"#$%&'()*+,-.//01233456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~                             !"#$%&'()*+,-./012345566789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abKcdefghijklmnopqrstuvwxyz { | } ? ~    u           >           !!!!g!h!!!!!!!!!!!"""""""""""""""""""""""""""""""###################$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %!%#%"%%%p%&&&&&&&&&& & & & & &&&&&&&&&&&&&&''''''' '!'!'"'#'$'$'%'&'''('(')'*'+','-'.'/'0'1'2'3'4'5'6'7'8'9':';'<'='>'?'@'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'['\']'^'_'`'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({(|(}(~((((((V((((((((((((((((H(B(D(C(((())))))))))))))))))))))))))))))))))*******++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + + + +++++++++++++++++,q,r,,,,,H,B,C,D,,,,,,,,,,, ,!,o,~,,"-#-$-%-&-'-(-)-*-+-,---.-/-0-1.2.3/4/5/6/7/8/9/:/;/</=/>0?0@0A0B0C0D0E0F0G0H0I0I0J0K0L060M0N0O0P0Q0R0S0T0U0V0W0X0Y0Z0[0\0]0^0_1`1a1b1c1d1e1f1g1h1i1j1k1l1m1n1op02qrstuvwxyz{|}~22222222222222222223344444444444444444444444444444444444444444444444444444444444444     5555 5!5"55#5$5$5%5&5'5(5)5*5+5,5-5.5/50515253545566666768696:6;7<7=7>7?7?7@7A77B7C7D7E7F7G7H7I7J7K7L7M7N77O7P7Q7R7S7T7U7V7W7X7Y7Z7[7\7]7^7_7`7a7b7c7d7e7f7g7h7i7j7k7l7m7n7o7p7q7r7s8t8u8v8w8x8y8z8{8|8}8~88888888888888888888888889:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<=================>>>>>>>>>>>>>>>>>>>v>>>>>>>>>>>      !"#$$%&&'(()*h+,-../0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkl m n o p q r s   t u v w x y z { | } ~    uuwxyz{|}Z]         !!!!!!""""""""""""""""""""""""""""""""#$$%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&& & ' ' ' '''*''''''''''''''''((((( (!("(#($(%(&('((()(*(+(,(-(.(/(0)1)2)3)4)5)6)7)8)9):);)<)=)>)?)@) ) ) )A)B)C)D)E)F)G)H)I)J*K*L*M*N*O*P*K*&*L*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+{+|+}+~++++++++++++++++++++++++++++++++++++x+++y+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++, , , , , , , , ,,,,,,,,,--y-y-----*-*----#--$- -!-"-#-$-[-%-&-`-'-(-)-*-+-,---.-/-0-1-2-3-4-5-6-7-8-9-:-;-<-=->.?.@.A0B0C?%?D?E?F??G1H1IJmonadiccp-0.7.6Language.CPP.Syntax.ASTLanguage.CPP.PrettyControl.Search.SStateTControl.Search.LanguageControl.Search.GeneratorInfoControl.Search.MemoControl.Search.MemoReaderControl.Search.GeneratorControl.Search.StatControl.Search.Combinator.For!Control.Search.Combinator.FailureControl.Search.Combinator.UntilControl.Search.Combinator.If"Control.Search.Combinator.OrRepeatControl.Search.Combinator.Let!Control.Search.Combinator.SuccessControl.Search.Combinator.BaseControl.Search.Combinator.OnceControl.Search.Combinator.And Control.Search.Combinator.RepeatControl.Search.Combinator.OrControl.Search.ConstraintsControl.Search.Combinator.PostControl.Search.Combinator.MiscControl.Search.Combinator.PrintControl.CP.PriorityQueueControl.CP.DebugControl.CP.FD.OvertonFD.DomainControl.CP.QueueControl.Mixin.MixinControl.CP.SolverControl.CP.SearchTreeControl.CP.Transformers!Control.CP.ComposableTransformersControl.CP.EnumTerm Data.LinearData.Expr.DataData.Expr.UtilControl.CP.FD.GraphData.Expr.SugarControl.CP.FD.ModelControl.CP.FD.DecomposeControl.CP.FD.FDControl.CP.FD.Interface!Control.CP.FD.OvertonFD.OvertonFDControl.CP.FD.SimpleFDControl.CP.FD.SolversControl.CP.FD.SearchSpec.DataControl.CP.FD.ExampleControl.Monatron.MonadTControl.Monatron.AutoInstancesControl.Monatron.TransformerControl.Monatron.MonadControl.Monatron.CodensityControl.Monatron.OperationsControl.Monatron.AutoLiftControl.Monatron.MonatronControl.Monatron.IdTControl.Monatron.ZipperControl.Monatron.MonadInfoControl.Monatron.OpenControl.Monatron.ZipperExamplesControl.CP.FD.OvertonFD.Sugar CPPBinaryOpCPPOpLOr CPPOpLAndCPPOpXorCPPOpOrCPPOpAndCPPOpNeqCPPOpEqCPPOpGeqCPPOpLeqCPPOpGrCPPOpLeCPPOpShrCPPOpShlCPPOpSubCPPOpAddCPPOpRmdCPPOpDivCPPOpMul CPPUnaryOpCPPOpNeg CPPOpComp CPPOpMinus CPPOpPlusCPPOpIndCPPOpAdr CPPOpPostDec CPPOpPreDec CPPOpPostInc CPPOpPreInc CPPAssignOp CPPAssOpXor CPPAssOpOr CPPAssOpAnd CPPAssOpShr CPPAssOpShl CPPAssOpSub CPPAssOpAdd CPPAssOpRmd CPPAssOpDiv CPPAssOpMulCPPAssOpCPPConstCPPConstString CPPConstFloat CPPConstChar CPPConstIntCPPExprCPPNewCPPVar CPPMemberCPPCallCPPIndex CPPSizeOfType CPPSizeOfExprCPPCastCPPCondCPPUnary CPPBinary CPPAssignCPPComma CPPBlockItem CPPComment CPPBlockDecl CPPStatementCPPStat CPPDelete CPPReturnCPPBreakCPPContCPPGotoCPPForCPPWhile CPPSwitchCPPIf CPPVerbStat CPPCompound CPPSimple CPPDefaultCPPCaseCPPLabel CPPConstr cppConstrStor cppConstrArgs cppConstrBody cppConstrInitCPPDef cppDefName cppDefRetType cppDefStor cppDefQual cppDefArgs cppDefBodyCPPDecl cppDeclNamecppType cppTypeQual cppTypeStor cppDeclInitCPPInit CPPInitArray CPPInitCall CPPInitValueCPPQualCPPQualVolatile CPPQualConst CPPStorSpec CPPVirtual CPPInline CPPTypedef CPPExtern CPPStatic CPPRegisterCPPAutoCPPTypeCPPTemplCPPRefCPPPtrCPPArray CPPTypePrim CPPVisibility CPPPrivate CPPProtected CPPPublicCPPClass cppClassNamecppClassInherit cppClassDecls cppClassDefscppClassConstrs CPPNamespace CPPElement CPPElemClass CPPElemDef CPPElemDeclCPPElemNamespace CPPMacroStmCPPMacroDefinecppMacroDefNamecppMacroDefArgscppMacroDefExprCPPMacroIncludeSysCPPMacroIncludeUserCPPFile cppMacroStmcppUsing cppTranslUnitcodegenSStateTTup2fst2snd2sstateT runSStateT Simplifiablesimplify Statement DebugValue DebugOutputBlockDeleteBIFoldBFoldIFoldFoldPostSHookPrintAbortAssignSeqSkipPush IfThenElse ConstraintFalseCTrueCGqCGtCLqCLtCNqCEqCValueMinValMaxValDummyAssignedCondBaseNewNullRandomMedianLbRegretUbRegretWDegreeDegreeMaxDomMinDomIVar BAVarSize BAVarElemAVarSizeAVarElemMaxVHookNotOrAnd BaseContinueEqGtGqLtPFieldField'FieldCloneDerefRefVarAbsModDivMultPlusMinus RootSpaceBValIValTypeTHookSTypeUnionBoolInt SpaceTypePointerStructPrettyprettyXpretty PrettyFlagsgenModeGenModeModeMCPModeFZ ModeGecodeModeUnk spacetypexsspace renderVardivValuetruefalse&&&|||@>@>=@<=@==@->@=>@<lex simplValue$==$/=$<$<=$>$>=neginlinercommentdecinc>>><==assignifthenseqs simplStmtInfo baseTstatepathabort_commit_oldclonefield stackField treeStateType evalStateType EvalState TreeStatespace@@tstate tstate_typeestate estate_type withCommitonAbortonCommit onCommit'withPathwithBase withClone withField resetPath resetCommit shiftCommit resetAbort shiftAbort resetClone resetInfomkInfoinfonewinfocommitabort primClonecloneItMemoMgetMemosetMemoMemoTunMemoTMemoInfomemoMap memoCountmemoRead MemoValuememoIdmemoCodememoUsed memoFieldsMemoKeymemoFnmemoInfo memoStack memoExtra memoStatement memoParams initMemoInforunMemoT MemoReaderT unMemoReaderT memoReaderT deMemoReaderTrunMemoReaderTmodelMemoReaderTSearchCombinerrunnerelemsSearchmkeval runsearchMkEvalSeqPosSecondSFirstSOutSEvalstructs treeState_ evalState_ nextSameH nextDiffH pushLeftH pushRightHbodyHinitHaddHreturnHfailHtryHtryLH startTryH intArraysE boolArraysEintVarsEdeleteHtoString canBranchcompleteEvalableVarInfoM lookupVarInfo setVarInfoVarId commentEvalentryinitsinitemkCopymkUpdatemseqsmapEnextSamenextDiffpushLeft pushRightbodyEaddEreturnEinitEfailEtryE startTryEtryE_deleteEcacheStatementmemomemoLoop cachedCommit cachedAbort cachedClonerReaderT seqSwitch numSwitch@++@ ref_count ref_countxref_count_type cloneBase@>>>@@$@.rp<@>extractCombiners buildCombinermmapsearchStatIValuereadStatevalStatappStat constStat#>#=#<#>=#<=#/notStat depthStatdiscrepancyStat nodesStat solutionsStatvarStat failsStattimeStatforforeachfailurelimitglimituntilif'orRepeatlet'set'dummy foldVarSel ifoldVarSel bfoldVarSel bifoldVarSellabelvlabelilabel int_assignglabelgblabelmaxVminVlbVubVdomsizeV lbRegretV ubRegretVdegreeVdomSizeDegreeVwDegreeVdomSizeWDegreeVrandomVminDmaxDmeanDmedianDrandomDonceonceOldandN<&>repeat<|> ConstraintGenConstraintExprcvarscbvarscvarcvalclvarcopctruecfalse cexprStatVal cexprStatMin cexprStatMax cexprStatMedpostbbminldsdbsprtdbg PriorityQueueis_emptyemptyminKey minKeyValueinsert deleteMindeleteMinAndInsertdebugimdebugToDomaintoDomainDomainsizemember isSubsetOf intersectionunion differencenull singleton isSingletonfilterLessThanfilterGreaterThanfindMaxfindMin shiftDomain mapDomain absDomainQueueElememptyQisEmptyQpopQpushQMixinmixinmixinId mixinLiftTermHelpnewvarhelpSolverLabeladdrunmarkmarkngoto MonadTree TreeSolveraddTo\/existsTreeNewVarAddTryReturnFail transformTreemapTreebindTree insertTree/\disjconjdisj2primaddCaddTexistforalluntreeindentshowTree NodeBoundedSTDepthBoundedST Transformer ForSolver ForResultleftTrightTnextTinitTreturnTendTevaleval'continue RestartST SealedCSTSealNewBoundBoundCBranchBoundSTCBBST Composition:-CSolutionBoundSTCSBSTCFirstSolutionSTCFSST CIdentityCSTCIST CRandomSTCRSTCLimitedDiscrepancySTCLDSTCDepthBoundedSTCDBSTCNodeBoundedSTCNBST CTransformer CTreeState CForSolver CForResultsolverestartEnumTerm TermBaseType getDomainSize getDomainsetValue splitDomain splitDomainsgetValue defaultOrder enumerator enumerate assignment assignments firstFailinOrder middleOutendsOut levelList labellingLinear termToLinearintegerToLinear constToLinear linearToListlinearToListExgetCoef linearMultlinearMultiply linearToConst linearToTermBoolExprDomSortedAllDiff BoolEqualColEqualBoolAnyBoolAllRelBoolCondBoolNotBoolOrBoolAnd BoolConstBoolTermExprRelERLessERDiffEREqualColExprColCatColSliceColMapColRangeColListColTermExprChannelColSizeAtConstExprHole<<>> WalkResult WalkDescendWalkSkip WalkPhaseWalkPost WalkSingleWalkPre transform transformEx colTransformcolTransformEx boolTransformboolTransformEx propertyEx colPropertyExboolPropertyExproperty colProperty boolProperty colSimplify boolSimplifycollapse colCollapse boolCollapsewalkcolWalkboolWalkEGModel egmParamsegmVars egmNEdgesegmEdgesegmLinksEGEdgeegeConsegeLinks EGTypeDataboolDataintDatacolDataEGVarIdunVarIdEGEdgeId EGConsArgsEGColPar EGBoolParEGPar EGParColTerm EGPTColParam EGParBoolTerm EGPTBoolParam EGParTerm EGPTParamEGConstraintSpec EGCondInt EGCondEqualEGDom EGAllDiffEGSortedEGAnyEGAllEGLessEGDiffEGEqualEGNotEGEquivEGOrEGAndEGCatEGSliceEGMapEGRangeEGList EGChannelEGSizeEGFoldEGAtEGAbsEGModEGDivEGMultEGMinusEGPlus EGColExtern EGBoolExtern EGIntExtern EGColValue EGBoolValue EGIntValue EGVarType EGColType EGIntType EGBoolType baseTypeData egTypeDataMap egTypeGet egTypeMod externMap emptyModel filterModeladdEdgeunifyIdsfindEdge pruneNodes unifyNodesaddNodedelNode baseGraphpresentgetConnectedEdges ExprRange@: ExprClass@=@/= ToBoolExpr toBoolExpr ToColExpr toColExprToExprtoExpr@+@-@*@/@%@?@??!@!!@..@++xfoldxsumlistxheadxtailslicexmaploopallloopanyforanychannel@||@&&invsortedsSortedallDiffallDiffD ToModelColasCol ToModelIntasExpr ToModelBoolasBool ModelTermType newModelTermModel ModelColArg ModelBoolArg ModelIntArgModelCol ModelBoolModelIntModelFunctions ForNewCol ForNewInt ForNewBool ModelBoolTerm ModelExtra ModelBoolPar ModelBoolVar ModelColTerm ModelColPar ModelColVar ModelIntTerm ModelIntPar ModelIntVar showModelmodelVariantIntmodelVariantColmodelVariantBoolcte DecompDatadecompBoolLookupdecompIntLookupdecompColLookupbaseDecompData decomposeEx decomposeFDSolver FDIntTerm FDBoolTerm FDIntSpec FDBoolSpec FDColSpec FDIntSpecTypeFDBoolSpecType FDColSpecTypefdIntSpec_constfdBoolSpec_constfdColSpec_constfdColSpec_listfdIntSpec_termfdBoolSpec_termfdColSpec_size fdIntVarSpec fdBoolVarSpec fdTypeReqBool fdTypeReqInt fdTypeReqCol fdTypeVarInt fdTypeVarBool fdSpecify fdColInspect fdProcess fdEqualBool fdEqualInt fdEqualColfdConstrainIntTermfdSplitIntDomainfdSplitBoolDomain FDSpecInfo FDSpecInfoCol fdspColSpec fdspColVar fdspColVal fdspColTypes FDSpecInfoInt fdspIntSpec fdspIntVar fdspIntVal fdspIntTypesFDSpecInfoBool fdspBoolSpec fdspBoolVar fdspBoolVal fdspBoolTypesSpecFn SpecFnRes SpecResult SpecResUnify SpecResSpec SpecResNone FDInstancesetMinimizeVargetMinimizeVargetMinimizeTerm boundMinimizerunFD procSubModelprocSubModelExgetLevelspecSubModelEx getBoolSpec_ getBoolSpec getIntSpec_ getIntSpec getColSpec_ getColSpecliftFDspecInfoBoolTermspecInfoIntTermfdSpecInfo_specgetEdgemarkEdgenewColnewIntnewBoolgetSingleIntTerm getIntTerm getBoolTerm getColTerm getColItems getIntVal getBoolVal getColVal setFailedaddFD getDefIntSpecgetDefBoolSpec getDefColSpecgetFullIntSpecgetFullBoolSpecgetFullColSpecfdNewvarvalcolListlabelColallinFDVar OvertonFD OConstraintOAbsOMultOSubOAddOLessEqOLessODiffOSame OHasValue fd_domain fd_objectivelookupsimple_fdSpecifysimple_fdProcessdfsbfspfsnbdbbbsbfsitrald SearchSpecPrintSol BranchBoundLimitDiscrepancyLimitNodeCount LimitDepth LimitSolCountTryOnce CombinePar CombineSeq Labelling LabelBoolLabelColLabelIntConstraintRefsValRefVarRefVarExprOptimDirectionMinimizeMaximizeVarStatDDummyDMedianDRandom DWDregreeDDegree DUpperRegret DLowerRegretDDomSize DUpperBound DLowerBound mmapSearchExampleMinModel ExampleModel postMinimizerunSolvelabeller example_mainexample_min_mainexample_sat_mainexample_sat_main_voidexample_min_main_voidexample_sat_main_singleexample_min_main_singleexample_sat_main_single_exprexample_min_main_single_exprexample_sat_main_coll_exprexample_min_main_coll_exprToString prettyPrecprio prettyString$fPrettyCPPFile$fPrettyCPPClass$fPrettyCPPNamespace$fPrettyCPPElement$fPrettyCPPMacroStm$fPrettyCPPBlockItem $fPretty(,)$fPrettyCPPDef$fPrettyCPPDecl$fPrettyCPPType $fPretty(,)0 $fPretty(,,,)$fPrettyCPPVisibility $fPretty[]$fPrettyCPPStorSpec$fPrettyCPPQual$fPrettyCPPStat$fPrettyEither $fPrettyMaybe$fPrettyCPPExpr$fPrettyCPPConst$fToStringCPPAssignOpFCompCompdeCompMMonadTflift monoidalTFMonadTtmap'FunctorDfmapDMonadTlifttreturntbindfunctortmapmtmap$fFunctorFCompbaseGHC.Basefail>>=>>fmapreturn Control.MonadguardliftMMonadFunctor MonadPlusmfilterapliftM5liftM4liftM3liftM2unlesswhen replicateM_ replicateMfoldM_foldM zipWithM_zipWithM mapAndUnzipMjoinvoidforever<=<>=>msumforM_forMfilterMmapM_mapM sequence_sequence=<<mplusmzero $fFunctort$fMonadtStepTTrunTListTLunLLSigConsTNilTContTCunCExcTXunXReaderTRunRWriterTWunWStateTSunSstateT runStateTwriterT runWriterT runReaderTreaderTexcTrunExcTrunContTcontTrunListTlistTemptyLappendL foldListT collectListTstepTrunStepT caseStepT unfoldStepT$fFMonadTStepT $fMonadTStepT$fFMonadTListT $fMonadTListT $fMonadTContT $fFMonadTExcT $fMonadTExcT$fMonadFixExcT$fMMonadTReaderT$fFMonadTReaderT$fMonadTReaderT$fMMonadTWriterT$fFMonadTWriterT$fMonadTWriterT$fMMonadTStateT$fFMonadTStateT$fMonadFixStateT$fMonadTStateT Data.MonoidmconcatmappendmemptyMonoidgetDualDualappEndoEndogetAllAllgetAnyAnygetSumSum getProductProductgetFirstFirstgetLastLastCont ExceptionReaderWriterStateLiftrunLiftIdrunIdstaterunStatewriter runWriterreader runReader exception runExceptioncontrunCont$fMonadFixLift $fMonadFixId $fFunctorLift $fFunctorId $fMonadLift $fMonadId Codensity unCodensity codensity runCodensity$fMonadFixCodensity$fMonadTCodensityListOpPlusListZeroListStepOpContOpCallCCWriterOpTraceHandleOpHandleThrowOpThrowReaderOpInEnvAskStateOpPutGetAlgModelExtModeltoAlg liftModel liftAlgModel liftExtModel modelStateTgetXputX modelReaderTaskXinEnvXlocalXmodelThrowExcTmodelHandleExcT modelThrowIO modelHandleIOthrowXhandleX modelWriterTtraceX modelContTabortXcallCCXcallccX modelStepTstepX modelListT zeroListX plusListX$fFunctorListOp$fFunctorStepOp$fFunctorContOp$fFunctorWriterOp$fFunctorHandleOp$fFunctorThrowOp$fFunctorReaderOp$fFunctorStateOpListM listModelContM contModelExcM throwModel handleModelReaderM readerModelWriterM writerModelStateM stateModelgetputtellasklocalthrowhandlecallCCmZeromPlus$fListMt $fListMListT $fContMrt $fContMmContT$fExcMzt$fExcMSomeExceptionIO $fExcMzExcT $fReaderMzt$fReaderMzReaderT $fWriterMzt$fWriterMzWriterT $fStateMzt$fStateMzStateTSSunSS modelSStateT$fStateMzSStateT$fMMonadTSStateT$fFMonadTSStateT$fMonadFixSStateT$fMonadTSStateTversionIdTrunIdT $fFMonadTIdT $fMonadTIdTleftLrightL:><:Viewtofrom:>runL runZipperzipperiovlifthcompvcomprstateIsogetvputv $fListM:> $fContMr:> $fExcMz:> $fReaderMz:> $fWriterMz:> $fStateMz:> $fMonadT:> $fFMonadT:> MonadInfoTtminfo MonadInfominfoMInfomiBasemiIncundef $fMonadInfot$fMonadInfoTIdT$fMonadInfoLift $fMonadInfoId$fMonadInfoTCodensity$fMonadInfoT:>$fMonadInfoTStepT$fMonadInfoTListT$fMonadInfoTContT$fMonadInfoTExcT$fMonadInfoTReaderT$fMonadInfoTWriterT$fMonadInfoTStateT:<:injOpenFixInout:+:InrInlfixinjectfoldFix $fFunctor:+: $f:<:f:+: $f:<:f:+:0$f:<:ffExpr3LitM4RegMemRetrieveStoreCountEnvfmaskevalMem2litvarstoreretrieveevalLitevalVareval4test handleExc $fFunctorMem $fFunctorAdd $fFunctorVar $fFunctorLit$fSimplifiableValue$fSimplifiableStatement$fPrettyStatement $fShow(->)$fEq(->) $fOrd(->) $fShow(->)0 $fEq(->)0 $fOrd(->)0$fPrettyConstraint $fPrettyValue $fPrettyType $fNumValue$fPrettyStruct$fMonoidStatement$fEqInfo $fOrdInfo$fMemoMt $fMemoMMemoT$fMonadInfoTMemoT$fReaderMsMemoReaderT$fFMonadTMemoReaderT$fMonadInfoTMemoReaderT$fMonadTMemoReaderT ProgramStringheader functionsmainpcomment FunctionDeffunNamefunArgsfunBodySearchCombinerElemmapperMemoablememox HookStatsM hookCalled HookStatsT unHookStatsTHookStatnCallsVarInfoT unVarInfoTVarInfoGenModeMgetFlagsgetModeGenModeT unGenModeTmodify runGenModeTcommentStatement rootEntry runHookStatsTcallHookmapE_ buildMemoKey lookupMemo insertMemo invokeMemo cacheCallcacheStatement_printTreeStateTypeprintEvalStateType initEvalStateinitTreeState_ initIntArraysinitBoolArrays declIntArraysdeclBoolArrays initIntVars declIntVarscorefnmainfncppfnmcpfn typedecls declRootStategenerate generatemcp generatecpprpxfixallmemoizeliftSearchCombinerElemsmfunctor evalSStateTgenfuntransformProgramgenprog monadInfogetgenrefTypesearch'fixArgs needInline inlineMap$fMonoidProgramString $fMemoablem$fMemoable(->) $fHookStatsMt$fHookStatsMHookStatsT$fMonadInfoTHookStatsT $fEvalablem $fVarInfoMt$fVarInfoMVarInfoT$fMonadInfoTVarInfoT $fGenModeMt$fGenModeMGenModeT$fMonadInfoTGenModeTliftStateStat $fBoundedStat $fNumStat$fEqStat $fShowStat $fNum(->)forLoopfailLoop untilLoopxs1xfs1xs2xfs2xs3xfs3xs4xfs4in1in2xpathifLoop orRepeatLoop stmPrefixLoopletLoop successLoopVarSelValSel treeStateL leftChild_L rightChild_LaddLtryL intArraysL boolArraysLintVarsLv1LabelvLabelvbLabel pushLeftTop pushRightTopbaseLoop assignLooponceLoopseqNLoop repeatLoopxetxst xneedSideorLoop cexprStatpostLoopldsLoopdbsLoopbbLoop printLoop debugLoopBranchNillinkRangeSet mirrorDomainprintDomdebugDom $fEqDomain $fToDomaina $fToDomain() $fToDomain(,) $fToDomain[]$fToDomainIntSet$fToDomainDomain$fQueuePriorityQueue $fQueueSeq $fQueue[]$fSolverWriterT$fTermWriterTt flattenTree$fMonadTreeStateT$fMonadTreeWriterT$fMonadTreeReaderT $fShowTree$fMonadTreeContT$fMonadTreeTree $fMonadTree $fFunctorTreeNBSTDBST ContinueSig SearchSig$fTransformerNodeBoundedST$fTransformerDepthBoundedST BBEvalStateBBP CEvalStateinitCTleftCTrightCTnextCTreturnCT completeCTEXITCONTINUEEVAL CContinueSig CSearchSigTStack nextTStackevalCT continueCTexitCT$fTransformerRestartST$fCTransformerSealedCST$fCTransformerCBranchBoundST$fCTransformerComposition$fCTransformerCSolutionBoundST$fCTransformerCFirstSolutionST$fCTransformerCIdentityCST$fCTransformerCRandomST#$fCTransformerCLimitedDiscrepancyST$fCTransformerCDepthBoundedST$fCTransformerCNodeBoundedST$fTransformerTStack interleave $fNumLinearShowFn equalExprshowFn equalColExpr equalBoolExprcompareColExprcompareBoolExpr compareExpr $fOrdBoolExpr $fOrdColExpr $fOrdExpr $fEqBoolExpr $fEqColExpr$fEqExpr$fShowBoolExpr $fShowColExpr $fShowExpr $fShowFn(->)$fShowFnBoolExpr$fShowFnColExpr $fShowFn[] $fShowFnExprrelCheckvarrefspropIntpropColpropBool colVarrefs boolVarrefsxwalkerwalker colWalker boolWalkerDisplaydisplay displayer DisplayData unEGEdgeIddummyConstraint getConsArgsshowBoolshowIntshowColshowLstprefixdelEdge displaySingle$fDisplayDisplayData$fDisplayEGModel$fDisplayEGEdge$fExprClasstcbExpr $fNumExpr$fExprRangetcbColExpr$fExprRangetcb(,)$fExprClasstcbColExpr$fExprClasstcbBoolExpr$fToBoolExprtabb$fToColExprtaba $fToExprtabt$fToBoolExprtabBoolExpr$fToBoolExprttccbbBool$fToColExprtab[]$fToColExprtabExpr$fToColExprtabColExpr$fToExprtabBoolExpr$fToExprttccbbInt$fToExprtabExpr$fToExprttccbbInteger$fIntegralExpr $fEnumExpr $fRealExpr FlatModel FlatModelCol FlatModelBool FlatModelInt ModelColExpr ModelBoolExpr ModelIntExpr ModelIntrosNewColNewIntNewBool explicateflattenvariantIntTermvariantBoolTermvariantColTerm $fToModelColt$fToModelBoolt $fToModelIntt$fModelTermTypeColExpr$fModelTermTypeExpr$fModelTermTypeBoolExpr$fOrdModelFunctions$fEqModelFunctions$fShowModelFunctions$fOrdModelIntrosDCMonadDCState baseDCState stateProperty decomposeBoolrealDecomposeBoolExdcsDatadcsModel cseMapBool cseMapInt cseMapCol cseParent cseImportscseNIds cseLockedcseLevelnewVar importBool importInt importCol unifyVars addConstraint newBoolVar newIntVar newColVardecomposeSubmodel constIntTrans constColTransconstBoolTransconstIntTransInvconstColTransInvconstBoolTransInv constTrans invConstTransdependenceTesterdependentIntExprdependentBoolExprdependentColExprnextIddecomposeBoolEx decomposeInt decomposeColrealDecomposeIntlistAllrealDecomposeColFDLabelFDStatefdsExprfdsModel fdsDecomp fdsNewEdges fdsForceBoolfdsVars fdsIntVarsfdsIntVarTypes fdsIntVarBusy fdsIntUnifies fdsBoolVars fdsColVarsfdsDb fdsFailedfdsLevel fdsDummyLevel baseFDStatewhileMjoinWith initForModel addIntVar addBoolVar addColVarFDColSpecTypeSetFDIntSpecTypeSetFDBoolSpecTypeSetSpecDb TermTypeSpecFDSColFDSIntFDSBoolTermTypeFDTColFDTIntFDTBoolSpecColSpecIntSpecBool unFDInstancefdlStatefdlLabel fdsDoneEdges fdsForcedBool fdsForceInt fdsForcedInt fdsForceColfdsBoolVarTypesfdsBoolVarBusyfdsBoolUnifiesfdsColVarTypes fdsColVarBusy fdsColUnifiesfdsMinimizeVarfdsMinimizeTerm myFromJust unifyInts unifyBools unifyColsmapValsdumpSpec linkExternsoptimizeSetSetoptimizeVarTypescheckNeedSpecType decompSpecdecompBestHelp decompBestdecompDefaultBooldecompDefaultIntdefaultBoolDecompdefaultIntDecomp getBoolSpec__ getIntSpec__ getColSpec__ edgesLeftwhileM_ liftFDTree fdsBoolSel fdsIntSel fdsColSel addBoolSpec addIntSpec addColSpecemptyFDSpecInfoBoolemptyFDSpecInfoIntemptyFDSpecInfoCol unionSpecBool unionSpecInt unionSpecColspecInfoMapBoolspecInfoMapIntspecInfoMapColfdSpecInfo_edgefdSpecInfo_spec_bfdSpecInfo_spec_ifdSpecInfo_spec_c fdGetValBool fdGetValIntfdCombineSpecifyprocEdge sureMaybe allIntSpec allBoolSpec allColSpecdefault_fdSpecifydefault_fdProcesssetAlter addSpecInt addSpecBool addSpecColfull_fdProcessfull_fdSpecify getJustEdge buildSpecDbaddBoolTypeReq addIntTypeReq addColTypeReq addTypeReqs processExprocesscombinerealGetIntTermrealGetBoolTerm getIntVal_ getBoolVal_ getColVal_ getFailed$fEnumTermFDInstanceBoolExpr$fEnumTermFDInstanceExpr$fTermFDInstanceColExpr$fTermFDInstanceBoolExpr$fTermFDInstanceExpr$fSolverFDInstance$fShowFDSpecInfoCol$fShowFDSpecInfoInt$fShowFDSpecInfoBool$fOrdFDSpecInfoCol$fEqFDSpecInfoCol$fOrdFDSpecInfoInt$fEqFDSpecInfoInt$fOrdFDSpecInfoBool$fEqFDSpecInfoBool$fShowTermTypeSpecModelExprClass DummyTermEQHelp DummySolver treeToModeladdMmm$fModelExprClassTree$fModelExprClassBoolExpr$fModelExprClassColExpr$fModelExprClassExpr$fSolverDummySolver$fTermDummySolvert$fMonadDummySolverBinaryConstraint varSupplyvarMap objectiveVarMapdelayedConstraintsdomain VarSupplyunFDVarunFD addOverton consistentFD runOverton initStatenewVarsupdateaddBinaryConstrainthasValuesamewhenwhen different.<..<=.dumpaddArithmeticConstraintaddUnaryArithmeticConstraintaddSumaddSubaddMultaddAbs getDomainPlusgetDomainMinus getDomainMult getDomainDiv $fOrdFDState $fEqFDState $fShowVarInfo$fEnumTermOvertonFDFDVar$fTermOvertonFDFDVar$fSolverOvertonFDitaketrueSpectreeAllConstraintBoolExpr$fShowLabelling processBinary processUnaryspecify$fFDSolverOvertonFD runSolveSAT runSolveMIN