Still tinkering with tree diff heuristics. Sometimes it works really well, but other times it's too keen to match up lists.