
"Manuel M. T. Chakravarty" wrote:
In languages that don't use curring, you would write f (1, 2) + g (2, 3) which also gives application precedence over infix operators. So, I think, we can safely say that application being stronger than infix operators is the standard situation.
Agreed, though you must remember that where I come from there is no precedence at all.
And as far as layout is concerned, I think, the Python people have made the same experience. For humans, it is quite natural to use visual cues (like layout) to indicate semantics.
Two points: I have been with Haskell less than half a year, and already I have run into a layout-related bug in a tool that produces Haskell source. This does not raise my confidence on the approach very much. Second, to a Lisp-head like myself something like (let ((a 0) (b 1)) (+ a b)) does exactly what you say: it uses layout to indicate semantic. The parentheses are there only to indicate semantics to the machine, and to make it easy for tools to pretty print the expression in such a way that the layout reflects the semantics as seen by the machine. But all this is not very constructive, because Haskell is not going to change into a fully parenthesized prefix syntax at my wish. -- Pertti Kellom\"aki, Tampere Univ. of Technology, Software Systems Lab