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