ghc-imported-from: Find the Haddock documentation for a symbol.

[ bsd3, development, library, program ] [ Propose Tags ]

Given a Haskell module and symbol, determine the URL to the Haddock documentation for that symbol.

[Skip to Readme]
Versions [faq],,,,,,,,,,,,,,,,,,,,,
Change log
Dependencies base (>=4.6 && <4.8), Cabal (>=1.10 && <1.17 || >=1.18), containers, directory, filepath, ghc, ghc-imported-from, ghc-mod, ghc-paths, ghc-syb-utils, hspec, mtl, process, safe, syb, transformers [details]
License BSD-3-Clause
Author Carlo Hamalainen
Category Development
Home page
Uploaded by CarloHamalainen at 2014-05-15T17:25:31Z
Distributions NixOS:
Executables ghc-imported-from, fake-ghc-for-ghc-imported-from
Downloads 11993 total (19 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs available [build log]
Successful builds reported [all 1 reports]




Maintainer's Corner

For package maintainers and hackage trustees

Readme for ghc-imported-from-

[back to package description]


For a given Haskell source file, determine the path to the Haddock documentation for a symbol at a particular line/col location.

Example: on the file src/Main.hs,

ghc-imported-from haddock-url src/Main.hs Main getArgs 160 13


SUCCESS: file:///home/carlo/opt/ghc-7.6.3_build/share/doc/ghc/html/libraries/base-

since the usage of getArgs at line 160, column 13, is from the System.Environment module.

Difficulties arise because some symbols are exported from a certain package but defined in another, for example String is defined in GHC.Base but is exported from the standard prelude, the module Prelude. There are other cases to deal with including qualified imports, selective imports, imports with hidden components, etc.

Preference is given to any locally available Haddock documentation, and then to the generic url at


You may have to run

cabal build


cabal repl

in a project directory to sort out some of the dist/build/autogen files. At the moment ghc-imported-from has no functionality to do this boot process automatically. To run cabal repl you might need the latest Cabal from

If you see

<command line>: cannot satisfy -package hspec
    (use -v for more information)

then you may need the hspec and/or doctest packages:

cabal install hspec doctest

Feedback and pull requests most welcome!



Install into ~/.cabal:

git clone
cd ghc-imported-from
cabal install

Or, install into a sandbox:

git clone
cd ghc-imported-from

Either way, ensure that ghc-imported-from is in the current PATH.


Follow the instructions at to install the Vim plugin.


See the tests subdirectory for some examples. Or load your favourite Haskell project and hit F4.

Or watch the screencast (be sure to set 720p HD and then fullscreen):