type condition = Cequals of string * int | Cand of condition list | Cor of condition list type next_state = NSdefault (* (DECISION _ ...) *) | NSfixed of int (* (DECISION 100 ...) *) | NSchoose of int (* we can choose (DECISION _ ...) or (DECISION 100 ...) *) type decision = { mutable next: next_state; utterance: string } type stmt = Eif of condition * stmt * stmt | Edecision of decision | Ecase of string * (int list * stmt) list * stmt type rule = (int list * stmt) type character = rule list val size_cond : condition -> int val size_stmt : stmt -> int val size_character: character -> int val pretty_cond : condition -> unit val pretty_stmt : stmt -> unit val pretty_character: character -> unit (*val save_character : string -> character -> unit*)