h$      None   BitSyntaxAn unsigned number of some number of bytes. Valid arguments are 1, 2 and 4 BitSyntaxAn unsigned, little-endian integer of some number of bytes. Valid arguments are 2 and 4 BitSyntaxA variable length element to be decoded by a custom function. The function's name is given as the single argument and should have type *Monad m => ByteString -> m (v, ByteString) BitSyntaxSkip some number of bytes BitSyntaxA fixed size field, the result of which is a ByteString of that length. BitSyntaxDecode a value and ignore it (the result will not be part of the returned tuple) BitSyntaxLike variable, but the decoding function is passed the entire result tuple so far. Thus the function whose name passed has type 3Monad m => ByteString -> (...) -> m (v, ByteString) BitSyntaxTakes the most recent element of the result tuple and interprets it as the length of this field. Results in a ByteString  BitSyntaxDecode a series of bit fields, results in a list of Integers. Each element of the argument is the length of the bit field. The sums of the lengths must be a multiple of 8  BitSyntaxResults in a ByteString containing the undecoded bytes so far. Generally used at the end to return the trailing body of a structure, it can actually be used at any point in the decoding to return the trailing part at that point.  BitSyntaxUnsigned 8-bit int  BitSyntaxUnsigned 16-bit int BitSyntaxUnsigned 32-bit int BitSyntax"Little-endian, unsigned 16-bit int BitSyntax"Little-endian, unsigned 32-bit int BitSyntax+Appends the string with a trailing NUL byte BitSyntax)Appends the string without any terminator BitSyntaxAppends a ByteString BitSyntaxPacks a series of bit fields together. The argument is a list of pairs where the first element is the size (in bits) and the second is the value. The sum of the sizes for a given PackBits must be a multiple of 8 BitSyntax4Make a binary string from the list of elements given BitSyntaxFirst byte of a . BitSyntaxConvert little-endian  to big-endian . BitSyntaxConvert little-endian  to big-endian . BitSyntaxConvert little-endian  to little-endian . BitSyntaxConvert little-endian  to little-endian . BitSyntaxExample usage: parsePascalString :: Monad m => ByteString -> m (Word16, ByteString) parsePascalString bs = $( bitSyn [UnsignedLE 2, LengthPrefixed] ) bs          !"#$"#%&(BitSyntax-0.3.2.2-1uda1ZQ8FOaG1zDGqO8es8Data.BitSyntaxReadTypeUnsigned UnsignedLEVariableSkipFixedIgnoreContextLengthPrefixed PackedBitsRestBitBlockU8U16U32U16LEU32LENullTerminated RawString RawByteStringPackBitsmakeBitsdecodeU8 decodeU16 decodeU32 decodeU16LE decodeU32LEbitSyn$fShowBitBlockbytestring-0.10.10.0Data.ByteString.Internal ByteStringbaseGHC.WordWord16Word32