code: func subfieldConflicts(conflicts []conflict, responseName string, ast1 *ast.Field, ast2 *ast.Field) *conflict {
  	if len(conflicts) > 0 {
  		conflictReasons := []conflictReason{}
  		conflictFieldsLeft := []ast.Node{ast1}
  		conflictFieldsRight := []ast.Node{ast2}
  		for _, c := range conflicts {
  			conflictReasons = append(conflictReasons, c.Reason)
  			conflictFieldsLeft = append(conflictFieldsLeft, c.FieldsLeft...)
  			conflictFieldsRight = append(conflictFieldsRight, c.FieldsRight...)
  		}
  
  		return &conflict{
  			Reason: conflictReason{
  				Name:    responseName,
  				Message: conflictReasons,
  			},
  			FieldsLeft:  conflictFieldsLeft,
  			FieldsRight: conflictFieldsRight,
  		}
  	}
  	return nil
  }
docs: // subfieldConflicts Given a series of Conflicts which occurred between two sub-fields, generate a single Conflict.