forall a (Ord a => a-> a) -> Int is an illegal type???

Brian Hulley brianh at metamilk.com
Thu Feb 9 01:38:35 EST 2006


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




More information about the Glasgow-haskell-users mailing list