X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2FbasicTypes%2FOccName.lhs;h=f91453575ace96c2ec3fa97e4f166c660b74d472;hb=83eef621e4a4fbb6c1343304ec638cafd6c9dc09;hp=9efd4af75b91c17d1d7203950b780ed04ae1c2cb;hpb=710e207487929c4a5977b5ee3bc6e539091953db;p=ghc-hetmet.git diff --git a/ghc/compiler/basicTypes/OccName.lhs b/ghc/compiler/basicTypes/OccName.lhs index 9efd4af..f914535 100644 --- a/ghc/compiler/basicTypes/OccName.lhs +++ b/ghc/compiler/basicTypes/OccName.lhs @@ -8,19 +8,19 @@ module OccName ( -- The NameSpace type; abstact NameSpace, tcName, clsName, tcClsName, dataName, varName, ipName, - tvName, uvName, nameSpaceString, + tvName, nameSpaceString, -- The OccName type OccName, -- Abstract, instance of Outputable pprOccName, - mkSrcOccFS, mkSysOcc, mkSysOccFS, mkCCallOcc, mkSrcVarOcc, mkKindOccFS, + mkOccFS, mkSysOcc, mkSysOccFS, mkCCallOcc, mkVarOcc, mkKindOccFS, mkSuperDictSelOcc, mkDFunOcc, mkForeignExportOcc, mkDictOcc, mkIPOcc, mkWorkerOcc, mkMethodOcc, mkDefaultMethodOcc, mkDerivedTyConOcc, mkClassTyConOcc, mkClassDataConOcc, mkSpecOcc, mkGenOcc1, mkGenOcc2, - isSysOcc, isTvOcc, isUvOcc, isDataOcc, isDataSymOcc, isSymOcc, isIPOcc, isValOcc, + isSysOcc, isTvOcc, isDataOcc, isDataSymOcc, isSymOcc, isIPOcc, isValOcc, occNameFS, occNameString, occNameUserString, occNameSpace, occNameFlavour, setOccNameSpace, @@ -40,7 +40,7 @@ module OccName ( #include "HsVersions.h" -import Char ( isDigit, isAlpha, isUpper, isLower, ISALPHANUM, ord, chr, digitToInt ) +import Char ( isDigit, isUpper, isLower, ISALPHANUM, ord, chr, digitToInt ) import Util ( thenCmp ) import FiniteMap ( FiniteMap, emptyFM, lookupFM, addToFM, elemFM ) import Outputable @@ -86,7 +86,6 @@ data NameSpace = VarName -- Variables | IPName -- Implicit Parameters | DataName -- Data constructors | TvName -- Type variables - | UvName -- Usage variables | TcClsName -- Type constructors and classes; Haskell has them -- in the same name space for now. deriving( Eq, Ord ) @@ -99,7 +98,6 @@ tcClsName = TcClsName -- Not sure which! dataName = DataName tvName = TvName -uvName = UvName varName = VarName ipName = IPName @@ -109,7 +107,6 @@ nameSpaceString DataName = "Data constructor" nameSpaceString VarName = "Variable" nameSpaceString IPName = "Implicit Param" nameSpaceString TvName = "Type variable" -nameSpaceString UvName = "Usage variable" nameSpaceString TcClsName = "Type constructor or class" \end{code} @@ -177,7 +174,7 @@ mkCCallOcc :: EncodedString -> OccName -- But then alreadyEncoded complains about the braces! mkCCallOcc str = OccName varName (_PK_ str) --- Kind constructors get a speical function. Uniquely, they are not encoded, +-- Kind constructors get a special function. Uniquely, they are not encoded, -- so that they have names like '*'. This means that *even in interface files* -- we'll get kinds like (* -> (* -> *)). We can't use mkSysOcc because it -- has an ASSERT that doesn't hold. @@ -188,11 +185,11 @@ mkKindOccFS occ_sp fs = OccName occ_sp fs *Source-code* things are encoded. \begin{code} -mkSrcOccFS :: NameSpace -> UserFS -> OccName -mkSrcOccFS occ_sp fs = mkSysOccFS occ_sp (encodeFS fs) +mkOccFS :: NameSpace -> UserFS -> OccName +mkOccFS occ_sp fs = mkSysOccFS occ_sp (encodeFS fs) -mkSrcVarOcc :: UserFS -> OccName -mkSrcVarOcc fs = mkSysOccFS varName (encodeFS fs) +mkVarOcc :: UserFS -> OccName +mkVarOcc fs = mkSysOccFS varName (encodeFS fs) \end{code} @@ -225,14 +222,11 @@ occNameFlavour (OccName sp _) = nameSpaceString sp \end{code} \begin{code} -isTvOcc, isDataSymOcc, isSymOcc, isUvOcc :: OccName -> Bool +isTvOcc, isDataSymOcc, isSymOcc :: OccName -> Bool isTvOcc (OccName TvName _) = True isTvOcc other = False -isUvOcc (OccName UvName _) = True -isUvOcc other = False - isValOcc (OccName VarName _) = True isValOcc (OccName DataName _) = True isValOcc other = False @@ -332,17 +326,9 @@ mkSuperDictSelOcc index cls_occ \begin{code} mkDFunOcc :: EncodedString -- Typically the class and type glommed together e.g. "OrdMaybe" - -> Int -- Unique to distinguish dfuns which share the previous two - -- eg 3 - -- The requirement is that the (string,index) pair be unique in this module - - -> OccName -- "$fOrdMaybe3" + -> OccName -- "$fOrdMaybe" -mkDFunOcc string index - = mk_deriv VarName "$f" (show_index ++ string) - where - show_index | index == 0 = "" - | otherwise = show index +mkDFunOcc string = mk_deriv VarName "$f" string \end{code} We used to add a '$m' to indicate a method, but that gives rise to bad