open Types type special_export = Re_export_all | Fake_export_all type exports = { export_ok : (context * string) list; export_auto : (context * string) list; export_tags : (string * (context * string) list) list; special_export : special_export option; } type uses = (string * ((context * string) list option * pos)) list type prototype = { proto_nb_min : int ; proto_nb_max : int option ; } type variable_used = Access_none | Access_write_only | Access_various type per_package = { package_name : string ; has_package_name : bool ; vars_declared : (context * string, pos * variable_used ref * prototype option) Hashtbl.t; imported : ((context * string) * (string * variable_used ref * prototype option)) list option ref; exports : exports ; uses : uses ; required_packages : (string * pos) list ; body : fromparser list; isa : (string * pos) list option ; } type per_file = { file_name : string ; require_name : string option ; lines_starts : int list ; build_time : float ; packages : per_package list ; from_basedir : bool ; } val empty_exports : exports val ignore_package : string -> unit val use_lib : string list ref val uses_external_package : string -> bool val findfile : string list -> string -> string val get_global_info_from_package : bool -> string option -> float -> fromparser list -> per_file val has_proto : string option -> fromparser -> ((context * string) list * pos * fromparser list) option val get_vars_declaration : (context * string * string, pos * prototype option) Hashtbl.t -> string -> per_package -> unit val die_with_pos : string * int * int -> string -> 'a val warn_with_pos : Types.warning list -> string * int * int -> string -> unit val fold_tree : ('a -> fromparser -> 'a option) -> 'a -> fromparser -> 'a val from_qw : fromparser -> (context * string) list