prop_ranges :: (Bounded a, Enum a, Ord a) =>
               Set a ->
               Bool
prop_ranges a =
    (foldl (.|.) zero . map (uncurry interval) . ranges) a == a
prop_ranges :: (Bounded a, Enum a, Ord a) =>
               Set a ->
               Bool
prop_ranges a =
    (foldl (.|.) zero . map (uncurry interval) . ranges) a == a
prop_ranges a =
    (foldl (.|.) zero . map (uncurry interval) . ranges) a == a