úδ ÿî      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop q r s t u v w x y z { | } ~  € � ‚ ƒ „ … † ‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§ ¨©ª«¬­®¯°±² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À Á Â Ã Ä Å Æ Ç È É Ê Ë ÌÍÎÏ Ð ÑÒÓÔÕÖרÙÚÛÜÝÞßà á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ÷ øùúûüýþÿ          ! " # $%&'( ) * + , - . / 0 12345 6 7 8 9:;< = > ? @ A B CDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ      !"#$%&'()*+,-./0123456789:;<=>? @ A B C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!RSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ"É"Ê"Ë"Ì#Í#Î#Ï#Ð#Ñ#Ò#Ó#Ô#Õ#Ö#×#Ø#ÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ     $$$$$$$$$$%%%% !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab c d e fghi&j&k&l&m&n&o&pqrstuvwxyz{|}~'€'�'‚'ƒ'„'…'†'‡'ˆ'‰'Š'‹'Œ'�'Ž'�'�'‘(’(“(”(•(–(—(˜(™(š(›(œ(�(ž&Ÿ& )¡)¢)£)¤)¥)¦)§)¨)©)ª)«)¬)­)®)¯)°)±)²)³)´)µ)¶)·)¸)¹)º)»)¼*½*¾*¿*À*Á*Â+Ã+Ä+Å+Æ+Ç+È+É+Ê+Ë+Ì+Í+Î+Ï+Ð+Ñ+Ò+Ó+Ô+Õ+Ö+×+Ø+Ù+Ú+Û+ÜÝÞßàáâ,ã,äåæç!è!é!ê!ë!ì!í!c BSD-style foundation experimentalportableNone)0:DR JPath type classddefines the Path associated types and basic functions to implement related to the path manipulation # TODO, add missing enhancement: ~splitExtension :: PathEnt path -> (PathEnt path, PathEnt path) addExtension :: PathEnt path -> PathEnt path -> PathEnt path ( .$) :: path -> PathEnt path -> path (- .") :: path -> PathEnt path -> path K'the associated PathEntity of the given path— this type is the minimal element contained in the Path a Path is not a collection but it is possible to see this associated type equivalent to the - type familyL#the associated prefix of the given pathin the case of a ./-, it is a void (i.e. `()`) in the case of a .0!, it is the schema, host, port...M'the associated suffix of the given pathin the case of the .//, it is a void (i.e. `()`) in the case of the .0!, it is a the query, the fragmentN"join a path entity to a given pathO+split the path into the associated elementsP+build the path from the associated elementsQ*parent is only going to drop the filename.Gif you actually want to reference to the parent directory, simply uses:  parent "." = "." <> ".." parent ("foo.hs" :: FilePath).%parent ("foo/bar/baz.hs" :: FilePath)foo/barR"get the filename of the given path.If there is no filename, you will receive the  of the Kfilename ("foo.hs" :: FilePath)foo.hs'filename ("foo/bar/baz.hs" :: FilePath)baz.hsSget the path prefix information prefix ("/home/tab" :: FilePath)Absoluteprefix ("home/tab" :: FilePath)Relative#or for URI (TODO, not yet accurate) prefix " .http://github.com/vincenthz/hs-foundation?w=1"; == URISchema http Nothing Nothing "github.com" Nothing Tget the path suffix information suffix ("/home/tab" :: FilePath)()#or for URI (TODO, not yet accurate) suffix " .http://github.com/vincenthz/hs-foundation?w=1"' == URISuffix (["w", "1"], Nothing) JKLMNOPQRîïST JKLMNOPQRST JKLMNOPQRSTJKLMNOPQRîïST BSD-style foundation experimentalportableNone)0DR_ TODO this is not implemented yet UVWXYZ[\]^_`a UVWXYZ[\]^_` _`]^[\YZWXUVUVWXYZ[\]^_`a1 BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalportableNone)0DRðñòðñðñò2None)0DRóôõö÷øùúûüýþÿóôõö÷øùúûüýþÿóôõö÷øùúûüýþÿ3Safe)0DR                4(c) Vincent Hanquez 2014-2017 BSD-styleVincent Hanquez provisionalnon-portable (requires POSIX)None )0DR… !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™… !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™… !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™5None)0DRš›œ�žš›œ�žš›œ�ž6(c) Vincent Hanquez 2014-2017 BSD-styleVincent Hanquez provisionalnon-portable (requires Linux)None)0DRŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½7None  )0BDR¾¾¾8None)0DR… !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™ None)0DR·¸¹º»¼»¼º¹¸· BSD-style FoundationNone)0DR b¿ÀÁcdeÂÃfghbcdebcde b¿ÀÁcdeÂÃfgh  BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalportableNone)0DR²³´µ¶½¾¿ÀÁÂÃÄÅËÊÉÈÇÆÏæåäãâÏËÊÉÈÇÆÂÁÀ¿æåäãâ¾½¶µÃÄ´³²Å BSD-style foundation experimentalportableNone)0DRi4Enumeration of the known GHC supported architecture.x9get the operating system on which the program is running.Either return the known r or a strict Ï of the OS name.This function uses the base's Ä function.y<get the machine architecture on which the program is running1Either return the known architecture or a Strict Ï of the architecture name.This function uses the base's Å function.zget the compiler nameKget the compilerName from base package but convert it into a strict String{*returns the number of CPUs the machine hasijklmnopqrstuvwxyz{ENMLK4;:9ijklmnopqrustvwxyz{rstuvwxijklmnopqy{;:94zENMLKijklmnopqrstuvwxyz{ BSD-style FoundationstableportableSafe)0DRˆ‰Š‹Œ�ˆ‰Š‹Œ�ˆ‰Š‹Œ�ˆ‰Š‹Œ�  BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalportableNone )09;DR0Ðàáïîíìëêéèçóðòñôõ÷ö! #"0/.-,+*)(5678>=<A@?B2ïîíìëêéèç0/.-,+*)(B>=<65A@?87! #""÷öôõóòñðàáÐ9 BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalportableNone)05DRŽ0Class of product types that have a third element‘1Class of product types that have a second element”0Class of product types that have a first element—Strict tuple (a,b,c,d)™Strict tuple (a,b,c)›Strict tuple (a,b)#Ž��‘’“”•–—˜™š›œÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙŽ��‘’“”•–—˜™š›œŽ��‘’“”•–—˜™š›œÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙ BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalportableNone ),09;<=DR�RA generalized version of indexed accessor allowing access to tuples n'th element.Indexing starts at 1, as – is used to get first element.�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±�žŸ�žŸ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±: BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalportableNone)0DIR²BAn error related to the evaluation of a Partial value that failed.?it contains the name of the function and the reason for failure³Partialiality wrapper.Ú"Throw an asynchronous PartialError´CCreate a value that is partial. this can only be unwrap using the µ functionµDewrap a possible partial valueÛ*Partial function to get the head of a listÜ1Partial function to grab the value inside a Maybe ²Ý³ÞÚ´µÛÜßàá ²³Ú´µÛÜßà ²Ý³ÞÚ´µÛÜßàá;None)09DR¶IEEE754 Floating Point¶·¸¹º»âã¶·¸¹º»¶·¸¹º»âã BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalportableNone )09;DR½Round up, to the next integral.Also known as ceiling¾$Round down, to the previous integralAlso known as floor¿GTruncate to the closest integral to the fractional number closer to 0.TThis is equivalent to roundUp for negative Number and roundDown for positive NumberÀRound to the nearest integral roundNearest 3.64 > roundNearest 3.4 3Á-types that have sign and can be made absoluteÄSign of a signed number¼½¾¿ÀÁÂÃÄÅÆÇäÈÉÊËÌÍÎÏÐÑÒ(     %$'&¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇ(%$'&ÁÂà    ÄÅÆÇ ¼½¾¿À¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇäÈÉÊËÌÍÎÏÐÑÒ< BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalGoodNone )0DRTåqtry to fill the ptr with the amount of data required. Return the number of bytes, or a negative number otherwise æçèéêåëìíîïæêåëì æçèéêåëìíîï BSD-style FoundationstablegoodNone)0DRÔGet some of the system entropyÔÔÔÔ=None)0DRÕ7A monad constraint that allows to generate random bytesÕÖרÙðÕÖרÙÕÖרÙð>None)0DRÚ[A simple Monad class very similar to a State Monad with the state being a RandomGenerator.Ý,A Deterministic Random Generator (DRG) classÞ!Initialize a new random generatorß5Initialize a new random generator from a binary seed.If =S is returned, then the data is not acceptable for creating a new random generator.à)Generate N bytes of randomness from a DRGáGenerate a Word64 from a DRGä6Run a pure computation with a Random Generator in the ÚÚÛÜÝÞßàáâãäñòóô ÚÛÜÝÞßàáâãäÚÛÜÝÞßàáâãäñòóô BSD-styleFoundation maintainersNone)0DIRåAn amount of nanosecondsçAn amount of nanosecondsåæçèéêåæçèçèåæåæçèéêNone)0DR÷A precise stop watchžThe precision is higher than a normal stopwatch, but also on some system it might not be able to record longer period of time accurately (possibly wrapping)øCreate a new precise stop watch record the time at start of callù1Get the number of nano seconds since the call to ø÷õøùö÷øù÷øù÷õøùö?None)0DRúBasic Transformer classûGLift a computation from an inner monad to the current transformer monadúûúûúû@Safe)0DRVUANone )0DRTü©Monad that can ensure cleanup actions are performed even in the case of exceptions, both synchronous and asynchronous. This usually excludes continuation-based monads.ýiA generalized version of the standard bracket function which allows distinguishing different exit cases.þMonad that can catch exceptionMonad that can throw exception(Throw immediatity an exception. Only a þ1 monad will be able to catch the exception using ÿ üýþÿ÷øùüýþÿüýþÿ÷øùBNone)0DRúIdentity Transformer úûüýþÿúü úûüýþÿCNone)0DR  ¡$¢VU321úûþÿúNone)0DRReader Transformer           None)0DR None)0DLRState Transformer !"#$%&'()* ! !  !"#$%&'()*None )/05DR++ n act performs the action n times, gathering the results.+HGFVU321úûüýþÿ+VU321þÿüýúûHGF++None)09DR,/Method to support basic trigonometric functions-the famous pi value.sine/cosine0tan1sine-12cosine-13 tangent-14hyperbolic sine5hyperbolic cosine6hyperbolic tangent7hyperbolic sine-18hyperbolic cosine-19hyperbolic tangent-1,-./0123456789:;,-./0123456789,-./0123456789, -./0123456789:;D BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalportableNone)0DR%      !"#$%&'()*+ BSD-style Foundation experimentalportableNone)0DR<!Print a string to standard output=0Print a string with a newline to standard output>+Get the arguments from the terminal command<=>OP[\<=>=<[\>PO<=>ENone)0BDR,,, None)0DR?@?@?@?@ BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalportableNone)0DRB-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`aÖØbcdefghijklÖØ None)0DRAB§ABAB§ABFNone )0DORTG<A component of a conduit pipeline, which takes a stream of input, produces a stream of output&, performs actions in the underlying monad, and produces a value of result( when no more output data is available.m%A pipe producing and consuming values A basic intuition is that every Pipe produces a stream of outputO values and eventually indicates that this stream is terminated by sending a result. On the receiving end of a Pipe, these become the input and upstream parameters.nWProvide new output to be sent downstream. This constructor has three fields: the next Pipe< to be used, a finalization function, and the output value.o^Request more input from upstream. The first field takes a new input value and provides a new Pipei. The second takes an upstream result value, which indicates that upstream is producing no more results.pProcessing with this Pipe) is complete, providing the final result.q4Require running of a monadic action to get the next Pipe.rEReturn leftover input, which should be provided to future operations.H Await for a value from upstream.JSend a value downstream.KSame as JW, but additionally takes a finalizer to be run if the downstream component terminates.L\Provide leftover input to be consumed by the next component in the current monadic binding.M%Run a conduit pipeline to completion.N*Run a pure conduit pipeline to completion.ORun a conduit pipeline in a C! context for acquiring resources.sInternal: run a PipeQPSend the output of the first Conduit component to the second Conduit component.Btuvwxyz{|}~C€�DEFG‚ƒmnopqrH„IJK finalizerLMNOPsQ…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸtuC€DEFG‚ƒmnopqrHIJKLMNOPQ‡1tuvwxyz{|}~C€�DEFG‚ƒmnopqrH„IJKLMNOPsQ…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸG BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalportableNone)0DRRjCollection of things that can be made mutable, modified and then freezed into an MutableFreezed collectionRSTUVWXYZ[\]^ ¡¢ RSTUWVXYZ\^[]R STUVWXYZ[\]^ ¡¢H BSD-style*Nicolas Di Prima <nicolas@primetype.co.uk> experimentalportableNone)0DR _PFunctors representing data structures that can be traversed from left to right.Mostly like base's  Traversable! but applied to collections only.`ŸMap each element of a structure to an action, evaluate these actions from left to right, and collect the results. For a version that ignores the results see I.a‹Evaluate each actions of the given collections, from left to right, and collect the results. For a version that ignores the results, see Jb¢Map each element of the collection to an action, evaluate these actions from left to right, and collect the results. For a version that ignores the results see K.c‹Evaluate each actions of the given collections, from left to right, and collect the results. For a version that ignores the results, see Ld¦Map each element of a collection to an action, evaluate these actions from left to right, and ignore the results. For a version that doesn't ignore the results see Me‡Evaluate each action in the collection from left to right, and ignore the results. For a version that doesn't ignore the results see Nl. sequenceA_ :: (Mappable col, Applicative f) => col (f a) -> f () sequenceA_ col = sequenceA col *> pure ()®Map each element of a collection to a monadic action, evaluate these actions from left to right, and ignore the results. For a version that doesn't ignore the results see O.£�Evaluate each monadic action in the collection from left to right, and ignore the results. For a version that doesn't ignore the results see P.ff is bI with its arguments flipped. For a version that ignores the results see Q.gg is eP with its arguments flipped. For a version that doesn't ignore the results see R. _`abcde£fg¤¥ _`bacde£fg_`abcde£fg¤¥S BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalportableNone)0DR¦?Simple helper to split a list repeatly when the predicate match¦§¨©ª«¬¦§¨©ª«¬¦§¨©ª«¬T BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalportableNone )09;DRh1Collection of things that can be looked up by Keyhijk­hijkhijk­U BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalportableNone)0DRlElement type of a collectionlllV BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalportableNone)0DRmIFold1's. Like folds, but they assume to operate on a NonEmpty collection.nLeft associative strict fold.oRight associative lazy fold.p/Give the ability to fold a collection on itselfq%Left-associative fold of a structure.ËIn the case of lists, foldl, when applied to a binary operator, a starting value (typically the left-identity of the operator), and a list, reduces the list using the binary operator, from left to right: Efoldl f z [x1, x2, ..., xn] == (...((z `f` x1) `f` x2) `f`...) `f` xn¦Note that to produce the outermost application of the operator the entire input list must be traversed. This means that foldl' will diverge if given an infinite list.#Note that Foundation only provides q, a strict version of foldl, because the lazy version is seldom useful.MLeft-associative fold of a structure with strict application of the operator.r&Right-associative fold of a structure. @foldr f z [x1, x2, ..., xn] == x1 `f` (x2 `f` ... (xn `f` z)...)sSRight-associative fold of a structure, but with strict application of the operator.mnopqrs®¯°±²³´µmnoprqs mnopqrs®¯°±²³´µW BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalportableNone )09;DRt.Collection of elements that can indexed by inttuv¶·¸¹ºtvutuv¶·¸¹ºXNone)06DRwKA monomorphic functor that maps the inner values to values of the same typewx»¼½¾wxwxx»¼½¾YNone)0DRyz¿ÀÁÂÃyzyz¿ÀÁÂÃZ BSD-style Foundation experimentalportableNone )/0:ADIRT {&A set of methods for ordered colection|Check if a collection is empty},Length of a collection (number of Element c)~1Check if a collection contains a specific elementThis is the inverse of .;Check if a collection does *not* contain a specific elementThis is the inverse of ~.€'Get the maximum element of a collection�'Get the minimum element of a collection‚ADetermine is any elements of the collection satisfy the predicateƒADetermine is all elements of the collection satisfy the predicate„1Smart constructor to create a NonEmpty collectionsIf the collection is empty, then Nothing is returned Otherwise, the collection is wrapped in the NonEmpty property…same as „Z, but assume that the collection is non empty, and return an asynchronous error if it is.‡:Return True if all the elements in the collection are Trueˆ=Return True if at least one element in the collection is True{|}~€�‚ƒ„…†‡ˆÄÅÆÇÈÉ{|}€�‚ƒ~„…†‡ˆ {|}~€�‚ƒ„…†‡ˆÄÅÆÇÈÉ[ BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalportableNone)/069:;<DIR%‰&A set of methods for ordered colectionŠ*Take the first @n elements of a collection‹)Take the last @n elements of a collectionŒ*Drop the first @n elements of a collection�)Drop the last @n elements of a collectionŽ*Split the collection at the @n'th elements�7Split the collection at the @n'th elements from the end�:Split on a specific elements returning a list of colletion‘1Split a collection when the predicate return true’1Split a collection when the predicate return true“YSplit a collection when the predicate return true starting from the end of the collection”FReturn the longest prefix in the collection that satisfy the predicate•FReturn the longest prefix in the collection that satisfy the predicate–The –v function takes an element and a list and `intersperses' that element between the elements of the list. For example, &intersperse ',' "abcde" == "a,b,c,d,e"—— xs xss is equivalent to ( (– xs xss)). It inserts the list xs in between the lists in xss and concatenates the result.˜2Split a collection while the predicate return true™ZSplit a collection while the predicate return true starting from the end of the collectionš2Filter all the elements that satisfy the predicate›GPartition the elements thtat satisfy the predicate and those that don'tœReverse a collection�yDecompose a collection into its first element and the remaining collection. If the collection is empty, returns Nothing.ž…Decompose a collection into a collection without its last element, and the last element If the collection is empty, returns Nothing.Ÿ+Prepend an element to an ordered collection *Append an element to an ordered collection¡(Find an element in an ordered collection¢=Sort an ordered collection using the specified order function£)Create a collection with a single element¤/get the first element of a non-empty collection¥.get the last element of a non-empty collection¦GExtract the elements after the first element of a non-empty collection.§GExtract the elements before the last element of a non-empty collection.¨ECreate a collection where the element in parameter is repeated N time©ZTakes two collections and returns True iff the first collection is a prefix of the second.ªZTakes two collections and returns True iff the first collection is a suffix of the second.«ZTakes two collections and returns True iff the first collection is an infix of the second.¬'Try to strip a prefix from a collection­'Try to strip a suffix from a collection+‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­ÊËÌÍÎÏ%‰¢š¤�¦¥§¨”•ŠŒŽ˜‘œ¬¡©ª«–—› Ÿ£ž�’�‹�™“­‰'Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©©ªª««¬­ÊËÌÍÎÏ\ BSD-style foundation experimentalportableNone )/09;<=DIR¯¯¨ takes two collections and returns a collections of corresponding pairs. If one input collection is short, excess elements of the longer collection are discarded.°Like ¯, but works with 3 collections.±Like ¯, but works with 4 collections.²Like ¯, but works with 5 collections.³Like ¯, but works with 6 collections.´Like ¯, but works with 7 collections.µµq transforms a collection of pairs into a collection of first components and a collection of second components.¶Like µ0, but works on a collection of 3-element tuples.·Like µ0, but works on a collection of 4-element tuples.¸Like µ0, but works on a collection of 5-element tuples.¹Like µ0, but works on a collection of 6-element tuples.ºLike µ0, but works on a collection of 7-element tuples.¼¼ generalises ¯j by zipping with the function given as the first argument, instead of a tupling function. For example, ¼ (+)U is applied to two collections to produce the collection of corresponding sums.½Like ¼, but works with 3 collections.¾Like ¼, but works with 4 collections.¿Like ¼, but works with 5 collections.ÀLike ¼, but works with 6 collections.ÁLike ¼, but works with 7 collections.&®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÐÑÒÓÔÕÖרÙÚÛÜÝÞßàᮯ°µ¶±²³´·¸¹º»¼½¾¿ÀÁ® ¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÐÑÒÓÔÕÖרÙÚÛÜÝÞßàá] BSD-style foundation experimentalportableNone)0DRÂ-Collections that can be built chunk by chunk.Use the  instance of ú to chain Å operations and feed it into Æ:HrunST $ build 32 (append 'a' >> append 'b' >> append 'c') :: UArray Char"abc"Ã>Mutable collection type used for incrementally writing chunks.Ä)Unit of the smallest step possible in an Å operation.qA UTF-8 character can have a size between 1 and 4 bytes, so this should be defined as 1 byte for collections of (. ÂÃÄÅÆâÇCountOf of a chunkãäåúùøÿþýüûÂÄÃÆÅâÇÂÃÄÅÆâÇãäå BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalportableNone )09;DR�úùøÿþýüûRSTUWVXYZ\^[]_`bacdefghijklmnoprqstvuwxyz{|}€�‚ƒ~„…†‡ˆ‰¢š¤�¦¥§¨”•ŠŒŽ˜‘œ¬¡©ª«–—› Ÿ£ž�’�‹�™“­®¯°µ¶±²³´·¸¹º»¼½¾¿ÀÁÂÄÃÆÅdž®¯°±²³´µ¶·¸¹ºlwxxpqrsmno_`abcdefg{|}~€�‚ƒ‡ˆ„…†‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©©ªª««¬­RSTUVWXYZ[\]^tuvhijk»¼½¾¿ÀÁÂÃÄÅÆÇúùøÿþýüûyz"None)0DRÈ$Split conduit of string to its linesIThis is very similar to Prelude lines except it work directly on Conduit|Note that if the newline character is not ever appearing in the stream, this function will keep accumulating data until OOM"TODO: make a size-limited functionÈÉÊËÈÉÊËÈÉÊËÈÉÊË# BSD-style*Nicolas Di Prima <nicolas@primetype.co.uk>statbleportableNone)0DRÌæçÍÎÏÐÑÒÓÔÕÖרÌÌ ÌæçÍÎÏÐÑÒÓÔÕÖר BSD-styleHaskell Foundation experimentalportableNone )0:DORTÞ Foundation's Parser monad.-Its implementation is based on the parser in memory.åresult of executing the parser over the given inputæ!the parser failed with the given  ParserErrorç3the parser complete successfuly with the remaining Chunkè+the parser needs more input, pass an empty Chunk or mempty3 to tell the parser you don't have anymore inputs.écommon parser error definitionê meaning the parser was short of CountOf Element of input.ë-The parser needed more data, only when using  parseOnlyì when using elementí when using elements or stringîthe satisfy or satisfy_ function failed,ï"Run a parser on an @initial input.|If the Parser need more data than available, the @feeder function is automatically called and fed to the More continuation.ð*Run a Parser on a ByteString and return a åñparse only the given inputrThe left-over `Element input` will be ignored, if the parser call for more data it will be continuously fed with = (up to 256 iterations).ò4helper function to report error when writing parserstThis way we can provide more detailed error when building custom parsers and still avoid to use the naughty _fail_. kmyParser :: Parser input Int myParser = reportError $ Satisfy (Just "this function is not implemented...") ó,Get the next `Element input` from the parserö/take one element if satisfy the given predicate÷/take one element if satisfy the given predicateúCTake the remaining elements from the current position in the streamý!consume every chunk of the streamÿ.repeat the given parser a given amount of timeUnlike some or many`, this operation will bring more precision on how many times you wish a parser to be sequenced. ## Repeat Exactly a number of time 8repeat (Exactly 6) (takeWhile ((/=) ',') <* element ',') ## Repeat Between lower `@And@` upper times Crepeat (Between $ 1 `And` 10) (takeWhile ((/=) ',') <* element ',')@ÙÚÛÜÝÞèéêëìíîßàáâãäåæçèéêëìíîïðïðñòñòóôõö÷øùúûüýþÿóô   +X¤£¥ÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ+Þðïñåæçèéêëìíîòßàáâãäôóõþö÷øùúûüý¥£¤XÿÛÜÝÙÚ,ÙÚÛÜÝÞèéêëìíîßàáâãäåæçèéêëìíîïðïðñòñòóôõö÷øùúûüýþÿóô   $ BSD-styleFoundation maintainersNone)0DRGSimple one-time measurement of time & other metrics spent in a function6In depth timing & other metrics analysis of a function õö÷  õö÷% BSD-styleFoundation maintainersNone )0DIR øùúûüýþÿøùúûüýþÿ BSD-styleHaskell Foundation experimentalportableNone )09:;DRUExtending the Storable type class to the types that can be sequenced in a structure."&Storable type of self determined size.&like # but at a given offset.'like $ but at a given offset.A !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_:^! "#$%&'()*+"#$ !:%^&'()*+= !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_^None)0DRRNG based on ChaCha core.ŠThe algorithm is identical to the arc4random found in recent BSDs, namely a ChaCha core provide 64 bytes of random from 32 bytes of key.              BSD-style experimentalGoodNone )0DRTaGAn alias to the default choice of deterministic random number generatorÝUnless, you want to have the stability of a specific random number generator, e.g. for tests purpose, it's recommended to use this alias so that you would keep up to date with possible bugfixes, or change of algorithms.`aÕÖרÙÚÛÜÝÞßàáâãä`aÕÖרÙÝÞßàáâãÚÛÜäa``a_ BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalportableSafe)0DRTRQS None)0DRbUnsafe Shift Left OperatorcUnsafe Shift Right Operatord&Round up (if needed) to a multiple of  alignment closst to m alignment needs to be a power of two.alignRoundUp 16 8 = 16 alignRoundUp 15 8 = 16e(Round down (if needed) to a multiple of  alignment closest to m alignment needs to be a power of two /alignRoundDown 15 8 = 8 alignRoundDown 8 8 = 8bcdNumber to AlignAlignment (power of 2)eNumber to AlignAlignment (power of 2)†…„ƒ‚�€~}|{zyxwvutsrqpbcdebc†…„ƒ‚�€~}|{zyxwvutsrqpdebcde` BSD-styleNone)0BDRState of Xoroshiro128 plus  BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalportableNone)0DR ÑÒÓÔÕ×ÛÜßÞ ßÞÕÓÔÒÑÛÜ×aIBSD-style -- Maintainer : Alfredo Di Napoli <alfredo.dinapoli@gmail.com> experimentalportableNone $)0ABDORTReturns the length of this f8, by summing each inner length. Complexity: O(n) where n0 is the number of chunks, as U.length u is O(1).Returns ?* if the given element is contained in the f. Complexity: O(n) where n0 is the number of chunks, as U.length u is O(1).Fold a f„ leftwards strictly. Implemented internally using a double fold on the nested Array structure. Other folds implemented analogously.Equality between fX. This function is fiddly to write as is not enough to compare for equality the inner ß/(s), we need an element-by-element comparison..f !"#$%&'()*+,-./0123456789:;<=>?@ABCDEf-f !"#$%&'()*+,-./0123456789:;<=>?@ABCDEb BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalportableNone)0DRF5Return the element at a specific index from a Bitmap.5If the index @n is out of bounds, an error is raised.GMReturn the element at a specific index from an array without bounds checking.NReading from invalid memory can return unpredictable and invalid values. use F if unsure.H&make an array from a list of elements.Itransform an array to a list.J"Check if two vectors are identicalKCompare 2 vectorsL7Append 2 arrays together by creating a new bigger arrayTODO completely non optimized@gMhNOPQRSTUVWXYZFG[\]^HIJKL_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ ghWXYZFG]L_ij>gMhNOPQRSTUVWXYZFG[\]^HIJKL_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalportableNone)0BDR ÙÚÝßïfgh ÙÚßÝfhgïcNone)0DR i9Incremental Hashing state. Represent an hashing algorithm$the base primitive of this class is „", append mix a Word8 in the stateThe class allow to define faster mixing function that works on bigger Word size and any unboxed array of any PrimType elements….Associate type when finalizing the state with †‡?Associate type when initializing the state (e.g. a Key or seed)ˆCreate a new Hashing context‰Create a new Hashing context†.Finalize the state and returns the hash result„:Mix a Word8 (Byte) into the state and return the new stateŠ4Mix a Word16 into the state and return the new state‹4Mix a Word32 into the state and return the new stateŒ4Mix a Word64 into the state and return the new state�=Mix an arbitrary sized unboxed array and return the new state i…‡ˆ‰†„Š‹Œ� i…‡ˆ‰„†Š‹Œ�i …‡ˆ‰†„Š‹Œ�d BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalgoodNone)0BDR jFNV1a 64 bit statekFNV1a 32 bit statelFNV1 64 bit statemFNV1 32 bit stateŽFNV1(a) hash (64 bit variants)�FNV1(a) hash (32 bit variants)�6compute FNV1 (32 bit variant) of a raw piece of memory‘7compute FNV1a (32 bit variant) of a raw piece of memory’6compute FNV1 (64 bit variant) of a raw piece of memory“7compute FNV1a (64 bit variant) of a raw piece of memoryj”k•l–m—Ž˜�™š›œ�žŸ�‘’“ ¡¢£jklmŽ˜�™j”k•l–m—Ž˜�™š›œ�žŸ�‘’“ ¡¢£e BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalgoodNone)0DRn"Type with the ability to be hashed«Hashable doesn't have any specific rules, and it's made for raw speed. More specifically don't expect different type representing the same data to hash to the same value .hashMix (1 :: Integer) /= hashMix (1 :: Word8)Trueno¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»nono¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º» BSD-style*Nicolas Di Prima <nicolas@primetype.co.uk> experimentalportableNone )09:;DIRpIPv4 data typeq "0.0.0.0"r "127.0.0.1"vParse a IPv4 addressp¼qrs½¾tuvwxyz{pqrstuvpqrstuvp¼qrs½¾tuvwxyz{' BSD-style*Nicolas Di Prima <nicolas@primetype.co.uk> experimentalportableNone )09;DR IPv6 data type€equivalent to `::`�equivalent to `::1`‚ serialise to human readable IPv6/toString (fromString "0:0:0:0:0:0:0:1" :: IPv6)ƒ#create an IPv6 from the given tuple„decompose an IPv6 into a tuple…#IPv6 Parser as described in RFC4291for more details: 4https://tools.ietf.org/html/rfc4291.html#section-2.2which is exactly:``` ipv6ParserPreferred  | ipv6ParserIPv4Embedded  | ipv6ParserCompressed ```†1IPv6 parser as described in RFC4291 section 2.2.11The preferred form is x:x:x:x:x:x:x:x, where the xPs are one to four hexadecimal digits of the eight 16-bit pieces of the address.)`ABCD:EF01:2345:6789:ABCD:EF01:2345:6789``2001:DB8:0:0:8:800:200C:417A`‡'IPv6 address with embedded IPv4 address`when dealing with a mixed environment of IPv4 and IPv6 nodes is x:x:x:x:x:x:d.d.d.d, where the xZs are the hexadecimal values of the six high-order 16-bit pieces of the address, and the dls are the decimal values of the four low-order 8-bit pieces of the address (standard IPv4 representation).`0:0:0:0:0:0:13.1.68.3``0:0:0:0:0:FFFF:129.144.52.38` `::13.1.68.3``::FFFF:129.144.52.38`ˆ1IPv6 parser as described in RFC4291 section 2.2.2ÀThe use of "::" indicates one or more groups of 16 bits of zeros. The "::" can only appear once in an address. The "::" can also be used to compress leading or trailing zeros in an address.`2001:DB8::8:800:200C:417A` `FF01::101``::1``::`¿€�‚ÀÁÂÄ…†‡ˆÄÅÆÇÈ‰Š‹Œ�Ž €�‚ƒ„…†‡ˆ €�‚ƒ„…†ˆ‡¿€�‚ÀÁÂÄ…†‡ˆÄÅÆÇÈ‰Š‹Œ�Ž(None )0:DR‘’ÉÊ“”•–Ë—˜™š›‘’“”•–‘’”“•– ‘’ÉÊ“”•–Ë—˜™š›f BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalgoodNone)0BDRž5Sip State 1-3 (1 compression rounds, 3 digest rounds)Ÿ5Sip State 2-4 (2 compression rounds, 4 digest rounds)ÌSiphash Hash valueÍ SigHash KeyÎsame as hash], except also specifies the number of sipround iterations for compression (C) and digest (D).#ÏÐÑÒÓÔÕÖרÙÚ۞ܟÝÌÞÍßàáâãäåÎæçèéêë잟ÌÞÍßÏÐÑÒÓÔÕÖרÙÚ۞ܟÝÌÞÍßàáâãäåÎæçèéêëìgNone %&)0ADORT Generator monad íîïðñòóôõö÷øùúûüý  îðòóôõö÷ùú  íîïðñòóôõö÷øùúûüýhNone $)09;DR¡'How to generate an arbitrary value for a£"Call one of the generator weighted0¡¢þÿ£¤¥¦      !"#$%&'¡¢£¤¥¦/¡¢þÿ£¤¥¦      !"#$%&'iNone)0DR(optional user specified seed)Parameters for the generatoradefault: * 32bits long numbers; * array of 512 elements max; * string of 8192 bytes max.*1the number of tests to perform on every property. default: 100+ create the default configurationsee Config for details,-.()*/01234567+89:-.()*/01234567+9:,-.()*/01234567+89:jNone )09;DR;'A linked-list of arguments to this test¬.The type of check this test did for a property­8Running a generator for a specific type under a property®4A property that check for equality of its 2 members.¯BA property that check for a specific comparaison of its 2 members.This is equivalent to ® but with ©°@A conjuctive property composed of 2 properties that need to pass§¨©ª«;<=¬>?@ABCDE­®F¯3name of the function used for comparaison, e.g. (<)#function used for value comparaisonvalue left of the operatorvalue right of the operator°±GHIJK§¨©ª«;<=¬>?@ABDE­®¯°±§¨©ª«;<=¬>?@ABCDE­®F¯°±GHIJK®4k BSD-styleFoundation maintainersNone%&)0ADIORT²!different type of tests supportedLnumber of tests and failuresMName of a test FollowedNResult of a property run¸Name of a test²³´µ¶·OPQRSTUVWLMXYNZ[¸\]^²³´µ¶·OPQRSTUVWMXYNZ[¸\] ²³´µ¶·OPQRSTUVWLMXYNZ[¸\]^lNone%&)0:ADORT_`NZ[_`_`) BSD-styleFoundation maintainersNone %&)0ADORT¹º» ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º» ¡¢¤¥£¦²³´µ¶¸¬©ª«§¨®¯°±­·¹º»¹º»* BSD-styleFoundation maintainersNone%&)0ADIORTa9internal check monad for facilitating the tests traversal¼ Run tests$abcdefghijklmno¼pqrstuvwxyz{|}~€�‚½¼¼abcdefghijklmno¼pqrstuvwxyz{|}~€�‚½& BSD-style FoundationNone)0DR ijklmnožŸ noimlkjžŸ+ BSD-style foundation experimentalportableNone)0DRƒ'errors related to FileName manipulation„0this means a null byte was found in the FileName…5this means a path separator was found in the FileName†encoding error‡"some unknown trainling bytes foundÂ+A filename (or path entity) in the FilePath  Authorised"""."".." "foundation" Unauthorised"/""file/""/file" "file/path"ˆ)error associated to filepath manipulation‰2this mean there were 2 contiguous path separators.9This is not valid in Foundation's FilePath specificationsÃ$FilePath is a collection of FileNameÇTODO: Eq and Ord are implemented using Show This is not very efficient and would need to be improved Also, it is possible the ordering is not necessary what we want in this case.#A FilePath is one of the following:  An Absolute:#starts with one of the follwing "/" A relative:don't start with a "/" authorised:"/""filepath"".""..""workhaskellhs-foundation" unauthorised"path//"Ä"information about type of FilePathA file path being only Æ or Å.Š.define the Path separator for POSIX systems : /‹ convert a FileName into a String?This function may throw an exception associated to the encodingŒ*conversion of FileName into a list of Char"this function may throw exceptionsÈ,conversion of a FilePath into a list of Char"this function may throw exceptionsÉ/build a file path from a given list of filename7this is unsafe and is mainly needed for testing purposeÊ(build a file name from a given ByteArray7this is unsafe and is mainly needed for testing purpose*ƒ„…†‡Â�ˆ‰ÃŽÄÅÆ�Š�‘’“”•–Ç—‹ŒÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ ÂÃÄÅÆÇÈÉÊË ÃÄÅÆÂÇÈÉÊË!ƒ„…†‡Â�ˆ‰ÃŽÄÅÆ�Š�‘’“”•–Ç—‹ŒÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ. BSD-style foundation experimentalportableNone)0DRJKLMNOPQRSTÂÃÇÈJKLMNOPRQSTÃÂÇÈm BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalportableNone)0DR˜gContains all the information related to a file mapping, including the size and the finalizer function.™kFrom a file mapping, create a final ptr which will automatically unmap memory when the pointer is garbage.š˜›œ�ž™š˜›œ�ž™š˜›œ�ž™n(c) Vincent Hanquez 2014 BSD-styleVincent Hanquez provisionalnon-portable (requires POSIX)None)0DRŸMemory synchronization flags perform asynchronous write.¡perform synchronous write.¢invalidate cache data.£Advice to put on memory.only define the posix one.¤ no specific advice, the default.¥BExpect page references in random order. No readahead should occur.¦RExpect page references in sequential order. Page should be readahead aggressively.§IExpect access in the near future. Probably a good idea to readahead early¨(Do not expect access in the near future.©Memory protectionª Mapping flag«)memory changes are shared between process¬%memory changes are private to process­Map pages of memory.vIf fd is present, this memory will represent the file associated. Otherwise, the memory will be an anonymous mapping.use mmap®Unmap pages of memoryuse munmap¯7give advice to the operating system about use of memorycall madvise°%lock a range of process address spacecall mlock±'unlock a range of process address spacecall munlock² set protection of memory mappingcall mprotect³4memorySync synchronize memory with physical storage.FOn an anonymous mapping this function does not have any effect. call msync´&Return the operating system page size.call sysconf'Ÿ ¡¢£¤¥¦§¨©µ¶·¸ª«¬¹º»¼½¾¿ÀÁ­*The address to map to if MapFixed is used.The length of the mapping1the memory protection associated with the mapping®¯°±²³´ÃÄÅŸ ¡¢£¤¥¦§¨©µ¶·¸ª«¬­®¯°±²³´ÅŸ ¡¢£¤¥¦§¨©µ¶·¸ª«¬¹º»¼½¾¿ÀÁ­®¯°±²³´ÃÄÅoNone)0DR˜›œ�ž™Åp BSD-style Foundation experimentalportableNone)0DRÜ2list the file name in the given FilePath directoryqTODO: error management and not implemented yet getDirectory :: FilePath -> IO [FileName] getDirectory = undefinedOpen a new handle on the fileÝClose a handleÞ-Read binary data directly from the specified Æ.ºFirst argument is the Handle to read from, and the second is the number of bytes to read. It returns the bytes read, up to the specified size, or an empty array if EOF has been reached.Þ is implemented in terms of hGetBuf.ÇhGetNonBlocking is similar to Þ©, except that it will never block waiting for data to become available, instead it returns only whatever data is available. If there is no data available to be read, Ç returns an empty array.7Note: on Windows, this function behaves identically to Þ.ÈLike Þƒ, except that a shorter array may be returned if there are not enough bytes immediately available to satisfy the whole request. ÈN only blocks if there is no data available, and EOF has not yet been reached.àà filepath mode act opens a file using the mode and run acta. the by-product handle will be closed when act finish, either normally or through an exception.(The value returned is the result of act@áIRead a binary file and return the whole content in one contiguous buffer. ÜÝÞÇÈßÉàáÊhgfedÃÜÝÞÇÈßàá ÜÝÞÇÈßÉàáÊ BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalportableNone)0DR[\hgfed<=ÜÝÞßàá=<[\hgfedÜÝàÞßá, BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalportableNone)0DRâ*Map in memory the whole content of a file.COnce the array goes out of scope, the memory get (eventually) unmapã*Map in memory the whole content of a file,ËâãâãâãËâã BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalportableNone)0DRä:Alias to Prelude String ([Char]) for compatibility purposeäåæÿI‹ŠŒ��ލ  ¡ ±°¯®ª©!"#$¢%&'<?()*+,-./01=>2BCD3456789;@AJTRQSWZY]_cba`ijklmon‡ˆ‰�‘’“”•–—˜™š›œ�žŸ ¥¦§«¬­ÌÍÎÏÙßïôõ÷    %$'&CEDGFIHŽ��‘’“”•–—˜™š›œ²³´µÁÂÃ<=prqs{|}€�‚ƒ~„‡ˆ‰¢š¤�¦¥§¨”•ŠŒŽ˜‘œ¬¡©ª«–—› Ÿ£ž�’�‹�™“­äåæÿ�«¬Y­›œ™š—˜”•–‘’“Ž��Z—lžŸÍ<=Î™š˜œ›¦÷õô!Ì ©®ª¯°±¨‹Š�Ž�Œ ¡EDGFIHTSRQ$¢  #I%$'&ÁÂà    1=>2BCD'<?(4;@A,-./67895+0J3*)æåßïÙω%&]{|}~€�‚ƒ‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©©ªª««¬­„pqrs�‘”–•’“ikj‡ˆ¥Wcba`"§_onm³´²µCääåæ!None)0DRçOperator version of Q.êSend values downstream.çèéêëìíCDEFGHIJKLMNOPQçèéêëìíGCDEFHIJêKLMNOQçèéëìíPçèéêëìíç2Ìqrstuvtuwtxytxztx{tx|q}~q}tu€tu�tu‚tuƒtu„t…†t‡ˆt‡‰tŠ‹tŠŒtŠ�tŠŽtu�tu�tu‘tu’tu“tu”tx•tx–q}—tu˜tu™q}št›œt�žt…Ÿtu t¡¢tu£q¤¥q¤¦q¤§q¤¨q¤©tª«tª¬tª­tª®¯°±tu²q¤³t‡´q¤µq¤¶t·¸t·¹t·ºt·»t¼½t¾¿q¤ÀtuÁtuÂq¤Ãt¾Ät¾Åq¤Æq¤Çq¤ÈtÉÊtËÌtËÍtËÍtŠÎtÏÐtÑÒtÑÓtÑÔtÑÔtÕÖtÕ×tØÙtØÚtØÛtØÜtÝÞtÝßtàátâãtäåtäætçètçétêët¼ìtíîtïðtïñtïòtïótôõtôötô÷tôøtôùt¾út¾ût¾üt¾ýtþÿtþtþtttttttt t t t t tttttttttttttt‡txtxtx tx!tx"tx#t$%t$&t$'t$(t$)t$*t$+t$,t-.t-/t-0tu1tu2tu3tu4tu5tu6tu7tu8tu9tu:tu;t<=tï>q}?q}@q}Aq}Bq}Cq}Dq}Eq}Fq}Gq}HIJKIJLIJMIJNIJOIJPIJQIJRIJSIJTIJUIJVIJWIJXIJYIJZIJ[IJ\IJ]IJ^IJ_IJ`IJaIJbIJcIJdIefIghIijIklImnIopIoqIorIosIotIouIvwIvxIyzIy{I|}I|~I|I|€I|€I�‚I�ƒI„…I„†I„‡I„ˆI„‰IŠ‹IŠŒIŠ�IŠŽIŠ�IŠ�IŠ‘IŠ’IŠ“I”•I”–I”—I”•I˜™I˜šI˜›I˜œI�žI�ŸI�ŸI� I�¡I�¢I�£I�¤I�¤I¥¦I¥§I¨©Iª«Iª«Iª¬Iª¬I­®I­¯I­°I±²I±³I±´I±µI±¶I±·I±¸I±¹I±ºI±»I±¼I½¾I½¿I½ÀI½ÁIÂÃIÄÅIÆÇIÈÉIÈÊIÈËIÈÌIÈÍIÈÎIÈÏIÐÑIÐÒIÐÓIÐÔIÕÖIÕ×IÕØIÕÙIÕÚIÕÛIÕÜIÕÝIÕÞIÕßIÕàIÕáIâãIâäIâåIâæIâçIâèIâéIâêIâëIâìIâìIâíIâîIâîIâïIðñIòóIòôIòõIòöIò÷Iòøùúûüýþÿ00 Ÿ     !"#$%&'()*+,-./0123495969798999:9;9<9=9>9>9?9?9@9@ABCDEFGHIJKLMNOPQRSTU:V:W:X:Y;Z;[;\;];^;_`abcdefghijklmnopqrstuvwx=y=z={=|=}>~>~>>€>�>‚>ƒ>„>…>†>‡ˆˆ‰‰Š‹Œ�Ž��‘’“”•–—˜™š?›?œA�AžAŸA A¡A¢£¤¥¦§¨©ª«¬­®¯°±²²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝj Þ ß à áFâFãFãFäFåFæFçFèFéFêFëFìFíFîFïGðGñGòGóGôGõGöG÷GøGùGúGûGüHýHMHNHOHPHIHKHRHQTþTÿTTU-VVVVVVVW W W X X YYZZZZZZZZZZZZZZ[[[ [!["[#[$[%[&['[([)[*[+[,[-[.[/[0[1[2[3[4[5[6[7[8[9[:[;[<[=[>[?[@[A[B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V]W]X]Y]Z][]\"W"V"["X#]#^#_#`#a#b#c#d#e#f#g#h#ijjklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡)ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�ž$Ÿ$Ÿ$ $¡$¢$¢$£$¤$¥$¦%§%¨%©%ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìí î ï ð ñaòbóbôcõdöd÷dødùeúeûüý þÿ' ''ý' 'þ'ÿ' ' ' ' ''''''''(((((((((((( (!f"f#g$h%h&h'h(h…h)j*j+j,j-j.j/j0j1j2j3j4k5k6k,k7k8k9k:);)<)=*§*>*?*@*A*B+C+/+D+E+F+G+H+I+J+K+L+M+N+O+P+Q+R+S+T+U+V+W+X+Y+Z+[p\p]p^p_p`pa,b,cdef!g!h!i!j!k!l!m<:1n1n1o2p2q2r2s2t2u2v2w2x2y2z2{2|2}2~22€2�2‚2ƒ2„2…3†3‡3ˆ3‰3Š3‹3Œ3�tŽ�tŽ�tŽ�tŽ�4‘4’4“4”4•4–4—4˜4™4š4›4œ4�4ž4Ÿ4 4¡4¢4£4¤4¥4¦4§4¨4©4ª4«4¬4­4®4¯4°4±4²4³4´4µ4¶4·4¸4¹4º4»4¼4½4¾4¿4À4Á4Â4Ã4Ä4Å4Æ4Ç4È4É4Ê4Ë4Ì4Í4Î4Ï4Ð4Ñ4Ò4Ó4Ô4Õ4Ö4×4Ø4Ù4Ú4Û4Ü4Ý4Þ4ß4à4á4â4ã4ä4å4æ4ç4è4é4ê4ë4ì4í4î4ï4ð4ñ4ò4ó4ô4õ4ö4÷4ø4ù4ú4û4ü4ý4þ4ÿ4444444444 4 4 4 4 4444444455555666666 6!6"6#6$6%6&6'6(6)6*6+6,6-6.6/606162636465666768697:;<=Z>tÉtÉ 9?9@9A9B9C9D9E9F9G9H9I9J9K9L9M9N9O9P9Q9R:S:9:T:V:W:U:V:W;X;YZ<[<\<\<]<^<_<`<a<b<c<d=e>f>g>h>i˜jAkAlAmBnBnBoBpBqBrBsBtBuBvBw£»IxTIxSIxRIxQIxGIxFIxEIxDIxIxIxyIxzIx{Ix|Ix#Ix!IxIx;Ix9IxIxIxZIxIx8Ix}Ix~IxIx=Ix5Ix2Ix=IxKIxOIxËIxIx€Ix�E‚tƒ„tƒ„tƒ…tƒ…tƒ†tƒ†tƒ‡tƒ‡tƒˆtƒˆtƒ‰tƒ‰tƒŠtƒŠtƒ‹tƒ‹tƒŒtƒŒtƒ�tƒ�tƒŽtƒŽtƒ�tƒ�tƒ�tƒ�tƒ‘tƒ‘tƒ’tƒ’tƒ“tƒ“tƒ”tƒ”tƒ•tƒ•tƒ–tƒ–tƒ—tƒ—tƒ˜tƒ˜tƒ™tƒštƒ›tƒœtƒœtƒ�tƒ�tƒžtƒžtƒŸtƒŸI ¡I ¢I £I ¤I ¥I ¦I §I ¨I ©I ©I ªF«F¬F­F®F¯F°F±F²F³F´FµF¶F·F¸F¹FºFºF»FâF¼F½FåF¾F¿FÀFÁFÂFÃFÄFÅFÆFÇFÈFÉFÊFËFÌFÍFÎFÏFÐFÑFÒFÓFÔFÕFÖF×FØFÙFÚGÛGÜGÝHLHÞHßSàS S"S$S'S2S3TáVâVãVäVåVæVçVèVéWêWëWìWíWîXïXðXñXòYóYôYõYöY÷ZøZùZúZûZüZý[þ[ÿ[[[[\\\\\\ \ \ \ \ \\\\\\\\]]]]#]#nà !"#$$%$&$'%(%(%)%*%*%+%,%-%.%/%0%1^¾^¾^2^3^4^5^6^7^8^9^:^;`¾`¾`<`7`=`>`?`@`;aaaaAaòa=aZa>aBaCaaaaaDaEaa!a#a a"a%a&a'a+a1a/a3a2a5a4a6a7a{aFaGaHaIaJaKaLaMaNaOaPb{bFbBbCbAbQbZbóbôbRbSbTbUböb÷bôbõbVbWbXbYbbZb=b}b>bbb!b#b%b&b'b-bzb5b4b2b3b+b6b7b/b1bbbbbb[b\b]b^b_b`babbbcbdbebfbgchcicjckclcmcncocpcqdrdsdtdudvdwdöd÷dødùdrdsdxdydzd{d|d}d~dd€d�e‚eƒe„e…e†e‡eˆe‰eŠe‹eŒe�eŽe�e�e‘e’e“e”e•e–e—e˜e™üš›' '›'œ'�'š'ž'Ÿ' '¡'¢(£(›(¤f¥f¦f§f¨f©fªf«f¬f­f®f¯f°f±f±f²f²f"f#f¥f¦f³f´fµf¶f·f¸f¹fºf»f¼f½f¾f¿g$gÀgÁgÂgÂgÃgÃgÄgÅgÆgÇgÈgÉgÊgËgÌgÍhÎhÏhÐhÑhÒhÓhÔhÕhÖh×hØhÙhÚhÛhÜhÝhÞhßhàháhâhãhähåhæhçhèhéhêhëhìhíhîhïhðhñhòhóhôhõhöh÷iøiùiúiûiüiýiýiþiÿiiiiiiiii0i1jj j j j j jjjjjjjjjjjkkkk9kkkkkk k!k"kk#k$k%k&k'k(l)l**+*+*,*-*-*.*/*0*1*2*3*4*5*6*7*8*9*:*;*<*=*>*?*@*A*B*C*D*E*F*G*H*I*J+K+L+M+N+O+P+Q+R+S+T+C+/+U+V+W+X+Y+Z+[+\+]m^m_m`m^mambmcndnenfngnhninjnknlnmnnnonpnqnrnsntnunvnwnxnynzn{n|n}n~nn€n�n‚nƒn„n…n†n‡nˆn‰nbtŠ‹pŒp�pŽp�,�‘(foundation-0.0.17-ESYwfl9vusc1WassDdg0IQ FoundationFoundation.Network.IPv4Foundation.Class.StorableFoundation.System.InfoFoundation.MonadFoundation.IO.TerminalFoundation.Parser Foundation.IOFoundation.BitsFoundation.ExceptionFoundation.StringFoundation.String.ReadFoundation.PrimitiveFoundation.Array.InternalFoundation.ForeignFoundation.ArrayFoundation.CollectionFoundation.NumericalFoundation.VFS.PathFoundation.VFS.URIFoundation.String.BuilderFoundation.StrictFoundation.Tuple.NthFoundation.System.EntropyFoundation.RandomFoundation.Time.TypesFoundation.Time.StopWatchFoundation.Monad.ReaderFoundation.Monad.ExceptFoundation.Monad.StateFoundation.Math.TrigonometryFoundation.Time.BindingsFoundation.ConduitFoundation.Conduit.TextualFoundation.List.DListFoundation.TimingFoundation.Timing.MainFoundation.HashingFoundation.Network.IPv6Foundation.UUIDFoundation.CheckFoundation.Check.MainFoundation.VFS.FilePathFoundation.IO.FileMapElementFoundation.VFSFilePathURI Foundation.System.Entropy.CommonFoundation.System.Bindings.Time#Foundation.System.Bindings.PosixDef Foundation.System.Bindings.Posix"Foundation.System.Bindings.Network Foundation.System.Bindings.LinuxFoundation.System.Bindings.HsFoundation.System.BindingsFoundation.TupleFoundation.PartialFoundation.Numerical.FloatingFoundation.System.Entropy.UnixFoundation.Random.ClassFoundation.Random.DRGFoundation.Monad.TransformerFoundation.Monad.MonadIOFoundation.Monad.ExceptionFoundation.Monad.IdentityFoundation.Monad.BaseFoundation.List.ListNFoundation.Foreign.AllocFoundation.Conduit.InternalFoundation.Collection.MutableFoundation.Collection.Mappable traverse_ sequenceA_mapM_ sequence_traverse sequenceAmapMsequenceforM_forMFoundation.Collection.ListFoundation.Collection.KeyedFoundation.Collection.ElementFoundation.Collection.FoldableFoundation.Collection.Indexed"Foundation.Collection.InnerFunctorFoundation.Collection.Copy Foundation.Collection.Collection Foundation.Collection.SequentialFoundation.Collection.ZippableFoundation.Collection.BuildableFoundation.Random.ChaChaDRGFoundation.Class.BifunctorFoundation.Random.XorShift Foundation.Array.Chunked.UnboxedFoundation.Array.BitmapFoundation.Hashing.HasherFoundation.Hashing.FNVFoundation.Hashing.HashableFoundation.Hashing.SipHashFoundation.Check.GenFoundation.Check.ArbitraryFoundation.Check.ConfigFoundation.Check.PropertyFoundation.Check.TypesFoundation.Check.Print"Foundation.Foreign.MemoryMap.Types"Foundation.Foreign.MemoryMap.PosixFoundation.Foreign.MemoryMapFoundation.IO.Fileghc-primGHC.PrimseqbaseGHC.Base otherwise$GHC.EnumenumFrom enumFromThen enumFromToenumFromThenTo GHC.Classes==>=fail>>=>>fmapreturn Data.String fromStringGHC.Real fromIntegral realToFracGHC.ExtsIsListfromList fromListNtoListmemptymappendmconcat<*>pure*>BoundedEnumEqMonadFunctorOrdGHC.ShowShowData.Typeable.InternalTypeableIsString ApplicativeData.Semigroup SemigroupMonoid GHC.TypesBoolCharDoubleFloatIntGHC.IntInt8Int16Int32Int64 integer-gmpGHC.Integer.TypeIntegerMaybeOrderingRationalIOWordGHC.WordWord8Word16Word32Word64GHC.PtrPtr Data.EitherEitherFalseNothingJustTrueLeftRightLTEQGT System.InfocompilerVersionData.Functor.Identity runIdentityIdentityItem GHC.NaturalNatural Data.Version versionTags versionBranchVersion System.Exit exitSuccess exitFailureData.Bifunctorsecondfirstbimap BifunctorControl.Monad.IO.ClassliftIOMonadIO Control.Monad>=>Control.ApplicativeoptionalControl.Category.idGHC.IO.Handle.FDstdinstdout Data.Monoid<>castPtrGHC.IO.Exception IOException GHC.ExceptiondisplayException fromException toException Exception GHC.IO.IOMode ReadWriteMode AppendMode WriteModeReadModeIOModepartitionEithersrightsleftseither Data.Proxy asProxyTypeOfProxy Data.BitspopCountrotateRrotateL unsafeShiftRshiftR unsafeShiftLshiftLisSignedbitSize bitSizeMaybetestBit complementBitclearBitsetBitbitzeroBitsrotateshift complementxor.|..&.Bits Data.Functionon Data.Functor<$>^^maxBoundminBoundfromEnumtoEnumpredsucc Data.MaybemapMaybe catMaybes listToMaybe maybeToList fromMaybe isNothingisJustmaybe Data.TupleswapuncurrycurryasTypeOfuntil$!flipconst=<<<$<*manysome<|>GHC.Err undefined SomeException/=compare<=&&||not<>maxmin%basement-0.0.4-5G9Gc8Ht9hD9gydJD2I2TQBasement.StringtoBase64OpenBSD toBase64URLtoBase64lowerupperreadFloatingExact readRational readDouble readNatural readInteger readIntegralwordslinestoBytesfromBytesUnsafefromBytesLenient fromBytesreplaceindices breakLine ISO_8859_1UTF32UTF16UTF8ASCII7Encoding Basement.ShowshowBasement.ErrorerrorBasement.EnvironmentgetArgsBasement.UTF8.BaseStringBasement.Types.AsciiString AsciiStringBasement.UArray toHexadecimalrecastwithPtr copyToPtrfromForeignPtr foreignMemBasement.UArray.MutablewithMutablePtrmutableForeignMemBasement.BoxedArrayArrayMArrayBasement.UArray.Basenew newPinnedMUArrayUArrayBasement.Block.BaseBlock MutableBlockBasement.UTF8.TypesBuildingFailure MissingByteInvalidContinuation InvalidHeaderValidationFailureBasement.PrimType primAddrWrite primAddrRead primAddrIndex primMbaUWrite primMbaURead primBaUIndexprimShiftToBytesprimSizeInBytesPrimTypeBasement.TheseTheseThatThisBasement.NormalFormforcedeepseq toNormalForm NormalFormBasement.MutableBuilder runBuilderBuilder chunkSizecurChunkprevChunksSize prevChunks BuildingStateBasement.NonEmpty getNonEmptyNonEmptyBasement.Exception OutOfBoundBasement.Types.OffsetSizeOffsetCountOfBasement.Numerical.Subtractive- Difference Subtractive!Basement.Numerical.Multiplicativerecip^* midentityMultiplicativedivModmoddiv IDivisible/ DivisibleBasement.Numerical.Additivescale+azeroAdditiveBasement.Types.Word256Word256Basement.Types.Word128Word128Basement.Types.Char7Char7Basement.IntegralConvintegralDownsizeCheckintegralDownsizeIntegralDownsizeintegralUpsizeIntegralUpsize integralCast IntegralCastBasement.Numerical.Number toInteger IsIntegral toNatural IsNaturalBasement.Monad primVarWrite primVarRead primVarNew unPrimMonad primThrow primitivePrimVar PrimState PrimMonadmFailFailure MonadFailureBasement.Endianness endiannessfromLEtoLEfromBEtoBE BigEndian LittleEndian EndiannessunLELEunBEBEByteSwapBasement.Compat.Base ifThenElseBasement.Compat.NumLiteral fromIntegerIntegral fromRational Fractionalnegate HasNegationPathPathEnt PathPrefix PathSuffix splitPath buildPathparentfilenameprefixsuffixURIPath URIFragmentURIQuery URIAuthority URISchema $fPathURIemitemitChartoString$fMonoidBuilder$fSemigroupBuilder$fIsStringBuilderArchI386X86_64PowerPC PowerPC64SparcSparc64ARMARM64OSWindowsOSXLinuxAndroidBSDosarch compilerNamecpus$fShowOS$fEqOS$fOrdOS$fEnumOS $fBoundedOS$fDataOS $fShowArch$fEqArch $fOrdArch $fEnumArch $fBoundedArch $fDataArchstrict1strict2strict3strict4strict5strict6Thdable ProductThirdthdSndable ProductSecondsndFstable ProductFirstfstTuple4Tuple3Tuple2NthableNthTynth$fNthable4Tuple4$fNthable3Tuple4$fNthable2Tuple4$fNthable1Tuple4$fNthable4(,,,)$fNthable3(,,,)$fNthable2(,,,)$fNthable1(,,,)$fNthable3Tuple3$fNthable2Tuple3$fNthable1Tuple3$fNthable3(,,)$fNthable2(,,)$fNthable1(,,)$fNthable2Tuple2$fNthable1Tuple2 $fNthable2(,) $fNthable1(,) PartialErrorPartialpartial fromPartial FloatingPoint floatRadix floatDigits floatRange floatDecode floatEncodeIntegralRoundingroundUp roundDown roundTruncate roundNearestSignedabssignumSign SignNegativeSignZero SignPositive$fIntegralRoundingFloat$fIntegralRoundingDouble$fIntegralRoundingRatio$fSignedDouble $fSignedFloat $fSignedInt64 $fSignedInt32 $fSignedInt16 $fSignedInt8 $fSignedInt$fSignedInteger$fEqSign getEntropy MonadRandomgetRandomBytesgetRandomWord64 getRandomF32 getRandomF64MonadRandomStaterunRandomState RandomGen randomNew randomNewFromrandomGeneraterandomGenerateWord64randomGenerateF32randomGenerateF64withRandomGeneratorSeconds NanoSeconds$fPrimTypeSeconds$fPrimTypeNanoSeconds$fShowNanoSeconds$fEqNanoSeconds$fOrdNanoSeconds$fAdditiveNanoSeconds$fEnumNanoSeconds$fBoundedNanoSeconds $fShowSeconds $fEqSeconds $fOrdSeconds$fAdditiveSeconds $fEnumSeconds$fBoundedSecondsStopWatchPrecise startPrecise stopPrecise MonadTranslift MonadBracketgeneralBracket MonadCatchcatch MonadThrowthrowReaderT runReaderT MonadReader ReaderContextask$fMonadReaderReaderT$fMonadBracketReaderT$fMonadCatchReaderT$fMonadThrowReaderT$fMonadFailureReaderT$fMonadIOReaderT$fMonadTransReaderT$fMonadReaderT$fApplicativeReaderT$fFunctorReaderTExceptT runExceptT$fMonadIOExceptT$fMonadTransExceptT$fMonadReaderExceptT$fMonadExceptT$fMonadFailureExceptT$fApplicativeExceptT$fFunctorExceptTStateT runStateT MonadStateState withStategetput$fMonadStateStateT$fMonadCatchStateT$fMonadThrowStateT$fMonadFailureStateT$fMonadIOStateT$fMonadTransStateT $fMonadStateT$fApplicativeStateT$fFunctorStateT replicateM Trigonometrypisincostanasinacosatansinhcoshtanhasinhacoshatanh$fTrigonometryDouble$fTrigonometryFloatputStrputStrLnmeasuringNanoSecondsgetMonotonicTimefinallytry ResourceTZipSink getZipSinkConduitawait awaitForeveryieldyieldOrleftover runConduitrunConduitPure runConduitResbracketConduitfuseMutableCollectionMutableFreezed MutableKey MutableValue unsafeThaw unsafeFreezethawfreezemutNewmutUnsafeWritemutWrite mutUnsafeReadmutReadMappableKeyedCollectionKeyValuelookup Fold1ablefoldl1'foldr1Foldablefoldl'foldrfoldr'IndexedCollection! findIndex InnerFunctorimapCopycopy CollectionnulllengthelemnotElemmaximumminimumanyallnonEmpty nonEmpty_ nonEmptyFmapandor SequentialtakerevTakedroprevDropsplitAt revSplitAtsplitOnbreakbreakEnd breakElem takeWhile dropWhile intersperse intercalatespanspanEndfilter partitionreverseunconsunsnocsnocconsfindsortBy singletonheadlasttailinit replicate isPrefixOf isSuffixOf isInfixOf stripPrefix stripSuffix BoxedZippablezipzip3zip4zip5zip6zip7unzipunzip3unzip4unzip5unzip6unzip7ZippablezipWithzipWith3zipWith4zipWith5zipWith6zipWith7 BuildableMutableStepappendbuildbuild_DList$fSequentialDList$fCollectionDList$fFoldableDList $fMonadDList$fApplicativeDList$fFunctorDList $fMonoidDList$fSemigroupDList $fIsListDList $fShowDList $fOrdDList $fEqDListAnd ConditionBetweenExactlyParser ParserSourceChunk nullChunk appendChunksubChunk spanChunkResult ParseFailedParseOk ParseMore ParseError NotEnoughNotEnoughParseOnlyExpectedElementExpectedSatisfy parseFeedparse parseOnly reportError anyElementelementelementssatisfysatisfy_takeAllskip skipWhileskipAllstringrepeat $fShowAnd$fParserSource[]$fParserSourceString$fAlternativeParser$fMonadPlusParser $fMonadParser$fApplicativeParser$fFunctorParser$fFunctorResult $fShowResult$fShowParseError$fExceptionParseError $fShowNoMore $fEqNoMore$fEqAnd$fShowCondition $fEqConditionMeasure measurementsitersTimingtimeDifftimeBytesAllocated stopWatchmeasure defaultMain$fFunctorTimingPlan$fApplicativeTimingPlan$fMonadTimingPlan StorableFixedsize alignmentStorablepeekpokeplusPtrpeekOffpokeOff peekArraypeekArrayEndedBy pokeArraypokeArrayEndedBy$fStorableFixedPtr$fStorableFixedLE$fStorableFixedBE$fStorableFixedWord256$fStorableFixedLE0$fStorableFixedBE0$fStorableFixedWord128$fStorableFixedLE1$fStorableFixedBE1$fStorableFixedWord64$fStorableFixedLE2$fStorableFixedBE2$fStorableFixedWord32$fStorableFixedLE3$fStorableFixedBE3$fStorableFixedWord16$fStorableFixedWord8$fStorableFixedInt64$fStorableFixedInt32$fStorableFixedInt16$fStorableFixedInt8$fStorableFixedFloat$fStorableFixedDouble$fStorableFixedChar$fStorableFixedCUChar$fStorableFixedCChar $fStorablePtr $fStorableLE $fStorableBE$fStorableWord256 $fStorableLE0 $fStorableBE0$fStorableWord128 $fStorableLE1 $fStorableBE1$fStorableWord64 $fStorableLE2 $fStorableBE2$fStorableWord32 $fStorableLE3 $fStorableBE3$fStorableWord16$fStorableWord8$fStorableInt64$fStorableInt32$fStorableInt16$fStorableInt8$fStorableFloat$fStorableDouble$fStorableChar$fStorableCUChar$fStorableCCharRNGv1RNG.<<..>>. alignRoundUpalignRoundDown ChunkedUArray MutableBitmapBitmapHasherFNV1a_64FNV1a_32FNV1_64FNV1_32HashablehashMixIPv4loopback fromTupletoTuple ipv4Parser$fStorableFixedIPv4$fStorableIPv4$fIsStringIPv4$fNormalFormIPv4 $fShowIPv4$fEqIPv4 $fOrdIPv4$fHashableIPv4IPv6 ipv6Parseripv6ParserPreferredipv6ParserIpv4Embeddedipv6ParserCompressed$fStorableFixedIPv6$fStorableIPv6$fIsStringIPv6 $fShowIPv6$fHashableIPv6$fNormalFormIPv6$fEqIPv6 $fOrdIPv6UUIDnilnewUUID fromBinary uuidParser$fStorableFixedUUID$fStorableUUID$fHashableUUID$fNormalFormUUID $fShowUUID$fEqUUID $fOrdUUIDSip1_3Sip2_4Gen Arbitrary arbitrary frequencyoneofbetween IsPropertypropertyPropertyPropunProp PropertyCheckforAll===propertyCompare propertyAnd propertyFailTestUnitGroup CheckPlanChecktestNamevalidatepickiterateProperty$fMonadStateCheckMain$fFunctorCheckMain$fApplicativeCheckMain$fMonadCheckMain$fMonadIOCheckMainFileName RelativityAbsoluteRelativefilePathToStringfilePathToLStringunsafeFilePathunsafeFileName extension$fPathFilePath$fMonoidFileName$fSemigroupFileName$fIsStringFileName$fShowFileName$fExceptionFileName_Invalid$fIsStringFilePath$fExceptionFilePath_Invalid $fOrdFilePath $fEqFilePath$fShowFilePath$fEqRelativity$fShowRelativity$fShowFilePath_Invalid $fEqFileName$fShowFileName_InvalidopenFile closeFilehGethPutwithFilereadFile fileMapReadfileMapReadWithLString fromCounttoCount.| sourceFile sourceHandleyieldssinkFile sinkHandlesinkListEntropySystemMissing$fExceptionEntropySystemMissing CTimeZoneCTimeVal CTimeSpecCClockIdsysTimeGetTimeOfDaysysTimeClockGetTimesysTimeClockGetRessize_CTimeSpecofs_CTimeSpec_Secondsofs_CTimeSpec_NanoSeconds size_CTimeValsize_CTimeZone size_CTimeTsysTime_CLOCK_REALTIMEsysTime_CLOCK_MONOTONIC sysTime_CLOCK_PROCESS_CPUTIME_IDsysTime_CLOCK_THREAD_CPUTIME_IDsysTime_CLOCK_MONOTONIC_RAWsysTime_CLOCK_REALTIME_COARSEsysTime_CLOCK_BOOTTIMEsysTime_CLOCK_REALTIME_ALARMsysTime_CLOCK_BOOTTIME_ALARM COpenFlags CSysconfName CMemSyncFlags CMemAdviceCMemMappingFlags CMemProtFlagsCFdCErrnoSystem.Posix.TypesCModeCOffCDirentCDir sysPosixDirfdsysPosixClosedirsysPosixRewinddirsysPosixSeekdirsysPosixTelldirsysPosixReaddirRsysPosixReaddirsysPosixFdopendirsysPosixOpendirsysPosixFtruncatesysPosixFnctlPtrsysPosixFnctlNoArg sysPosixClosesysPosixOpenAt sysPosixOpensysPosixSysconfsysPosixMunlock sysPosixMlocksysPosixMprotect sysPosixMsyncsysPosixMadvisesysPosixMunmap sysPosixMmapsysPosix_E2BIGsysPosix_EACCESsysPosix_EADDRINUSEsysPosix_EADDRNOTAVAILsysPosix_EAFNOSUPPORTsysPosix_EAGAINsysPosix_EALREADYsysPosix_EBADFsysPosix_EBUSYsysPosix_ECANCELEDsysPosix_ECHILDsysPosix_ECONNABORTEDsysPosix_ECONNREFUSEDsysPosix_ECONNRESETsysPosix_EDEADLKsysPosix_EDESTADDRREQ sysPosix_EDOMsysPosix_EDQUOTsysPosix_EEXISTsysPosix_EFAULTsysPosix_EFBIGsysPosix_EHOSTUNREACHsysPosix_EIDRMsysPosix_EILSEQsysPosix_EINPROGRESSsysPosix_EINTRsysPosix_EINVAL sysPosix_EIOsysPosix_EISCONNsysPosix_EISDIRsysPosix_ELOOPsysPosix_EMFILEsysPosix_EMLINKsysPosix_EMSGSIZEsysPosix_ENAMETOOLONGsysPosix_ENETDOWNsysPosix_ENETRESETsysPosix_ENETUNREACHsysPosix_ENFILEsysPosix_ENOBUFSsysPosix_ENODEVsysPosix_ENOENTsysPosix_ENOEXECsysPosix_ENOLCKsysPosix_ENOMEMsysPosix_ENOMSGsysPosix_ENOPROTOOPTsysPosix_ENOSPCsysPosix_ENOSYSsysPosix_ENOTCONNsysPosix_ENOTDIRsysPosix_ENOTEMPTYsysPosix_ENOTSOCKsysPosix_ENOTSUPsysPosix_ENOTTYsysPosix_ENXIOsysPosix_EOPNOTSUPPsysPosix_EOVERFLOWsysPosix_EPERMsysPosix_EPIPEsysPosix_EPROTONOSUPPORTsysPosix_EPROTOTYPEsysPosix_ERANGEsysPosix_EROFSsysPosix_ESPIPEsysPosix_ESRCHsysPosix_ESTALEsysPosix_ETIMEDOUTsysPosix_ETXTBSYsysPosix_EWOULDBLOCKsysPosix_EXDEVsysPosix_ENODATAsysPosix_ENOSRsysPosix_ENOSTRsysPosix_ETIMEsysPosix_EBADMSGsysPosix_EMULTIHOPsysPosix_ENOLINKsysPosix_ENOTRECOVERABLEsysPosix_EOWNERDEADsysPosix_EPROTOsysPosix_O_RDONLYsysPosix_O_WRONLYsysPosix_O_RDWRsysPosix_O_NONBLOCKsysPosix_O_APPENDsysPosix_O_CREATsysPosix_O_TRUNCsysPosix_O_EXCLsysPosix_O_NOFOLLOWsysPosix_O_CLOEXECsysPosix_PROT_NONEsysPosix_PROT_READsysPosix_PROT_WRITEsysPosix_PROT_EXECsysPosix_MAP_SHAREDsysPosix_MAP_PRIVATEsysPosix_MAP_FIXEDsysPosix_MAP_ANONYMOUSsysPosix_MADV_NORMALsysPosix_MADV_RANDOMsysPosix_MADV_SEQUENTIALsysPosix_MADV_WILLNEEDsysPosix_MADV_DONTNEEDsysPosix_MS_ASYNCsysPosix_MS_SYNCsysPosix_MS_INVALIDATEsysPosix_SC_PAGESIZE getHErrnoherr_HostNotFound herr_NoDataherr_NoRecovery herr_TryAgainCWatchDescriptor CInotifyMask CInotifyFlagssysLinuxInotifyRmWatchsysLinuxInotifyAddWatchsysLinuxInotifyInitsysLinux_O_TMPFILEsysLinux_IN_NONBLOCKsysLinux_IN_CLOEXECsysLinux_IN_ACCESSsysLinux_IN_ATTRIBsysLinux_IN_CLOSE_WRITEsysLinux_IN_CLOSE_NOWRITEsysLinux_IN_CREATEsysLinux_IN_DELETEsysLinux_IN_DELETE_SELFsysLinux_IN_MODIFYsysLinux_IN_MOVE_SELFsysLinux_IN_MOVED_FROMsysLinux_IN_MOVED_TOsysLinux_IN_OPENsysLinux_IN_DONT_FOLLOWsysLinux_IN_MASK_ADDsysLinux_IN_ONESHOTsysLinux_IN_ONLYDIRsysLinux_IN_EXCL_UNLINKsysLinux_IN_IGNOREDsysLinux_IN_ISDIRsysLinux_IN_Q_OVERFLOWsysLinux_IN_UNMOUNTcinotifyEventSizesysHsCoreGetErrnoETemptyconcat$fThdableTuple4$fThdableTuple3$fThdable(,,,) $fThdable(,,)$fSndableTuple4$fSndableTuple3$fSndableTuple2$fSndable(,,,) $fSndable(,,) $fSndable(,)$fFstableTuple4$fFstableTuple3$fFstableTuple2$fFstable(,,,) $fFstable(,,) $fFstable(,)$fNormalFormTuple4$fNormalFormTuple3$fBifunctorTuple2$fNormalFormTuple2 partialErrorfromJust fromRightfromLeft$fExceptionPartialError$fFloatingPointDouble$fFloatingPointFloatorderingToSign entropyGather EntropyCtxEntropySyscallc_sysrandom_linux entropyOpen entropyCloseentropyMaximumSizeopenDevgatherDevEntropysupportSyscall$fMonadRandomIO$fMonadRandomMonadRandomState$fMonadMonadRandomState$fApplicativeMonadRandomState$fFunctorMonadRandomState secondInNano$fMonadBracketIO$fMonadCatchIO$fMonadThrowIO IdentityT runIdentityT$fMonadCatchIdentityT$fMonadThrowIdentityT$fMonadFailureIdentityT$fMonadIOIdentityT$fMonadTransIdentityT$fMonadIdentityT$fApplicativeIdentityT$fFunctorIdentityTBasement.Sized.Listfoldlmapindex indexStatic createFromcreatetoListNListNunListN allocaBytesForeign.C.TypesCCharCSCharCUCharCShortCUShortCIntCUIntCLongCULongCLLongCULLongCFloatCDoubleCPtrdiffCSizeCWchar CSigAtomicCClockCTime CUSeconds CSUSecondsCFileCFposCJmpBufCIntPtrCUIntPtrCIntMaxCUIntMaxBasement.FinalPtrwithUnsafeFinalPtr touchFinalPtr withFinalPtrwithFinalPtrNoTouch castFinalPtrtoFinalPtrForeign toFinalPtrfinalPtrSameMemoryFinalPtr FinalForeignPipeYieldAwaitDonePipeMLeftoverrunPipe MonadResource liftResourceTNextKeyRefCount ReleaseType ReleaseEarly ReleaseNormalReleaseException ReleaseMapReleaseMapClosed unResourceTVoid unConduitawait'absurdinjectLeftovers runResourceTallocate$fMonadResourceConduit$fMonadResourceResourceT$fMonadBracketResourceT$fMonadCatchResourceT$fMonadThrowResourceT$fMonadIOResourceT$fMonadTransResourceT$fMonadResourceT$fApplicativeResourceT$fFunctorResourceT$fApplicativeZipSink$fFunctorZipSink$fMonadCatchConduit$fMonadThrowConduit$fMonadFailureConduit$fMonadIOConduit$fMonadTransConduit$fMonadConduit$fApplicativeConduit$fFunctorConduit $fMonadPipe$fApplicativePipe $fFunctorPipe$fMutableCollectionMArray$fMutableCollectionMutableBlock$fMutableCollectionMUArray$fMappableArray $fMappable[] wordsWhen$fKeyedCollection[]$fFold1ableBlock$fFold1ableArray$fFold1ableUArray $fFold1able[]$fFoldableBlock$fFoldableArray$fFoldableUArray $fFoldable[]$fIndexedCollectionString$fIndexedCollectionArray$fIndexedCollectionUArray$fIndexedCollectionBlock$fIndexedCollection[]$fInnerFunctorString$fInnerFunctorArray$fInnerFunctorUArray$fInnerFunctor[] $fCopyString $fCopyArray $fCopyUArray $fCopyBlock$fCopy[]$fCollectionNonEmpty$fCollectionString$fCollectionArray$fCollectionUArray$fCollectionBlock$fCollection[]mconcatCollection$fSequentialString$fSequentialArray$fSequentialUArray$fSequentialBlock$fSequential[]uncons2uncons3uncons4uncons5uncons6uncons7uncurry2uncurry3uncurry4uncurry5uncurry6uncurry7$fBoxedZippableArray$fBoxedZippable[]$fZippableString$fZippableArray$fZippableUArray $fZippable[] builderLift$fBuildableString$fBuildableArray$fBuildableUArrayunDList runParserSuccessNoMoreMoreendOfParserSource runParser_failuresuccessrepeatErepeatAGCStats getGCStatsdiffGC TimingPlan runTimingPlan MainConfigmainHelpmainListBenchs mainVerbose mainOtherdefaultMainConfig parseArgs configHelpc_rngv1_generate_f64c_rngv1_generate_f32c_rngv1_generate_word64c_rngv1_generatekeySizegenerategenerateWord64 generateF32 generateF64$fRandomGenState initializenextnextList nextFloat nextDoubleequal vFromListvToListfindPos splitChunk unsafeIndexremoveArraySize $fIndexedCollectionChunkedUArray$fSequentialChunkedUArray$fCollectionChunkedUArray$fFoldableChunkedUArray$fIsListChunkedUArray$fMonoidChunkedUArray$fSemigroupChunkedUArray$fNormalFormChunkedUArray$fEqChunkedUArrayvCompare bitsPerTy shiftPerTy maskPerTy bitmapIndex unsafeWrite unsafeReadwriteread mutableLength unoptimised $fMutableCollectionMutableBitmap$fIndexedCollectionBitmap$fSequentialBitmap$fCollectionBitmap$fFoldableBitmap$fInnerFunctorBitmap$fIsListBitmap$fMonoidBitmap$fSemigroupBitmap $fOrdBitmap $fEqBitmap $fShowBitmaphashMix8 HashResulthashEnd HashInitParamhashNew hashNewParam hashMix16 hashMix32 hashMix64 hashMixBytes FNV1Hash64 FNV1Hash32 fnv1_32_mixBafnv1a_32_mixBa fnv1_64_mixBafnv1a_64_mixBaxor32xor64 fnv1_32_Mix8 fnv1a_32_Mix8 fnv1_64_Mix8 fnv1a_64_Mix8$fHasherFNV1a_64$fHasherFNV1_64$fHasherFNV1a_32$fHasherFNV1_32$fHashableTuple4$fHashableTuple3$fHashableTuple2$fHashable(,,,,,)$fHashable(,,,,)$fHashable(,,,)$fHashable(,,) $fHashable(,) $fHashable[]$fHashableArray$fHashableUArray$fHashableString$fHashableInteger$fHashableInt64$fHashableInt32$fHashableInt16$fHashableInt8$fHashableNatural$fHashableWord256$fHashableWord128$fHashableWord64$fHashableWord32$fHashableWord16$fHashableWord8 fromLString toLStringshowHex4showHexformat skipColonskipDot takeAWord8 takeAWord16 withComponentparseHexSipHashSipKeymixBaSipIncrementalSipIncremental0SipIncremental1SipIncremental2SipIncremental3SipIncremental4SipIncremental5SipIncremental6SipIncremental7 InternalStateSip newSipStatemix8Primmix8mix32mix64finishdoRoundprocessfinalize loopRounds andMask64$fHasherSip1_3$fHasherSip2_4runGenGenSeedGenRng GenParamsgenMaxSizeIntegralgenMaxSizeArraygenMaxSizeStringgenRng genGenerator genWithRng genWithParams $fMonadGen$fApplicativeGen $fFunctorGenarbitraryIntegerarbitraryNatural arbitraryChararbitraryWord64arbitraryInt64 arbitraryF64 arbitraryF32arbitraryUArrayOfgenMax$fArbitraryListN $fArbitrary[]$fArbitrary(,,,,,)$fArbitrary(,,,,)$fArbitrary(,,,)$fArbitrary(,,)$fArbitrary(,)$fArbitraryEither$fArbitraryMaybe$fArbitraryDouble$fArbitraryFloat$fArbitraryAsciiString$fArbitraryString$fArbitraryBool$fArbitraryCountOf$fArbitraryChar7$fArbitraryChar$fArbitraryInt8$fArbitraryInt16$fArbitraryInt32$fArbitraryInt64$fArbitraryWord8$fArbitraryWord16$fArbitraryWord32$fArbitraryWord64$fArbitraryWord128$fArbitraryWord256$fArbitraryWord$fArbitraryInt $fArbitraryZn$fArbitraryZn64$fArbitraryNatural$fArbitraryIntegerudfSeed getGenParamsnumTests defaultConfig ParamErrorConfig listTests testNameMatchdisplayOptions helpRequested DisplayOptionDisplayTerminalErrorOnlyDisplayGroupOnlyDisplayTerminalVerboseSeed getIntegerPropertyTestArg PropertyEOA PropertyArgPropertyBoolean PropertyNamedPropertyBinaryOp PropertyAnd PropertyFailPropertyTestResultcheckHasSucceedcheckHasFailedpretty$fIsProperty(->)$fIsPropertyProperty$fIsPropertyPropertyCheck$fIsProperty(,)$fIsPropertyBoolHasTests TestResultPropertyResultrunCheck PlanStateplanRngplanValidations planParams planFailures HasFailures GroupResultPropertySuccessPropertyFailed fqTestNamegroupHasSubGroup$fMonadStateCheckpropertyToResult diffBlame CheckMain runCheckMain TestStateconfiggetSeedindent testPassed testFailedtestPathnbFailnbTestsnewStatefilterTestMatchingonDisplayOption whenErrorOnly whenGroupOnly whenVerbosepassedfailedtestdisplayCurrentdisplayPropertySucceedunicodeEnabled successString failureStringresetgreenreddisplayPropertyFailed pushGroup testCheckPlan testPropertyFileName_InvalidContainsNullByteContainsSeparator EncodingErrorUnknownTrailingBytesFilePath_InvalidContiguousPathSeparatorpathSeparatorPOSIXfileNameToStringfileNameToLStringpathSeparatorPOSIXCpathSeparatorC pathSeparator hasNullByte hasSeparator isSeparatorhasContigueSeparatorsjoinfilenameIntercalate FileMappingfileMappingToFinalPtr FileMapReadFfileMappingPtrfileMappingSizefileMappingUnmapMemorySyncFlagMemorySyncAsyncMemorySyncSyncMemorySyncInvalidate MemoryAdviceMemoryAdviceNormalMemoryAdviceRandomMemoryAdviceSequentialMemoryAdviceWillNeedMemoryAdviceDontNeedMemoryProtection MemoryMapFlagMemoryMapSharedMemoryMapPrivate memoryMap memoryUnmap memoryAdvise memoryLock memoryUnlock memoryProtect memorySyncsysconfPageSizeMemoryProtectionNoneMemoryProtectionReadMemoryProtectionWriteMemoryProtectionExecute c_sysconf c_munlockc_mlock c_mprotectc_msync c_madvisec_munmapc_mmapcvalueOfMemoryProtscvalueOfMemorySyncfileSizeToCSizefileSizeFromIntegerGHC.IO.Handle.TypesHandlehGetNonBlockinghGetSomeinvalidBufferSize blockSizegetSize