module GHC.Unit.Module.Imported
( ImportedMods
, ImportedBy (..)
, ImportedModsVal (..)
, importedByUser
)
where
import GHC.Prelude
import GHC.Unit.Module
import GHC.Types.Name.Reader
import GHC.Types.SafeHaskell
import GHC.Types.SrcLoc
type ImportedMods = ModuleEnv [ImportedBy]
data ImportedBy
= ImportedByUser ImportedModsVal
| ImportedBySystem
importedByUser :: [ImportedBy] -> [ImportedModsVal]
importedByUser :: [ImportedBy] -> [ImportedModsVal]
importedByUser (ImportedByUser ImportedModsVal
imv : [ImportedBy]
bys) = ImportedModsVal
imv ImportedModsVal -> [ImportedModsVal] -> [ImportedModsVal]
forall a. a -> [a] -> [a]
: [ImportedBy] -> [ImportedModsVal]
importedByUser [ImportedBy]
bys
importedByUser (ImportedBy
ImportedBySystem : [ImportedBy]
bys) = [ImportedBy] -> [ImportedModsVal]
importedByUser [ImportedBy]
bys
importedByUser [] = []
data ImportedModsVal = ImportedModsVal
{ ImportedModsVal -> ModuleName
imv_name :: ModuleName
, ImportedModsVal -> SrcSpan
imv_span :: SrcSpan
, ImportedModsVal -> IsSafeImport
imv_is_safe :: IsSafeImport
, ImportedModsVal -> IsSafeImport
imv_is_hiding :: Bool
, ImportedModsVal -> GlobalRdrEnv
imv_all_exports :: !GlobalRdrEnv
, ImportedModsVal -> IsSafeImport
imv_qualified :: Bool
}