úÎ#‡!     3portable (should run where the package binary runs) experimentalkolmodin@gmail.com Safe-Inferred Put a 1 bit . Put 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 .. Any partially written bytes will be flushed  before "$ executes to ensure byte alignment. Run the  monad inside ". #$%&'()*+  #$%&'()*+3portable (should run where the package binary runs) experimentalkolmodin@gmail.comNone  , is a monad, applicative and a functor. See    for how to run it. IA 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 7 therefore requires a statically known number of bits.  Build blocks using , , , , ,   and ,. -make_mask 3 = 00000111 Run a   within the Binary packages . monad. If a byte has 3 been partially consumed it will be discarded once   is finished. /Make 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 !.  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 !. 3 01 234 5-6789:;<=>? @ABC/ DEFGHIJKLMNOP   / 01 234 5-6789:;<=>? @ABC/ DEFGHIJKLMNOP3portable (should run where the package binary runs) experimentalkolmodin@gmail.comNoneQRSTUQRSTUV      !"#$%#$&#$'#$()*+,-.//001234#567,89:;<//=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^binary-bits-0.2Data.Binary.Bits.PutData.Binary.Bits.GetData.Binary.BitsBitPutputBoolputWord8 putWord16be putWord32be putWord64be putByteStringjoinPut runBitPutBitGetBlockblock runBitGetgetBoolgetWord8 getWord16be getWord32be getWord64be getByteStringboolword8word16beword32beword64be byteString BinaryBitputBitsgetBitsghc-prim GHC.TypesBoolbaseGHC.WordWord8Word16Word32Word64bytestring-0.10.0.0Data.ByteString.Internal ByteStringbinary-0.6.2.0Data.Binary.PutPutSPairSrunflushflushIncomplete $fMonadBitPutControl.Applicative Applicative make_maskData.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$fBinaryBitWord64$fBinaryBitWord32$fBinaryBitWord16$fBinaryBitWord8$fBinaryBitBool