             (ddiff (conj path ky) (get a ky) (get b ky) d)) diffs (keys b)))
 
 (defn map-diff [path a b diffs]
-  (println "map-diff" a b "@" path " : " diffs)
+  (debug "map-diff" a b "@" path " : " diffs)
   (let [a-keys (into #{} (keys a))
         b-keys (into #{} (keys b))
         del-keys (s/difference a-keys b-keys)


(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) #{})))

(defn groovy [s x cls]
  (case (.getMaximumNumberOfParameters cls)

        new-state (transfunc (:state @current-state))]
    (store! new-state)))

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