Legend:
Library
Module
Module type
Parameter
Class
Class type
Library
Module
Module type
Parameter
Class
Class type
type loc = Lexing.position * Lexing.position
type annot = annot_section list
and annot_section = string * (loc * annot_field list)
and annot_field = string * (loc * string option)
type full_module = module_head * module_body
and module_body = module_item list
and type_def = loc * (string * type_param * annot) * type_expr
and type_expr = [
| `List of loc * type_expr * annot
| `Name of loc * type_inst * annot
| `Nullable of loc * type_expr * annot
| `Option of loc * type_expr * annot
| `Record of loc * field list * annot
| `Sum of loc * variant list * annot
| `Tuple of loc * cell list * annot
| `Tvar of loc * string
| `Wrap of loc * type_expr * annot
]
val string_of_loc : loc -> string
val error_at : loc -> string -> 'a
val dummy_loc : loc
val map_all_annot : (annot -> annot) -> full_module -> full_module
val extract_type_names : ?ignorable:string list -> type_expr -> string list
val is_parametrized : type_expr -> bool