code: public T intern(T o) {
      WeakReference<T> ref = map.get(o);
      if (ref == null) {
        ref = Generics.newWeakReference(o);
        map.put(o, ref);
      }
  //    else {
  //      System.err.println("Found dup for " + o);
  //    }
      return ref.get();
    }
docs: Returns a unique object o' that .equals the argument o.  If o
  itself is returned, this is the first request for an object
  .equals to o.