The haddock package

[ Tags: bsd3, documentation, program ] [ Propose Tags ]

This is Haddock, a tool for automatically generating documentation from annotated Haskell source code. It is primary intended for documenting library interfaces, but it should be useful for any kind of Haskell code.

Haddock lets you write documentation annotations next to the definitions of functions and types in the source code, in a syntax that is easy on the eye when writing the source code (no heavyweight mark-up).

Haddock understands Haskell's module system, so you can structure your code however you like without worrying that internal structure will be exposed in the generated documentation. For example, it is common to implement a library in several modules, but define the external API by having a single module which re-exports parts of these implementation modules. Using Haddock, you can still write documentation annotations next to the actual definitions of the functions and types in the library, but the documentation annotations from the implementation will be propagated to the external API when the documentation is generated. Abstract types and classes are handled correctly. In fact, even without any documentation annotations, Haddock can generate useful documentation from your source code.

[Skip to Readme]


Versions 0.8, 0.9,, 2.1.0, 2.2.0, 2.2.1, 2.2.2, 2.4.0, 2.4.1, 2.4.2, 2.5.0, 2.6.0, 2.6.1, 2.7.0, 2.7.1, 2.7.2, 2.8.0, 2.8.1, 2.9.0, 2.9.1, 2.9.2, 2.9.3, 2.9.4, 2.10.0, 2.11.0, 2.11.1, 2.12.0, 2.13.0, 2.13.1, 2.13.2,, 2.14.1, 2.14.2, 2.14.3, 2.15.0,,, 2.16.0, 2.16.1, 2.17.2, 2.17.4, 2.17.5, 2.18.1
Change log
Dependencies base (>=4.3 && <4.11), haddock-api (==2.18.1) [details]
License BSD3
Copyright (c) Simon Marlow, David Waern
Author Simon Marlow, David Waern
Maintainer Alex Biehl <>, Simon Hengel <>, Mateusz Kowalczyk <>
Category Documentation
Home page
Bug tracker
Source repository head: git clone
Uploaded Sun Jul 23 17:06:55 UTC 2017 by alexbiehl
Distributions Debian:2.13.1, FreeBSD:2.16.1, LTSHaskell:2.17.4, NixOS:2.18.1
Executables haddock
Downloads 48588 total (325 in the last 30 days)
Rating 0.0 (0 ratings) [clear rating]
  • λ
  • λ
  • λ
Status Docs pending
Build status unknown [no reports yet]
Hackage Matrix CI



Are we in a GHC tree?


Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainer's Corner

For package maintainers and hackage trustees

Readme for haddock-2.18.1

[back to package description]

Haddock, a Haskell Documentation Tool Build Status

About haddock

See Description on Hackage.

Source code documentation

Full documentation can be found in the doc/ subdirectory, in reStructedText format format.


Please create issues when you have any problems and pull requests if you have some code.


To get started you'll need a latest GHC release installed.

Clone the repository:

  git clone
  cd haddock

and then proceed using your favourite build tool.

Using cabal new-build

cabal new-build -w ghc-8.2.1
# build & run the test suite
cabal new-test -w ghc-8.2.1

Using Cabal sandboxes

cabal sandbox init
cabal sandbox add-source haddock-library
cabal sandbox add-source haddock-api
cabal sandbox add-source haddock-test
# adjust -j to the number of cores you want to use
cabal install -j4 --dependencies-only --enable-tests
cabal configure --enable-tests
cabal build -j4
# run the test suite
export HADDOCK_PATH="dist/build/haddock/haddock"
cabal test

Using Stack

stack init
stack install
# run the test suite
export HADDOCK_PATH="$HOME/.local/bin/haddock"
stack test

Git Branches

If you're a GHC developer and want to update Haddock to work with your changes, you should be working on ghc-head branch instead of master. See instructions at for an example workflow.

The master branch usually requires a GHC from the latest GHC stable branch. The required GHC version can be inferred from the version bounds on ghc in the respective .cabal files.