X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2FbasicTypes%2FModule.lhs;h=f4e413d26336a50b571444fd344bf134b15758cd;hb=9d7da331989abcd1844e9d03b8d1e4163796fa85;hp=d67b8a5c951d07ac85290674e8d398987fdca98c;hpb=508a505e9853984bfdaa3ad855ae3fcbc6d31787;p=ghc-hetmet.git diff --git a/ghc/compiler/basicTypes/Module.lhs b/ghc/compiler/basicTypes/Module.lhs index d67b8a5..f4e413d 100644 --- a/ghc/compiler/basicTypes/Module.lhs +++ b/ghc/compiler/basicTypes/Module.lhs @@ -4,33 +4,31 @@ Module ~~~~~~~~~~ -Simply the name of a module, represented as a Z-encoded FastString. +Simply the name of a module, represented as a FastString. These are Uniquable, hence we can build FiniteMaps with ModuleNames as the keys. \begin{code} module Module ( - Module, -- Abstract, instance of Eq, Ord, Outputable + Module -- Abstract, instance of Eq, Ord, Outputable , pprModule -- :: ModuleName -> SDoc - , ModLocation(..), - , addBootSuffix, addBootSuffix_maybe, addBootSuffixLocn, + , ModLocation(..) + , addBootSuffix, addBootSuffix_maybe, addBootSuffixLocn - , moduleString -- :: ModuleName -> EncodedString - , moduleUserString -- :: ModuleName -> UserString - , moduleFS -- :: ModuleName -> EncodedFS + , moduleString -- :: ModuleName -> String + , moduleFS -- :: ModuleName -> FastString - , mkModule -- :: UserString -> ModuleName - , mkModuleFS -- :: UserFS -> ModuleName - , mkSysModuleFS -- :: EncodedFS -> ModuleName + , mkModule -- :: String -> ModuleName + , mkModuleFS -- :: FastString -> ModuleName - , ModuleEnv, + , ModuleEnv , elemModuleEnv, extendModuleEnv, extendModuleEnvList, plusModuleEnv_C , delModuleEnvList, delModuleEnv, plusModuleEnv, lookupModuleEnv , lookupWithDefaultModuleEnv, mapModuleEnv, mkModuleEnv, emptyModuleEnv , moduleEnvElts, unitModuleEnv, isEmptyModuleEnv, foldModuleEnv - , extendModuleEnv_C, filterModuleEnv, + , extendModuleEnv_C, filterModuleEnv , ModuleSet, emptyModuleSet, mkModuleSet, moduleSetElts, extendModuleSet, elemModuleSet @@ -108,7 +106,7 @@ addBootSuffixLocn locn %************************************************************************ \begin{code} -newtype Module = Module EncodedFS +newtype Module = Module FastString -- Haskell module names can include the quote character ', -- so the module names have the z-encoding applied to them @@ -131,30 +129,26 @@ instance Ord Module where instance Outputable Module where ppr = pprModule - pprModule :: Module -> SDoc -pprModule (Module nm) = pprEncodedFS nm +pprModule (Module nm) = + getPprStyle $ \ sty -> + if codeStyle sty + then ftext (zEncodeFS nm) + else ftext nm -moduleFS :: Module -> EncodedFS +moduleFS :: Module -> FastString moduleFS (Module mod) = mod -moduleString :: Module -> EncodedString +moduleString :: Module -> String moduleString (Module mod) = unpackFS mod -moduleUserString :: Module -> UserString -moduleUserString (Module mod) = decode (unpackFS mod) - -- used to be called mkSrcModule -mkModule :: UserString -> Module -mkModule s = Module (mkFastString (encode s)) +mkModule :: String -> Module +mkModule s = Module (mkFastString s) -- used to be called mkSrcModuleFS -mkModuleFS :: UserFS -> Module -mkModuleFS s = Module (encodeFS s) - --- used to be called mkSysModuleFS -mkSysModuleFS :: EncodedFS -> Module -mkSysModuleFS s = Module s +mkModuleFS :: FastString -> Module +mkModuleFS s = Module s \end{code} %************************************************************************