[Haskell-cafe] ContT and ST stack

Daniel Fischer daniel.is.fischer at googlemail.com
Thu Mar 10 17:36:03 CET 2011


On Thursday 10 March 2011 17:15:29, Bas van Dijk wrote:
> On 10 March 2011 14:47, Daniel Fischer <daniel.is.fischer at googlemail.com> 
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

Bedankt. I sort of knew there was a special case for ($) because
runST $ do ...
works, but not exactly what was handled.
So until I forget, I now know it's infix ($) and only that.

Cheers,
Daniel



More information about the Haskell-Cafe mailing list