> On Mon, Dec 13, 2004 at 07:49:00PM -0800, oleg at pobox.com wrote: > > The operator ($) is often considered an application operator of a > > lower precedence. Modulo precedence, there seem to be no difference > > between ($) and `the white space', and so one can quickly get used > > to treat these operators as being semantically the same. However, > > they are not the same in all circumstances. I'd like to observe an > > important case where replacing the application with ($) in a > > fully-parenthesized expression can lead to a type error. > > I think this post should go under the heading "($) considered > harmful". I've been bitten by this, and I never use ($) anymore in > place of parentheses because it's too tempting to think of it as > syntax. (Of course, it's still useful, by itself or in a slice, as a > higher-order operator.) > > Andrew
I find this position ridiculous. I don't recall anyone ever posting a message about this (though I'd be far from surprised if someone did). It seems that the people who decide they need higher-rank types are capable of handling type errors involving them, and they certainly don't confuse ($) for syntax. Unless there's a realistic scenario where one suddenly decides one needs some higher-rank types and has to remove a bunch of uses of ($) but otherwise make no changes, I don't see any reason not to use ($) when you can (if you like) and not when you can't. If you ever make a mistake one way the type checker will tell you. _______________________________________________ Haskell-Cafe mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell-cafe