Niklas,

What you really want or mean when you use
the classic syntax with existential quantification is

data Foo = Foo (exists a . (Show a) => a)

Having that would make a lot more sense, and would fit well together
with the intuition of the classic syntax.

How would you then define

  data Foo :: * where
    Foo :: forall a. a -> a -> Foo

in which the scope of existentially quantified type variable spans more than one field?

Cheers,

  Stefan
_______________________________________________
Haskell-prime mailing list
Haskell-prime@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-prime

Reply via email to