In an itemwise dependency definition, only the form shown, Bracket Indexing with just an index name and no semicolons, is allowed on the left. If any other form appears, the dependency is total, no matter what the rest of the definition is like.
In the body of the definition, to the right of the colon, a similar, but slightly less stringent, rule holds for each variable. To have the dependency depend itemwise on a variable, every referencing of that variable must be a Bracket Indexing using just that same index name for the first axis. None of the following definitions will allow updating of less than all of ns:
ns[i]:(sr+nw)[i] ã An expression, not a variable, is being indexed.
ns[i]:{jûi;sr[j]+nw[j]} ã The index has same value, but not same name.
ns[i]:(i#sr)+i#nw ã Choose, not Bracket Indexing, used in the def.
ns[i]:sr[i+1]+nw[i+1] ã Indices consist of more than just index name.
ns[i]:sr[i]-sr[i-1] ã The bad occurrence negates the good one.
On the other hand, indexing along other axes does not interfere with itemwise invalidation:
ns[i]:sr[i;É50],@1 nw[i;50+É50]
allows updating of only the affected items of ns. Obviously, any dependence on a
function or operator is total.
Note: At the present time, the parser may confuse the dependent variable with a
function when parsing the body of an itemwise dependency definition. If such a parsing
error occurs, replace the dependent variable, b, say, in the body by its fully
qualified form, cxt.b, say, if the context is known and otherwise by %`b
(or more likely (%`b)) to give the parser the hint it needs.