
#7964: GADTs in Haskell98 style -----------------------------+---------------------------------------------- Reporter: wvv | Owner: Type: feature request | Status: new Priority: normal | Component: Compiler (Type checker) Version: 7.6.3 | Keywords: Os: Unknown/Multiple | Architecture: Unknown/Multiple Failure: Other | Blockedby: Blocking: | Related: -----------------------------+---------------------------------------------- it would be nice if it is possible to write GADTs in Haskell98 style, like this: {{{ data Expr a = I Int :: Expr Int | B Bool :: Expr Bool | Add (Expr Int) (Expr Int) :: Expr Int | Mul (Expr Int) (Expr Int) :: Expr Int | Eq (Expr Int) (Expr Int) :: Expr Bool | Magic (Expr a) (Expr a) }}} -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/7964 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler