jon.recoil.org

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 Outcometree.out_ident * Outcometree.out_ident
  2. | Oide_dot of Outcometree.out_ident * string
  3. | Oide_ident of Outcometree.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 Outcometree.out_value list * Asttypes.mutable_flag
  2. | Oval_char of char
  3. | Oval_constr of Outcometree.out_ident * Outcometree.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 Outcometree.out_value list
  11. | Oval_printer of Format_doc.formatter -> unit
  12. | Oval_record of (Outcometree.out_ident * Outcometree.out_value) list
  13. | Oval_string of string * int * Outcometree.out_string
  14. | Oval_stuff of string
  15. | Oval_tuple of (string option * Outcometree.out_value) list
  16. | Oval_variant of string * Outcometree.out_value option
  17. | Oval_lazy of Outcometree.out_value
  18. | Oval_floatarray of floatarray
type out_type_param = {
  1. ot_non_gen : bool;
  2. ot_name : string;
  3. ot_variance : Asttypes.variance * Asttypes.injectivity;
}
type out_type =
  1. | Otyp_abstract
  2. | Otyp_open
  3. | Otyp_alias of {
    1. non_gen : bool;
    2. aliased : Outcometree.out_type;
    3. alias : string;
    }
  4. | Otyp_arrow of Asttypes.arg_label * Outcometree.out_type * Outcometree.out_type
  5. | Otyp_class of Outcometree.out_ident * Outcometree.out_type list
  6. | Otyp_constr of Outcometree.out_ident * Outcometree.out_type list
  7. | Otyp_manifest of Outcometree.out_type * Outcometree.out_type
  8. | Otyp_object of {
    1. fields : (string * Outcometree.out_type) list;
    2. open_row : bool;
    }
  9. | Otyp_record of Outcometree.out_label list
  10. | Otyp_stuff of string
  11. | Otyp_sum of Outcometree.out_constructor list
  12. | Otyp_tuple of (string option * Outcometree.out_type) list
  13. | Otyp_var of bool * string
  14. | Otyp_variant of Outcometree.out_variant * bool * string list option
  15. | Otyp_poly of string list * Outcometree.out_type
  16. | Otyp_module of Outcometree.out_package
  17. | Otyp_attribute of Outcometree.out_type * Outcometree.out_attribute
and out_label = {
  1. olab_name : string;
  2. olab_mut : Asttypes.mutable_flag;
  3. olab_atomic : Asttypes.atomic_flag;
  4. olab_type : Outcometree.out_type;
}
and out_constructor = {
  1. ocstr_name : string;
  2. ocstr_args : Outcometree.out_type list;
  3. ocstr_return_type : Outcometree.out_type option;
}
and out_package = {
  1. opack_path : Outcometree.out_ident;
  2. opack_cstrs : (string * Outcometree.out_type) list;
}
and out_variant =
  1. | Ovar_fields of (string * bool * Outcometree.out_type list) list
  2. | Ovar_typ of Outcometree.out_type
type out_class_type =
  1. | Octy_constr of Outcometree.out_ident * Outcometree.out_type list
  2. | Octy_arrow of Asttypes.arg_label * Outcometree.out_type * Outcometree.out_class_type
  3. | Octy_signature of Outcometree.out_type option * Outcometree.out_class_sig_item list
and out_class_sig_item =
  1. | Ocsg_constraint of Outcometree.out_type * Outcometree.out_type
  2. | Ocsg_method of string * bool * bool * Outcometree.out_type
  3. | Ocsg_value of string * bool * bool * Outcometree.out_type
type out_module_type =
  1. | Omty_abstract
  2. | Omty_functor of (string option * Outcometree.out_module_type) option * Outcometree.out_module_type
  3. | Omty_ident of Outcometree.out_ident
  4. | Omty_signature of Outcometree.out_sig_item list
  5. | Omty_alias of Outcometree.out_ident
and out_type_decl = {
  1. otype_name : string;
  2. otype_params : Outcometree.out_type_param list;
  3. otype_type : Outcometree.out_type;
  4. otype_private : Asttypes.private_flag;
  5. otype_immediate : Type_immediacy.t;
  6. otype_unboxed : bool;
  7. otype_cstrs : (Outcometree.out_type * Outcometree.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 : Outcometree.out_type list;
  5. oext_ret_type : Outcometree.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 : Outcometree.out_constructor list;
  4. otyext_private : Asttypes.private_flag;
}
and out_val_decl = {
  1. oval_name : string;
  2. oval_type : Outcometree.out_type;
  3. oval_prims : string list;
  4. oval_attributes : Outcometree.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 Outcometree.out_value * Outcometree.out_type
  2. | Ophr_signature of (Outcometree.out_sig_item * Outcometree.out_value option) list
  3. | Ophr_exception of exn * Outcometree.out_value