                   :chs {} ; {ch -> {:id (gen-id), :msgs {msg -> true},
                           ;         :first-taker-actx actx-or-nil}}.
                   :gen-id gen-id})
-            delayed-event-ch (chan)
             delayed-event-cb (fn [vis-next]
                                (println :on-delayed-event-cb @last-id))]
         (reset! prog-world {:world world

                (when (= actx-id (last actx))
                  (swap! vis #(assoc-in % [:actxs actx :collapsed]
                                        (not (:collapsed actx-info))))
                  (>! delayed-event-ch [@vis nil true nil])))
              (recur)))
          (<! prog-ch)
          (close! expand-ch)
          (close! cmd-ch)
          (close! req-ch)
          (close! event-ch)
          (close! delayed-event-ch)
          (recur (inc num-worlds)))))))

; --------------------------------------------

                            :clients {}
                            :res-ch (achan-buf world 10)})
        (cbfg.vis/process-events vis event-delay cbfg.vis/vis-event-handlers
                                 event-ch step-ch event-run-ch)
        (cbfg.vis/process-render el-prefix world event-run-ch delayed-event-cb)
        (make-net world
                  (:net-listen-ch @prog-world)
                  (:net-connect-ch @prog-world))
