在不设置-Wunused-top绑定的情况下使用模块私有记录类型的推荐方法是什么?



此模块

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

这有点粗糙,但可以完成工作。

相关内容

  • 没有找到相关文章

最新更新