úÎ!$ĹŞ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ Ą˘Ł¤ĽŚ§¨Š Lennart Kolmodin, Ross PatersonBSD3-style (see LICENSE)%Lennart Kolmodin <kolmodin@gmail.com> experimentalportable to Hugs and GHCSafeD2binaryO(1). The empty Builder, satisfying   = ŞbinaryO(1).+ A Builder taking a single byte, satisfying  ( b) = Ť bbinaryO(1).L The concatenation of two Builders, an associative operation with identity  , satisfying  ( x y) = Ź ( x) ( y)binaryO(1). A Builder taking a ­ , satisfying  ( bs) = Ž [bs]binaryO(1). A Builder taking a lazy Ż , satisfying  ( bs) = bsbinaryO(n). A builder taking °& and copy it to a Builder, satisfying@ ( bs) = Ž [ą bs] binary#Write a Word16 in big endian format binary&Write a Word16 in little endian format binary#Write a Word32 in big endian format binary&Write a Word32 in little endian format binary#Write a Word64 in big endian formatbinary&Write a Word64 in little endian formatbinary"Write a Int16 in big endian formatbinary%Write a Int16 in little endian formatbinary"Write a Int32 in big endian formatbinary%Write a Int32 in little endian formatbinary"Write a Int64 in big endian formatbinary%Write a Int64 in little endian formatbinaryO(1).˙; A Builder taking a single native machine word. The word is written in host order, host endian form, for the machine you're on. On a 64 bit machine the Word is an 8 byte value, on a 32 bit machine, 4 bytes. Values written this way are not portable to different endian or word sized machines, without conversion.binary]Write a Word16 in native host order and host endianness. 2 bytes will be written, unaligned.binary]Write a Word32 in native host order and host endianness. 4 bytes will be written, unaligned.binary“Write a Word64 in native host order. On a 32 bit machine we write two host order Word32s, in big endian form. 8 bytes will be written, unaligned.binaryO(1).˙: A Builder taking a single native machine word. The word is written in host order, host endian form, for the machine you're on. On a 64 bit machine the Int is an 8 byte value, on a 32 bit machine, 4 bytes. Values written this way are not portable to different endian or word sized machines, without conversion.binary\Write a Int16 in native host order and host endianness. 2 bytes will be written, unaligned.binary\Write a Int32 in native host order and host endianness. 4 bytes will be written, unaligned.binary‘Write a Int64 in native host order. On a 32 bit machine we write two host order Int32s, in big endian form. 8 bytes will be written, unaligned.binary'Write a character using UTF-8 encoding.binary$Write a String using UTF-8 encoding.    Trustworthy<5ń˛binaryReinterpret-casts a ł to a ´.ľbinaryReinterpret-casts a ´ to a ł.śbinaryReinterpret-casts a ˇ to a ¸.šbinaryReinterpret-casts a ¸ to a ˇ.˛ľśšNone6@şNone DFQTVk_"binary A decoder produced by running a   monad.#binary8The decoder ran into an error. The decoder either used ť" or was not provided enough input.$binaryRThe decoder has consumed the available input and needs more to continue. Provide ź! if more input is available and ˝# otherwise, and you will get a new ".%binarybThe decoder has successfully finished. Except for the output value you also get the unused input.&binaryÄThe decoder needs to know the current position in the input. Given the number of bytes remaning in the decoder, the outer decoder runner needs to calculate the position and resume the decoding.'binaryRun a   monad. See "b for what to do next, like providing input, handling decoding errors and to get the output value.žbinary˛Make sure we don't have to pass Nothing to a Partial twice. This way we don't need to pass around an EOF value in the Get monad, it can safely ask several times if it needs to.(binary1Get the total number of bytes read to this point.)binary­Isolate a decoder to operate with a fixed number of bytes, and fail if fewer bytes were consumed, or more bytes were attempted to be consumed. If the given decoder fails, ) will also fail. Offset from (" will be relative to the start of )!, not the absolute of the input.Since: 0.7.2.0,binaryWTest whether all input has been consumed, i.e. there are no remaining undecoded bytes.-binaryDEPRECATED. Same as 3.żbinaryqRun a decoder and keep track of all the input it consumes. Once it's finished, return the final decoder (always % or #•), and unconsume all the the input the decoder required to run. Any additional chunks which was required to run the decoder will also be returned..binarypRun the given decoder, but without consuming its input. If the given decoder fails, then so will this function.Since: 0.7.0.0/binary@Run the given decoder, and only consume its input if it returns ź. If ˝d is returned, the input will be unconsumed. If the given decoder fails, then so will this function.Since: 0.7.0.00binary@Run the given decoder, and only consume its input if it returns Ŕ. If Ád is returned, the input will be unconsumed. If the given decoder fails, then so will this function.Since: 0.7.1.01binarymLabel a decoder. If the decoder fails, the label will be appended on a new line to the error message string.Since: 0.7.2.02binary˙LDEPRECATED. Get the number of bytes of remaining input. Note that this is an expensive function to use as in order to calculate how much input remains, all input has to be read and kept in-memory. The decoder keeps the input as a strict bytestring, so you are likely better off by calculating the remaining input in another way.3binaryDAn efficient get method for strict ByteStrings. Fails if fewer than n" bytes are left in the input. If n <= 0# then the empty string is returned.4binaryGet the current chunk.5binaryReplace the current chunk.6binaryReturn at least nV bytes, maybe more. If not enough data is available the computation will escape with $.7binaryEnsure that there are at least n< bytes available. If not, the computation will escape with $.8binary readNWith n f where f1 must be deterministic and not have side effects.;binarySince: 0.7.0.0=binarySince: 0.7.1.0)binary)The number of bytes that must be consumedbinaryThe decoder to isolate !"%#$&'()*+,-./012345678 !"%#$&'68()*+4572-,./013Lennart KolmodinBSD3-style (see LICENSE)%Lennart Kolmodin <kolmodin@gmail.com> experimentalportable to Hugs and GHC. TrustworthyDQV­‰,AbinaryAn offset, counted in bytes.Bbinary A decoder procuced by running a   monad.Cbinary8The decoder ran into an error. The decoder either used ťc or was not provided enough input. Contains any unconsumed input and the number of bytes consumed.DbinaryRThe decoder has consumed the available input and needs more to continue. Provide ź! if more input is available and ˝# otherwise, and you will get a new B.Ebinary‹The decoder has successfully finished. Except for the output value you also get any unused input as well as the number of bytes consumed.FbinaryRun a   monad. See B‚ for what to do next, like providing input, handling decoder errors and to get the output value. Hint: Use the helper functions J, K and L.GbinaryRDEPRECATED. Provides compatibility with previous versions of this library. Run a  Š monad and return a tuple with three values. The first value is the result of the decoder. The second and third are the unused input, and the number of consumed bytes.HbinaryRun a   monad and return Á on failure and ŔŹ on success. In both cases any unconsumed input and the number of bytes consumed is returned. In the case of failure, a human-readable error message is included as well.Since: 0.6.4.0Ibinary The simplest interface to run a  4 decoder. If the decoder runs into an error, calls ť%, or runs out of input, it will call Â.JbinaryFeed a B with more input. If the B is E or C it will add the input to ­ of unconsumed input.  F4 myParser `pushChunk` myInput1 `pushChunk` myInput2 KbinaryFeed a B with more input. If the B is E or C it will add the input to  ByteString of unconsumed input.  F( myParser `pushChunks` myLazyByteString LbinaryTell a B* that there is no more input. This passes ˝ to a D2 decoder, otherwise returns the decoder unchanged.Mbinary Skip ahead n bytes. Fails if fewer than n bytes are available.NbinaryBAn efficient get method for lazy ByteStrings. Fails if fewer than n bytes are left in the input.ObinaryŞGet a lazy ByteString that is terminated with a NUL byte. The returned string does not contain the NUL byte. Fails if it reaches the end of input without finding a NUL.PbinaryŁGet the remaining bytes as a lazy ByteString. Note that this can be an expensive function to use as it forces reading all input and keeping the string in-memory.Qbinary!Read a Word8 from the monad stateRbinary!Read an Int8 from the monad stateSbinary"Read a Word16 in big endian formatTbinary%Read a Word16 in little endian formatUbinary"Read a Word32 in big endian formatVbinary%Read a Word32 in little endian formatWbinary"Read a Word64 in big endian formatXbinary%Read a Word64 in little endian formatYbinary#Read an Int16 in big endian format.Zbinary#Read an Int32 in big endian format.[binary#Read an Int64 in big endian format.\binary&Read an Int16 in little endian format.]binary&Read an Int32 in little endian format.^binary&Read an Int64 in little endian format._binaryO(1).Á Read a single native machine word. The word is read in host order, host endian form, for the machine you're on. On a 64 bit machine the Word is an 8 byte value, on a 32 bit machine, 4 bytes.`binaryO(1).? Read a 2 byte Word16 in native host order and host endianness.abinaryO(1).8 Read a Word32 in native host order and host endianness.bbinaryO(1).7 Read a Word64 in native host order and host endianess.cbinaryO(1).V Read a single native machine word in native host order. It works in the same way as _.dbinaryO(1).> Read a 2 byte Int16 in native host order and host endianness.ebinaryO(1).8 Read an Int32 in native host order and host endianness.fbinaryO(1).7 Read an Int64 in native host order and host endianess.gbinaryRead a ł in big endian IEEE-754 format.hbinaryRead a ł" in little endian IEEE-754 format.ibinaryRead a ł$ in IEEE-754 format and host endian.jbinaryRead a ˇ in big endian IEEE-754 format.kbinaryRead a ˇ" in little endian IEEE-754 format.lbinaryRead a ˇ$ in IEEE-754 format and host endian.7 (),-./0123ABECDFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkl7 IHABECDFJKLM,()./013NOPQSUWTVX_`abRYZ[\]^cdefghijklG2-Lennart KolmodinBSD3-style (see LICENSE)%Lennart Kolmodin <kolmodin@gmail.com>stable(Portable to Hugs and GHC. Requires MPTCsSafe;=ăV'mbinary<Put merely lifts Builder into a Writer monad, applied to ().nbinary@The PutM type. A Writer monad over the efficient Builder monoid.rbinaryRun the m monadsbinaryRun the m monad with a serialisertbinaryRun the m+ monad with a serialiser and get its resultubinaryfPop the ByteString we have constructed so far, if any, yielding a new chunk in the result ByteString.vbinary/Efficiently write a byte into the output bufferwbinary6Efficiently write a signed byte into the output bufferxbinary•An efficient primitive to write a strict ByteString into the output buffer. It flushes the current buffer, and writes the argument into a new chunk.ybinaryfWrite a lazy ByteString efficiently, simply appending the lazy ByteString chunks to the output bufferzbinaryWrite ° to the buffer{binary#Write a Word16 in big endian format|binary&Write a Word16 in little endian format}binary#Write a Word32 in big endian format~binary&Write a Word32 in little endian formatbinary#Write a Word64 in big endian format€binary&Write a Word64 in little endian formatbinary#Write an Int16 in big endian format‚binary&Write an Int16 in little endian formatƒbinary#Write an Int32 in big endian format„binary&Write an Int32 in little endian format…binary#Write an Int64 in big endian format†binary&Write an Int64 in little endian format‡binaryO(1).˙0 Write a single native machine word. The word is written in host order, host endian form, for the machine you're on. On a 64 bit machine the Word is an 8 byte value, on a 32 bit machine, 4 bytes. Values written this way are not portable to different endian or word sized machines, without conversion.ˆbinaryO(1).V Write a Word16 in native host order and host endianness. For portability issues see  putWordhost.‰binaryO(1).V Write a Word32 in native host order and host endianness. For portability issues see  putWordhost.ŠbinaryO(1).‹ Write a Word64 in native host order On a 32 bit machine we write two host order Word32s, in big endian form. For portability issues see  putWordhost.‹binaryO(1).˙/ Write a single native machine word. The word is written in host order, host endian form, for the machine you're on. On a 64 bit machine the Int is an 8 byte value, on a 32 bit machine, 4 bytes. Values written this way are not portable to different endian or word sized machines, without conversion.ŒbinaryO(1).V Write an Int16 in native host order and host endianness. For portability issues see  putInthost.binaryO(1).V Write an Int32 in native host order and host endianness. For portability issues see  putInthost.ŽbinaryO(1).Š Write an Int64 in native host order On a 32 bit machine we write two host order Int32s, in big endian form. For portability issues see  putInthost.binaryWrite a ł in big endian IEEE-754 format.binaryWrite a ł" in little endian IEEE-754 format.‘binaryWrite a ł. in native in IEEE-754 format and host endian.’binaryWrite a ˇ in big endian IEEE-754 format.“binaryWrite a ˇ" in little endian IEEE-754 format.”binaryWrite a ˇ. in native in IEEE-754 format and host endian.•binary'Write a character using UTF-8 encoding.–binary$Write a String using UTF-8 encoding.*mnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–*mnopstqruvwxyz{}ƒ…’|~€‚„†“‡ˆ‰Š‹ŒŽ‘”•–Lennart KolmodinBSD3-style (see LICENSE)%Lennart Kolmodin <kolmodin@gmail.com>unstableFportable to Hugs and GHC. Requires the FFI and some flexible instances Trustworthy &',7<FOV œbinaryThe œ class provides  and ž:, methods to encode and decode a Haskell value to a lazy Ż. It mirrors the Ă and Ä€ classes for textual representation of Haskell types, and is suitable for serialising Haskell values to disk, over the network.ŹFor decoding and generating simple external binary formats (e.g. C structures), Binary may be used, but in general is not suitable for complex protocols. Instead use the m and   primitives directly.:Instances of Binary should satisfy the following property: decode . encode == id That is, the ž and i methods should be the inverse of each other. A range of instances are provided for basic Haskell types.binary Encode a value in the Put monad.žbinaryDecode a value in the Get monadŸbinary›Encode a list of values in the Put monad. The default implementation may be overridden to be more efficient but must still have the same encoding format.Ĺbinary'getMany n' get n. elements in order, without blowing the stack.Ćbinary@since 0.8.5.0. See typeable-instancesÇbinary@since 0.8.5.0. See typeable-instancesČbinary@since 0.8.5.0. See typeable-instancesÉbinary@since 0.8.5.0. See typeable-instancesĘbinary@since 0.8.5.0. See typeable-instancesËbinary@since 0.8.5.0. See typeable-instancesĚbinarySince: 0.8.4.0ÍbinarySince: 0.8.4.0ÎbinarySince: 0.8.4.0ĎbinarySince: 0.8.4.0ĐbinarySince: 0.8.4.0ŃbinarySince: 0.8.4.0ŇbinarySince: 0.8.4.0ÓbinarySince: 0.8.4.0ÔbinarySince: 0.8.4.0ŐbinarySince: 0.8.4.0ÖbinarySince: 0.8.4.0×binarySince: 0.8.4.0ŘbinarySince: 0.8.4.0ŮbinarySince: 0.8.4.0ÚbinarySince: 0.8.4.0ŰbinarySince: 0.8.4.0ÜbinarySince: 0.8.0.0ÝbinarySince: 0.7.6.0ŢbinarySince: 0.8.0.0ßbinarySince: 0.8.0.0ŕbinarySince: 0.7.3.0œžŸ Ą˘Ł Bryan O'SullivanBSD3-style (see LICENSE)%Bryan O'Sullivan <bos@serpentine.com>unstable!Only works with GHC 7.2 and newerSafe ;=FSTVLennart KolmodinBSD3-style (see LICENSE)%Lennart Kolmodin <kolmodin@gmail.com>unstableGportable to Hugs and GHC. Requires the FFI and some flexible instances. Trustworthyg¤binary?Encode a value using binary serialisation to a lazy ByteString.ĽbinaryMDecode a value from a lazy ByteString, reconstructing the original structure.Śbinary1Decode a value from a lazy ByteString. Returning Á on failure and ŔŹ on success. In both cases the unconsumed input and the number of consumed bytes is returned. In case of failure, a human-readable error message will be returned as well.Since: 0.7.0.0§binary#Lazily serialise a value to a file.<This is just a convenience function, it's defined simply as: %encodeFile f = B.writeFile f . encode@So for example if you wanted to compress as well, you could use: !B.writeFile f . compress . encode¨binary/Decode a value from a file. In case of errors, Â( will be called with the error message.Since: 0.7.0.0ŠbinaryODecode a value from a file. In case of success, the value will be returned in Ŕ_. In case of decoder errors, the error message together with the byte offset will be returned.áâă´¸äĺć QmvœžŸ Ą˘Ł¤ĽŚ§¨ŠœžŸ Ą˘Ł mvQ¤ĽŚ§¨Šç   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMN/0124OPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvuwxyz{|}~€ !"#$%&'()‚ƒ„…†*+‡ˆ‰Š‹ŒBAŽ‘’“”•–— ˜ ˜ ˜ ™š ˜› œš ž Ÿ Ą˘٤ĽŚ§¨Ą˘ФĽŞŤ ™Ź¤­Ž¤­ݤ­°ą˛¤ł´¤łľ¤śˇ¤¸š¤şťź˝žżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖץ˘ؤĽ٤ĽÚ¤ĽŰ¤ĽÜ¤ĽÝŢ%binary-0.8.6.0-Hp4QtENPVwc9YhoUEhfHbXData.Binary.BuilderData.Binary.Get.InternalData.Binary.GetData.Binary.Put Data.BinaryData.Binary.FloatCastData.Binary.InternalData.Binary.ClassData.Binary.Genericbytestring-0.10.8.2Data.ByteString.BuildertoLazyByteString Data.ByteString.Builder.InternalflushBuilderempty singletonappendfromByteStringfromLazyByteStringfromShortByteString putWord16be putWord16le putWord32be putWord32le putWord64be putWord64le putInt16be putInt16le putInt32be putInt32le putInt64be putInt64le putWordhost putWord16host putWord32host putWord64host putInthost putInt16host putInt32host putInt64host putCharUtf8 putStringUtf8ConsumeGetrunContDecoderFailPartialDone BytesReadrunGetIncremental bytesReadisolatewithInputChunks failOnEOFisEmptygetBytes lookAhead lookAheadM lookAheadElabel remaining getByteStringgetputreadNensureN readNWith $fShowDecoder$fFunctorDecoder$fAlternativeGet $fFunctorGet$fMonadPlusGet$fApplicativeGet$fMonadFailGet $fMonadGet ByteOffset runGetState runGetOrFailrunGet pushChunk pushChunkspushEndOfInputskipgetLazyByteStringgetLazyByteStringNulgetRemainingLazyByteStringgetWord8getInt8 getWord16be getWord16le getWord32be getWord32le getWord64be getWord64le getInt16be getInt32be getInt64be getInt16le getInt32le getInt64le getWordhost getWord16host getWord32host getWord64host getInthost getInt16host getInt32host getInt64host getFloatbe getFloatle getFloathost getDoublebe getDoublele getDoublehostPutPutMunPut putBuilderexecPutrunPutrunPutMputWord8putInt8 putByteStringputLazyByteStringputShortByteString putFloatbe putFloatle putFloathost putDoublebe putDoublele putDoublehost$fSemigroupPutM $fMonoidPutM $fMonadPutM$fApplicativePutM $fFunctorPutMBinaryputList GBinaryGetgget GBinaryPutgputencodedecode decodeOrFail encodeFile decodeFiledecodeFileOrFailData.ByteString.LazyData.ByteString.Internal ByteString fromChunksData.ByteString.Lazy.InternalData.ByteString.Short.InternalShortByteString fromShort floatToWordghc-prim GHC.TypesFloatbaseGHC.WordWord32 wordToFloat doubleToWordDoubleWord64 wordToDoubleaccursedUnutterablePerformIOGHC.BasefailJustNothing noMeansNorunAndKeepTrack Data.EitherRightLeftGHC.ErrerrorGHC.ReadReadGHC.ShowShowgetMany$fBinaryTypeLitSort$fBinaryKindRep $fBinaryTyCon$fBinaryRuntimeRep$fBinaryVecElem$fBinaryVecCount$fBinaryNonEmpty $fBinaryArg$fBinaryWrappedMonoid$fBinaryOption $fBinaryLast $fBinaryFirst $fBinaryMax $fBinaryMin $fBinaryAlt $fBinaryLast0$fBinaryFirst0$fBinaryProduct $fBinarySum $fBinaryAny $fBinaryAll $fBinaryDual$fBinaryVersion$fBinaryFingerprint $fBinaryFixed $fBinaryVoid$fBinaryNaturalWordWord8Word16 byteSwap64 byteSwap32 byteSwap16