        (debug :new-index val)
        val))))
 
-(defn signal-index-select
+(defn- signal-index-select
   [vertex [idx sel]]
   [idx (if sel (@vertex sel [nil]) (->> @vertex vals (mapcat identity) (set)))])
 
-(def collect-select
+(def ^:private collect-select
   (f/collect-pure
    (fn [val incoming]
      (let [val (reduce (fn [acc [idx res]] (assoc acc idx res)) val incoming)]
        ;;(debug :coll-select val incoming)
        val))))
 
-(defn score-collect-min-signal-vals
+(defn- score-collect-min-signal-vals
   [num]
   (fn [vertex]
     (if (> num (count (vals (peek (::f/uncollected @(:state vertex)))))) 0 1)))
 
-(defn score-collect-min-signals
+(defn- score-collect-min-signals
   [num]
   (fn [vertex]
     (if (> num (count (::f/uncollected @(:state vertex)))) 0 1)))
 
-(defn aggregate-select
+(defn- aggregate-select
   [g]
   (f/collect-pure
    (fn [_ incoming]

  (f/remove-watch! graph :add-vertex watch-id)
  (f/remove-watch! graph :remove-vertex watch-id)
  (close! chan))

(defn make-test-graph
  []

                          (map deref))))
         #{})))))

(defn- qvar?
  "Returns true, if x is a qvar (a symbol prefixed with '?')"
  [x] (and (symbol? x) (= \? (.charAt ^String (name x) 0))))

(defn- bind-translator
  [vs? vp? vo? s p o]
  (if vs?
    (if vp?
