 (defonce regular-future-generate-patterns
   (expand-replace-patterns-2
    {:synsem {:infl :future}}
-   [{:agr {:person :1st
-           :number :sing}
+   [{:agr {:synsem {:subcat {:1 {:agr {:person :1st
+                                       :number :sing}}}}}
      :g [#"^(.*)[ae]re$" "$1erò" ;; parlare,ricevere
          #"^(.*)care$"   "$1cherò" ;; caricare
          #"^(.*)ire$"    "$1irò" ;; dormire
-         ]}
-    {:agr {:person :2nd
-           :number :sing}
+         ]
+     }
+    {:agr {:synsem {:subcat {:1 {:agr {:person :2nd
+                                       :number :sing}}}}}
      :g [#"^(.*)[ae]re$" "$1erai" ;; parlare,ricevere
          #"^(.*)ire$"    "$1irai" ;; dormire
-         ]}
-    {:agr {:person :3rd
-           :number :sing}
+         ]
+     }
+    {:agr {:synsem {:subcat {:1 {:agr {:person :3rd
+                                       :number :sing}}}}}
      :g [#"^(.*)[ae]re$" "$1erà" ;; parlare,ricevere
          #"^(.*)ire$"    "$1irà" ;; dormire
-         ]}
-
-    {:agr {:person :1st
-           :number :plur}
+         ]
+     }
+
+    {:agr {:synsem {:subcat {:1 {:agr {:person :1st
+                                       :number :plur}}}}}
      :g [#"^(.*)[ae]re$" "$1eremo" ;; parlare => parleremo
          #"^(.*)ire$"    "$1iremo" ;; finire => finiremo
          ]}
-    {:agr {:person :2nd
-           :number :plur}
+    {:agr {:synsem {:subcat {:1 {:agr {:person :2nd
+                                       :number :plur}}}}}
      :g [#"^(.*)[ae]re$" "$1erete" ;; parlare => parlerete
          #"^(.*)ire$"    "$1irete" ;; finire => finiremo
          ]}
-    {:agr {:person :3rd
-           :number :plur}
+    {:agr {:synsem {:subcat {:1 {:agr {:person :3rd
+                                       :number :plur}}}}}
      :g [#"^(.*)[ae]re$" "$1eranno" ;; parlare => parleranno
          #"^(.*)ire$"    "$1iranno" ;; finire => finiranno
          ]}]))

         #"(.*)rà"      "$1ere" ;; potrà -> potere
         #"(.*)rrà"     "$1lere"  ;; vorrà -> volere
         #"(.*)rrà"     "$1nere" ;; rimarrà -> rimanere
         ]}

    {:agr {:synsem {:subcat {:1 {:agr {:number :plur
                                       :person :1st}}}}}

         #"(.*)rrò"     "$1nere" ;; rimarrò -> rimanere
         ]

     :g [#"^(.*)[ae]re$" "$1erò" ;; parlare,ricevere
         #"^(.*)care$"   "$1cherò" ;; caricare
         #"^(.*)ire$"    "$1irò" ;; dormire
         ]
     }

