code: function(result, name, lastOp) {
          return result.some(function(x, i) {
              if (x.name === name) {
                  lastOp.index = i;
                  return true;
              } else {
                  return false;
              }
          });
      }
docs: /*
  This merge step is inefficient O(n*m) but we are assuming small arrays
  and 'delta' typically smaller than 'template'.
  
  A 'delta' operation could merge with another component in 'template'
  with the same name, it could delete an existing entry if the 'module'
  key is null, or it could insert a new entry in the array.
  The insertion point of a new entry is just after the previous
  operation target. If the first operation in 'delta' is a new entry it
  becomes the first element.
  
  Note that 'delta' is not sorted and it could contain duplicates. This
  allow us to change the order in the original list. For example,
  if template is [A|B|...], and we want to swap B and A, we can add these
  three operations in delta:
  
  Remove A (assign null to A's module)
  Touch B (just have an entry with B's name that won't change B)
  Add A with the original A's values (inserted after B)