void indent(Indenter indenter) {
   indenter.println(branch.data);
   indenter.indent();
   for (Node child : children) {
     child.indent(indenter);
   }
   indenter.deindent();
 }
 void indent(Indenter indenter) {
   indenter.println(this);
 }
 public String toString() {
   Indenter indenter = new Indenter();
   indent(indenter);
   return indenter.toString();
 }