class EnumeratedIdentitySet implements Set<T> {

    @Override
    public boolean add(T t) {
        if (set.containsKey(t)) {
            return false;
        } else {
            set.put(t, counter++);
            return true;
        }
    }

    public  EnumeratedIdentitySet(Collection<? extends T> collection);
    public  EnumeratedIdentitySet();

}