考虑以下模块
{-# 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文档中。现在,我的问题是:
有没有办法记录结果名称
foo
,fuh
等,而在Example
模块中记下他们的类型签名?
我不想写类型签名,因为在这种情况下因为它们是样板文件。如果我必须把它们写下来,这个模块就会失去它的 raison d'être。
答案 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
在文档中,但似乎我无法添加任何文本。