code: public Collection<B> values() {
  	return new AbstractCollection<B>() {
  	    public int size() { return map.size(); }
  	    public Iterator<B> iterator() {
  		return 
  		    DSUtil.<Map.Entry<A,B>,B>mapIterator
  		    (BijMap.this.entrySet().iterator(),
  		     new Function<Map.Entry<A,B>,B>() {
  			public B f(Map.Entry<A,B> entry) {
  			    return entry.getValue();
  			}
  		    });
  	    }
  	    public boolean remove(Object b) {
  		return BijMap.this.rev().remove(b) != null;
  	    }
  	    public void clear() {
  		BijMap.this.clear();
  	    }
  	};
      }
docs: Returns a collection view of the values from this
  <code>BijMap</code>.  The view is fully functional (i.e.,
  allows mutation) and connected to this bijective map (i.e.,
  changes in one of them are reflected in the other one).