\begin{hcarentry}{Haddock}
\label{haddock}
\report{David Waern}%11/08
\status{experimental, maintained}
\makeheader

Haddock is a widely used documentation-generation tool for Haskell
library code.  Haddock generates documentation by parsing the Haskell
source code directly and including documentation supplied by the
programmer in the form of specially-formatted comments in the source
code itself.  Haddock has direct support in Cabal~\cref{cabal}, and is used to
generate the documentation for the hierarchical libraries that come
with GHC, Hugs, and nhc98
(\url{http://www.haskell.org/ghc/docs/latest/html/libraries}).

The latest release is version 2.2.2, released August 5 2008.

\Separate
Recent changes:
\begin{itemize}
\item Support for GHC 6.8.3
\item The Hoogle backend is back, thanks to Neil Mitchell.
\item Show associated types in the documentation for class declarations
\item Show associated types in the documentation for class declarations
\item Show type family declarations
\item Show type equality predicates
\item Major bug fixes (\#1 and \#44)
\item It is no longer required to specify the path to GHC's lib dir
\item Remove unnecessary parenthesis in type signatures
\end{itemize}

\FuturePlans
Currently, Haddock ignores comments on some language constructs like GADTs and
Associated Type synonyms. Of course, the plan is to support comments
for these constructs in the future.
Haddock is also slightly more picky on where to put comments compared
to the 0.x series. We want to fix this
as well. Both of these plans require changes to the GHC parser. We
want to investigate to what degree it is possible to
decouple comment parsing from GHC and move it into Haddock, to not be bound by
GHC releases.

Other things we plan to add in future releases:
\begin{itemize}
\item Support for GHC 6.10.1
\item HTML frames ({\'a} la Javadoc)
\item Support for documenting re-exports from other packages 
\end{itemize}

\FurtherReading
\begin{compactitem}
\item Haddock's homepage:
\url{http://www.haskell.org/haddock/}

\item Haddock's developer Wiki and Trac:
\url{http://trac.haskell.org/haddock}
\end{compactitem}
\end{hcarentry}