úÎrĶj˜N      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLM Safe-InferedNOExecute 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. NNumber of threads to use :Actions to execute: these will be scheduled left to right >Ordered results of executing the given IO actions in parallel NN Safe-InferedOOO Safe-InferedPQRPQRPQR  Safe-InferedSTUSTUSTU  Safe-InferedVVV  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 W. 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.  XYZ    XYZ  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]^_`]^_]^_` Safe-InferedaTEvaluates 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. aaa Safe-Inferedbcdefghbcdefghbdcegfh 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. ijij 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  !"#$%&'k  !"#$%&' '& !"#$% !"#$%&'k Safe-Infered()*+,-./0123456l()*+,-./0123456365421()*+,-./0()*+,-./0123654l Safe-Infered 9OMain 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 9), and then build them up into testsuites  by using E 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 m 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 @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. C;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. E1Assemble a number of tests into a cohesive group F Add some options to child tests G'Convenience for creating tests from an m action H]Mark all tests in this portion of the tree as mutually exclusive, so only one runs at a time 789:;<=>?@ABCDEFGHn789:;<=>?@ABCDEFGH 789=<;:>?@ABCDEFGHn Safe-Infered:  !"#$%&'789:;<=>?@ABCDEFGH,CD@AB?>9=<;:EFG78H  Safe-Inferedo@A test that has been executed or is in the process of execution pqrsotuvTop-level runner options  Tests to run pqrsotuvpqrsoutv Safe-Inferedw=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. x@Records a count of the various kinds of test that have been run y7The number of tests of all kinds recorded in the given x zDCreate some test statistics that simply records the total number of ? tests to be run, ready to be updated by the actual test runs. w{|}~x€‚yƒ„z…†‡ˆ‰w{|}~x€‚yƒ„z…†‡w{|}~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-InferedI2Parse the specified command line arguments into a 2 and some remaining arguments, $ or return a reason as to why we can't. J A version of I$ that ends the process if it fails. L A version of K1 that lets you ignore the command line arguments  in favour of another list of ™s. M A version of K1 that lets you ignore the command line arguments ! in favour of an explicit set of 2. IJKLMœIJKLMKLMIJIJKLMœ Safe-Infered( !"#$%&'()*+,-./01234569?EFGHIJKLMCD@AB?>9=<;:EFG78Hž         ! " # $ $ % & ' ( ) * + , - . / 0123456789:;<=7>?@ABCDEFG?HIJKLMNOPQNRSTUVWXYZ[\]^_`abcdde f g h ijkl m n ojpqjpr s t u vwxyxz{|}~€‚ƒ„…†‡ˆ‰‰Š†‹ŒŽŒ‘’“”•–—˜™š›œžŸ ĄĒĢĪĨͧĻĐŠŦŽj­Ū Ŋ°ąētest-framework-0.5Test.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_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