   ([]
    (let [max-total-depth generate/max-depth
          truncate-children true
-         model medium]
+         model (medium)]
      (generate {:modified false}
                :max-total-depth max-total-depth
                :truncate-children true

  "analyze a word: as opposed to parsing which is multi-word."
  ;; TODO: should take a language model, not a lexicon
  ([surface-form]
   (analyze surface-form (:lexicon medium)))
  ([surface-form lexicon]
   (morph/analyze surface-form lexicon)))


   [clojure.string :as string]
   [dag_unify.core :refer [fail-path-between get-in strip-refs unifyc]]))

(defonce medium-model (promise))
(defn medium []
  (if (realized? medium-model)
    @medium-model
    @(deliver medium-model (grammar/medium))))

(defonce np-grammar-model (promise))
(defn np-grammar []
