summaryrefslogtreecommitdiff
path: root/compiler/prelude/PrelNames.hs
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/prelude/PrelNames.hs')
-rw-r--r--compiler/prelude/PrelNames.hs13
1 files changed, 8 insertions, 5 deletions
diff --git a/compiler/prelude/PrelNames.hs b/compiler/prelude/PrelNames.hs
index cec6837408..3bc29674e9 100644
--- a/compiler/prelude/PrelNames.hs
+++ b/compiler/prelude/PrelNames.hs
@@ -778,6 +778,7 @@ and it's convenient to write them all down in one place.
-}
mkSpecialTyConRepName :: FastString -> Name -> Name
+-- See Note [Grand plan for Typeable] in TcTypeable
mkSpecialTyConRepName fs tc_name
= mkExternalName (tyConRepNameUnique (nameUnique tc_name))
tYPEABLE_INTERNAL
@@ -785,18 +786,20 @@ mkSpecialTyConRepName fs tc_name
wiredInSrcSpan
mkPrelTyConRepName :: Name -> Name
-mkPrelTyConRepName name -- Prelude tc_name is always External,
+-- See Note [Grand plan for Typeable] in TcTypeable
+mkPrelTyConRepName tc_name -- Prelude tc_name is always External,
-- so nameModule will work
- = mkExternalName rep_uniq rep_mod rep_occ (nameSrcSpan name)
+ = mkExternalName rep_uniq rep_mod rep_occ (nameSrcSpan tc_name)
where
- name_occ = nameOccName name
- name_mod = nameModule name
- name_uniq = nameUnique name
+ name_occ = nameOccName tc_name
+ name_mod = nameModule tc_name
+ name_uniq = nameUnique tc_name
rep_uniq | isTcOcc name_occ = tyConRepNameUnique name_uniq
| otherwise = dataConRepNameUnique name_uniq
(rep_mod, rep_occ) = tyConRepModOcc name_mod name_occ
tyConRepModOcc :: Module -> OccName -> (Module, OccName)
+-- See Note [Grand plan for Typeable] in TcTypeable
tyConRepModOcc tc_module tc_occ
| tc_module == gHC_TYPES
= (tYPEABLE_INTERNAL, mkTyConRepUserOcc tc_occ)