code: func inheritHeaders(childs, parents map[HTTPHeader]Header, dicts map[string]interface{}) map[HTTPHeader]Header {
  	if len(childs) == 0 {
  		childs = map[HTTPHeader]Header{}
  	}
  
  	for name, parent := range parents {
  		h, ok := childs[name]
  		if !ok {
  			if optionalTraitProperty(string(name)) { // don't inherit optional property if not exist
  				continue
  			}
  			h = Header{}
  		}
  		parent.Name = string(name)
  		np := NamedParameter(h)
  		np.inherit(NamedParameter(parent), dicts)
  		childs[name] = Header(np)
  	}
  	return childs
  }
docs: // inheritHeaders inherits headers from parents to childs