Module Flambda2_parser.Fexpr
type location = Lambda.scoped_locationtype variable = string locatedtype continuation_id = string locatedtype code_id = string locatedtype function_slot = string locatedtype value_slot = string locatedtype symbol = (compilation_unit option * string) locatedtype const = | Naked_immediate of immediate| Tagged_immediate of immediate| Naked_float32 of float| Naked_float of float| Naked_int8 of Flambda2_numbers.Numeric_types.Int8.t| Naked_int16 of Flambda2_numbers.Numeric_types.Int16.t| Naked_int32 of int32| Naked_int64 of int64| Naked_vec128 of Flambda2_numbers.Vector_types.Vec128.Bit_pattern.bits| Naked_vec256 of Flambda2_numbers.Vector_types.Vec256.Bit_pattern.bits| Naked_vec512 of Flambda2_numbers.Vector_types.Vec512.Bit_pattern.bits| Naked_nativeint of targetint| Null
type empty_array_kind = Flambda2_term_basics.Empty_array_kind.ttype static_data = | Block of {tag : tag_scannable;mutability : mutability;elements : field_of_block list;
}| Boxed_float32 of float or_variable| Boxed_float of float or_variable| Boxed_int32 of int32 or_variable| Boxed_int64 of int64 or_variable| Boxed_nativeint of targetint or_variable| Boxed_vec128 of Flambda2_numbers.Vector_types.Vec128.Bit_pattern.bits or_variable| Boxed_vec256 of Flambda2_numbers.Vector_types.Vec256.Bit_pattern.bits or_variable| Boxed_vec512 of Flambda2_numbers.Vector_types.Vec512.Bit_pattern.bits or_variable| Immutable_float_block of float or_variable list| Immutable_float_array of float or_variable list| Immutable_value_array of field_of_block list| Empty_array of empty_array_kind| Mutable_string of {}| Immutable_string of string
type subkind = | Anything| Boxed_float32| Boxed_float| Boxed_int32| Boxed_int64| Boxed_nativeint| Boxed_vec128| Boxed_vec256| Boxed_vec512| Tagged_immediate| Variant of {consts : targetint list;non_consts : (tag_scannable * kind_with_subkind list) list;
}| Float_block of {}| Float_array| Immediate_array| Value_array| Generic_array
and kind_with_subkind = | Value of subkind| Naked_number of Flambda2_kinds.Flambda_kind.Naked_number_kind.t| Region| Rec_info
type trap_action = | Push of {exn_handler : continuation;
}| Pop of {exn_handler : continuation;raise_kind : raise_kind option;
}
type cont_extra_arg = simple * kind_with_subkindtype arity = kind_with_subkind listtype function_call = | Direct of {code_id : code_id;function_slot : function_slot option;
}| Indirect
type inline_attribute = Flambda2_terms.Inline_attribute.t = type loopify_attribute = Flambda2_terms.Loopify_attribute.t = type apply = {func : simple option;continuation : result_continuation;exn_continuation : continuation * cont_extra_arg list;args : simple list;call_kind : call_kind;alloc_mode : alloc_mode_for_applications;arities : function_arities option;inlined : inlined_attribute option;inlining_state : inlining_state option;
}type expr = | Let of let_| Let_cont of let_cont| Let_symbol of let_symbol| Apply of apply| Apply_cont of apply_cont| Switch of {scrutinee : simple;cases : (int * apply_or_inlined_cont) list;
}| Invalid of {}
and value_slots = one_value_slot listand fun_decl = {code_id : code_id;function_slot : function_slot option;alloc : alloc_mode_for_allocations;
}and continuation_binding = {name : continuation_id;params : kinded_parameter list;sort : continuation_sort option;handler : expr;
}and symbol_binding = | Data of static_data_binding| Code of code| Deleted_code of code_id| Closure of static_closure_binding| Set_of_closures of static_set_of_closures
and static_set_of_closures = {bindings : static_closure_binding list;elements : value_slots option;
}and code = {id : code_id;newer_version_of : code_id option;param_arity : arity option;ret_arity : arity option;recursive : is_recursive;inline : inline_attribute option;params_and_body : params_and_body;code_size : code_size;is_tupled : bool;stub : bool;loopify : loopify_attribute option;result_mode : alloc_mode_for_assignments;
}and params_and_body = {params : kinded_parameter list;closure_var : variable;region_var : variable;ghost_region_var : variable;depth_var : variable;ret_cont : continuation_id;exn_cont : continuation_id;body : expr;
}