sig
type loc = Lexing.position * Lexing.position
exception Atd_error of string
type annot = Atd_ast.annot_section list
and annot_section = string * (Atd_ast.loc * Atd_ast.annot_field list)
and annot_field = string * (Atd_ast.loc * string option)
type full_module = Atd_ast.module_head * Atd_ast.module_body
and module_head = Atd_ast.loc * Atd_ast.annot
and module_body = Atd_ast.module_item list
and module_item = [ `Type of Atd_ast.type_def ]
and type_def =
Atd_ast.loc * (string * Atd_ast.type_param * Atd_ast.annot) *
Atd_ast.type_expr
and type_param = string list
and type_expr =
[ `List of Atd_ast.loc * Atd_ast.type_expr * Atd_ast.annot
| `Name of Atd_ast.loc * Atd_ast.type_inst * Atd_ast.annot
| `Option of Atd_ast.loc * Atd_ast.type_expr * Atd_ast.annot
| `Record of Atd_ast.loc * Atd_ast.field list * Atd_ast.annot
| `Shared of Atd_ast.loc * Atd_ast.type_expr * Atd_ast.annot
| `Sum of Atd_ast.loc * Atd_ast.variant list * Atd_ast.annot
| `Tuple of Atd_ast.loc * Atd_ast.cell list * Atd_ast.annot
| `Tvar of Atd_ast.loc * string ]
and type_inst = Atd_ast.loc * string * Atd_ast.type_expr list
and variant =
[ `Inherit of Atd_ast.loc * Atd_ast.type_expr
| `Variant of
Atd_ast.loc * (string * Atd_ast.annot) * Atd_ast.type_expr option ]
and cell = Atd_ast.loc * Atd_ast.type_expr * Atd_ast.annot
and field_kind = [ `Optional | `Required | `With_default ]
and field =
[ `Field of
Atd_ast.loc * (string * Atd_ast.field_kind * Atd_ast.annot) *
Atd_ast.type_expr
| `Inherit of Atd_ast.loc * Atd_ast.type_expr ]
val loc_of_type_expr : Atd_ast.type_expr -> Atd_ast.loc
val set_type_expr_loc :
Atd_ast.loc -> Atd_ast.type_expr -> Atd_ast.type_expr
val string_of_loc : Atd_ast.loc -> string
val error : string -> 'a
val error_at : Atd_ast.loc -> string -> 'a
val dummy_loc : Atd_ast.loc
val annot_of_type_expr : Atd_ast.type_expr -> Atd_ast.annot
val map_annot :
(Atd_ast.annot -> Atd_ast.annot) ->
Atd_ast.type_expr -> Atd_ast.type_expr
val fold : (Atd_ast.type_expr -> 'a -> 'a) -> Atd_ast.type_expr -> 'a -> 'a
val extract_type_names :
?ignorable:string list -> Atd_ast.type_expr -> string list
val is_parametrized : Atd_ast.type_expr -> bool
end