code: public synchronized void add(VisitState visitState, Workbench workbench) {
  		assert ! visitState.isEmpty() : visitState;
  		if (ASSERTS) if (visitStates.contains(visitState)) LOGGER.error("Visit state " + visitState + " already in this workbench entry (" + Arrays.asList(Thread.currentThread().getStackTrace()));
  		final boolean wasEmpty = isEmpty();
  		add(visitState);
  		if (wasEmpty && ! acquired) workbench.add(this);
  	}
docs: Adds the given visit state to the visit-state queue, and adds this entry to the workbench if it was empty
  and not {@linkplain #acquired}.
  
  @param visitState the nonempty visit state that must be added to the visit-state queue.
  @param workbench the workbench.
  @see PriorityQueue#add(Object)