Bit sets are a fast implementation of sets of integers ranging from 0 to one less than the number of bits in a machine word (typically 31). If any element exceeds the maximum value for a particular machine architecture, the results of these operations are undefined. You have been warned. ["If you put any safety checks in this code, I will have to kill you." --JSM]
mkBS :: [Int] -> BitSet listBS :: BitSet -> [Int] emptyBS :: BitSet singletonBS :: Int -> BitSet unionBS :: BitSet -> BitSet -> BitSet minusBS :: BitSet -> BitSet -> BitSet elementBS :: Int -> BitSet -> Bool intersectBS :: BitSet -> BitSet -> BitSet isEmptyBS :: BitSet -> Bool