code: func (v *Variable) Merge(v2 *Variable) *Variable {
  	// Shallow copy the variable
  	result := *v
  
  	// The names should be the same, but the second name always wins.
  	result.Name = v2.Name
  
  	if v2.DeclaredType != "" {
  		result.DeclaredType = v2.DeclaredType
  	}
  	if v2.Default != nil {
  		result.Default = v2.Default
  	}
  	if v2.Description != "" {
  		result.Description = v2.Description
  	}
  
  	return &result
  }
docs: // Merge merges two variables to create a new third variable.