![JU      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ !!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""##############################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%% % % % % %%%%%%%%%%%%%%%%%%% %!%"%#%$%%%&%'%(%)%*%+%,%-%.%/%0%1%2%3%4%5%6%7%8%9%:%;%<%=%>%?%@%A%B%C%D%E%F%G%H%I%J%K%L%M%N%O%P&Q&R&S&T&U&V'W'X'Y'Z'['\']'^'_'`'a'b'c'd'e'f'g'h'i'j(k(l(m(n(o(p(q(r(s(t(u(v(w(x(y(z({(|(}(~(((((((((()))))****************************************************************************************++++++ + + + + +++++++++++++++++++ +!+"+#+$+%+&+'+(+)+*+++,+-+.+/+0+1+2+3+4+5+6+7+8+9+:+;+<+=+>+?+@+A+B+C+D+E+F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,,SafeA& haskus-binary Bit orderMThe first letter indicates the outer bit ordering, i.e. how bytes are filled:+B?: from left to right (B is for BigEndian).L?: from right to left (L is for LittleEndian)NThe second letter indicates the inner bit ordering, i.e. how words are stored:F?B: the most significant bit is stored first (in the outer bit order!)G?L: the least-significant bit is stored first (in the outer bit order!)3E.g. two successive words of 5 bits: ABCDE, VWXYZ  BB: ABCDEVWX YZxxxxxx   BL: EDCBAZYX WVxxxxxx   LB: XWVEDCBA xxxxxxZY   LL: XYZABCDE xxxxxxVW &)'(*&)'(*None .>HUVXF0 haskus-binary%Offset obtained when following path p1 haskus-binary#Type obtained when following path p2 haskus-binarySymbol in a layout path4 haskus-binaryIndex in a layout path6 haskus-binaryPath in a layout8 haskus-binaryIndex in the layout path9 haskus-binarySymbol in the layout path -./0123456789 10/67452389.-None.>HIXkV: haskus-binaryPointer operations; haskus-binary'Cast a pointer from one type to another< haskus-binaryNull pointer (offset is 0)= haskus-binary@Advance a pointer by the given amount of bytes (may be negative)> haskus-binary0Distance between two pointers in bytes (p2 - p1)? haskus-binaryUse the pointer@ haskus-binary Malloc the given number of bytesA haskus-binary$Add offset to the given layout fieldB haskus-binaryBAdd offset corresponding to the layout field with the given symbolC haskus-binaryAAdd offset corresponding to the layout field with the given indexD haskus-binaryA finalized pointerpWe use an offset because we can't modify the pointer directly (it is passed to the foreign pointer destructors)F haskus-binaryNull foreign pointerU haskus-binaryNull finalized pointerG haskus-binaryUse a finalized pointerH haskus-binaryGeneralized version of =I haskus-binaryMalloc a foreign pointerJ haskus-binaryUse a foreign pointerK haskus-binaryFree a malloced memory! :<;@=>?ABCDEFGHIJK:<;@=>?ABCH!KDEGJIF None.FHUV[bO haskus-binaryReturn a Int with exactly n bitsP haskus-binaryReturn a Word with exactly n bitsQ haskus-binaryReturn a Int with at least n bitsR haskus-binaryReturn a Word with at least n bitstVWXYZ[\]^_`abcdefghi jklmnopqrstuvwxyz{|}~"OPQRRQPO    "None .8>HUVXk6'S haskus-binaryStorable data-typesECurrently we cannot automatically derive a Storable class with type-level naturals for "alignment" and "sizeOf". Instead we define a Storable class isomorphic to the Foreign.Storable's one but with default methods using DefaultSignatures (i.e., the Storable instance can be automatically derived from a Generic instance).Y haskus-binaryOCompute the required padding between the size sz and b to respect b's alignmentZ haskus-binaryECompute the required padding between a and b to respect b's alignment[ haskus-binaryEA storable data in constant space whose size is known at compile time\ haskus-binary"Size of the stored data (in bytes)] haskus-binary Alignment requirement (in bytes)^ haskus-binary)Peek (read) a value from a memory address_ haskus-binary0Poke (write) a value at the given memory address` haskus-binary)Peek (read) a value from a memory addressa haskus-binary0Poke (write) a value at the given memory addressb haskus-binaryGet statically known sizec haskus-binaryGet statically known alignmentd haskus-binary"Get bytes in host-endianness ordere haskus-binaryPeek a value from a pointerf haskus-binaryPoke a value to a pointerg haskus-binary Generalized Wh haskus-binarySizeOf (for type-application)i haskus-binarySizeOf' (for type-application)j haskus-binary Generalized Vk haskus-binary Alignment (for type-application)l haskus-binary!Alignment' (for type-application)m haskus-binaryPeek with byte offsetn haskus-binaryPoke with byte offseto haskus-binaryPeek with element size offsetp haskus-binaryPoke with element size offsetq haskus-binaryAllocate some bytesr haskus-binaryAllocate some aligned bytess haskus-binarys f executes the computation fo, passing as argument a pointer to a temporarily allocated block of memory sufficient to hold values of type a.The memory is freed when fM terminates (either normally or via an exception), so the pointer passed to f must not be used after this.t haskus-binaryFAllocate a block of memory that is sufficient to hold values of type a6. The size of the area allocated is determined by the W method from the instance of S for the appropriate type.$The memory may be deallocated using K or  finalizerFree when no longer required.u haskus-binaryu val f executes the computation fX, passing as argument a pointer to a temporarily allocated block of memory into which val) has been marshalled (the combination of s and f).The memory is freed when fM terminates (either normally or via an exception), so the pointer passed to f must not be used after this.v haskus-binaryCTemporarily allocate space for the given number of elements (like s, but for multiple elements).w haskus-binary7Allocate space for the given number of elements (like t, but for multiple elements).x haskus-binary~Convert an array of given length into a Haskell list. The implementation is tail-recursive and so uses constant stack space.y haskus-binary/Write the list elements consecutive into memoryz haskus-binary=Temporarily store a list of storable values in memory (like u, but for multiple elements).{ haskus-binaryLike zF, but the action gets the number of values as an additional parameter| haskus-binary Replicates a withXXXJ combinator over a list of objects, yielding a list of marshalled objects haskus-binaryGeneralize FS.peek haskus-binaryGeneralize FS.poke*SWVTUXYZ[]\^_`abcdefghijklmnopqrstuvwxyz{|*[]\^_`aZYXbcdSWVTUefghijklmnopsqrtu|vwz{xy None 8FHMVXkW haskus-binary Extended EnumHBy default, use dataToTag and toEnum to convert from and to an Integral.But it can be overloaded to perform transformation before using fromEnum/toEnum. E.g. if values are shifted by 1 compared to Enum values, define fromCEnum = (+1) . fromIntegral . dataToTag haskus-binary Store enum a as a b haskus-binaryRead an enum field haskus-binaryCreate an enum field haskus-binaryTMake an enum with the last constructor taking a parameter for the rest of the range data T = A | B | C | D Word8 makeEnumWithCustom :: Int -> T makeEnumWithCustom x = case x of 0 -> A 1 -> B 2 -> C n -> D (n - 3)  haskus-binaryzMake an enum with the last constructor taking a parameter for the rest of the range, but don't build the last constructor data T = A | B | C | D Word8 makeEnumMaybe :: Int -> T makeEnumMaybe x = case x of 0 -> Just A 1 -> Just B 2 -> Just C n -> Nothing  haskus-binary&Make an enum from a number (0 indexed) haskus-binaryRetrieve data tagdata D = A | B | C dataToTag B1 NoneM haskus-binary8-bit character (ASCII, etc.) NoneF haskus-binarySigned bit shiftsSigned means that the sign bit (the higher order bit): - propagates to the right during right shifts and - keeps its value during left shifts (except when all other bits are 0)Checked means that there is an additional test to ensure that the shift offset is valid (less than the bit count). If you are sure that the offset is valid, use the "unchecked" version which should be faster. haskus-binaryChecked signed right shift haskus-binaryChecked signed left shift haskus-binaryUnchecked signed right shift haskus-binaryUnchecked signed left shift haskus-binaryFChecked signed shift to the left if positive, to the right if negative haskus-binaryHUnchecked signed shift to the left if positive, to the right if negative haskus-binary Bit shiftsChecked means that there is an additional test to ensure that the shift offset is valid (less than the bit count). If you are sure that the offset is valid, use the "unchecked" version which should be faster.To shift signed numbers, see  class methods. haskus-binaryChecked right shift haskus-binaryChecked left shift haskus-binaryUnchecked right shift haskus-binaryUnchecked left shift haskus-binary?Checked shift to the left if positive, to the right if negative haskus-binaryAUnchecked shift to the left if positive, to the right if negative NoneF haskus-binaryBitwise bit operations haskus-binary Bitwise "and" haskus-binary Bitwise "or" haskus-binary Bitwise "xor" haskus-binary Complement None8FC haskus-binaryType whose bits are indexable haskus-binarybit i is a value with the i$th bit set and all other bits clear. haskus-binary x `setBit` i is the same as  x .|. bit i haskus-binaryx `clearBit` i is the same as x .&. complement (bit i) haskus-binaryx `complementBit` i is the same as  x `xor` bit i haskus-binaryReturn  if the nth bit of the argument is 1 haskus-binaryReturn the number of set bitsNone.8>@FHVXk haskus-binary,Type representable by a fixed amount of bits haskus-binaryNumber of bits haskus-binary%Number of bits (the value is ignored) haskus-binaryAll bits set to 0 haskus-binaryAll bits set to 1 haskus-binary@Count number of zero bits preceding the most significant set bit haskus-binaryACount number of zero bits following the least significant set bitNone8>ҧ haskus-binaryTypes whose bits can be rotated haskus-binary*Rotate left if positive, right if negative haskus-binaryChecked left bit rotation haskus-binaryChecked right bit rotation haskus-binary4Unchecked rotate left if positive, right if negative  haskus-binaryUnchecked left bit rotation  haskus-binaryUnchecked right bit rotation    None %&'-.=?@ACFHSVX_*Q4 haskus-binary%Wrapper containing any kind of buffer haskus-binaryGet contents as a list of bytes haskus-binaryGet buffer size haskus-binary?Buffer that can be thawed (converted from immutable to mutable) haskus-binary{Convert an immutable buffer to a mutable one without copying. The original buffer should not be used after the conversion. haskus-binary?Buffer that can be frozen (converted from mutable to immutable) haskus-binaryvConvert a mutable buffer to an immutable one without copying. The buffer should not be modified after the conversion.  haskus-binaryEA buffer with an additional phantom type indicating its binary format; haskus-binaryIs the buffer mutable or not?< haskus-binaryMemory cells are mutable= haskus-binaryMemory cells are immutable> haskus-binaryAllocation heap? haskus-binaryGHC heap@ haskus-binary External heapA haskus-binary.Is the buffer automatically garbage collected?B haskus-binary0Automatically collected by the garbage-collectorC haskus-binaryFinalizers are run just before the garbage collector collects the buffer entity. The memory used by the buffer may be collected too (Internal heap), explicitly freed by a finalizer or not freed at all.D haskus-binary]The buffer contents is not automatically freed and we can't attach finalizers to the buffer.E haskus-binary!Is the buffer pinned into memory?F haskus-binary0The buffer has a fixed associated memory addressG haskus-binary:The buffer contents can be freely moved to another addressH haskus-binary%Allocate a buffer (mutable, unpinned)b <- newBuffer 1024I haskus-binary#Allocate a buffer (mutable, pinned)J haskus-binary,Allocate an aligned buffer (mutable, pinned) haskus-binary@Insert a finalizer. Return True if there was no finalizer beforeK haskus-binaryAdd a finalizer.The latest added finalizers are executed first. Finalizers are not guaranteed to run (e.g. if the program exits before the buffer is collected). haskus-binary,Internal function used to execute finalizers haskus-binaryCreate empty FinalizersL haskus-binaryTouch a bufferM haskus-binaryMake a buffer finalizable6The new buffer liveness is used to trigger finalizers.N haskus-binaryZSome buffers managed by GHC can be pinned as an optimization. This function reports this.O haskus-binaryhTransform type-level NotPinned buffers into type-level Pinned if the buffer is dynamically pinned (see N).P haskus-binary"Do something with a buffer addressRNote: don't write into immutable buffer as it would break referential consistencyQ haskus-binary"Do something with a buffer pointerRNote: don't write into immutable buffer as it would break referential consistencyR haskus-binary"Do something with a buffer addressS haskus-binary"Do something with a buffer pointerT haskus-binaryGet buffer sizeU haskus-binaryGet contents as a list of bytesV haskus-binaryRead a Word8, offset in bytes'We don't check that the offset is valid let b = [25,26,27,28] :: BufferIbufferReadWord8IO b 227W haskus-binary4Read a Word8 in an immutable buffer, offset in bytes'We don't check that the offset is valid let b = [25,26,27,28] :: BufferI@putStrLn $ "Word8 at offset 2 is " ++ show (bufferReadWord8 b 2)Word8 at offset 2 is 27X haskus-binaryWrite a Word8, offset in bytes'We don't check that the offset is validb <- newBuffer 10bufferWriteWord8IO b 1 123bufferReadWord8IO b 1123Y haskus-binaryRead a Word16, offset in bytes'We don't check that the offset is valid(let b = [0x12,0x34,0x56,0x78] :: BufferIx <- bufferReadWord16IO b 0(x == 0x1234) || (x == 0x3412)TrueZ haskus-binary5Read a Word16 in an immutable buffer, offset in bytes'We don't check that the offset is valid[ haskus-binaryWrite a Word16, offset in bytes'We don't check that the offset is validb <- newBuffer 10let v = 1234 :: Word16bufferWriteWord16IO b 1 vbufferReadWord16IO b 112347(x :: Word16) <- fromIntegral <$> bufferReadWord8IO b 17(y :: Word16) <- fromIntegral <$> bufferReadWord8IO b 2B(((x `shiftL` 8) .|. y) == v) || (((y `shiftL` 8) .|. x) == v)True\ haskus-binaryRead a Word32, offset in bytes'We don't check that the offset is valid(let b = [0x12,0x34,0x56,0x78] :: BufferIx <- bufferReadWord32IO b 0&(x == 0x12345678) || (x == 0x78563412)True] haskus-binary5Read a Word32 in an immutable buffer, offset in bytes'We don't check that the offset is valid^ haskus-binaryWrite a Word32, offset in bytes'We don't check that the offset is validb <- newBuffer 10let v = 1234 :: Word32bufferWriteWord32IO b 1 vbufferReadWord32IO b 11234_ haskus-binaryRead a Word64, offset in bytes'We don't check that the offset is valid<let b = [0x12,0x34,0x56,0x78,0x9A,0xBC,0xDE,0xF0] :: BufferIx <- bufferReadWord64IO b 06(x == 0x123456789ABCDEF0) || (x == 0xF0DEBC9A78563412)True` haskus-binary5Read a Word64 in an immutable buffer, offset in bytes'We don't check that the offset is valida haskus-binaryWrite a Word64, offset in bytes'We don't check that the offset is validb <- newBuffer 10let v = 1234 :: Word64bufferWriteWord64IO b 1 vbufferReadWord64IO b 11234b haskus-binary4Copy a buffer into another from/to the given offsetsWe don't check buffer limits.&let b = [0,1,2,3,4,5,6,7,8] :: BufferIb2 <- newBuffer 8copyBuffer b 4 b2 0 4copyBuffer b 0 b2 4 4"forM [0..7] (bufferReadWord8IO b2)[4,5,6,7,0,1,2,3]c haskus-binarySupport for OverloadedLists:set -XOverloadedLists let b = [25,26,27,28] :: BufferIb haskus-binary Source buffer haskus-binaryOffset in source buffer haskus-binary Target buffer haskus-binaryOffset in target buffer haskus-binaryNumber of Word8 to copye !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abN./0123456789: !EFGABCD;<=>?@-,+*)('&%$#"HIJTNORSPQVWYZ\]_`X[^abKMLUNone &'F1Kz haskus-binary$Allocate a new Buffer using system `malloc`{ haskus-binary.Allocate a new finalized buffer using system `malloc` and finalized with ``.| haskus-binaryMake a buffer finalized with ``} haskus-binaryFree a malloc-ed Bufferz{|}z{|}None -.=?@AFHV4O haskus-binaryShow text in IO haskus-binaryPure show text haskus-binary Text buffer>The buffer contains a text encoded according to phantom type t~~None -.=?@AFHV;[ haskus-binary ASCII character map and encoding haskus-binary)Support ASCII text with OverloadedStrings:set -XOverloadedStringslet t = "HELLO" :: TextI ASCII showText t"HELLO" let badt = "Jos" :: TextI ASCII showText badt*"*** Exception: Invalid ASCII character:  haskus-binaryInstance for ASCII text:set -XOverloadedLists#let b = [72,69,76,76,79] :: BufferIshowText (TextBuffer @ASCII b)"HELLO"None "#&'.Fm haskus-binaryAAn embedding entry. Used to embed binary files into an executable haskus-binaryType of data access haskus-binaryAlignement to respect haskus-binarySymbol to associate to the data haskus-binaryInput file path haskus-binaryOffset in the input file haskus-binarySize limit in the input file haskus-binary Section type haskus-binary Read-only haskus-binaryWritable haskus-binary Uninitialized haskus-binary8Embed bytes at compile time using GHC's literal strings.:set -XTemplateHaskell'let b = $$(embedBytes [72,69,76,76,79]) bufferSize b5 haskus-binary-Load a buffer from a symbol. Return a BufferE-Note: we can't use Typed TH because of #13587 <> -- Test.c > const char mydata[9] = {1,2,30,40,50,6,7,8,9}; L> let b = $(loadSymbol 9 "mydata") > print (fmap (bufferReadWord8 b) [0..8]) 1,2,30,40,50,6,7,8,9 haskus-binary.Load a buffer from a symbol. Return a BufferME-Note: we can't use Typed TH because of #13587 m> -- Test.c > const char mydata[9] = {1,2,30,40,50,6,7,8,9}; > char mywrtdata[9] = {1,2,30,40,50,6,7,8,9}; > let w = $(loadMutableSymbol 9 "mywrtdata") > forM_ [0..8] (\i -> bufferWriteWord8IO w i (fromIntegral i)) > print =<< forM [0..8] (bufferReadWord8IO w) 0,1,2,3,4,5,6,7,8|Trying to write into constant memory: >> let err = $(loadMutableSymbol 9 "mydata") >> bufferWriteWordIO err 0 10 SEGFAULT haskus-binary+Create a GAS entry to include a binary file haskus-binary8Create an assembler file for the given embedding entries haskus-binary0Embed a file in the executable. Return a BufferE haskus-binaryfEmbed a file in the executable. Return a BufferE or a BufferME depending on the mutability parameter.nodep parameter is used to indicate if we want to add a dependency on the input file (e.g. we don't want to do this for temporary files TH generated). haskus-binaryPEmbed a pinned buffer in the executable. Return either a BufferE or a BufferME. haskus-binaryREmbed a unpinned buffer in the executable. Return either a BufferE or a BufferME. haskus-binaryHEmbed a buffer in the executable. Return either a BufferE or a BufferME. haskus-binary File to embed haskus-binaryMutable buffer or not haskus-binary Alignment haskus-binaryOffset in the file in bytes haskus-binary>Size to include in bytes (otherwise up to the end of the file) haskus-binary+BufferE or BufferME depending on mutability haskus-binary Source buffer haskus-binary%Should the embedded buffer be mutable haskus-binary Alignement haskus-binaryOffset in the buffer haskus-binaryNumber of Word8 to write haskus-binary6BufferE or BufferME, depending on mutability parameter haskus-binary Source buffer haskus-binary%Should the embedded buffer be mutable haskus-binary Alignement haskus-binaryOffset in the buffer haskus-binaryNumber of Word8 to write haskus-binary6BufferE or BufferME, depending on mutability parameter haskus-binary Source buffer haskus-binary,Should the embedded buffer be mutable or not haskus-binaryOptional alignement constraint haskus-binary$Optional offset in the source buffer haskus-binary#Optional number of bytes to include haskus-binary6BufferE or BufferME, depending on mutability parameterNone&'.SX_y haskus-binaryA view pattern haskus-binaryThe whole buffer haskus-binary1D slice haskus-binary2D slice haskus-binaryComposed pattern haskus-binaryOffset of the first cell haskus-binaryNumber of cells haskus-binaryOffset of the first line haskus-binaryWidth (line size) haskus-binaryHeight (number of lines) haskus-binary Stride (space between two lines) haskus-binaryA view on a buffer haskus-binaryThe source of a viewWeak views are used so that the underlying buffer can be freed by the GC. When it happens and if the view is still alive the contents of the buffer used by the view is copied into a fresh (usually smaller) buffer.Weak views can also be used as sources: in this case, when the source view is GCed, the current view is updated to point to the source of the source. haskus-binary7The source is a buffer. The view keeps the buffer alive haskus-binaryThe source is a weak buffer. If the buffer is collected, its contents is copied in to a new buffer and the view is updated to use it. haskus-binaryThe source is a weak view. If the source view is collected, the current view is updated to use whatever the source view uses as a source (another view or a buffer). This mechanism makes buffer contents cascade into smaller views while preserving some sharing. haskus-binary9Compute an actual offset when used with the given pattern haskus-binary0Compute the effective size occupied by a pattern haskus-binary0Compute the effective size occupied by a pattern haskus-binaryCombine two patterns$Remove trivial patterns combinations haskus-binaryRead a Word8 from a view haskus-binaryWait for a view to be valid then use one of the 3 passed functions on it depending on its source type (Buffer, WeakBuffer, WeakView). haskus-binaryCreate a view on a buffer haskus-binaryCreate a weak view on a bufferlThe buffer is weakly referenced and can be GCed. When it happens, its contents is stored into a new buffer.You should only use this for views that are much smaller than the original buffer so that the copying cost is balanced by the memory occupation difference. haskus-binaryCreate a weak view on a view haskus-binaryhAllocate a new buffer initialized with the contents of the source buffer according to the given pattern haskus-binary$Convert a view into an actual buffer haskus-binaryDisplay the state of a View:set -XOverloadedListsimport System.MemMv <- newBufferWeakView ([10,11,12,13,14,15,16,17] :: BufferI) (Pattern1D 2 4)'v2 <- newViewWeakView v (Pattern1D 1 1)putStr =<< showViewState v2 View source: weak viewSource size: 4@View pattern: Pattern1D {pattern1DOffset = 1, pattern1DSize = 1}Wasted space: 75%Source: View source: weak buffer Source size: 8C View pattern: Pattern1D {pattern1DOffset = 2, pattern1DSize = 4} Wasted space: 50% performGCputStr =<< showViewState v2 View source: weak viewSource size: 4@View pattern: Pattern1D {pattern1DOffset = 1, pattern1DSize = 1}Wasted space: 75%Source: View source: buffer Source size: 4 View pattern: PatternFull Wasted space: 0% haskus-binary Source buffer haskus-binary View pattern haskus-binaryWeak IORef of the viewNone  haskus-binarymemset haskus-binarymemcpy haskus-binary Copy memory haskus-binary Set memory haskus-binaryAllocate several arrays haskus-binaryPeek several arrays haskus-binaryPoke several arrays haskus-binaryAllocate several arrays haskus-binaryExecute f with a pointer to a or NULLNone.=>?@AHUVXkQ haskus-binary An union &We use a list of types as a parameter.The union is just a pointer to a buffer containing the value(s). The size of the buffer is implicitly known from the types in the list. haskus-binary%Retrieve a union member from its type haskus-binary.Create a new union from one of the union types haskus-binaryLike ! but set the remaining bytes to 0 haskus-binary.Create a new union from one of the union types haskus-binary?Get the union size (i.e. the maximum of the types in the union) haskus-binaryDGet the union alignment (i.e. the maximum of the types in the union)None./=>?@AEHUVXk haskus-binaryReturn type from a field path haskus-binaryReturn offset from a field path haskus-binaryRecord alignment haskus-binary'Record size (with ending padding bytes) haskus-binary0Get record size without the ending padding bytes haskus-binaryField haskus-binaryRecord haskus-binaryGet record size haskus-binaryGet record alignment haskus-binaryGet a field offset haskus-binary Get a field haskus-binary Get a field offset from its path haskus-binaryGet a field from its path haskus-binaryConvert a record into a HList %] ]%None@AXkӻ- haskus-binaryA buffer haskus-binaryDuplicate a buffer haskus-binaryBuffer filled with zero haskus-binary'Zip two buffers with the given function haskus-binary_Unsafe: be careful if you modify the buffer contents or you may break referential transparency haskus-binaryTest if the buffer is empty haskus-binary Empty buffer haskus-binary Buffer size haskus-binaryPeek a storable haskus-binary#Peek a storable at the given offset haskus-binary(Pop a Storable and return the new buffer haskus-binary Poke a buffer haskus-binaryMap haskus-binaryReverse haskus-binaryDrop some bytes O(1) haskus-binarySplit on the given Byte values haskus-binaryTail haskus-binaryAppend haskus-binaryCons haskus-binarySnoc haskus-binaryInit haskus-binaryHead haskus-binaryIndex haskus-binaryUnpack haskus-binaryUnpack haskus-binaryTake some bytes O(1) haskus-binaryTake some bytes O(n) haskus-binaryTake some bytes O(1) haskus-binaryPack a ByteString haskus-binaryPack a list of bytes haskus-binaryPack a Storable haskus-binaryPack a list of Storable haskus-binaryPack from a pointer (copy) haskus-binary#Pack from a pointer (add finalizer) haskus-binary"Unsafe drop (don't check the size) haskus-binary"Unsafe take (don't check the size) haskus-binary"Unsafe tail (don't check the size) haskus-binary"Unsafe head (don't check the size) haskus-binary"Unsafe last (don't check the size)  haskus-binary"Unsafe init (don't check the size)  haskus-binary#Unsafe index (don't check the size)  haskus-binary Map memory  haskus-binaryUse buffer pointer  haskus-binary Read file haskus-binary Write file.     .     Nonei  haskus-binary Execute Put haskus-binary Put a buffer haskus-binaryPut a ByteString haskus-binaryPut null bytes haskus-binary5Put null bytes to align the given value to the second haskus-binary Put a Word8 haskus-binaryPut a Word16 little-endian haskus-binaryPut a Word16 big-endian haskus-binaryPut a Word32 little-endian haskus-binaryPut a Word32 big-endian haskus-binaryPut a Word64 little-endian haskus-binaryPut a Word64 big-endian # #None7  haskus-binary BufferList" haskus-binaryConvert to a buffer# haskus-binaryConvert from a buffer$ haskus-binaryConvert to a lazy ByteString !"#$ !"#$None1M% haskus-binaryBuffer builder& haskus-binaryEmpty buffer builder' haskus-binaryCreate a Builder denoting the same sequence of bytes as a strict ByteString. The Builder inserts large ByteStrings directly, but copies small ones to ensure that the generated chunks are large on average.( haskus-binary$Encode a single unsigned byte as-is.) haskus-binaryExecute a Builder and return the generated chunks as a BufferList. The work is performed lazily, i.e., only when a chunk of the BufferList is forced.* haskus-binary>Execute a Builder and return the generated chunks as a Buffer.%&'()*%&)*'(None>XP - haskus-binaryData whose bits can be reversed/ haskus-binaryReverse bits in a Word0 haskus-binaryObvious recursive version1 haskus-binary?Reverse bits in a Word8 (3 64-bit operations, modulus division)2 haskus-binary:Reverse bits in a Word8 (4 64-bit operations, no division)3 haskus-binary!Reverse bits using a lookup table4 haskus-binary=Reverse bits in a Word8 (7 no 64-bit operations, no division)5 haskus-binaryParallel recursive version6 haskus-binary>Convert a function working on Word8 to one working on any Word6The number of bits in the Word must be a multiple of 8 -./0123456 -./0123456None,>Xk) B haskus-binarymakeMask 3 = 00000111C haskus-binary9Keep only the n least-significant bits of the given valueD haskus-binary$Compute bit offset (equivalent to x  8 but faster)E haskus-binary%Compute byte offset (equivalent to x  8 but faster)F haskus-binary Reverse the nH least important bits of the given value. The higher bits are set to 0.G haskus-binary'Convert bits into a string composed of '0' and '1' charsH haskus-binary=Convert a specified amount of bits into a string composed of '0' and '1' charsI haskus-binaryConvert a string of '0' and '1' chars into a wordJ haskus-binaryq`getBitRange bo offset n c` takes n bits at offset in c and put them in the least-significant bits of the result5  -./ABCDEFGHIJ5A  -./FBCGHIJDENone%.:HVgK haskus-binaryCode point rangeL haskus-binary Code pointNumber from 0 to 0x10FFFFN haskus-binaryCode-point rangeO haskus-binaryShow instance for CodePointCodePoint 0x1234U+1234CodePoint 0x12U+0012CodePoint 0x1234AU+1234AKLMNLMKNNone_ U haskus-binary0Parse a code-point value without the "U+" prefix'runParser parseCodePointValue "" "1234" Right U+1234V haskus-binary.Parse a range of code-points separated by ".."-runParser parseCodePointRange "" "1234..5678"Right U+1234..U+5678W haskus-binary:Parse either a range of code-points or a single code-point4runParser parseCodePointValueOrRange "" "1234..5678"Right (Right U+1234..U+5678).runParser parseCodePointValueOrRange "" "1234"Right (Left U+1234)X haskus-binary-Parse a code-point value with the "U+" prefix$runParser parseCodePoint "" "U+1234" Right U+1234Y haskus-binaryParse a comment line ("^# ... eol"))runParser parseCommentLine "" "# comment"Right " comment"Z haskus-binary>Parse valid line with the given parser, skipping comment lines[ haskus-binary5Parse a file and lift the result into a TH expression\ haskus-binaryStrip comments] haskus-binaryParse Blocks.txt file^ haskus-binaryParse DerivedName.txt file UVWXYZ[\]^ UXVWYZ[\]^None_ haskus-binary Plane blocks blocks !! 1%(U+0080..U+00FF,"Latin-1 Supplement")__ None.:HV?f  haskus-binaryUnicode encoding scheme haskus-binaryCode unit type haskus-binary*Maximum number of code unit per code point haskus-binary2Binary sorting is equivalent to code point sorting haskus-binaryBOM (byte-order mask) allowedp haskus-binary&Get the plan the code-point belongs to"codePointPlane (CodePoint 0x21234)Plane 2q haskus-binaryBasic Multilingual Plane (BMP)The Basic Multilingual Plane (BMP, or Plane 0) contains the common-use characters for all the modern scripts of the world as well as many historical and rare characters. By far the majority of all Unicode characters for almost all textual data can be found in the BMP.r haskus-binary&Supplementary Multilingual Plane (SMP)Supplementary Multilingual Plane. The Supplementary Multilingual Plane (SMP, or Plane 1) is dedicated to the encoding of characters for scripts or symbols which either could not be fit into the BMP or see very infrequent usage. This includes many historic scripts, a number of lesser-used contemporary scripts, special-purpose invented scripts, notational systems or large pictographic symbol sets, and occasionally historic extensions of scripts whose core sets are encoded on the BMP.Examples include Gothic (historic), Shavian (special-purpose invented), Musical Symbols (notational system), Domino Tiles (pictographic), and Ancient Greek Numbers (historic extension for Greek). A number of scripts, whether of historic and contemporary use, do not yet have their characters encoded in the Unicode Standard. The majority of scripts currently identified for encoding will eventually be allocated in the SMP. As a result, some areas of the SMP will experience common, frequent usage.s haskus-binary%Supplementary Ideographic Plane (SIP)The Supplementary Ideographic Plane (SIP, or Plane 2) is intended as an additional allocation area for those CJK characters that could not be fit in the blocks set aside for more common CJK characters in the BMP. While there are a small number of common-use CJK characters in the SIP (for example, for Cantonese usage), the vast majority of Plane 2 characters are extremely rare or of historical interest only.t haskus-binary)Supplementary Special-purpose Plane (SSP)The Supplementary Special-purpose Plane (SSP, or Plane 14) is the spillover allocation area for format control characters that do not fit into the small allocation areas for format control characters in the BMP.u haskus-binaryPrivate Use PlanesThe two Private Use Planes (Planes 15 and 16) are allocated, in their entirety, for private use. Those two planes contain a total of 131,068 characters to supple- ment the 6,400 private-use characters located in the BMP.KLMN`abcdefghijklmnopqrstunopqrstulmjkhifgdebc`a!None.=>?@AHUVX`kL haskus-binary-Offset of the i-th element in a stored vector haskus-binaryVector with type-checked size haskus-binary$Return the buffer backing the vector haskus-binaryReverse a vector haskus-binaryYield the first n elements haskus-binaryDrop the first n elements haskus-binaryO(1)7 Index safely into the vector using a type level index. haskus-binary>Convert a list into a vector if the number of elements matches haskus-binary0Take at most n element from the list, then use z haskus-binary4Take at most (n-1) element from the list, then use z haskus-binaryConvert a vector into a list haskus-binary&Create a vector by replicating a value haskus-binary(Concat several vectors into a single one haskus-binaryZip two vectors haskus-binarymap"None &'.>HSX`kd~ haskus-binary Kinded PositgGADT that can be used to ensure at the type level that we deal with non-infinite/non-zero Posit values haskus-binary+Get the kind of the posit at the type level haskus-binaryCheck if a posit is zero haskus-binaryCheck if a posit is infinity haskus-binaryCheck if a posit is positive haskus-binaryCheck if a posit is negative haskus-binaryPosit absolute value haskus-binaryDecode posit fields haskus-binaryConvert a Posit into a Rational haskus-binary-Convert a rational into the approximate Posit haskus-binarycFactor of approximation for a given Rational when encoded as a Posit. The closer to 1, the better.Usage:)positApproxFactor @(Posit 8 2) (52 % 137) haskus-binaryFCompute the decimal error if the given Rational is encoded as a Posit.Usage:)positDecimalError @(Posit 8 2) (52 % 137) haskus-binaryXCompute the number of decimals of accuracy if the given Rational is encoded as a Posit.Usage:,positDecimalAccuracy @(Posit 8 2) (52 % 137) haskus-binaryECompute the binary error if the given Rational is encoded as a Posit.Usage:(positBinaryError @(Posit 8 2) (52 % 137) haskus-binaryTCompute the number of bits of accuracy if the given Rational is encoded as a Posit.Usage:+positBinaryAccuracy @(Posit 8 2) (52 % 137) haskus-binary[Compute the number of bits of accuracy if the given Rational is encoded as a Float/Double.Usage:&floatBinaryAccuracy @Double (52 % 137) haskus-binary Show posit''#None8>HMV haskus-binaryBit set indexed with a haskus-binary#Return the bit offset of an element haskus-binary-Return the value associated with a bit offset haskus-binaryPA bit set: use bitwise operations (fast!) and minimal storage (sizeOf basetype)b is the base type (Bits b)a is the element type (Enum a)mThe elements in the Enum a are flags corresponding to each bit of b starting from the least-significant bit. haskus-binaryIndicate if the set is empty haskus-binary Empty bitset haskus-binary%Create a BitSet from a single element haskus-binaryInsert an element in the set haskus-binaryRemove an element from the set haskus-binaryUnwrap the bitset haskus-binary Wrap a bitset haskus-binary Test if an element is in the set haskus-binary Test if an element is in the set haskus-binary$Test if an element is not in the set haskus-binaryRetrieve elements in the set haskus-binaryIntersection of two sets haskus-binaryIntersection of two sets haskus-binaryIntersection of several sets haskus-binaryConvert a list of enum elements into a bitset Warning: b must have enough bits to store the given elements! (we don't perform any check, for performance reason) haskus-binary-Convert a bitset into a list of Enum elements haskus-binaryWConvert a bitset into a list of Enum elements by testing the Enum values successively.The difference with 5 is that extra values in the BitSet will be ignored. haskus-binaryConvert a set into a list haskus-binaryConvert a Foldable into a set haskus-binary3It can be useful to get the indexes of the set bits haskus-binary3It can be useful to get the indexes of the set bits$None.=>?@AHMUVXk  haskus-binary!Get the whole size of a BitFields haskus-binary$Get the size of a field from it name haskus-binary%Get the type of a field from its name haskus-binary+Get the bit offset of a field from its name haskus-binaryA field of n bits haskus-binaryBit fields on a base type b haskus-binaryGet backing word haskus-binaryGet the value of a field haskus-binary1Get the value of a field (without checking sizes) haskus-binarySet the value of a field haskus-binary1Set the value of a field (without checking sizes) haskus-binaryModify the value of a field haskus-binary4Modify the value of a field (without checking sizes) haskus-binaryGet values in a tuple haskus-binary%Get field names and values in a tuple haskus-binary%Get field names and values in a tuple haskus-binary%Get field names and values in a tuple%None,.=>?@AHUVXk1 haskus-binary Add two Unums haskus-binary Add two SORNs haskus-binaryAdd a SORN with itself haskus-binarySubtract two Unums  haskus-binarySubtract two SORNS  haskus-binarySubtract a SORN with itself haskus-binaryUncertainty bit haskus-binary Exact number haskus-binary#OpenInterval above the exact number haskus-binaryBacking word for the unum haskus-binary#Compute the number of bits required haskus-binaryAll unum members haskus-binaryIndexable numbers haskus-binaryPositive numbers in the unums haskus-binaryCompute the precise numbers set  haskus-binaryAn UnumO0 (and its reciprocal) is always included. Numbers have to be >= 1 and sorted.e.g., Unum '[] =>  0 .. 0 .. 0 Unum '[I 1] => 0 .. -1 .. 0 .. 1 .. 0 Unum '[I 1, I 2] => 0 .. -2 .. -1 .. - 2 .. 0 .. 2 .. 1 .. 2 .. 0 Unum '[I 1, PI] => 0 .. -PI .. -1 .. - PI .. 0 .. PI .. 1 .. PI .. 0! haskus-binary Unum labels" haskus-binarySize of an unum in bits# haskus-binaryZero$ haskus-binaryInfinite& haskus-binaryEncode a number' haskus-binaryNegate a number( haskus-binaryReciprocate a number) haskus-binary Get unum sign* haskus-binaryShow SORN bits+ haskus-binarySize of a SORN in bits, haskus-binary Empty SORN- haskus-binary Full SORN. haskus-binaryFull SORN without infinite/ haskus-binaryFull SORN without infinite0 haskus-binarySORN singleton1 haskus-binaryInsert in a SORN2 haskus-binaryRemove in a SORN3 haskus-binaryTest membership in a SORN4 haskus-binaryUnion of two SORNs5 haskus-binaryIntersection of two SORNs6 haskus-binaryComplement the SORN7 haskus-binary Negate a SORN8 haskus-binaryElements in the SORN9 haskus-binaryCreate a SORN from its elements: haskus-binary*Create a contiguous SORN from two elements; haskus-binary%Convert a contiguous SORN into a SORN< haskus-binary!Size of a contiguous SORN in bits= haskus-binaryShow contiguous SORN bits> haskus-binaryEmpty contigiuous SORN? haskus-binary#Test if a contigiuous SORN is empty@ haskus-binaryContiguous SORN buildA haskus-binaryFull contiguous SORNB haskus-binaryContiguous SORN singletonA      !"#$%&'()*+,-./0123456789:;<=>?@ABA "#$&%'(! )  *+,-./0132456789:  <=;>?@AB&None.1>EHMUVXkCP haskus-binaryFixed-point number * w is the backing type * iH is the number of bits for the integer part (before the radix point) * fF is the number of bits for the fractional part (after the radix point)Q haskus-binaryConvert to a fixed point valueR haskus-binary Convert from a fixed-point valuePQRPQR'None>"V haskus-binary BitPut monadW haskus-binaryBitPut monad transformerX haskus-binary BitPut stateZ haskus-binaryBuilder[ haskus-binary Current byte\ haskus-binaryCurrent offset] haskus-binary Bit order^ haskus-binaryCreate a new BitPut state_ haskus-binaryPut bits` haskus-binary Put a Buffer:Examples: 3 bits are already written in the current byte 6 BB: ABCDEFGH IJKLMNOP -> xxxABCDE FGHIJKLM NOPxxxxx  6 LL: ABCDEFGH IJKLMNOP -> LMNOPxxx DEFGHIJK xxxxxABC  6 BL: ABCDEFGH IJKLMNOP -> xxxPONML KJIHGFED CBAxxxxx  6 LB: ABCDEFGH IJKLMNOP -> EDCBAxxx MLKJIHGF xxxxxPON  haskus-binaryFlush the current bytea haskus-binaryGet a buffer listb haskus-binary Get a Bufferc haskus-binaryEvaluate a BitPut monadd haskus-binaryEvaluate a BitPut monade haskus-binaryPut bits (monadic)f haskus-binaryPut a single bit (monadic)g haskus-binaryPut a Buffer (monadic)h haskus-binaryChange the current bit orderingBe careful to change the outer bit ordering (B* to L* or the inverse) only on bytes boundaries! Otherwise, you will write the same bits more than once.i haskus-binary.Change the bit ordering for the wrapped BitPut<Be careful, this function uses changeBitPutOrder internally.VWXYZ[\]^_`abcdefghiXYZ[\]^_`baVWdcefghi(None>j haskus-binary BitGet monadk haskus-binaryBitGet monad transformerl haskus-binary BitGet staten haskus-binaryInputo haskus-binaryBit offset (0-7)p haskus-binary Bit orderq haskus-binaryCreate a new BitGetStater haskus-binary!Indicate that the source is emptys haskus-binary,Skip the given number of bits from the inputt haskus-binary8Skip the required number of bits to be aligned on 8-bitsu haskus-binary:Read the given number of bits and put the result in a wordv haskus-binary*Perform some checks before calling getBitsMCheck that the number of bits to read is not greater than the first parameterw haskus-binary:Read the given number of Word8 and return them in a Buffer Examples: 6 BB: xxxABCDE FGHIJKLM NOPxxxxx -> ABCDEFGH IJKLMNOP  6 LL: LMNOPxxx DEFGHIJK xxxxxABC -> ABCDEFGH IJKLMNOP  6 BL: xxxPONML KJIHGFED CBAxxxxx -> ABCDEFGH IJKLMNOP  6 LB: EDCBAxxx MLKJIHGF xxxxxPON -> ABCDEFGH IJKLMNOP x haskus-binaryEvaluate a BitGet monady haskus-binaryEvaluate a BitGet monadz haskus-binary3Evaluate a BitGet monad, return the remaining state{ haskus-binary3Evaluate a BitGet monad, return the remaining state| haskus-binaryResume a BitGet evaluation} haskus-binaryResume a BitGet evaluation~ haskus-binary#Indicate if all bits have been read haskus-binary>Skip the given number of bits from the input (monadic version) haskus-binaryJSkip the required number of bits to be aligned on 8-bits (monadic version) haskus-binary:Read the given number of bits and put the result in a word haskus-binary+Perform some checks before calling getBitsM haskus-binary$Get a bit and convert it into a Bool haskus-binaryGet the given number of Word8 haskus-binaryChange the current bit orderingBe careful to change the outer bit ordering (B* to L* or the inverse) only on bytes boundaries! Otherwise, you will read the same bits more than once. haskus-binary.Change the bit ordering for the wrapped BitGet<Be careful, this function uses changeBitGetOrder internally.jklmnopqrstuvwxyz{|}~lmnopqrstuvwjkyxz{|}~None_ f haskus-binary?Test whether all input *in the current chunk* has been consumed haskus-binaryAGet the number of remaining unparsed bytes *in the current chunk* haskus-binary>Skip ahead n bytes. Fails if fewer than n bytes are available. haskus-binary9Skip ahead n bytes. No error if there isn't enough bytes. haskus-binaryASkip to align n to al. Fails if fewer than n bytes are available. haskus-binaryASkip to align n to al. Fails if fewer than n bytes are available. haskus-binary=Run the getter without consuming its input. Fails if it fails haskus-binaryGRun the getter. Consume its input if Just _ returned. Fails if it fails haskus-binaryHRun the getter. Consume its input if Right _ returned. Fails if it fails haskus-binaryORequire an action to consume exactly the given number of bytes, fail otherwise haskus-binaryORequire an action to consume at most the given number of bytes, fail otherwise haskus-binary(Pull n bytes from the input, as a Buffer haskus-binary Get Word8 haskus-binaryGet Word16 little-endian haskus-binaryGet Word16 big-endian haskus-binaryGet Word32 little-endian haskus-binaryGet Word32 big-endian haskus-binaryGet Word64 little-endian haskus-binaryGet Word64 big-endian haskus-binary4Get while True (read and discard the ending element) haskus-binary.Repeat the getter to read the whole bytestring haskus-binaryGet remaining bytes haskus-binary.Count the number of bytes consumed by a getter haskus-binary9Execute the getter and align on the given number of Word8 haskus-binary(Get Buffer terminated with 0 (consume 0) haskus-binaryRun the Get monad haskus-binary,Run a getter and throw an exception on error haskus-binaryGet bits from a BitGet. .Discard last bits to align on a Word8 boundaryLFIXME: we use a continuation because Data.Serialize.Get doesn't export "put" haskus-binaryApply the getter at most  times haskus-binaryApply the getter at least  times and at most  times$$)None>^ haskus-binary.Get an unsigned word in Little Endian Base 128 haskus-binary.Put an unsigned word in Little Endian Base 128 haskus-binary*Get a signed int in Little Endian Base 128 haskus-binary*Put a signed int in Little Endian Base 128 haskus-binary3Get a bytestring containing a decoded LEB128 string*None >HMVXk%% haskus-binary/Force a data to be read/stored as little-endian haskus-binary,Force a data to be read/stored as big-endian haskus-binaryReverse bytes in a word haskus-binaryExtended word putters haskus-binary Write a Word8 haskus-binaryWrite a Word16 haskus-binaryWrite a Word32 haskus-binaryWrite a Word64 haskus-binary&Write a Word64 into a native size word haskus-binaryExtended word getters haskus-binary Read a Word8 haskus-binary Read a Word16 haskus-binary Read a Word32 haskus-binary Read a Word64 haskus-binary%Read a native size word into a Word64 haskus-binarySize of a machine word haskus-binary32-bit haskus-binary64-bit haskus-binary Word putters haskus-binary Write a Word8 haskus-binaryWrite a Word16 haskus-binaryWrite a Word32 haskus-binaryWrite a Word64 haskus-binary Word getter haskus-binary Read a Word8 haskus-binary Read a Word16 haskus-binary Read a Word32 haskus-binary Read a Word64 haskus-binary Endianness haskus-binaryLess significant bytes first haskus-binaryMost significant bytes first haskus-binary$Get getters for the given endianness haskus-binary$Get putters for the given endianness haskus-binaryReturn extended getters haskus-binaryReturn extended putters haskus-binary(Detect the endianness of the host memory haskus-binaryDetected host endiannessLTODO: use targetByteOrder in GHC.ByteOrder (should be introduced in GHC 8.4)00+None .=>?HVXR(8 haskus-binaryBinary serializable data haskus-binarySize of the data in bytes haskus-binarySensible to endianness haskus-binary!Dynamic size of the data in bytes haskus-binarySerialize a value haskus-binaryDeserialize a value  haskus-binary Size in bytes  haskus-binaryExactly the given size  haskus-binaryAt least the given size  haskus-binaryDynamically known size  haskus-binary(Monad which can read a sequence of bytes haskus-binary Read a Word8 haskus-binary"Read a Word16 with host endianness haskus-binary"Read a Word32 with host endianness haskus-binary"Read a Word64 with host endianness haskus-binaryRead some Word8 haskus-binary%Read some Word16 with host endianness haskus-binary%Read some Word32 with host endianness haskus-binary%Read some Word64 with host endianness haskus-binary0Read the given amount of bytes into a new buffer haskus-binary8Read the given amount of bytes into the specified buffer haskus-binary)Monad which can build a sequence of bytes haskus-binary Write a Word8 haskus-binaryWrite a Word16 haskus-binaryWrite a Word32 haskus-binaryWrite a Word64 haskus-binaryWrite some Word8 haskus-binaryWrite some Word16 haskus-binaryWrite some Word32  haskus-binaryWrite some Word64! haskus-binaryWrite the contents of a buffer" haskus-binary/Pre-allocate at least the given amount of bytesBThis is a hint for the putter to speed up the allocation of memory# haskus-binary'Write a Word16 with little-endian order$ haskus-binary'Write a Word32 with little-endian order% haskus-binary'Write a Word64 with little-endian order& haskus-binary$Write a Word16 with big-endian order' haskus-binary$Write a Word32 with big-endian order( haskus-binary$Write a Word64 with big-endian order) haskus-binary*Write some Word16 with little-endian order* haskus-binary*Write some Word32 with little-endian order+ haskus-binary*Write some Word64 with little-endian order, haskus-binary'Write some Word16 with big-endian order- haskus-binary'Write some Word32 with big-endian order. haskus-binary'Write some Word64 with big-endian order/ haskus-binary&Read a Word16 with little-endian order0 haskus-binary&Read a Word32 with little-endian order1 haskus-binary&Read a Word64 with little-endian order2 haskus-binary#Read a Word16 with big-endian order3 haskus-binary#Read a Word32 with big-endian order4 haskus-binary#Read a Word64 with big-endian order5 haskus-binary)Read some Word16 with little-endian order6 haskus-binary)Read some Word32 with little-endian order7 haskus-binary)Read some Word64 with little-endian order8 haskus-binary&Read some Word16 with big-endian order9 haskus-binary&Read some Word32 with big-endian order: haskus-binary&Read some Word64 with big-endian order8     ! "#$%&'()*+,-./0123456789:8! "     &'(#$%,-.)*+234/0189:567,None.;=?M[ G haskus-binaryJA Put monad than fails when there is not enough space in the target buffer haskus-binaryBuffer used for writing haskus-binaryCurrent offsetI haskus-binaryRun a buffer putJ haskus-binaryGet current offsetK haskus-binary Get bufferL haskus-binaryGet current offset haskus-binary8Called when there is not enough space left in the buffer haskus-binaryHelper to put something haskus-binaryHelper to put some thingsFGHIJKLGHFJKLI-./-.0123124-.5-.6-.7-.8-.9-.:-.;-.<-.=-.>-.?-.@-.A-.B1CD1EF1EG1EH1EI1EJ1EK1EL1EL1MN1MO1MP12Q12R12S123-TUVWXVYZ[\]^_`abcdefghijjkkllmnopqrstuvwxyyz{|}~                                        ! " # $ %&'()*+,-./0123456789:;<=>?@ABCDEFGHHIJKLMNOPQRRSTUVWXYZ[\]^__]\[ZYXWVUTS`abcdefghijklmnopqrstuvwxyz{|}~m__xL      !"#$%&'()*+,-./0123456789:;<<=>?@ABC>=DEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdeedfghijklmnopqrstuv w w x x y y z z { { | | } } ~ ~               !!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""##############################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%% % % % % %%%%%%%%%%%%%%%%%%%% %!%"%#%$%%%&%'%(%)%*%+%,%-%.%/%0%1%2%3%4%5%6%7%8%9%:%;%<%=%>%?%@%A%B%C%D%E%F%G%H%I%J%K%L%M%N%O%P%Q%R&S&T&U&V&W&X'Y'Z'['['\']'^'_'`'a'b'c'd'e'f'g'h'i'j'k(l(m(n(n(o(p(q(r(s(t(u(v(w(x(y(z({(|(}(~((((((((((s)))))****************************************************************************************++++++++++++++++ + + + ++ ++5++++++++1+++++++++++ +!+"+#+$+%+&+'+(+)+*+++,+-+.+/+0+1+2+3+4+5+6+7+8+9,:,;,;,<,=,>,?,@,A,B,C,D,E,F,GH-TI-TJ1KL1KM1KN1KO1KP1KQ1KR1KS-TT-TU1VW1VX1VY1VZ1V[1V\1V]1V^1K_1K`1Ka1Kb1Kc1Kd1Ke1Kf1Kg1Kh1Ki1Kj1Kk1Kl1Km1Kn1Ko1Kp1Kq1Kr1Ks1Kt1Ku1Kv1Vw1Vx1Vy1Vz1V{1V|1V}1V~1V1V1V1V1V1V1V1V1V1V1V1V1V1V1V1V------------1K1K1V1V1V1V1V-T-.11     !!$$$$$%%%'--,,,,,(haskus-binary-1.3-232zsFhX9jx4FugefmHwWIHaskus.Format.Binary.WordHaskus.Format.Binary.PtrHaskus.Format.Binary.PutHaskus.Format.Binary.GetHaskus.Format.Binary.RecordHaskus.Format.Binary.Bits.OrderHaskus.Format.Binary.LayoutHaskus.Format.Binary.StorableHaskus.Format.Binary.EnumHaskus.Format.Binary.CharHaskus.Format.Binary.Bits.Shift!Haskus.Format.Binary.Bits.BitwiseHaskus.Format.Binary.Bits.Index Haskus.Format.Binary.Bits.Finite Haskus.Format.Binary.Bits.RotateHaskus.Memory.BufferHaskus.Memory.Allocator.MallocHaskus.Format.TextHaskus.Format.Text.ASCIIHaskus.Memory.EmbedHaskus.Memory.ViewHaskus.Utils.MemoryHaskus.Format.Binary.UnionHaskus.Format.Binary.BufferHaskus.Format.Binary.BufferList"Haskus.Format.Binary.BufferBuilder!Haskus.Format.Binary.Bits.ReverseHaskus.Format.Binary.Bits$Haskus.Format.Text.Unicode.CodePoint$Haskus.Format.Text.Unicode.UCDParserHaskus.Format.Text.Unicode.UCDHaskus.Format.Text.UnicodeHaskus.Format.Binary.VectorHaskus.Format.Binary.PositHaskus.Format.Binary.BitSetHaskus.Format.Binary.BitFieldHaskus.Format.Binary.UnumHaskus.Format.Binary.FixedPointHaskus.Format.Binary.Bits.PutHaskus.Format.Binary.Bits.Get#Haskus.Format.Binary.VariableLengthHaskus.Format.Binary.EndiannessHaskus.Format.Binary.Serialize%Haskus.Format.Binary.Serialize.Bufferghc-primGHC.PrimInt#Word#baseGHC.PtrPtrFunPtr+#-#>#>=#==#<#<=# plusWord# minusWord#gtWord#geWord#eqWord#ltWord#leWord#GHC.ForeignPtr ForeignPtrForeign.C.TypesCShortCUShortCIntCUIntCLongCULongCSize Foreign.Ptr wordPtrToPtr ptrToWordPtrWordPtrcastPtrToFunPtrcastFunPtrToPtr nullFunPtr GHC.TypesisTrue#%cereal-0.5.8.0-GaBg9CPzXaNJC4BIy7cegvData.Serialize.PutPutData.Serialize.GetGet/haskus-utils-types-1.3.1-FZISrVbFhHx8KexT7EPBd6Haskus.Utils.TypesModuloBitOrderBBLBBLLL$fShowBitOrder $fEqBitOrder:#>:-> LayoutRootLayoutPathOffsetLayoutPathType LayoutSymbol LayoutIndex LayoutPath layoutIndex layoutSymbolPtrLikecastPtrnullPtrindexPtr ptrDistancewithPtr mallocBytes indexField-->-#> FinalizedPtrnullForeignPtrwithFinalizedPtr indexPtr'mallocForeignPtrByteswithForeignPtrfree$fPtrLikeFinalizedPtr $fPtrLikePtr$fShowFinalizedPtrIntNWordN IntAtLeast WordAtLeastStorablepeekIOpokeIO alignmentsizeOf PaddingExPaddingRequiredPaddingStaticStorableSizeOf Alignment staticPeekIO staticPokeIO staticPeek staticPoke staticSizeOfstaticAlignment wordBytespeekpokesizeOf'sizeOfTsizeOfT' alignment' alignmentT alignmentT' peekByteOff pokeByteOff peekElemOff pokeElemOff allocaBytesallocaBytesAlignedallocamallocwith allocaArray mallocArray peekArray pokeArray withArray withArrayLenwithMany$fStaticStorableInt64$fStaticStorableInt32$fStaticStorableInt16$fStaticStorableInt8$fStaticStorableWord64$fStaticStorableWord32$fStaticStorableWord16$fStaticStorableWord8 $fGStorableM1$fGStorable:*: $fGStorableU1$fStorableWordPtr$fStorableCShort$fStorableCUShort$fStorableCInt$fStorableCUInt$fStorableCLong$fStorableCULong$fStorableCChar$fStorableCSize $fStorablePtr $fStorableInt$fStorableWord$fStorableChar$fStorableDouble$fStorableFloat$fStorableInt64$fStorableInt32$fStorableInt16$fStorableInt8$fStorableWord64$fStorableWord32$fStorableWord16$fStorableWord8 $fGStorableK1CEnum fromCEnumtoCEnum EnumField fromEnumField toEnumFieldmakeEnumWithCustom makeEnumMaybemakeEnum dataToTag$fStaticStorableEnumField$fShowEnumField $fEqEnumField$fStorableEnumFieldChar8 $fShowChar8 $fEqChar8 $fOrdChar8$fStorableChar8SignedShiftableBits signedShiftR signedShiftLuncheckedSignedShiftRuncheckedSignedShiftL signedShiftuncheckedSignedShift ShiftableBitsshiftRshiftLuncheckedShiftRuncheckedShiftLshiftuncheckedShift$fShiftableBitsInteger$fShiftableBitsInt64$fShiftableBitsInt32$fShiftableBitsInt16$fShiftableBitsInt8$fShiftableBitsInt$fShiftableBitsWord64$fShiftableBitsWord32$fShiftableBitsWord16$fShiftableBitsWord8$fShiftableBitsWord$fSignedShiftableBitsInt64$fSignedShiftableBitsInt32$fSignedShiftableBitsInt16$fSignedShiftableBitsInt8$fSignedShiftableBitsIntBitwise.&..|.xor complement$fBitwiseInteger$fBitwiseInt64$fBitwiseInt32$fBitwiseInt16 $fBitwiseInt8 $fBitwiseInt$fBitwiseWord64$fBitwiseWord32$fBitwiseWord16$fBitwiseWord8 $fBitwiseWord IndexableBitsbitsetBitclearBit complementBittestBitpopCount$fIndexableBitsInt64$fIndexableBitsInt32$fIndexableBitsInt16$fIndexableBitsInt8$fIndexableBitsInt$fIndexableBitsWord64$fIndexableBitsWord32$fIndexableBitsWord16$fIndexableBitsWord8$fIndexableBitsWord FiniteBitsBitSizebitSizezeroBitsoneBitscountLeadingZeroscountTrailingZeros$fFiniteBitsInt64$fFiniteBitsInt32$fFiniteBitsInt16$fFiniteBitsInt8$fFiniteBitsInt$fFiniteBitsWord64$fFiniteBitsWord32$fFiniteBitsWord16$fFiniteBitsWord8$fFiniteBitsWord RotatableBitsrotaterotateLrotateRuncheckedRotateuncheckedRotateLuncheckedRotateR$fRotatableBitsInt64$fRotatableBitsInt32$fRotatableBitsInt16$fRotatableBitsInt8$fRotatableBitsInt$fRotatableBitsWord64$fRotatableBitsWord32$fRotatableBitsWord16$fRotatableBitsWord8$fRotatableBitsWord AnyBuffer BufferToList bufferToList BufferSize bufferSizeThawableunsafeBufferThaw FreezableunsafeBufferFreeze Finalizers TypedBufferBufferEF BufferMEF BufferMPFBufferMFBufferPFBufferFBufferEBufferMEBufferMPBufferMBufferPBufferIBuffer MutabilityMutable ImmutableHeapInternalExternal Finalization Collected Finalized NotFinalizedPinningPinned NotPinned newBuffernewPinnedBuffernewAlignedPinnedBuffer addFinalizer touchBuffermakeFinalizablebufferIsDynamicallyPinnedbufferDynamicallyPinnedunsafeWithBufferAddr#unsafeWithBufferPtrwithBufferAddr# withBufferPtr bufferSizeIObufferToListIObufferReadWord8IObufferReadWord8bufferWriteWord8IObufferReadWord16IObufferReadWord16bufferWriteWord16IObufferReadWord32IObufferReadWord32bufferWriteWord32IObufferReadWord64IObufferReadWord64bufferWriteWord64IO copyBuffer$fIsListBuffer$fFreezableBufferBuffer$fFreezableBufferBuffer0$fThawableBufferBuffer$fThawableBufferBuffer0$fBufferSizeBuffer$fBufferSizeBuffer0$fBufferSizeBuffer1$fBufferSizeBuffer2$fBufferSizeBuffer3$fBufferSizeBuffer4$fBufferSizeBuffer5$fBufferSizeBuffer6$fBufferToListBuffer$fBufferToListBuffer0$fBufferToListBuffer1$fBufferToListBuffer2 $fShowPinning $fEqPinning$fShowFinalization$fEqFinalization$fShowMutability$fEqMutabilitynewFinalizedBuffer makeFinalized freeBufferShowText showTextIOshowTextTextBTextI TextBufferASCII$fIsStringTextBuffer$fShowTextTYPEASCIIBuffer EmbedEntryembedEntryTypeembedEntryAlignementembedEntrySymbolembedEntryFilePathembedEntryOffsetembedEntrySize SectionTypeReadOnlySectionWriteableSectionUninitializedSection embedBytes loadSymbolloadMutableSymbol toBufferE toBufferE' toBufferME toBufferME'makeEmbeddingFile embedFileembedPinnedBufferembedUnpinnedBuffer embedBuffer$fShowSectionType$fEqSectionType$fOrdSectionType$fShowEmbedEntry$fEqEmbedEntry$fOrdEmbedEntry ViewPattern PatternFull Pattern1D Pattern2D PatternOnpattern1DOffset pattern1DSizepattern2DOffsetpattern2DWidthpattern2DHeightpattern2DStrideView ViewSource SourceBufferSourceWeakBufferSourceWeakViewunsafePatternSize patternSize viewReadWord8 newBufferViewnewBufferWeakViewnewViewWeakViewcopyBufferWithPattern viewToBuffer showViewState$fShowViewPatternmemCopymemSet allocaArrays peekArrays pokeArrays withArrayswithMaybeOrNullUnion fromUniontoUnion toUnionZero$fStaticStorableUnion$fApplyFoldSizeOf(,)r$fStorableUnion$fStorableUnion0$fApplyFoldAlignment(,)r $fShowUnionPath RecordSizeFieldRecord recordSizerecordAlignmentrecordFieldOffset recordFieldrecordFieldPathOffsetrecordFieldPath recordToList$fStaticStorableRecord $fShowRecord$fApplyExtract(,)r bufferDup bufferZero bufferZipWith isBufferEmpty emptyBufferbufferPeekStorablebufferPeekStorableAtbufferPopStorable bufferPoke bufferMap bufferReverse bufferDrop bufferSplitOn bufferTail bufferAppend bufferCons bufferSnoc bufferInit bufferHead bufferIndexbufferUnpackByteListbufferUnpackByteString bufferTakebufferTakeWhilebufferTakeAtMostbufferPackByteStringbufferPackByteListbufferPackStorablebufferPackStorableList bufferPackPtrbufferUnsafePackPtrbufferUnsafeDropbufferUnsafeTakebufferUnsafeTailbufferUnsafeHeadbufferUnsafeLastbufferUnsafeInitbufferUnsafeIndexbufferUnsafeMapMemorybufferUnsafeUsePtrbufferReadFilebufferWriteFile$fIndexableBitsBuffer$fBitwiseBuffer $fShowBuffer $fEqBuffer $fOrdBufferrunPut putBuffer putByteString putPaddingputPaddingAlignputWord8 putWord16le putWord16be putWord32le putWord32be putWord64le putWord64be BufferListtoBuffer toBufferListtoLazyByteString BufferBuilderemptyBufferBuilder fromBuffer fromWord8$fSemigroupBufferBuilder$fMonoidBufferBuilderReversableBits reverseBitsreverseBitsGenericreverseBitsObviousreverseBits3OpsreverseBits4OpsreverseBitsTablereverseBits7OpsreverseBits5LgNliftReverseBits$fReversableBitsInt$fReversableBitsInt64$fReversableBitsInt32$fReversableBitsInt16$fReversableBitsInt8$fReversableBitsWord$fReversableBitsWord64$fReversableBitsWord32$fReversableBitsWord16$fReversableBitsWord8BitsmakeMask maskLeastBits bitOffset byteOffsetreverseLeastBits bitsToString bitsToStringNbitsFromString getBitRangeCodePointRange CodePoint$fShowCodePoint$fShowCodePointRange $fEqCodePoint$fLiftCodePoint$fEqCodePointRange$fLiftCodePointRangeparseCodePointValueparseCodePointRangeparseCodePointValueOrRangeparseCodePointparseCommentLineskipCommentLines parseFile stripComments parseBlocksparseDerivedNameblocksUTF32_LEUTF32_BE UTF32_BOMUTF16_LEUTF16_BE UTF16_BOMUTF8PlanecodePointPlaneplaneBMPplaneSMPplaneSIPplaneSSP planePrivates$fEncodingUTF32_LE$fEncodingUTF32_BE$fEncodingUTF32_BOM$fEncodingUTF16_LE$fEncodingUTF16_BE$fEncodingUTF16_BOM$fEncodingUTF8 $fShowPlane $fEqPlaneVector vectorBuffer vectorReversetakedropindexfromListfromFilledListfromFilledListZtoList replicateconcatzipWith$fRotatableBitsVector$fIndexableBitsVector$fShiftableBitsVector$fFiniteBitsVector$fBitwiseVector $fEqVector$fStorableVector$fStaticStorableVector $fShowVector$fApplyStoreVector(,)r PositEncoding PositInfinity PositZero PositFields positNegativepositRegimeBitCountpositExponentBitCountpositFractionBitCount positRegime positExponent positFractionPositKZeroInfinityValue PositKindZeroK InfinityKNormalKPosit positKindisZero isInfinity isPositive isNegativepositAbs positEncoding positFieldspositToRationalpositFromRationalpositApproxFactorpositDecimalErrorpositDecimalAccuracypositBinaryErrorpositBinaryAccuracyfloatBinaryAccuracy $fShowPosit$fShowPositKind $fEqPositKind$fShowPositFields$fShowPositEncodingCBitSet toBitOffset fromBitOffsetBitSetnullempty singletoninsertdeletetoBitsfromBitsmemberelem notMemberelems intersectionunionunionsfromListToBitstoListFromBitsenumerateSetBits$fIsListBitSet $fCBitSetWord $fCBitSetInt $fShowBitSet $fEqBitSet $fOrdBitSet$fStorableBitSetBitField BitFields bitFieldsBits extractField extractField' updateField updateField' withField withField' matchFieldsmatchNamedFields$fFieldEnumField $fFieldBitSet $fFieldInt64 $fFieldInt32 $fFieldInt16 $fFieldInt8 $fFieldInt $fFieldWord64 $fFieldWord32 $fFieldWord16 $fFieldWord8 $fFieldWord $fFieldBool $fEqBitFields$fShowBitFields$fApplyName(,)r$fStorableBitFields$fStorableBitFieldCSORNSornAddsornAddUsornAdd sornAddDepsornSubUsornSub sornSubDepSORNSORNBackingWordSignPositiveNegativeNoSignUBit ExactNumber OpenIntervalU BackingWordLog2UnumSize UnumNumbersInfiniteRcpNegIUnumNum unumLabelUnum unumLabelsunumSizeunumZero unumInfiniteunumBits unumEncode unumNegateunumReciprocateunumSignsornBitssornSize sornEmptysornFullsornNonInfinite sornNonZero sornSingle sornInsert sornRemove sornMember sornUnion sornIntersectsornComplement sornNegate sornElems sornFromElems sornFromTo csornToSorn csornSize csornBits csornEmpty csornIsEmpty csornFromTo csornFull csornSingle $fUnumNumI $fUnumNumNeg $fUnumNumRcp$fUnumNumUncertain$fApplyGetLabel(,)r$fShowU$fEqU $fShowSORN $fShowCSORN $fShowUBit$fEqUBit $fShowSign$fEqSign FixedPoint toFixedPointfromFixedPoint$fStorableFixedPoint$fShowFixedPoint$fEqFixedPointBitPutBitPutT BitPutStatebitPutStateBuilderbitPutStateCurrentbitPutStateOffsetbitPutStateBitOrdernewBitPutStateputBits putBitsBuffergetBitPutBufferListgetBitPutBuffer runBitPutT runBitPutputBitsM putBitBoolMputBitsBufferMchangeBitPutOrderwithBitPutOrderBitGetBitGetT BitGetStatebitGetStateInputbitGetStateBitOffsetbitGetStateBitOrdernewBitGetStateisEmptyskipBitsskipBitsToAlignOnWord8getBitsgetBitsChecked getBitsBuffer runBitGetT runBitGetrunBitGetPartialTrunBitGetPartialresumeBitGetPartialTresumeBitGetPartialisEmptyM skipBitsMskipBitsToAlignOnWord8MgetBitsMgetBitsCheckedM getBitBoolM getBitsBSMchangeBitGetOrderwithBitGetOrder$fShowBitGetState remainingskip uncheckedSkip skipAlignuncheckedSkipAlign lookAhead lookAheadM lookAheadEconsumeExactly consumeAtMost getBuffergetWord8 getWord16le getWord16be getWord32le getWord32be getWord64le getWord64begetWhilegetWhole getRemaining countBytes alignAfter getBufferNulrunGet runGetOrFail getBitGet getManyAtMostgetManyBounded getULEB128 putULEB128 getSLEB128 putSLEB128getLEB128BufferAsLittleEndian AsBigEndianByteReversable reverseByteshostToBigEndianbigEndianToHosthostToLittleEndianlittleEndianToHostExtendedWordPuttersextwordPutter8extwordPutter16extwordPutter32extwordPutter64extwordPutterNExtendedWordGettersextwordGetter8extwordGetter16extwordGetter32extwordGetter64extwordGetterNWordSize WordSize32 WordSize64 WordPutters wordPutter8 wordPutter16 wordPutter32 wordPutter64 WordGetters wordGetter8 wordGetter16 wordGetter32 wordGetter64 Endianness LittleEndian BigEndiangetWordGettersgetWordPuttersgetExtendedWordGettersgetExtendedWordPuttersgetHostEndiannesshostEndianness$fCEnumEndianness$fByteReversableWord64$fByteReversableWord32$fByteReversableWord16$fByteReversableWord8$fStorableAsBigEndian$fStaticStorableAsBigEndian$fShowAsBigEndian$fStorableAsLittleEndian$fStaticStorableAsLittleEndian$fShowAsLittleEndian$fEqEndianness$fShowEndianness$fEnumEndianness$fShowWordSize $fEqWordSize$fEqAsBigEndian$fOrdAsBigEndian$fEnumAsBigEndian$fNumAsBigEndian$fIntegralAsBigEndian$fRealAsBigEndian$fBitwiseAsBigEndian$fFiniteBitsAsBigEndian$fReversableBitsAsBigEndian$fRotatableBitsAsBigEndian$fShiftableBitsAsBigEndian$fIndexableBitsAsBigEndian$fEqAsLittleEndian$fOrdAsLittleEndian$fEnumAsLittleEndian$fNumAsLittleEndian$fIntegralAsLittleEndian$fRealAsLittleEndian$fBitwiseAsLittleEndian$fFiniteBitsAsLittleEndian$fReversableBitsAsLittleEndian$fRotatableBitsAsLittleEndian$fShiftableBitsAsLittleEndian$fIndexableBitsAsLittleEndian SerializableEndianputgetSizeExactlyAtLeastDynamicGetMonad getWord16 getWord32 getWord64 getWord8s getWord16s getWord32s getWord64s getBufferIntoPutMonad putWord16 putWord32 putWord64 putWord8s putWord16s putWord32s putWord64spreAllocateAtLeast putWord16LE putWord32LE putWord64LE putWord16BE putWord32BE putWord64BE putWord16LEs putWord32LEs putWord64LEs putWord16BEs putWord32BEs putWord64BEs getWord16LE getWord32LE getWord64LE getWord16BE getWord32BE getWord64BE getWord16LEs getWord32LEs getWord64LEs getWord16BEs getWord32BEs getWord64BEs$fSerializableAsLittleEndian$fSerializableAsBigEndian$fSerializableBuffer$fSerializableInt64$fSerializableInt32$fSerializableInt16$fSerializableInt8$fSerializableWord64$fSerializableWord32$fSerializableWord16$fSerializableWord8 BufferPut BufferPutT runBufferPut getPutOffset getPutBuffer setPutOffset$fPutMonadBufferPutT$fFunctorBufferPutT$fApplicativeBufferPutT$fMonadBufferPutT$fMonadFailBufferPutT$fMonadFixBufferPutT$fMonadIOBufferPutT$fMonadTransBufferPutTnullFinalizedPtrIntI#GHC.IntInt8I8#Int16I16#Int32I32#Int64I64#WordW#GHC.WordWord8W8#Word16W16#Word32W32#Word64W64#leInt64ltInt64geInt64gtInt64neInt64eqInt64leInt32ltInt32geInt32gtInt32neInt32eqInt32leInt16ltInt16geInt16gtInt16neInt16eqInt16leInt8ltInt8geInt8gtInt8neInt8eqInt8leWord64ltWord64geWord64gtWord64neWord64eqWord64leWord32ltWord32geWord32gtWord32neWord32eqWord32leWord16ltWord16geWord16gtWord16neWord16eqWord16leWord8ltWord8geWord8gtWord8neWord8eqWord8 GHC.ClasseseqWordneWordeqIntneIntgtIntgeIntltIntleIntgtWordgeWordltWordleWorduncheckedIShiftRA64#uncheckedIShiftL64# byteSwap64uncheckedShiftRL64#uncheckedShiftL64# byteSwap32 byteSwap16fsPeekfsPokeTrueinsertFinalizer runFinalizers newFinalizers RealWorld(primitive-0.6.4.0-1mvPxVOk6Q6KOkWCZxqESfControl.Monad.Primitive PrimMonad PrimState primitiveevalPrimtouchunsafeInlineSTunsafeInlineIOunsafeInlinePrimunsafeIOToPrimunsafeSTToPrimunsafePrimToIOunsafePrimToSTunsafePrimToPrimstToPrimioToPrimprimToSTprimToIO primToPrimliftPrim primitive_PrimBaseinternalmakeEmbedEntry embedFile' patternOffsetpatternApplyOn withValidViewbufferWeakViewFinaliermemsetmemcpytoUnion' unionSizeunionAlignment FieldPathTypeFieldPathOffsetRecordAlignmentFullRecordSizeGHC.RealmoddivEncodingCodeUnit MaxCodeUnit BinarySorting AllowedBOM ElemOffsetmap WholeSizeOutputOffsetmatchNamedFields' UnumMembersUnumIndexables UnumPositivesflushIncompletemaxminbufferPutBufferbufferPutOffsetbufferPutNotEnoughSpace putSomething putSomeThings