Module Oug_types


module Oug_types: sig .. end
Result of analysis.

val dbg : ?loc:string -> ?level:int -> (unit -> string) -> unit
type absname = Oug_env.absname 
val string_of_absname : string list -> string
val absname_of_string : string -> string list
val basename : 'a list -> 'a
val parentname : 'a list -> 'a list
module String_weak: Weak.Make(sig
type t = string 
val hash : 'a -> int
val equal : 'a -> 'a -> bool
end)
val string_weak : String_weak.t
val string_of_ident : Ident.t -> String_weak.data
val absname_of_path : Path.t -> String_weak.data list

type type_kind =
| Abstract
| Record
| Variant

type expr_kind =
| Expr_ref
| Expr_other

type elt_kind =
| Value of bool
| Module
| Class
| Method
| Type of type_kind
| Type_field
| Pattern
| Expr of expr_kind
val elt_kinds : elt_kind list

type depend =
| Use (*function call, method call, create object of class, use module in functor or alias*)
| Contain (*a module or class contains a module, value, class, ...*)
| Include (*include a module*)
| Inherit (*inherit from a class*)
| Alias (*indicate that an element is built from another (with functors)*)
| Export (*a module/class exports an element, i.e. it appears in the .mli file*)
| Create (*to indicate that an element sets or build a type field*)
| Pack (*to indicate that an element packs a module*)
val depends : depend list
val char_of_elt_kind : elt_kind -> char
val elt_kind_of_char : char -> elt_kind
val string_of_elt_kind : elt_kind -> string
val string_of_depend : depend -> string
type group_id = unit Oug_tmap.key 
module Group_map: Map.Make(sig
type t = Oug_types.group_id 
val compare : 'a Oug_tmap.key -> 'a Oug_tmap.key -> int
end)

type elt = {
   name : absname;
   kind : elt_kind;
   loc : Oug_loc.location;
   rec_group : group_id option;
}
type elt_id = elt Oug_tmap.key 
module Elt_map: Map.Make(sig
type t = Oug_types.elt_id 
val compare : 'a Oug_tmap.key -> 'a Oug_tmap.key -> int
end)
module Elt_set: Set.Make(sig
type t = Oug_types.elt_id 
val compare : 'a Oug_tmap.key -> 'a Oug_tmap.key -> int
end)
module SMap: Map.Make(sig
type t = string 
val compare : 'a -> 'a -> int
end)
module Module_map: Map.Make(sig
type t = string * bool option 
val compare : 'a -> 'a -> int
end)
To store information per module name and interface/implementation flag.
val standard_loc_message : Location.t -> string -> string
val string_of_elt : ?loc:bool -> elt -> string
val elt : ?group:group_id ->
Oug_loc.location -> elt_kind -> absname -> elt
type elt_map = (elt, elt) Oug_tmap.t 
val dummy_elt : elt
val create_elt_map : unit -> elt_map
val get_constr_short_name : Env.t -> Types.constructor_description -> String_weak.data