重叠模式匹配

Tho*_*ing 5 haskell ghc overlapping-matches

我有以下代码:

test :: String -> Bool
test "g" = True
test "global" = True
test _ = False
Run Code Online (Sandbox Code Playgroud)

当我加载到GHCi(7.0.3)时,我得到:

Warning: Pattern match(es) are overlapped
         In an equation for `test': test "g" = ...
Run Code Online (Sandbox Code Playgroud)

这是一个错误还是我错过了什么?

以下举行:

test "" == False
test "g" == True
test "gl" == False
test "global" == True
test "globalx" == False
Run Code Online (Sandbox Code Playgroud)

更新:

我在用{-# LANGUAGE OverloadedStrings #-}.

ehi*_*ird 9

这是因使用扩展而产生的GHC bug#5117OverloadedStrings.它应该在GHC 7.2中修复.

作为解决方法,您可以关闭OverloadedStrings模块{-# LANGUAGE NoOverloadedStrings #-},或关闭警告{-# OPTIONS_GHC -fno-warn-overlapping-patterns #-}.或者只是忽略它:)