sig
  type kind = [ `C | `OCaml | `OCaml_pp ]
  val pp_kind : Format.formatter -> Assemblage.Lib.kind -> unit
  val kind : [< `Lib ] Assemblage.part -> Assemblage.Lib.kind
  val byte : [< `Lib ] Assemblage.part -> bool
  val native : [< `Lib ] Assemblage.part -> bool
  val native_dynlink : [< `Lib ] Assemblage.part -> bool
  val ocaml :
    [< Assemblage.part_kind ] Assemblage.part ->
    [< Assemblage.part_kind > `Lib ] Assemblage.part option
  val ocaml_pp :
    [< Assemblage.part_kind ] Assemblage.part ->
    [< Assemblage.part_kind > `Lib ] Assemblage.part option
  val c :
    [< Assemblage.part_kind ] Assemblage.part ->
    [< Assemblage.part_kind > `Lib ] Assemblage.part option
  val v :
    ?usage:Assemblage.Part.usage ->
    ?exists:bool Assemblage.Conf.value ->
    ?args:Assemblage.Args.t ->
    ?byte:bool ->
    ?native:bool ->
    ?native_dynlink:bool ->
    string ->
    Assemblage.Lib.kind ->
    [< `Lib | `Pkg | `Unit ] Assemblage.part list ->
    [< Assemblage.part_kind > `Lib ] Assemblage.part
end