Hello Stefan, Friday, September 28, 2007, 1:10:09 AM, you wrote:
> data Foo a where > A :: Foo Int > B :: Foo Bool > becomes > data Foo a = (a ~ Int) => A | (a ~ Bool) => B hm :) this looks like my quasi-proposal of unifying data and function definitions still has some meaning. i proposed to define GADTs as data Foo Int = A Foo Bool = B but, with help of guards, this may be also written as data Foo a | a==Int = A | a==Bool = B next step should be to add pattern guards? :) -- Best regards, Bulat mailto:[EMAIL PROTECTED] _______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users