Order of operations question

Question

With a patch like this is MutateB guaranteed to happen after MutateA?

Would it be the same if MyOp was a process instead?

Background

Often enough with some collection of classes you have to disassemble the collection to access some specific element and mutate it.
Obviously we could use the splicer at the bottom of the first ForEach but actually I have no need to reassemble the collection, the original collection is fine to operate on for downstream work. I just want to guarantee the order.

So I’m wondering if encapsulating the mutation in a process or operation will ensure everyhing in that process/op is executed before the downstream stuff is executed in the outer patch context?

Could use a Do region but this is cleaner

For two nodes a and b connected via a link from a to b, a will execute before b. No matter whether they are process nodes or not. So the answer is yes, all A mutations will happen before the B mutations.

2 Likes