aboutsummaryrefslogtreecommitdiff
path: root/src/Set.hs
diff options
context:
space:
mode:
authorpanne <unknown>2005-01-15 18:44:48 +0000
committerpanne <unknown>2005-01-15 18:44:48 +0000
commit914ccdce1b9923f7fc8f75b3bdb188192291ac9b (patch)
tree975e0562f4810a89fa7fcc181885f99bd5f5f3c7 /src/Set.hs
parente8f54f255a7295fc0da368390706b1ae5d90268c (diff)
[haddock @ 2005-01-15 18:44:45 by panne]
Make Haddock compile again after the recent base package changed. The Map/Set legacy hell has been factored out, so that all modules can simply use the new non-deprecated interfaces. Probably a lot of things can be improved by a little bit of Map/Set/List algebra, this can be done later if needed. Small note: Currently the list of instances in HTML code is reversed. This will hopefully be fixed later.
Diffstat (limited to 'src/Set.hs')
-rw-r--r--src/Set.hs36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/Set.hs b/src/Set.hs
new file mode 100644
index 00000000..271828e8
--- /dev/null
+++ b/src/Set.hs
@@ -0,0 +1,36 @@
+module Set (
+ Set,
+ member,
+ empty, singleton, delete,
+ union, unions,
+ elems, fromList
+) where
+
+#if __GLASGOW_HASKELL__ < 503
+import Set
+#else
+import Data.Set
+#endif
+
+#if __GLASGOW_HASKELL__ < 603
+member :: Ord a => a -> Set a -> Bool
+member = elementOf
+
+empty :: Set a
+empty = emptySet
+
+singleton :: a -> Set a
+singleton = unitSet
+
+delete :: Ord a => a -> Set a -> Set a
+delete = flip delFromSet
+
+unions :: Ord a => [Set a] -> Set a
+unions = unionManySets
+
+elems :: Set a -> [a]
+elems = setToList
+
+fromList :: Ord a => [a] -> Set a
+fromList = mkSet
+#endif