Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
HieDb.Types
Contents
Synopsis
- newtype HieDb = HieDb {}
- data HieDbException = IncompatibleSchemaVersion {
- expectedVersion :: Integer
- gotVersion :: Integer
- setHieTrace :: HieDb -> Maybe (Text -> IO ()) -> IO ()
- data SourceFile
- data ModuleInfo = ModuleInfo {
- modInfoName :: ModuleName
- modInfoUnit :: Unit
- modInfoIsBoot :: Bool
- modInfoSrcFile :: Maybe FilePath
- modInfoIsReal :: Bool
- modInfoHash :: Fingerprint
- type Res a = a :. ModuleInfo
- toNsChar :: NameSpace -> Char
- fromNsChar :: Char -> Maybe NameSpace
- data HieModuleRow = HieModuleRow {
- hieModuleHieFile :: FilePath
- hieModInfo :: ModuleInfo
- data RefRow = RefRow {
- refSrc :: FilePath
- refNameOcc :: OccName
- refNameMod :: ModuleName
- refNameUnit :: Unit
- refSLine :: Int
- refSCol :: Int
- refELine :: Int
- refECol :: Int
- data DeclRow = DeclRow {}
- data TypeName = TypeName {}
- data TypeRef = TypeRef {
- typeRefOccId :: Int64
- typeRefHieFile :: FilePath
- typeRefDepth :: Int
- typeRefSLine :: Int
- typeRefSCol :: Int
- typeRefELine :: Int
- typeRefECol :: Int
- data DefRow = DefRow {}
- data ExportRow = ExportRow {
- exportHieFile :: FilePath
- exportName :: OccName
- exportMod :: ModuleName
- exportUnit :: Unit
- exportParent :: Maybe OccName
- exportParentMod :: Maybe ModuleName
- exportParentUnit :: Maybe Unit
- exportIsDatacon :: Bool
- class Monad m => NameCacheMonad m where
- newtype DbMonadT m a = DbMonadT {
- runDbMonad :: ReaderT (IORef NameCache) m a
- type DbMonad = DbMonadT IO
- runDbM :: IORef NameCache -> DbMonad a -> IO a
- data HieDbErr
- = NotIndexed ModuleName (Maybe Unit)
- | AmbiguousUnitId (NonEmpty ModuleInfo)
- | NameNotFound OccName (Maybe ModuleName) (Maybe Unit)
- | NoNameAtPoint HieTarget (Int, Int)
- | NameUnhelpfulSpan Name String
- data Symbol = Symbol {}
- readNameSpace :: ReadP NameSpace
- readColon :: ReadP ()
- readSymbol :: ReadP Symbol
- newtype LibDir = LibDir FilePath
- type HieTarget = Either FilePath (ModuleName, Maybe Unit)
Documentation
Constructors
HieDb | |
Fields |
data HieDbException #
Constructors
IncompatibleSchemaVersion | |
Fields
|
Instances
Exception HieDbException # | |
Defined in HieDb.Types Methods toException :: HieDbException -> SomeException fromException :: SomeException -> Maybe HieDbException displayException :: HieDbException -> String | |
Show HieDbException # | |
Defined in HieDb.Types Methods showsPrec :: Int -> HieDbException -> ShowS show :: HieDbException -> String showList :: [HieDbException] -> ShowS | |
Eq HieDbException # | |
Defined in HieDb.Types Methods (==) :: HieDbException -> HieDbException -> Bool (/=) :: HieDbException -> HieDbException -> Bool | |
Ord HieDbException # | |
Defined in HieDb.Types Methods compare :: HieDbException -> HieDbException -> Ordering (<) :: HieDbException -> HieDbException -> Bool (<=) :: HieDbException -> HieDbException -> Bool (>) :: HieDbException -> HieDbException -> Bool (>=) :: HieDbException -> HieDbException -> Bool max :: HieDbException -> HieDbException -> HieDbException min :: HieDbException -> HieDbException -> HieDbException |
setHieTrace :: HieDb -> Maybe (Text -> IO ()) -> IO () #
data SourceFile #
Encodes the original haskell source file of a module, along with whether it is "real" or not A file is "real" if it comes from the user project, as opposed to a dependency
data ModuleInfo #
Constructors
ModuleInfo | |
Fields
|
Instances
Show ModuleInfo # | |
Defined in HieDb.Types Methods showsPrec :: Int -> ModuleInfo -> ShowS show :: ModuleInfo -> String showList :: [ModuleInfo] -> ShowS | |
Eq ModuleInfo # | |
Defined in HieDb.Types | |
FromRow ModuleInfo # | |
Defined in HieDb.Types Methods | |
ToRow ModuleInfo # | |
Defined in HieDb.Types Methods toRow :: ModuleInfo -> [SQLData] # |
type Res a = a :. ModuleInfo #
fromNsChar :: Char -> Maybe NameSpace #
data HieModuleRow #
Constructors
HieModuleRow | |
Fields
|
Instances
Show HieModuleRow # | |
Defined in HieDb.Types Methods showsPrec :: Int -> HieModuleRow -> ShowS show :: HieModuleRow -> String showList :: [HieModuleRow] -> ShowS | |
Eq HieModuleRow # | |
Defined in HieDb.Types | |
FromRow HieModuleRow # | |
Defined in HieDb.Types Methods | |
ToRow HieModuleRow # | |
Defined in HieDb.Types Methods toRow :: HieModuleRow -> [SQLData] # |
Constructors
RefRow | |
Fields
|
Constructors
DeclRow | |
Constructors
TypeRef | |
Fields
|
Constructors
DefRow | |
Constructors
ExportRow | |
Fields
|
class Monad m => NameCacheMonad m where #
Monad with access to NameCacheUpdater
, which is needed to deserialize .hie
files
Methods
Instances
MonadIO m => NameCacheMonad (DbMonadT m) # | |
Defined in HieDb.Types Methods |
Constructors
DbMonadT | |
Fields
|
Instances
MonadTrans DbMonadT # | |
Defined in HieDb.Types | |
MonadIO m => MonadIO (DbMonadT m) # | |
Defined in HieDb.Types | |
Monad m => Applicative (DbMonadT m) # | |
Monad m => Functor (DbMonadT m) # | |
Monad m => Monad (DbMonadT m) # | |
MonadIO m => NameCacheMonad (DbMonadT m) # | |
Defined in HieDb.Types Methods |
Constructors
NotIndexed ModuleName (Maybe Unit) | |
AmbiguousUnitId (NonEmpty ModuleInfo) | |
NameNotFound OccName (Maybe ModuleName) (Maybe Unit) | |
NoNameAtPoint HieTarget (Int, Int) | |
NameUnhelpfulSpan Name String |
readNameSpace :: ReadP NameSpace #
readSymbol :: ReadP Symbol #
GHC Library Directory. Typically you'll want to use
libdir
from ghc-paths
Constructors
LibDir FilePath |
type HieTarget = Either FilePath (ModuleName, Maybe Unit) #
A way to specify which HieFile to operate on.
Either the path to .hie
file is given in the Left
Or ModuleName (with optional Unit) is given in the Right
Orphan instances
FromField Fingerprint # | |
Methods | |
FromField OccName # | |
Methods | |
FromField Unit # | |
Methods | |
FromField ModuleName # | |
Methods | |
FromRow ModuleName # | |
Methods | |
ToField Fingerprint # | |
Methods toField :: Fingerprint -> SQLData # | |
ToField OccName # | |
ToField Unit # | |
ToField ModuleName # | |
Methods toField :: ModuleName -> SQLData # |