   AsyncSeq
   (received? [seq]
     (.isRealized seq))
-  (received [seq]
-    seq)
   (receive [seq success error]
     (doto seq
       (.receive


(defprotocol DeferredValue
  (received? [_])
  (received  [_])
  (receive   [_ success error]))

(extend-protocol DeferredValue
  AsyncVal
  (received? [val]
    (.isRealized val))
  (received [val]
    (deref val 0 nil))
  (receive [val success error]
    (doto val
      (.receive

  Pipeline
  (received? [pipeline]
    (.isRealized pipeline))
  (receive [val success error]
    (doto val
      (.receive
