       (recur (conj r ys)
              (butlast ys))
       r)))
+
 (defn ref-dependency
   [ref*]
   (:value ref*))
+
 (defn ref-dependencies
   "Recursively checks a ref for nested dependencies"
   [ref*]


(defrecord TagWrapper
  [tag value])
(defn- tag-wrapper
  "Call from :default of clojure.edn to wrap all tags it encounters & cannot handle itself.
   TODO: Anything special needed to support a mirror of dynamic var related to *tags*?"
  [tag value]
  (->TagWrapper tag value))
(defn- tag-wrapper?
  [x]
  (= (type x) TagWrapper))
(defn- tag-wrapper-of?
  [x tag]
  (and (tag-wrapper? x)
       (= (:tag x) tag)))
(defn- tag-wrapper-of-ref?
  [x]
  (tag-wrapper-of? x 'ref))

         kvs)
       [pk x])
     [[pk x]])))

(defn shorter-variations
  "Given a sequence '(1 2 3) return a sequence of all shorter
  possible sequences: '((1 2) (1))"
