code: func (d *ResourceData) HasChange(key string) bool {
  	o, n := 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 := o.(Equal); ok {
  		return !eq.Equal(n)
  	}
  
  	return !reflect.DeepEqual(o, n)
  }
docs: // HasChange returns whether or not the given key has been changed.