qjJ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHI Safe-InferedJOExecute IO actions on several threads and return their results in the original T order. It is guaranteed that no action from the input list is executed unless all S the items that precede it in the list have been executed or are executing at that  moment. JNumber of threads to use :Actions to execute: these will be scheduled left to right >Ordered results of executing the given IO actions in parallel JJ Safe-InferedKKK Safe-InferedLMNLMNLMN  Safe-InferedOPQOPQOPQ  Safe-InferedRRR  Safe-Infered ]Given a number of microseconds and an improving IO action, run that improving IO action only 9 for at most the given period before giving up. See also S. As   , but don'-t bother applying a timeout to the action if Nothing is given : as the number of microseconds to apply the time out for.  TUV    TUV  Safe-InferedLike W2, but does not append a trailing newline if there % is at least one line. For example:  % unlinesConcise ["A", "B"] == "A\nB"  unlinesConcise [] == ""  Whereas:   unlines ["A", "B"] == "A\nB\n"  unlines [] == "" #This is closer to the behaviour of X, which does not append  a trailing space.       Safe-InferedYZ[\YZ[YZ[\ Safe-Infered]TEvaluates the given list for the given number of microseconds. After the time limit T has been reached, a list is returned consisting of the prefix of the list that was / successfully evaluated within the time limit. This function does not= evaluate the elements of the list: it just ensures that the # list spine arrives in good order. XThe spine of the list is evaluated on the current thread, so if spine evaluation blocks R this function will also block, potentially for longer than the specificed delay. ]]] Safe-Infered^_`abcd^_`abcd^`_acbd Safe-InferedGiven a C, returns a new random number generator based on that seed and the T actual numeric seed that was used to build that generator, so it can be recreated. efef Safe-Infered!FSeed that should be used to create random numbers for generated tests "IMaximum number of tests to generate when using something like QuickCheck #eMaximum number of unsuitable tests to consider before giving up when using something like QuickCheck $FMaximum depth of generated tests when using something like SmallCheck %NThe number of microseconds to run tests for before considering them a failure  !"#$%&'g  !"#$%&' '& !"#$% !"#$%&'g Safe-Infered ()*+,-./012h ()*+,-./012 21()*+,-./0()*+,-./012h Safe-Infered 5OMain test data type: builds up a list of tests to be run. Users should use the R utility functions in e.g. the test-framework-hunit and test-framework-quickcheck ! packages to create instances of 5), and then build them up into testsuites  by using A and lists. 8For an example of how to use test-framework, please see   ]http://github.com/batterseapower/test-framework/raw/master/example/Test/Framework/Example.lhs 6'Convenience for creating tests from an i action 7 Add some options to child tests 81Assemble a number of tests into a cohesive group 9&A single test of some particular type :$The name of a type of test, such as  Properties or  Test Cases . Tests of K types of the same names will be grouped together in the test run summary. ;8Test names or descriptions. These are shown to the user <LSomething test-like in its behaviour. The type parameters are the type that P is used for progress reports, the type of the final output of the test and the H data type encapsulating the whole potential to do a test respectively. ?;Something like the result of a test: works in concert with <. L The type parameters are the type that is used for progress reports and the 4 type of the final output of the test respectively. A1Assemble a number of tests into a cohesive group B Add some options to child tests C'Convenience for creating tests from an i action D]Mark all tests in this portion of the tree as mutually exclusive, so only one runs at a time 3456789:;<=>?@ABCDj3456789:;<=>?@ABCD 3459876:;<=>?@ABCDj Safe-Infered:  !"#$%&'3456789:;<=>?@ABCD,?@<=>;:59876ABC34D  Safe-Inferedk@A test that has been executed or is in the process of execution lmnokpqrTop-level runner options  Tests to run lmnokpqrlmnokqpr Safe-Infereds=Records information about the run of a number of tests, such ? as how many tests have been run, how many are pending and how  many have passed or failed. t@Records a count of the various kinds of test that have been run u7The number of tests of all kinds recorded in the given t vDCreate some test statistics that simply records the total number of ? tests to be run, ready to be updated by the actual test runs. swxyz{t|}~uvswxyz{t|}~uvswxyz{t|}~uv Safe-Infered5Displays statistics as a string something like this:   Properties Total  Passed 9 9  Failed 1 1  Total 10 10  Safe-Infered Safe-Infered AAn overall description of the test suite run. This is currently C styled after the JUnit xml. It contains records that are not yet C used, however, it provides a sensible structure to populate as we C are able, and the serialiazation code behaves as though these are  filled. )The number of tests that triggered error % conditions (unanticipated failures) 3Count of tests that invalidated stated assertions. /Count of tests that were provided but not run. &The hostname that ran the test suite. The name of the test suite. $The total number of tests provided. -The total execution time for the test suite. 7The time stamp that identifies when this run happened. Included for completness w/ junit. #holdover from Junit spec. Could be ( used to specify the module under test. 4detailed description and results for each test run.  Serializes a  value to a .   Safe-Infered Safe-InferedE2Parse the specified command line arguments into a 2 and some remaining arguments, $ or return a reason as to why we can't. F A version of E$ that ends the process if it fails. H A version of G1 that lets you ignore the command line arguments  in favour of another list of s. I A version of G1 that lets you ignore the command line arguments ! in favour of an explicit set of 2. EFGHIEFGHIGHIEFEFGHI Safe-Infered$ !"#$%&'()*+,-./0125;ABCDEFGHI?@<=>;:59876ABC34D         ! " # $ $ % & ' ( ) * + , - . / 0123456789:;<=7>?@ABCDEFG?HIJKLMJNOPQRSTUVWXYZ[\]^_``a b c d efgh i j kflmfln o p q rstutvwxyz{|}~ftest-framework-0.4.2.3Test.Framework.Providers.APITest.Framework.SeedTest.Framework.OptionsTest.Framework.Runners.OptionsTest.Framework.Runners.Console!Test.Framework.Runners.ThreadPool(Test.Framework.Runners.Console.Utilities*Test.Framework.Runners.Console.ProgressBar%Test.Framework.Runners.Console.Colors!Test.Framework.Runners.ProcessorsTest.Framework.ImprovingTest.Framework.Utilities"Test.Framework.Runners.TestPattern'Test.Framework.Runners.TimedConsumption$Test.Framework.Runners.Console.TableTest.Framework.CoreTest.Framework.Runners.Core!Test.Framework.Runners.Statistics)Test.Framework.Runners.Console.Statistics"Test.Framework.Runners.Console.Run&Test.Framework.Runners.XML.JUnitWriterTest.Framework.Runners.XMLTest.Framework ImprovingIO:~> ImprovingFinishedbimapImproving improvingLastconsumeImprovingyieldImprovementrunImprovingIOliftIOtimeoutImprovingIOmaybeTimeoutImprovingIOKunKsecondsToMicrosecondsmicrosecondsToPicosecondslistToMaybeLast mappendByorElseonLeftonRightunlinesConcise mapAccumLMpadRightdropLastSeed RandomSeed FixedSeednewSeededStdGennewStdGenWithKnownSeed TestOptions' TestOptions topt_seedtopt_maximum_generated_tests'topt_maximum_unsuitable_generated_teststopt_maximum_test_depth topt_timeoutCompleteTestOptionsRunnerOptions' RunnerOptions ropt_threadsropt_test_optionsropt_test_patternsropt_xml_outputropt_xml_nestedropt_plain_outputropt_hide_successesCompleteRunnerOptionsMutuallyExcludedMETest BuildTestPlusTestOptions TestGroup TestTypeNameTestNameTestlikerunTest testTypeNameTestResultlike testSucceeded testGroupplusTestOptions buildTestmutuallyExclusive interpretArgsinterpretArgsOrExit defaultMaindefaultMainWithArgsdefaultMainWithOpts executeOnPoolhideCursorDuringProgress progressBar colorFail colorPasscolorPassOrFailprocessorCountbaseSystem.Timeouttimeout$fMonadImprovingIO$fFunctorImprovingIO $fFunctor:~> Data.Listunlinesunwords TestPatternparseTestPatterntestPatternMatches$fReadTestPatternconsumeListInIntervalColumnSeperatorColumnCell SeperatorCellTextCell renderTable $fReadSeed $fShowSeed$fMonoidTestOptions'$fMonoidRunnerOptions'ghc-prim GHC.TypesIO$fTestlikeirMutuallyExcludedRunTest FinishedTest RunningTest SomeImproving RunTestGrouprunTestsTestStatistics TestCounttestCountTotalinitialTestStatisticsts_total_tests ts_run_teststs_passed_teststs_failed_teststestCountTestTypestestCountForTypeadjustTestCountts_pending_teststs_no_failuresupdateTestStatisticstotalRunTestsListgatherStatistics$fMonoidTestStatistics$fMonoidTestCountshowFinalTestStatisticsshowRunTestsTopRunDescriptionerrors failedCountskippedhostname suiteName testCounttime timeStamprunIdpackagetests serializeGHC.BaseString produceReport$fFunctorArgDescr$fFunctorOptDescr