packages feed

enumset 0.0.3 → 0.0.4

raw patch · 6 files changed

+26/−14 lines, 6 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Data.EnumSet.PackedEnum: pack :: (Bits w, Enum a, Enum b) => T w a b -> b -> T w a
+ Data.EnumSet.PackedEnum: pack :: (Num w, Bits w, Enum a, Enum b) => T w a b -> b -> T w a
- Data.EnumSet.PackedEnum: put :: (Bits w, Enum a, Enum b) => T w a b -> b -> T w a -> T w a
+ Data.EnumSet.PackedEnum: put :: (Num w, Bits w, Enum a, Enum b) => T w a b -> b -> T w a -> T w a

Files

enumset.cabal view
@@ -1,6 +1,6 @@ -- would also be useful as type-safe alternative in wx, wxcore Name:             enumset-Version:          0.0.3+Version:          0.0.4 License:          BSD3 License-File:     LICENSE Author:           Henning Thielemann <haskell@henning-thielemann.de>@@ -22,6 +22,11 @@ Cabal-Version:    >=1.10 Tested-With:      GHC==6.10.4, GHC==6.12.3 Build-Type:       Simple++Source-Repository this+  Tag:         0.0.4+  Type:        darcs+  Location:    http://code.haskell.org/~thielema/enumset/  Source-Repository head   Type:        darcs
src/Data/EnumSet.hs view
@@ -35,6 +35,7 @@  import qualified Data.Bits as B import Data.Bits (Bits, )+import qualified Data.EnumSet.Utility as U  import Data.Monoid (Monoid(mempty, mappend), ) @@ -70,13 +71,13 @@ fromEnum = Cons . B.bit . P.fromEnum  fromEnums :: (Enum a, Bits w) => [a] -> T w a-fromEnums = Cons . foldl B.setBit 0 . map P.fromEnum+fromEnums = Cons . foldl B.setBit U.empty . map P.fromEnum  toEnums :: (Enum a, Bits w) => T w a -> [a] toEnums =    map fst . filter (P.flip B.testBit 0 . snd) .    zip [P.toEnum 0 ..] .-   takeWhile (0/=) . iterate (P.flip B.shiftR 1) .+   takeWhile (U.empty /= ) . iterate (P.flip B.shiftR 1) .    decons  intToEnums :: (Enum a, Integral w) => T w a -> [a]@@ -100,7 +101,7 @@    foldl       (\(x0,pos) testPos ->          let x1 = B.shiftR x0 testPos-         in  if x1 == 0+         in  if x1 == U.empty                then (x0, pos)                else (x1, pos+testPos))       (x,0) $@@ -115,14 +116,14 @@ -} {-# INLINE singletonByPosition #-} singletonByPosition :: (Bits w) => Int -> T w a-singletonByPosition = Cons . B.setBit 0+singletonByPosition = Cons . B.setBit U.empty   null :: (Enum a, Bits w) => T w a -> Bool-null (Cons x)  =  x==0+null (Cons x)  =  x==U.empty  empty :: (Enum a, Bits w) => T w a-empty = Cons 0+empty = Cons U.empty  disjoint :: (Enum a, Bits w) => T w a -> T w a -> Bool disjoint x y = null (x .&. y)@@ -186,4 +187,7 @@  fromBool :: (Enum a, Bits w) => a -> Bool -> T w a fromBool n b =+   Cons $ if b then B.bit (P.fromEnum n) else U.empty+{- requires Num instance    Cons (B.shiftL (fromIntegral $ P.fromEnum b) (P.fromEnum n))+-}
src/Data/EnumSet/PackedEnum.hs view
@@ -33,7 +33,7 @@ is placed at the specified indices. -} pack ::-   (Bits w, Enum a, Enum b) =>+   (Num w, Bits w, Enum a, Enum b) =>    T w a b -> b -> ES.T w a pack (Cons mask pos) =    ES.Cons . flip B.shiftL pos .@@ -52,7 +52,7 @@ Overwrite an enumset at the specified indices with the value of type @b@. -} put ::-   (Bits w, Enum a, Enum b) =>+   (Num w, Bits w, Enum a, Enum b) =>    T w a b -> b -> ES.T w a -> ES.T w a put set x =    (pack set x ES..|.) . clear set
src/Data/EnumSet/Utility.hs view
@@ -1,7 +1,7 @@ module Data.EnumSet.Utility where  import qualified Data.Bits as B-import Data.Bits (Bits, (.&.), )+import Data.Bits (Bits, bit, xor, (.&.), )   -- fixity like .&.@@ -9,3 +9,6 @@  (.-.) :: (Bits w) => w -> w -> w x .-. y = x .&. B.complement y++empty :: (Bits w) => w+empty = xor (bit 0) (bit 0)
src/Data/FlagSet.hs view
@@ -21,7 +21,7 @@  import qualified Data.Accessor.Basic as Acc -import Data.EnumSet.Utility ((.-.), )+import Data.EnumSet.Utility (empty, (.-.), )  import qualified Prelude as P import Prelude hiding (Enum, fromEnum, toEnum, null, flip, )@@ -113,7 +113,7 @@ @mappend a b@ means that values stored in @b@ overwrite corresponding values in @a@. -} instance (Bits w) => Monoid (MaskedValue w a) where-   mempty = MaskedValue 0 0+   mempty = MaskedValue empty empty    mappend (MaskedValue mx vx) (MaskedValue my vy) =       MaskedValue (mx .|. my) (vx .-. my  .|.  vy) 
src/Data/FlagSet/PackedRecord.hs view
@@ -13,7 +13,7 @@ import Data.EnumSet.Utility ((.-.), )  -leastSigBit :: Bits w => w -> w+leastSigBit :: (Num w, Bits w) => w -> w leastSigBit m = (-m) .&. m  getIntByMask ::@@ -37,7 +37,7 @@   maskFromNumber ::-   (Bits w) =>+   (Num w, Bits w) =>    Int -> w maskFromNumber number =    B.shiftL 1 number - 1