         new-state (transfunc (:state @current-state))]
     (store! new-state)))
 
-
-
 (defn vector-diff-same-length [path a b diffs]
-  (println "vector-diff-same-length" a b "@" path " : " diffs)
+  (debug "vector-diff-same-length" a b "@" path " : " diffs)
   (reduce (fn [d index]
             (let [itm (get b index)
                   oitem (get a index)]

            (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)
  (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)]
      (when os (debug "Cache hit:" os))
      (ddiff [] os (:state @current-state) #{}))
    (ddiff [] nil (:state @current-state) #{})))

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