当我对Haskell程序进行原型化时,我总是收到数百个这样的警告(不是在开玩笑):
/Users/bob/SourceCode/course/is/expriment/LiftedSpine2.hs:70:15: Warning: Defined but not used: `ta' /Users/bob/SourceCode/course/is/expriment/LiftedSpine2.hs:72:15: Warning: Defined but not used: `ta' /Users/bob/SourceCode/course/is/expriment/LiftedSpine2.hs:77:26: Warning: Defined but not used: `v'
有没有暂时删除这些警告? 我试着将它放在我的.hs文件中:
{-# OPTIONS_GHC -fno-warn-unused-binds -fno-warn-name-shadowing
-fwarn-monomorphism-restriction -fwarn-hi-shadowing
#-}
不幸的是,它不起作用,虽然我也尝试:设置-fno-warn-unused-binds,但它仍然不起作用。
非常感谢!
答案 0 :(得分:31)
另一种可能性,取决于您的情况:我相信您可以使用下划线为标识符添加前缀以抑制此警告。所以:
_x = 42
如果未使用_x
,将不会生成警告。
答案 1 :(得分:16)
GHC有两个警告标志,可触发Warning: Defined but not used
。
您需要命令行标记-fno-warn-unused-binds
和-fno-warn-unused-matches
的某种组合。
答案 2 :(得分:8)
当我想暂时取消某些警告时,我通常会使用-w来抑制所有警告。
答案 3 :(得分:6)
我使用了一种解决方法:
我编译时没有警告,但随后我使用HLint
工具为我显示警告。 HLint具有单独发出警告的功能。