code: def add(self, key, val):
          
          key_lower = key.lower()
          new_vals = key, val
          # Keep the common case aka no item present as fast as possible
          vals = _dict_setdefault(self, key_lower, new_vals)
          if new_vals is not vals:
              # new_vals was not inserted, as there was a previous one
              if isinstance(vals, list):
                  # If already several items got inserted, we have a list
                  vals.append(val)
              else:
                  # vals should be a tuple then, i.e. only one item so far
                  # Need to convert the tuple to list for further extension
                  _dict_setitem(self, key_lower, [vals[0], vals[1], val])
docs: Adds a (name, value) pair, doesn't overwrite the value if it already
          exists.
  
          >>> headers = HTTPHeaderDict(foo='bar')
          >>> headers.add('Foo', 'baz')
          >>> headers['foo']
          'bar, baz'