>[      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ Safe-Inferred[ A strict \ ] A strict ^ _Convert ] to ^ `Convert ^ to ] aConvert [ to ^ [bc]de_`a [bc]de_`a[cb]ed_`a Trustworthy9$A Handler for the upstream input of  3Any lens, traversal, or prism will type-check as a   . instance Monad m => Monoid (EndoM m a) where  mempty = EndoM return 3 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 0 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 f) instance to assemble derived folds that % traverse the container only once A ' a b'3 processes elements of type __a__ and results in a  value of type __b__. Fold   step   initial   extract Apply a strict left  to a g container Like  , but monadic Convert a strict left  into a scan )Fold all values within a container using h and i  Convert a "foldMap" to a  /Get the first element of a container or return j if the container is  empty .Get the last element of a container or return j if the container is  empty OGet the last element of a container or return a default value if the container  is empty Return the last N elements Returns k if the container is empty, l otherwise #Return the length of the container Returns k if all elements are k, l otherwise Returns k if any element is k, l otherwise (all predicate) returns k( if all elements satisfy the predicate,  l otherwise (any predicate) returns k) if any element satisfies the predicate,  l otherwise !Computes the sum of all elements "Computes the product all elements Computes the maximum element Computes the minimum element (elem a) returns k* if the container has an element equal to a,  l otherwise  (notElem a) returns l* if the container has an element equal to a,  k otherwise (find predicate); returns the first element that satisfies the predicate or  j' if no element satisfies the predicate  (index n) returns the n th element of the container, or j if the 5 container has an insufficient number of elements  (elemIndex a)4 returns the index of the first element that equals a, or  j if no element matches !(findIndex predicate)- returns the index of the first element that  satisfies the predicate, or j' if no element satisfies the predicate "0Pick a random element, using reservoir sampling #7Pick several random elements, using reservoir sampling $AConverts an effectful function to a fold. Specialized version of %. %)Converts an effectful function to a fold > sink (f <> g) = sink f <> sink g -- if `(<>)` is commutative  sink mempty = mempty &Like , except with a more general m return value 'Like , except with a more general n 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)E. 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 more traditional fold to accept the  type 0%Upgrade a monadic fold to accept the  type 16Upgrade a more traditional monadic fold to accept the  type 2 Generalize a  to a   generalize (pure r) = pure r  6 generalize (f <*> x) = generalize f <*> generalize x 3Simplify a pure  to a   simplify (pure r) = pure r  0 simplify (f <*> x) = simplify f <*> simplify x 4Shift a 3 from one monad to another with a morphism such as lift or liftIO;  the effect is the same as . 5Allows to continue feeding a % even after passing it to a function that closes it.  For pure s, this is provided by the o instance. 6 _Fold1 step returns a new ) using just a step function that has the Fsame type for the accumulator and the element. The result type is the accumulator type wrapped in ^,. The initial accumulator is retrieved from the g, the result is None for empty containers. 7(premap f folder) returns a new ! where f is applied at each step  8 fold (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}  premap id = id  & premap (f . g) = premap g . premap f  premap k (pure r) = pure r  0 premap k (f <*> x) = premap k f <*> premap k x 8(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  premapM k (pure r) = pure r  3 premapM k (f <*> x) = premapM k f <*> premapM k x 9(handles t folder) transforms the input of a  using a lens,  traversal, or prism:  / handles _1 :: Fold a r -> Fold (a, b) r 5 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!"  handles id = id  ) handles (f . g) = handles f . handles g  handles t (pure r) = pure r  3 handles t (f <*> x) = handles t f <*> handles t x :(handlesM t folder) transforms the input of a  using a lens,  traversal, or prism:  4 handlesM _1 :: FoldM m a r -> FoldM (a, b) r : handlesM _Left :: FoldM m a r -> FoldM (Either a b) r F handlesM traverse :: Traversable t => FoldM m a r -> FoldM m (t a) r : obeys these laws:   handlesM id = id  , handlesM (f . g) = handlesM f . handlesM g  handlesM t (pure r) = pure r  6 handlesM t (f <*> x) = handlesM t f <*> handlesM t x Ypqrstuvwxyz{|  !"#$%&'()*+,}-./0123456789:~@g  !"#$%&'()*+,-./0123456789:;  !"#$%&'()*+,-./0123456789:Lpqrstuvxwyz{|  !"#$%&'()*+,}-./0123456789:~None;Apply a strict left  to a lazy bytestring <.Get the first byte of a byte stream or return j if the stream is  empty =-Get the last byte of a byte stream or return j if the byte stream is  empty >Returns k if the byte stream is empty, l otherwise ?.Return the length of the byte stream in bytes @(all predicate) returns k% if all bytes satisfy the predicate, l  otherwise A(any predicate) returns k& if any byte satisfies the predicate,  l otherwise BComputes the maximum byte CComputes the minimum byte D (elem w8) returns k( if the byte stream has a byte equal to w8,  l otherwise E (notElem w8) returns l( if the byte stream has a byte equal to w8,  k otherwise F(find predicate)8 returns the first byte that satisfies the predicate or  j$ if no byte satisfies the predicate G (index n) returns the nth byte of the byte stream, or j if the / stream has an insufficient number of bytes H(elemIndex w8)1 returns the index of the first byte that equals w8, or  j if no byte matches I(findIndex predicate)4 returns the index of the first byte that satisfies  the predicate, or j$ if no byte satisfies the predicate Jcount w8 returns the number of times w8 appears ;<=>?@ABCDEFGHIJ;<=>?@ABCDEFGHIJ;<=>?A@BCDEFGHIJ;<=>?@ABCDEFGHIJ Safe-InferredKApply a strict left  to lazy text L3Get the first character of a text stream or return j if the stream  is empty M2Get the last character of a text stream or return j if the text  stream is empty NReturns k if the text stream is empty, l otherwise O3Return the length of the text stream in characters P(all predicate) returns k* if all characters satisfy the predicate,  l otherwise Q(any predicate) returns k+ if any character satisfies the predicate,  l otherwise RComputes the maximum character SComputes the minimum character T(elem c) returns k- if the text stream has a character equal to c,  l otherwise U (notElem c) returns l- if the text stream has a character equal to  c, k otherwise V(find predicate): returns the first character that satisfies the predicate  or j) if no character satisfies the predicate W (index n) returns the n$th character of the text stream, or j if 8 the stream has an insufficient number of characters X (elemIndex c)6 returns the index of the first character that equals c,  or j if no character matches Y(findIndex predicate)/ returns the index of the first character that  satisfies the predicate, or j if no character satisfies the  predicate Z (count c) returns the number of times c appears KLMNOPQRSTUVWXYZKLMNOPQRSTUVWXYZKLMNOQPRSTUVWXYZKLMNOPQRSTUVWXYZ        !"#$%&'()*+,-./0123456789:;<=>  !"#$%?  !"#$%?@ABCDAEFGHIJKLMANOAPQARSARTAEUVWXVWYAZ[A\]^_`aabcdefghiijjklmnopqrstuvwxyz{V|}~A foldl-1.1.5 Control.FoldlControl.Foldl.ByteStringControl.Foldl.TextControl.Foldl.InternalControl.Monad.MorphhoistHandlerMEndoMappEndoMHandlerFoldMFoldfoldfoldMscanmconcatfoldMapheadlastlastDeflastNnulllengthandorallanysumproductmaximumminimumelemnotElemfindindex elemIndex findIndexrandomrandomNmapM_sink genericLength genericIndexlistrevListnubeqNubsetvectorpurelypurely_impurely impurely_ generalizesimplifyhoists duplicateM_Fold1premappremapMhandleshandlesMcountEither'base Data.EitherEitherMaybe' Data.MaybeMaybelazystricthushRight'Left'Nothing'Just'Control.Applicative Applicative Data.FoldableFoldable Data.MonoidmappendmemptyNothingghc-prim GHC.TypesTrueFalseGHC.NumNumGHC.RealIntegralcomonad-4.2.7.2Control.ComonadComonad RandomNState_size _reservoir _position_gen VectorStateComplete IncompletePair3Pair maxChunkSize $fMonoidEndoM$fFloatingFoldM$fFractionalFoldM $fNumFoldM $fMonoidFoldM$fProfunctorFoldM$fApplicativeFoldM$fFunctorFoldM$fFloatingFold$fFractionalFold $fNumFold $fMonoidFold$fApplicativeFold $fComonadFold$fProfunctorFold $fFunctorFoldGHC.Prim RealWorldprimitive-0.5.0.1Control.Monad.Primitive PrimMonadvector-0.10.0.1Data.Vector.Generic.BaseMutableVectorGHC.WordWord8bytestring-0.10.0.2Data.ByteString.Internal ByteString text-0.11.3.1Data.Text.InternalText