sig
  type command_spec = Ocamlbuild_pack.Command.spec
  type error =
    Ocamlbuild_pack.Findlib.error =
      Cannot_run_ocamlfind
    | Dependency_not_found of string * string
    | Package_not_found of string
    | Cannot_parse_query of string * string
  exception Findlib_error of error
  val string_of_error : error -> string
  val report_error : error -> 'a
  type package =
    Ocamlbuild_pack.Findlib.package = {
    name : string;
    description : string;
    version : string;
    archives_byte : string;
    archives_native : string;
    link_options : string;
    location : string;
    dependencies : package list;
  }
  val query : string -> package
  val list : unit -> string list
  val topological_closure : package list -> package list
  val compile_flags_byte : package list -> command_spec
  val compile_flags_native : package list -> command_spec
  val link_flags_byte : package list -> command_spec
  val link_flags_native : package list -> command_spec
end