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
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe