sig
  type 'a conv
  val conv :
    ?docv:string ->
    (string -> 'Topkg_result.result) ->
    (Stdlib.Format.formatter -> '-> unit) -> 'Topkg_conf.conv
  val conv_with_docv :
    'Topkg_conf.conv -> docv:string -> 'Topkg_conf.conv
  val conv_parser : 'Topkg_conf.conv -> string -> 'Topkg_result.result
  val conv_printer :
    'Topkg_conf.conv -> Stdlib.Format.formatter -> '-> unit
  val conv_docv : 'Topkg_conf.conv -> string
  val bool : bool Topkg_conf.conv
  val int : int Topkg_conf.conv
  val string : string Topkg_conf.conv
  val fpath : Topkg_fpath.t Topkg_conf.conv
  val some : ?none:string -> 'Topkg_conf.conv -> 'a option Topkg_conf.conv
  type 'a key
  val key :
    ?docv:string ->
    ?doc:string ->
    ?env:string ->
    string -> 'Topkg_conf.conv -> absent:'-> 'Topkg_conf.key
  val discovered_key :
    ?docv:string ->
    ?doc:string ->
    ?env:string ->
    string ->
    'Topkg_conf.conv ->
    absent:(unit -> 'Topkg_result.result) -> 'Topkg_conf.key
  val with_pkg : ?default:bool -> string -> bool Topkg_conf.key
  val pp_keys_cli_opts : Stdlib.Format.formatter -> unit -> unit
  type t
  val empty : Topkg_conf.t
  val value : Topkg_conf.t -> 'Topkg_conf.key -> 'a
  val pp_value :
    Topkg_conf.t -> Stdlib.Format.formatter -> 'Topkg_conf.key -> unit
  val dump : Stdlib.Format.formatter -> Topkg_conf.t -> unit
  val of_cli_args :
    pkg_name:string ->
    build_dir:Topkg_fpath.t ->
    string list -> Topkg_conf.t Topkg_result.result
  val pkg_name : Topkg_conf.t -> string
  val build_dir : Topkg_conf.t -> Topkg_fpath.t
  val vcs : Topkg_conf.t -> bool
  val pinned : Topkg_conf.t -> bool
  val dev_pkg : Topkg_conf.t -> bool
  val jobs : Topkg_conf.t -> int
  type build_context = [ `Dev | `Distrib | `Pin ]
  val build_context : Topkg_conf.t -> [ `Dev | `Distrib | `Pin ]
  val build_tests : Topkg_conf.t -> bool
  val debug : Topkg_conf.t -> bool
  val debugger_support : Topkg_conf.t -> bool
  val profile : Topkg_conf.t -> bool
  val toolchain : Topkg_conf.t -> string option
  type os = [ `Build_os | `Host_os ]
  val tool : ?conf:Topkg_conf.t -> string -> Topkg_conf.os -> Topkg_cmd.t
  module OCaml :
    sig
      type conf = Topkg_conf.t
      type t
      val v : Topkg_conf.OCaml.conf -> Topkg_conf.os -> Topkg_conf.OCaml.t
      val find : string -> Topkg_conf.OCaml.t -> string option
      val version : Topkg_conf.OCaml.t -> int * int * int * string option
      val ext_obj : Topkg_conf.OCaml.t -> string
      val ext_asm : Topkg_conf.OCaml.t -> string
      val ext_lib : Topkg_conf.OCaml.t -> string
      val ext_dll : Topkg_conf.OCaml.t -> string
      val ext_exe : Topkg_conf.OCaml.t -> string
      val native : Topkg_conf.OCaml.t -> bool
      val native_dynlink : Topkg_conf.OCaml.t -> bool
      val supports_shared_libraries : Topkg_conf.OCaml.t -> bool
      val word_size : Topkg_conf.OCaml.t -> int
      val dump : Stdlib.Format.formatter -> Topkg_conf.OCaml.t -> unit
    end
end