hsdev-0.2.1.0: Haskell development library

Safe HaskellNone
LanguageHaskell98

HsDev.Symbols.Resolve

Synopsis

Documentation

newtype ResolveM a Source #

Resolve monad uses existing Database and ResolvedTree as state.

Constructors

ResolveM 

Fields

Instances

type ResolvedTree = Map ModuleId ResolvedModule Source #

Tree of resolved modules

data ResolvedModule Source #

Module with declarations bringed to scope and with exported declarations

scopeModule :: ResolvedModule -> Module Source #

Make Module with scope declarations

exportsModule :: ResolvedModule -> Module Source #

Make Module with exported only declarations

resolve :: Traversable t => Database -> t Module -> t ResolvedModule Source #

Resolve modules, function is not IO, so all file names must be canonicalized

resolveOne :: Database -> Module -> ResolvedModule Source #

Resolve one module

resolveImports :: Module -> [Import] -> ResolveM [Declaration] Source #

Bring declarations into scope by imports

resolveImport :: Set String -> Module -> Import -> ResolveM [Declaration] Source #

Bring declarations into scope, first parameter is set of visible packages

mergeImported :: [Declaration] -> [Declaration] Source #

Merge imported declarations