
14 Nov
2009
14 Nov
'09
9 p.m.
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.