 ;; register-pure-sub provides some macro sugar so you can nominate a very minimal
 ;; vector of input signals. The 1st function is not needed.
 ;; Here is the example above rewritten using the sugar.
-#_(reg-sub)
+#_(reg-sub
   :visible-todos
   :<- [:todos]
   :<- [:showing]

    (count (filter :done todos))))

(reg-sub
  :footer-counts                     ;; XXXX different from original. Now does not return showing
  :<- [:todos]
  :<- [:completed-count]
  (fn [[todos completed] _]

                      :active (complement :done)
                      :done   :done
                      :all    identity)]
      (filter filter-fn todos))))


(reg-sub
