class Temple::HTML::Fast

def merge_basicattrs(attrs)

def merge_basicattrs(attrs)
  result = []
  position = {}
  
  attrs.each do |(html, type, (name_type, name), value)|
    if pos = position[name]
      case name
      when 'class', 'id'
        value = [:multi,
          result[pos].last,  # previous value
          [:static, (name == 'class' ? ' ' : '_')], # delimiter
          value]             # new value
      end
      
      result[pos] = [name, value]
    else
      position[name] = result.size
      result << [name, value]
    end
  end
  
  final = []
  result.each_with_index do |(name, value), index|
    final << [:html, :basicattr, [:static, name], value]
  end
  final
end