 
 (defn regular-passato [word]
   (let [unifying-patterns
-        (remove nil? (mapcat #(if (not (= :fail (unify (:u %) word)))
+        (remove nil? (mapcat #(when (not (= :fail
+                                            (unify word
+                                                   {:agr (:agr %)
+                                                    :essere (:essere %)})))
                                 (:g %))
                              patterns-passato))
         infinitive (get-in word [:italiano])]

      (-> (clojure.java.io/resource "babel/italiano/morphology/verbs/passato.edn")
          slurp
          read-string
          patterns-with-agr)]
  (defonce patterns-passato
    (compile-patterns
     {:synsem {:infl :past}}

           (merge pattern
                  {:agr agr ;; {:agr agr}
                   })))
       patterns))

(defn patterns-with-essere [patterns]
  (map (fn [pattern]
         (merge pattern
                {:essere (get-in pattern [:synsem :essere] :top)}))
       patterns))

;; <conditional>
