     (with-meta
       (fn [kn]
         (into #{}
-              (for [fact (to-be kn)
+              (for [fact (kn-f kn)
                     :let [vals (f fact)]
                     :when vals]
                 (zipmap return-keys vals))))

        facts))
    (meta query)))

(defn project [pattern]
  (let [return-syms (into [] (match/vars pattern))
        return-keys (map keyword return-syms)
        shape (into #{} return-keys)

(defn project? [clause]
  (not (seq? clause)))

(defn project-asserted? [clause]
  (and (seq? clause) (= '+ed (first clause))))

(defn project-retracted? [clause]
  (and (seq? clause) (= '-ed (first clause))))

(defn filter? [clause]
  (and (seq? clause) (= '? (first clause))))

