úÎsókØO      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMN Safe-InferedOOExecute 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. ONumber of threads to use :Actions to execute: these will be scheduled left to right >Ordered results of executing the given IO actions in parallel OO Safe-InferedPPP Safe-InferedQRSQRSQRS  Safe-InferedTUVTUVTUV  Safe-InferedWWW  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 X. 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.  YZ[    YZ[  Safe-InferedLike \2, 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 ], which does not append  a trailing space.       Safe-Infered^_`a^_`^_`a Safe-InferedbTEvaluates 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. bbb Safe-Inferedcdefghicdefghicedfhgi 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. jkjk 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 $EMaximum size of generated tests 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  !"#$%&'(l  !"#$%&'( (' !"#$%& !"#$%&'(l Safe-Infered)*+,-./01234567m)*+,-./01234567476532)*+,-./01)*+,-./01234765m Safe-Infered :OMain 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 :), and then build them up into testsuites  by using F 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 ;'Convenience for creating tests from an n action < Add some options to child tests =1Assemble a number of tests into a cohesive group >&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 ALSomething 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. D;Something like the result of a test: works in concert with A. 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. F1Assemble a number of tests into a cohesive group G Add some options to child tests H'Convenience for creating tests from an n action I]Mark all tests in this portion of the tree as mutually exclusive, so only one runs at a time 89:;<=>?@ABCDEFGHIo89:;<=>?@ABCDEFGHI 89:>=<;?@ABCDEFGHIo Safe-Infered;  !"#$%&'(89:;<=>?@ABCDEFGHI,DEABC@?:>=<;FGH89I  Safe-Inferedp@A test that has been executed or is in the process of execution qrstpuvwTop-level runner options  Tests to run qrstpuvwqrstpvuw Safe-Inferedx=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. y@Records a count of the various kinds of test that have been run z7The number of tests of all kinds recorded in the given y {DCreate some test statistics that simply records the total number of ? tests to be run, ready to be updated by the actual test runs. x|}~€y‚ƒz„…{†‡ˆ‰Šx|}~€y‚ƒz„…{†‡ˆx|}~€y‚ƒz„…{†‡ˆ‰Š Safe-Infered‹5Displays 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-InferedJ2Parse the specified command line arguments into a 3 and some remaining arguments, $ or return a reason as to why we can't. K A version of J$ that ends the process if it fails. M A version of L1 that lets you ignore the command line arguments  in favour of another list of šs. N A version of L1 that lets you ignore the command line arguments ! in favour of an explicit set of 3. JKLMNžJKLMNLMNJKJKLMNž Safe-Infered) !"#$%&'()*+,-./01234567:@FGHIJKLMNDEABC@?:>=<;FGH89IŸ         ! " # $ $ % & ' ( ) * + , - . / 0123456789:;<=>7?@ABCDEFGH@IJKLMNOPQROSTUVWXYZ[\]^_`abcdeef g h i jklm n o pkqrkqs t u v wxyzy{|}~€‚ƒ„…†‡ˆ‰ŠŠ‹‡ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­k®¯¡°±²³test-framework-0.6Test.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_sizetopt_maximum_test_depth topt_timeoutCompleteTestOptionsRunnerOptions' RunnerOptions ropt_threadsropt_test_optionsropt_test_patternsropt_xml_outputropt_xml_nestedropt_color_moderopt_hide_successesCompleteRunnerOptions ColorMode ColorAlways ColorNever ColorAutoMutuallyExcludedMETest 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