/W      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVSafeW A strict XY A strict Z[Convert Y to Z\Convert Z to Y]Convert W to Z W^_Y`a[\] W^_Y`a[\]W^_Y`a[\] Trustworthy4;IN5$A Handler for the upstream input of 3Any lens, traversal, or prism will type-check as a  xinstance Monad m => Monoid (EndoM m a) where mempty = EndoM return mappend (EndoM f) (EndoM g) = EndoM (f >=> g)&A handler for the upstream input of a 3Any lens, traversal, or prism will type-check as a 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 bM 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   extract Apply a strict left  to a c container Like   , but monadic Convert a strict left  into a scan )Fold all values within a container using d and e  Convert a "foldMap" to a /Get the first element of a container or return f if the container is empty.Get the last element of a container or return f if the container is empty[Get the last element of a container or return a default value if the container is emptyReturn the last N elementsReturns g if the container is empty, h otherwise"Return the length of the containerReturns g if all elements are g, h otherwiseReturns g if any element is g, h otherwise(all predicate) returns g, if all elements satisfy the predicate, h otherwise(any predicate) returns g- if any element satisfies the predicate, h otherwise Computes the sum of all elements!Computes the product all elementsComputes the maximum elementComputes the minimum element(elem a) returns g* if the container has an element equal to a, h otherwise (notElem a) returns h* if the container has an element equal to a, g otherwise(find predicate)? returns the first element that satisfies the predicate or f& if no element satisfies the predicate (index n) returns the n th element of the container, or f< if the container has an insufficient number of elements  (elemIndex a)4 returns the index of the first element that equals a , or f if no element matches!(findIndex predicate)M returns the index of the first element that satisfies the predicate, or f& if no element satisfies the predicate"/Pick a random element, using reservoir sampling#6Pick several random elements, using reservoir sampling$(Converts an effectful function to a fold Qsink (f <> g) = sink f <> sink g -- if `(<>)` is commutative sink mempty = mempty%Like , except with a more general i return value&Like , except with a more general j argument'Fold 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 x0Simplify a pure  to a  Jsimplify (pure r) = pure r simplify (f <*> x) = simplify f <*> simplify x1Allows to continue feeding a 5 even after passing it to a function that closes it. For pure s, this is provided by the k instance.2 _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 Z0. The initial accumulator is retrieved from the c, the result is None for empty containers.3(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 x4(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 x5(handles t folder) transforms the input of a ' using a lens, traversal, or prism: handles _1 :: Fold a r -> Fold (a, b) r handles _Left :: Fold a r -> Fold (Either a b) r handles traverse :: Traversable t => Fold a r -> Fold (t a) r,fold (handles traverse sum) [[1..5],[6..10]]55^fold (handles (traverse.traverse) sum) [[Nothing, Just 2, Just 7],[Just 13, Nothing, Just 20]]422fold (handles (filtered even) sum) [1,3,5,7,21,21]42<fold (handles _2 mconcat) [(1,"Hello "),(2,"World"),(3,"!")]"Hello World!" 8handles id = id handles (f . g) = handles f . handles g Nhandles t (pure r) = pure r handles t (f <*> x) = handles t f <*> handles t x6(handlesM t folder) transforms the input of a ' using a lens, traversal, or prism: handlesM _1 :: FoldM m a r -> FoldM (a, b) r handlesM _Left :: FoldM m a r -> FoldM (Either a b) r handlesM traverse :: Traversable t => FoldM m a r -> FoldM m (t a) r6 obeys these laws: <handlesM id = id handlesM (f . g) = handlesM f . handlesM g RhandlesM t (pure r) = pure r handlesM t (f <*> x) = handlesM t f <*> handlesM t xUlmnopqrstuvwx  !"#$%&'()*+y,-./0123456z{|}~<c  !"#$%&'()*+,-./01234567  !"#$%&'()*+,-./0123456Hlmnopqrstuvwx  !"#$%&'()*+y,-./0123456z{|}~None7Apply a strict left  to a lazy bytestring8.Get the first byte of a byte stream or return f if the stream is empty9-Get the last byte of a byte stream or return f if the byte stream is empty:Returns g if the byte stream is empty, h otherwise;-Return the length of the byte stream in bytes<(all predicate) returns g% if all bytes satisfy the predicate, h otherwise=(any predicate) returns g* if any byte satisfies the predicate, h otherwise>Computes the maximum byte?Computes the minimum byte@ (elem w8) returns g( if the byte stream has a byte equal to w8, h otherwiseA (notElem w8) returns h( if the byte stream has a byte equal to w8, g otherwiseB(find predicate)< returns the first byte that satisfies the predicate or f# if no byte satisfies the predicateC (index n) returns the nth byte of the byte stream, or f6 if the stream has an insufficient number of bytesD(elemIndex w8)1 returns the index of the first byte that equals w8 , or f if no byte matchesE(findIndex predicate)J returns the index of the first byte that satisfies the predicate, or f# if no byte satisfies the predicateFcount w8 returns the number of times w8 appears789:;<=>?@ABCDEF789:;<=>?@ABCDEF789:;=<>?@ABCDEF789:;<=>?@ABCDEFSafeGApply a strict left  to lazy textH3Get the first character of a text stream or return f if the stream is emptyI2Get the last character of a text stream or return f if the text stream is emptyJReturns g if the text stream is empty, h otherwiseK2Return the length of the text stream in charactersL(all predicate) returns g. if all characters satisfy the predicate, h otherwiseM(any predicate) returns g/ if any character satisfies the predicate, h otherwiseNComputes the maximum characterOComputes the minimum characterP(elem c) returns g- if the text stream has a character equal to c, h otherwiseQ (notElem c) returns h1 if the text stream has a character equal to c, g otherwiseR(find predicate)A returns the first character that satisfies the predicate or f( if no character satisfies the predicateS (index n) returns the n$th character of the text stream, or f; if the stream has an insufficient number of charactersT (elemIndex c)6 returns the index of the first character that equals c , or f if no character matchesU(findIndex predicate)O returns the index of the first character that satisfies the predicate, or f, if no character satisfies the predicateV (count c) returns the number of times c appearsGHIJKLMNOPQRSTUVGHIJKLMNOPQRSTUVGHIJKMLNOPQRSTUVGHIJKLMNOPQRSTUV        !"#$%&'()*+,-./012345678  !"#9  !"#9:;<=>;?@ABCDEFG;?H;IJ;?K;?L;?MNOPNOQ;RS;TUVWXYYZ[\]^_`aabbcdefghijklmnopqrsNtuvwxyz{yz|;}~foldl_3KzMGRda6ioIpnoq9zz54l Control.FoldlControl.Foldl.ByteStringControl.Foldl.TextControl.Foldl.InternalHandlerMEndoMappEndoMHandlerFoldMFoldfoldfoldMscanmconcatfoldMapheadlastlastDeflastNnulllengthandorallanysumproductmaximumminimumelemnotElemfindindex elemIndex findIndexrandomrandomNsink genericLength genericIndexlistrevListnubeqNubsetvectorpurelyimpurely generalizesimplify duplicateM_Fold1premappremapMhandleshandlesMcountEither'base Data.EitherEitherMaybe'GHC.BaseMaybelazystricthushLeft'Right'Just'Nothing' Applicative Data.FoldableFoldablemappendmemptyNothingghc-prim GHC.TypesTrueFalseGHC.NumNumGHC.RealIntegralcomon_BggM6Z4XCUeHVlPwhbJP28Control.ComonadComonad RandomNState_size _reservoir _position_gen VectorState IncompleteCompletePair3Pair maxChunkSize $fMonoidEndoM$fFloatingFoldM$fFractionalFoldM $fNumFoldM $fMonoidFoldM$fProfunctorFoldM$fApplicativeFoldM$fFunctorFoldM$fFloatingFold$fFractionalFold $fNumFold $fMonoidFold$fApplicativeFold $fComonadFold$fProfunctorFold $fFunctorFoldGHC.Prim RealWorldprimi_5Jnw7oEuYtM9dmKXelGXVbControl.Monad.Primitive PrimMonadvecto_A9qWf1eecPQGJD12EBZIxFData.Vector.Generic.BaseMutableVectorGHC.WordWord8bytes_6elQVSg5cWdFrvRnfxTUrHData.ByteString.Internal ByteStringtext_1l1AN4I48k37RaQ6fm6CEhData.Text.InternalText