static void web_printTree(WebNode node) { web_printTree(node, "", "", new HashSet); } static void web_printTree(WebNode node, S indent, S relation, HashSet seen) { if (node == null) ret; print(indent + relation + node.text()); if (!seen.add(node)) ret; for (WebNode n : web_forwardRelated(node)) web_printTree(n, indent + " ", web_relationText(node, n), seen); }