!iVb;      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:Safe2JbitvecThe number of s in a ;1. A handy constant to have around when defining ;&-based bulk operations on bit vectors. <=>?@ABCDEFGHIJKLMNOPQRSTUVWNone %@AHV!wbitvecread a word at the given bit offset in little-endian order (i.e., the LSB will correspond to the bit at the given address, the 2's bit will correspond to the address + 1, etc.). If the offset is such that the word extends past the end of the vector, the result is zero-padded.bitvecread a word at the given bit offset in little-endian order (i.e., the LSB will correspond to the bit at the given address, the 2's bit will correspond to the address + 1, etc.). If the offset is such that the word extends past the end of the vector, the result is zero-padded.bitvecEwrite a word at the given bit offset in little-endian order (i.e., the LSB will correspond to the bit at the given address, the 2's bit will correspond to the address + 1, etc.). If the offset is such that the word extends past the end of the vector, the word is truncated and as many low-order bits as possible are written. XYZ Trustworthy%5bitvecThe [ instance is currently based on integers mod 2, so (+) and (-) are XOR, (*) is AND, and all the unary operations are identities. Saturating operations would also be a sensible alternative. Trustworthy>7Z  bitvec6Get the length of the vector that would be created by   bitvecClone a specified number of bits from a vector of words into a new vector of bits (interpreting the words in little-endian order, as described at c). If there are not enough words for the number of bits requested, the vector will be zero-padded. bitvecclone a vector of bits to a new unboxed vector of words. If the bits don't completely fill the words, the last word will be zero-padded. bitvec%Map a function over a bit vector one ; at a time (S bits at a time). The function will be passed the bit index (which will always be -aligned) and the current value of the corresponding word. The returned word will be written back to the vector. If there is a partial word at the end of the vector, it will be zero-padded when passed to the function and truncated when the result is written back to the array.bitvecSame as   but without the index.bitvec"Flip every bit in the given vectorbitvec)return the number of ones in a bit vectorbitvecReturns \" if all bits in the vector are setbitvecReturns \ if any bit in the vector is setf  !"#$%&'()*+,-      c  !"#$%&'()*+,-       Trustworthy>O "bitvecGiven a number of bits and a vector of words, concatenate them to a vector of bits (interpreting the words in little-endian order, as described at c). If there are not enough words for the number of bits requested, the vector will be zero-padded.#bitvecGiven a vector of bits, extract an unboxed vector of words. If the bits don't completely fill the words, the last word will be zero-padded.$bitveczipWords f xs ys = MfromWords (min (length xs) (length ys)) (zipWith f (toWords xs) (toWords ys))]bitvec(internal) N-ary $m with specified output length. Makes all kinds of assumptions; mainly only valid for union and intersection.+bitvec"Flip every bit in the given vector,bitveckGiven a vector of bits and a vector of things, extract those things for which the corresponding bit is set. For example, 1select (V.map (fromBool . p) x) x == V.filter p x.-bitvecmGiven a vector of bits and a vector of things, extract those things for which the corresponding bit is unset. For example, :exclude (V.map (fromBool . p) x) x == V.filter (not . p) x.0bitvec)return the number of ones in a bit vector2bitvec\" if all bits in the vector are set3bitvec\ if any bit in the vector is set9bitvecRReturn the address of the first bit in the vector with the specified value, if any./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~!"#$%&'()*+,-./0123456789:./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~!"#$%)&*'(+,.-/0123574689:^      !"#$%&'()*+,-./01234566 6 6 6 6 6666666768696:6;6<6=6>6?6@6A6B6C6D6E6F6G6H6I6J6K6L6M6N6O6P6Q6R6S6T6U6V6W6X6Y6Z6[6\6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6u6v6w6x6y6z6{6|6}6~666666666666666666666666666666666666666666666666$66666666666666666%666+6,6)6*6-6061626.6/6366666666666666465           !"#$%&'()*+,-./0123456789:;<=>?@ABCD!"EFG%bitvec-0.1.1.0-5zCL7EOPsbpGSRfy81Z5zOData.Vector.Unboxed.Mutable.BitData.Vector.Unboxed.BitData.BitData.Bit.Internal Data.Vector.Unboxed.Bit.Internal&vector-0.12.0.2-H1Eu1OCXL0L9y980iV8EwUData.Vector.Unboxed.Mutableunzip6zip6unzip5zip5unzip4zip4unzip3zip3unzipzipnextPermutation unsafeMovemove unsafeCopycopyset unsafeSwap unsafeModify unsafeWrite unsafeReadswapmodifywritereadclear unsafeGrowgrowclone replicateM replicate unsafeNewnewoverlaps unsafeTail unsafeInit unsafeDrop unsafeTake unsafeSlicetailinitsplitAtdroptakeslicenulllengthData.Vector.Unboxedfreezethaw unsafeThaw unsafeFreeze fromListNfromListtoListscanr1'scanr1scanr'scanr postscanr' postscanr prescanr'prescanrscanl1'scanl1scanl'scanl postscanl' postscanl prescanl'prescanlfold1M'_ifoldM'_foldM'_fold1M_ifoldM_foldM_fold1M'ifoldM'foldM'fold1MifoldMfoldM minIndexByminIndex maxIndexBymaxIndex minimumByminimum maximumBymaximumproductsumifoldr'ifoldrifoldl'ifoldlfoldr1'foldr'foldr1foldrfoldl1'foldl'foldl1foldl elemIndices elemIndex findIndicesfindnotElemelembreakspanunstablePartition partition dropWhile takeWhilefilterM imapMaybemapMaybeifilteruniqfilter izipWithM_ zipWithM_ izipWithMzipWithM izipWith6 izipWith5 izipWith4 izipWith3izipWithzipWith6zipWith5zipWith4zipWith3zipWithforM_forMimapM_mapM_imapMmapM concatMapimapmapindexedunsafeBackpermute backpermuteunsafeAccumulate_unsafeAccumulate unsafeAccum accumulate_ accumulateaccum unsafeUpdate_ unsafeUpdate unsafeUpdupdate_update//forcecreateTcreate iterateNM generateMconcat++snocconsenumFromThenTo enumFromTo enumFromStepN enumFromN constructrN constructN unfoldrNMunfoldrMunfoldrNunfoldriterateNgenerate singletonempty unsafeLastM unsafeHeadM unsafeIndexMlastMheadMindexM unsafeLast unsafeHead unsafeIndexlasthead!?!Data.Vector.Unboxed.BaseMV_UnitMV_IntMV_Int8MV_Int16MV_Int32MV_Int64MV_WordMV_Word8 MV_Word16 MV_Word32 MV_Word64MV_Float MV_DoubleMV_CharMV_Bool MV_ComplexMV_2MV_3MV_4MV_5MV_6MVectorVectorIOVectorSTVectorUnboxData.Vector.GenericconvertBittoBoolfromBoolwordSize indexWordreadWord writeWordpadWithpad $fBitsBit $fIntegralBit $fRealBit$fNumBit $fReadBit $fShowBit wordLengthcloneFromWords cloneToWordsmapMInPlaceWithIndexmapInPlaceWithIndex mapMInPlace mapInPlace zipInPlace unionInPlaceintersectionInPlacedifferenceInPlacesymDiffInPlace invertInPlaceselectBitsInPlaceexcludeBitsInPlace countBitslistBitsandorallanyallBitsanyBitsreverseInPlace fromWordstoWordszipWordsunion intersection differencesymDiffunions intersectionsinvertselectexclude selectBits excludeBitsreversefirst findIndexghc-prim GHC.TypesWordlg2 lgWordSize wordSizeMask wordSizeMaskC divWordSize modWordSize mulWordSizenWordsnBitsaligned notAlignedalignUp alignDownreadBit extendToWordmaskmaskedisMaskedmeld extractWord spliceWord reverseWordreversePartialWorddiffffs bitsInWord selectWordBitMVecBitVec cloneWordsbaseGHC.NumNumTruezipMany