úÎUPPNN      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLM  BSD-style"capsjac <capsjac at gmail dot com> ExperimentalGHC onlyNone3NN BSD-style"capsjac <capsjac at gmail dot com> ExperimentalPortable Safe-Inferred OSwap endianness on a Word16.PSwap endianness on a Word32.QSwap endianness on a Word64.!16 bit big endian to host endian.!32 bit big endian to host endian.!64 bit big endian to host endian.$16 bit little endian to host endian.$32 bit little endian to host endian. $64 bit little endian to host endian. OPQ    OPQ  BSD-style"capsjac <capsjac at gmail dot com> ExperimentalPortableNone24E &Bidirectional packing/unpacking Monad. A  , recieves one value to pack and returns one  1 which is used to unpack the value of same type.1Derived from lens package. Bidirectional mapping. for Storable types.Generate a fixed-length  .Generate a variable-length  .BUnpackers should not read out of memory, so check the border here.#Get a pointer to the head of given R.      BSD-style"capsjac <capsjac at gmail dot com> ExperimentalPortableNone5(Unpacker only) Get the position in the memory block.7(Unpacker only) Get the total size of the memory block.@(Unpacker only) Get a number of bytes to go in the memory block.a(Unpacker only) Return True if source ByteString is fully consumed or target ByteString is full.SS BSD-style"capsjac <capsjac at gmail dot com> ExperimentalPortableNone#Skip bytes, filling with NUL bytes.(Skip bytes, filling with specified byte.9(Unpacker only) Adjust alignment, filling with NUL bytes.>(Unpacker only) Adjust alignment, filling with specified byte. BSD-style"capsjac <capsjac at gmail dot com> ExperimentalPortableNoneA Data.Vector.Generic  ,. Get and put an array of arbitary type of  s. A Data.Vector.Storable  . Read operation is copy-free.! Similar to   but copy the bytes."A T   . Note that T5 must not be used to store variable sized structures.#Represent a simple enum field.$A dirty hack to handle unions. Ôtag <- i32 (getTagId dat) let getcase tag = case tag of 0 -> A <$> i32 undefined 1 -> B <$> f32 undefined let putcase dat = case dat of A i -> i32 i B f -> f32 f val <- dicase (getcase tag) (putcase data) !"#$ !"#$ !"#$ BSD-style"capsjac <capsjac at gmail dot com> ExperimentalPortableNone%A U  .&A V   serialized in little endian.'A V   in the host endianness.(A V   serialized in big endian.)A W   serialized in little endian.*A W   in the host endianness.+A W   serialized in big endian.,A X   serialized in little endian.-A X   in the host endianness..A X   serialized in big endian./A host pointer-sized Y   in the host endianness.0A Z  .1A [   serialized in little endian.2A [   in the host endianness.3A [   serialized in big endian.4A \   serialized in little endian.5A \   in the host endianness.6A \   serialized in big endian.7A ]   serialized in little endian.8A ]   in the host endianness.9A ]   serialized in big endian.:A host pointer-sized ^   in the host endianness.; A IEEE754-_   serialized in little endian.< A IEEE754-`   serialized in little endian.= A IEEE754-_   in the host endianness.> A IEEE754-`   in the host endianness.? A IEEE754-_   serialized in big endian.@ A IEEE754-`   serialized in big endian.%&'()*+,-./0123456789:;<=>?@%&'()*+,-./0123456789:;<=>?@%&'()*+,-./0123456789:;<=>?@  BSD-style"capsjac <capsjac at gmail dot com> ExperimentalPortableNone A(Slice a number of bytes from the source RU. The original block of memory is expected to live for the life of this ByteString.B'Copy a number of bytes from the source R. Similar to A8 but this allow the original block of memory to go away.CCa, applied to a predicate p, returns the longest prefix (possibly empty) of bytes that satisfy p.DDf slices remaining ByteString at the first occurence of the specified byte. It is more efficient than C& as it is implemented with memchr(3).ESlice the remaining bytes.F Similar to E but copy the remaining bytes.G&Variable-length NUL terminated string.H€Fixed-length (possibly) NUL terminated string field. Longer string will be trimmed and shorter one will be padded out with NUL.I%Constant block of packet. Similar to unused™ but specified ByteString will be used to fill out rather than NUL bytes. Additionally, read content is compared to the value and mismatch is reported. ABCDEFGHIa ABCDEFGHI ABCDEFGHIa BSD-style"capsjac <capsjac at gmail dot com> Experimental GHC, UnknownNoneHMJPack with a monadic action (  a) and return the R. K Unpack a R using a  .LPrism from lens package.MReadme.JKLM:  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLM:JKLM %&),0147(+.369'*-/258:;<?@=>ABCDGHIEF !"#$JKLMb     !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHI J K L M N O P Q RSTUVWXYZ[\]^_`a_bc_bd_be_bfghi_jk_jl_jm_jnghoghpghq rs pack-0.4.0Data.Pack.IEEE754Data.Pack.EndiannessData.Pack.Packet Data.PackData.Pack.UtilsData.Pack.SpaceData.Pack.StructureData.Pack.PrimitivesData.Pack.ByteString wordToFloat floatToWord wordToDouble doubleToWordbe16Hostbe32Hostbe64Hostle16Hostle32Hostle64HostPacketunPacketPackerdimapPsimple fixedPacket asymmPacketcheckBdrgetTop $fMonadPacket$fApplicativePacket$fFunctorPacket getPosition getTotalSize getRemainingisFullunusedpad alignedTo alignedWithvectorarray arrayCopystorableenumOfdicasei8i16i16hosti16bi32i32hosti32bi64i64hosti64biptrsizeu8u16u16hostu16bu32u32hostu32bu64u64hostu64buptrsizef32f64f32hostf64hostf32bf64bbytes bytesCopy bytesWhile bytesUntilremainingBytesremainingBytesCopycstringvarchar signaturepacking unpackingpacketpactestcastswap16swap32swap64bytestring-0.10.4.0Data.ByteString.Internal ByteString mkInfoPacketbaseForeign.StorableStorableGHC.IntInt8Int16Int32Int64ghc-prim GHC.TypesIntGHC.WordWord8Word16Word32Word64WordFloatDoublesimpleBS