sclass WeakHashSet extends AbstractSet {
Map map = newWeakHashMap();
public int size() { ret map.size(); }
public Iterator iterator() { ret keys(map).iterator(); }
public bool contains(O o) { ret map.containsKey(o); }
public bool add(A a) {
ret map.put(a, Bool.TRUE) != null;
}
public bool remove(O o) { ret map.remove(o) != null; }
O mutex() { ret collectionMutex(map); }
}