protected void check(Foo foo, boolean check) {
   if (check) {
     checked.add(foo);
   } else {
     checked.remove(foo);
   }
 }
 protected boolean isChecked(Foo foo) {
   return checked.contains(foo);
 }
 public void detach() {
   checked.detach();
 }