sig
  exception Error of string
  type 'a t = {
    lex : Lexing.lexbuf -> 'a;
    deparse : '-> string;
    complete : Lexing.lexbuf -> string list;
    accept : '-> 'a;
    desc : string;
  }
  val int : ?max:int -> ?min:int -> unit -> int Parser.t
  val float : unit -> float Parser.t
  val unit : unit Parser.t
  val bool : bool Parser.t
  val string : string Parser.t
  val option : 'Parser.t -> 'a option Parser.t
  val pair : 'Parser.t -> 'Parser.t -> ('a * 'b) Parser.t
  val triple :
    'Parser.t -> 'Parser.t -> 'Parser.t -> ('a * 'b * 'c) Parser.t
  val quadruple :
    'Parser.t ->
    'Parser.t -> 'Parser.t -> 'Parser.t -> ('a * 'b * 'c * 'd) Parser.t
  val pentuple :
    'Parser.t ->
    'Parser.t ->
    'Parser.t ->
    'Parser.t -> 'Parser.t -> ('a * 'b * 'c * 'd * 'e) Parser.t
  val accept_only : 'a list -> 'Parser.t -> 'Parser.t
  val callback : ('-> unit) -> 'Parser.t -> 'Parser.t
  val command : (unit -> unit) Parser.t
  val variable : string Parser.t
  val add_command : string -> 'Parser.t -> string -> ('-> unit) -> unit
  val add_variable : string -> 'Parser.t -> '-> 'Pervasives.ref
  val get : string -> string
  val set : string -> string -> unit
  val parse : string -> unit -> unit
  val available_completions : string -> string list
  val create_log : string -> string -> bool -> string -> unit
  val sextuple :
    'Parser.t ->
    'Parser.t ->
    'Parser.t ->
    'Parser.t ->
    'Parser.t -> 'Parser.t -> ('a * 'b * 'c * 'd * 'e * 'f) Parser.t
  val septuple :
    'Parser.t ->
    'Parser.t ->
    'Parser.t ->
    'Parser.t ->
    'Parser.t ->
    'Parser.t -> 'Parser.t -> ('a * 'b * 'c * 'd * 'e * 'f * 'g) Parser.t
  val octuple :
    'Parser.t ->
    'Parser.t ->
    'Parser.t ->
    'Parser.t ->
    'Parser.t ->
    'Parser.t ->
    'Parser.t ->
    'Parser.t -> ('a * 'b * 'c * 'd * 'e * 'f * 'g * 'h) Parser.t
  val nonuple :
    'Parser.t ->
    'Parser.t ->
    'Parser.t ->
    'Parser.t ->
    'Parser.t ->
    'Parser.t ->
    'Parser.t ->
    'Parser.t ->
    'Parser.t -> ('a * 'b * 'c * 'd * 'e * 'f * 'g * 'h * 'i) Parser.t
end