Readable tree diffing is a really interesting problem. When do you highlight lists? Do you highlight all the lists enclosing a modified subtree? What about comments?
I'm relatively happy with this case, but I think the outermost lists shouldn't be highlighted at all.