Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Overlapping pattern matches

I have the following code:

test :: String -> Bool
test "g" = True
test "global" = True
test _ = False

When I load it into GHCi (7.0.3), I get:

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

Is this a bug or am I missing something here?

The following hold:

test "" == False
test "g" == True
test "gl" == False
test "global" == True
test "globalx" == False

UPDATE:

I am using {-# LANGUAGE OverloadedStrings #-}.

like image 668
Thomas Eding Avatar asked Jan 24 '12 20:01

Thomas Eding


1 Answers

This is GHC bug #5117, arising from the use of the OverloadedStrings extension. It should be fixed in GHC 7.2.

As a workaround, you could turn off OverloadedStrings for the module with {-# LANGUAGE NoOverloadedStrings #-}, or turn off the warning with {-# OPTIONS_GHC -fno-warn-overlapping-patterns #-}. Or just ignore it :)

like image 193
ehird Avatar answered Sep 24 '22 14:09

ehird