[GHC] #7156: "Pattern match on GADT" error for non-GADT
GHC
cvs-ghc at haskell.org
Fri Aug 17 05:47:03 CEST 2012
#7156: "Pattern match on GADT" error for non-GADT
------------------------------+---------------------------------------------
Reporter: ryani | Owner:
Type: bug | Status: new
Priority: normal | Component: Compiler (Type checker)
Version: 7.0.4 | Keywords: GADTs, TypeFamilies, ExistentialQuantification
Os: Unknown/Multiple | Architecture: Unknown/Multiple
Failure: None/Unknown | Testcase:
Blockedby: | Blocking:
Related: |
------------------------------+---------------------------------------------
It's widely known that GADTs are just generalizations of type equality and
existentials. And you can declare them that way!
{{{
{-# LANGUAGE TypeFamilies, ExistentialQuantification #-}
module NonGADT where
data T a = (a ~ ()) -> T
}}}
But pattern matching on this gives a nasty error!
{{{
f :: T a -> a
f T = ()
}}}
{{{
{-
NonGADT.hs:7:3:
A pattern match on a GADT requires -XGADTs
In the pattern: T
In an equation for `f': f T = ()
-}
}}}
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/7156>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the Glasgow-haskell-bugs
mailing list