]|5             !"#$%&'()*+,-./01234None55None66None77None88 Safe-InferredChecks that composing 9 & : is equivalent to the identity.  Safe-InferredChecks that composing ; & < is equivalent to the identity.  Safe-InferredChecks that composing = & > is equivalent to the identity.  Safe-Inferredg Time the specified pure expression, returning the required number of CPU-seconds and the result, as a Pair. - CAVEAT: as a side-effect, the expression is deep evaluated. ; Print the time required by the specified pure expression. - CAVEAT: as a side-effect, the expression is deep evaluated. "Arbitrary polymorphic expression. <The original expression, tagged with the CPU-seconds taken.  Safe-Inferred`Time the specified IO-action, returning the required number of CPU-seconds and the result, as a Pair. 4Print the time required by the specified IO-action.  Safe-Inferred>Constructs an infinite list of independent random-generators. % Shuffles the specified finite list. f The resulting list has the same length and constituents as the original; only the order has changed.  CAVEAT: the implementation zipsI a list of integers, with the specified polymorphic list, then sorts it, L but when identical random integers are generated, the sort-algorithm being stable@ always return the corresponding items in their original order. % The shuffle is therefore imperfect,  but on a 64-bit machine, it would need such a large list of items, for the probability of randomly generating two identical integers, to be significant,  that sort probably wouldn'&t return in a reasonable time anyway. ( Ideally, it would be amended to use an unstable sort-algorithm. \ Generate an infinite list of items, each randomly selected from the specified finite list. \ CAVEAT: because the selections are made non-destructively, duplicates may be returned; cf. . 1Return a random element from the specified list. _ Generate an infinite list of items, each randomly selected, from the specified finite list of bounded items. P Because the selections are made non-destructively, duplicates may be returned.  E.g.  (generateSelectionFromBounded ?% System.Random.getStdGen) :: IO [Bool] .      Safe-Inferred ,A file-path, and the contents read from it. :The ordered sequence of directories, searched for a file.  When supplied with an absolute file-path, the  search-path[ is ignored and an exception is thrown if either the file-path is invalid or the file doesn' t exist.  If the specified file-name is relative*, all matching instances on the specified  search-path are returned.  CAVEAT: doesn't perform file-globbing.  Accessor.  Accessor.  Traverse the  search-path=, looking for matching instances of the specified file-name,  and either throw an exception, or return a pair composed from the path to the first matching file, together with its contents. H Returns the polymorphic data, read from the first matching file on the  search-path., along with the path from which it was read. [ Returns an error on failure to parse the contents of the first matching file found on the  search-path.      Safe-InferredDThe interface to which data which can self-validate should conform. 9Returns the first error only (so only call on failure of 8), since subsequent tests may be based on invalid data. .Filters failed tests amongst those specified. <Return either null, or the reasons why the data is invalid. 7The data which implements this interface should return @ if internally consistent. ABCDEFG ABCDEFG NoneH A test-type. Defines invariant properties. HIJKHIJK  Safe-InferredBAn interface to which data which have a default-value can adhere. $The default value of the data-type. LL  Safe-InferredSimilar to the class . The  undefinedd state of the data-type, which may be literal, but could alternatively be a logical starting value.   Safe-Inferred3 Apply the same transformation to both halves of a Pair. 7 CAVEAT: the pair is required to have identical types.   Safe-InferredMIThe polymorphic pair, resulting from splitting a list of arbitrary type. N8Use the specified transformation, to generate a list of Ms, from the initial one.  Create the set of all M/s, migrating left from the specified location.  CAVEAT: O fails when P has been reduced to null.  Create the set of all M0s, migrating right from the specified location.  CAVEAT: pattern-match against  :  fails, when Q has been reduced to R. MN#The function used to transform one split into the next. Index. *The polymorphic input list from which the splits are generated. :The list of all required splits of the single input list. Index. *The polymorphic input list from which the splits- are generated, as the index is stepped left :The list of all required splits of the single input list. Index. *The polymorphic input list from which the splits/ are generated, as the index is stepped right. :The list of all required splits of the single input list. MN Safe-Inferred ;Describes the number of consecutive equal items in a list. ! Accessor. " Accessor. # Run-length encodes the specified list. $ Performs  run-length3 decoding to retrieve the original unencoded list.  !"#$ !"#$ #$!" !"#$None%5The length of the chunks into which a list is split. & Splits a list into length-size pieces, where  (size >= 0). $ The last chunk will be shorter, if n isn',t an aliquot part of the input list-length.  If  (size == 0)A, the resulting list will be an infinite sequence of null lists. 7 CAVEAT: a similar function is available in the module Data.List.Split, though this one checks for (size < 0). '1Remove the single indexed element from the list. (?A convenient way to compose the function-parameter required by S or T. )~Take the first element from the list, which compares equal according to the specified predicate, with the subsequent element. *A specific instance of ). + A version of U with better time-complexity. / CAVEAT: it sorts the output as a side-effect, &2 consequently it requires a type which implements V. WA specialisation for type X. ,Converts a list of Pairs, into a narrower list. -\ Merge two sorted lists, according to the specified order, to product a single sorted list.  The merge-process is stableS, in that where items from each list are equal, they remain in the original order. # CAVEAT: duplicates are preserved. .A specific instance of -. / The list of all permutations, generated by selecting any one datum from each sub-list in turn, from the specified list of lists.  Taken from  Chttp://www.haskell.org/pipermail/haskell-cafe/2006-June/015975.html. 02 Take until the specified predicate is satisfied;  including the item which satisfied it.  NB: takeWhile (not . test) would return one fewer item. 10Show a list, delimited by the specified tokens. YA specialisation of 1. ZA specialisation of 1. %&*The polymorphic input list to be chunked. ' The index. The polymorphic input list. 1The same list, with the indexed element removed. ()*+W,-./02Predicate, used to determine the last item taken. The polymorphic input list. 1,(Start-delimiter, separator, end-delimiter) The polymorphic list to show. YZ %&'()*+,-./01 %&'(*),.-+/01%&'()*+W,-./01YZ Safe-Inferred24 Group equal (though not necessarily adjacent; c.f. 3) elements, according to the specified comparator. c The groups are returned in ascending order, whilst their elements remain in their original order. 3A specific instance of 2. 4;Whether the specified collection contains any equal items. 234234324234[ !"#$%&'()*+, - . / 0 1 2 3 456789:;<=>?@ABCDEFGHIJJKLMNOMPQMRSMRTMRUMRVMWXYZ[\]^_`ab c d e f g h iMjkMlmMlnMjoMMpMqYrstYZuvwxtoolshed-0.14.0.0ToolShed.Test.ReversibleIOToolShed.Test.ReversibleEnum#ToolShed.Test.ReversibleBoundedEnumToolShed.System.TimePureToolShed.System.TimeActionToolShed.System.RandomToolShed.System.FileToolShed.SelfValidateToolShed.Test.SelfValidateToolShed.DefaultableToolShed.OptionsToolShed.Data.PairToolShed.Data.List.SplitsToolShed.Data.List.RunlengthToolShed.Data.ListToolShed.Data.Foldable,ToolShed.Test.QuickCheck.Arbitrary.ArrayElem(ToolShed.Test.QuickCheck.Arbitrary.Array&ToolShed.Test.QuickCheck.Arbitrary.Set&ToolShed.Test.QuickCheck.Arbitrary.MapText.Regex.Base.RegexLike RegexOptions Data.ListgroupBy isReversible getCPUSecondsprintCPUSeconds randomGensshufflegenerateSelectionselectgenerateSelectionFromBounded LocatedData SearchPathlocate getFilePathgetDatagetFilefromFile SelfValidator getErrorsisValid getFirstError extractErrors quickChecks Defaultable defaultValueOptions blankValuemirrorsplitsLeftFromsplitsRightFromCode getLengthgetDatumencodedecode ChunkLengthchunkexcise equalityByfindConvergenceByfindConvergencenub' linearisemergeBymerge permutations takeUntil showListWithgatherBygather hasDuplicates$fArbitraryArray$fArbitrarySet$fArbitraryMapbase Text.ReadreadGHC.ShowshowGHC.EnumtoEnumfromEnumpredsuccGHC.Basefmapghc-prim GHC.TypesTrue$fSelfValidatorArray$fSelfValidatorMap$fSelfValidatorSet$fSelfValidator[]$fSelfValidator(,,)$fSelfValidator(,)$fSelfValidatorMaybePrimesMkPrimes$fArbitraryPrimes$fSelfValidatorPrimes$fDefaultable(,)Split splitsFromGHC.Listinit Data.TuplefstsndnullnubBynub GHC.ClassesOrd nubWithIntIntshowListWithCharshowListWithString