code: func (p *Provider) merge(op *Provider) hcl.Diagnostics {
  	var diags hcl.Diagnostics
  
  	if op.Version.Required != nil {
  		p.Version = op.Version
  	}
  
  	p.Config = MergeBodies(p.Config, op.Config)
  
  	return diags
  }
docs: // The methods in this file are used by Module.mergeFile to apply overrides
  // to our different configuration elements. These methods all follow the
  // pattern of mutating the receiver to incorporate settings from the parameter,
  // returning error diagnostics if any aspect of the parameter cannot be merged
  // into the receiver for some reason.
  //
  // User expectation is that anything _explicitly_ set in the given object
  // should take precedence over the corresponding settings in the receiver,
  // but that anything omitted in the given object should be left unchanged.
  // In some cases it may be reasonable to do a "deep merge" of certain nested
  // features, if it is possible to unambiguously correlate the nested elements
  // and their behaviors are orthogonal to each other.