   }
  {:agr {:person :2nd
         :number :sing}
-  :g [#"^(.*)[ae]re$" "$1erai" ;; parlare -> parlerai
-      #"^(.*)ire$"    "$1irai" ;; dormire -> dormirai
-
-      #"(.*)[ae]rsi$"  "$1erai"
+  :g [#"^(.*)[ae]re$"  "$1erai" ;; parlare,ricevere
+      #"^(.*)care$"    "$1cherai" ;; caricare
+      #"^(.*)gare$"    "$1gherai" ;; passeggiare
+      #"^(.*)ciare$"    "$1cerai" ;; cominciare
+      #"^(.*)giare$"    "$1gerai" ;; mangiare
+      #"^(.*)ire$"     "$1irai" ;; dormire
+      #"(.*)[ae]rsi$"  "$1erai" ;; alzarsi -> alzerai
       #"(.*)[i]rsi$"   "$1irai"
-      
+
       ;; :future-stem
       #"^(.*r)$" "$1ai"
 

      #"(.*)rà"      "$1re"
      #"(.*)errà"    "$1enire" ;; sverrà -> svenire
      #"(.*)rà"      "$1ere" ;; potrà -> potere
      
      ;; stem rules
      #"(.*)rrà"     "$1lere"  ;; vorrà -> volere
      #"(.*)rrà"     "$1nere" ;; rimarrà -> rimanere
      ]
  :g [#"^(.*)[ae]re$"  "$1erà" ;; parlare,ricevere
      #"^(.*)ire$"     "$1irà" ;; dormire

      #"(.*)[ae]rsi$"  "$1erà"
      #"(.*)[i]rsi$"   "$1irà"

      ;; :future-stem
      #"^(.*r)$" "$1à"

      ]
  }
 {:agr {:person :1st
        :number :plur}
  :g [#"^(.*)[ae]re$" "$1eremo" ;; parlare -> parleremo
      #"^(.*)ire$"    "$1iremo" ;; finire -> finiremo

      #"(.*)[ae]rsi$"  "$1eremo"
      #"(.*)[i]rsi$"   "$1iremo"

      ;; :future-stem

rai;; Format: a vector of tuples; each tuple has:
;; :agr   agreement
;; :p     parsing rules: pairs of (from:regex -> to:replacement pattern)
;; :g     generation rules: pairs of (from:regex -> to:replacement pattern)
