sig
  exception Circular_dependencies of string list * string
  module type INPUT =
    sig
      val fold_dependencies : (string -> string -> '-> 'a) -> '-> 'a
      val fold_libraries : (string -> string list -> '-> 'a) -> '-> 'a
      val fold_packages : (string -> string list -> '-> 'a) -> '-> 'a
    end
  module Make :
    functor (I : INPUT->
      sig
        val caml_transitive_closure :
          ?caml_obj_ext:string ->
          ?caml_lib_ext:string ->
          ?pack_mode:bool ->
          ?used_libraries:string list ->
          ?hidden_packages:string list -> Pathname.t list -> Pathname.t list
      end
end