[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