! 妏      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ None FNone -.FHVNone"FHVd  bytesliceA slice of unmanaged memory. byteslice A slice of a .  byteslice A slice of a .      None$*Fk% bytesliceThe empty byte sequence. bytesliceThe empty pinned byte sequence. bytesliceThe empty pinned byte sequence. byteslicekYields a pinned byte sequence whose contents are identical to those of the original byte sequence. If the  ByteArrayn backing the argument was already pinned, this simply aliases the argument and does not perform any copying. bytesliceConvert the sliced   to an unsliced ,. This reuses the array backing the sliced  ] if the slicing metadata implies that all of the bytes are used. Otherwise, it makes a copy. byteslice Variant of D that unconditionally makes a copy of the array backing the sliced  5 even if the original array could be reused. Prefer . bytesliceCopy the byte sequence into a mutable buffer. The buffer must have enough space to accomodate the byte sequence, but this this is not checked. bytesliceCreate a slice of  & that spans the entire argument array. bytesliceThe length of a slice of bytes. byteslice1Hash byte sequence with 32-bit variant of FNV-1a. byteslice1Hash byte sequence with 64-bit variant of FNV-1a.  byteslice0Left fold over bytes, strict in the accumulator.! byteslice[Yields a pointer to the beginning of the byte sequence. It is only safe to call this on a   backed by a pinned  ByteArray." bytesliceConvert the sliced   to an unsliced ,. This reuses the array backing the sliced  z if the slicing metadata implies that all of the bytes are used and they are already pinned. Otherwise, it makes a copy.# byteslice Variant of "D that unconditionally makes a copy of the array backing the sliced  5 even if the original array could be reused. Prefer ". byteslice Destination bytesliceDestination Offset bytesliceSource !"#None_-)$ bytesliceETake bytes while the predicate is true, aliasing the argument array.% bytesliceEDrop bytes while the predicate is true, aliasing the argument array.& bytesliceTake the first n& bytes from the argument, aliasing it.' bytesliceDrop the first n? bytes from the argument, aliasing it. The new length will be len - n.( bytesliceCreate a slice of B that spans the entire argument array. This aliases the argument.$%&'($%&'(None$*Fk0) bytesliceRead   directly from the specified . The resulting  & are pinned. This is implemented with hGetBuf.* bytesliceOutputs   to the specified . This is implemented with hPutBuf.)* None $*FXk\ + byteslice;Count the number of times the byte appears in the sequence., byteslice Variant of .; that returns an array of unsliced byte sequences. Unlike .h, this is not a good producer for list fusion. (It does not return a list, so it could not be.) Prefer .P if the result is going to be consumed exactly once by a good consumer. Prefer ,] if the result of the split is going to be around for a while and inspected multiple times.- byteslice Variant of ,& that drops the trailing element. See 1/ for an explanation of why this may be useful.. bytesliceBreak a byte sequence into pieces separated by the byte argument, consuming the delimiter. This function is a good producer for list fusion. It is common to immidiately consume the results of split with foldl',  traverse_, foldlM5, and being a good producer helps in this situation.4Note: this function differs from its counterpart in  bytestring^. If the byte sequence is empty, this returns a singleton list with the empty byte sequence./ byteslice Variant of .7 that intended for use with stream fusion rather than build-foldr fusion.0 byteslice Variant of . that returns the result as a  instead of []*. This is also eligible for stream fusion.1 byteslice Variant of . that drops the trailing element. This behaves correctly even if the byte sequence is empty. This is a good producer for list fusion. This is useful when splitting a text file into lines.  Shttps://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap03.html#tag_03_392POSIXK mandates that text files end with a newline, so the list resulting from .> always has an empty byte sequence as its last element. With 1%, that unwanted element is discarded.2 byteslicevSplit a byte sequence on the first occurrence of the target byte. The target is removed from the result. For example:split1 0xA [0x1,0x2,0xA,0xB]Just ([0x1,0x2],[0xB])3 bytesliceSplit a byte sequence on the first and second occurrences of the target byte. The target is removed from the result. For example:(split2 0xA [0x1,0x2,0xA,0xB,0xA,0xA,0xA] Just ([0x1,0x2],[0xB],[0xA,0xA])4 bytesliceSplit a byte sequence on the first, second, and third occurrences of the target byte. The target is removed from the result. For example:(split3 0xA [0x1,0x2,0xA,0xB,0xA,0xA,0xA]Just ([0x1,0x2],[0xB],[],[0xA])5 bytesliceSplit a byte sequence on the first, second, third, and fourth occurrences of the target byte. The target is removed from the result. For example:(split4 0xA [0x1,0x2,0xA,0xB,0xA,0xA,0xA]Just ([0x1,0x2],[0xB],[],[],[])6 bytesliceuSplit a byte sequence on the last occurrence of the target byte. The target is removed from the result. For example:$split1 0xA [0x1,0x2,0xA,0xB,0xA,0xC]Just ([0x1,0x2,0xA,0xB],[0xC]) +,-./0123456None"$;FHSVXdk} 7 bytesliceA cons-list of byte sequences.: byteslice2Are there any bytes in the chunked byte sequences?; byteslice Variant of <@ that ensure that the resulting byte sequence is pinned memory.< byteslice:Concatenate chunks into a single contiguous byte sequence.= byteslice Variant of <( that returns an unsliced byte sequence.> byteslice Variant of ;/ that returns an unsliced pinned byte sequence.? byteslice,The total number of bytes in all the chunks.@ bytesliceCopy the contents of the chunks into a mutable array. Precondition: The destination must have enough space to house the contents. This is not checked.A byteslice3Reverse chunks but not the bytes within each chunk.B byteslice Variant of Al that allows the caller to provide an initial list of chunks that the reversed chunks will be pushed onto.C byteslice5Read a handle's entire contents strictly into chunks. byteslice5Read a handle's entire contents strictly into chunks.D bytesliceRead an entire file strictly into chunks. If reading from a regular file, this makes an effort read the file into a single chunk.E byteslice,Create a list of chunks with a single chunk.F byteslice Variant of E$ where the single chunk is unsliced.G bytesliceBLeft fold over all bytes in the chunks, strict in the accumulator.H byteslice1Hash byte sequence with 32-bit variant of FNV-1a.I byteslice1Hash byte sequence with 64-bit variant of FNV-1a.J bytesliceOutputs 7 to the specified . This is implemented with hPutBuf.K bytesliceWrite 79 to a file, replacing the previous contents of the file.L bytesliceBreak chunks of bytes into contiguous pieces separated by the byte argument. This is a good producer for list fusion. For this function to perform well, each chunk should contain multiple separators. Any piece that spans multiple chunks must be copied.M byteslice This uses concat to form an equivalence class.@ byteslice Destination bytesliceDestination offset bytesliceSource byteslice=Returns the next index into the destination after the payload789:;<=>?@ABCDEFGHIJKL789?:<;=>ABGLHIEF@CDJKNone "$*FSXdk>Q bytesliceIs the byte sequence empty?R byteslice!Extract the head and tail of the   , returning  if it is empty.S byteslice Extract the init and last of the   , returning  if it is empty.T bytesliceWDoes the byte sequence begin with the given byte? False if the byte sequence is empty.U bytesliceUDoes the byte sequence end with the given byte? False if the byte sequence is empty.V byteslice6Is the first argument a prefix of the second argument?W byteslice6Is the first argument a suffix of the second argument?X byteslice<Find the longest string which is a prefix of both arguments.Y byteslice%Create a byte sequence with one byte.Z byteslice&Create a byte sequence with two bytes.[ byteslice(Create a byte sequence with three bytes.\ byteslice/Create an unsliced byte sequence with one byte.] byteslice0Create an unsliced byte sequence with two bytes.^ byteslice2Create an unsliced byte sequence with three bytes._ bytesliceReplicate a byte n times.` byteslice Variant of _$ that returns a unsliced byte array.a bytesliceO(n)W Return the suffix of the second string if its prefix matches the entire first string.b bytesliceO(n) Return the suffix of the second string if its prefix matches the entire first string. Otherwise, return the second string unchanged.c bytesliceO(n)W Return the prefix of the second string if its suffix matches the entire first string.d bytesliceO(n) Return the prefix of the second string if its suffix matches the entire first string. Otherwise, return the second string unchanged.e byteslice*Is the byte a member of the byte sequence?f byteslice'Take bytes while the predicate is true.g byteslice'Drop bytes while the predicate is true.h byteslice]Index into the byte sequence at the given position. This index must be less than the length.i bytesliceO(n) i p bT returns the prefix remaining after dropping characters that satisfy the predicate p from the end of t.j bytesliceO(n) j p b@ returns the longest suffix of elements that satisfy predicate p.k bytesliceTake the first n( bytes from the argument. Precondition: n "d lenl bytesliceDrop the first n( bytes from the argument. Precondition: n "d lenm byteslice4Left fold over bytes, non-strict in the accumulator.n byteslice5Right fold over bytes, non-strict in the accumulator.o bytesliceyLeft fold over bytes, strict in the accumulator. The reduction function is applied to each element along with its index.p byteslice1Right fold over bytes, strict in the accumulator.q byteslice Convert a l consisting of only characters in the ASCII block to a byte sequence. Any character with a codepoint above U+007F is replaced by U+0000.r byteslice Convert a  consisting of only characters representable by ISO-8859-1. These are encoded with ISO-8859-1. Any character with a codepoint above U+00FF$ is replaced by an unspecified byte.s byteslice8Interpret a byte sequence as text encoded by ISO-8859-1.t byteslice4Copy a primitive string literal into managed memory.u byteslicetIs the byte sequence, when interpreted as ISO-8859-1-encoded text, a singleton whose element matches the character?v byteslicetIs the byte sequence, when interpreted as ISO-8859-1-encoded text, a doubleton whose elements match the characters?w byteslicetIs the byte sequence, when interpreted as ISO-8859-1-encoded text, a tripleton whose elements match the characters?x byteslicewIs the byte sequence, when interpreted as ISO-8859-1-encoded text, a quadrupleton whose elements match the characters?y byteslicewIs the byte sequence, when interpreted as ISO-8859-1-encoded text, a quintupleton whose elements match the characters?z byteslicevIs the byte sequence, when interpreted as ISO-8859-1-encoded text, a sextupleton whose elements match the characters?{ byteslicevIs the byte sequence, when interpreted as ISO-8859-1-encoded text, a septupleton whose elements match the characters?| byteslicevIs the byte sequence, when interpreted as ISO-8859-1-encoded text, an octupleton whose elements match the characters?} byteslicerIs the byte sequence, when interpreted as ISO-8859-1-encoded text, a 9-tuple whose elements match the characters?~ byteslicesIs the byte sequence, when interpreted as ISO-8859-1-encoded text, a 10-tuple whose elements match the characters? byteslicesIs the byte sequence, when interpreted as ISO-8859-1-encoded text, a 11-tuple whose elements match the characters? byteslicesIs the byte sequence, when interpreted as ISO-8859-1-encoded text, a 12-tuple whose elements match the characters? byteslice"Is the byte sequence equal to the NUL7-terminated C String? The C string must be a constant. bytesliceO(n) Variant of a that takes a NUL0-terminated C String as the prefix to test for. bytesliceUTouch the byte array backing the byte sequence. This sometimes needed after calling contents so that the  ByteArray! does not get garbage collected. byteslice$Read an entire file strictly into a  . bytesliceO(n), The intercalate function takes a separator   and a list of  Y and concatenates the list elements by interspersing the separator between each element. bytesliceSpecialization of l where the separator is a single byte and there are exactly two byte sequences that are being concatenated. bytesliceO(n)B Returns true if any byte in the sequence satisfies the predicate. bytesliceO(n)A Returns true if all bytes in the sequence satisfy the predicate. bytesliceO(n) when unpinned, O(1) when pinned. Create a O from a byte sequence. This only copies the byte sequence if it is not pinned. bytesliceConvert the sliced   to an unsliced ,. This reuses the array backing the sliced  ] if the slicing metadata implies that all of the bytes are used. Otherwise, it makes a copy. byteslice Variant of D that unconditionally makes a copy of the array backing the sliced  5 even if the original array could be reused. Prefer . bytesliceO(1) Create   from a . bytesliceO(n)a Interpreting the bytes an ASCII-encoded characters, convert the string to lowercase. This adds 0x20 to bytes in the range  [0x41,0x5A]E and leaves all other bytes alone. Unconditionally copies the bytes. bytesliceO(n) Copy a  to a byte sequence._ bytesliceDesired length n bytesliceByte to replicate byteslice&Separator (interspersed into the list) bytesliceList byteslice Separator bytesliceFirst byte sequence bytesliceSecond byte sequence\  !"#)*+,-./0123456QRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~\ QRSYZ[_\]^`fgjim npoe.,1-0/23456+VWabcdXTUuvwxyz{|}~klh!"#qrst)*      !"#$%&'()*+,-./01 2 3 4 5 6 7 8 9 : ; < =>?@ABCDE$"FGHIJ#'%&1K5LMNOAPQRSTUVWXYZ[\]^_`abc+,def-.ghijklmnopqrstuvwxyz{|}I~(byteslice-0.2.4.0-6oGZT4fOWIfAM6B832waOIData.Bytes.Types Data.BytesData.Bytes.MutableData.Bytes.ChunksData.Bytes.Compat UnliftedBytesData.Bytes.Pure Data.Bytes.IOData.Bytes.ByteBytes#UnmanagedBytes$sel:address:UnmanagedBytes$sel:length:UnmanagedBytes MutableBytes$sel:array:MutableBytes$sel:offset:MutableBytes$sel:length:MutableBytesBytes$sel:array:Bytes$sel:offset:Bytes$sel:length:Bytes $fMonoidBytes$fSemigroupBytes $fOrdBytes $fEqBytes $fShowBytes $fIsListBytesempty emptyPinned emptyPinnedUpin toByteArraytoByteArrayClone unsafeCopy fromByteArraylengthfnv1a32fnv1a64foldl'contentstoPinnedByteArraytoPinnedByteArrayClone takeWhile dropWhile unsafeTake unsafeDropfromMutableByteArrayhGethPutcountsplitU splitInitUsplit splitStream splitNonEmpty splitInitsplit1split2split3split4 splitEnd1Chunks ChunksCons ChunksNilnull concatPinnedconcatconcatU concatPinnedUreverse reverseOnto hGetContentsreadFile fromBytes writeFile $fEqChunks$fMonoidChunks$fSemigroupChunks $fShowChunksunconsunsnocisBytePrefixOfisByteSuffixOf isPrefixOf isSuffixOflongestCommonPrefix singleton doubleton tripleton singletonU doubletonU tripletonU replicate replicateU stripPrefixstripOptionalPrefix stripSuffixstripOptionalSuffixelem unsafeIndex dropWhileEnd takeWhileEndfoldlfoldrifoldl'foldr'fromAsciiStringfromLatinString toLatinString fromCString# equalsLatin1 equalsLatin2 equalsLatin3 equalsLatin4 equalsLatin5 equalsLatin6 equalsLatin7 equalsLatin8 equalsLatin9 equalsLatin10 equalsLatin11 equalsLatin12 equalsCStringstripCStringPrefixtouch intercalateintercalateByte2anyall toByteStringtoShortByteStringtoShortByteStringClonefromShortByteStringtoLowerAsciiByteArrayClonefromByteStringcstringLength#(primitive-0.7.1.0-6Ng9GYhvLyE4pBQRYaGxSxData.Primitive.ByteArrayMutableByteArray ByteArraybaseGHC.IO.Handle.TypesHandleGHC.BaseNonEmptyhGetContentsHint GHC.MaybeNothingStringbytestring-0.10.8.2Data.ByteString.Internal ByteStringData.ByteString.Short.InternalShortByteString