set-cover-0.0.8: src/Math/SetCover/Queue.hs
module Math.SetCover.Queue (SetId(..), Methods(..)) where
import Data.EnumMap (EnumMap)
import Data.EnumSet (EnumSet)
newtype SetId = SetId Int
instance Enum SetId where
fromEnum (SetId n) = n
toEnum = SetId
data Methods queue set =
Methods {
fromEnumMap :: EnumMap SetId set -> queue,
partition :: queue -> set -> (EnumSet SetId, queue),
difference :: queue -> EnumMap SetId set -> queue,
findMin :: queue -> Maybe (EnumSet SetId),
null :: queue -> Bool
}