sig
  type t
  val name : string
  val compare : t -> t -> int
  val pair : t -> t -> t
  val of_string : string -> t
  val to_string : t -> string
  val print : ?oc:out_channel -> t -> unit
  val print_ : ?oc:out_channel -> t -> unit
  type nodeSet
  type edgeSet
  val empty : t
  val make : nodeSet -> nodeSet -> edgeSet -> t
  val of_file : string -> t
  val to_file : string -> t -> unit
  val to_dotstring :
    ?size:string ->
    ?rd:string -> ?shape:string -> ?fs:string -> string -> t -> string
  val to_dotfile :
    ?size:string ->
    ?rd:string ->
    ?shape:string -> ?fs:string -> string -> string -> t -> unit
  val report : t -> unit
  val starts : t -> nodeSet
  val finals : t -> nodeSet
  val edges : t -> edgeSet
  val nodes : t -> nodeSet
  val is_cyclic : t -> bool
  val is_stripped : t -> bool
  val are_isomorphic : t -> t -> bool
  val equal : t -> t -> bool
  val reverse : t -> t
  val trim : t -> t
  val rename : t -> t
  val rename_n : int -> t -> t
  val inter : t -> t -> t
  val union : t -> t -> t
  type node
  type edge
  type label
  type word
  type wordSet
  type nodeSetSet
  val is_deterministic : t -> bool
  val complete_determinize : t -> t
  val determinize : t -> t
  val minimize : t -> t
  val complement : t -> t
  val print_edgeMap : t -> unit
  val concat : t -> t -> t
  val star : t -> t
  val is_nd : int -> int -> t -> bool
  val transform : t -> nodeSet -> Acceptors.ACCEPTOR_TYPE.word -> nodeSet
  val accepts : t -> string -> bool
  val accepts_wordSet :
    t ->
    Acceptors.ACCEPTOR_TYPE.wordSet ->
    Acceptors.ACCEPTOR_TYPE.wordSet * Acceptors.ACCEPTOR_TYPE.wordSet
  val generate : t -> int -> int -> Acceptors.ACCEPTOR_TYPE.wordSet
  val generate_p : t -> int -> int -> unit
  val k_followers :
    int -> nodeSet -> edgeSet -> Acceptors.ACCEPTOR_TYPE.wordSet
  val k_leaders :
    int -> nodeSet -> edgeSet -> Acceptors.ACCEPTOR_TYPE.wordSet
  val print_wordSet :
    ?oc:Pervasives.out_channel -> Acceptors.ACCEPTOR_TYPE.wordSet -> unit
  val extend_pt : t -> Acceptors.ACCEPTOR_TYPE.word -> t
  val pt : Acceptors.ACCEPTOR_TYPE.wordSet -> t
  val st : Acceptors.ACCEPTOR_TYPE.wordSet -> t
  val make_pt : string -> t
  val make_st : string -> t
  val extend : t -> Acceptors.ACCEPTOR_TYPE.word -> t
  val make_pt2 : string -> t
  val make_st2 : string -> t
  val wordSet_of_string : string -> Acceptors.ACCEPTOR_TYPE.wordSet
  val make_fin : Pervasives.in_channel -> t
  val range_fsa : Acceptors.ACCEPTOR_TYPE.wordSet -> t
  val make_range_fsa : string -> t
  val merge1 : t -> Acceptors.ACCEPTOR_TYPE.nodeSetSet -> t
  val merge1_ns : t -> nodeSet -> t
  val merge : t -> (t -> Acceptors.ACCEPTOR_TYPE.nodeSetSet) -> t
  val b_successors : t -> Acceptors.ACCEPTOR_TYPE.nodeSetSet
  val is_final_eqr : t -> Acceptors.ACCEPTOR_TYPE.nodeSetSet
  val is_nonfinal_eqr : t -> Acceptors.ACCEPTOR_TYPE.nodeSetSet
  val is_start_eqr : t -> Acceptors.ACCEPTOR_TYPE.nodeSetSet
  val is_nonstart_eqr : t -> Acceptors.ACCEPTOR_TYPE.nodeSetSet
  val k_leaders_eqr : int -> t -> Acceptors.ACCEPTOR_TYPE.nodeSetSet
  val k_followers_eqr : int -> t -> Acceptors.ACCEPTOR_TYPE.nodeSetSet
  val jk_nhoods_eqr : int -> int -> t -> Acceptors.ACCEPTOR_TYPE.nodeSetSet
end