let has [] = False; has _ = True
-- this one is ok
let empty list = case has list of True -> False; False -> True
-- the following is problematic
let emp (has -> True) = False; emp (has -> False) = True
<interactive>:1:4:
Warning: Pattern match(es) are overlapped
In the definition of `emp':
emp ((has -> True)) = ...
emp ((has -> False)) = ...
Why do I get this error in ghc or when I try to compile a file with view patterns?
(using -fglasgow-exts and -XViewPatterns, ghc 6.10.1)