Haddock:用推断类型签名记录声明?

时间:2011-04-09 09:51:48

标签: haskell documentation-generation haddock

考虑以下模块

{-# LANGUAGE RecordWildCards #-}
module Example (foo, fuh, fon, fuzz) where

import qualified FirstClassModule (Bar(foo,fuh,fon,fuzz), makeBar)

FirstClassModule.Bar {..} = FirstClassModule.makeBar parameter

parameter :: Int
parameter = 15

目的是模块FirstClassModule提供记录类型Bar,它有点像第一类模块。然后,模块Example实例化模块并使用RecordWildCards扩展将名称放入范围并使其可导出。

当您在此模块上运行Haddock(版本2.8)时,它将干扰foo函数的类型签名并将其包含在API文档中。现在,我的问题是:

  

有没有办法记录结果名称foofuh,而Example模块中记下他们的类型签名?

我不想写类型签名,因为在这种情况下因为它们是样板文件。如果我必须把它们写下来,这个模块就会失去它的 raison d'être

2 个答案:

答案 0 :(得分:1)

从Haddock用户手册:

http://www.haskell.org/haddock/doc/html/markup.html#id564988

  

请注意,Haddock不包含Haskell类型系统 - 如果您没有为函数编写类型签名,那么Haddock无法分辨它的类型,也不会包含在文档中。< / p>

该文档适用于2.8版,2.9版是最新的。

答案 1 :(得分:0)

实际上,我刚刚发现,从版本2.9.2开始,Haddock将推断导出函数的类型签名。不幸的是,我似乎找不到用附加文档修饰它们的方法。

例如,模块

module Test (foo) where

foo = "bar"

将生成类型签名

foo :: String

在文档中,但似乎我无法添加任何文本。