[project @ 1998-12-18 17:40:31 by simonpj]
[ghc-hetmet.git] / ghc / compiler / basicTypes / NameSet.lhs
1 %
2 % (c) The GRASP/AQUA Project, Glasgow University, 1998
3 %
4 \section[NameSet]{@NameSets@} 
5
6 \begin{code}
7 module NameSet (
8         -- Sets of Names
9         NameSet,
10         emptyNameSet, unitNameSet, mkNameSet, unionNameSets, unionManyNameSets,
11         minusNameSet, elemNameSet, nameSetToList, addOneToNameSet, addListToNameSet, 
12         delFromNameSet, delListFromNameSet, isEmptyNameSet,
13     ) where
14
15 #include "HsVersions.h"
16
17 import Name
18 import UniqSet
19 \end{code}
20
21
22 %************************************************************************
23 %*                                                                      *
24 \subsection[Sets of names}
25 %*                                                                      *
26 %************************************************************************
27
28 \begin{code}
29 type NameSet = UniqSet Name
30 emptyNameSet       :: NameSet
31 unitNameSet        :: Name -> NameSet
32 addListToNameSet   :: NameSet -> [Name] -> NameSet
33 addOneToNameSet    :: NameSet -> Name -> NameSet
34 mkNameSet          :: [Name] -> NameSet
35 unionNameSets      :: NameSet -> NameSet -> NameSet
36 unionManyNameSets  :: [NameSet] -> NameSet
37 minusNameSet       :: NameSet -> NameSet -> NameSet
38 elemNameSet        :: Name -> NameSet -> Bool
39 nameSetToList      :: NameSet -> [Name]
40 isEmptyNameSet     :: NameSet -> Bool
41 delFromNameSet     :: NameSet -> Name -> NameSet
42 delListFromNameSet :: NameSet -> [Name] -> NameSet
43
44 isEmptyNameSet    = isEmptyUniqSet
45 emptyNameSet      = emptyUniqSet
46 unitNameSet       = unitUniqSet
47 mkNameSet         = mkUniqSet
48 addListToNameSet  = addListToUniqSet
49 addOneToNameSet   = addOneToUniqSet
50 unionNameSets     = unionUniqSets
51 unionManyNameSets = unionManyUniqSets
52 minusNameSet      = minusUniqSet
53 elemNameSet       = elementOfUniqSet
54 nameSetToList     = uniqSetToList
55 delFromNameSet    = delOneFromUniqSet
56
57 delListFromNameSet set ns = foldl delFromNameSet set ns
58 \end{code}
59
60