Add Data and Typeable instances to HsSyn
[ghc-hetmet.git] / compiler / basicTypes / OccName.lhs
index 172c709..9ff53f1 100644 (file)
@@ -92,6 +92,8 @@ module OccName (
        startsVarSym, startsVarId, startsConSym, startsConId
     ) where
 
        startsVarSym, startsVarId, startsConSym, startsConId
     ) where
 
+#include "Typeable.h"
+
 import Util
 import Unique
 import BasicTypes
 import Util
 import Unique
 import BasicTypes
@@ -102,6 +104,7 @@ import Outputable
 import Binary
 import StaticFlags( opt_SuppressUniques )
 import Data.Char
 import Binary
 import StaticFlags( opt_SuppressUniques )
 import Data.Char
+import Data.Data
 \end{code}
 
 \begin{code}
 \end{code}
 
 \begin{code}
@@ -227,6 +230,14 @@ instance Ord OccName where
        -- Compares lexicographically, *not* by Unique of the string
     compare (OccName sp1 s1) (OccName sp2 s2) 
        = (s1  `compare` s2) `thenCmp` (sp1 `compare` sp2)
        -- Compares lexicographically, *not* by Unique of the string
     compare (OccName sp1 s1) (OccName sp2 s2) 
        = (s1  `compare` s2) `thenCmp` (sp1 `compare` sp2)
+
+INSTANCE_TYPEABLE0(OccName,occNameTc,"OccName")
+
+instance Data OccName where
+  -- don't traverse?
+  toConstr _   = abstractConstr "OccName"
+  gunfold _ _  = error "gunfold"
+  dataTypeOf _ = mkNoRepType "OccName"
 \end{code}
 
 
 \end{code}