Clojure(Script) diff and patch implementations for vector and map