                    grammar)
      :lexical-cache (atom (cache/fifo-cache-factory {} :threshold 1024))
      :lexicon lexicon
-     :morph fo
-     :index (create-index grammar (flatten (vals lexicon)) head-principle)}))
+     :morph fo}))
 
 (defn analyze [arg]
   (morph/analyze arg lexicon))

                   grammar)
     :lexical-cache (atom (cache/fifo-cache-factory {} :threshold 1024))
     :lexicon lexicon
     :index (create-index grammar (flatten (vals lexicon)) head-principle)
     :morph-walk-tree (fn [tree]
                        (do
                          (merge tree
                                 (morph-walk-tree tree))))

     :pred2lex ;; map:<pred => subset of lexicon with that pred>
     (map-subset-by-path lexicon [:synsem :sem :pred])
     
     :cat2lex ;; map:<cat => subset of lexicon with that cat>
     (map-subset-by-path lexicon [:synsem :cat])

     :morph-ps fo-ps
     :language "fr"
     :language-keyword :français

                     subcat-2-2-principle subcat-5-principle]]
   [clojure.core.cache :as cache]
   [dag_unify.core :refer (fail? get-in strip-refs unify)]))

(def index-lexicon-on-paths
  [[:synsem :cat]
   [:synsem :aux]
   [:synsem :sem :pred]])

(declare against-pred)
(declare matching-head-lexemes)

