Use ":Co", not "Co" to prefix coercion TyCon names
[ghc-hetmet.git] / compiler / basicTypes / OccName.lhs
index 13a7f81..0d1cb37 100644 (file)
@@ -442,7 +442,8 @@ mkDictOcc       = mk_simple_deriv varName  "$d"
 mkIPOcc                    = mk_simple_deriv varName  "$i"
 mkSpecOcc          = mk_simple_deriv varName  "$s"
 mkForeignExportOcc  = mk_simple_deriv varName  "$f"
-mkNewTyCoOcc        = mk_simple_deriv tcName  "Co"
+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.
---
-mkInstTyTcOcc :: Unique                -- Unique
-             -> OccName                -- Local name (e.g. "Map")
-             -> OccName                -- Nice unique version (":T23Map")
-mkInstTyTcOcc uniq occ
-   = mk_deriv varName (":T" ++ 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)
+Derive a name for the representation type constructor of a data/newtype
+instance.
 
+\begin{code}
+mkInstTyTcOcc :: Int                   -- Index
+             -> OccName                -- Family name (e.g. "Map")
+             -> OccName                -- Nice unique version (":R23Map")
+mkInstTyTcOcc index occ
+   = mk_deriv tcName (":R" ++ show index) (occNameString occ)
 \end{code}
 
 \begin{code}