[Haskell-cafe] The difference between ($) and application

Jon Cast jcast at ou.edu
Tue Dec 14 17:02:35 EST 2004

Derek Elkins <ddarius at hotpop.com> wrote:

> Personally, I would mind ($) being magical.  One of the nice things
> about Haskell is there is practically no magic.  The last thing I want
> is Haskerl (http://www.dcs.gla.ac.uk/~partain/haskerl.html).  runST
> simply had a rank-2 type that is not expressible in Haskell 98, it
> seems getting ($) to "work" would be qualitatively different.

No.  All that is needed for ($) to work is impredicativity (or, more
precisely, for the foralls in ($)'s type to be impredicative).  That is
something that could easily be implemented in a compiler.  I'm not clear
on why it hasn't been, but the type system, in relation to an
arbitrary-rank predicative system, is no more of a jump that higher-rank
types were.

Jonathan Cast

More information about the Haskell-Cafe mailing list