             elem (get fact set-key :inq-not-found)]
         (assoc fact name-key elem)))))
 
-(defn op? [op clause]
-  (and (seq? clause) (= op (first clause))))
-
 (defn gen* [clauses]
   (reduce
    (fn [query clause]

   clauses))

(defn asserts+retracts* [clauses]
  (let [assert-fs (map #(map-q (second %)) (filter assert? clauses))
        retract-fs (map #(map-q (second %)) (filter retract? clauses))
        gen (gen* clauses)]
    (fn [kn]
      (let [facts (gen kn)


(comment

  ((project '[a b] to-be) (Knowledge. #{[1 2] [3 4 5] [6 7]} #{} #{}))

  ((join (project '[a b _] to-be) (project '[_ a b] to-be)) (Knowledge. #{[1 2 3] [2 3 4] [2 4 6] [4 6 8]} #{} #{}))

  ((filter-q (project '[a b] to-be) (fnk [a b] (= a b))) (Knowledge. #{[1 2] [3 4] [6 6]} #{} #{}))

