   ([]
    (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

   [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
    @(do
       (println (str "creating Italian model..(will be slow the first time).."))
       (let [result
             (deliver medium-model (grammar/medium))]
         (println (str "done."))
         result))))

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


  ([input]
   (let [input (preprocess input)]
     (parse input medium)))

  ([input model]
   (let [model (if (future? model) @model model)
