docs: public void getPlanNodeList_recurse(ArrayList<AbstractPlanNode> collected,
              HashSet<AbstractPlanNode> visited) {
          if (visited.contains(this)) {
              assert(false): "do not expect loops in plangraph.";
              return;
          }
          visited.add(this);
  
          for (AbstractPlanNode n : m_children) {
              n.getPlanNodeList_recurse(collected, visited);
          }
          collected.add(this);
      }