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
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_int 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 Merlin_utils.Format_doc.formatter -> unit| Oval_record 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_variant of string * Ocaml_typing.Outcometree.out_value option| Oval_lazy of Ocaml_typing.Outcometree.out_value| Oval_floatarray of floatarray
type out_type_param = {ot_non_gen : bool;ot_name : string;ot_variance : Ocaml_parsing.Asttypes.variance * Ocaml_parsing.Asttypes.injectivity;
}type out_type = | Otyp_abstract| Otyp_open| Otyp_alias of {non_gen : bool;aliased : Ocaml_typing.Outcometree.out_type;alias : string;
}| Otyp_arrow of Ocaml_parsing.Asttypes.arg_label * Ocaml_typing.Outcometree.out_type * Ocaml_typing.Outcometree.out_type| 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 Ocaml_typing.Outcometree.out_label 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_var of bool * string| Otyp_variant of Ocaml_typing.Outcometree.out_variant * bool * string list option| Otyp_poly of string list * Ocaml_typing.Outcometree.out_type| Otyp_module of Ocaml_typing.Outcometree.out_package| Otyp_attribute of Ocaml_typing.Outcometree.out_type * Ocaml_typing.Outcometree.out_attribute
and out_label = {olab_name : string;olab_mut : Ocaml_parsing.Asttypes.mutable_flag;olab_atomic : Ocaml_parsing.Asttypes.atomic_flag;olab_type : Ocaml_typing.Outcometree.out_type;
}and out_constructor = {ocstr_name : string;ocstr_args : Ocaml_typing.Outcometree.out_type list;ocstr_return_type : Ocaml_typing.Outcometree.out_type option;
}and out_package = {opack_path : Ocaml_typing.Outcometree.out_ident;opack_cstrs : (string * Ocaml_typing.Outcometree.out_type) list;
}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_parsing.Asttypes.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
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_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_immediate : Ocaml_typing.Type_immediacy.t;otype_unboxed : bool;otype_cstrs : (Ocaml_typing.Outcometree.out_type * Ocaml_typing.Outcometree.out_type) list;
}and out_extension_constructor = {oext_name : string;oext_type_name : string;oext_type_params : string list;oext_args : Ocaml_typing.Outcometree.out_type list;oext_ret_type : 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_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