sig
  type lookup = Assemblage.Ctx.t -> string list
  type kind =
      [ `OCamlfind
      | `Other of string * Assemblage.Pkg.lookup Assemblage.Conf.value
      | `Pkg_config ]
  val pp_kind : Format.formatter -> Assemblage.Pkg.kind -> unit
  val kind : [< `Pkg ] Assemblage.part -> Assemblage.Pkg.kind
  val lookup :
    [< `Pkg ] Assemblage.part -> Assemblage.Pkg.lookup Assemblage.Conf.value
  val opt : [< `Pkg ] Assemblage.part -> bool
  val ocamlfind :
    [< Assemblage.part_kind ] Assemblage.part ->
    [< Assemblage.part_kind > `Pkg ] Assemblage.part option
  val pkg_config :
    [< Assemblage.part_kind ] Assemblage.part ->
    [< Assemblage.part_kind > `Pkg ] Assemblage.part option
  val other :
    [< Assemblage.part_kind ] Assemblage.part ->
    [< Assemblage.part_kind > `Pkg ] Assemblage.part option
  val v :
    ?usage:Assemblage.Part.usage ->
    ?exists:bool Assemblage.Conf.value ->
    ?opt:bool ->
    string ->
    Assemblage.Pkg.kind -> [< Assemblage.part_kind > `Pkg ] Assemblage.part
  val list_lookup :
    [< Assemblage.part_kind ] Assemblage.part list ->
    Assemblage.Pkg.lookup Assemblage.Conf.value
end