diff options
Diffstat (limited to 'typing/types.mli')
-rw-r--r-- | typing/types.mli | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/typing/types.mli b/typing/types.mli index 9ba94fdd55..4e9ab98d6b 100644 --- a/typing/types.mli +++ b/typing/types.mli @@ -161,18 +161,21 @@ type class_type = and class_signature = { cty_self: type_expr; cty_vars: (Asttypes.mutable_flag * type_expr) Vars.t; - cty_concr: Concr.t } + cty_concr: Concr.t; + cty_inher: (Path.t * type_expr list) list } type class_declaration = { cty_params: type_expr list; mutable cty_type: class_type; cty_path: Path.t; - cty_new: type_expr option } + cty_new: type_expr option; + cty_variance: (bool * bool) list } type cltype_declaration = { clty_params: type_expr list; clty_type: class_type; - clty_path: Path.t } + clty_path: Path.t; + clty_variance: (bool * bool) list } (* Type expressions for the module language *) @@ -185,13 +188,18 @@ and signature = signature_item list and signature_item = Tsig_value of Ident.t * value_description - | Tsig_type of Ident.t * type_declaration + | Tsig_type of Ident.t * type_declaration * rec_status | Tsig_exception of Ident.t * exception_declaration - | Tsig_module of Ident.t * module_type + | Tsig_module of Ident.t * module_type * rec_status | Tsig_modtype of Ident.t * modtype_declaration - | Tsig_class of Ident.t * class_declaration - | Tsig_cltype of Ident.t * cltype_declaration + | Tsig_class of Ident.t * class_declaration * rec_status + | Tsig_cltype of Ident.t * cltype_declaration * rec_status and modtype_declaration = Tmodtype_abstract | Tmodtype_manifest of module_type + +and rec_status = + Trec_not (* not recursive *) + | Trec_first (* first in a recursive group *) + | Trec_next (* not first in a recursive group *) |