sclass Tree { A a; L> children; *() {} *(A *a) {} *(A *a, Iterable> children) { addAll(this.children, children); } toString { ret a + "\n" + indent(lines(allToString(children))); } }