b1     None)!"%&*,/0234569:;<=?BDFILNOQRT[\ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None)!"%&*,/0234569:;<=?BDFILNOQRT[\None)!"%&*,/0234569:;<=?BDFILNOQRT[\A newtypeS wrapper which provides an array-like interface to a type, which has instances of <, S and u.8You can construct bit arrays by wrapping numeric values:BitArray (7 :: Int8)[qq|00000111|]"or directly from numeric literals:7 :: BitArray Int8[qq|00000111|]@or using a binary notation quasi-quoter, assuming you have the  QuasiQuotes pragma turned on:q|0111|] :: BitArray Int8[qq|00000111|]BitArray derives the < and Sr instances from the base type, so it supports all the standard bitwise operations for fixed-size integral types.A binary number quasi-quoter. Produces a numeric literal at compile time. Can be used to construct both bit arrays and integral numbers.[qq|011|] :: Int3[qq|011|] :: BitArray Int8[qq|00000011|]+Unwrap the underlying value of a bit array.&Convert into a binary notation string.toString (BitArray (5 :: Int8)) "00000101"Parse a binary notation string.*parseString "123" :: Maybe (BitArray Int8)Nothing*parseString "101" :: Maybe (BitArray Int8)Just [qq|00000101|] Convert into a list of set bits.CThe list is ordered from least significant to most significant bit."Construct from a list of set bits.TConvert into a list of boolean values, which represent the "set" flags of each bit.CThe list is ordered from least significant to most significant bit. HConstruct from a list of boolean flags for the "set" status of each bit.HThe list must be ordered from least significant to most significant bit. Map over the set bits. 3Perform a right-associative fold over the set bits. Traverse thru set bits. Traverse thru set bits.#Parses a literal of zeros and ones."read "[qq|1110|]" :: BitArray Int8[qq|00001110|]!unwrap (read "[qq|1110|]") :: Int14%Produces a literal of zeros and ones.show (BitArray (5 :: Int8))"[qq|00000101|]"          !"#$% &' &( )* +, +- !.#/0 12#/3 ! !4 56 57 89 :; !< => =? =@ =A =B =C =D =E =F =G =H =I#JK#JL#JM NO NP NQ NR NS NT NU NV NW NX NY NZ N[ N\ N] N^ N_ N` Na 5b 5c 5d 5e 5f 5g 5h 5i 5j 5k 5l 5m !n !o !p !q !r st su sv sw sx sy sz s{ s| s} s~ s s s s ! ! !  #J#J#J#J#J#J#J#J  5 5 N N N N N N N N N N N N N N N 5 5 5 5 5 5   :  ! ! ! ! !     ! ! ! !#######     ! ! !#### 5 5#$##        : #     1 1 1 1 1 1 1 1          ! " # $ % & ' ( ) * + , - s. s/ s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s: s; s< s= s> s? s@ sA sB sC sD sE sF sG sH sI sJ sK sL sM sN sO sP sQ sR sS sT sU sV sW sX sY sZ s[ \] ^_ ^` ^a ^b cd ce cf gh gi gj gk lm ln op qr qs qt qu qv qw qx qy qz q{ q| q} ~ 8 8 8 8 8 8 8 8 8 8 8 8 8 8                                                 ) ) ) ) ) ) ) ) ) ) ) )                                                                                                                   !" !# !$ !% !& !' !( !) !* !+ !, !- !. !/ !0 !1 !2 !3 !4 !5 !6 !7 !8 !9 !: !; !< != !> !? !@ !A !B !C !D !E !F !G !H !I !J !K !L !M !M !N !O !P !Q !R !S !T !U !V !W !X !Y !Z !Z ![ ![ 1\ 1] 1^ 1_ 1_ 1` 1` 1a 1a 1b 1b 1c 1c 1d 1d 1e 1f 1g 1h 1i 1j 1k 1l 1m 1n 1o 1p 1q 1r 1s 1t 1u 1v 1w 1x 1y 1z 1{ 1| 1} 1~ 1 1 1 1 1                                                                           1 1 1 1 1 1 1 1 1 1                     : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :                           ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L MN MN O P QR ST SU SV SW SX SY SZ S[ S\ S] S^ S_ S` Sa Sb Sc Sd Se Sf Sg Sh Si Sj Sk Sl Sm Sn So Sp Sq Sr st su sv wx wy z{ z| z} z~     5 5 5 5 5 5 5 5 5      & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &          + + +     ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !      #J#J#J&bit-array-0.1.2-CWQbNqLr0wnDfVii21wplcBitArrayBitArray.PreludeBitArray.ParserqqunwraptoString parseStringtoListfromList toBoolList fromBoolListmapfoldrmapM_ traverse_$fIsStringBitArray$fReadBitArray$fShowBitArray$fBoundedBitArray$fEnumBitArray $fEqBitArray$fIntegralBitArray$fDataBitArray $fNumBitArray $fOrdBitArray$fRealBitArray $fIxBitArray$fGenericBitArray$fBitsBitArray$fFiniteBitsBitArrayboolbaseGHC.Base++ghc-primGHC.PrimseqGHC.Listfilterzip System.IOprint Data.Tuplefstsnd otherwise GHC.MagiclazyGHC.IO.Exception assertErrorinline$GHC.Real fromIntegral realToFrac Control.MonadguardData.Typeable.InternalmkAppTyjoinGHC.EnumBoundedminBoundmaxBoundEnumenumFrom enumFromThenenumFromThenTo enumFromTofromEnumtoEnumsuccpred GHC.ClassesEq==/= GHC.FloatFloatingpiexplogsqrt**logBasesincostanasinacosatansinhcoshtanhasinhacoshatanh Fractional fromRational/recipIntegral toIntegerquotremdivmodquotRemdivModMonad>>=>>returnfail Data.DataDatagfoldlgunfoldtoConstr dataTypeOf dataCast1 dataCast2gmapTgmapQlgmapQrgmapQgmapQigmapMgmapMpgmapMoFunctorfmap<$GHC.NumNum*+-negate fromIntegerabssignumOrd>=minmax><<=compareGHC.ReadRead readsPrecreadListreadPrec readListPrecReal toRational RealFloat floatRadix floatDigits floatRange decodeFloat encodeFloatexponent significand scaleFloatisNaN isInfiniteisDenormalizedisNegativeZeroisIEEEatan2RealFracproperFractiontruncateroundceilingfloorGHC.ShowShow showsPrecshowshowListGHC.ArrIxrangeindexinRange rangeSizeTypeable Data.StringIsString fromString Applicativepure<*>*><* Data.FoldableFoldablefoldMapnulllengthfoldlfoldl'foldl1sumproductfoldr1maximumminimumelemfoldfoldr'Data.Traversable TraversabletraversemapM sequenceAsequence GHC.GenericsGenericMonoidmemptymappendmconcat GHC.TypesBoolFalseTrueCharDoubleFloatIntGHC.IntInt8Int16Int32Int64 integer-gmpGHC.Integer.TypeIntegerMaybeNothingJustOrderingLTEQGTRatioRational RealWorldIOWordGHC.WordWord8Word16Word32Word64 Data.EitherEitherLeftRightTypeRepTyConGHC.IO.Handle.TypesHandleGHC.STSTuntangle ioException heapOverflow stackOverflowallocationLimitExceededblockedIndefinitelyOnSTMblockedIndefinitelyOnMVarunsupportedOperation Data.Fixed showFixedmod'divMod'div'FixedMkFixed HasResolution resolutionE0UniE1DeciE2CentiE3MilliE6MicroE9NanoE12Pico tyconModule tyconUQname isNorepType mkNoRepType mkCharConstr mkRealConstrmkIntegralConstr mkCharType mkFloatType mkIntTypemaxConstrIndex constrIndex indexConstr isAlgType readConstr showConstr constrFixity constrFieldsdataTypeConstrsmkConstr mkDataType repConstr constrRep constrType dataTypeRep dataTypeName fromConstrM fromConstrB fromConstrDataTypeConstrDataRepIntRepFloatRepAlgRepCharRepNoRep ConstrRep AlgConstr IntConstr FloatConstr CharConstrConIndexFixityPrefixInfixSystem.TimeouttimeoutSystem.Mem.StableName eqStableNamehashStableNamemakeStableName StableName System.Mem performGCperformMajorGCperformMinorGC System.Exitdie exitSuccess exitFailureexitWith Data.STRef modifySTRef' modifySTRef Data.RatioapproxRational Debug.Trace traceMarkerIO traceMarker traceEventIO traceEvent traceStack traceShowM traceShowId traceShowtraceIdtrace putTraceMsgtraceIO Data.ListisSubsequenceOfmfilter<$!>unless replicateM_ replicateMfoldM_foldM zipWithM_zipWithM mapAndUnzipMforever<=<>=>filterMfoldMapDefault fmapDefault mapAccumR mapAccumLforMControl.Applicativeoptional WrappedMonad WrapMonad unwrapMonad WrappedArrow WrapArrow unwrapArrowZipList getZipList Control.ArrowleftApp^<<<<^>>^^>>returnAArrowarrfirstsecond***&&&Kleisli runKleisli ArrowZero zeroArrow ArrowPlus<+> ArrowChoice|||+++ ArrowApplyapp ArrowMonad ArrowLooploopControl.Category>>><<<Categoryid.readIOreadLn appendFile writeFilereadFileinteract getContentsgetLinegetCharputStrLnputStrputChar GHC.IO.HandlehClose GHC.Conc.IO registerDelay threadDelay closeFdWiththreadWaitWriteSTMthreadWaitReadSTMthreadWaitWritethreadWaitReadioManagerCapabilitiesChangedensureIOManagerIsRunningGHC.Conc.Signal runHandlers setHandlerSignal HandlerFunSystem.IO.Unsafe unsafeFixIOControl.ExceptionallowInterruptcatchesHandlerSystem.IO.Error catchIOErrorannotateIOError modifyIOErrorioeSetFileName ioeSetHandleioeSetLocationioeSetErrorStringioeSetErrorTypeioeGetFileName ioeGetHandleioeGetLocationioeGetErrorStringioeGetErrorTypeisUserErrorTypeisPermissionErrorTypeisIllegalOperationErrorTypeisEOFErrorTypeisFullErrorTypeisAlreadyInUseErrorTypeisDoesNotExistErrorTypeisAlreadyExistsErrorType userErrorTypepermissionErrorTypeillegalOperationErrorType eofErrorType fullErrorTypealreadyInUseErrorTypedoesNotExistErrorTypealreadyExistsErrorType isUserErrorisPermissionErrorisIllegalOperation isEOFError isFullErrorisAlreadyInUseErrorisDoesNotExistErrorisAlreadyExistsError mkIOError tryIOErrorControl.Exception.BasebracketOnErrorbracket_finallybracket onException mapException handleJusthandle catchJustcatchPatternMatchFail RecSelError RecConError RecUpdError NoMethodError TypeErrorNonTerminationNestedAtomically Text.Readread readMaybe readEitherreads GHC.Conc.SyncgetUncaughtExceptionHandlersetUncaughtExceptionHandler reportErrorreportStackOverflowwithMVar writeTVarreadTVar readTVarIO newTVarIOnewTVaralwaysalwaysSucceedscatchSTMthrowSTMorElseretry atomically unsafeIOToSTMmkWeakThreadIdthreadCapability threadStatus runSparksparpseq labelThreadyield myThreadIdthrowTo killThread childHandler numSparksgetNumProcessorssetNumCapabilitiesgetNumCapabilitiesnumCapabilitiesforkOnWithUnmaskforkOnforkIOWithUnmaskforkIOdisableAllocationLimitenableAllocationLimitgetAllocationCountersetAllocationCounterThreadId BlockReason BlockedOnMVarBlockedOnBlackHoleBlockedOnException BlockedOnSTMBlockedOnForeignCallBlockedOnOther ThreadStatus ThreadRunningThreadFinished ThreadBlocked ThreadDiedSTMTVarioErrorasyncExceptionFromExceptionasyncExceptionToExceptionBlockedIndefinitelyOnMVarBlockedIndefinitelyOnSTMDeadlockAllocationLimitExceededAssertionFailedSomeAsyncExceptionAsyncException StackOverflow HeapOverflow ThreadKilled UserInterruptArrayExceptionIndexOutOfBoundsUndefinedElementExitCode ExitSuccess ExitFailure IOErrorTypeEOF AlreadyExists NoSuchThing ResourceBusyResourceExhaustedIllegalOperationPermissionDenied UserErrorUnsatisfiedConstraints SystemError ProtocolError OtherErrorInvalidArgumentInappropriateType HardwareFaultUnsupportedOperation TimeExpiredResourceVanished InterruptedData.Functor.ConstConstgetConstfindnotElem minimumBy maximumByallanyorand concatMapconcatmsumasum sequence_ sequenceA_forM_for_foldlMfoldrM Data.Monoid<>DualgetDualEndoappEndoAllgetAllAnygetAnySumgetSumProduct getProductFirstgetFirstLastgetLastAltgetAlt Data.IORefatomicWriteIORefatomicModifyIORef'atomicModifyIORef modifyIORef' modifyIORef mkWeakIORef GHC.IORef writeIORef readIORefnewIORefIORefGHC.IOevaluateuninterruptibleMaskuninterruptibleMask_maskmask_getMaskingState interruptiblethrowIOstToIO MaskingStateUnmaskedMaskedInterruptibleMaskedUninterruptible userError IOExceptionIOError ioe_handleioe_type ioe_locationioe_description ioe_errno ioe_filename GHC.Exceptionthrow Exception toException fromExceptiondisplayException ErrorCallErrorCallWithLocationArithExceptionOverflow UnderflowLossOfPrecision DivideByZeroDenormalRatioZeroDenominator Data.Typeablegcast2gcast1gcasteqTcast rnfTypeRep showsTypeReptypeOf7typeOf6typeOf5typeOf4typeOf3typeOf2typeOf1typeOftypeRep typeRepArgs typeRepTyCon funResultTy splitTyConAppmkFunTy mkTyConApptypeRepFingerprintrnfTyConmkTyCon3tyConFingerprint tyConString tyConName tyConModule tyConPackage Typeable1 Typeable2 Typeable3 Typeable4 Typeable5 Typeable6 Typeable7 byteSwap64 byteSwap32 byteSwap16isRightisLeftpartitionEithersrightsleftseitherData.Type.Equality:~:Refl Data.ProxyProxy Data.OldListunwordswordsunlineslinesunfoldrsortOnsortBysort permutations subsequencestailsinitsgroupBygroupdeleteFirstsByunzip7unzip6unzip5unzip4zipWith7zipWith6zipWith5zipWith4zip7zip6zip5zip4genericReplicate genericIndexgenericSplitAt genericDrop genericTake genericLengthinsertByinsert partition transpose intercalate intersperse intersectBy intersectunionByunion\\deleteBydeletenubBynub isInfixOf isSuffixOf isPrefixOf findIndices findIndex elemIndices elemIndex stripPrefix dropWhileEndData.OrdDownlex readParenText.ParserCombinators.ReadPReadS Data.BitstoIntegralSizedpopCountDefaulttestBitDefault bitDefaultBits.&..|.xor complementshiftrotatezeroBitsbitsetBitclearBit complementBittestBit bitSizeMaybebitSizeisSignedshiftL unsafeShiftLshiftR unsafeShiftRrotateLrotateRpopCount FiniteBits finiteBitSizecountLeadingZeroscountTrailingZeros Data.Function&onfix Data.Functorvoid<$> GHC.STRef writeSTRef readSTRefnewSTRefSTRefrunSTfixSTlcmgcd^^^oddeven denominator numerator% showParen showStringshowCharshowsShowSunzip3unzipzipWith3zipWithzip3!!lookupreversebreakspansplitAtdroptake dropWhile takeWhilecycle replicaterepeatiteratescanr1scanrscanl'scanl1scanlfoldl1'initlasttailunconshead Data.MaybemapMaybe catMaybes listToMaybe maybeToList fromMaybefromJust isNothingisJustmaybeswapuncurrycurrysubtract GHC.IO.UnsafeunsafeInterleaveIOunsafeDupablePerformIOunsafePerformIOasTypeOfuntil$!flipconstapliftM5liftM4liftM3liftM2liftMwhen=<<liftA3liftA2liftA<**> Alternativeempty<|>somemany MonadPlusmzeromplusStringGHC.Err undefinederrorWithoutStackTraceerror SomeException Unsafe.Coerce unsafeCoerce&&||notdigits bitIndexesbits