我的项目中有一个虚拟模块,其唯一目的是为库的其余部分保存Haddock文档。事实上,我不需要 来导入此模块中的任何内容,但如果我不导入其他模块,Haddock不会将函数名称超链接到其模块。
我的模块看起来像这样
{- |
Lots of Haddock text here... it references 'someFunction'.
-}
module TopLevelDoc () where
import Other.Module.With.SomeFunction
现在,如果我构建项目,我会收到此警告:
Warning: The import of `Other.Module.With.SomeFunction' is redundant
except perhaps to import instances from `Other.Module.With.SomeFunction'
To import instances alone, use: import Other.Module.With.SomeFunction()
如果我删除导入或将其()
删除,Haddock不会将someFunction
超链接到其文档。如果我按原样留下这样的进口,我会收到很多我不喜欢的错误警告。而且我不想为整个项目抑制这种警告,它可能对任何其他模块都有用,但是这个。
问题:
ghc-options
).cabal
全局执行此操作
醇>
答案 0 :(得分:7)
要使未使用的导入警告静音,您可以在文件顶部放置一个编译指示:
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
您可以通过明确限定它们来链接到不在范围内的标识符:
通过提供实体的完全限定名称,也可以引用当前模块中不在范围内的实体:
-- | The identifier 'M.T' is not in scope
如果M.T不在范围内,那么Haddock将简单地发出指向从模块M导出的实体T的链接(不检查是否存在M或M.T)。
但是,这可能会使您的文档源非常难看,并且模块资格不会从输出中删除,所以我建议改为关闭警告。