mkRdrUnqual, mkRdrQual,
mkSrcUnqual, mkSrcQual,
mkSysUnqual, mkSysQual,
- mkPreludeQual, qualifyRdrName,
+ mkPreludeQual, qualifyRdrName, mkRdrNameWkr,
dummyRdrVarName, dummyRdrTcName,
-- Destruction
- rdrNameModule, rdrNameOcc,
+ rdrNameModule, rdrNameOcc, setRdrNameOcc,
isRdrDataCon, isRdrTyVar, isQual, isUnqual
) where
OccName,
mkSysOccFS,
mkSrcOccFS, mkSrcVarOcc,
- isDataOcc, isTvOcc
+ isDataOcc, isTvOcc, mkWorkerOcc
)
-import Module ( ModuleName,
+import Module ( ModuleName, pprModuleName,
mkSysModuleFS, mkSrcModuleFS
)
import Outputable
rdrNameOcc :: RdrName -> OccName
rdrNameOcc (RdrName _ occ) = occ
+
+setRdrNameOcc :: RdrName -> OccName -> RdrName
+setRdrNameOcc (RdrName q _) occ = RdrName q occ
\end{code}
\begin{code}
mkPreludeQual sp mod n = RdrName (Qual mod) (mkSrcOccFS sp n)
qualifyRdrName :: ModuleName -> RdrName -> RdrName
-qualifyRdrName mod (RdrName Unqual occ) = RdrName (Qual mod) occ
-qualifyRdrName mod rdr_name = rdr_name
+ -- Sets the module name of a RdrName, even if it has one already
+qualifyRdrName mod (RdrName _ occ) = RdrName (Qual mod) occ
+
+mkRdrNameWkr :: RdrName -> RdrName -- Worker-ify it
+mkRdrNameWkr (RdrName qual occ) = RdrName qual (mkWorkerOcc occ)
\end{code}
\begin{code}
ppr (RdrName qual occ) = pp_qual qual <> ppr occ
where
pp_qual Unqual = empty
- pp_qual (Qual mod) = ppr mod <> dot
+ pp_qual (Qual mod) = pprModuleName mod <> dot
instance Eq RdrName where
a == b = case (a `compare` b) of { EQ -> True; _ -> False }