úÎ!< 8I      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHSafe÷IJI7Safeenumset€floor of binary logarithm - Intended for getting the position of a single set bit. This in turn is intended for implementing an K6 instance if you only know masks but no bit positions.enumset)set a bit - Intended for implementing an K6 instance if you only know masks but no bit positions. enumset subset a b is L if a is a subset of b.enumsetcould also be named member like in Set or elem as in '[]'enumsetcould also be named insert like in Setenumsetcould also be named delete like in SetenumsetTSince this data type is intended for constructing flags, we choose the set union as MG. For intersection we would also not have a canonical identity element.    757Safe¬enumset T w a b> describes a contiguous set of bit indices into the word type w where the indices are of type a2 and the set of indices represent a value of type b. enumset:Extract an enumeration value from the specified index set.!enumset2Create an enumeration set, where an value of type b$ is placed at the specified indices."enumset(Clear all bits at the specified indices.#enumsetEOverwrite an enumset at the specified indices with the value of type b. !"# !"#Safe Safe7 %enumsetNA should return an integer that represents the position of the aK value in the list of all enumeration items. In contrast to that, %' must return the according bit pattern.&enumset9Combines a mask with a value, that matches this mask. In MaskedValue mask value, value must be a subset of mask.(enumsetThe type parameter w> is the type of the underlying bit vector. The type parameter bA is a phantom type, that is specific for a certain range of bits.+enumset Mask w a b describes a field of a T w a that has type  Value w b. On the machine level a +— value is a vector of bits, where set bits represent the bits belonging to one record field. There must be only one mask value for every pair of types (a,b)..enumsetwThe basic bit vector data type. It does not provide a lot of functionality, since that could not be done in a safe way. The type a¶ identifies the maintained flags. It may be an empty type but it may also be an enumeration of record fields with concrete values. In the latter case you are encouraged to define an $C instance for this enumeration. Be aware that it is different from K of Prelude.2enumsetRAll bits in Value must be contained in the mask. This condition is not checked by 2.According to names in  Data.Accessor it should be called set , but in  Data.Bits and thus  Data.EnumSet" this is already used in the pair set/clear. put/get resembles the pair in Control.Monad.State in the mtl package.7enumsetCDecompose a flag set into flags. The flags are generated using the O and $z instance. We do not recommend to use the result list for further processing, since testing of flags is much faster using 5$. However you may find it useful to P the list.8enumsetXCompose a flag set from a list of flags. However you may prefer to assemble flags using Q or M on &s.:enumset mappend a b means that values stored in b# overwrite corresponding values in a.$%&'()*+,-./012345678./045$%87+,-6()*&'123Safe7èCDEFGHCDEFGHR      !"#$%&' (())*++, -./01#23$456789:;<=>?@A'BCD@EF@A @AG@HI@EJK$enumset-0.0.5-26hTssLUXNvDvFgfKFV5ZAData.EnumBitSetData.EnumSet.PackedEnum Data.FlagSetData.FlagSet.PackedRecordData.EnumSet.Utility Data.EnumSetTConsdeconsfromEnum fromEnumstoEnums intToEnumsmostSignificantPositionsingletonByPositionnullemptydisjointsubset.&..|..-.xorunionsgetputaccessor singletonsetclearflipfromBool $fMonoidT $fSemigroupT $fStorableT$fEqTunpackpackEnum MaskedValueValueunvalueMaskunmaskfromMaskedValuematch maskValue decomposecompose$fMonoidMaskedValue$fSemigroupMaskedValue$fEqMask $fShowMask $fEqValue $fShowValue$fEqMaskedValue$fShowMaskedValue getIntByMask putIntByMaskaccessorIntByMask getIntByRange putIntByRangeaccessorIntByRangebaseGHC.Enumghc-prim GHC.TypesTrueGHC.BasemappendBoundedGHC.Showshowmconcat