gpt4 book ai didi

haskell - 在不设置 -Wunused-top-binds 的情况下,推荐使用模块私有(private)记录类型的方法是什么?

转载 作者:行者123 更新时间:2023-12-04 04:14:31 24 4
gpt4 key购买 nike

这个模块

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

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

关于haskell - 在不设置 -Wunused-top-binds 的情况下,推荐使用模块私有(private)记录类型的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57996527/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com