在自己的 [RFC 6902 diff](https://github.com/caasi/rfc6902) 做得差不多時，才發現 @chbrown [早就做了 diff 和 patch](https://github.com/chbrown/rfc6902) 。他沒做 move ，但無傷大雅。正如他所說， RFC 6902 diff 不是決定性的。

我的實作更慘，對這些例子，生不出 RFC 範例中給的 patch ：

* A.2. Adding an Array Element
* A.4. Removing an Array Element
* A.7. Moving an Array Element
* A.16. Adding an Array Value

肇因於將 Array 跟 Object 都視為 hash 好[簡化演算法](https://github.com/caasi/rfc6902/blob/master/lib/rfc6902.ls#L3)。如果這樣做，我只需將要比較的兩個集合中所有 key 找出來，再分別取值看有沒有那一方為 undefined 就好。要是使用簡單版的 diff ，甚至只會生出 add, remove, replace 。

為了吐出 move ，我得看過所有的 add ，找出有沒有值相同的 remove 。什麼？ remove 沒有留值？只好先存起來，用完再砍掉。 copy 更慘，得看過所有的值，和所有 add 比較，看有沒有一樣的。只好把值都攤平，看完再砍掉。

寫得很開心，但是為了什麼？還是說其實規格默許我按自己方便生出可用的 patch 就好？一如老瀏覽器對壞掉的 HTML 很寬容。
