                                (dissoc-in [:chs ch :msgs msg])))
                (when (nil? msg) ; The ch is closed.
                  (swap! vis #(dissoc-in % [:chs ch])))
-               [{:delta :take :msg msg :ch ch :actx actx :phase :prev :ch-name ch-name}]))}
+               [{:delta :take :msg msg :ch ch :actx actx :ch-name ch-name}]))}
    :aput
    {:before (fn [vis actx args]
               (let [[ch-name ch msg] args]

                                (assoc-in [:actxs actx :wait-chs ch] [:put ch-name])
                                (vis-add-ch ch nil)
                                (assoc-in [:chs ch :msgs msg] true)))
                [{:delta :put :msg msg :actx actx :ch ch :phase :prev :ch-name ch-name}]))
    :after (fn [vis actx args]
             (let [[ch-name ch msg result] args]
               (swap! vis #(-> %

                                                 (assoc-in [:actxs actx :wait-chs ch]
                                                           [action])))
                                 (when (= action :put)
                                   [{:delta :put :msg (first msgv) :actx actx :ch ch}])))
                             ch-actions))))
    :after (fn [vis actx args]
             (let [[ch-bindings result] args
