      :generate {:lexicon lexicon-for-generation}
      :grammar grammar
      :lexicon lexicon
-     :lexical-cache (atom (cache/fifo-cache-factory {} :threshold 1024))
      :rules rules
      :rules-for-spec (atom {})
      :rule-map (zipmap rules grammar)}))

                                ;; some languages (e.g. Italian in babel.italiano.lexicon/edn2lexicon)
                                ;; may already exclude the wildcard lexeme,
                                ;; so this filtering rule will not find anything to exclude.
                                  
                                ;; include all aux verbs:
                                (or (not (= (get-in % [:synsem :cat]) :verb))
                                    (= (get-in % [:synsem :aux]) true)

                          "tense=" (get-in tree [:synsem :sem :tense] ::unset) "; "
                          "aspect=" (get-in tree [:synsem :sem :aspect] ::unset) "; "
                          "infl=" (get-in tree [:synsem :infl] ::unset) "; "))
          
          [tree])
        with-defaults))))

