úÎ;7k;      !"#$%&'()*+,-./0123456789: Safe-Infered;<;<;< Safe-Infered = should return an integer ' that represents the position of the a value ) in the list of all enumeration items.  In contrast to that,  ( must return the according bit pattern. 6Combines a mask with a value, that matches this mask. In MaskedValue mask value, value must be a subset of mask. The type parameter w+ is the type of the underlying bit vector. The type parameter b is a phantom type, .that is specific for a certain range of bits.  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, Awhere set bits represent the bits belonging to one record field. :There must be only one mask value for every pair of types (a,b).  The 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. 3In the latter case you are encouraged to define an  instance for this enumeration. #Be aware that it is different from > of Prelude. 1All bits in Value must be contained in the mask. !This condition is not checked by . 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. !Decompose a flag set into flags. "The flags are generated using the ? and  instance. CWe do not recommend to use the result list for further processing, ,since testing of flags is much faster using . "However you may find it useful to @ the list. )Compose a flag set from a list of flags. )However you may prefer to assemble flags using A or B on s. C mappend a b means that values stored in b# overwrite corresponding values in a.  CD      CD Safe-Infered Safe-Infered"floor of binary logarithm - 7Intended for getting the position of a single set bit. -This in turn is intended for implementing an > instance -if you only know masks but no bit positions. # set a bit - Intended for implementing an > instance -if you only know masks but no bit positions. ' subset a b is E if a is a subset of b. -could also be named member like in Set or elem as in '[]' 1could also be named insert like in Set 2could also be named delete like in Set F9Since this data type is intended for constructing flags, $we choose the set union as mappend. FFor intersection we would also not have a canonical identity element.  !"#$%&'()*+,-./01234FG !"#$%&'()*+,-./01234 !"#$%0&'(+)*,-./1234 !"#$%&'()*+,-./01234FG Safe-Infered5 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. 7;Extract an enumeration value from the specified index set. 82Create an enumeration set, where an value of type b $is placed at the specified indices. 9)Clear all bits at the specified indices. :EOverwrite an enumset at the specified indices with the value of type b. 56789:56789:56789:56789:H         !"#$%&'()*+,-./0 12.)$343434536738938:;<=>?@<A enumset-0.0.4 Data.FlagSetData.FlagSet.PackedRecord Data.EnumSetData.EnumSet.PackedEnumData.EnumSet.UtilityEnumfromEnum MaskedValueValueunvalueMaskunmaskTConsdeconsgetputaccessorfromMaskedValuematch maskValue decomposecompose getIntByMask putIntByMaskaccessorIntByMask getIntByRange putIntByRangeaccessorIntByRange fromEnumstoEnums intToEnumsmostSignificantPositionsingletonByPositionnullemptydisjointsubset.&..|..-.xorunions singletonsetclearflipfromBoolunpackpackbaseGHC.EnumBoundedGHC.Showshow Data.Monoidmconcatmappend$fMonoidMaskedValue $fStorableTghc-prim GHC.TypesTrue $fMonoidT