yby      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 89:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwx Safe-Inferredyz{ |}~       yz{ |}~  Safe-Inferred! Safe-Inferred !"#$%&'  !"#$%&' !"#$%&'  !"#$%&'None ()*+,-./0 ()*+,-./0 ()*+,-./0 ()*+,-./0None123456789:;<=>?@ABCDEFGHIJKL123456789:;<=>?@ABCDEFGHIJKL>?;<=:96785@1234ABCDEFGHIJKL123456789:;<=>?@ABCDEFGHIJKLNoneMNOPQRSTMNOPQRSTMNOPQRSTMNOPQRSTNone UVWXYZ[\]^ UVWXYZ[\]^ UVWXYZ[\]^ UVWXYZ[\]^NoneA_`abcdefghijklmnopqrstuvwxyz{|}~8_`abcdefghijklmnopqrstuvwxyz{|}~8z{|}~vyxwqrstumnopijklhefgbcd_`a'_`abcdefghijklmnopqrstuvyxwz{|}~ None  None A signature. 5The class of things that can be used as a signature. If  withDepth n is in your signature, 0 QuickSpec will consider terms of up to depth n  (the default is 3). If  withSize n is in your signature, / QuickSpec will consider terms of up to size n  (the default is 100). If  withTests n is in your signature,  QuickSpec will run at least n tests  (the default is 500). If withQuickCheckSize n is in your signature, 3 QuickSpec will generate test data of up to size n  (the default is 20). sig `without` xs will remove the functions  in xs from the signature sig.  Useful when you want to use   but exclude some functions.  Example: prelude (undefined :: A) `without` ["head", "tail"].  A constant. A unary function. A binary function. A ternary function. A function of arity 4. ?Mark all the functions in a signature as background functions. UQuickSpec will only print a law if it contains at least one non-background function. The functions in e.g. ' are declared as background functions.  Similar to (, but takes a generator as a parameter. gvars xs (arbitrary :: Gen a) is the same as  vars xs (undefined :: a).  Similar to (, but takes a generator as a parameter. gvars xs (arbitrary :: Gen a) is the same as  vars xs (undefined :: a). 1Declare a set of variables of a particular type.  For example, vars ["x","y","z"] (undefined :: Int)  defines three variables, x, y and z , of type . 1Declare a set of variables of a particular type.  For example, vars ["x","y","z"] (undefined :: Int)  defines three variables, x, y and z , of type . A constant. The same as . A constant. The same as . A unary function. A binary function. A ternary function. A function of four arguments. $An observation function of arity 1. $An observation function of arity 2. $An observation function of arity 3. $An observation function of arity 4. p   j   j   U      None           None !"#$%&'()*+ !"#$%&'()*+ !"#$%&'()*+ !"#$%&'()*+ None,-./01234567 ,-./01234567 /01.2,-34567,-./01234567None8A type with two elements.  Use this instead of A if testing doesn't work well because  the domain of A is too large. ? Just a type. ? You can instantiate your polymorphic functions at this type # to include them in a signature. A*A signature containing boolean functions:  (), (), , , . B.A signature containing arithmetic operations:  0, 1, (), ().  Instantiate it with e.g. arith (undefined :: ). C(A signature containing list operations:  [], (:), , , ().  Instantiate it with e.g. lists (undefined :: ?). D/A signature containing higher-order functions:  (), , and some function variables.  Useful for testing . EThe QuickSpec prelude. 2 Contains boolean, arithmetic and list functions,  and some variables.  Instantiate it as e.g. prelude (undefined :: ?). 89:;<=>?@ABCDE89:;<=>?@ABCDE?@=>;<8:9ABCDE 8:9;<=>?@ABCDENoneNoneFGHIJKLMFGHIJKLMFGHIJKLMFGHIJKLMNoneNOPQRSTUVWXYZ[\]^_`abcdefgNOPQRSTUVWXYZ[\]^_`abcdefgYZXTWVU[OPQRSN\]^_`abcdefgNOPQRSTWVUXYZ[\]^_`abcdefgNonehijhijhijhijNonevRun QuickSpec on a signature. xAGenerate random terms from a signature. Useful when QuickSpec is G generating too many terms and you want to know what they look like. klmnopqrstuvwxklmnopqrstuvwxnopqrskmltuvwx kmlnopqrstuvwxNone%8;=?ABCDEvx%vx?=;8EABCD !"#$%&'()*#+$,%-./"0123456789:;<=>?@ABCDDEFGHGIJKLLMNNOPQRSTUVWXYZ[\]^_`*abc]^_`*adefgghiijkklmnnopqqrsttuvwxyz{||}~                                 "      ,  $       %  ! " # # $ % & ' ( ) *++,--..//0123456789:k; <=>?"@ABCDE%FGHIJIKLMNOPQRSTUrVWXYZ[\]^_`abcdefghi1jklmnopqrstuvwx y z { % | } ~   3  4                quickspec-0.9.2Test.QuickSpec.Utils.Typeable"Test.QuickSpec.Reasoning.UnionFind*Test.QuickSpec.Reasoning.CongruenceClosureTest.QuickSpec.UtilsTest.QuickSpec.Utils.TypedTest.QuickSpec.Utils.TypeMapTest.QuickSpec.Utils.TypeRelTest.QuickSpec.TermTest.QuickSpec.TestTreeTest.QuickSpec.SignatureTest.QuickSpec.Equation1Test.QuickSpec.Reasoning.NaiveEquationalReasoningTest.QuickSpec.ApproximateTest.QuickSpec.PreludeTest.QuickSpec.Generate3Test.QuickSpec.Reasoning.PartialEquationalReasoningTest.QuickSpec.TestTotalityTest.QuickSpec.MainTest.QuickSpecprelude"Test.QuickSpec.Utils.MemoValuationbaseData.Typeable.InternalTypeable Typeable1 Typeable2 Replacement:>UFSrunUFevalUFexecUFinitialnewSym=:=repisRepCCfunUseargUselookup$$=?=runCCevalCCexecCCfrozenTypeRep unTypeReptypeOftypeOf1castgcast mkTyConApp typeRepTyCon splitTyConAppmkFunTyrepeatM partitionByisSorted isSortedByusortmergeorElse unbufferedspoonyTaggedtageraseWitness WitnessedwitnessSeveralListOunOSome witnessTypetaggedsomeseveralsome2mapSomemapSome2mapSomeMsomeType someWitness splitArrow rightArrow typeRepTyConsTypeMapempty singletonfromListtoList mapValues mapValues2TypeRelgatherdisperseclassify Valuation unValuationConstant unConstantVariable unVariableStrategyPGentotalGen partialGenAtomsymvalueExprtermarityevalTermAppConstVarSymbolindexname symbolAritysilentundef symbolTypesymbolshowOpisOp isUndefinedsymbolsdepthsizeholesfunctorargsfunsvarsmapVarspgen mapVariable mapConstant promoteVal valuationvarconapp TestResultsTestTreetermsuniontestdiscretecutOffnumTests numResultsclassesrepsObserverSummarysummaryFunctionssummaryBackgroundsummaryVariablessummaryObservedsummaryUninhabited summaryNoVarssummaryUntestable summaryDepth summarySize summaryTestssummaryQuickCheckSizeUsedSig constants variablestotalpartial observersords witnesses maxDepth_maxSize_ minTests_maxQuickCheckSize_ Signature signaturemaxDepthmaxSize updateDepth updateSizeminTestsmaxQuickCheckSizeuses sigToHaskell summariseobserveemptySig constantSig variableSigtotalSig partialSig observerSigtypeSigordSig withDepthwithSize withTestswithQuickCheckSizewithout undefinedSigprimCon0primCon1primCon2primCon3primCon4blind0blind1blind2blind3blind4ord observing background primVars0 primVars1 primVars2gvarsgvars0gvars1gvars2vars0vars1vars2fun0fun1fun2fun3fun4 observer1 observer2 observer3 observer4testableconstantApplications constantArgs constantRessaturatedTypesinhabitedTypes argumentTypes variableTypes witnessArrow lhsWitnesses findWitness lookupWitness disambiguateconstantSymbolsvariableSymbols TypedEquation:==:Equation:=: showEquation eraseEquationshowTypedEquation equationsSubstEQUniverseContextreluniversecreateUniverserunEQevalEQexecEQliftCCequalunifysubstssubstflattengetputPartialunliftedGPPlugunPlugpluglifted approximate pobserver genPartialpvarsTwoOneCBAboolsarithliststerms'test'genSeeds toValuationgenerate eraseClassesPEQTotalityTotal Precondition PEquation:\/: showPEquationrunPEQevalPEQexecPEQliftEQ irrelevant precondition testTotality testEquationalwaysTargetNoTarget undefinedsSigprunedefines definitionsrunTooltargetinnerZip quickSpec sampleList sampleTermslinks modifyLinks modifySymputLinksufFlatEqn:=lookup2insert2delete2liftUF invariant modifyFunUse modifyArgUse addFunUses addArgUses modifyLookup putLookup propagate propagate1 updateUses $fShowTypeRep $fOrdTypeRep $fEqTypeRep $fShowSome $fOrdSome$fEqSome $fFunctorPGen $fShowExpr $fOrdExpr$fEqExpr $fShowTerm $fOrdTerm $fOrdSymbol $fEqSymbol $fShowSymbolResults TestTree'TreerestbranchesNonNilNiltreeunion'unsortedClassesghc-prim GHC.TypesInt $fMonoidSig $fShowSummary $fShowUsed $fShowSig $fSignature[]$fSignatureSig$fShowTypedEquation$fOrdTypedEquation$fEqTypedEquation$fShowEquation $fPartial[] $fPartialBool$fPartialInteger $fPartialInt $fPartial() GHC.Classes||&&notTrueFalseGHC.Num+*GHC.ListheadtailGHC.Base++.idmap$fCoArbitraryTwo$fArbitraryTwo memoValuation$fShowPEquation$fOrdPEquation $fEqPEquation