Fix scoped type variables for expression type signatures
[ghc-hetmet.git] / compiler / basicTypes / OccName.lhs
index 3465f55..cae76a6 100644 (file)
@@ -443,6 +443,7 @@ mkIPOcc                 = mk_simple_deriv varName  "$i"
 mkSpecOcc          = mk_simple_deriv varName  "$s"
 mkForeignExportOcc  = mk_simple_deriv varName  "$f"
 mkNewTyCoOcc        = mk_simple_deriv tcName  "Co"
+mkInstTyCoOcc       = mk_simple_deriv tcName  "Co"      -- derived from rep ty
 
 -- Generic derivable classes
 mkGenOcc1           = mk_simple_deriv varName  "$gfrom"
@@ -478,25 +479,15 @@ mkLocalOcc uniq occ
        -- that need encoding (e.g. 'z'!)
 \end{code}
 
-\begin{code}
+Derive a name for the representation type constructor of a data/newtype
+instance.
 
--- Derive a name for the representation type constructor of a data/newtype
--- instance.
---
-mkInstTyTcOcc :: Unique                -- Unique
-             -> OccName                -- Local name (e.g. "Map")
+\begin{code}
+mkInstTyTcOcc :: Int                   -- Index
+             -> OccName                -- Family name (e.g. "Map")
              -> OccName                -- Nice unique version (":R23Map")
-mkInstTyTcOcc uniq occ
-   = mk_deriv varName (":R" ++ show uniq) (occNameString occ)
-
--- Derive a name for the coercion of a data/newtype instance.
---
-mkInstTyCoOcc :: Unique                -- Unique
-             -> OccName                -- Local name (e.g. "Map")
-             -> OccName                -- Nice unique version ("Co23Map")
-mkInstTyCoOcc uniq occ
-   = mk_deriv varName ("Co" ++ show uniq) (occNameString occ)
-
+mkInstTyTcOcc index occ
+   = mk_deriv tcName (":R" ++ show index) (occNameString occ)
 \end{code}
 
 \begin{code}