| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Module
Contents
- data ModuleName
- pprModuleName :: ModuleName -> SDoc
- moduleNameFS :: ModuleName -> FastString
- moduleNameString :: ModuleName -> String
- moduleNameSlashes :: ModuleName -> String
- moduleNameColons :: ModuleName -> String
- moduleStableString :: Module -> String
- mkModuleName :: String -> ModuleName
- mkModuleNameFS :: FastString -> ModuleName
- stableModuleNameCmp :: ModuleName -> ModuleName -> Ordering
- data UnitId
- fsToUnitId :: FastString -> UnitId
- unitIdFS :: UnitId -> FastString
- stringToUnitId :: String -> UnitId
- unitIdString :: UnitId -> String
- stableUnitIdCmp :: UnitId -> UnitId -> Ordering
- primUnitId :: UnitId
- integerUnitId :: UnitId
- baseUnitId :: UnitId
- rtsUnitId :: UnitId
- thUnitId :: UnitId
- dphSeqUnitId :: UnitId
- dphParUnitId :: UnitId
- mainUnitId :: UnitId
- thisGhcUnitId :: UnitId
- holeUnitId :: UnitId
- isHoleModule :: Module -> Bool
- interactiveUnitId :: UnitId
- isInteractiveModule :: Module -> Bool
- wiredInUnitIds :: [UnitId]
- data Module = Module {
- moduleUnitId :: !UnitId
- moduleName :: !ModuleName
- pprModule :: Module -> SDoc
- mkModule :: UnitId -> ModuleName -> Module
- stableModuleCmp :: Module -> Module -> Ordering
- class HasModule m where
- class ContainsModule t where
- data ModLocation = ModLocation {}
- addBootSuffix :: FilePath -> FilePath
- addBootSuffix_maybe :: Bool -> FilePath -> FilePath
- addBootSuffixLocn :: ModLocation -> ModLocation
- data ModuleEnv elt
- elemModuleEnv :: Module -> ModuleEnv a -> Bool
- extendModuleEnv :: ModuleEnv a -> Module -> a -> ModuleEnv a
- extendModuleEnvList :: ModuleEnv a -> [(Module, a)] -> ModuleEnv a
- extendModuleEnvList_C :: (a -> a -> a) -> ModuleEnv a -> [(Module, a)] -> ModuleEnv a
- plusModuleEnv_C :: (a -> a -> a) -> ModuleEnv a -> ModuleEnv a -> ModuleEnv a
- delModuleEnvList :: ModuleEnv a -> [Module] -> ModuleEnv a
- delModuleEnv :: ModuleEnv a -> Module -> ModuleEnv a
- plusModuleEnv :: ModuleEnv a -> ModuleEnv a -> ModuleEnv a
- lookupModuleEnv :: ModuleEnv a -> Module -> Maybe a
- lookupWithDefaultModuleEnv :: ModuleEnv a -> a -> Module -> a
- mapModuleEnv :: (a -> b) -> ModuleEnv a -> ModuleEnv b
- mkModuleEnv :: [(Module, a)] -> ModuleEnv a
- emptyModuleEnv :: ModuleEnv a
- moduleEnvKeys :: ModuleEnv a -> [Module]
- moduleEnvElts :: ModuleEnv a -> [a]
- moduleEnvToList :: ModuleEnv a -> [(Module, a)]
- unitModuleEnv :: Module -> a -> ModuleEnv a
- isEmptyModuleEnv :: ModuleEnv a -> Bool
- foldModuleEnv :: (a -> b -> b) -> b -> ModuleEnv a -> b
- extendModuleEnvWith :: (a -> a -> a) -> ModuleEnv a -> Module -> a -> ModuleEnv a
- filterModuleEnv :: (Module -> a -> Bool) -> ModuleEnv a -> ModuleEnv a
- type ModuleNameEnv elt = UniqFM elt
- type ModuleSet = Map Module ()
- emptyModuleSet :: ModuleSet
- mkModuleSet :: [Module] -> ModuleSet
- moduleSetElts :: ModuleSet -> [Module]
- extendModuleSet :: ModuleSet -> Module -> ModuleSet
- elemModuleSet :: Module -> ModuleSet -> Bool
The ModuleName type
data ModuleName Source
A ModuleName is essentially a simple string, e.g. Data.List.
pprModuleName :: ModuleName -> SDoc Source
moduleNameSlashes :: ModuleName -> String Source
Returns the string version of the module name, with dots replaced by slashes.
moduleNameColons :: ModuleName -> String Source
Returns the string version of the module name, with dots replaced by underscores.
moduleStableString :: Module -> String Source
Get a string representation of a Module that's unique and stable
across recompilations.
eg. "$aeson_70dylHtv1FFGeai1IoxcQr$Data.Aeson.Types.Internal"
mkModuleName :: String -> ModuleName Source
stableModuleNameCmp :: ModuleName -> ModuleName -> Ordering Source
Compares module names lexically, rather than by their Uniques
The UnitId type
A string which uniquely identifies a package. For wired-in packages, it is just the package name, but for user compiled packages, it is a hash. ToDo: when the key is a hash, we can do more clever things than store the hex representation and hash-cons those strings.
fsToUnitId :: FastString -> UnitId Source
unitIdFS :: UnitId -> FastString Source
stringToUnitId :: String -> UnitId Source
unitIdString :: UnitId -> String Source
stableUnitIdCmp :: UnitId -> UnitId -> Ordering Source
Compares package ids lexically, rather than by their Uniques
Wired-in UnitIds
This is the package Id for the current program. It is the default package Id if you don't specify a package name. We don't add this prefix to symbol names, since there can be only one main package per program.
This is a fake package id used to provide identities to any un-implemented signatures. The set of hole identities is global over an entire compilation.
isHoleModule :: Module -> Bool Source
isInteractiveModule :: Module -> Bool Source
wiredInUnitIds :: [UnitId] Source
The Module type
A Module is a pair of a UnitId and a ModuleName.
Constructors
| Module | |
Fields
| |
mkModule :: UnitId -> ModuleName -> Module Source
stableModuleCmp :: Module -> Module -> Ordering Source
This gives a stable ordering, as opposed to the Ord instance which
gives an ordering based on the Uniques of the components, which may
not be stable from run to run of the compiler.
class HasModule m where Source
Minimal complete definition
Instances
| HasModule CoreM | |
| ContainsModule env => HasModule (IOEnv env) | |
class ContainsModule t where Source
Minimal complete definition
Methods
extractModule :: t -> Module Source
Instances
| ContainsModule TcGblEnv | |
| ContainsModule DsGblEnv | |
| ContainsModule gbl => ContainsModule (Env gbl lcl) | |
The ModuleLocation type
data ModLocation Source
Where a module lives on the file system: the actual locations of the .hs, .hi and .o files, if we have them
Constructors
| ModLocation | |
Fields
| |
Instances
addBootSuffix :: FilePath -> FilePath Source
Add the -boot suffix to .hs, .hi and .o files
addBootSuffix_maybe :: Bool -> FilePath -> FilePath Source
Add the -boot suffix if the Bool argument is True
addBootSuffixLocn :: ModLocation -> ModLocation Source
Add the -boot suffix to all file paths associated with the module
Module mappings
elemModuleEnv :: Module -> ModuleEnv a -> Bool Source
extendModuleEnv :: ModuleEnv a -> Module -> a -> ModuleEnv a Source
extendModuleEnvList :: ModuleEnv a -> [(Module, a)] -> ModuleEnv a Source
extendModuleEnvList_C :: (a -> a -> a) -> ModuleEnv a -> [(Module, a)] -> ModuleEnv a Source
plusModuleEnv_C :: (a -> a -> a) -> ModuleEnv a -> ModuleEnv a -> ModuleEnv a Source
delModuleEnvList :: ModuleEnv a -> [Module] -> ModuleEnv a Source
delModuleEnv :: ModuleEnv a -> Module -> ModuleEnv a Source
plusModuleEnv :: ModuleEnv a -> ModuleEnv a -> ModuleEnv a Source
lookupModuleEnv :: ModuleEnv a -> Module -> Maybe a Source
lookupWithDefaultModuleEnv :: ModuleEnv a -> a -> Module -> a Source
mapModuleEnv :: (a -> b) -> ModuleEnv a -> ModuleEnv b Source
mkModuleEnv :: [(Module, a)] -> ModuleEnv a Source
moduleEnvKeys :: ModuleEnv a -> [Module] Source
moduleEnvElts :: ModuleEnv a -> [a] Source
moduleEnvToList :: ModuleEnv a -> [(Module, a)] Source
unitModuleEnv :: Module -> a -> ModuleEnv a Source
isEmptyModuleEnv :: ModuleEnv a -> Bool Source
foldModuleEnv :: (a -> b -> b) -> b -> ModuleEnv a -> b Source
extendModuleEnvWith :: (a -> a -> a) -> ModuleEnv a -> Module -> a -> ModuleEnv a Source
ModuleName mappings
type ModuleNameEnv elt = UniqFM elt Source
A map keyed off of ModuleNames (actually, their Uniques)
Sets of Modules
mkModuleSet :: [Module] -> ModuleSet Source
moduleSetElts :: ModuleSet -> [Module] Source
extendModuleSet :: ModuleSet -> Module -> ModuleSet Source
elemModuleSet :: Module -> ModuleSet -> Bool Source