sig
  type ('a, 'b) monoid =
      ('Automate.mot * 'b array) list *
      ('Automate.mot * 'Automate.mot) list
  val mot_to_string : ('-> string) -> 'Automate.mot -> string
  val list_to_string : ('-> string) -> 'a list -> string
  val table_to_string : ('-> string) -> 'b array -> string
  val lang_to_string : ('-> string) -> 'Automate.mot list -> string
  val pos_to_string : ('-> string) -> ('a * int) option -> string
  val ( -| ) :
    '-> ('a list * 'b) list -> (('a list * 'b) list, 'b) Tools.case
  val beta : ('a list * 'a list) list -> 'Automate.mot -> 'Automate.mot
  module Compute :
    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
end