# Module Depend

    module Depend: sig .. end

Module dependencies.

    module StringSet: Set.S  with type elt = string

    module StringMap: Map.S  with type key = string

    type map_tree =

`|` | `Node of `StringSet.t * bound_map``

    type bound_map = map_tree StringMap.t

    val make_leaf : string -> map_tree

    val make_node : bound_map -> map_tree

    val weaken_map : StringSet.t -> map_tree -> map_tree

    val free_structure_names : StringSet.t ref

    val pp_deps : string list ref

    val open_module : bound_map -> Longident.t -> bound_map

    val add_use_file : bound_map -> Parsetree.toplevel_phrase list -> unit

    val add_signature : bound_map -> Parsetree.signature -> unit

    val add_implementation : bound_map -> Parsetree.structure -> unit

    val add_implementation_binding : bound_map -> Parsetree.structure -> bound_map

    val add_signature_binding : bound_map -> Parsetree.signature -> bound_map