!R2F      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                  ! " # $ % & ' ( ) * + , - . / 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 RSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDESafeFGHIJKLMNone&',-.>HSUVXk! quickcheck-state-machineN-ary traversable functors6TODO: Don't provide Elem explicitly (just instantiate c')? TODO: Introduce HTraverse into SOP? !"#$%&'()* "#$% !&'()*-(C) 2017, ATS Advanced Telematic Systems GmbH BSD-style (see the file LICENSE)4Stevan Andjelkovic <stevan.andjelkovic@strath.ac.uk> provisionalnon-portable (GHC extensions)Safe1;EX,Tquickcheck-state-machine3Gather user annotations of a true logic expression.!gatherAnnotations (Top .// "top")["top"]7gatherAnnotations ((Bot .// "bot") .|| (Top .// "top"))["top"]5gatherAnnotations (Top .// "top1" .&& Top .// "top2")["top1","top2"]3gatherAnnotations (Bot .// "bot" .&& Top .// "top")[]@gatherAnnotations (forall [1,2,3] (\i -> 0 .< i .// "positive"))"["positive","positive","positive"]BgatherAnnotations (forall [0,1,2,3] (\i -> 0 .< i .// "positive"))[]@gatherAnnotations (exists [1,2,3] (\i -> 0 .< i .// "positive")) ["positive"]8+,-.6/012345789:?=;<>@ABCIEJDFGHKLMNOPQRSTUVWXYZ[\]^_`ab8CIEJDFGHKLMN:?=;<>@ABOP.6/012345789+,-QRSTUVWXYZ[\]^_`ab U5V5W5X5Y5Z5[8\8]4^3_2`1Safe-8>HSUVX0 fghijklmno jklmhinfgo(C) 2017, Jacob Stanley BSD-style (see the file LICENSE)4Stevan Andjelkovic <stevan.andjelkovic@strath.ac.uk> provisionalnon-portable (GHC extensions)None &'17;=>?M3<-(C) 2017, ATS Advanced Telematic Systems GmbH BSD-style (see the file LICENSE)4Stevan Andjelkovic <stevan.andjelkovic@strath.ac.uk> provisionalnon-portable (GHC extensions)None1;><=quickcheck-state-machineSAn operation packs up an invocation event with its corresponding response event.quickcheck-state-machineTGiven a sequential history, group invocation and response events into operations.quickcheck-state-machinepGiven a parallel history, return all possible interleavings of invocations and corresponding response events.None"#4;SX=;% % (C) 2018, HERE Europe B.V. BSD-style (see the file LICENSE)4Stevan Andjelkovic <stevan.andjelkovic@strath.ac.uk> provisionalnon-portable (GHC extensions)None;MA (C) 2017, Jacob Stanley BSD-style (see the file LICENSE)4Stevan Andjelkovic <stevan.andjelkovic@strath.ac.uk> provisionalnon-portable (GHC extensions)None;MSXLlquickcheck-state-machineEnvironment errors.quickcheck-state-machine0A mapping of symbolic values to concrete values.quickcheck-state-machineCreate an empty environment.quickcheck-state-machine;Insert a symbolic / concrete pairing in to the environment.quickcheck-state-machineCast a N in to a concrete value.quickcheck-state-machine]Turns an environment in to a function for looking up a concrete value from a symbolic one.quickcheck-state-machineRConvert a symbolic structure to a concrete one, using the provided environment. -(C) 2017, ATS Advanced Telematic Systems GmbH BSD-style (see the file LICENSE)4Stevan Andjelkovic <stevan.andjelkovic@strath.ac.uk> provisionalnon-portable (GHC extensions)None 1456;>MSXR quickcheck-state-machine(Previously symbolically executed command?Invariant: the variables must be the variables in the response.[     *      (C) 2019, Edsko de Vries BSD-style (see the file LICENSE)4Stevan Andjelkovic <stevan.andjelkovic@strath.ac.uk> provisionalnon-portable (GHC extensions)None"#$.;HX`q5quickcheck-state-machine Given an a", either successfully classify as b or continue looking6quickcheck-state-machineEnd of the string8The predicate is given a final chance to return a value.7quickcheck-state-machine(Construct simply predicate that returns O on termination8quickcheck-state-machineMaximum value found, if any9quickcheck-state-machineHDo a linear scan over the list, returning all successful classificationsPquickcheck-state-machineStep the model using a A (i.e., a command associated with an explicit set of variables).:quickcheck-state-machine: is just the repeated form of P.-./0123456789:;3456789-./012:; None -.8=>?HUVXkf>quickcheck-state-machine"The names of all possible commands=This is used for things like tagging, coverage checking, etc.?quickcheck-state-machineName of this particular command@quickcheck-state-machineName of all possible commandsAquickcheck-state-machineConvenience wrapper for >?@A>?@A -(C) 2017, ATS Advanced Telematic Systems GmbH BSD-style (see the file LICENSE)5Mats Daniel Gustafsson <daniel@advancedtelematic.com> provisionalnon-portable (GHC extensions)None4;khLquickcheck-state-machineEvent invocation or response.Oquickcheck-state-machineBGiven a history, and output from processes generate Doc with boxesJKLMNOLMNJKO(C) 2019, Stevan Andjelkovic BSD-style (see the file LICENSE)4Stevan Andjelkovic <stevan.andjelkovic@strath.ac.uk> provisionalnon-portable (GHC extensions)None"#$>Xkz Wquickcheck-state-machine Markov chain.Xquickcheck-state-machineConstructor for W chains.Yquickcheck-state-machine,Expose inner graph structure of markov chainZquickcheck-state-machine<Infix operator for starting to creating a transition in the W chain, finish the transition with one of '(>-)' or '(/-)' depending on whether the transition has a specific or a uniform probability.[quickcheck-state-machineEFinish making a transition with a specified probability distribution.\quickcheck-state-machineDFinish making a transition with an uniform probability distribution.]quickcheck-state-machineCreate a generator from a W chain.^quickcheck-state-machineVariant of QuickCheck's Q which works on W chains._quickcheck-state-machineVariant of QuickCheck's R which works for W chains.RSTUVWXYZ[\]^_`abcdefghijkWXYZ[\]^_`abcdSTUVRefghijkZ5[5\59(C) 2017, ATS Advanced Telematic Systems GmbH, Li-yao Xia BSD-style (see the file LICENSE)4Stevan Andjelkovic <stevan.andjelkovic@strath.ac.uk> provisionalnon-portable (GHC extensions)None$4;Xlquickcheck-state-machineFMore permissive notion of shrinking where a value can shrink to itself For example mshrink 3 == [0, 2] -- standard QuickCheck shrink shrinkS 3 == [Shrunk True 0, Shrunk True 2, Shrunk False 3]This is primarily useful when shrinking composite structures: the combinators here keep track of whether something was shrunk  somewhere( in the structure. For example, we have  shrinkListS (shrinkPairS shrinkS shrinkS) [(1,3),(2,4)] == [ Shrunk True [] -- removed all elements of the list , Shrunk True [(2,4)] -- removed the first , Shrunk True [(1,3)] -- removed the second , Shrunk True [(0,3),(2,4)] -- shrinking the '1' , Shrunk True [(1,0),(2,4)] -- shrinking the '3' , Shrunk True [(1,2),(2,4)] -- .. , Shrunk True [(1,3),(0,4)] -- shrinking the '2' , Shrunk True [(1,3),(1,4)] -- .. , Shrunk True [(1,3),(2,0)] -- shrinking the '4' , Shrunk True [(1,3),(2,2)] -- .. , Shrunk True [(1,3),(2,3)] -- .. , Shrunk False [(1,3),(2,4)] -- the original unchanged list ]pquickcheck-state-machine/Lifts a plain property into a monadic property.qquickcheck-state-machineLifts S to T.rquickcheck-state-machineLifts U to properties.wquickcheck-state-machine'Shrink list without shrinking elements.xquickcheck-state-machine'Shrink list by only shrinking elements.lmnopqrstuvwxyz{|}~pqrstlmnouvwxyz|{}~-(C) 2017, ATS Advanced Telematic Systems GmbH BSD-style (see the file LICENSE)4Stevan Andjelkovic <stevan.andjelkovic@strath.ac.uk> provisionalnon-portable (GHC extensions)None "#$->@AHPX quickcheck-state-machineEnvironment required during quickcheck-state-machine(The model we're starting validation fromquickcheck-state-machineReference renumberingWhen a command Command .. [Var i, ..]is changed during validation to Command .. [Var j, ..]then any subsequent uses of Var i should be replaced by Var j. This is recorded in  . When we remove8 the first command altogether (during shrinking), then Var i won't appear in the : and shrank candidates that contain commands referring to Var i! should be considered as invalid.quickcheck-state-machine'Counter (for generating new references)quickcheck-state-machine,Generate commands from a list of generators.quickcheck-state-machine<Shrink commands in a pre-condition and scope respecting way.quickcheck-state-machineCValidate list of commands, optionally shrinking one of the commands2The input to this function is a list of commands (), for example [A, B, C, D, E, F, G, H]The result is a list of X, i.e. a list of lists. The outermost list is used for all the shrinking possibilities. For example, let's assume we haven't shrunk something yet, and therefore need to shrink one of the commands. Let's further assume that only commands B and E can be shrunk, to B1, B2 and E1, E2, E3 respectively. Then the result will look something like f[ -- outermost list recording all the shrink possibilities [A', B1', C', D', E' , F', G', H'] -- B shrunk to B1 , [A', B2', C', D', E' , F', G', H'] -- B shrunk to B2 , [A', B' , C', D', E1', F', G', H'] -- E shrunk to E1 , [A', B' , C', D', E2', F', G', H'] -- E shrunk to E2 , [A', B' , C', D', E3', F', G', H'] -- E shrunk to E3 ]where one of the commands has been shrunk and all commands have been validated and renumbered (references updated). So, in this example, the result will contain at most 5 lists; it may contain fewer, since some of these lists may not be valid.If we _did_ already shrink something, then no commands will be shrunk, and the resulting list will either be empty (if the list of commands was invalid) or contain a single4 element with the validated and renumbered commands.quickcheck-state-machine Variant of  that also prints the tags covered by each command.quickcheck-state-machinewPrint the percentage of each command used. The prefix check is an unfortunate remaining for backwards compatibility.quickcheck-state-machine-Fail if some commands have not been executed.quickcheck-state-machine5Show minimal examples for each of the generated tags.quickcheck-state-machineMinimum number of commands.quickcheck-state-machine Predicate.quickcheck-state-machine Generators.quickcheck-state-machine Predicate.quickcheck-state-machineMinimum number of commands.quickcheck-state-machineMinimum number of commands.quickcheck-state-machineSeedquickcheck-state-machine'Number of tests to run to find examplesquickcheck-state-machineTag filter (can be  const True)%%-(C) 2017, ATS Advanced Telematic Systems GmbH BSD-style (see the file LICENSE)4Stevan Andjelkovic <stevan.andjelkovic@strath.ac.uk> provisionalnon-portable (GHC extensions)None$>SX quickcheck-state-machineGenerate parallel commands.Parallel commands are generated as follows. We begin by generating sequential commands and then splitting this list in two at some index. The first half will be used as the prefix.nThe second half will be used to build suffixes. For example, starting from the following sequential commands: , B, C, D, E, F, G, H, I]6We split it in two, giving us the prefix and the rest: ,prefix: [A, B] rest: [C, D, E, F, G, H, I]%We advance the model with the prefix. Make a suffix: we take commands from rest* as long as these are parallel safe (see V). This means that the pre-conditions (using the 'advanced' model) of each of those commands will hold no matter in which order they are executed.Say this is true for  [C, D, E], but not anymore for F, maybe because F depends on one of  [C, D, E]O. Then we divide this 'chunk' in two by splitting it in the middle, obtaining [C] and [D, E].. These two halves of the chunk (stored as a E) will later be executed in parallel. Together they form one suffix.1Then the model is advanced using the whole chunk  [C, D, E]. Think of it as a barrier after executing the two halves of the chunk in parallel. Then this process of building a chunk/suffix repeats itself, starting from  Make a suffix using the 'advanced' model.4In the end we might end up with something like this: \ % % [C] %%% % [F, G] % [A, B] %%$ %%%%$ % % [D, E] % % [H, I] %Vquickcheck-state-machinesA list of commands is parallel safe if the pre-conditions for all commands hold in all permutations of the list.quickcheck-state-machine1Apply the transition of some commands to a model.quickcheck-state-machineIShrink a parallel program in a pre-condition and scope respecting way.quickcheck-state-machineIShrink a parallel program in a pre-condition and scope respecting way.quickcheck-state-machineGShrinks Commands in a way that it has strictly less number of commands.quickcheck-state-machineTry to linearise a history of a parallel program execution using a sequential model. See the *Linearizability: a correctness condition for concurrent objects* paper linked to from the README for more info.quickcheck-state-machinehTakes the output of parallel program runs and pretty prints a counterexample if any of the runs fail.quickcheck-state-machinehTakes the output of parallel program runs and pretty prints a counterexample if any of the runs fail.quickcheck-state-machineyDraw an ASCII diagram of the history of a parallel program. Useful for seeing how a race condition might have occured.quickcheck-state-machinewPrint the percentage of each command used. The prefix check is an unfortunate remaining for backwards compatibility.quickcheck-state-machine-Fail if some commands have not been executed. quickcheck-state-machine Predicate.quickcheck-state-machineNumber of threadsquickcheck-state-machine Predicate.quickcheck-state-machine The model.quickcheck-state-machine The commands.quickcheck-state-machine/How many times to execute the parallel program.quickcheck-state-machine/How many times to execute the parallel program.quickcheck-state-machine/How many times to execute the parallel program.quickcheck-state-machine/How many times to execute the parallel program.quickcheck-state-machine Output of .quickcheck-state-machine Output of .quickcheck-state-machine Output of .quickcheck-state-machine Output of .-(C) 2017, ATS Advanced Telematic Systems GmbH BSD-style (see the file LICENSE)4Stevan Andjelkovic <stevan.andjelkovic@strath.ac.uk> provisionalnon-portable (GHC extensions)None+,-.6/012345789:?=;<>@ABCIEJDFGHKLMNOPQRSTUVWXYZ[\]^_`ab>?@RSTUVWXYZ[\]^_`abcdefghijk7>?@None"#&'./17;=>?EHMSUVXkquickcheck-state-machine.Relation between real and mock references for all handle typesquickcheck-state-machineARelation between real and mock references for single handle type aWquickcheck-state-machineTurn Cmd or Resph in terms of (symbolic or concrete) references to real handles into a command in terms of mock handles.This is isomorphic to toMock :: Refss t Symbolic> Cmd (FlipRef r) (Handles t)> Cmd ToMock (Handles t)quickcheck-state-machine%(Optional) minimum number of commandsquickcheck-state-machine%(Optional) minimum number of commands##None"#&'.1;=>?EHSUVXwquickcheck-state-machine%(Optional) minimum number of commandsquickcheck-state-machine%(Optional) minimum number of commands          -(C) 2017, ATS Advanced Telematic Systems GmbH BSD-style (see the file LICENSE)4Stevan Andjelkovic <stevan.andjelkovic@strath.ac.uk> provisionalportableSafeUV/zquickcheck-state-machine(Partial) functions.quickcheck-state-machine Relations.#quickcheck-state-machineSubset.'boolean ([1, 2] `isSubsetOf` [3, 2, 1])True$quickcheck-state-machine Set equality.boolean ([1, 1, 2] ~= [2, 1])True/quickcheck-state-machineDomain restriction.(['a'] <| [ ('a', "apa"), ('b', "bepa") ] [('a',"apa")]0quickcheck-state-machineCodomain restriction.*[ ('a', "apa"), ('b', "bepa") ] |> ["apa"] [('a',"apa")]1quickcheck-state-machineDomain substraction.)['a'] <-| [ ('a', "apa"), ('b', "bepa") ][('b',"bepa")]2quickcheck-state-machineCodomain substraction.:[ ('a', "apa"), ('b', "bepa"), ('c', "cepa") ] |-> ["apa"][('b',"bepa"),('c',"cepa")]B[ ('a', "apa"), ('b', "bepa"), ('c', "cepa") ] |-> ["apa", "cepa"][('b',"bepa")]G[ ('a', "apa"), ('b', "bepa"), ('c', "cepa") ] |-> ["apa"] |-> ["cepa"][('b',"bepa")]3quickcheck-state-machineThe image of a relation.4quickcheck-state-machine Overriding.![('a', "apa")] <+ [('a', "bepa")][('a',"bepa")]![('a', "apa")] <+ [('b', "bepa")][('a',"apa"),('b',"bepa")]5quickcheck-state-machineDirect product.6quickcheck-state-machineParallel product.Aquickcheck-state-machine Application.Equickcheck-state-machine Assignment.$singleton 'a' "apa" .! 'a' .= "bepa"[('a',"bepa")]$singleton 'a' "apa" .! 'b' .= "bepa"[('a',"apa"),('b',"bepa")]+ !"#$%&'()*+,-./0123456789:;<=>?@ABCDE+ !"#$%&'()*+,-./0123456789:;<=>?@ABCDE111!6"7#5$5/4041424445464C4D9 E4X !"#$%&'()*+,-./012345678679:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcTdefghijklmnopqrstuvwxyz{|}~                                             ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 6 7 8 9 : ; ; < = > ? @ A B C D E F G H I J K L M N O P Q Q R S T U V WXYYZ[\]^_`abcdefghijklmnopqqrstuvwxyz{|}~      !"#$%&'()*+,-./01234256 789:89;89<8=>2?@ABC5quickcheck-state-machine-0.7.0-BWWTJ8RJVPk3Dmgg7XSpMHTest.StateMachine.DotDrawingTest.StateMachine$Test.StateMachine.Lockstep.AuxiliaryTest.StateMachine.LogicTest.StateMachine.Types.Rank2"Test.StateMachine.Types.ReferencesTest.StateMachine.Types.HistoryTest.StateMachine.Types.GenSym#Test.StateMachine.Types.EnvironmentTest.StateMachine.TypesTest.StateMachine.Labelling!Test.StateMachine.ConstructorNameTest.StateMachine.BoxDrawerTest.StateMachine.MarkovTest.StateMachine.UtilsTest.StateMachine.SequentialTest.StateMachine.ParallelTest.StateMachine.Lockstep.NAry!Test.StateMachine.Lockstep.SimpleTest.StateMachine.ZPaths_quickcheck_state_machine+graphviz-2999.20.0.4-LsQwAQr3WUl29d1uamYQUvData.GraphViz.CommandsWebPWBmpVrmlVmlZVmlTiffSvgZSvgPs2PsPngPlainExtPlainPdfJpegCmapxNPImapNPCmapxImapIcoGifGd2GdFigEpsXDot DotOutputCanonBmpGraphvizOutput$tree-diff-0.1-CrT37narYHnBjgdaJMv67GData.TreeDiff.ClasstoExprToExpr NTraversable nctraverseElemElemHeadElemTailnpAt ntraversencfmapnfmap ncfoldMapnfoldMapValueVFalseVTrueCounterexampleBotCFstSndEitherCImpliesCNotC PredicateCForallCExistsCBooleanC AnnotateCLogicPredicate:==:/=:<:<=:>:>=Member NotMemberLogicBotTop:&&:||:=>NotForallExistsBooleanAnnotatedual strongNegbooleanlogicevalLogicPredicategatherAnnotations.==./=.<.<=.>.>=member notMember.//.&&.||.=>forallexists $fShowValue$fShowCounterexample$fShowLogicPredicate TraversabletraverseFoldablefoldMapFunctorfmapgfmap<$>gfoldMap gtraverse$fFunctorkRec1 $fFunctorkM1 $fFunctork:.: $fFunctork:*: $fFunctork:+: $fFunctorkK1 $fFunctorkU1$fFoldablekRec1 $fFoldablekM1$fFoldablek:.:$fFoldablek:*:$fFoldablek:+: $fFoldablekK1 $fFoldablekU1$fTraversablekRec1$fTraversablekM1$fTraversablek:.:$fTraversablek:*:$fTraversablek:+:$fTraversablekK1$fTraversablekU1OpaqueunOpaque ReferenceConcreteSymbolicVar referenceconcreteopaque$fOrd1Symbolic $fEq1Symbolic$fToExprSymbolic$fShow1Symbolic$fToExprConcrete$fOrd1Concrete $fEq1Concrete$fShow1Concrete$fShowReference$fOrdReference $fEqReference$fTraversableTYPEReference$fFoldableTYPEReference$fFunctorTYPEReference$fToExprReference$fToExprOpaque $fShowOpaque$fEqVar$fOrdVar $fShowVar $fGenericVar $fReadVar $fToExprVar$fGenericReference $fEqOpaque $fOrdOpaque$fReadReference$fShowConcrete $fOrdSymbolic $fEqSymbolic$fReadSymbolic$fShowSymbolic OperationCrash HistoryEvent InvocationResponse ExceptionPidunPidHistory'History unHistorymakeOperations interleavingsoperationsPathcompleteHistory$fEqPid $fShowPid$fOrdPid$fShowOperation$fShowHistoryEvent$fEqHistoryEvent $fShowHistory $fEqHistoryRose GraphOptionsfilePathgraphvizOutput printDotGraph $fFunctorRose $fShowRoseCounterGenSym runGenSymgenSym newCounter $fShowCounter$fFunctorGenSym$fApplicativeGenSym $fMonadGenSymEnvironmentErrorEnvironmentValueNotFoundEnvironmentTypeError Environment unEnvironmentemptyEnvironmentinsertConcreteinsertConcretes reifyDynamicreifyEnvironmentreify$fShowEnvironment$fSemigroupEnvironment$fMonoidEnvironment$fEqEnvironmentError$fOrdEnvironmentError$fShowEnvironmentErrorNParallelCommandsParallelCommandsPairproj1proj2ParallelCommandsFprefixsuffixesReasonOkPreconditionFailedPostconditionFailedInvariantBrokenExceptionThrownMockSemanticsMismatchCommands unCommandsCommand StateMachine initModel transition precondition postcondition invariant generatorshrinker semanticsmockcleanup noCleanup getCommandlengthCommandsisOKfromPairtoPair fromPair' toPairUnsafe'$fSemigroupCommands$fMonoidCommands $fEqReason $fShowReason$fEqPair $fOrdPair $fShowPair $fFunctorPair$fFoldablePair$fTraversablePair$fShowParallelCommandsF$fEqParallelCommandsF $fEqCommands$fReadCommands$fShowCommands $fEqCommand $fReadCommand $fShowCommandEvent eventBeforeeventCmd eventAfter eventResp Predicate predApply predFinish predicatemaximumclassifyexecCmds execHistory$fFunctorPredicate $fShowEvent CommandNamescmdNamecmdNames commandName$fCommandNameskRec1$fCommandNamesk:*:$fCommandNamesk:+:$fCommandNameskM1$fCommandNameskM10$fCommandNameskM11$fCommandNameskK1$fCommandNameskU1Fork EventTypeOpenCloseexec$fShowEventType $fFunctorFork PropertyNameStatsDbstoreloadMarkov makeMarkovtoAdjacencyMap-<>-/-markovGenerator coverMarkovtabulateMarkovtransitionMatrixstimulusMatrixhistoryObservations markovToDot markovToPs nullStatsDb fileStatsDb persistStatscomputeReliabilityprintReliabilityquickCheckReliabilitytestChainToDotShrunk wasShrunkshrunk liftProperty whenFailManyPsuchThatEithercollectsshrinkS shrinkListS shrinkListS' shrinkListS'' shrinkPairS shrinkPairS'pickOneReturnRest2pickOneReturnRestpickOneReturnRestLmkModel $fEqShrunk $fShowShrunk$fFunctorShrunkCheckCheckPreconditionCheckEverything CheckNothing ShouldShrink MustShrink DontShrink ValidateEnvveModelveScope veCounterforAllCommandsexistsCommands deadlockErrorgenerateCommandsgenerateCommandsState getUsedVarsshrinkCommandsinitValidateEnvshrinkAndValidate runCommands runCommands'getChanContentsexecuteCommandsprettyPrintHistoryprettyCommandsprettyPrintHistory'prettyCommands' saveCommandsrunSavedCommandscheckCommandNamescoverCommandNames commandNamescommandNamesInOrdershowLabelledExamples'showLabelledExamplesforAllParallelCommandsforAllNParallelCommandsgenerateParallelCommandsgenerateNParallelCommands advanceModelshrinkParallelCommandsshrinkNParallelCommandsshrinkCommands'shrinkAndValidateParallelshrinkAndValidateNParallelrunParallelCommandsrunParallelCommands'runNParallelCommandsrunParallelCommandsNTimesrunParallelCommandsNTimes'runNParallelCommandsNTimesrunNParallelCommandsNTimes'executeParallelCommands lineariseprettyParallelCommandsWithOptsprettyParallelCommandsprettyNParallelCommandsWithOptsprettyNParallelCommands toBoxDrawingscheckCommandNamesParallelcoverCommandNamesParallelcommandNamesParallelStateMachineTestrunMockrunRealinitMock newHandlesModel modelState modelRefss:@AtunAtFlipRef unFlipRefTestRefssunRefssRefsunRefs RealMonad MockHandle RealHandlesRespCmd MockStateprop_sequential prop_parallel $fMonoidRefss$fSemigroupRefss $fToExprRefss $fShowRefss$fTraversableTYPEAt$fFoldableTYPEAt$fFunctorTYPEAt$fTraversableTYPEAt0$fFoldableTYPEAt0$fFunctorTYPEAt0 $fToExprModel$fSemigroupRefs $fMonoidRefs $fGenericRefs $fShowFlipRef$fGenericModel $fShowModel$fShowAt $fToExprRefs $fShowRefs modelRefs RealHandle fromSimple$fToExprMockHandle$fNTraversableTYPECmd$fNTraversableTYPEResp $fShowCmd $fShowResp $fShowResp0$fEqResp$fShowMockHandle$fEqMockHandle:<->:/->:->FunRelconsunion intersect isSubsetOf~=emptyidentity singletondomaincodomaincomposefcomposeinverse lookupDom lookupCod<||><-||->image<+<**><||> isTotalRel isSurjRelisTotalSurjRel isPartialFun isTotalFun isPartialInj isTotalInj isPartialSurj isTotalSurj isBijection!!?.%.!.=version getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileNamebase Data.DynamicDynamic GHC.MaybeNothingexecCmd(QuickCheck-2.13.2-JmShDDDEHjQJVh0RGoNSDcTest.QuickCheck.Property coverTabletabulatewhenFailTest.QuickCheck.Monadic PropertyM Data.Foldableany parallelSafe toMockHandles