code: function combineLikeTerms(node) {
    const steps = [];
    let newNode = clone(node);
  
    for (let i = 0; i < node.args.length; i++) {
      let child = node.args[i];
      // All groups of terms will be surrounded by parenthesis
      if (!Node.Type.isParenthesis(child)) {
        continue;
      }
      child = child.content;
      const childStatus = termCollectorFunctions[newNode.op](child);
      if (childStatus.hasChanged()) {
        const status = Node.Status.childChanged(newNode, childStatus, i);
        steps.push(status);
        newNode = Node.Status.resetChangeGroups(status.newNode);
      }
    }
  
    return steps;
  }
docs: step 2 onwards for collectAndCombineOperation combine like terms for each group that can be combined e.g. (x + 3x) + (2 + 2) has two groups returns a list of combine steps