haskell - 阻止 GHC 警告我一个特定的缺失模式

标签 haskell warnings ghc

假设我通常希望收到关于代码中不完整模式的警告,但有时我知道某个函数的模式不完整,我知道这很好。

still true GHC 的警告粒度是每个模块的,并且没有办法更改有关特定功能或定义的警告?

最佳答案

是的,仍然正确,但您可以使用 error 来解决此问题。 .

f (Just a) = show a

没有 Nothing 的案例给出警告但添加
f Nothing = error "f: Nothing supplied as an argument. This shouldn't have happened. Oops."

摆脱警告。

您的问题的按功能解决方案是给 Haskell 一些您认为永远不会运行的代码,以保持安静。

请注意:我认为您的代码应该是健壮的并且涵盖所有可能发生的情况,除非您能证明它永远不会发生。
我认为,解决这个限制并不是很好的做法。

(你可能认为这是一个敞开的后门,可以破解有用的编译时检查,应该通过 -Wall 停止,但我可以混淆我的回合你选择的任何简单限制,我认为这是一个完整的解决方案这个问题基本上可以解决停机问题,所以我们不要责怪编译器。)

关于haskell - 阻止 GHC 警告我一个特定的缺失模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12717909/

相关文章:

适用于小型 Twitter 客户端的 Haskell IO cli 菜单

java - 警告 - 匿名子类(?)没有串行版本 UID

c++ - 带有 g++ -O2(或 -Os、-O、-O1、...)的模板警告

windows - 具有 NoBuffering 的 Haskell 跨平台 getChar

haskell - GHC 内部结构 : is there C implementation of the type system?

haskell 错误: cannot derive well-kinded instance/kind-mismatch

exception - Haskell:处理类型和异常

scala - 从函数式迁移到 OO 的问题

http - 增加 Network.HTTP.Conduit 的请求超时

c++ - 无法解决警告C6386