2016-07-08 12:28 GMT+02:00 Joachim Breitner <mail@joachim-breitner.de>:
Currenlty,

    foobar
      (do f &&& g)
      x

calls foobar with two arguments, while
  
    (do f &&& g)
    x

calls (f &&& g) with one argument. The ArgumentDo proposal does not change that, only that the parenthesis become redundant.

I don't think so: https://ghc.haskell.org/trac/ghc/wiki/ArgumentDo#BlockasaLHS explicit states that

   do f &&& g
   x

parses as

   (f &&& g) x

, so

   foobar
      do f &&& g
      x

parses as

   foobar ((f &&& g) x)

under the new proposal, which I find highly confusing. If it doesn't parse like this under the proposal, the wiki page is wrong and/or the proposal is not compositional: Why should being below "foobar" change the parse? "foobar" is not a keyword switching to some different mode.