 (defn delta [old-state]
   (if old-state
    (let [os (.getIfPresent cache! old-state)]
+      (println "exists!")
       (ddiff [] os (:state @current-state) #{}))
    (ddiff [] nil (:state @current-state) #{})))
 

    d3))

(defn ddiff [path a b diffs]
  #_(println "ddiff" a b "@" path " : " diffs)
  (cond
   (= a b) diffs
   (every? vector? [a b]) (vector-diff path a b diffs)



(defn vector-diff-same-length [path a b diffs]
  (println "vector-diff-same-length" a b "@" path " : " diffs)
  (reduce (fn [d index]
            (let [itm (get b index)
                  oitem (get a index)]
