Haddock:无法创建依赖关系图(添加带*或模块标题的部分时)

时间:2009-08-20 00:39:55

标签: haskell ghc haddock

我从tarball源编译并安装了haddock-2.4.2。

在这里为代码添加一些简单的注释:

并运行haddock

$ haddock -h -o doc Data/DualMap.hs
Warning: Data.DualMap: could not find link destinations for:
    Data.Typeable.Typeable2 GHC.Base.Eq GHC.Show.Show GHC.Base.Ord GHC.Base.Bool Data.Set.Set

的产率:

事情看起来不错。 (请注意,此模块仅依赖于GHC附带的库,而不依赖于其他源模块。)

但是,当我尝试使用“ - * test”在评论中添加部分(la http://www.haskell.org/haddock/doc/html/ch03s04.html#id289234)时,我得到:

$ haddock -h -o doc Data/DualMap.hs
Data/DualMap.hs:20:0: parse error on input `-- * test'
haddock: Failed to create dependency graph

我不知道从哪里开始工作,因为这个错误消息只告诉我Haddock.Interface.depanal返回Nothing(根据haddock源代码的grep)而不是如何阻止依赖关系分析失败。也许我需要更多的命令行参数或对GHC / base / containers文档或某些haddock配置文件中缺少的链接目标的引用?

搜索Google会产生大量与hackage相同的cabal构建错误,但没有关于如何修复它们。

如何添加部分(带星号)并获取Haddock来生成我的文档?我错过了什么(可能是简单的事情)?

1 个答案:

答案 0 :(得分:0)

简单修复(可怕的错误消息):

移动(到模块名称的行。上一个错误的代码:

module Data.DualMap
   -- * The @DualMap@ abstract type
   ( DualMap ()
   -- * (?) internal? -- exposed for testing purposes, for now...
   , dmFlip
   -- * converting to and from DualMap
   , toList, fromList, map
   -- * constructing a DualMap
   , empty, null, insert, union

快乐代码如下所示:

module Data.DualMap (
   -- * The @DualMap@ abstract type                                                                                                                                 
     DualMap ()
   -- * (?) internal? -- exposed for testing purposes, for now...                                                                                                   
   , dmFlip
   -- * converting to and from DualMap                                                                                                                              
   , toList, fromList, map
   -- * constructing a DualMap                                                                                                                                      
   , empty, null, insert, union

足够简单。我通过下载DList from hacakge并将其删除并用我自己的代码替换代码来发现这一点。当DList使用'cabal haddock'并且我没有使用时(当我尝试添加一些星号时),我查看了文件之间的区别,确定我的括号位于错误的行上。

BTW我强烈建议将DList作为新Haskell项目的起点,而不是hnop