-val add_trans : t -> State.t -> QNameSet.t -> SFormula.t -> unit
-val print : Format.formatter -> t -> unit
-val complete_transitions : t -> unit
-val cleanup_states : t -> unit
-val normalize_negations : t -> unit
+val merge : t -> t -> t
+(** [merge a a'] creates a new automaton [a''] that evaluates both [a] and [a'']
+ in parallel
+*)
+
+module Builder :
+sig
+ type auto = t
+ (** Alias type for the automata type *)
+
+ type t
+ (** Abstract type for a builder *)
+
+ val make : unit -> t
+ (** Create a fresh builder *)
+
+ val add_state : t -> ?starting:bool -> ?selecting:bool -> State.t -> unit
+ (** Add a state to the set of states of the automaton. The
+ optional arguments [?starting] and [?selecting] (defaulting
+ to [false]) allow one to specify whether the state is
+ starting/selecting. *)
+
+ val add_trans : t -> State.t -> QNameSet.t -> Formula.t -> unit
+ (** Add a transition to the automaton *)
+
+ val finalize : t -> auto
+ (** Finalize the automaton and return it. Clean-up unused states (states that
+ do not occur in any transitions and remove instantes of negative [move] atoms
+ by creating fresh states that accept the complement of the negated state.
+ *)
+end
+ (** Builder facility for the automaton *)