Safe Haskell | None |
---|
- cff_magic :: ChunkType
- cff_link :: ChunkType
- cff_libr :: ChunkType
- cff_jhdr :: ChunkType
- cff_core :: ChunkType
- cff_defs :: ChunkType
- cff_lcor :: ChunkType
- cff_ldef :: ChunkType
- cff_idep :: ChunkType
- cff_file :: ChunkType
- type SourceHash = Hash
- type HoHash = Hash
- type ModuleGroup = Module
- data CollectedHo = CollectedHo {
- choExternalNames :: IdSet
- choCombinators :: IdMap Comb
- choOrphanRules :: Rules
- choHoMap :: Map ModuleGroup Ho
- choLibDeps :: Map PackedString HoHash
- choHo :: Ho
- choVarMap :: IdMap (Maybe E)
- data HoHeader = HoHeader {
- hohVersion :: Int
- hohHash :: HoHash
- hohName :: Either ModuleGroup (PackedString, Version)
- hohLibDeps :: [(PackedString, HoHash)]
- hohArchDeps :: [(PackedString, PackedString)]
- data HoIDeps = HoIDeps {
- hoIDeps :: Map SourceHash (Module, [(Module, SrcLoc)])
- hoDepends :: [(Module, SourceHash)]
- hoModDepends :: [HoHash]
- hoModuleGroupNeeds :: [ModuleGroup]
- data HoLib = HoLib {}
- data Library = Library {}
- data HoTcInfo = HoTcInfo {
- hoExports :: Map Module [Name]
- hoDefs :: Map Name (SrcLoc, [Name])
- hoAssumps :: Map Name Type
- hoFixities :: FixityMap
- hoKinds :: KindEnv
- hoTypeSynonyms :: TypeSynonyms
- hoClassHierarchy :: ClassHierarchy
- hoFieldMap :: FieldMap
- data HoBuild = HoBuild {}
- data Ho = Ho {}
- data ExtraFile = ExtraFile {}
- choVarMap_s :: IntjectionMap Id (Maybe E) -> CollectedHo -> CollectedHo
- choVarMap_u :: (IntjectionMap Id (Maybe E) -> IntjectionMap Id (Maybe E)) -> CollectedHo -> CollectedHo
- choOrphanRules_s :: Rules -> CollectedHo -> CollectedHo
- choOrphanRules_u :: (Rules -> Rules) -> CollectedHo -> CollectedHo
- choLibDeps_s :: Map PackedString Hash -> CollectedHo -> CollectedHo
- choLibDeps_u :: (Map PackedString Hash -> Map PackedString Hash) -> CollectedHo -> CollectedHo
- choHoMap_s :: Map Module Ho -> CollectedHo -> CollectedHo
- choHoMap_u :: (Map Module Ho -> Map Module Ho) -> CollectedHo -> CollectedHo
- choHo_s :: Ho -> CollectedHo -> CollectedHo
- choHo_u :: (Ho -> Ho) -> CollectedHo -> CollectedHo
- choExternalNames_s :: IntjectionSet Id -> CollectedHo -> CollectedHo
- choExternalNames_u :: (IntjectionSet Id -> IntjectionSet Id) -> CollectedHo -> CollectedHo
- choCombinators_s :: IntjectionMap Id Comb -> CollectedHo -> CollectedHo
- choCombinators_u :: (IntjectionMap Id Comb -> IntjectionMap Id Comb) -> CollectedHo -> CollectedHo
- hoTypeSynonyms_s :: TypeSynonyms -> HoTcInfo -> HoTcInfo
- hoTypeSynonyms_u :: (TypeSynonyms -> TypeSynonyms) -> HoTcInfo -> HoTcInfo
- hoKinds_s :: KindEnv -> HoTcInfo -> HoTcInfo
- hoKinds_u :: (KindEnv -> KindEnv) -> HoTcInfo -> HoTcInfo
- hoFixities_s :: FixityMap -> HoTcInfo -> HoTcInfo
- hoFixities_u :: (FixityMap -> FixityMap) -> HoTcInfo -> HoTcInfo
- hoFieldMap_s :: FieldMap -> HoTcInfo -> HoTcInfo
- hoFieldMap_u :: (FieldMap -> FieldMap) -> HoTcInfo -> HoTcInfo
- hoExports_s :: Map Module [Name] -> HoTcInfo -> HoTcInfo
- hoExports_u :: (Map Module [Name] -> Map Module [Name]) -> HoTcInfo -> HoTcInfo
- hoDefs_s :: Map Name (SrcLoc, [Name]) -> HoTcInfo -> HoTcInfo
- hoDefs_u :: (Map Name (SrcLoc, [Name]) -> Map Name (SrcLoc, [Name])) -> HoTcInfo -> HoTcInfo
- hoClassHierarchy_s :: ClassHierarchy -> HoTcInfo -> HoTcInfo
- hoClassHierarchy_u :: (ClassHierarchy -> ClassHierarchy) -> HoTcInfo -> HoTcInfo
- hoAssumps_s :: Map Name Type -> HoTcInfo -> HoTcInfo
- hoAssumps_u :: (Map Name Type -> Map Name Type) -> HoTcInfo -> HoTcInfo
- hoRules_s :: Rules -> HoBuild -> HoBuild
- hoRules_u :: (Rules -> Rules) -> HoBuild -> HoBuild
- hoEs_s :: [(TVr' E, E)] -> HoBuild -> HoBuild
- hoEs_u :: ([(TVr' E, E)] -> [(TVr' E, E)]) -> HoBuild -> HoBuild
- hoDataTable_s :: DataTable -> HoBuild -> HoBuild
- hoDataTable_u :: (DataTable -> DataTable) -> HoBuild -> HoBuild
- hoTcInfo_s :: HoTcInfo -> Ho -> Ho
- hoTcInfo_u :: (HoTcInfo -> HoTcInfo) -> Ho -> Ho
- hoModuleGroup_s :: Module -> Ho -> Ho
- hoModuleGroup_u :: (Module -> Module) -> Ho -> Ho
- hoBuild_s :: HoBuild -> Ho -> Ho
- hoBuild_u :: (HoBuild -> HoBuild) -> Ho -> Ho
Documentation
type SourceHash = HashSource
A SourceHash is the hash of a specific file, it is associated with a
specific Module
that said file implements.
type ModuleGroup = ModuleSource
while a Module
is a single Module associated with a single haskell source
file, a ModuleGroup
identifies a group of mutually recursive modules.
Generally it is chosen from among the Modules making up the group, but the
specific choice has no other meaning. We could use the HoHash, but for readability
reasons when debugging it makes more sense to choose an arbitrary Module.
data CollectedHo Source
the collected information that is passed around this is not stored in any file, but is what is collected from the ho files.
CollectedHo | |
|
The header contains basic information about the file, it should be enough to determine whether we can discard the file right away or consider it further.
HoHeader | |
|
These are the dependencies needed to check if a ho file is up to date. it only appears in ho files as hl files do not have source code to check against or depend on anything but other libraries.
HoIDeps | |
|
HoLib | |
|
Library | |
|
data only needed for type checking.
HoTcInfo | |
|
choVarMap_s :: IntjectionMap Id (Maybe E) -> CollectedHo -> CollectedHoSource
choVarMap_u :: (IntjectionMap Id (Maybe E) -> IntjectionMap Id (Maybe E)) -> CollectedHo -> CollectedHoSource
choOrphanRules_u :: (Rules -> Rules) -> CollectedHo -> CollectedHoSource
choLibDeps_u :: (Map PackedString Hash -> Map PackedString Hash) -> CollectedHo -> CollectedHoSource
choHoMap_s :: Map Module Ho -> CollectedHo -> CollectedHoSource
choHoMap_u :: (Map Module Ho -> Map Module Ho) -> CollectedHo -> CollectedHoSource
choHo_s :: Ho -> CollectedHo -> CollectedHoSource
choHo_u :: (Ho -> Ho) -> CollectedHo -> CollectedHoSource
choExternalNames_u :: (IntjectionSet Id -> IntjectionSet Id) -> CollectedHo -> CollectedHoSource
choCombinators_u :: (IntjectionMap Id Comb -> IntjectionMap Id Comb) -> CollectedHo -> CollectedHoSource
hoTypeSynonyms_u :: (TypeSynonyms -> TypeSynonyms) -> HoTcInfo -> HoTcInfoSource
hoFixities_s :: FixityMap -> HoTcInfo -> HoTcInfoSource
hoFieldMap_s :: FieldMap -> HoTcInfo -> HoTcInfoSource
hoClassHierarchy_u :: (ClassHierarchy -> ClassHierarchy) -> HoTcInfo -> HoTcInfoSource
hoDataTable_s :: DataTable -> HoBuild -> HoBuildSource
hoTcInfo_s :: HoTcInfo -> Ho -> HoSource
hoModuleGroup_s :: Module -> Ho -> HoSource