}wL      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJK Safe-InferredL A strict MN A strict OPConvert N to OQConvert O to NRConvert L to O LSTNUVPQR LSTNUVPQRLTSNVUPQR 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   extractEfficient representation of a left fold that preserves the fold's step function, initial accumulator, and extraction functionThis allows the WM instance to assemble derived folds that traverse the container only onceA '! a b' processes elements of type a$ and results in a value of type b.Fold   step   initial   extractApply a strict left  to a X containerLike  , but monadicConvert a strict left  into a scan)Fold all values within a container using Y and Z 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 containerReturns \ if all elements are \, ] otherwiseReturns \ 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 elementsComputes the maximum elementComputes 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)M returns the index of the first element that satisfies the predicate, or [& if no element satisfies the predicateLike  , except with a more general ^ return valueLike , except with a more general _ argumentFold all values into a list-Fold all values into a list, in reverse order  O(n log n)`. Fold values into a list with duplicates removed, while preserving their first occurrences!O(n^2)`. 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  Rgeneralize (pure r) = pure r generalize (f <*> x) = generalize f <*> generalize x'Simplify a pure  to a  Jsimplify (pure r) = pure r simplify (f <*> x) = simplify f <*> simplify x((premap f folder) returns a new  where f is applied at each step 6fold (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} 4premap id = id premap (f . g) = premap g . premap f Jpremap 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 9foldM (premapM f folder) list = foldM folder (map f list) 6premapM id = id premapM (f . g) = premap g . premap f NpremapM 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]]55bfold (pretraverse (traverse.traverse) sum) [[Nothing, Just 2, Just 7],[Just 13, Nothing, Just 20]]426fold (pretraverse (filtered even) sum) [1,3,5,7,21,21]42@fold (pretraverse _2 mconcat) [(1,"Hello "),(2,"World"),(3,"!")]"Hello World!" Hpretraverse id = id pretraverse (f . g) = pretraverse f . pretraverse g ^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' LpretraverseM id = id pretraverseM (f . g) = pretraverseM f . pretraverseM g bpretraverseM t (pure r) = pure r pretraverseM t (f <*> x) = pretraverseM t f <*> pretraverseM t x@`abcde  !"f#$%&'()*+ghijklmnopqrs/Xtu  !"#$%&'()*+,  !"#$%&'()*+;`abcde  !"f#$%&'()*+ghijklmnopqrsNone,Appply a strict left  to a lazy bytestring-.Get the first byte of a byte stream or return [ if the stream is empty.-Get the last byte of a byte stream or return [ if the byte stream is empty/Returns \ if the byte stream is empty, ] otherwise0-Return the length of the byte stream in bytes1(all predicate) returns \% if all bytes satisfy the predicate, ] otherwise2(any predicate) returns \* if any byte satisfies the predicate, ] otherwise3Computes the maximum byte4Computes the minimum byte5 (elem w8) returns \( if the byte stream has a byte equal to w8, ] otherwise6 (notElem w8) returns ]( if the byte stream has a byte equal to w8, \ otherwise7(find predicate)< returns the first byte that satisfies the predicate or [# if no byte satisfies the predicate8 (index n) returns the nth byte of the byte stream, or [6 if the stream has an insufficient number of bytes9(elemIndex w8)1 returns the index of the first byte that equals w8 , or [ if no byte matches:(findIndex predicate)J 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:;vw,-./0123456789:;,-./0213456789:;,-./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?Returns \ if the text stream is empty, ] otherwise@2Return the length of the text stream in charactersA(all predicate) returns \. if all characters satisfy the predicate, ] otherwiseB(any predicate) returns \/ if any character satisfies the predicate, ] otherwiseCComputes the maximum characterDComputes the minimum characterE(elem c) returns \- if the text stream has a character equal to c, ] otherwiseF (notElem c) returns ]1 if the text stream has a character equal to c, \ otherwiseG(find predicate)A returns the first character that satisfies the predicate or [( if no character satisfies the predicateH (index n) returns the n$th character of the text stream, or [; if the stream has an insufficient number of charactersI (elemIndex c)6 returns the index of the first character that equals c , or [ if no character matchesJ(findIndex predicate)O returns the index of the first character that satisfies the predicate, or [, if no character satisfies the predicateK (count c) returns the number of times c appears<=>?@ABCDEFGHIJKx<=>?@ABCDEFGHIJK<=>?@BACDEFGHIJK<=>?@ABCDEFGHIJKy      !"#$%&'()*+,-.  /  /01234156789:;<=1>?1@A1BC1BD15EFGHFGI1JK1LMNNOPQQRSTUVWXYZ[\]^_`abcde1fghijklmn foldl-1.0.8 Control.FoldlControl.Foldl.ByteStringControl.Foldl.TextControl.Foldl.InternalFoldMFoldfoldfoldMscanmconcatfoldMapheadlastlastDefnulllengthandorallanysumproductmaximumminimumelemnotElemfindindex elemIndex findIndex genericLength genericIndexlistrevListnubeqNubsetvectorpurelyimpurely generalizesimplifypremappremapM pretraverse pretraverseMcountEither'base Data.EitherEitherMaybe' Data.MaybeMaybelazystricthushRight'Left'Nothing'Just'Control.Applicative Applicative Data.FoldableFoldable Data.MonoidmappendmemptyNothingghc-prim GHC.TypesTrueFalseGHC.NumNumGHC.RealIntegralEndoMappEndoM Traversal'Pair maxChunkSize $fMonoidEndoM$fFloatingFoldM$fFractionalFoldM $fNumFoldM $fMonoidFoldM$fApplicativeFoldM$fFunctorFoldM$fFloatingFold$fFractionalFold $fNumFold $fMonoidFold$fApplicativeFold $fFunctorFoldprimitive-0.5.4.0Control.Monad.Primitive PrimMonadvector-0.10.12.2Data.Vector.Generic.BaseVectorGHC.WordWord8bytestring-0.10.4.0Data.ByteString.Internal ByteString text-1.2.0.4Data.Text.InternalText