úÎ!vAlí¤      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£None'.FHSXî bytebuildNA builder parameterized by the maximum number of bytes it uses when executed. bytebuildConstructor for } that works on a function with lifted arguments instead of unlifted ones. This is just as unsafe as the actual constructor. bytebuildcThis function does not enforce the known upper bound on the size. It is up to the user to do this. bytebuildcThis function does not enforce the known upper bound on the size. It is up to the user to do this. bytebuildgThis function takes a buffer, an offset, and a number of remaining bytes. It returns the new offset.None .FHSUVX_ak›0 bytebuild=Execute the bounded builder. If the size is a constant, use Arithmetic.Nat.constantA as the first argument to let GHC conjure up this value for you. bytebuild±Paste the builder into the byte array starting at offset zero. This reallocates the byte array if it cannot accomodate the builder, growing it by the minimum amount necessary. bytebuildThe monoidal unit of  bytebuildConcatenate two builders.  bytebuild‰Weaken the bound on the maximum number of bytes required. For example, to use two builders with unequal bounds in a disjunctive setting: ¿import qualified Arithmetic.Lte as Lte buildNumber :: Either Double Word64 -> Builder 32 buildNumber = \case Left d -> doubleDec d Right w -> weaken (Lte.constant @19 @32) (word64Dec w)  bytebuild5Replace the upper bound on size with an equal number.  bytebuild¡Encode a double-floating-point number, using decimal notation or scientific notation depending on the magnitude. This has undefined behavior when representing +inf, -inf, and NaNA. It will not crash, but the generated numbers will be nonsense.  bytebuildRequires up to 19 bytes. Encodes an unsigned 64-bit integer as decimal. This encoding never starts with a zero unless the argument was zero.  bytebuildRequires up to 10 bytes. Encodes an unsigned 32-bit integer as decimal. This encoding never starts with a zero unless the argument was zero. bytebuildŒRequires up to 5 bytes. Encodes an unsigned 16-bit integer as decimal. This encoding never starts with a zero unless the argument was zero. bytebuild‹Requires up to 3 bytes. Encodes an unsigned 8-bit integer as decimal. This encoding never starts with a zero unless the argument was zero. bytebuild•Requires up to 19 bytes. Encodes an unsigned machine-sized integer as decimal. This encoding never starts with a zero unless the argument was zero. bytebuildêRequires up to 20 bytes. Encodes a signed 64-bit integer as decimal. This encoding never starts with a zero unless the argument was zero. Negative numbers are preceded by a minus sign. Positive numbers are not preceded by anything. bytebuildêRequires up to 11 bytes. Encodes a signed 32-bit integer as decimal. This encoding never starts with a zero unless the argument was zero. Negative numbers are preceded by a minus sign. Positive numbers are not preceded by anything. bytebuildéRequires up to 6 bytes. Encodes a signed 16-bit integer as decimal. This encoding never starts with a zero unless the argument was zero. Negative numbers are preceded by a minus sign. Positive numbers are not preceded by anything. bytebuildèRequires up to 4 bytes. Encodes a signed 8-bit integer as decimal. This encoding never starts with a zero unless the argument was zero. Negative numbers are preceded by a minus sign. Positive numbers are not preceded by anything. bytebuildñRequires up to 20 bytes. Encodes a signed machine-sized integer as decimal. This encoding never starts with a zero unless the argument was zero. Negative numbers are preceded by a minus sign. Positive numbers are not preceded by anything. bytebuild¨Requires exactly 64 bytes. Encodes a 256-bit unsigned integer as hexadecimal, zero-padding the encoding to 64 digits. This uses lowercase for the alphabetical digits. bytebuild¨Requires exactly 64 bytes. Encodes a 256-bit unsigned integer as hexadecimal, zero-padding the encoding to 64 digits. This uses uppercase for the alphabetical digits. bytebuild¨Requires exactly 32 bytes. Encodes a 128-bit unsigned integer as hexadecimal, zero-padding the encoding to 32 digits. This uses lowercase for the alphabetical digits. bytebuild¨Requires exactly 32 bytes. Encodes a 128-bit unsigned integer as hexadecimal, zero-padding the encoding to 32 digits. This uses uppercase for the alphabetical digits. bytebuildÖRequires exactly 16 bytes. Encodes a 64-bit unsigned integer as hexadecimal, zero-padding the encoding to 16 digits. This uses uppercase for the alphabetical digits. For example, this encodes the number 1022 as 00000000000003FE. bytebuildÖRequires exactly 16 bytes. Encodes a 64-bit unsigned integer as hexadecimal, zero-padding the encoding to 16 digits. This uses lowercase for the alphabetical digits. For example, this encodes the number 1022 as 00000000000003fe. bytebuild¥Requires exactly 8 bytes. Encodes a 32-bit unsigned integer as hexadecimal, zero-padding the encoding to 8 digits. This uses uppercase for the alphabetical digits. bytebuild¥Requires exactly 8 bytes. Encodes a 32-bit unsigned integer as hexadecimal, zero-padding the encoding to 8 digits. This uses lowercase for the alphabetical digits. bytebuild¥Requires exactly 4 bytes. Encodes a 16-bit unsigned integer as hexadecimal, zero-padding the encoding to 4 digits. This uses uppercase for the alphabetical digits.word16PaddedUpperHex 0xab00AB0 bytebuild¥Requires exactly 4 bytes. Encodes a 16-bit unsigned integer as hexadecimal, zero-padding the encoding to 4 digits. This uses lowercase for the alphabetical digits.word16PaddedLowerHex 0xab00ab0  bytebuildÆRequires at most 4 bytes. Encodes a 16-bit unsigned integer as hexadecimal. No leading zeroes are displayed. Letters are presented in lowercase. If the number is zero, a single zero digit is used.word16LowerHex 0xab0ab0! bytebuildÆRequires at most 4 bytes. Encodes a 16-bit unsigned integer as hexadecimal. No leading zeroes are displayed. Letters are presented in uppercase. If the number is zero, a single zero digit is used.word16UpperHex 0xab0AB0" bytebuild¡Requires at most 2 bytes. Encodes a 8-bit unsigned integer as hexadecimal. No leading zeroes are displayed. If the number is zero, a single zero digit is used.# bytebuild¤Requires exactly 2 bytes. Encodes a 8-bit unsigned integer as hexadecimal, zero-padding the encoding to 2 digits. This uses uppercase for the alphabetical digits.$ bytebuild¤Requires exactly 2 bytes. Encodes a 8-bit unsigned integer as hexadecimal, zero-padding the encoding to 2 digits. This uses lowercase for the alphabetical digits.% bytebuildpEncode a number less than 100 as a decimal number, zero-padding it to two digits. For example: 0 is encoded as 00, 5 is encoded as 05, and 73 is encoded as 73.ðPrecondition: Argument must be less than 100. Failure to satisfy this precondition will not result in a segfault, but the resulting bytes are undefined. The implemention uses a heuristic for division that is inaccurate for large numbers.& bytebuildrEncode a number less than 10000 as a decimal number, zero-padding it to two digits. For example: 0 is encoded as 0000, 5 is encoded as 0005, and 73 is encoded as 0073.òPrecondition: Argument must be less than 10000. Failure to satisfy this precondition will not result in a segfault, but the resulting bytes are undefined. The implemention uses a heuristic for division that is inaccurate for large numbers.' bytebuildqEncode a number less than 1e9 as a decimal number, zero-padding it to nine digits. For example: 0 is encoded as  000000000 and 5 is encoded as  000000005.ðPrecondition: Argument must be less than 1e9. Failure to satisfy this precondition will not result in a segfault, but the resulting bytes are undefined. The implemention uses a heuristic for division that is inaccurate for large numbers.( bytebuild`Encode an ASCII character. Precondition: Input must be an ASCII character. This is not checked.) bytebuild]Encode two ASCII characters. Precondition: Must be an ASCII characters. This is not checked.* bytebuild_Encode three ASCII characters. Precondition: Must be an ASCII characters. This is not checked.+ bytebuild^Encode four ASCII characters. Precondition: Must be an ASCII characters. This is not checked., bytebuild^Encode five ASCII characters. Precondition: Must be an ASCII characters. This is not checked.- bytebuild]Encode six ASCII characters. Precondition: Must be an ASCII characters. This is not checked.. bytebuildIEncode a character as UTF-8. This only uses as much space as is required.9 bytebuildWRequires exactly 8 bytes. Dump the octets of a 64-bit word in a little-endian fashion.: bytebuildTRequires exactly 8 bytes. Dump the octets of a 64-bit word in a big-endian fashion.; bytebuildWRequires exactly 4 bytes. Dump the octets of a 32-bit word in a little-endian fashion.< bytebuildTRequires exactly 4 bytes. Dump the octets of a 32-bit word in a big-endian fashion.= bytebuildWRequires exactly 2 bytes. Dump the octets of a 16-bit word in a little-endian fashion.> bytebuildTRequires exactly 2 bytes. Dump the octets of a 16-bit word in a big-endian fashion. bytebuildBuilder bytebuild:Initial buffer, used linearly. Do not reuse this argument. bytebuild*Final buffer that accomodated the builder.<  !"#$%&'()*+,-./0123456789:;<=>?<  !$#"()*+,-.%&'?86:<>/01759;=234 9 None "FSX_d½6 F bytebuildRAn unmaterialized sequence of bytes that may be pasted into a mutable byte array.H bytebuild@Run a builder, performing an in-place update on the state. The  BuilderStatec argument must not be reused after being passed to this function. That is, its use must be affine.I bytebuild Variant of H that runs in ¤.J bytebuild@Add the total number of bytes in the commits to first argument.K bytebuildCons the chunks from a list of Commits onto an initial Chunks list (this argument is often  ChunksNilW). This reverses the order of the chunks, which is desirable since builders assemble Commits™ with the chunks backwards. This performs an in-place shrink and freezes any mutable byte arrays it encounters. Consequently, these must not be reused.L bytebuild Variant of Kê that does not reverse the order of the commits. Since commits are built backwards by consing, this means that the chunks appended to the front will be backwards. Within each chunk, however, the bytes will be in the correct order.Unlike K', this function is not tail recursive.M bytebuild¼Copy the contents of the chunks into a mutable array, reversing the order of the chunks. Precondition: The destination must have enough space to house the contents. This is not checked.N bytebuild%Create a builder from a cons-list of ¥. These are be UTF-8 encoded.O bytebuildCreate a builder from a NUL -terminated ¦:. This ignores any textual encoding, copying bytes until NUL is reached.A bytebuild+Mutable buffer, start index implicitly zero bytebuild*Length (may be smaller than actual length)B bytebuildImmutable chunk bytebuild'Offset into chunk, not necessarily zero bytebuild*Length (may be smaller than actual length)M bytebuild Destination bytebuildDestination range successor bytebuildSourceP bytebuild0Maximum number of bytes the paste function needs bytebuildoPaste function. Takes a byte array and an offset and returns the new offset and having pasted into the buffer.@CABDEFGHIJKLMNOPFGDE@CABHIPKLMJNONone ".FSX_djQAT bytebuildRun a builder.U bytebuildeRun a builder. The resulting chunks are consed onto the beginning of an existing sequence of chunks.V bytebuild Variant of U6 that conses the additional chunks in reverse order. W bytebuildÃRun a builder against lots of elements. This fills the same underlying buffer over and over again. Do not let the argument to the callback escape from the callback (i.e. do not write it to an IORef). Also, do not unsafeFreezeByteArraym any of the mutable byte arrays in the callback. The intent is that the callback will write the buffer out.X bytebuild Variant of WØ that prefixes each pushed array of chunks with the number of bytes that the chunks in each batch required. (This excludes the bytes required to encode the length itself.) This is useful for chunked HTTP encoding.Y bytebuildOConvert a bounded builder to an unbounded one. If the size is a constant, use Arithmetic.Nat.constantA as the first argument to let GHC conjure up this value for you.Z bytebuildBCreate a builder from an unsliced byte sequence. Implemented with \.[ bytebuild;Create a builder from a short bytestring. Implemented with \.\ bytebuild<Create a builder from a sliced byte sequence. The variants ] and `© provide more control over whether or not the byte sequence is copied or aliased. This function is preferred when the user does not know the size of the byte sequence.] bytebuildICreate a builder from a byte sequence. This always results in a call to memcpyX. This is beneficial when the byte sequence is known to be small (less than 256 bytes).^ bytebuildrCreate a builder from a C string with explicit length. The builder must be executed before the C string is freed._ bytebuildOCreate a builder from two byte sequences. This always results in two calls to memcpyZ. This is beneficial when the byte sequences are known to be small (less than 256 bytes).` bytebuild8Create a builder from a byte sequence. This never calls memcpyÀ. Instead, it pushes a chunk that references the argument byte sequence. This wastes the remaining space in the active chunk, so it may adversely affect performance if used carelessly. See £Œ for a way to mitigate this problem. This functions is most beneficial when the byte sequence is known to be large (more than 8192 bytes).a bytebuild-Create a builder from a slice of an array of §. There is the same as \J but is provided as a convenience for users working with different types.¨ bytebuildConstructor for F} that works on a function with lifted arguments instead of unlifted ones. This is just as unsafe as the actual constructor.r bytebuild;Create a builder from text. The text will be UTF-8 encoded.s bytebuild°Create a builder from text. The text will be UTF-8 encoded, and JSON special characters will be escaped. Additionally, the result is surrounded by double quotes. For example: foo ==> "foo" (no escape sequences)\_"_/ ==> "\\_\"_/"! (escapes backslashes and quotes)&hello<ESC>world ==> "hello\u001Bworld" (where <ESC> is code point 0x1B)t bytebuilduEncodes an unsigned 64-bit integer as decimal. This encoding never starts with a zero unless the argument was zero.u bytebuilduEncodes an unsigned 16-bit integer as decimal. This encoding never starts with a zero unless the argument was zero.v bytebuilduEncodes an unsigned 16-bit integer as decimal. This encoding never starts with a zero unless the argument was zero.w bytebuildtEncodes an unsigned 8-bit integer as decimal. This encoding never starts with a zero unless the argument was zero.x bytebuild|Encodes an unsigned machine-sized integer as decimal. This encoding never starts with a zero unless the argument was zero.y bytebuild¡Encode a double-floating-point number, using decimal notation or scientific notation depending on the magnitude. This has undefined behavior when representing +inf, -inf, and NaNA. It will not crash, but the generated numbers will be nonsense.z bytebuildÑEncodes a signed 64-bit integer as decimal. This encoding never starts with a zero unless the argument was zero. Negative numbers are preceded by a minus sign. Positive numbers are not preceded by anything.{ bytebuildÑEncodes a signed 32-bit integer as decimal. This encoding never starts with a zero unless the argument was zero. Negative numbers are preceded by a minus sign. Positive numbers are not preceded by anything.| bytebuildÑEncodes a signed 16-bit integer as decimal. This encoding never starts with a zero unless the argument was zero. Negative numbers are preceded by a minus sign. Positive numbers are not preceded by anything.} bytebuildÐEncodes a signed 8-bit integer as decimal. This encoding never starts with a zero unless the argument was zero. Negative numbers are preceded by a minus sign. Positive numbers are not preceded by anything.~ bytebuildØEncodes a signed machine-sized integer as decimal. This encoding never starts with a zero unless the argument was zero. Negative numbers are preceded by a minus sign. Positive numbers are not preceded by anything. bytebuild¹Encode a 64-bit unsigned integer as hexadecimal, zero-padding the encoding to 16 digits. This uses uppercase for the alphabetical digits. For example, this encodes the number 1022 as 00000000000003FE.€ bytebuild¸Encode a 32-bit unsigned integer as hexadecimal, zero-padding the encoding to 8 digits. This uses uppercase for the alphabetical digits. For example, this encodes the number 1022 as 000003FE. bytebuild¸Encode a 16-bit unsigned integer as hexadecimal, zero-padding the encoding to 4 digits. This uses uppercase for the alphabetical digits. For example, this encodes the number 1022 as 03FE.‚ bytebuild¸Encode a 16-bit unsigned integer as hexadecimal, zero-padding the encoding to 4 digits. This uses lowercase for the alphabetical digits. For example, this encodes the number 1022 as 03fe.ƒ bytebuild¨Encode a 16-bit unsigned integer as hexadecimal without leading zeroes. This uses lowercase for the alphabetical digits. For example, this encodes the number 1022 as 3fe.„ bytebuild¨Encode a 16-bit unsigned integer as hexadecimal without leading zeroes. This uses uppercase for the alphabetical digits. For example, this encodes the number 1022 as 3FE.… bytebuild¨Encode a 16-bit unsigned integer as hexadecimal without leading zeroes. This uses lowercase for the alphabetical digits. For example, this encodes the number 1022 as 3FE.† bytebuildµEncode a 8-bit unsigned integer as hexadecimal, zero-padding the encoding to 2 digits. This uses uppercase for the alphabetical digits. For example, this encodes the number 11 as 0B.‡ bytebuild[Encode an ASCII char. Precondition: Input must be an ASCII character. This is not checked.ˆ bytebuild]Encode two ASCII characters. Precondition: Must be an ASCII characters. This is not checked.‰ bytebuild_Encode three ASCII characters. Precondition: Must be an ASCII characters. This is not checked.Š bytebuild^Encode four ASCII characters. Precondition: Must be an ASCII characters. This is not checked.‹ bytebuild^Encode five ASCII characters. Precondition: Must be an ASCII characters. This is not checked.Œ bytebuild^Encode five ASCII characters. Precondition: Must be an ASCII characters. This is not checked. bytebuildAEncode a UTF-8 char. This only uses as much space as is required.Ž bytebuildaRequires exactly 8 bytes. Dump the octets of a 64-bit signed integer in a little-endian fashion. bytebuildaRequires exactly 4 bytes. Dump the octets of a 32-bit signed integer in a little-endian fashion. bytebuildaRequires exactly 2 bytes. Dump the octets of a 16-bit signed integer in a little-endian fashion.‘ bytebuild^Requires exactly 8 bytes. Dump the octets of a 64-bit signed integer in a big-endian fashion.’ bytebuild^Requires exactly 4 bytes. Dump the octets of a 32-bit signed integer in a big-endian fashion.“ bytebuild^Requires exactly 2 bytes. Dump the octets of a 16-bit signed integer in a big-endian fashion.” bytebuildYRequires exactly 32 bytes. Dump the octets of a 256-bit word in a little-endian fashion.• bytebuildYRequires exactly 16 bytes. Dump the octets of a 128-bit word in a little-endian fashion.– bytebuildWRequires exactly 8 bytes. Dump the octets of a 64-bit word in a little-endian fashion.— bytebuildWRequires exactly 4 bytes. Dump the octets of a 32-bit word in a little-endian fashion.˜ bytebuildWRequires exactly 2 bytes. Dump the octets of a 16-bit word in a little-endian fashion.™ bytebuildVRequires exactly 32 bytes. Dump the octets of a 256-bit word in a big-endian fashion.š bytebuildVRequires exactly 16 bytes. Dump the octets of a 128-bit word in a big-endian fashion.› bytebuildTRequires exactly 8 bytes. Dump the octets of a 64-bit word in a big-endian fashion.œ bytebuildTRequires exactly 4 bytes. Dump the octets of a 32-bit word in a big-endian fashion. bytebuildTRequires exactly 2 bytes. Dump the octets of a 16-bit word in a big-endian fashion.ž bytebuildRequires exactly 1 byte.Ÿ bytebuild;Prefix a builder with the number of bytes that it requires.  bytebuild Variant of ¡4 the encodes the length in a little-endian fashion.¡ bytebuildøPrefix a builder with its size in bytes. This size is presented as a big-endian 32-bit word. The need to prefix a builder with its length shows up a numbers of wire protocols including those of PostgreSQL and Apache Kafka. Note the equivalence: Žforall (n :: Int) (x :: Builder). let sz = sizeofByteArray (run n (consLength32BE x)) consLength32BE x === word32BE (fromIntegral sz) <> xHowever, using ¡= is much more efficient here since it only materializes the © once.¢ bytebuildbPrefix a builder with its size in bytes. This size is presented as a big-endian 64-bit word. See ¡.£ bytebuildÎPush the buffer currently being filled onto the chunk list, allocating a new active buffer of the requested size. This is helpful when a small builder is sandwhiched between two large zero-copy builders: 3insert bigA <> flush 1 <> word8 0x42 <> insert bigBWithout flush 1,  word8 0x42- would see the zero-byte active buffer that `| returned, decide that it needed more space, and allocate a 4080-byte buffer to which only a single byte would be written.T bytebuild-Size of initial chunk (use 4080 if uncertain) bytebuildBuilderU bytebuild-Size of initial chunk (use 4080 if uncertain) bytebuildBuilderV bytebuild-Size of initial chunk (use 4080 if uncertain) bytebuildBuilderW bytebuild,Size of shared chunk (use 8176 if uncertain) bytebuild Value builder bytebuildCollection of values bytebuildConsume chunks.X bytebuild7Number of bytes used by the serialization of the length bytebuildLength serialization function bytebuild,Size of shared chunk (use 8176 if uncertain) bytebuild Value builder bytebuildCollection of values bytebuildConsume chunks.Ÿ bytebuild7Number of bytes used by the serialization of the length bytebuildLength serialization function bytebuild Builder whose length is measuredSFNOTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£SFYTUVWX\]_`Z[rsO^Ntuvwxz{|}~€‚ƒ„†…‡ˆ‰Š‹Œž™š›œ‘’“”•–—˜ŽaqomikcegpnlhjbdfŸ ¡¢y£ª      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHHIJKLMNOPQR STUVWXYZ[\]^_`abcdefghijklmnopq "#$%&',-./012678345;9=?A<:>@BCrstuvwxywxz{|}{~€‚ƒ„(bytebuild-0.3.4.0-9fgT3UnHkCtGkcINApaFgY!Data.Bytes.Builder.Bounded.UnsafeData.Bytes.Builder.BoundedData.Bytes.Builder.UnsafeData.Bytes.BuilderBuilder constructpasteSTpasteIOrun pasteGrowSTemptyappendweaken substitute doubleDec word64Dec word32Dec word16Decword8DecwordDecint64Decint32Decint16Decint8DecintDecword256PaddedLowerHexword256PaddedUpperHexword128PaddedLowerHexword128PaddedUpperHexword64PaddedUpperHexword64PaddedLowerHexword32PaddedUpperHexword32PaddedLowerHexword16PaddedUpperHexword16PaddedLowerHexword16LowerHexword16UpperHex word8LowerHexword8PaddedUpperHexword8PaddedLowerHexwordPaddedDec2wordPaddedDec4wordPaddedDec9asciiascii2ascii3ascii4ascii5ascii6charint64BEint32BEint16BEint64LEint32LEint16LE word128LE word128BE word256LE word256BEword64LEword64BEword32LEword32BEword16LEword16BEword8CommitsMutable ImmutableInitial BuilderStateaddCommitsLengthreverseCommitsOntoChunkscommitsOntoChunkscopyReverseCommits stringUtf8cstring fromEffect$fMonoidBuilder$fSemigroupBuilder$fIsStringBuilderrunOnto reversedOntoputManyputManyConsLength fromBounded byteArrayshortByteStringbytescopy cstringLencopy2insert word8Array int64ArrayLE int64ArrayBE int32ArrayLE int32ArrayBE int16ArrayLE int16ArrayBEword128ArrayLEword128ArrayBEword256ArrayLEword256ArrayBE word64ArrayLE word64ArrayBE word32ArrayLE word32ArrayBE word16ArrayLE word16ArrayBE shortTextUtf8shortTextJsonString consLengthconsLength32LEconsLength32BEconsLength64BEflushghc-prim GHC.TypesIOCharbaseForeign.C.StringCStringGHC.WordWord8 fromFunction(primitive-0.7.0.0-9xMM76CsovTEGnXCHiCdRJData.Primitive.ByteArray ByteArray