   :redo                ;; usage:  (dispatch [:redo])
   (fn handler
     [_ _]
-    (when (> (count @redo-list) 0)
+    (when (redos?)
       (reset! app-db (first @redo-list))
       (reset! redo-list (rest @redo-list))
       (reset! undo-list (conj @undo-list @app-db)))))


(defn undos?
  []
  (>= (count @undo-list) 1))

(defn redos?
  []
  (> (count @redo-list) 0))


;; -- subscriptions  -----------------------------------------------------------------------------

  :undo                ;; usage:  (dispatch [:undo])
  (fn handler
    [_ _]
    (when (undos?)
      (reset! redo-list (cons @app-db @redo-list))
      (reset! app-db (last @undo-list))
      (reset! undo-list (pop @undo-list)))))


