            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)))))

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


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


  (:require
   [hellhound.streams :as streams]
   [hellhound.components.protocols :as impl]
   [hellhound.components.impl.persistent-map :as component-impl]
   [hellhound.logger :as logger]))


;; Public Functions ----------------------------------------
