sig
  type 'parser = string -> [ `Error of string | `Ok of 'a ]
  type 'a printer = Stdlib.Format.formatter -> '-> unit
  type 'a conv = 'Cmdliner.Arg.parser * 'Cmdliner.Arg.printer
  type 'a converter = 'Cmdliner.Arg.conv
  val conv :
    ?docv:string ->
    (string -> ('a, [ `Msg of string ]) Stdlib.result) *
    'Cmdliner.Arg.printer -> 'Cmdliner.Arg.conv
  val pconv :
    ?docv:string ->
    'Cmdliner.Arg.parser * 'Cmdliner.Arg.printer -> 'Cmdliner.Arg.conv
  val conv_parser :
    'Cmdliner.Arg.conv -> string -> ('a, [ `Msg of string ]) Stdlib.result
  val conv_printer : 'Cmdliner.Arg.conv -> 'Cmdliner.Arg.printer
  val conv_docv : 'Cmdliner.Arg.conv -> string
  val parser_of_kind_of_string :
    kind:string ->
    (string -> 'a option) -> string -> ('a, [ `Msg of string ]) Stdlib.result
  val some :
    ?none:string -> 'Cmdliner.Arg.conv -> 'a option Cmdliner.Arg.conv
  type env = Cmdliner.Term.env_info
  val env_var : ?docs:string -> ?doc:string -> string -> Cmdliner.Arg.env
  type 'a t
  type info
  val info :
    ?docs:string ->
    ?docv:string ->
    ?doc:string -> ?env:Cmdliner.Arg.env -> 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.conv -> '-> Cmdliner.Arg.info -> 'Cmdliner.Arg.t
  val opt_all :
    ?vopt:'->
    'Cmdliner.Arg.conv ->
    'a list -> Cmdliner.Arg.info -> 'a list Cmdliner.Arg.t
  val pos :
    ?rev:bool ->
    int ->
    'Cmdliner.Arg.conv -> '-> Cmdliner.Arg.info -> 'Cmdliner.Arg.t
  val pos_all :
    'Cmdliner.Arg.conv ->
    'a list -> Cmdliner.Arg.info -> 'a list Cmdliner.Arg.t
  val pos_left :
    ?rev:bool ->
    int ->
    'Cmdliner.Arg.conv ->
    'a list -> Cmdliner.Arg.info -> 'a list Cmdliner.Arg.t
  val pos_right :
    ?rev:bool ->
    int ->
    'Cmdliner.Arg.conv ->
    '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 man_format : Cmdliner.Manpage.format Cmdliner.Term.t
  val bool : bool Cmdliner.Arg.conv
  val char : char Cmdliner.Arg.conv
  val int : int Cmdliner.Arg.conv
  val nativeint : nativeint Cmdliner.Arg.conv
  val int32 : int32 Cmdliner.Arg.conv
  val int64 : int64 Cmdliner.Arg.conv
  val float : float Cmdliner.Arg.conv
  val string : string Cmdliner.Arg.conv
  val enum : (string * 'a) list -> 'Cmdliner.Arg.conv
  val file : string Cmdliner.Arg.conv
  val dir : string Cmdliner.Arg.conv
  val non_dir_file : string Cmdliner.Arg.conv
  val list : ?sep:char -> 'Cmdliner.Arg.conv -> 'a list Cmdliner.Arg.conv
  val array : ?sep:char -> 'Cmdliner.Arg.conv -> 'a array Cmdliner.Arg.conv
  val pair :
    ?sep:char ->
    'Cmdliner.Arg.conv ->
    'Cmdliner.Arg.conv -> ('a * 'b) Cmdliner.Arg.conv
  val t2 :
    ?sep:char ->
    'Cmdliner.Arg.conv ->
    'Cmdliner.Arg.conv -> ('a * 'b) Cmdliner.Arg.conv
  val t3 :
    ?sep:char ->
    'Cmdliner.Arg.conv ->
    'Cmdliner.Arg.conv ->
    'Cmdliner.Arg.conv -> ('a * 'b * 'c) Cmdliner.Arg.conv
  val t4 :
    ?sep:char ->
    'Cmdliner.Arg.conv ->
    'Cmdliner.Arg.conv ->
    'Cmdliner.Arg.conv ->
    'Cmdliner.Arg.conv -> ('a * 'b * 'c * 'd) Cmdliner.Arg.conv
  val doc_quote : string -> string
  val doc_alts : ?quoted:bool -> string list -> string
  val doc_alts_enum : ?quoted:bool -> (string * 'a) list -> string
end