sig
  type 'parser = string -> [ `Error of string | `Ok of 'a ]
  type 'a printer = Format.formatter -> '-> unit
  type 'a converter = 'Cmdliner.Arg.parser * 'Cmdliner.Arg.printer
  val some :
    ?none:string ->
    'Cmdliner.Arg.converter -> 'a option Cmdliner.Arg.converter
  type 'a t
  type info
  val info :
    ?docs:string ->
    ?docv:string -> ?doc:string -> string list -> Cmdliner.Arg.info
  val ( & ) : ('-> 'b) -> '-> 'b
  val flag : Cmdliner.Arg.info -> bool Cmdliner.Arg.t
  val flag_all : Cmdliner.Arg.info -> bool list Cmdliner.Arg.t
  val vflag : '-> ('a * Cmdliner.Arg.info) list -> 'Cmdliner.Arg.t
  val vflag_all :
    'a list -> ('a * Cmdliner.Arg.info) list -> 'a list Cmdliner.Arg.t
  val opt :
    ?vopt:'->
    'Cmdliner.Arg.converter -> '-> Cmdliner.Arg.info -> 'Cmdliner.Arg.t
  val opt_all :
    ?vopt:'->
    'Cmdliner.Arg.converter ->
    'a list -> Cmdliner.Arg.info -> 'a list Cmdliner.Arg.t
  val pos :
    ?rev:bool ->
    int ->
    'Cmdliner.Arg.converter -> '-> Cmdliner.Arg.info -> 'Cmdliner.Arg.t
  val pos_all :
    'Cmdliner.Arg.converter ->
    'a list -> Cmdliner.Arg.info -> 'a list Cmdliner.Arg.t
  val pos_left :
    ?rev:bool ->
    int ->
    'Cmdliner.Arg.converter ->
    'a list -> Cmdliner.Arg.info -> 'a list Cmdliner.Arg.t
  val pos_right :
    ?rev:bool ->
    int ->
    'Cmdliner.Arg.converter ->
    'a list -> Cmdliner.Arg.info -> 'a list Cmdliner.Arg.t
  val value : 'Cmdliner.Arg.t -> 'Cmdliner.Term.t
  val required : 'a option Cmdliner.Arg.t -> 'Cmdliner.Term.t
  val non_empty : 'a list Cmdliner.Arg.t -> 'a list Cmdliner.Term.t
  val last : 'a list Cmdliner.Arg.t -> 'Cmdliner.Term.t
  val bool : bool Cmdliner.Arg.converter
  val char : char Cmdliner.Arg.converter
  val int : int Cmdliner.Arg.converter
  val nativeint : nativeint Cmdliner.Arg.converter
  val int32 : int32 Cmdliner.Arg.converter
  val int64 : int64 Cmdliner.Arg.converter
  val float : float Cmdliner.Arg.converter
  val string : string Cmdliner.Arg.converter
  val enum : (string * 'a) list -> 'Cmdliner.Arg.converter
  val file : string Cmdliner.Arg.converter
  val dir : string Cmdliner.Arg.converter
  val non_dir_file : string Cmdliner.Arg.converter
  val list :
    ?sep:char -> 'Cmdliner.Arg.converter -> 'a list Cmdliner.Arg.converter
  val array :
    ?sep:char -> 'Cmdliner.Arg.converter -> 'a array Cmdliner.Arg.converter
  val pair :
    ?sep:char ->
    'Cmdliner.Arg.converter ->
    'Cmdliner.Arg.converter -> ('a * 'b) Cmdliner.Arg.converter
  val t2 :
    ?sep:char ->
    'Cmdliner.Arg.converter ->
    'Cmdliner.Arg.converter -> ('a * 'b) Cmdliner.Arg.converter
  val t3 :
    ?sep:char ->
    'Cmdliner.Arg.converter ->
    'Cmdliner.Arg.converter ->
    'Cmdliner.Arg.converter -> ('a * 'b * 'c) Cmdliner.Arg.converter
  val t4 :
    ?sep:char ->
    'Cmdliner.Arg.converter ->
    'Cmdliner.Arg.converter ->
    'Cmdliner.Arg.converter ->
    'Cmdliner.Arg.converter -> ('a * 'b * 'c * 'd) Cmdliner.Arg.converter
end