-- |
-- Module : Data.Set
-- Copyright : (c) The University of Glasgow 2001
--- License : BSD-style (see the file libraries/core/LICENSE)
+-- License : BSD-style (see the file libraries/base/LICENSE)
--
-- Maintainer : libraries@haskell.org
-- Stability : provisional
-- Portability : portable
--
--- $Id: Set.hs,v 1.2 2002/04/24 16:31:40 simonmar Exp $
---
--- This implementation of sets sits squarely upon Data.FiniteMap.
+-- An implementation of sets, based on the "Data.FiniteMap".
--
-----------------------------------------------------------------------------
module Data.Set (
+ -- * The @Set@ type
Set, -- abstract, instance of: Eq
+ -- * Construction
emptySet, -- :: Set a
mkSet, -- :: Ord a => [a] -> Set a
setToList, -- :: Set a -> [a]
unitSet, -- :: a -> Set a
- singletonSet, -- :: a -> Set a
+ -- * Inspection
+ elementOf, -- :: Ord a => a -> Set a -> Bool
+ isEmptySet, -- :: Set a -> Bool
+ cardinality, -- :: Set a -> Int
+
+ -- * Operations
union, -- :: Ord a => Set a -> Set a -> Set a
unionManySets, -- :: Ord a => [Set a] -> Set a
minusSet, -- :: Ord a => Set a -> Set a -> Set a
intersect, -- :: Ord a => Set a -> Set a -> Set a
addToSet, -- :: Ord a => Set a -> a -> Set a
delFromSet, -- :: Ord a => Set a -> a -> Set a
-
- elementOf, -- :: Ord a => a -> Set a -> Bool
- isEmptySet, -- :: Set a -> Bool
-
- cardinality -- :: Set a -> Int
) where
import Prelude
unitSet :: a -> Set a
unitSet x = MkSet (unitFM x ())
-{-# DEPRECATED singletonSet "use Set.unitSet" #-}
-singletonSet = unitSet -- old;deprecated.
-
setToList :: Set a -> [a]
setToList (MkSet set) = keysFM set