
9 Feb
2006
9 Feb
'06
1:38 a.m.
Brian Hulley wrote:
Hi - I've been puzzling over section 7.4.9.3 of the ghc users manual for the past few months (!) and still can't understand why the following is an illegal type:
forall a. ((Ord a => a-> a) -> Int)
whereas
(forall a. Ord a => a->a) -> Int
is legal. I can understand why the second one *is* legal but I can't seem to understand why the first syntax is not just exactly the same thing even though the parse tree is different.
Can anyone shed some light on this?
Thanks, Brian.
A better way of putting the question is that I can't see the difference between: forall a. ((Ord a => a->a) -> Int) and forall a. Ord a => (a->a) -> Int