code: function evaluateNthRootForChildren(node) {
    const newNode = clone(node);
  
    const substeps = [];
    for (let i = 0; i < newNode.args.length; i++) {
      const child = newNode.args[i];
      const childNodeStatus = nthRoot(child);
      if (childNodeStatus.hasChanged()) {
        newNode.args[i] = childNodeStatus.newNode;
        substeps.push(Node.Status.childChanged(newNode, childNodeStatus, i));
      }
    }
  
    if (substeps.length === 0) {
      return Node.Status.noChange(node);
    }
    else if (substeps.length === 1) {
      return substeps[0];
    }
    else {
      return Node.Status.nodeChanged(
        ChangeTypes.EVALUATE_DISTRIBUTED_NTH_ROOT, node, newNode, true, substeps);
    }
  }
docs: Given a multiplication node of nthRoots (with the same root) will evaluate the nthRoot of each child as a substep e.g. nthRoot(2) * nthRoot(x^2) -> nthRoot(2) * x