我正在寻找一个警告,它将警告一个特定的不完整模式。它会使编译器失败,并带有以下(假设的)代码:
{-# FAILIF incomplete-patterns #-}
f :: Int -> Int
f 0 = 0
我正在尝试使用Arrows编写“编译器”,并且知道模式匹配已完成将有助于隔离错误。谢谢!
答案 0 :(得分:11)
您可以使用-Wall
:
{-# OPTIONS_GHC -Wall #-}
module A where
f :: Int -> Int
f 0 = 0
产量:
A.hs:6:1:
Warning: Pattern match(es) are non-exhaustive
In an equation for `f':
Patterns not matched: GHC.Types.I# #x with #x `notElem` [0#]
或者更具体地说,-fwarn-incomplete-patterns
取代-Wall
。
没有任何内容可以在每个表达式的基础上运行:您目前仅限于每个模块。