|vF      !"#$%&'()*+,-./0123456789:;<=>?@ABCDE BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalunknownNone3;FGHIFGHIFGHI BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalunknown Safe-Inferred Jswap endianness on a Word16K6Transform a 32 bit value bytes from a.b.c.d to d.c.b.aLFTransform a 64 bit value bytes from a.b.c.d.e.f.g.h to h.g.f.e.d.c.b.aM#16 bit little endian to host endianN#32 bit little endian to host endianO#64 bit little endian to host endianP 16 bit big endian to host endianQ 32 bit big endian to host endianR 64 bit big endian to host endian JKLMNOPQRMNOPQR JKLMNOPQR BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalunknownNone+BbA Hole represent something that need to be filled later, for example a CRC, a prefixed size, etc.]They need to be filled before the end of the package, otherwise an exception will be raised.OException when isolate doesn't consume all the bytes passed in the sub unpacker<Exception when trying to get bytes out of the memory bounds.SOException when trying to finalize the packing monad that still have holes open.<Exception when trying to put bytes out of the memory bounds.Unpacking monad Packing monadT0Represent a memory block with a ptr as beginningU4run an action to transform a number of bytes into a a/ and increment the pointer by number of bytes.Vsimilar U but does boundary checking.W8Isolate a number of bytes to run an unpacking operation.GIf the unpacking doesn't consume all the bytes, an exception is raised.XCSimilar to unpackUnsafeActRef except that it throw the foreign ptr.YBSimilar to unpackCheckActRef except that it throw the foreign ptr. Set the new position from the beginning in the memory block. This is useful to skip bytes or when using absolute offsets from a header or some such. %Get the position in the memory block.Z$Return the number of remaining bytes[9Allow to look into the memory. This is inherently unsafe\0run a pack action on the internal packed buffer.] modify holes %Get the position in the memory block.^0Put a Hole of a specific size for filling later. Fill a hole with a valueATODO: user can use one hole many times leading to wrong counting.6_S`abcdTefghijklmnUnumber of bytesVWXY Z[,callback with current position and byte left\] ^ opqrstuvwxyz{S`abcdTeUVWXY Z[\ ^ ,_S`abcdTefghijklmnUVWXY Z[\] ^ opqrstuvwxyz{ BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalunknownNone /Run packing on an arbitrary buffer with a size.This is available, for example to run on mmap typed memory, and this is highly unsafe, as the user need to make sure the pointer and size passed to this function are correct.1Run unpacking on an arbitrary buffer with a size.This is available, for example to run on mmap typed memory, and this is highly unsafe, as the user need to make sure the pointer and size passed to this function are correct. &Pointer to the beginning of the memorySize of the memoryPacking actionNumber of bytes filledThe initial block of memory&Starting offset in the block of memorySizeUnpacking action    BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalunknownNoneBUnpack a bytestring using a monadic unpack action in the IO monad. Similar to / but catch exception and return an Either type.\Run packing with a buffer created internally with a monadic action and return the bytestring BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalunknownNone8|9Peek and do an action on the result. just for convenience Skip bytes Get a Word8#Get a Word16 in the host endianess.UIt's recommended to use an explicit endianness (LE or BE) when unserializing format.)Get a Word16 serialized in little endian.&Get a Word16 serialized in big endian.#Get a Word32 in the host endianess.UIt's recommended to use an explicit endianness (LE or BE) when unserializing format.)Get a Word32 serialized in little endian.&Get a Word32 serialized in big endian.#Get a Word64 in the host endianess.UIt's recommended to use an explicit endianness (LE or BE) when unserializing format.)Get a Word64 serialized in little endian.&Get a Word64 serialized in big endian.-Read a Float in little endian IEEE-754 format*Read a Float in big endian IEEE-754 format.Read a Double in little endian IEEE-754 format +Read a Double in big endian IEEE-754 format!+Get a number of bytes in bytestring format.The original block of memory is expected to live for the life of this bytestring, and this is done so by holding the original ForeignPtr." Similar to ! but copy the bytes to a new bytestring without making reference to the original memory after the copy. this allow the original block of memory to go away.#Get the remaining bytes.$cGet the remaining bytes but copy the bytestring and drop any reference from the original function.%1Get a number of bytes until in bytestring format.!this could be made more efficient&9Get an arbitrary type with the Storable class constraint.yThe Storage method for sizeOf need to be constant size related to the type. It cannot use any fields to define its size.wThe sizeOf method is always going to be called with undefined, so make sure sizeOf doesn't need the value of the type.'kIsolate N bytes from the unpacking, and create an isolated context where only those N bytes are available.dIf the sub unpacker doesn't consume all the bytes available, this function will raises an exception( Put a Word8)Put a Word8 Hole*#Put a Word16 in the host endianess.SIt's recommended to use an explicit endianness (LE or BE) when serializing format.+)Put a Word16 serialized in little endian.,&Put a Word16 serialized in big endian.}Put a Word16 Hole- Put a Word16 Hole in host endian.Put a Word16 Hole in big endian/"Put a Word16 Hole in little endian0#Put a Word32 in the host endianess.SIt's recommended to use an explicit endianness (LE or BE) when serializing format.1)Put a Word32 serialized in little endian.2&Put a Word32 serialized in big endian.~Put a Word32 Hole3 Put a Word32 Hole in host endian4Put a Word32 Hole in big endian5"Put a Word32 Hole in little endian6#Put a Word64 in the host endianess.SIt's recommended to use an explicit endianness (LE or BE) when serializing format.7)Put a Word64 serialized in little endian.8&Put a Word64 serialized in big endian.Put a Word64 Hole9 Put a Word64 Hole in host endian:Put a Word64 Hole in big endian;"Put a Word64 Hole in little endian<.Write a Float in little endian IEEE-754 format=+Write a Float in big endian IEEE-754 format>/Write a Double in little endian IEEE-754 format?,Write a Double in big endian IEEE-754 format@Put a Bytestring.A9Put an arbitrary type with the Storable class constraint.B2Unpack a bytestring using a monadic unpack action.C Similar to BF but returns an Either type with an exception type in case of failure.D\Run packing with a buffer created internally with a monadic action and return the bytestringE\Run packing with a buffer created internally with a monadic action and return the bytestring9| !"#$%&'()*+,}-./012~3456789:;<=>?@ABCDEA  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEABCED !"%#$& ' ()*+,-/.0123546789;:@A<=>? 9| !"#$%&'()*+,}-./012~3456789:;<=>?@ABCDE        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abW c dXefghijklmnopqrstuvwxyz{|}~ packer-0.1.8 Data.PackerData.Packer.UnsafeData.Packer.IOData.Packer.IEEE754Data.Packer.EndianData.Packer.InternalHoleIsolationNotFullyConsumedOutOfBoundUnpackingOutOfBoundPacking UnpackingPackingunpackSetPositionunpackGetPositionpackGetPositionfillHole runPackingAtrunUnpackingAtrunUnpackingIOtryUnpackingIO runPackingIO unpackSkipgetWord8 getWord16 getWord16LE getWord16BE getWord32 getWord32LE getWord32BE getWord64 getWord64LE getWord64BE getFloat32LE getFloat32BE getFloat64LE getFloat64BEgetBytes getBytesCopy getRemaininggetRemainingCopy getBytesWhile getStorableisolateputWord8 putHoleWord8 putWord16 putWord16LE putWord16BE putHoleWord16putHoleWord16BEputHoleWord16LE putWord32 putWord32LE putWord32BE putHoleWord32putHoleWord32BEputHoleWord32LE putWord64 putWord64LE putWord64BE putHoleWord64putHoleWord64BEputHoleWord64LE putFloat32LE putFloat32BE putFloat64LE putFloat64BEputBytes putStorable runUnpacking tryUnpacking runPackingRes runPacking wordToFloat floatToWord wordToDouble doubleToWordswap16swap32swap64le16Hostle32Hostle64Hostbe16Hostbe32Hostbe64Host HoleInPackingMemoryunpackUnsafeActRefunpackCheckActRef unpackIsolateunpackUnsafeActunpackCheckActunpackGetNbRemainingunpackLookahead packCheckAct modifyHolespackHole runUnpacking_ runPacking_ bindPacking fmapPacking returnPacking apPackingtryRunUnpacking bindUnpacking fmapUnpackingreturnUnpacking apUnpacking$$fExceptionIsolationNotFullyConsumed$fExceptionOutOfBoundUnpacking$fExceptionHoleInPacking$fExceptionOutOfBoundPacking$fAlternativeUnpacking$fApplicativeUnpacking$fFunctorUnpacking$fMonadIOUnpacking$fMonadUnpacking$fApplicativePacking$fFunctorPacking$fMonadIOPacking$fMonadPackingpeekAndputHoleWord16_putHoleWord32_putHoleWord64_ unsafeDoIO