   (resize [_] nil) ; From RingBuffer 'interface'.
 
   (cleanup [_ keep?]
-    (swap! ago-world #(update-in % [:bufs buf-id] (fn [xs] (filter keep? xs)))))
+    (swap! ago-world #(seqv+ (update-in % [:bufs buf-id]
+                                        (fn [xs] (filter keep? xs))))))
 
   protocols/Buffer
   (full? [this]

(defn make-ago-world []
  (let [last-id (atom 0)]
    (atom {:gen-id #(swap! last-id inc)
           :seq [0]     ; Extended when a snapshot is revived (branching).
           :bufs {}     ; Keyed by buf-id.
           :smas {}     ; Keyed by buf-id, value is state-machine array.
           :smas-new {} ; Same as :smas, but for new, not yet run goroutines.

  (pop [_]
    ; Assumes nil is not a valid buffer item.
    (when-let [x (last (get-in @ago-world [:bufs buf-id]))]
      (swap! ago-world #(seqv+ (update-in % [:bufs buf-id] drop-last)))
      (when (empty? (get-in @ago-world [:bufs buf-id]))
        (swap! ago-world #(seqv+ (dissoc-in % [:bufs buf-id]))))
      x))

  (unshift [_ x]
    (swap! ago-world #(seqv+ (update-in % [:bufs buf-id] conj x)))
    nil)

  (unbounded-unshift [this x] ; From RingBuffer 'interface'.
