code: function collectExponents(node) {
    const polynomialTermList = node.args.map(n => new Node.PolynomialTerm(n));
  
    // If we're multiplying polynomial nodes together, they all share the same
    // symbol. Get that from the first node.
    const symbolNode = polynomialTermList[0].getSymbolNode();
  
    // The new exponent will be a sum of exponents (an operation, wrapped in
    // parens) e.g. x^(3+4+5)
    const exponentNodeList = polynomialTermList.map(p => p.getExponentNode(true));
    const newExponent = Node.Creator.parenthesis(
      Node.Creator.operator('+', exponentNodeList));
    const newNode = Node.Creator.polynomialTerm(symbolNode, newExponent, null);
    return Node.Status.nodeChanged(
      ChangeTypes.COLLECT_EXPONENTS, node, newNode);
  }
docs: Given a product of polynomial terms, groups the exponents into a sum e.g. x^2 * x^3 * x^1 -> x^(2 + 3 + 1) Returns a Node.Status object.