haddock-2.4.2: A documentation-generation tool for Haskell librariesSource codeContentsIndex
Distribution.Haddock
Synopsis
readInterfaceFile :: MonadIO m => NameCacheAccessor m -> FilePath -> m (Either String InterfaceFile)
nameCacheFromGhc :: NameCacheAccessor Ghc
freshNameCache :: NameCacheAccessor IO
type NameCacheAccessor m = (m NameCache, NameCache -> m ())
data InterfaceFile = InterfaceFile {
ifLinkEnv :: LinkEnv
ifInstalledIfaces :: [InstalledInterface]
}
type LinkEnv = Map Name Module
data InstalledInterface = InstalledInterface {
instMod :: Module
instInfo :: HaddockModInfo Name
instDocMap :: Map Name (HsDoc DocName)
instExports :: [Name]
instVisibleExports :: [Name]
instOptions :: [DocOption]
instSubMap :: Map Name [Name]
}
data DocName
= Documented Name Module
| Undocumented Name
docNameOcc :: DocName -> OccName
docNameOrig :: DocName -> Name
Documentation
readInterfaceFile :: MonadIO m => NameCacheAccessor m -> FilePath -> m (Either String InterfaceFile)Source

Read a Haddock (.haddock) interface file. Return either an InterfaceFile or an error message.

This function can be called in two ways. Within a GHC session it will update the use and update the session's name cache. Outside a GHC session a new empty name cache is used. The function is therefore generic in the monad being used. The exact monad is whichever monad the first argument, the getter and setter of the name cache, requires.

nameCacheFromGhc :: NameCacheAccessor GhcSource
freshNameCache :: NameCacheAccessor IOSource
type NameCacheAccessor m = (m NameCache, NameCache -> m ())Source
data InterfaceFile Source
Constructors
InterfaceFile
ifLinkEnv :: LinkEnv
ifInstalledIfaces :: [InstalledInterface]
show/hide Instances
type LinkEnv = Map Name ModuleSource
data InstalledInterface Source
A smaller version of Interface that we can get from the Haddock interface files.
Constructors
InstalledInterface
instMod :: Module
instInfo :: HaddockModInfo Name
instDocMap :: Map Name (HsDoc DocName)
instExports :: [Name]
instVisibleExports :: [Name]
instOptions :: [DocOption]
instSubMap :: Map Name [Name]
show/hide Instances
data DocName Source
Constructors
Documented Name Module
Undocumented Name
show/hide Instances
docNameOcc :: DocName -> OccNameSource
The OccName belonging to this name
docNameOrig :: DocName -> NameSource
The original definition site of this name
Produced by Haddock version 2.4.1