public Object walk(Tree<String> tree) {
String head = tree.head();
if (tree.numChildren()==0) return super.walk(tree);
if ("{".equals(head)) {
Union u = new Union("???");
Union u2 = ((PreSequence)walk(tree, 0)).sparse(ws).buildUnion();
public Object walk(Tree<String> tree) {
String head = tree.head();
if (tree.numChildren()==0) return super.walk(tree);
if ("{".equals(head)) {
Union u = new Union("???");
Union u2 = ((PreSequence)walk(tree, 0)).sparse(ws).buildUnion();