 
 (defn map-with-keys? [x ks]
   (if (map? x)
-    (every? (fn [v] (contains? ks v)) (keys x))))
+    (= ks (clojure.set/intersection (set (keys x)) ks))))
 
 (defn compute-matrix-index [sizes indices]
   (assert (= (count sizes)

  (assert (valid-partial-args? partial-args))
  (fn [& args0]
    (apply fun (merge-args partial-args args0))))


        defargs default-args0
        args args0]
    (if (empty? defargs)
      (reduce conj result args)
      (if (default-arg? (first defargs))
        (recur (conj result (ffirst defargs))
               (rest defargs)
