úÎ!iÍa†      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…None "#FHSVX!3masonEnvironment for handle outputmason=takes a pointer range and returns the number of bytes written masonBuffer pointersmason)end of the buffer (next to the last byte)masoncurrent positionmasonHThis class is used to provide backend-specific operations for running a .masonPut a †.mason)Flush the content of the internal buffer.mason1Allocate a buffer with at least the given length.mason!Builder specialised for a backendmason/The Builder type. Requires RankNTypes extensionmasonCopy a † to a buffer.masonCopy a ‡ to a buffer.mason Construct a  from a "poke" function.masonTurn a ˆ value into a mason]Ensure that the given number of bytes is available in the buffer. Subject to semigroup fusionmason:Run a builder within a buffer and prefix it by the length.masonUTF-8 encode a ‰.!masonUse Š"masonUse ‹)masonCreate a strict †*masonCreate a lazy Œ. Threaded runtime is required.+masonAllocate a new buffer.,masonWrite a 8 into a handle and obtain the number of bytes written. , does not imply actual disk operations. Set 2 if you want it to write the content immediately.-masonWrite a 6 into a handle and obtain the number of bytes written..masonEncode Ž with a custom escaping function/masonDecimal encoding of a positive .1mason+Round up to the supplied precision inplace.5masonWork with a constant buffer.  will always fail.mason'number of bytes to allocate (if needed)mason#return a next pointer after writingmasonmaximum lengthmasonprefix encoder'masonfillermasonpad if shorter than this1mason precisionmasonavailable digitsmasoncontent2  !"#$%&'()*+,-./012 ) *!"#$%&,.- '(+/01(c) Fumiaki Kinoshita 2019BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com>NoneFSX_[;@9masonPut the content of a  to a .:masonCombine chunks of a lazy Œ;mason"Encode a single signed byte as-is.<mason$Encode a single unsigned byte as-is.=mason Encode an ‘ in little endian format.>mason Encode an ’ in little endian format.?mason Encode an “ in little endian format.@mason Encode a ” in little endian format.Amason Encode a • in little endian format.Bmason Encode a – in little endian format.Cmason Encode a — in little endian format.Dmason Encode a  in little endian format.Emason Encode an ‘ in big endian format.Fmason Encode an ’ in big endian format.Gmason Encode an “ in big endian format.Hmason Encode a ” in big endian format.Imason Encode a • in big endian format.Jmason Encode a – in big endian format.Kmason Encode a — in big endian format.Lmason Encode a  in big endian format.MmasonChar7 encode a ˜.NmasonChar7 encode a ‰.OmasonChar8 encode a ˜.PmasonChar8 encode a ‰.QmasonUTF-8 encode a ˜.RmasonEncode Ž% as a UTF-8 byte stream. Synonym for S.SmasonEncode Ž as a UTF-8 byte stream.TmasonDecimal encoding of a ™ using the ASCII digits.UmasonDecimal encoding of a ” using the ASCII digits.VmasonDecimal encoding of a • using the ASCII digits.WmasonDecimal encoding of a – using the ASCII digits.XmasonDecimal encoding of a š using the ASCII digits.YmasonCurrently slow. Decimal encoding of an IEEE —.ZmasonDecimal encoding of an IEEE .[masonTAttach an SI prefix so that abs(mantissa) is within [1, 1000). Omits c, d, da and h.\masonAlways use exponents]masonFixed precision^masonDecimal encoding of an › using the ASCII digits.e.g. MtoLazyByteString (int8Dec 42) = "42" toLazyByteString (int8Dec (-1)) = "-1"_masonDecimal encoding of an ‘ using the ASCII digits.`masonDecimal encoding of an ’ using the ASCII digits.amasonDecimal encoding of an “ using the ASCII digits.bmasonDecimal encoding of an œ using the ASCII digits.cmason#Shortest hexadecimal encoding of a ™ using lower-case characters.dmason#Shortest hexadecimal encoding of a ” using lower-case characters.emason#Shortest hexadecimal encoding of a • using lower-case characters.fmason#Shortest hexadecimal encoding of a – using lower-case characters.gmason#Shortest hexadecimal encoding of a š using lower-case characters.hmason Encode a ›& using 2 nibbles (hexadecimal digits).imason Encode a ‘ using 4 nibbles.jmason Encode a ’ using 8 nibbles.kmason Encode a “ using 16 nibbles.lmason Encode a ™& using 2 nibbles (hexadecimal digits).mmason Encode a ” using 4 nibbles.nmason Encode a • using 8 nibbles.omason Encode a – using 16 nibbles.pmasonEncode an IEEE — using 8 nibbles.qmasonEncode an IEEE  using 16 nibbles.rmasonEncode each byte of a $ using its fixed-width hex encoding.smasonEncode each byte of a lazy $ using its fixed-width hex encoding.mason6Select an implementation depending on the bit-size of šms. Currently, it produces a runtime failure if the bitsize is different. This is detected by the testsuite.tmasonDecimal encoding of an žE using the ASCII digits. Simon Meier's improved implementation from Uhttps://github.com/haskell/bytestring/commit/92f19a5d94761042b44a433d7331107611e4d717umason-Signed VLQ encoding (the first bit is a sign)wmasonUnsigned VLQ encodingymasonEncode a Word in /https://github.com/stoklund/varint#prefixvarint PrefixVarInt[mason*precision: must be equal or greater than 3\mason number of digits in the mantissa]masondecimal pointsT!"'()*,-.9:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyzT)*,9-:SR.MNOPQ;<=>?@ABCDEFGHIJKLYZ[\]TUVWX^_`abtcdefghijklmnopqrsuvwxyz'("!None`¿{mason¤Builder with a fixed set of backends. This helps reducing code size and unoptimised code especially on complex/recursive structures, at the cost of extensibility. {|}~€‚ƒ„ {|}~€ƒ‚„Ÿ       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€+,;./‚ƒ„ƒ…†‡ˆ‰‡Š‹ƒŒƒŒŽƒ‡‘’“”•–—‡˜‡™š‡™›‡™œ‡ž‡Ÿ‡ •–¡•–¢‡£•–¤‡™¥•–¦§¨©ª« mason-0.2-3SO4gfhyKr3GzIYaeF5esoMason.Builder.Internal Mason.BuilderMason.Builder.DynamicS ByteStringLPutEnv peThresholdpePutpeBufferpeTotalChannelchRespchBuffer GrowingBufferBufferbEndbCur Buildable byteStringflushallocate BuilderForBuilder unBuilderbyteStringCopyshortByteStringwithPtrstorableensurelengthPrefixedWithin stringUtf8cstring cstringUtf8 primBounded primFixedprimMapListFixedprimMapListBoundedprimMapByteStringFixedprimMapLazyByteStringFixedpaddedBoundedPrimzeroPaddedBoundedPrimtoStrictByteStringtoLazyByteStringallocateConstanthPutBuilderLen sendBuilderencodeUtf8BuilderEscaped withGrisu3withGrisu3Rounded roundDigit$fMonoidBuilderFor$fSemigroupBuilderFor$fIsStringBuilderFor $fBuildable()$fBuildableGrowingBuffer$fBuildableChannel$fBuildablePutEnv hPutBuilderlazyByteStringint8word8int16LEint32LEint64LEword16LEword32LEword64LEfloatLEdoubleLEint16BEint32BEint64BEword16BEword32BEword64BEfloatBEdoubleBEchar7string7char8string8charUtf8encodeUtf8BuildertextUtf8word8Dec word16Dec word32Dec word64DecwordDecfloatDec doubleDecdoubleSI doubleExp doubleFixedint8Decint16Decint32Decint64DecintDecword8Hex word16Hex word32Hex word64HexwordHex int8HexFixed int16HexFixed int32HexFixed int64HexFixed word8HexFixedword16HexFixedword32HexFixedword64HexFixed floatHexFixeddoubleHexFixed byteStringHexlazyByteStringHex integerDecintVLQintVLQBPwordVLQ wordVLQBP prefixVarIntprefixVarIntBP DynBuilderDynamicBackendDynGrowingBuffer DynChannel DynPutEnv$fBuildableDynamicBackendbytestring-0.10.8.2Data.ByteString.InternalData.ByteString.Short.InternalShortByteStringbaseForeign.StorableStorableGHC.BaseString%Data.ByteString.Builder.Prim.Internal BoundedPrim FixedPrimData.ByteString.Lazy.InternalGHC.IO.Handle.Types NoBuffering text-1.2.3.1Data.Text.InternalTextghc-prim GHC.TypesDoubleHandleGHC.IntInt16Int32Int64GHC.WordWord16Word32Word64FloatCharWord8WordInt8IntcaseWordSize_32_64 integer-gmpGHC.Integer.TypeInteger