     "no actx"))
 
 (defn vis-init [cmds cmd-handlers]
-  (let [vis (atom {:actxs {}}) ; [actx -> {:children {}, :want-chs {}}].
+  (let [vis (atom {:actxs {}}) ; [actx -> {:children {}, :wait-chs {}}].
         max-inflight (atom 10)
         event-delay (atom 0)
         event-ch (chan)

   "atake"
   {:beg (fn [vis actx args]
           (let [[ch] args]
             (swap! vis #(assoc-in % [:actxs actx :want-chs ch] :take))))
    :end (fn [vis actx args]
           (let [[ch result] args]
             (swap! vis #(dissoc-in % [:actxs actx :want-chs ch]))))}
   "aput"
   {:beg (fn [vis actx args]
           (let [[ch msg] args]
             (swap! vis #(assoc-in % [:actxs actx :want-chs ch] :put))))
    :end (fn [vis actx args]
           (let [[ch msg result] args]
             (swap! vis #(dissoc-in % [:actxs actx :want-chs ch]))))}
   "aalts"
   {:beg (fn [vis actx args]
           (let [[chs] args] 1))

          (map (fn [kv] ["<li>" (vis-html vis (first kv)) "</li>"]) children)
          "</li></ul>"]
         [])
       (if (not-empty wait-chs)
         ["<li>waiting...<ul>"
          (map (fn [kv] ["<li>" (second kv) "</li>"]) wait-chs)
          "</li></ul>"]
         [])
       "</ul>"
