 (declare find-comp-paths)
 (declare get-lexemes)
 (declare lexemes-before-phrases)
-(declare log-unification-failure)
+(declare log-unification-result)
 (declare lightning-bolts)
 (declare not-fail?)
 

                    " for: " (spec-info spec))))
    result))

(defn log-unification-failure [a b model]
  ;; warn because fails are expensive and should be filtered out before hitting this.
  (log/warn (str "failed to unify("))
  (log/warn (str "  a: " ((:morph-ps model) a) ","))
  (log/warn (str "  b: " ((:morph-ps model) b)))
  (log/debug (str "  ser a: (def a (dag_unify.core/deserialize '(" (string/join "" (:dag_unify.core/serialized a)) ")))"))
  (log/debug (str "  ser b: (def b (dag_unify.core/deserialize '(" (string/join "" (:dag_unify.core/serialized b)) ")))"))
  (log/warn (str ") => fail@" (fail-path a b))))


                              (cond (or (= :fail a)
                                        (= :fail b)) :fail
                                    true (unify a b))]
                          (log-unification-result a b result model)
                          result))
                      (cons bolt
                            (map (fn [path-to-comp]
