-changeUnique (Local _ n l) u = Local u n l
-changeUnique n@(Global _ o p e os) u = ASSERT(not (isBuiltinName n))
- Global u o p e os
-
-nameOrigName (Local _ n _) = Unqual n
-nameOrigName (Global _ orig _ _ _) = orig
-
-nameModuleNamePair (Local _ n _) = (panic "nameModuleNamePair", n)
-nameModuleNamePair (Global _ (Unqual n) _ _ _) = (pRELUDE, n)
-nameModuleNamePair (Global _ (Qual m n) _ _ _) = (m, n)
-
-nameOccName (Local _ n _) = Unqual n
-nameOccName (Global _ orig _ _ [] ) = orig
-nameOccName (Global _ orig _ _ occs) = head occs
-
-nameExportFlag (Local _ _ _) = NotExported
-nameExportFlag (Global _ _ _ exp _) = exp
-
-nameSrcLoc (Local _ _ loc) = loc
-nameSrcLoc (Global _ _ (LocalDef loc) _ _) = loc
-nameSrcLoc (Global _ _ (Imported _ loc _) _ _) = loc
-nameSrcLoc (Global _ _ Implicit _ _) = mkUnknownSrcLoc
-nameSrcLoc (Global _ _ Builtin _ _) = mkBuiltinSrcLoc
+changeUnique (Local _ n b l) u = Local u n b l
+changeUnique (Global _ m n p e os) u = Global u m n p e os
+
+nameOrigName msg (Global _ m (Left n) _ _ _) = OrigName m n
+nameOrigName msg (Global _ m (Right n) _ _ _) = let str = _CONCAT_ (glue n) in
+ --pprTrace ("nameOrigName:"++msg) (ppPStr str) $
+ OrigName m str
+#ifdef DEBUG
+nameOrigName msg (Local _ n _ _) = panic ("nameOrigName:Local:"++msg++":"++ _UNPK_ n)
+#endif
+
+nameOccName (Local _ n _ _) = Unqual n
+nameOccName (Global _ m (Left n) _ _ [] ) = Qual m n
+nameOccName (Global _ m (Right n) _ _ [] ) = let str = _CONCAT_ (glue n) in
+ --pprTrace "nameOccName:" (ppPStr str) $
+ Qual m str
+nameOccName (Global _ m (Left _) _ _ (o:_)) = o
+nameOccName (Global _ m (Right _) _ _ (o:_)) = panic "nameOccName:compound name"
+
+nameExportFlag (Local _ _ _ _) = NotExported
+nameExportFlag (Global _ _ _ _ exp _) = exp
+
+nameSrcLoc (Local _ _ _ loc) = loc
+nameSrcLoc (Global _ _ _ (LocalDef loc) _ _) = loc
+nameSrcLoc (Global _ _ _ (Imported _ loc _) _ _) = loc
+nameSrcLoc (Global _ _ _ Implicit _ _) = mkUnknownSrcLoc
+nameSrcLoc (Global _ _ _ Primitive _ _) = mkBuiltinSrcLoc
+nameSrcLoc (Global _ _ _ (WiredIn _) _ _) = mkBuiltinSrcLoc