              change (get (:changes s) sq)]
          (if (and change (not (:deleted change)))
            {:opaque opaque :status :ok
-            :key key :sq sq :cas (:cas change) :val (:val change)}
+            :key key :sq sq :cas (:cas change)
+            :val (:val change)}
            {:opaque opaque :status :not-found
             :key key}))))
 

                                  (dissoc-in [:changes (get-in % [:keys key])])
                                  (assoc-in [:keys key] (:next-sq %))
                                  (assoc-in [:changes (:next-sq %)]
                                            {:key key :sq (:next-sq %)
                                             :cas cas :val val})
                                  (update-in [:next-sq] inc)))]
         {:opaque opaque :status :ok
          :key key :sq (dec (:next-sq storage2)) :cas cas})))

    (ago storage-scan actx
         (let [s @storage
               changes (:changes s)]
           (doseq [[key sq] (subseq (:keys s) >= from < to)]
             (when-let [change (get changes sq)]
               (when (not (:deleted change))
                 (aput storage-scan out
                       {:opaque opaque :status :ok
                        :key key :sq sq :cas (:cas change)
                        :val (:val change)}))))
           (aput storage-scan out {:opaque opaque :status :ok})
           (aclose storage-scan out)))
    out))
