sig
  val add_dir : hidden:bool -> string -> unit
  val remove_dir : string -> unit
  val reset : unit -> unit
  module Dir :
    sig
      type t
      val create : hidden:bool -> string -> Load_path.Dir.t
      val path : Load_path.Dir.t -> string
      val files : Load_path.Dir.t -> string list
      val hidden : Load_path.Dir.t -> bool
      val find : Load_path.Dir.t -> string -> string option
      val find_normalized : Load_path.Dir.t -> string -> string option
    end
  type auto_include_callback =
      (Load_path.Dir.t -> string -> string option) -> string -> string
  val no_auto_include : Load_path.auto_include_callback
  val init :
    auto_include:Load_path.auto_include_callback ->
    visible:string list -> hidden:string list -> unit
  val auto_include_otherlibs :
    (string -> unit) -> Load_path.auto_include_callback
  val get_path_list : unit -> string list
  type paths = { visible : string list; hidden : string list; }
  val get_paths : unit -> Load_path.paths
  val find : string -> string
  val find_normalized : string -> string
  type visibility = Visible | Hidden
  val find_normalized_with_visibility :
    string -> string * Load_path.visibility
  val add : Load_path.Dir.t -> unit
  val append_dir : Load_path.Dir.t -> unit
  val prepend_dir : Load_path.Dir.t -> unit
  val get_visible : unit -> Load_path.Dir.t list
end