[Haskell-cafe] Using Haddock to document ADTs

Alfonso Acosta alfonso.acosta at gmail.com
Sun Oct 21 20:07:51 EDT 2007


Hi all,

I'm beginning to get familiar with Haddock and I want to document a
library which, as usually happens, has some ADT definitions.

I'd like to document the ADTs both for the end-user (who shouldn't be
told about its internal implementation) and future developers.


Let's imagine my library is called FooLib, defines an ADT whose
implementation is hidden by an outer module.

=========== FooLib/ADT1.hs =====
-- | This module defines my type ADT1
module ADT1

-- | This type implements whatever and. As you can see it's implemented
--  using blah blah so that is more efficient because of  blah blah
data ADT1 a = ...

========== Foolib.hs ============
-- | This is Foolib which is aimed at whatever
module Foolib (ADT) where

import ADT

===================

Generating documentation for Foolib.hs with this Haddock annotations
will unfortunatelly reveal implementation details since the annotation
of ADT1 is forwarded.

My question is, How can I generate documentation for both developers
and the end-users using the same Haddock annotations?

I'm beginning to think it would be a good idea to distinguish those
two cases (documentation for end-users and internal developers) in
Haddock, but I'm probably wrong since it seems a common thing and
wasn't implemented yet.

Best Regards,

Alfonso


More information about the Haskell-Cafe mailing list