      :u {:synsem {:essere true
                   :agr {:number :plur
                         :gender :fem}}}}
-    
+
     {:comment "past participle non-reflexive singular -er; essere=false"
      :p [#"^(\S+)é$"            "$1er"]
      :g [#"^([^' ]+)er$"        "$1é"]
      :u {:synsem {:essere false}}}
-    
+
     {:comment "past participle non-reflexive -re"
      :p [#"^(\S+)u$"            "$1re"]
      :g [#"^([^' ]+)re$"        "$1u"]
      :u {}}
-    
+
     {:comment "past participle non-reflexive -ir"
      :p [#"^(\S+)i$"            "$1ir"]
      :g [#"^([^' ]+)ir$"        "$1i"]

                      {:synsem {:cat :verb
                                :infl :future}})})
   [
    {:p [#"^(\S+)ai$"     "$1"]
     :g [#"^([^' ]+)$"    "$1ai"]
     :u {:synsem {:agr {:number :sing
                        :person :1st}}}}
    {:p [#"^(\S+)ai$"     "s'$1"]
     :g [#"^s'(\S+)$"     "$1ai"]
     :u {:synsem {:agr {:number :sing
                        :person :1st}}}}
    {:p [#"^(\S+)ai$"     "se $1"]
     :g [#"^se (\S+)$"    "$1ai"]
     :u {:synsem {:agr {:number :sing
                        :person :1st}}}}
    {:p [#"^(\S+)as$"     "$1"]
     :g [#"^([^' ]+)$"    "$1as"]
     :u {:synsem {:agr {:number :sing
                        :person :2nd}}}}
    {:p [#"^(\S+)as$"     "s'$1"]
     :g [#"^s'(\S+)$"     "$1as"]
     :u {:synsem {:agr {:number :sing
                        :person :2nd}}}}
    {:p [#"^(\S+)as$"     "se $1"]
     :g [#"^se (\S+)$"    "$1as"]
     :u {:synsem {:agr {:number :sing
                        :person :2nd}}}}
    {:p [#"^(\S+)rai$"    "$1re"]
     :g [#"^([^' ]+)$"    "$1ai"]
     :u {:synsem {:agr {:number :sing
                        :person :1st}}}}
    {:p [#"^(\S+)rai$"    "s'$1re"]
     :g [#"^s'(\S+)$"     "$1ai"]
     :u {:synsem {:agr {:number :sing
                        :person :1st}}}}
    {:p [#"^(\S+)rai$"    "se $1re"]
     :g [#"^se (\S+)re$"  "$1rai"]
     :u {:synsem {:agr {:number :sing
                        :person :1st}}}}
    {:p [#"^(\S+)ras$"    "$1re"]
     :g [#"^([^' ]+)re$"  "$1as"]
     :u {:synsem {:agr {:number :sing
                        :person :2nd}}}}
    {:p [#"^(\S+)ras$"    "s'$1re"]
     :g [#"^s'(\S+)re$"   "$1as"]
     :u {:synsem {:agr {:number :sing
                        :person :2nd}}}}
    {:p [#"^(\S+)ras$"    "se $1re"]
     :g [#"^se (\S+)$"    "$1as"]
     :u {:synsem {:agr {:number :sing
                        :person :2nd}}}}
    {:p [#"^(\S+)a$"      "$1"]
     :g [#"^([^' ]+)$"       "$1a"]
     :u {:synsem {:agr {:number :sing
                        :person :3rd}}}}
    {:p [#"^(\S+)a$"      "s'$1"]
     :g [#"^s'(\S+)$"     "$1a"]
     :u {:synsem {:agr {:number :sing
                        :person :3rd}}}}
    {:p [#"^(\S+)a$"      "se $1"]
     :g [#"^se (\S+)$"    "$1a"]
     :u {:synsem {:agr {:number :sing
                        :person :3rd}}}}
    {:p [#"^(\S+)ra$"     "$1re"]
     :g [#"^([^' ]+)re$"  "$1ra"]
     :u {:synsem {:agr {:number :sing
                        :person :3rd}}}}
    {:p [#"^(\S+)ra$"     "s'$1re"]
     :g [#"^s'(\S+)$"     "$1ra"]
     :u {:synsem {:agr {:number :sing
                        :person :3rd}}}}
    {:p [#"^(\S+)ra$"     "se $1re"]
     :g [#"^se (\S+)$"    "$1a"]
     :u {:synsem {:agr {:number :sing
                        :person :3rd}}}}
    {:p [#"^(\S+)ons$"    "$1"]
     :g [#"^([^' ]+)$"    "$1ons"]
     :u {:synsem {:agr {:number :plur
                        :person :1st}}}}
    {:p [#"^(\S+)ons$"    "s'$1"]
     :g [#"^s' (\S+)$"    "$1ons"]
     :u {:synsem {:agr {:number :plur
                        :person :1st}}}}
    {:p [#"^(\S+)ons$"    "se $1"]
     :g [#"^se (\S+)$"    "$1ons"]
     :u {:synsem {:agr {:number :plur
                        :person :1st}}}}
    {:p [#"^(\S+)rons$"   "$1re"]
     :g [#"^([^' ]+)re$"  "$1rons"]
     :u {:synsem {:agr {:number :plur
                        :person :1st}}}}
    {:p [#"^(\S+)rons$"   "s'$1re"]
     :g [#"^s'(\S+)$"     "$1ons"]
     :u {:synsem {:agr {:number :plur
                        :person :1st}}}}
    {:p [#"^(\S+)rons$"   "se $1re"]
     :g [#"^se (\S+)$"    "$1rons"]
     :u {:synsem {:agr {:number :plur
                        :person :1st}}}}
    {:p [#"^(\S+)ez$"     "$1"]
     :g [#"^([^' ]+)$"    "$1ez"]
     :u {:synsem {:agr {:number :plur
                        :person :2nd}}}}
    {:p [#"^(\S+)ez$"     "s'$1"]
     :g [#"^s'(\S+)$"     "$1ez"]
     :u {:synsem {:agr {:number :plur
                        :person :2nd}}}}
    {:p [#"^(\S+)ez$"     "se $1"]
     :g [#"^se (\S+)$"    "$1ez"]
     :u {:synsem {:agr {:number :plur
                        :person :2nd}}}}
    {:p [#"^(\S+)rez$"    "$1re"]
     :g [#"^([^' ]+)re$"  "$1rez"]
     :u {:synsem {:agr {:number :plur
                        :person :2nd}}}}
    {:p [#"^(\S+)rez$"    "s'$1re"]
     :g [#"^s'(\S+)re$"   "$1rez"]
     :u {:synsem {:agr {:number :plur
                        :person :2nd}}}}
    {:p [#"^(\S+)rez$"    "se $1re"]
     :g [#"^se (\S+)re$"  "$1rez"]
     :u {:synsem {:agr {:number :plur
                        :person :2nd}}}}
    {:p [#"^(\S+)ont$"    "$1"]
     :g [#"^([^' ]+)$"    "$1ont"]
     :u {:synsem {:agr {:number :plur
                        :person :3rd}}}}
    {:p [#"^(\S+)ont$"    "s'$1"]
     :g [#"^s'(\S+)$"     "$1ont"]
     :u {:synsem {:agr {:number :plur
                        :person :3rd}}}}
    {:p [#"^(\S+)ont$"    "se $1"]
     :g [#"^se (\S+)$"    "$1ont"]
     :u {:synsem {:agr {:number :plur
                        :person :3rd}}}}
    {:p [#"^(\S+)ront$"   "$1re"]
     :g [#"^([^' ]+)re$"  "$1ront"]
     :u {:synsem {:agr {:number :plur
                        :person :3rd}}}}
    {:p [#"^(\S+)ront$"   "s'$1re"]
     :g [#"^s'(\S+)re$"   "$1ont"]
     :u {:synsem {:agr {:number :plur
                        :person :3rd}}}}
    {:p [#"^(\S+)ront$"   "se $1re"]
     :g [#"^se (\S+)re$"  "$1ront"]
     :u {:synsem {:agr {:number :plur
                        :person :3rd}}}}
    ]))

(def regular-patterns-source

    :merge-fn
    (fn [val]
      {:français {:infl :future
                  :conjugated true
                  :français (get-in val [:français :future-stem] "ais")
                  :agr {:number :sing
                        :person :1st}}})}
