On Sun, Nov 15, 2009 at 01:14:34AM +0000, Lennart Augustsson wrote:
> Of the two declarations
> >        data Fizzle a = Fizzle (b -> (a, b)) a
> >        data Fizzle a = forall b. Fizzle (b -> (a, b)) a
> only the second one is allowed (with some suitable extension).
>
> Personally I think the first one should be allowed as well, with the
> same meaning as the second one.
> Some people thought it was to error prone not to have any indication
> when an existential type is introduced,
> so instead we are now stuck with a somewhat confusing keyword.

I think you are able to say

  data Fizzle a where
    Fizzle :: (b -> (a,b)) -> a -> Fizzle a

Cheers,

--
Felipe.


_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to