code: func (d *InstanceDiff) ChangeType() DiffChangeType {
  	if d.Empty() {
  		return DiffNone
  	}
  
  	if d.RequiresNew() && (d.GetDestroy() || d.GetDestroyTainted()) {
  		return DiffDestroyCreate
  	}
  
  	if d.GetDestroy() || d.GetDestroyDeposed() {
  		return DiffDestroy
  	}
  
  	if d.RequiresNew() {
  		return DiffCreate
  	}
  
  	return DiffUpdate
  }
docs: // ChangeType returns the DiffChangeType represented by the diff
  // for this single instance.