此模块
module Foo (Foo, qux) where
data Foo = Foo {bla::Int}
qux :: Foo
qux = Foo 37
使用-Wall
编译时导致警告:
/tmp/wtmpf-file12937.hs:3:17: warning: [-Wunused-top-binds]
Defined but not used: ‘bla’
|
3 | data Foo = Foo {bla::Int}
| ^^^
好的 – 如果bla
只是一个独立的功能,这将很容易,应该通过删除bla
来修复。但对于记录,这些字段不仅提供可以使用的名称,还用作代码中的文档。
摆脱警告的首选方法是什么?
它应该是一个永久的解决方案,最好保持记录不变,并且最好不要禁用模块其余部分的任何警告。
为了避免这些,我通常会在模块中添加这样的定义:
_unused :: a
_unused = error "don't complain" bla
好处是你可以将它们链接起来,如下所示:
_unused :: a
_unused = error "don't complain" bla bah foo bar
这有点粗糙,但可以完成工作。