functor (Etat : Tools.Base->
  functor (Alph : Tools.Base->
    sig
      type etat = Etat.t
      type lettre = Alph.t
      type mot = Monoid.Compute.lettre list
      val monsyn :
        Monoid.Compute.etat list ->
        ((Monoid.Compute.lettre -> string) * (Monoid.Compute.etat -> string))
        option ->
        (Monoid.Compute.etat, Monoid.Compute.lettre) Automate.automate ->
        Monoid.Compute.mot list * Monoid.Compute.mot list *
        (Monoid.Compute.lettre, Monoid.Compute.etat option) Monoid.monoid
      val monsyn2 :
        ((Monoid.Compute.lettre -> string) * (Monoid.Compute.etat -> string))
        option ->
        (Monoid.Compute.etat, Monoid.Compute.lettre) Automate.automate ->
        Monoid.Compute.mot list * Monoid.Compute.mot list *
        (Monoid.Compute.lettre, Monoid.Compute.etat option) Monoid.monoid
      val monsyn3 :
        (Monoid.Compute.etat, Monoid.Compute.lettre) Automate.automate ->
        (int -> Monoid.Compute.etat) *
        (Monoid.Compute.lettre, Monoid.Compute.etat option) Monoid.monoid
      val clbeta :
        (Monoid.Compute.lettre, 'a) Monoid.monoid ->
        Monoid.Compute.mot -> Monoid.Compute.mot
      val prod :
        (Monoid.Compute.lettre, 'a) Monoid.monoid ->
        Monoid.Compute.mot -> Monoid.Compute.mot -> Monoid.Compute.mot
      val prodl :
        (Monoid.Compute.lettre, 'a) Monoid.monoid ->
        Monoid.Compute.mot ->
        Monoid.Compute.mot list -> Monoid.Compute.mot list
      val prodr :
        (Monoid.Compute.lettre, 'a) Monoid.monoid ->
        Monoid.Compute.mot list ->
        Monoid.Compute.mot -> Monoid.Compute.mot list
      val prodlst :
        (Monoid.Compute.lettre, 'a) Monoid.monoid ->
        Monoid.Compute.mot list ->
        Monoid.Compute.mot list -> Monoid.Compute.mot list
      val star :
        (Monoid.Compute.lettre, 'a) Monoid.monoid ->
        Monoid.Compute.mot list -> Monoid.Compute.mot list
      val func_g :
        (Monoid.Compute.lettre, 'a) Monoid.monoid ->
        (Monoid.Compute.lettre -> Monoid.Compute.lettre) ->
        Monoid.Compute.mot list ->
        Monoid.Compute.lettre -> Monoid.Compute.mot list
      val auto_g :
        (Monoid.Compute.lettre, 'a) Monoid.monoid ->
        Monoid.Compute.mot list ->
        Monoid.Compute.lettre list ->
        (Monoid.Compute.lettre -> Monoid.Compute.lettre) ->
        (Monoid.Compute.mot list, Monoid.Compute.lettre) Automate.automate
      val auto_f :
        (Monoid.Compute.lettre, 'a) Monoid.monoid ->
        Monoid.Compute.mot list ->
        Monoid.Compute.mot list ->
        Monoid.Compute.lettre list ->
        (Monoid.Compute.lettre -> Monoid.Compute.lettre) ->
        (Monoid.Compute.mot list * Monoid.Compute.mot list,
         Monoid.Compute.lettre)
        Automate.automate
      val auto_f_opt :
        (Monoid.Compute.lettre, 'a) Monoid.monoid ->
        Monoid.Compute.mot list ->
        Monoid.Compute.mot list ->
        Monoid.Compute.lettre list ->
        (Monoid.Compute.lettre -> Monoid.Compute.lettre) ->
        (Monoid.Compute.mot list * Monoid.Compute.mot list,
         Monoid.Compute.lettre)
        Automate.automate
      val auto_f_opt2 :
        (Monoid.Compute.lettre, 'a) Monoid.monoid ->
        Monoid.Compute.mot list ->
        Monoid.Compute.mot list ->
        Monoid.Compute.lettre list ->
        (Monoid.Compute.lettre -> Monoid.Compute.lettre) ->
        (Monoid.Compute.mot list * Monoid.Compute.mot list,
         Monoid.Compute.lettre)
        Automate.automate
      val auto_f_opt3 :
        (Monoid.Compute.lettre, 'a) Monoid.monoid ->
        Monoid.Compute.mot list ->
        Monoid.Compute.mot list ->
        Monoid.Compute.lettre list ->
        (Monoid.Compute.lettre -> Monoid.Compute.lettre) ->
        (Monoid.Compute.mot list * Monoid.Compute.mot list,
         Monoid.Compute.lettre)
        Automate.automate
      val cayleyr :
        (Monoid.Compute.lettre, 'a) Monoid.monoid ->
        Monoid.Compute.mot list ->
        Monoid.Compute.lettre list ->
        (Monoid.Compute.mot, Monoid.Compute.lettre) Automate.automate
    end