static void printExplainTree2(Explain e) { printExplainTree2(0, e); } static void printExplainTree2(int indent, Explain e) { bool printNulls = false; if (e == null) { // this would print "null" for every etc if (printNulls || indent == 0) print(indent(indent) + "null"); } else { new L classNames; while true { classNames.add(e.className()); if (!e.singleEqualChild()) break; e = e.sub(0); } print(indent(indent) + join(", ", classNames) + " | " + e.string()); for (Explain sub : e.subs) printExplainTree2(indent+2, sub); } }