   (if (every? sequential? [x y])
     (match (mapv counted? [x y])
            [false false] (throw
-                        (#+cljs js/Exception #+clj #+cljs js/Exception #+clj Exception. "Cannot interpolate between two uncounted sequences"))
+                        (#+cljs js/Error #+clj #+cljs js/Exception #+clj Exception. "Cannot interpolate between two uncounted sequences"))
            [false _] [(take (count y) x) y]
            [_ false] [x (take (count x) y)]
            [_ _] [x y])

        ((apply wrap-size wrapped) (apply -interpolate wrapped))
        (do
          (throw
           (#+cljs js/Exception #+clj Exception. (str "Cannot interpolate between " start " and " end))))))))

(defn mix
  [start end]

  #+cljs PersistentArrayMap
  (-interpolate [start end]
    (fn [t]
      (into {} (for [k (->> [start end]
                        (map keys)
                        (map set)
                        (apply union))]
