module Haskell.Docs.Types
(IdentDoc(..)
,DocsException(..)
,Identifier(..)
,PackageName(..))
where
import Control.Exception (Exception)
import Data.Typeable (Typeable)
import Documentation.Haddock (Doc)
import GHC (Id)
import Module (ModuleName)
import PackageConfig (PackageIdentifier)
newtype Identifier = Identifier {unIdentifier :: String}
deriving (Show,Eq)
newtype PackageName = PackageName String
deriving (Show,Eq)
data IdentDoc = IdentDoc
{ identDocPackageName :: !PackageIdentifier
, identDocDocs :: !(Doc String)
, identDocIdent :: !(Maybe Id)
, identDocArgDocs :: !(Maybe [(Int, Doc String)])
}
instance Eq IdentDoc where
a == b = identDocIdent a == identDocIdent b
data DocsException
= NoFindModule
| NoModulePackageCombo
| NoInterfaceFiles
| NoParseInterfaceFiles [DocsException]
| NoFindNameInExports
| NoFindNameInInterface
| NoReadInterfaceFile String
deriving (Typeable,Show)
instance Exception DocsException