     [DataDrill {:data v
                 :path (conj path k)
                 :expansion expansion}]]])
-
-(defn ExpandButton [{:keys [expanded? path]}]
-  (if expanded?
-    [:button {:onClick #(emit :contract path)} "-"]
-    [:button {:onClick #(emit :expand path)} "+"]))
 
 (defn ListVecNode [{:keys [data path expansion]}]
   (let [expanded? (get expansion path)]

                           :e '(1 2 3)}
                    :expansion #{}}))

(defn emit [event args]
  (prn "Emit: " event args)
  (case event
    :expand (swap! store update :expansion conj args)
    :contract (swap! store update :expansion disj args)))

(declare DataDrill)

(defn Node [{:keys [data path]}]
  [:div (if (string? data)

(defn App []
  (let [{:keys [data expansion]} @store]
    [:div
     [:div (str expansion)]
     [CollapseAllButton]
     [DataDrill {:data data
                 :path []
                 :expansion expansion}]]))
