sig
  type std_file
  val std_file : ?install:bool -> Topkg_fpath.t -> Topkg_pkg.std_file
  type meta_file
  val meta_file :
    ?lint:bool -> ?install:bool -> Topkg_fpath.t -> Topkg_pkg.meta_file
  type opam_file
  val opam_file :
    ?lint:bool ->
    ?lint_deps_excluding:string list option ->
    ?install:bool -> Topkg_fpath.t -> Topkg_pkg.opam_file
  type t
  val empty : Topkg_pkg.t
  val with_name_and_build_dir :
    ?name:string -> ?build_dir:Topkg_fpath.t -> Topkg_pkg.t -> Topkg_pkg.t
  val v :
    ?delegate:Topkg_cmd.t ->
    ?readmes:Topkg_pkg.std_file list ->
    ?licenses:Topkg_pkg.std_file list ->
    ?change_logs:Topkg_pkg.std_file list ->
    ?metas:Topkg_pkg.meta_file list ->
    ?opams:Topkg_pkg.opam_file list ->
    ?lint_files:Topkg_fpath.t list option ->
    ?lint_custom:(unit -> Topkg_result.R.msg Topkg_result.result list) ->
    ?distrib:Topkg_distrib.t ->
    ?publish:Topkg_publish.t ->
    ?build:Topkg_build.t ->
    string ->
    (Topkg_conf.t -> Topkg_install.t list Topkg_result.result) -> Topkg_pkg.t
  val name : Topkg_pkg.t -> string
  val delegate : Topkg_pkg.t -> Topkg_cmd.t option
  val readmes : Topkg_pkg.t -> Topkg_fpath.t list
  val change_logs : Topkg_pkg.t -> Topkg_fpath.t list
  val licenses : Topkg_pkg.t -> Topkg_fpath.t list
  val distrib : Topkg_pkg.t -> Topkg_distrib.t
  val install :
    Topkg_pkg.t -> Topkg_conf.t -> Topkg_install.t list Topkg_result.result
  val codec : Topkg_pkg.t Topkg_codec.t
  val build_dir : Topkg_pkg.t -> Topkg_fpath.t
  val opam : name:string -> Topkg_pkg.t -> Topkg_fpath.t
  val distrib_uri : Topkg_pkg.t -> string option
  val distrib_prepare :
    Topkg_pkg.t ->
    dist_build_dir:Topkg_fpath.t ->
    name:string ->
    version:string ->
    opam:Topkg_fpath.t ->
    opam_adds:string -> Topkg_fpath.t list Topkg_result.result
  val publish_artefacts :
    Topkg_pkg.t -> [ `Alt of string | `Distrib | `Doc ] list
  val test :
    Topkg_pkg.t ->
    list:bool ->
    tests:string list -> args:Topkg_cmd.t option -> int Topkg_result.result
  val build :
    Topkg_pkg.t ->
    kind:[ `Build | `Dry_run | `Raw of string list ] ->
    Topkg_conf.t -> Topkg_conf.os -> int Topkg_result.result
  val clean : Topkg_pkg.t -> Topkg_conf.os -> int Topkg_result.result
  val lint_custom :
    Topkg_pkg.t ->
    (unit -> Topkg_result.R.msg Topkg_result.result list) option
  val lint_files : Topkg_pkg.t -> Topkg_fpath.t list option
  val lint_metas : Topkg_pkg.t -> (Topkg_fpath.t * bool) list
  val lint_opams :
    Topkg_pkg.t -> (Topkg_fpath.t * bool * string list option) list
end