Haskell ArgumentDo Proposal
Hmm, this doesn&#x27;t sit well with me.<p><pre><code>    atomically do
      v &lt;- readTVar tv
      writeTVar tv $! v + 1

    withForeignPtr fptr \ptr -&gt; c_memcpy buf ptr size
</code></pre>
Since whitespace is used for function application &quot;f x&quot;, code like this would require mental effort on my part to realise that, for example, &quot;withForeignPointer&quot; isn&#x27;t being called with 7 arguments.<p>I really don&#x27;t see why so much effort is spent on infix syntax, precedence rules, fully-applied &quot;$&quot;, etc. (not to mention the associated bikeshedding), all to remove the requirement of a few parentheses.<p>Whilst I can perhaps entertain the notion that Lisp-style, fully-parenthesised syntax might annoy some people (personally I find it quite pleasing), I think this level of syntax-fiddling is a solution worse than the problem.<p>Keeping track of precedence rules is the kind of task computers are good at but humans not so much; I don&#x27;t know why we invent these schemes to impose on ourselves, when we could just wrap a couple of parens around the tricky bits. (In fact, I do this; but hlint tells me off!)