Add Data and Typeable instances to HsSyn
[ghc-hetmet.git] / compiler / basicTypes / NameSet.lhs
index 46bcee7..c46127c 100644 (file)
@@ -30,9 +30,13 @@ module NameSet (
     ) where
 
 #include "HsVersions.h"
+#include "Typeable.h"
 
 import Name
 import UniqSet
+import Util
+
+import Data.Data
 \end{code}
 
 %************************************************************************
@@ -44,6 +48,14 @@ import UniqSet
 \begin{code}
 type NameSet = UniqSet Name
 
+INSTANCE_TYPEABLE0(NameSet,nameSetTc,"NameSet")
+
+instance Data NameSet where
+  gfoldl k z s = z mkNameSet `k` nameSetToList s -- traverse abstractly
+  toConstr _   = abstractConstr "NameSet"
+  gunfold _ _  = error "gunfold"
+  dataTypeOf _ = mkNoRepType "NameSet"
+
 emptyNameSet      :: NameSet
 unitNameSet       :: Name -> NameSet
 addListToNameSet   :: NameSet -> [Name] -> NameSet