hsdev- Haskell development library and tool with support of autocompletion, symbol info, go to declaration, find references etc.

Safe HaskellNone




newtype ResolveM a Source

Resolve monad uses existing Database and ResolvedTree as state.

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, Foldable 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

resolveImport :: Module -> Import -> ResolveM [Declaration] Source

Bring declarations into scope

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

Merge imported declarations