tN      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLM Safe-InferredN A strict O P A strict Q RConvert P to Q SConvert Q to P TConvert N to Q NUVPWXRST NUVPWXRSTNVUPXWRST Trustworthy:HM.Like , but monadic. A '# m a b' processes elements of type a- and results in a monadic value of type m b. FoldM   step   initial   extract Efficient representation of a left fold that preserves the fold's step function, initial accumulator, and extraction function This allows the YO instance to assemble derived folds that traverse the container only once A '! a b' processes elements of type a% and results in a value of type b. Fold   step   initial   extract Apply a strict left  to a Z container Like , but monadic Convert a strict left  into a scan )Fold all values within a container using [ and \  Convert a "foldMap" to a  /Get the first element of a container or return ] if the container is empty .Get the last element of a container or return ] if the container is empty ]Get the last element of a container or return a default value if the container is empty Returns ^ if the container is empty, _ otherwise #Return the length of the container Returns ^ if all elements are ^, _ otherwise Returns ^ if any element is ^, _ otherwise (all predicate) returns ^- if all elements satisfy the predicate, _ otherwise (any predicate) returns ^. if any element satisfies the predicate, _ otherwise !Computes the sum of all elements "Computes the product all elements Computes the maximum element Computes the minimum element (elem a) returns ^* if the container has an element equal to a, _ otherwise  (notElem a) returns _* if the container has an element equal to a, ^ otherwise (find predicate)@ returns the first element that satisfies the predicate or ]' if no element satisfies the predicate  (index n) returns the n th element of the container, or ]> if the container has an insufficient number of elements  (elemIndex a)4 returns the index of the first element that equals a , or ] if no element matches (findIndex predicate)N returns the index of the first element that satisfies the predicate, or ]' if no element satisfies the predicate 0Pick a random element, using reservoir sampling Like  , except with a more general ` return value Like , except with a more general a argument Fold all values into a list .Fold all values into a list, in reverse order ! O(n log n)b. Fold values into a list with duplicates removed, while preserving their first occurrences "O(n^2)b. Fold values into a list with duplicates removed, while preserving their first occurrences #Fold values into a set $Fold all values into a vector %Upgrade a fold to accept the  type &%Upgrade a monadic fold to accept the  type ' Generalize a  to a  W generalize (pure r) = pure r generalize (f <*> x) = generalize f <*> generalize x (Simplify a pure  to a  O simplify (pure r) = pure r simplify (f <*> x) = simplify f <*> simplify x ) _Fold1 step returns a new  using just a step function that has the same type for the accumulator and the element. The result type is the accumulator type wrapped in Q1. The initial accumulator is retrieved from the Z, the result is None for empty containers. *(premap f folder) returns a new ! where f is applied at each step  7fold (premap f folder) list = fold folder (map f list) !fold (premap Sum mconcat) [1..10]Sum {getSum = 55} fold mconcat (map Sum [1..10])Sum {getSum = 55}  9 premap id = id premap (f . g) = premap g . premap f O premap k (pure r) = pure r premap k (f <*> x) = premap k f <*> premap k x +(premapM f folder) returns a new / where f is applied to each input element  :foldM (premapM f folder) list = foldM folder (map f list)  ; premapM id = id premapM (f . g) = premap g . premap f S premapM k (pure r) = pure r premapM k (f <*> x) = premapM k f <*> premapM k x ,(pretraverse t folder)' traverses each incoming element using  Traversal' t and folds every target of the  Traversal' 0fold (pretraverse traverse sum) [[1..5],[6..10]]55 bfold (pretraverse (traverse.traverse) sum) [[Nothing, Just 2, Just 7],[Just 13, Nothing, Just 20]]42 6fold (pretraverse (filtered even) sum) [1,3,5,7,21,21]42 @fold (pretraverse _2 mconcat) [(1,"Hello "),(2,"World"),(3,"!")]"Hello World!"  M pretraverse id = id pretraverse (f . g) = pretraverse f . pretraverse g c pretraverse t (pure r) = pure r pretraverse t (f <*> x) = pretraverse t f <*> pretraverse t x -(pretraverseM t folder)' traverses each incoming element using  Traversal' t and folds every target of the  Traversal'  Q pretraverseM id = id pretraverseM (f . g) = pretraverseM f . pretraverseM g g pretraverseM t (pure r) = pure r pretraverseM t (f <*> x) = pretraverseM t f <*> pretraverseM t x Ebcdefghi  !"#j$%&'()*+,-klmnopqrstuvwx1Zyz  !"#$%&'()*+,-.  !"#$%&'()*+,-?bcdefghi  !"#j$%&'()*+,-klmnopqrstuvwxNone.Apply a strict left  to a lazy bytestring /.Get the first byte of a byte stream or return ] if the stream is empty 0-Get the last byte of a byte stream or return ]" if the byte stream is empty 1Returns ^ if the byte stream is empty, _ otherwise 2.Return the length of the byte stream in bytes 3(all predicate) returns ^% if all bytes satisfy the predicate, _ otherwise 4(any predicate) returns ^+ if any byte satisfies the predicate, _ otherwise 5Computes the maximum byte 6Computes the minimum byte 7 (elem w8) returns ^( if the byte stream has a byte equal to w8, _ otherwise 8 (notElem w8) returns _( if the byte stream has a byte equal to w8, ^ otherwise 9(find predicate)= returns the first byte that satisfies the predicate or ]$ if no byte satisfies the predicate : (index n) returns the nth byte of the byte stream, or ]8 if the stream has an insufficient number of bytes ;(elemIndex w8)1 returns the index of the first byte that equals w8 , or ] if no byte matches <(findIndex predicate)K returns the index of the first byte that satisfies the predicate, or ]$ if no byte satisfies the predicate =count w8 returns the number of times w8 appears ./0123456789:;<={|./0123456789:;<=./0124356789:;<=./0123456789:;<= Safe-Inferred>Apply a strict left  to lazy text ?3Get the first character of a text stream or return ] if the stream is empty @2Get the last character of a text stream or return ]" if the text stream is empty AReturns ^ if the text stream is empty, _ otherwise B3Return the length of the text stream in characters C(all predicate) returns ^/ if all characters satisfy the predicate, _ otherwise D(any predicate) returns ^0 if any character satisfies the predicate, _ otherwise EComputes the maximum character FComputes the minimum character G(elem c) returns ^- if the text stream has a character equal to c, _ otherwise H (notElem c) returns _2 if the text stream has a character equal to c, ^ otherwise I(find predicate)B returns the first character that satisfies the predicate or ]) if no character satisfies the predicate J (index n) returns the n$th character of the text stream, or ]= if the stream has an insufficient number of characters K (elemIndex c)6 returns the index of the first character that equals c , or ] if no character matches L(findIndex predicate)P returns the index of the first character that satisfies the predicate, or ]. if no character satisfies the predicate M (count c) returns the number of times c appears >?@ABCDEFGHIJKLM}>?@ABCDEFGHIJKLM>?@ABDCEFGHIJKLM>?@ABCDEFGHIJKLM~      !"#$%&'()*+,-./0  1  1234563789:;<=>?3@A3BC3DE3DF37GHIJHIK3LM3NOPPQRSSTTUVWXYZ[\]^_`abcdefghi3jklmnopqr foldl-1.0.11 Control.FoldlControl.Foldl.ByteStringControl.Foldl.TextControl.Foldl.InternalFoldMFoldfoldfoldMscanmconcatfoldMapheadlastlastDefnulllengthandorallanysumproductmaximumminimumelemnotElemfindindex elemIndex findIndexrandom genericLength genericIndexlistrevListnubeqNubsetvectorpurelyimpurely generalizesimplify_Fold1premappremapM pretraverse pretraverseMcountEither'base Data.EitherEitherMaybe' Data.MaybeMaybelazystricthushRight'Left'Nothing'Just'Control.Applicative Applicative Data.FoldableFoldable Data.MonoidmappendmemptyNothingghc-prim GHC.TypesTrueFalseGHC.NumNumGHC.RealIntegralEndoMappEndoM Traversal'Pair3Pair maxChunkSize $fMonoidEndoM$fFloatingFoldM$fFractionalFoldM $fNumFoldM $fMonoidFoldM$fApplicativeFoldM$fFunctorFoldM$fFloatingFold$fFractionalFold $fNumFold $fMonoidFold$fApplicativeFold$fProfunctorFold $fFunctorFold primitive-0.6Control.Monad.Primitive PrimMonadvector-0.10.12.3Data.Vector.Generic.BaseVectorGHC.WordWord8bytestring-0.10.4.0Data.ByteString.Internal ByteString text-1.2.1.1Data.Text.InternalText