code: public <T> DiffNode compare(final T working, final T base)
  	{
  		dispatcher.resetInstanceMemory();
  		try
  		{
  			return dispatcher.dispatch(DiffNode.ROOT, Instances.of(working, base), RootAccessor.getInstance());
  		}
  		finally
  		{
  			dispatcher.clearInstanceMemory();
  		}
  	}
docs: Recursively inspects the given objects and returns a node representing their differences. Both objects
  have be have the same type.
  
  @param working This object will be treated as the successor of the `base` object.
  @param base    This object will be treated as the predecessor of the <code>working</code> object.
  @return A node representing the differences between the given objects.