Module Nativevalues
val t_eq : (t, t -> t) eqWhen -rectypes, matching on this makes
t = ('a -> 'a) as 'a. When not -rectypes, it does nothing AFAICT so you have to generalize your problem to use this.
type accumulatortype tag= inttype arity= inttype reloc_table= (tag * arity) arraytype annot_sw={asw_ind : Names.inductive;asw_reloc : reloc_table;asw_finite : bool;asw_prefix : string;}
type vcofixtype atom=|Arel of int|Aconstant of Constr.pconstant|Aind of Constr.pinductive|Asort of Sorts.t|Avar of Names.Id.t|Acase of annot_sw * accumulator * t * t|Afix of t array * t array * rec_pos * int|Acofix of t array * t array * int * vcofix|Aevar of Evar.t * t array|Aproj of Names.inductive * int * accumulatortype symbol=|SymbValue of t|SymbSort of Sorts.t|SymbName of Names.Name.t|SymbConst of Names.Constant.t|SymbMatch of annot_sw|SymbInd of Names.inductive|SymbEvar of Evar.t|SymbInstance of UVars.Instance.t|SymbProj of Names.inductive * inttype symbols= symbol array
val empty_symbols : symbolsval mk_accu : atom -> tval mk_rel_accu : int -> tval mk_rels_accu : int -> int -> t arrayval mk_constant_accu : Names.Constant.t -> UVars.Instance.t -> tval mk_ind_accu : Names.inductive -> UVars.Instance.t -> tval mk_sort_accu : Sorts.t -> UVars.Instance.t -> tval mk_var_accu : Names.Id.t -> tval mk_sw_accu : annot_sw -> accumulator -> t -> t -> tval mk_fix_accu : rec_pos -> int -> t array -> t array -> tval mk_cofix_accu : int -> t array -> t array -> tval mk_evar_accu : Evar.t -> t array -> tval mk_proj_accu : (Names.inductive * int) -> accumulator -> tval upd_cofix : t -> t -> unitval force_cofix : t -> tval mk_const : tag -> tval mk_block : tag -> t array -> tval mk_prod : Names.Name.t -> t -> t -> tval mk_bool : bool -> tval mk_int : int -> tval mk_uint : Uint63.t -> tval mk_float : Float64.t -> tval napply : t -> t array -> tval dummy_value : unit -> tval atom_of_accu : accumulator -> atomval args_of_accu : accumulator -> t listval accu_nargs : accumulator -> intval cast_accu : t -> accumulator
type kind= (t, accumulator, t -> t, Names.Name.t * t * t, Util.Empty.t, Util.Empty.t, block) Values.kind
val val_to_int : t -> intval is_int : t -> boolval head0 : t -> t -> tval tail0 : t -> t -> tval add : t -> t -> t -> tval sub : t -> t -> t -> tval mul : t -> t -> t -> tval div : t -> t -> t -> tval rem : t -> t -> t -> tval divs : t -> t -> t -> tval rems : t -> t -> t -> tval l_sr : t -> t -> t -> tval l_sl : t -> t -> t -> tval a_sr : t -> t -> t -> tval l_and : t -> t -> t -> tval l_xor : t -> t -> t -> tval l_or : t -> t -> t -> tval addc : t -> t -> t -> tval subc : t -> t -> t -> tval addCarryC : t -> t -> t -> tval subCarryC : t -> t -> t -> tval mulc : t -> t -> t -> tval diveucl : t -> t -> t -> tval div21 : t -> t -> t -> t -> tval addMulDiv : t -> t -> t -> t -> tval eq : t -> t -> t -> tval lt : t -> t -> t -> tval le : t -> t -> t -> tval lts : t -> t -> t -> tval les : t -> t -> t -> tval compare : t -> t -> t -> tval compares : t -> t -> t -> tval print : t -> tval no_check_head0 : t -> tval no_check_tail0 : t -> tval no_check_add : t -> t -> tval no_check_sub : t -> t -> tval no_check_mul : t -> t -> tval no_check_div : t -> t -> tval no_check_rem : t -> t -> tval no_check_divs : t -> t -> tval no_check_rems : t -> t -> tval no_check_l_sr : t -> t -> tval no_check_l_sl : t -> t -> tval no_check_a_sr : t -> t -> tval no_check_l_and : t -> t -> tval no_check_l_xor : t -> t -> tval no_check_l_or : t -> t -> tval no_check_addc : t -> t -> tval no_check_subc : t -> t -> tval no_check_addCarryC : t -> t -> tval no_check_subCarryC : t -> t -> tval no_check_mulc : t -> t -> tval no_check_diveucl : t -> t -> tval no_check_div21 : t -> t -> t -> tval no_check_addMulDiv : t -> t -> t -> tval no_check_eq : t -> t -> tval no_check_lt : t -> t -> tval no_check_le : t -> t -> tval no_check_lts : t -> t -> tval no_check_les : t -> t -> tval no_check_compare : t -> t -> tval no_check_compares : t -> t -> t
val is_float : t -> boolval fopp : t -> t -> tval fabs : t -> t -> tval feq : t -> t -> t -> tval flt : t -> t -> t -> tval fle : t -> t -> t -> tval fcompare : t -> t -> t -> tval fequal : t -> t -> t -> tval fclassify : t -> t -> tval fadd : t -> t -> t -> tval fsub : t -> t -> t -> tval fmul : t -> t -> t -> tval fdiv : t -> t -> t -> tval fsqrt : t -> t -> tval float_of_int : t -> t -> tval normfr_mantissa : t -> t -> tval frshiftexp : t -> t -> tval ldshiftexp : t -> t -> t -> tval next_up : t -> t -> tval next_down : t -> t -> tval no_check_fopp : t -> tval no_check_fabs : t -> tval no_check_feq : t -> t -> tval no_check_flt : t -> t -> tval no_check_fle : t -> t -> tval no_check_fcompare : t -> t -> tval no_check_fequal : t -> t -> tval no_check_fclassify : t -> tval no_check_fadd : t -> t -> tval no_check_fsub : t -> t -> tval no_check_fmul : t -> t -> tval no_check_fdiv : t -> t -> tval no_check_fsqrt : t -> tval no_check_float_of_int : t -> tval no_check_normfr_mantissa : t -> tval no_check_frshiftexp : t -> tval no_check_ldshiftexp : t -> t -> tval no_check_next_up : t -> tval no_check_next_down : t -> t
val parray_of_array : t -> t -> tval is_parray : t -> boolval arraymake : t -> t -> t -> t -> tval arrayget : t -> t -> t -> t -> tval arraydefault : t -> t -> t -> tval arrayset : t -> t -> t -> t -> t -> tval arraycopy : t -> t -> t -> tval arraylength : t -> t -> t -> tval no_check_arraymake : t -> t -> tval no_check_arrayget : t -> t -> tval no_check_arraydefault : t -> tval no_check_arrayset : t -> t -> t -> tval no_check_arraycopy : t -> tval no_check_arraylength : t -> t