ú΀Þz±L      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJK Safe-InferredL A strict M N A strict O PConvert N to O QConvert O to N RConvert 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   extract ƒEfficient representation of a left fold that preserves the fold's step function, initial accumulator, and extraction function This allows the WO 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 X container Like , but monadic Convert 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 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 Like  , except with a more general ^ return value Like , except with a more general _ 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 ((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 @`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, ] otherwise 0.Return the length of the byte stream in bytes 1(all predicate) returns \% if all bytes satisfy the predicate, ] otherwise 2(any predicate) returns \+ if any byte satisfies the predicate, ] otherwise 3Computes the maximum byte 4Computes the minimum byte 5 (elem w8) returns \( if the byte stream has a byte equal to w8, ] otherwise 6 (notElem w8) returns ]( if the byte stream has a byte equal to w8, \ otherwise 7(find predicate)= returns the first byte that satisfies the predicate or [$ if no byte satisfies the predicate 8 (index n) returns the nth byte of the byte stream, or [8 if the stream has an insufficient number of bytes 9(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:;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 @3Return the length of the text stream in characters A(all predicate) returns \/ if all characters satisfy the predicate, ] otherwise B(any predicate) returns \0 if any character satisfies the predicate, ] otherwise CComputes the maximum character DComputes the minimum character E(elem c) returns \- if the text stream has a character equal to c, ] otherwise F (notElem c) returns ]2 if the text stream has a character equal to c, \ otherwise G(find predicate)B returns the first character that satisfies the predicate or [) if no character satisfies the predicate H (index n) returns the n$th character of the text stream, or [= if the stream has an insufficient number of characters I (elemIndex c)6 returns the index of the first character that equals c , or [ if no character matches J(findIndex predicate)P returns the index of the first character that satisfies the predicate, or [. if no character satisfies the predicate K (count c) returns the number of times c appears <=>?@ABCDEFGHIJKx<=>?@ABCDEFGHIJK<=>?@BACDEFGHIJK<=>?@ABCDEFGHIJKy      !"#$%&'()*+,-.  /  /01234156789:;<=1>?1@A1BC1BD15EFGHFGI1JK1LMNNOPQQRSTUVWXYZ[\]^_`abcde1fghijklmn foldl-1.0.9 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 $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.0.4Data.Text.InternalText