Module Ocaml_typing.Outcometree
An out_name is a string representation of an identifier which can be rewritten on the fly to avoid name collisions
type out_ident = | Oide_apply of Ocaml_typing.Outcometree.out_ident * Ocaml_typing.Outcometree.out_ident| Oide_dot of Ocaml_typing.Outcometree.out_ident * string| Oide_ident of Ocaml_typing.Outcometree.out_name| Oide_hash of Ocaml_typing.Outcometree.out_ident
type out_value = | Oval_array of Ocaml_typing.Outcometree.out_value list * Ocaml_parsing.Asttypes.mutable_flag| Oval_char of char| Oval_constr of Ocaml_typing.Outcometree.out_ident * Ocaml_typing.Outcometree.out_value list| Oval_ellipsis| Oval_float of float| Oval_float32 of Stdlib.Obj.t| Oval_int of int| Oval_int8 of int| Oval_int16 of int| Oval_int32 of int32| Oval_int64 of int64| Oval_nativeint of nativeint| Oval_list of Ocaml_typing.Outcometree.out_value list| Oval_printer of Stdlib.Format.formatter -> unit| Oval_record of (Ocaml_typing.Outcometree.out_ident * Ocaml_typing.Outcometree.out_value) list| Oval_record_unboxed_product of (Ocaml_typing.Outcometree.out_ident * Ocaml_typing.Outcometree.out_value) list| Oval_string of string * int * Ocaml_typing.Outcometree.out_string| Oval_stuff of string| Oval_tuple of (string option * Ocaml_typing.Outcometree.out_value) list| Oval_unboxed_tuple of (string option * Ocaml_typing.Outcometree.out_value) list| Oval_variant of string * Ocaml_typing.Outcometree.out_value option| Oval_lazy of Ocaml_typing.Outcometree.out_value| Oval_code of Ocaml_typing.CamlinternalQuote.Code.t
type out_mutability = | Om_immutable| Om_mutable of string option * Ocaml_typing.Outcometree.out_atomicity
This definition avoids a cyclic dependency between Outcometree and Types.
type out_arg_mode = Ocaml_typing.Outcometree.out_mode listtype out_ret_mode = | Orm_any of Ocaml_typing.Outcometree.out_mode list(*The ret type could be anything, with modes annotating.
*)| Orm_no_parens(*The ret type is arrow, and no need to print parens around the arrow
*)| Orm_parens of Ocaml_typing.Outcometree.out_mode list(*The ret type is arrow, and need to print parens around the arrow, with modes annotating.
*)
type out_jkind_const = | Ojkind_const_default| Ojkind_const_abbreviation of string(*The base of
*)Ojkind_const_modis optional to enable printing individual axes| Ojkind_const_mod of Ocaml_typing.Outcometree.out_jkind_const option * string list| Ojkind_const_with of Ocaml_typing.Outcometree.out_jkind_const * Ocaml_typing.Outcometree.out_type * Ocaml_typing.Outcometree.out_modality list| Ojkind_const_kind_of of Ocaml_typing.Outcometree.out_type| Ojkind_const_product of Ocaml_typing.Outcometree.out_jkind_const list
Represents a constant jkind
and out_jkind = | Ojkind_const of Ocaml_typing.Outcometree.out_jkind_const| Ojkind_var of string| Ojkind_product of Ocaml_typing.Outcometree.out_jkind list
and out_vars_jkinds = (string * Ocaml_typing.Outcometree.out_jkind option) listand out_type_param = {ot_non_gen : bool;ot_name : string;ot_variance : Ocaml_parsing.Asttypes.variance * Ocaml_parsing.Asttypes.injectivity;ot_jkind : Ocaml_typing.Outcometree.out_jkind option;
}and out_type = | Otyp_abstract| Otyp_open| Otyp_alias of {non_gen : bool;aliased : Ocaml_typing.Outcometree.out_type;alias : string;
}| Otyp_arrow of Ocaml_typing.Outcometree.arg_label * Ocaml_typing.Outcometree.out_arg_mode * Ocaml_typing.Outcometree.out_type * Ocaml_typing.Outcometree.out_type(*INVARIANT: the
*)out_typefor the return must beOtyp_ret.| Otyp_class of Ocaml_typing.Outcometree.out_ident * Ocaml_typing.Outcometree.out_type list| Otyp_constr of Ocaml_typing.Outcometree.out_ident * Ocaml_typing.Outcometree.out_type list| Otyp_manifest of Ocaml_typing.Outcometree.out_type * Ocaml_typing.Outcometree.out_type| Otyp_object of {fields : (string * Ocaml_typing.Outcometree.out_type) list;open_row : bool;
}| Otyp_record of (string * Ocaml_typing.Outcometree.out_mutability * Ocaml_typing.Outcometree.out_type * Ocaml_typing.Outcometree.out_modality list) list| Otyp_record_unboxed_product of (string * Ocaml_typing.Outcometree.out_mutability * Ocaml_typing.Outcometree.out_type * Ocaml_typing.Outcometree.out_modality list) list| Otyp_stuff of string| Otyp_sum of Ocaml_typing.Outcometree.out_constructor list| Otyp_tuple of (string option * Ocaml_typing.Outcometree.out_type) list| Otyp_unboxed_tuple of (string option * Ocaml_typing.Outcometree.out_type) list| Otyp_var of bool * string| Otyp_variant of Ocaml_typing.Outcometree.out_variant * bool * string list option| Otyp_quote of Ocaml_typing.Outcometree.out_type| Otyp_splice of Ocaml_typing.Outcometree.out_type| Otyp_poly of Ocaml_typing.Outcometree.out_vars_jkinds * Ocaml_typing.Outcometree.out_type| Otyp_module of Ocaml_typing.Outcometree.out_ident * (string * Ocaml_typing.Outcometree.out_type) list| Otyp_attribute of Ocaml_typing.Outcometree.out_type * Ocaml_typing.Outcometree.out_attribute| Otyp_jkind_annot of Ocaml_typing.Outcometree.out_type * Ocaml_typing.Outcometree.out_jkind| Otyp_of_kind of Ocaml_typing.Outcometree.out_jkind| Otyp_ret of Ocaml_typing.Outcometree.out_ret_mode * Ocaml_typing.Outcometree.out_type(*INVARIANT: See
*)out_ret_mode.
and out_constructor = {ocstr_name : string;ocstr_args : (Ocaml_typing.Outcometree.out_type * Ocaml_typing.Outcometree.out_modality list) list;ocstr_return_type : (Ocaml_typing.Outcometree.out_vars_jkinds * Ocaml_typing.Outcometree.out_type) option;
}and out_variant = | Ovar_fields of (string * bool * Ocaml_typing.Outcometree.out_type list) list| Ovar_typ of Ocaml_typing.Outcometree.out_type
type out_class_type = | Octy_constr of Ocaml_typing.Outcometree.out_ident * Ocaml_typing.Outcometree.out_type list| Octy_arrow of Ocaml_typing.Outcometree.arg_label * Ocaml_typing.Outcometree.out_type * Ocaml_typing.Outcometree.out_class_type| Octy_signature of Ocaml_typing.Outcometree.out_type option * Ocaml_typing.Outcometree.out_class_sig_item list
and out_class_sig_item = | Ocsg_constraint of Ocaml_typing.Outcometree.out_type * Ocaml_typing.Outcometree.out_type| Ocsg_method of string * bool * bool * Ocaml_typing.Outcometree.out_type| Ocsg_value of string * bool * bool * Ocaml_typing.Outcometree.out_type
type out_module_type = | Omty_abstract| Omty_functor of (string option * Ocaml_typing.Outcometree.out_module_type) option * Ocaml_typing.Outcometree.out_module_type| Omty_ident of Ocaml_typing.Outcometree.out_ident| Omty_signature of Ocaml_typing.Outcometree.out_sig_item list| Omty_alias of Ocaml_typing.Outcometree.out_ident| Omty_hole| Omty_strengthen of Ocaml_typing.Outcometree.out_module_type * Ocaml_typing.Outcometree.out_ident * bool
and out_sig_item = | Osig_class of bool * string * Ocaml_typing.Outcometree.out_type_param list * Ocaml_typing.Outcometree.out_class_type * Ocaml_typing.Outcometree.out_rec_status| Osig_class_type of bool * string * Ocaml_typing.Outcometree.out_type_param list * Ocaml_typing.Outcometree.out_class_type * Ocaml_typing.Outcometree.out_rec_status| Osig_typext of Ocaml_typing.Outcometree.out_extension_constructor * Ocaml_typing.Outcometree.out_ext_status| Osig_modtype of string * Ocaml_typing.Outcometree.out_module_type| Osig_module of string * Ocaml_typing.Outcometree.out_module_type * Ocaml_typing.Outcometree.out_modality list * Ocaml_typing.Outcometree.out_rec_status| Osig_type of Ocaml_typing.Outcometree.out_type_decl * Ocaml_typing.Outcometree.out_rec_status| Osig_value of Ocaml_typing.Outcometree.out_val_decl| Osig_ellipsis
and out_type_decl = {otype_name : string;otype_params : Ocaml_typing.Outcometree.out_type_param list;otype_type : Ocaml_typing.Outcometree.out_type;otype_private : Ocaml_parsing.Asttypes.private_flag;otype_jkind : Ocaml_typing.Outcometree.out_jkind option;otype_unboxed : bool;otype_or_null_reexport : bool;otype_cstrs : (Ocaml_typing.Outcometree.out_type * Ocaml_typing.Outcometree.out_type) list;otype_attributes : Ocaml_typing.Outcometree.out_attribute list;
}and out_extension_constructor = {oext_name : string;oext_type_name : string;oext_type_params : string list;oext_args : (Ocaml_typing.Outcometree.out_type * Ocaml_typing.Outcometree.out_modality list) list;oext_ret_type : (Ocaml_typing.Outcometree.out_vars_jkinds * Ocaml_typing.Outcometree.out_type) option;oext_private : Ocaml_parsing.Asttypes.private_flag;
}and out_type_extension = {otyext_name : string;otyext_params : string list;otyext_constructors : Ocaml_typing.Outcometree.out_constructor list;otyext_private : Ocaml_parsing.Asttypes.private_flag;
}and out_val_decl = {oval_name : string;oval_type : Ocaml_typing.Outcometree.out_type;oval_modalities : Ocaml_typing.Outcometree.out_modality list;oval_prims : string list;oval_attributes : Ocaml_typing.Outcometree.out_attribute list;
}type out_phrase = | Ophr_eval of Ocaml_typing.Outcometree.out_value * Ocaml_typing.Outcometree.out_type| Ophr_signature of (Ocaml_typing.Outcometree.out_sig_item * Ocaml_typing.Outcometree.out_value option) list| Ophr_exception of exn * Ocaml_typing.Outcometree.out_value