     nil))
 
 (comment
+  (def a (add-vertex! g {::val 0   ::collect-fn collect-sssp}))
+  (def b (add-vertex! g {::val nil ::collect-fn collect-sssp}))
+  (def c (add-vertex! g {::val nil ::collect-fn collect-sssp}))
+  (def d (add-vertex! g {::val nil ::collect-fn collect-sssp}))
+
+  (connect-to! a b signal-sssp 1)
+  (connect-to! a c signal-sssp 3)
+  (connect-to! b c signal-sssp 1)
+  (connect-to! c d signal-sssp 1)
+
+  (prn @(execute! ctx))
+
+  (prn @a)
+  (prn @b)
+  (prn @c)
+  (prn @d))
+
+(comment
   (def g (compute-graph))
   (def ctx
     (async-context
      {:graph     g
-      :processor eager-vertex-processor
-      :channel   (chan 4096)}))
+      :processor eager-vertex-processor}))
 
   (def types
     '[animal vertebrae mammal human dog fish shark plant tree oak fir])

  (simple-collect
   (fn [val uncollected]
     (if val (reduce min val uncollected) (reduce min uncollected)))))

(comment
  (def a (add-vertex! g {::val 0   ::collect-fn collect-sssp}))
  (def b (add-vertex! g {::val nil ::collect-fn collect-sssp}))
  (def c (add-vertex! g {::val nil ::collect-fn collect-sssp}))
  (def d (add-vertex! g {::val nil ::collect-fn collect-sssp}))

  (connect-to! a b signal-sssp 1)
  (connect-to! a c signal-sssp 3)
  (connect-to! b c signal-sssp 1)
  (connect-to! c d signal-sssp 1)

  (prn @(execute! ctx))

  (prn @a)
  (prn @b)
  (prn @c)
  (prn @d))

(defn make-strand
  [verts e-length]

(defprotocol IGraphExecutor
  (execute! [_])
  (stop! [_])
  (notify [_ evt]))

(defn simple-collect
  [collect-fn]
