type function_label = stringtype ustructured_constant =| Uconst_float of float| Uconst_int32 of int32| Uconst_int64 of int64| Uconst_nativeint of nativeint| Uconst_block of int * uconstant list| Uconst_float_array of float list| Uconst_string of string| Uconst_closure of ufunction list * string * uconstant listand uconstant =| Uconst_ref of string * ustructured_constant option| Uconst_int of int| Uconst_ptr of intand uphantom_defining_expr =| Uphantom_const of uconstantThe phantom-let-bound variable is a constant.
| Uphantom_var of Backend_var.tThe phantom-let-bound variable is an alias for another variable.
| Uphantom_offset_var of {var : Backend_var.t;offset_in_words : int;}The phantom-let-bound-variable's value is defined by adding the given number of words to the pointer contained in the given identifier.
| Uphantom_read_field of {var : Backend_var.t;field : int;}The phantom-let-bound-variable's value is found by adding the given number of words to the pointer contained in the given identifier, then dereferencing.
| Uphantom_read_symbol_field of {sym : string;field : int;}As for
Uphantom_read_var_field, but with the pointer specified by a symbol.| Uphantom_block of {tag : int;fields : Backend_var.t list;}The phantom-let-bound variable points at a block with the given structure.
and ulambda =and ufunction = {label : function_label;arity : int;params : (Backend_var.With_provenance.t * Lambda.value_kind) list;return : Lambda.value_kind;body : ulambda;dbg : Debuginfo.t;env : Backend_var.t option;}and ulambda_switch = {us_index_consts : int array;us_actions_consts : ulambda array;us_index_blocks : int array;us_actions_blocks : ulambda array;}type function_description = {fun_label : function_label;fun_arity : int;mutable fun_closed : bool;mutable fun_inline : (Backend_var.With_provenance.t list * ulambda) option;mutable fun_float_const_prop : bool;}type value_approximation =| Value_closure of function_description * value_approximation| Value_tuple of value_approximation array| Value_unknown| Value_const of uconstant| Value_global_field of string * int
val compare_structured_constants : ustructured_constant -> ustructured_constant -> intval compare_constants : uconstant -> uconstant -> int
type usymbol_provenance = {original_idents : Ident.t list;module_path : Path.t;}type uconstant_block_field =| Uconst_field_ref of string| Uconst_field_int of inttype preallocated_block = {symbol : string;exported : bool;tag : int;fields : uconstant_block_field option list;provenance : usymbol_provenance option;}type preallocated_constant = {symbol : string;exported : bool;definition : ustructured_constant;provenance : usymbol_provenance option;}