sig
  type package = {
    package_name : string;
    package_dir : string;
    package_defs : Fl_metascanner.pkg_definition list;
    package_priv : Fl_package_base.package_priv;
  }
  and package_priv
  val init : string list -> string -> string option -> unit
  exception No_such_package of string * string
  exception Package_loop of string
  val query : string -> Fl_package_base.package
  val requires : preds:string list -> string -> string list
  val requires_deeply : preds:string list -> string list -> string list
  val package_conflict_report : ?identify_dir:(string -> 'a) -> unit -> unit
  val module_conflict_report :
    ?identify_dir:(string -> 'a) -> string list -> unit
  val load_base : unit -> unit
  val list_packages : unit -> string list
  val package_users : preds:string list -> string list -> string list
  val packages_in_meta_file :
    ?directory_required:bool ->
    name:string ->
    dir:string -> meta_file:string -> unit -> Fl_package_base.package list
  val package_definitions : search_path:string list -> string -> string list
end