sig
  type +'a t
  val const : '-> 'Cmdliner.Term.t
  val pure : '-> 'Cmdliner.Term.t
  val man_format : Cmdliner.Manpage.format Cmdliner.Term.t
  val ( $ ) :
    ('-> 'b) Cmdliner.Term.t -> 'Cmdliner.Term.t -> 'Cmdliner.Term.t
  val app :
    ('-> 'b) Cmdliner.Term.t -> 'Cmdliner.Term.t -> 'Cmdliner.Term.t
  type 'a ret =
      [ `Error of bool * string
      | `Help of Cmdliner.Manpage.format * string option
      | `Ok of 'a ]
  val ret : 'Cmdliner.Term.ret Cmdliner.Term.t -> 'Cmdliner.Term.t
  val term_result :
    ?usage:bool ->
    ('a, [ `Msg of string ]) Stdlib.result Cmdliner.Term.t ->
    'Cmdliner.Term.t
  val cli_parse_result :
    ('a, [ `Msg of string ]) Stdlib.result Cmdliner.Term.t ->
    'Cmdliner.Term.t
  val main_name : string Cmdliner.Term.t
  val choice_names : string list Cmdliner.Term.t
  val with_used_args :
    'Cmdliner.Term.t -> ('a * string list) Cmdliner.Term.t
  type exit_info
  val exit_info :
    ?docs:string -> ?doc:string -> ?max:int -> int -> Cmdliner.Term.exit_info
  val default_exits : Cmdliner.Term.exit_info list
  val default_error_exits : Cmdliner.Term.exit_info list
  type env_info
  val env_info :
    ?docs:string -> ?doc:string -> string -> Cmdliner.Term.env_info
  type info
  val info :
    ?man_xrefs:Cmdliner.Manpage.xref list ->
    ?man:Cmdliner.Manpage.block list ->
    ?envs:Cmdliner.Term.env_info list ->
    ?exits:Cmdliner.Term.exit_info list ->
    ?sdocs:string ->
    ?docs:string ->
    ?doc:string -> ?version:string -> string -> Cmdliner.Term.info
  val name : Cmdliner.Term.info -> string
  type 'a result =
      [ `Error of [ `Exn | `Parse | `Term ] | `Help | `Ok of '| `Version ]
  val eval :
    ?help:Stdlib.Format.formatter ->
    ?err:Stdlib.Format.formatter ->
    ?catch:bool ->
    ?env:(string -> string option) ->
    ?argv:string array ->
    'Cmdliner.Term.t * Cmdliner.Term.info -> 'Cmdliner.Term.result
  val eval_choice :
    ?help:Stdlib.Format.formatter ->
    ?err:Stdlib.Format.formatter ->
    ?catch:bool ->
    ?env:(string -> string option) ->
    ?argv:string array ->
    'Cmdliner.Term.t * Cmdliner.Term.info ->
    ('Cmdliner.Term.t * Cmdliner.Term.info) list -> 'Cmdliner.Term.result
  val eval_peek_opts :
    ?version_opt:bool ->
    ?env:(string -> string option) ->
    ?argv:string array ->
    'Cmdliner.Term.t -> 'a option * 'Cmdliner.Term.result
  val exit_status_success : int
  val exit_status_cli_error : int
  val exit_status_internal_error : int
  val exit_status_of_result : ?term_err:int -> 'Cmdliner.Term.result -> int
  val exit_status_of_status_result :
    ?term_err:int -> int Cmdliner.Term.result -> int
  val exit : ?term_err:int -> 'Cmdliner.Term.result -> unit
  val exit_status : ?term_err:int -> int Cmdliner.Term.result -> unit
end