static void web_printTree(WebNode node) { web_printTree(node, "", "", new HashSet); print(); } 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 + " ", appendIfNempty(web_relationText(node, n), " -> "), seen); }