class Samovar::Table

def << row

def << row
	if existing_row = @rows[row.key] and existing_row.respond_to?(:merge!)
		existing_row.merge!(row)
	else
		# In the above case where there is an existing row, but it doensn't support being merged, we overwrite it. This preserves order.
		@rows[row.key] = row.dup
	end
end