[haddock] #13: Module references in doc strings are always assumed to be in the current package

haddock haddock at projects.haskell.org
Sun Feb 22 10:36:47 EST 2009


#13: Module references in doc strings are always assumed to be in the current
package
-------------------+--------------------------------------------------------
Reporter:  waern   |        Owner:       
    Type:  defect  |       Status:  new  
Priority:  major   |    Milestone:  2.4.2
 Version:  0.x     |   Resolution:       
Keywords:          |  
-------------------+--------------------------------------------------------
Comment (by duncan):

 A harder case is when a package refers to modules from another package
 that it does not even depend on.

 For example my `tar` package refers to modules from the `zlib` and `bzlib`
 packages. This is because it is showing examples of how to use the `tar`
 code to handle compressed `.tar.gz` files.

 It's not reasonable in this context to expect haddock to resolve the
 names, since they are certainly not in scope (and need not even be
 installed). I suggest that in such odd circumstances we allow fully
 package-qualified names.

 GHC uses the convention that fully package-qualified names use the `:` as
 a separator. For example I would use something like:

 {{{
 -- | Tar files are commonly used in conjuction with gzip compression,
 -- as in \"@.tar.gz@\" or \"@.tar.bz2@\" files. This module does not
 -- directly handle compressed tar files however they can be handled
 -- easily by composing functions from this module and the modules
 -- "zlib:Codec.Compression.GZip" or "bzlib:Codec.Compression.BZip".
 }}}

 What makes this harder though is that we do not know which version of
 those packages to link to. We could just take it literally and hope that
 the unversioned url points to the latest version or something. We could
 allow (but probably discourage) versioned fully qualified links like:

 {{{
 -- "zlib-0.5.0.0:Codec.Compression.GZip" or
 -- "bzlib-0.5.0.0:Codec.Compression.BZip".
 }}}

 So from haddock's point of view these could just be the package name,
 which may or may not include a version. The http link we construct would
 follow literally the given package name (including version if given).

-- 
Ticket URL: <http://trac.haskell.org/haddock/ticket/13#comment:6>
haddock <http://www.haskell.org/haddock>
Haddock, The Haskell Documentation Tool


More information about the Haddock mailing list