On 10 March 2011 14:47, Daniel Fischer <[email protected]> wrote:
> If memory serves correctly, it's impredicative polymorphism.

Indeed. For example the following also doesn't type check in GHC-7:

foo :: (forall s. ST s a) -> a
foo st = ($) runST st

Surprisingly the following does:

foo :: (forall s. ST s a) -> a
foo st = runST $ st

Because GHC contains a special rule for infix $. Also see:

http://article.gmane.org/gmane.comp.lang.haskell.glasgow.user/19152

Bas

_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to