úÎXZSr     splitEvery n l is equivalent to :map (take n) (takeWhile (not . null) (iterate (drop n) l)), so  splitEvery n [x1,x2,..,xm] = [[x1,x2,..,x(n-1)],[xn,x(n+1),..,x(2n-1)] ,..,[..xm]]It is a good producer in the fold/build5 sense, but not a good consumer; the author believes  this is unavoidable.  is equivalent to floor . logBase 2<, but uses heavy bit manipulation to achieve maximum speed.  is equivalent to ceiling . logBase 2<, but uses heavy bit manipulation to achieve maximum speed.  is equivalent to  bit . intLog. # is (unsurprisingly) equivalent to (2*).  1 uses bit shifting to quickly find a power of 2. !a ! b is equivalent to  ceiling (a / b)", but uses integer division only. "a " b is equivalent to  let m = a # b in if m == 0 then b else m.  !" !"$(f $ g) x y is equivalent to  f (g x) (g y). %onPair f (x, y) is equivalent to  (f x, f y). & (f .: g) x y is equivalent to  f (g x y). ' switch x y p is equivalent to if p then x else y. ($%&'($%&'( )7A handy shorthand for a frequently occurring function. *comparing f (x y) is equivalent to compare (f x) (f y). +orderPairBy cmp (x, y) is equivalent to (if cmp x y == GT then (y, x) else (x, y). ,orderPairBy cmp (x, y) is equivalent to if x <= y then (y, x) else (x, y). - minBy cmp x y returns the smaller of x and y by the specified comparator. . maxBy cmp x y returns the larger of x and y by the specified comparator. /lexCompare cmp1 cmp2; gives a comparator that lexicographically orders first by cmp1 then by cmp2. 01234 56)*+,-./023 )*+,-./023 789IasPureArray is a simple syntax to force an ambiguous array to a standard :. ; listToArray- converts a list to an arbitrary array type. A list of arbitrary elements. DA zero-indexed array containing precisely the elements of the list. <$Shorthand for the size of an array. =<A lookup function that also forces its array argument to an :. >&An unsafe lookup function on standard :/ types that does not range-check its argument. ?A memoization function. )An arbitrary function on integer values. n A function on integers from 0 to n-1 that memoizes its values. @'A memoization function that indexes to n inclusive. )An arbitrary function on integer values. n A function on integers from 0 to n that memoizes its values. ABCDeGiven a list and its length, memoizes lookups on the list. An attempt to process a list longer than / the specified size will result in a segfault. 9=@D9=@D$EFGHThe Q type class encapsulates the concept of a one-dimensional index, by intersecting  the I, J, and K type classes. LMWThe type of a range-min function. Takes as an argument a range of indices and returns ? the position and value of the smallest element in that range. NOPQRSTUVWXYZ[\]^bGiven a comparator, an index range and a list of elements in index order, returns a function that q takes two indices and returns the index and the value at the minimum value between those two indices inclusive. #A comparator function on elements.  Index range. !List of elements in index order. LGiven a subrange, returns the index and value at the minimum in that range.  A version of * on elements with their default ordering.  Index range. !List of elements in index order. LGiven a subrange, returns the index and value at the minimum in that range. [Given a comparator and an array, returns a function that takes a subrange of the array and ? returns the index and value at the minimum in that subrange. NOT necessarily faster than , T primarily because most of the algorithms used are based upon careful list folding. #A comparator function on elements. An array of elements. LGiven a subrange, returns the index and value at the minimum in that range.  A version of * on elements with their default ordering. _ SGiven an indexing function on node labels, returns a function that takes two node ? labels and returns the label of their lowest common ancestor. =An index on tree labels so they can be indexed on an array. : Need not account for every node label, hence the Maybe. "Bounds on indices of tree labels. 8The tree to provide lowest-common-ancestor service for. JGiven two node labels, returns the label of their lowest common ancestor. ‚Given an indexing function on node labels, returns a function that takes two indices and returns the label of the associated nodes' lowest common ancestor. =An index on tree labels, so they can be indexed in an array. 9 Need not account for every node label, hence the Maybe. "Bounds on indices of tree labels. 8The tree to provide lowest-common-ancestor service for. ;Given two indices, return the label of the associated nodes' lowest common ancestor. Q The behavior of this method is not specified if these indices do not correspond  to any trees. qGiven a tree of indexed nodes, returns a function that takes two nodes and returns their lowest common ancestor. Bounds on node labels. 8The tree to provide lowest-common-ancestor service for. ]A function that takes two node labels and returns the label of their lowest common ancestor.     `      !"#$%&'()*+,-./0123456789:;<*=>*=?@AB*CDEFGHIJKLMNOP*QR*ST*CUVWXYZ[\]^_`abcdefghijrangemin-1.0.4 Data.RangeMin Data.RangeMin.Internal.HandyList#Data.RangeMin.Internal.HandyNumeric"Data.RangeMin.Internal.Combinators$Data.RangeMin.Internal.HandyOrdering!Data.RangeMin.Internal.HandyArrayScalarIx ComparatorRangeMin rangeMinBy' rangeMin' rangeMinByrangeMin rangeMinByM rangeMinMlowestCommonAncestorBylowestCommonAncestorBy'lowestCommonAncestor BlockAccumBA splitEvery splitEvery' unfoldrFBscanlFBtailerFBscanl1FBmebbescanrFBscanr1FB mapAccumLFB mapAccumRFB flattenFB unckdEFIntFB unckdEFDIntFBintLogceilLog floor2Powdoublepow2divCeilmodCeilbaseGHC.RealmodononPair.:switchboth comparing orderPairBy orderPairminBymaxBy lexCompare lexComparingminimax listRangeBy listRange listRangeWith Data.List minimumBy maximumByAccA asPureArrayGHC.ArrArray listToArray arraySize pureLookuppureUnsafeLookup unsafeMemoizeunsafeMemoize'memoizerlistLookerUpperstInit listLookup'IntAccumIAGHC.NumNumGHC.EnumEnumIxoffset RangeMinValassocs'blockify blockify'rangeMin3CommonrangeMin3Internal rangeMin3ByrangeMin2CommonrangeMin2Internal rangeMin2By' rangeMin2ByblockedRangeMinrangeMin1CommonrangeMin1Internal rangeMin1By rangeMinFuncinternalRangeMinByinternalRangeMin lcaTraversal