[add IsEmpty class
John Meacham <john@repetae.net>**20060409074253] hunk ./Util/HasSize.hs 10
-import qualified Data.Map(Map,size)
-import qualified Data.Set(Set,size)
-import qualified Data.IntMap(IntMap,size)
-import qualified Data.IntSet(IntSet,size)
+import qualified Data.Map(Map,size,null)
+import qualified Data.Set(Set,size,null)
+import qualified Data.IntMap(IntMap,size,null)
+import qualified Data.IntSet(IntSet,size,null)
hunk ./Util/HasSize.hs 16
+class IsEmpty a where
+    isEmpty :: a -> Bool
+
hunk ./Util/HasSize.hs 55
-
hunk ./Util/HasSize.hs 57
-
-
hunk ./Util/HasSize.hs 59
-
hunk ./Util/HasSize.hs 76
-
hunk ./Util/HasSize.hs 79
+instance IsEmpty [x] where
+    isEmpty = null
+
+instance IsEmpty (Data.Map.Map a b) where
+    isEmpty = Data.Map.null
+instance IsEmpty (Data.Set.Set a) where
+    isEmpty = Data.Set.null
+instance IsEmpty (Data.IntMap.IntMap v) where
+    isEmpty = Data.IntMap.null
+instance IsEmpty Data.IntSet.IntSet where
+    isEmpty = Data.IntSet.null
+
+instance (IsEmpty a,IsEmpty b) => IsEmpty (a,b) where
+    isEmpty (x,y) = isEmpty x && isEmpty y
+instance (IsEmpty a,IsEmpty b,IsEmpty c) => IsEmpty (a,b,c) where
+    isEmpty (x,y,z) = isEmpty x && isEmpty y  && isEmpty z
+
+