                                    :sem {:pred :sleep
                                          :subj {:pred :I}
                                          :tense :conditional}}}
-                         (grammar/small)
+                         (small)
                          {:truncate-children false})]
     (is (= :1st (get-in result [:comp :synsem :agr :person])))
     (is (= :sing (get-in result [:comp :synsem :agr :number])))

                {:root {:espanol {:espanol "abrazar"}}
                 :synsem {:sem {:subj {:pred :I}}
                          :infl :preterito}}
                (grammar/small)
                {:truncate-children false})]
    (is (or (= "yo abracé" (fo result))
            (= "abracé" (fo result))))))
                
(deftest llamarse
  (let [result (engine/expression (grammar/small) {:synsem {:sem {:pred :be-called}}})]
    (is (not (empty? (fo result))))))

(deftest llamo
  (let [result (fo (engine/expression (grammar/small)
                                      {:synsem {:sem {:tense :present
                                                      :aspect :progressive
                                                      :subj {:pred :I}

            #?(:cljs [babel.logjs :as log]) 
            [dag_unify.core :refer [get-in]]))

(def small-model (promise))
(defn small [] (if (realized? small-model)
                 @small-model
                 @(deliver small-model (grammar/small))))

(def medium-model (promise))
(defn medium [] (if (realized? medium-model)
                  @medium-model
