code: func (d *ResourceDiff) HasChange(key string) bool {
  	old, new := d.GetChange(key)
  
  	// If the type implements the Equal interface, then call that
  	// instead of just doing a reflect.DeepEqual. An example where this is
  	// needed is *Set
  	if eq, ok := old.(Equal); ok {
  		return !eq.Equal(new)
  	}
  
  	return !reflect.DeepEqual(old, new)
  }
docs: // HasChange checks to see if there is a change between state and the diff, or
  // in the overridden diff.