úÎ)$g#      !"(c) Lennart Kolmodin 2010-2011BSD3-style (see LICENSE)kolmodin@gmail.com experimental3portable (should run where the package binary runs) Safe-Inferred  Put a 1 bit #.$make_mask 3 = 00000111Put the n lower bits of a %.Put the n lower bits of a &.Put the n lower bits of a '.Put the n lower bits of a (.Put a ).Run a * inside 6. Any partially written bytes will be flushed before *# executes to ensure byte alignment.Run the  monad inside *.+,-./0$12345  +,-./0$12345(c) Lennart Kolmodin 2010-2011BSD3-style (see LICENSE)kolmodin@gmail.com experimental3portable (should run where the package binary runs)None;HM  , is a monad, applicative and a functor. See   for how to run it. dA block that will be read with only one boundry check. Needs to know the number of bits in advance. ˆGet a block. Will be read with one single boundry check, and therefore requires a statically known number of bits. Build blocks using , , , , ,  and 6.7make_mask 3 = 00000111 Run a   within the Binary packages 8I monad. If a byte has been partially consumed it will be discarded once   is finished.9Make sure there are at least n bits. Get 1 bit as a #.Get n bits as a %. n must be within [0..8].Get n bits as a &. n must be within [0..16].Get n bits as a '. n must be within [0..32].Get n bits as a (. n must be within [0..64].Get n bytes as a ).Get n bytes as a lazy ByteString.WTest whether all input has been consumed, i.e. there are no remaining undecoded bytes. Read a 1 bit #.Read n bits as a %. n must be within [0..8].Read n bits as a &. n must be within [0..16].Read n bits as a '. n must be within [0..32].Read n bits as a (. n must be within [0..64].Read n bytes as a ).5 :; <=> ?7@ABCDEFGHI JKLM9 NOPQRSTUVWXYZ   1 :; <=> ?7@ABCDEFGHI JKLM9 NOPQRSTUVWXYZ(c) Lennart Kolmodin 2010-2011BSD3-style (see LICENSE)kolmodin@gmail.com experimental3portable (should run where the package binary runs)None !""!  !"[      !"#$%&'()*+,-+,.+,/+,012345677889:;<=>+?@*4ABCDE77FGHIJKLMNOPQRSTUVWXYZ[\]^_`abbinary-bits-0.5Data.Binary.Bits.PutData.Binary.Bits.GetData.Binary.BitsBitPutputBoolputWord8 putWord16be putWord32be putWord64be putByteStringjoinPut runBitPutBitGetBlockblock runBitGetgetBoolgetWord8 getWord16be getWord32be getWord64be getByteStringgetLazyByteStringisEmptyboolword8word16beword32beword64be byteString BinaryBitputBitsgetBits$fBinaryBitWord64$fBinaryBitWord32$fBinaryBitWord16$fBinaryBitWord8$fBinaryBitBoolghc-prim GHC.TypesBool make_maskbaseGHC.WordWord8Word16Word32Word64bytestring-0.10.4.0Data.ByteString.Internal ByteStringbinary-0.7.1.0Data.Binary.PutPutSPairSrunflushflushIncomplete $fMonadBitPut$fApplicativeBitPut$fFunctorBitPutControl.Applicative ApplicativeData.Binary.Get.InternalGet ensureBitsBrunStateincS bit_offset byte_offsetreadBool readWord8 readWord16be readWord32be readWord64bereadByteStringreadWithoutOffsetreadWithOffset mkInitState putBackStategetStateputState shiftl_w8 shiftl_w16 shiftl_w32 shiftr_w8 shiftr_w16 shiftr_w32 shiftl_w64 shiftr_w64$fApplicativeBitGet$fFunctorBitGet $fMonadBitGet$fApplicativeBlock$fFunctorBlock