[Haskell-cafe] Patterns overlapped?

Brandon S. Allbery KF8NH allbery at ece.cmu.edu
Sun Jan 13 14:02:31 EST 2008

On Jan 13, 2008, at 13:59 , Fernando Rodriguez wrote:

> When I compile this code, ghc complains about some overlapped  
> patterns in function depth.  What on Earth is ghc talking about? O:-)
> emptyBT = EmptyTree
> depth emptyBT = 0
> depth (NodeBT _ left right) = max (1 + depth left) (1 + depth right)

If you use a variable in a pattern match, it creates a new binding  
which irrefutably matches the corresponding argument.  In other  
words, you get a new local variable "emptyBT", ignoring your global.   
You must use the actual constructor instead.

brandon s. allbery [solaris,freebsd,perl,pugs,haskell] allbery at kf8nh.com
system administrator [openafs,heimdal,too many hats] allbery at ece.cmu.edu
electrical and computer engineering, carnegie mellon university    KF8NH

More information about the Haskell-Cafe mailing list