`sig
type out_ident =
Oide_apply of Ast_404.Outcometree.out_ident *
Ast_404.Outcometree.out_ident
| Oide_dot of Ast_404.Outcometree.out_ident * string
| Oide_ident of string
type out_attribute = { oattr_name : string; }
type out_value =
Oval_array of Ast_404.Outcometree.out_value list
| Oval_char of char
| Oval_constr of Ast_404.Outcometree.out_ident *
Ast_404.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 Ast_404.Outcometree.out_value list
| Oval_printer of (Format.formatter -> unit)
| Oval_record of
(Ast_404.Outcometree.out_ident * Ast_404.Outcometree.out_value) list
| Oval_string of string
| Oval_stuff of string
| Oval_tuple of Ast_404.Outcometree.out_value list
| Oval_variant of string * Ast_404.Outcometree.out_value option
type out_type =
Otyp_abstract
| Otyp_open
| Otyp_alias of Ast_404.Outcometree.out_type * string
| Otyp_arrow of string * Ast_404.Outcometree.out_type *
Ast_404.Outcometree.out_type
| Otyp_class of bool * Ast_404.Outcometree.out_ident *
Ast_404.Outcometree.out_type list
| Otyp_constr of Ast_404.Outcometree.out_ident *
Ast_404.Outcometree.out_type list
| Otyp_manifest of Ast_404.Outcometree.out_type *
Ast_404.Outcometree.out_type
| Otyp_object of (string * Ast_404.Outcometree.out_type) list *
bool option
| Otyp_record of (string * bool * Ast_404.Outcometree.out_type) list
| Otyp_stuff of string
| Otyp_sum of
(string * Ast_404.Outcometree.out_type list *
Ast_404.Outcometree.out_type option)
list
| Otyp_tuple of Ast_404.Outcometree.out_type list
| Otyp_var of bool * string
| Otyp_variant of bool * Ast_404.Outcometree.out_variant * bool *
string list option
| Otyp_poly of string list * Ast_404.Outcometree.out_type
| Otyp_module of string * string list * Ast_404.Outcometree.out_type list
| Otyp_attribute of Ast_404.Outcometree.out_type *
Ast_404.Outcometree.out_attribute
and out_variant =
Ovar_fields of (string * bool * Ast_404.Outcometree.out_type list) list
| Ovar_name of Ast_404.Outcometree.out_ident *
Ast_404.Outcometree.out_type list
type out_class_type =
Octy_constr of Ast_404.Outcometree.out_ident *
Ast_404.Outcometree.out_type list
| Octy_arrow of string * Ast_404.Outcometree.out_type *
Ast_404.Outcometree.out_class_type
| Octy_signature of Ast_404.Outcometree.out_type option *
Ast_404.Outcometree.out_class_sig_item list
and out_class_sig_item =
Ocsg_constraint of Ast_404.Outcometree.out_type *
Ast_404.Outcometree.out_type
| Ocsg_method of string * bool * bool * Ast_404.Outcometree.out_type
| Ocsg_value of string * bool * bool * Ast_404.Outcometree.out_type
type out_module_type =
Omty_abstract
| Omty_functor of string * Ast_404.Outcometree.out_module_type option *
Ast_404.Outcometree.out_module_type
| Omty_ident of Ast_404.Outcometree.out_ident
| Omty_signature of Ast_404.Outcometree.out_sig_item list
| Omty_alias of Ast_404.Outcometree.out_ident
and out_sig_item =
Osig_class of bool * string * (string * (bool * bool)) list *
Ast_404.Outcometree.out_class_type *
Ast_404.Outcometree.out_rec_status
| Osig_class_type of bool * string * (string * (bool * bool)) list *
Ast_404.Outcometree.out_class_type *
Ast_404.Outcometree.out_rec_status
| Osig_typext of Ast_404.Outcometree.out_extension_constructor *
Ast_404.Outcometree.out_ext_status
| Osig_modtype of string * Ast_404.Outcometree.out_module_type
| Osig_module of string * Ast_404.Outcometree.out_module_type *
Ast_404.Outcometree.out_rec_status
| Osig_type of Ast_404.Outcometree.out_type_decl *
Ast_404.Outcometree.out_rec_status
| Osig_value of Ast_404.Outcometree.out_val_decl
| Osig_ellipsis
and out_type_decl = {
otype_name : string;
otype_params : (string * (bool * bool)) list;
otype_type : Ast_404.Outcometree.out_type;
otype_private : Ast_404.Asttypes.private_flag;
otype_immediate : bool;
otype_unboxed : bool;
otype_cstrs :
(Ast_404.Outcometree.out_type * Ast_404.Outcometree.out_type) list;
}
and out_extension_constructor = {
oext_name : string;
oext_type_name : string;
oext_type_params : string list;
oext_args : Ast_404.Outcometree.out_type list;
oext_ret_type : Ast_404.Outcometree.out_type option;
oext_private : Ast_404.Asttypes.private_flag;
}
and out_type_extension = {
otyext_name : string;
otyext_params : string list;
otyext_constructors :
(string * Ast_404.Outcometree.out_type list *
Ast_404.Outcometree.out_type option)
list;
otyext_private : Ast_404.Asttypes.private_flag;
}
and out_val_decl = {
oval_name : string;
oval_type : Ast_404.Outcometree.out_type;
oval_prims : string list;
oval_attributes : Ast_404.Outcometree.out_attribute list;
}
and out_rec_status = Orec_not | Orec_first | Orec_next
and out_ext_status = Oext_first | Oext_next | Oext_exception
type out_phrase =
Ophr_eval of Ast_404.Outcometree.out_value *
Ast_404.Outcometree.out_type
| Ophr_signature of
(Ast_404.Outcometree.out_sig_item *
Ast_404.Outcometree.out_value option)
list
| Ophr_exception of (exn * Ast_404.Outcometree.out_value)
end`