Anyone know of a good source for learning about higher ranked types?
I'm not quite sure why this is illegal...
> foo :: Integer -> (forall a. Show a => a)
> foo 2 = ["foo"]
> foo x = x
...while this is just fine...
> bar :: Integer -> (forall a. Show a => a->b) -> b
> bar 2 k = k ["bar"]
> bar x k = k x
Thanks,
Greg Buchholz