Consider the following scenario:
module A{listen nil}{read nrofprocs:int} { for (int i = 0; i < nrofprocs; ++i) { tasks@[i].rank = i + 1; } }{speak nil}{write nrprocs: int ; ((rank: int) tasks[];) }
after this instruction, tasks[i] will have the value "i" instead of "i + 1".
Also adding parantheses tasks@[i].rank = (i + 1); will result in compilation error.