Fixes the way we check if flattening happened during
[ghc-hetmet.git] / compiler / basicTypes / Var.lhs
index 79fad32..13810da 100644 (file)
 --
 -- * 'Id.Id': see "Id#name_types"
 --
--- * 'Var.Var' is a synonym for the 'Id.Id' type but it may additionally potentially contain type variables, 
---   which have a 'TypeRep.Kind' rather than a 'TypeRep.Type' and only contain some extra details during typechecking.
+-- * 'Var.Var' is a synonym for the 'Id.Id' type but it may additionally 
+--   potentially contain type variables, which have a 'TypeRep.Kind' 
+--   rather than a 'TypeRep.Type' and only contain some extra 
+--   details during typechecking.
+-- 
 --   These 'Var.Var' names may either be global or local, see "Var#globalvslocal"
 --
 -- #globalvslocal#
--- Global 'Id's and 'Var's are those that are imported or correspond to a data constructor, primitive operation, or record selectors.
--- Local 'Id's and 'Var's are those bound within an expression (e.g. by a lambda) or at the top level of the module being compiled.
+-- Global 'Id's and 'Var's are those that are imported or correspond 
+--    to a data constructor, primitive operation, or record selectors.
+-- Local 'Id's and 'Var's are those bound within an expression 
+--    (e.g. by a lambda) or at the top level of the module being compiled.
+
 module Var (
         -- * The main data type and synonyms
        Var, TyVar, CoVar, Id, DictId, DFunId, EvVar, EvId, IpId,
@@ -131,8 +137,7 @@ data Var
                                        -- Identical to the Unique in the name,
                                        -- cached here for speed
        varType       :: Kind,          -- ^ The type or kind of the 'Var' in question
-        isCoercionVar :: Bool
- }
+        isCoercionVar :: Bool }
 
   | TcTyVar {                          -- Used only during type inference
                                        -- Used for kind variables during 
@@ -149,6 +154,7 @@ data Var
        idScope    :: IdScope,
        id_details :: IdDetails,        -- Stable, doesn't change
        id_info    :: IdInfo }          -- Unstable, updated by simplifier
+    deriving Typeable
 
 data IdScope   -- See Note [GlobalId/LocalId]
   = GlobalId 
@@ -210,8 +216,6 @@ instance Ord Var where
     a >         b = realUnique a >#  realUnique b
     a `compare` b = varUnique a `compare` varUnique b
 
-INSTANCE_TYPEABLE0(Var,varTc,"Var")
-
 instance Data Var where
   -- don't traverse?
   toConstr _   = abstractConstr "Var"