It's time to repost the following, with no hard feelings towards the participants in the current discussion about the never-ending sense of wonder and astonishment that Haskell's concrete syntax inspires in even the most jaded programmer. Brought to you by Haskell, a founding member language of the League for Avoiding Waste in Character Set Usage. Our motto: a meaning for every squiggle, and two squiggles for every meaning! [Originally transmitted 13 March 1991] :-) Are you tired of your precious mail-reading time being usurped for the nitpicking discussion of Haskell operator precedence minutiae? :-) Are you itching to get back to the careful study of the design and implementation of programming language CAPABILITIES? :-) Are you concerned that this debilitating disunity among the prophets of the TRUE FUNCTIONAL RELIGION may be the work of agents-provocateurs in the service of the EVIL IMPERATIVE EMPIRE? :-) Then don't just sit there passively--join C.A.T.S.U.P., the Committee Advocating The Superstitious Use of Parentheses! :-) C.A.T.S.U.P. is a new political action coalition being convened around a nucleus of Old Lisp Hands, Moderate Pragmatists, and Abstract Thinkers Who Are Above Thinking About Concrete Syntax. C.A.T.S.U.P.'s objective is to restore the functional programming community to full research productivity by advocating the adoption of the following credo: :-) Inference Rule 1) If you can't remember the operator precedence, Then put in some extra parentheses. :-) Inference Rule 2) If you thought you had the precedence right, but the computation did not proceed as expected, Then put in some extra parentheses and try again. :-) Axiom A) Nobody remembers operator precedences. :-) Lemma: Some extra parentheses will be put in, no matter how carefully the operator precedence is designed (provided, of course, that some infix operators are used at all). Proof: Immediate from Axiom A and Inference Rule 1. :-) -------------------------------------------------- -- Dan Rabin, Old Lisp Hand, Moderate Pragmatist, and Abstract-Thinker-Who's-Above-Thinking-About-Concrete-Syntax-in-training.