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


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

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