Cycle breaking in the bounds takes care of singly recursive datatypes, so we don't need to do it again;
the effect of removing the constraint varies on problem to problem, but it tends to be overwhelmingly negative in conjuction with the new datatype sym breaking stuff at high cardinalities
package GraphBrowser;
import java.util.Vector;
class Directory {
TreeNode node;
String name;
Vector collapsed;
public Directory(TreeNode nd,String n,Vector col) {
collapsed=col;
name=n;
node=nd;
}
public TreeNode getNode() { return node; }
public String getName() { return name; }
public Vector getCollapsed() { return collapsed; }
}