      :morph fo
      :morph-ps fo-ps
      :lexical-cache (atom (cache/fifo-cache-factory {} :threshold 1024))
-     :lexicon lexicon
-
-     :aux2lex
-     (map-subset-by-path lexicon [:synsem :aux])
-
-     :infl2lex
-     (map-subset-by-path lexicon [:synsem :infl])
-
-     :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])}))
+     :lexicon lexicon}))
 
 (defn np-grammar []
   (let [grammar

              (for [[k v] @lexicon]
                (let [filtered-v v]
                  (if (not (empty? filtered-v))  ;; TODO: this empty-filtering should be done in lexicon.cljc, not here.
                    [k filtered-v]))))]
    {:name "medium"

     ;; Will throw a clojure/core-level exception if more than 1 rule has the same :rule value:
     :grammar-map (zipmap
                   (map #(keyword (get-in % [:rule])) grammar)

   #?(:cljs [babel.logjs :as log]) 
   [clojure.core.cache :as cache]
   [dag_unify.core :refer (fail? get-in remove-matching-keys unifyc)]))

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

(declare cache)

