úΛ}•›U      !"#$%&'()*+,-./ 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J KLMNOPQRSTSafe –2Group equal (though not necessarily adjacent; cf. 2) elements, according to the specified comparator.aThe groups are returned in ascending order, whilst their elements remain in their original order.See , .A specific instance of .:Whether the specified collection contains any equal items.See ..Function to apply before testing for equality.The input data.None8™!The type of function required by ,  .4The length of the chunks into which a list is split.2Splits a list into chunks of the specified length.cThe last chunk will be shorter, if the chunk-length isn't an aliquot part of the input list-length.[If the chunk-length is zero, the resulting list will be an infinite sequence of null lists.6CAVEAT: a similar function is available in the module Data.List.Split, though this one checks for (chunkLength < 0).See .0Remove the single indexed element from the list. A convenient way to compose the -function required by  &  .‡Take the first element from the (potentially infinite) list, which matches the subsequent element, according to the specified function. 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.VAs each item is selected, the remaining lists are filtered according to the specified  -function.Thus U9 could be used to select a different item from each list. €The list of all permutations, generated by selecting any one datum from each sub-list in turn, from the specified list of lists.A specific instance of  U, in which no filtering of subsequent lists is performed after each item is selected.N.B.: differs from V/, which selects items from a single input list. A strict version of W with better time-complexity.jCAVEAT: the specified list must be finite, since the entire set is constructed before streaming to a list.aCAVEAT: it sorts the output as a side-effect, & consequently it requires a type which implements X.See .YA specialisation for type Z. Converts a list of Pairs, into a narrower list.KInterleaves the specified lists, taking the first item from the first list.ZMerge two sorted lists, according to the specified order, to product a single sorted list.The merge-process is stableR, in that where items from each list are equal, they remain in the original order.!CAVEAT: duplicates are preserved.A specific instance of .1Take until the specified predicate is satisfied;  including the item which satisfied it.N.B.: takeWhile (not . test) would return one fewer item./Show a list, delimited by the specified tokens.[A specialisation of .\A specialisation of . Measures the distance' between two lists (typically Strings).The operation is  commutative5; it doesn't matter about the order of the arguments.The result ranges from 0( when they're completely dissimilar, to 1 when identical. Shttps://lingpipe-blog.com/2006/12/13/code-spelunking-jaro-winkler-string-comparison.)The polymorphic input list to be chunked. The index.The polymorphic input list.0The same list, with the indexed element removed.1Predicate, used to determine the last item taken.The polymorphic input list.+(Start-delimiter, separator, end-delimiter)The polymorphic list to show.    Safe9The ordered sequence of directories, searched for a file.?When supplied with an absolute file-path, the  search-pathd 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.A Accessor.B 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.CGReturns the polymorphic data, read from the first matching file on the  search-path-, along with the path from which it was read.ZReturns an error on failure to parse the contents of the first matching file found on the  search-path.=>?@ABC>=?BC@A SafeÜD=Constructs an infinite list of independent random-generators.E.Shuffles the specified finite list, using the  Fisher-Yates algorithm;  2https://en.wikipedia.org/wiki/Fisher-Yates_shuffle.dThe resulting list has the same length and constituents as the original; only the order has changed.<The input list is traversed, but the items aren't evaluated.FhGenerate an infinite list of items, each independently randomly selected from the specified finite list.[CAVEAT: because the selections are made non-destructively, duplicates may be returned; cf. E.G7Return a randomly selected element from those provided.HaGenerate an infinite list of data, each independently selected random instances of the specified bounded type.E.g.  (generateSelectionFromBounded d' System.Random.getStdGen) :: IO [Bool] .DEFGHDEFHG Safe‚³I`Time the specified IO-action, returning the required number of CPU-seconds and the result, as a Pair.J3Print the time required by the specified IO-action.IJIJSafe‰KfTime 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.L9Print the time required by the specified pure expression.,CAVEAT: as a side-effect, the expression is deep evaluated.K!Arbitrary polymorphic expression.;The original expression, tagged with the CPU-seconds taken.KLKLSafeŠwMBChecks that implementations of Data.Array.IArray.Ix satisfy rules.MMSafeŠ·!SafeŠ÷"Safe‹7SafeŒ;O1Check whether the specified result is successful.OOSafeuPChecks that composing e & f is equivalent to the identity.PPSafeޝQChecks that composing g & h is equivalent to the identity.QQSafe•}RChecks that composing i & j is equivalent to the identity.SChecks whether i! can skip prepended white space; R is a prerequisite.TChecks whether iO both copes with garbage following the valid input-data, & leaves it unchanged.TkWhether a character of garbage might reasonably be confused with valid data, & therefore should be dropped.The datum to be written & read.%The text to follow the written datum.RSTRSTk#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKABCEFG L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f gfghijkkklmnopqr.qrsnotunvwxyz{q|}q~qq€nv‚qƒ„q…†q…‡q…ˆq…‰qŠ‹qŒŽ'toolshed-0.18.0.0-KCrCyJrswlYsD3HnozepZToolShed.Data.FoldableToolShed.Data.ListToolShed.Data.List.RunlengthToolShed.Data.List.SplitsToolShed.Data.PairToolShed.Data.QuadrupleToolShed.Data.StringToolShed.Data.TripleToolShed.OptionsToolShed.SelfValidateToolShed.System.FileToolShed.System.RandomToolShed.System.TimeActionToolShed.System.TimePureToolShed.Test.Ix(ToolShed.Test.QuickCheck.Arbitrary.ArrayToolShed.Test.QuickCheck.Result#ToolShed.Test.ReversibleBoundedEnumToolShed.Test.ReversibleEnumToolShed.Test.ReversibleIO Data.ListgroupByGHC.Exts groupWithData.List.Extra groupSortOnanySamechunksOfnubOrd Data.Tuplecurryuncurry&ToolShed.Test.QuickCheck.Arbitrary.Map&ToolShed.Test.QuickCheck.Arbitrary.SetgatherBygather hasDuplicatesMatches ChunkLengthchunkexcise equalityByfindConvergenceByfindConvergencepermutationsBy permutationsnub' linearise interleavemergeBymerge takeUntil showListWithmeasureJaroDistanceCode getLengthgetDatumencodedecodesplitsLeftFromsplitsRightFrommirrorcurry4uncurry4getFirst getSecondgetThird getFourth mutateFirst mutateSecond mutateThird mutateForthdeTabcurry3uncurry3Options blankValue SelfValidator getErrorsisValid getFirstError extractErrors$fSelfValidatorArray$fSelfValidatorMap$fSelfValidatorSet$fSelfValidator[]$fSelfValidator(,,)$fSelfValidator(,)$fSelfValidatorMaybe LocatedData SearchPathlocate getFilePathgetDatagetFilefromFile randomGensshufflegenerateSelectionselectgenerateSelectionFromBounded getCPUSecondsprintCPUSecondsindex$fArbitraryArray isSuccessful isReversiblereadPrependedWhiteSpacereadTrailingGarbageghc-prim GHC.Classes/=base Data.OldListnubOrd nubWithInt GHC.TypesIntshowListWithCharshowListWithStringSplit splitsFromGHC.Listinitfstsnd Data.FoldablenullTrueGHC.BasefmapGHC.EnumpredsucctoEnumfromEnum Text.ReadreadGHC.Showshow