Module Outcometree

type out_name = {
  1. mutable printed_name : string;
}

An out_name is a string representation of an identifier which can be rewritten on the fly to avoid name collisions

type out_ident =
  1. | Oide_apply of out_ident * out_ident
  2. | Oide_dot of out_ident * string
  3. | Oide_ident of out_name
type out_string =
  1. | Ostr_string
  2. | Ostr_bytes
type out_attribute = {
  1. oattr_name : string;
}
type out_value =
  1. | Oval_array of out_value list
  2. | Oval_char of char
  3. | Oval_constr of out_ident * out_value list
  4. | Oval_ellipsis
  5. | Oval_float of float
  6. | Oval_int of int
  7. | Oval_int32 of int32
  8. | Oval_int64 of int64
  9. | Oval_nativeint of nativeint
  10. | Oval_list of out_value list
  11. | Oval_printer of Format.formatter -> unit
  12. | Oval_record of (out_ident * out_value) list
  13. | Oval_string of string * int * out_string
  14. | Oval_stuff of string
  15. | Oval_tuple of out_value list
  16. | Oval_variant of string * out_value option
type out_type_param = string * (Asttypes.variance * Asttypes.injectivity)
type out_type =
  1. | Otyp_abstract
  2. | Otyp_open
  3. | Otyp_alias of {
    1. non_gen : bool;
    2. aliased : out_type;
    3. alias : string;
    }
  4. | Otyp_arrow of string * out_type * out_type
  5. | Otyp_class of out_ident * out_type list
  6. | Otyp_constr of out_ident * out_type list
  7. | Otyp_manifest of out_type * out_type
  8. | Otyp_object of {
    1. fields : (string * out_type) list;
    2. open_row : bool;
    }
  9. | Otyp_record of (string * bool * out_type) list
  10. | Otyp_stuff of string
  11. | Otyp_sum of out_constructor list
  12. | Otyp_tuple of out_type list
  13. | Otyp_var of bool * string
  14. | Otyp_variant of out_variant * bool * string list option
  15. | Otyp_poly of string list * out_type
  16. | Otyp_module of out_ident * (string * out_type) list
  17. | Otyp_attribute of out_type * out_attribute
and out_constructor = {
  1. ocstr_name : string;
  2. ocstr_args : out_type list;
  3. ocstr_return_type : out_type option;
}
and out_variant =
  1. | Ovar_fields of (string * bool * out_type list) list
  2. | Ovar_typ of out_type
type out_class_type =
  1. | Octy_constr of out_ident * out_type list
  2. | Octy_arrow of string * out_type * out_class_type
  3. | Octy_signature of out_type option * out_class_sig_item list
and out_class_sig_item =
  1. | Ocsg_constraint of out_type * out_type
  2. | Ocsg_method of string * bool * bool * out_type
  3. | Ocsg_value of string * bool * bool * out_type
type out_module_type =
  1. | Omty_abstract
  2. | Omty_functor of (string option * out_module_type) option * out_module_type
  3. | Omty_ident of out_ident
  4. | Omty_signature of out_sig_item list
  5. | Omty_alias of out_ident
and out_sig_item =
  1. | Osig_class of bool * string * out_type_param list * out_class_type * out_rec_status
  2. | Osig_class_type of bool * string * out_type_param list * out_class_type * out_rec_status
  3. | Osig_typext of out_extension_constructor * out_ext_status
  4. | Osig_modtype of string * out_module_type
  5. | Osig_module of string * out_module_type * out_rec_status
  6. | Osig_type of out_type_decl * out_rec_status
  7. | Osig_value of out_val_decl
  8. | Osig_ellipsis
and out_type_decl = {
  1. otype_name : string;
  2. otype_params : out_type_param list;
  3. otype_type : out_type;
  4. otype_private : Asttypes.private_flag;
  5. otype_immediate : Type_immediacy.t;
  6. otype_unboxed : bool;
  7. otype_cstrs : (out_type * out_type) list;
}
and out_extension_constructor = {
  1. oext_name : string;
  2. oext_type_name : string;
  3. oext_type_params : string list;
  4. oext_args : out_type list;
  5. oext_ret_type : out_type option;
  6. oext_private : Asttypes.private_flag;
}
and out_type_extension = {
  1. otyext_name : string;
  2. otyext_params : string list;
  3. otyext_constructors : out_constructor list;
  4. otyext_private : Asttypes.private_flag;
}
and out_val_decl = {
  1. oval_name : string;
  2. oval_type : out_type;
  3. oval_prims : string list;
  4. oval_attributes : out_attribute list;
}
and out_rec_status =
  1. | Orec_not
  2. | Orec_first
  3. | Orec_next
and out_ext_status =
  1. | Oext_first
  2. | Oext_next
  3. | Oext_exception
type out_phrase =
  1. | Ophr_eval of out_value * out_type
  2. | Ophr_signature of (out_sig_item * out_value option) list
  3. | Ophr_exception of exn * out_value