      (streams/consume
       (fn [v]
         (let [processed-v (f component v)]
-          (when processed-v
+          (if processed-v
             (streams/>> (output component) processed-v))))
       (input component)))})
 

          (hellhound.component/input component#))))}))


(defn io
  "Returns a vector containing the IO streams of the given `component`.


           streams/<<!
           streams/>>!
           f))


(defn ->output
  [component v]
  (let [[_ out] (io component)]
    (streams/>> out v)))


(defn ->output!
  [component v]
  (let [[_ out] (io component)]
    (streams/>>! out v)))


;; IO & Execution helpers ----------------------------------
(defn scheduled-output
  [component delay f]
  (let [[_ out] (io component)]
    (async/schedule-fixedrate-interval delay
                                       #(>> out (f)))))
