code: function addOneExponent(node) {
    const newNode = clone(node);
    let change = false;
  
    let changeGroup = 1;
    newNode.args.forEach((child, i) => {
      const polyTerm = new Node.PolynomialTerm(child);
      if (!polyTerm.getExponentNode())  {
        newNode.args[i] = Node.Creator.polynomialTerm(
          polyTerm.getSymbolNode(),
          Node.Creator.constant(1),
          polyTerm.getCoeffNode());
  
        newNode.args[i].changeGroup = changeGroup;
        node.args[i].changeGroup = changeGroup; // note that this is the "oldNode"
  
        change = true;
        changeGroup++;
      }
    });
  
    if (change) {
      return Node.Status.nodeChanged(
          ChangeTypes.ADD_EXPONENT_OF_ONE, node, newNode, false);
    }
    else {
      return Node.Status.noChange(node);
    }
  }
docs: Given a product of polynomial terms, changes any term with no exponent into a term with an explicit exponent of 1. This is for pedagogy, and makes the adding coefficients step clearer. e.g. x^2 * x -> x^2 * x^1 Returns a Node.Status object.