6

考虑以下模块

{-# 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

我不想写类型签名,因为在这种情况下,因为它们是样板文件。如果我必须把它们写下来,这个模块就失去了存在的理由

4

2 回答 2

1

从黑线鳕用户手册:

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

请注意,Haddock 不包含 Haskell 类型系统——如果您不为函数编写类型签名,那么 Haddock 无法分辨其类型是什么,并且不会包含在文档中。

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

于 2011-05-01T15:28:31.167 回答
0

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

例如,模块

module Test (foo) where

foo = "bar"

将产生类型签名

foo :: String

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

于 2011-12-30T21:20:42.013 回答