[Haskell] Impredicative Types?

Ashley Yakeley ashley at semantic.org
Tue Feb 17 14:40:18 EST 2004

In article <Pine.LNX.4.21.0402161643310.20625-100000 at dark.darkweb.com>,
 Ben Rudiak-Gould <benrg at dark.darkweb.com> wrote:

> > Bear in mind you can't even write IO (forall t. whatever) in Haskell.
> True, but why is this? Is there a deep reason why we can use nested
> foralls as the arguments to (->), but not as the arguments to any other
> type constructor?

Apparently it makes type-checking Very Very Hard. Simon PJ may have 
explained it to me ("impredicative", he called it), but I don't remember 

Ashley Yakeley, Seattle WA

More information about the Haskell mailing list