sig
  exception No_such_package of string * string
  exception Package_loop of string
  val init :
    ?env_ocamlpath:string ->
    ?env_ocamlfind_destdir:string ->
    ?env_ocamlfind_metadir:string ->
    ?env_ocamlfind_commands:string ->
    ?env_ocamlfind_ignore_dups_in:string ->
    ?env_camllib:string ->
    ?env_ldconf:string -> ?config:string -> ?toolchain:string -> unit -> unit
  val init_manually :
    ?ocamlc_command:string ->
    ?ocamlopt_command:string ->
    ?ocamlcp_command:string ->
    ?ocamloptp_command:string ->
    ?ocamlmklib_command:string ->
    ?ocamlmktop_command:string ->
    ?ocamldep_command:string ->
    ?ocamlbrowser_command:string ->
    ?ocamldoc_command:string ->
    ?ignore_dups_in:string ->
    ?stdlib:string ->
    ?ldconf:string ->
    install_dir:string ->
    meta_dir:string -> search_path:string list -> unit -> unit
  val default_location : unit -> string
  val meta_directory : unit -> string
  val search_path : unit -> string list
  val command :
    [ `ocamlbrowser
    | `ocamlc
    | `ocamlcp
    | `ocamldep
    | `ocamldoc
    | `ocamlmklib
    | `ocamlmktop
    | `ocamlopt
    | `ocamloptp ] -> string
  val ocaml_stdlib : unit -> string
  val ocaml_ldconf : unit -> string
  val package_directory : string -> string
  val ignore_dups_in : unit -> string option
  val package_property : string list -> string -> string -> string
  val package_ancestors : string list -> string -> string list
  val package_deep_ancestors : string list -> string list -> string list
  val resolve_path : ?base:string -> string -> string
  val list_packages :
    ?tab:int -> ?descr:bool -> Pervasives.out_channel -> unit
end