   (let [c (chan)]
     (ago nil
          (doseq [n (range s e)]
-           (atake (timeout delay))
+           (<! (timeout delay))
            (aput c n))
          (close! c))
     c))

        out (chan out-ch-size)
        fdp (make-fenced-pump nil in out max-inflight)
        gch (ago-loop nil [acc nil]
              (let [result (<! out)]
                (if result
                  (do (println "Output result: " result)
                      (recur (conj acc result)))

  (:require-macros [cljs.core.async.macros :refer [go]]
                   [cbfg.ago :refer [ago ago-loop aput atake]])
  (:require [cljs.core.async
             :refer [chan close! <! timeout
                     onto-chan]]))

;; Explaining out-of-order replies and fencing with a diagram.  Client
