val of_fun : (t -> t) -> ttype ('a, 'b) eq = ('a, 'b) Util.eq = 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 sort_annot = string * intval mk_rel_accu : int -> tval mk_rels_accu : int -> int -> t arrayval 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 upd_cofix : t -> t -> unitval mk_block : tag -> t array -> tval napply : t -> t array -> tval dummy_value : unit -> tval block_size : block -> intval block_field : block -> int -> tval block_tag : block -> intval kind_of_value : t -> kindval str_encode : 'a -> stringval str_decode : string -> 'aSupport for machine integers
val val_to_int : t -> intval 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 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 -> tSupport for machine floating point values
val 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 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 -> tSupport for strings
val is_string : t -> boolval no_check_string_make : t -> t -> tval no_check_string_length : t -> tval no_check_string_get : t -> t -> tval no_check_string_sub : t -> t -> t -> tval no_check_string_cat : t -> t -> tval no_check_string_compare : t -> t -> tval string_make : t -> t -> t -> tval string_length : t -> t -> tval string_get : t -> t -> t -> tval string_sub : t -> t -> t -> t -> tval string_cat : t -> t -> t -> tval string_compare : t -> t -> t -> tSupport for arrays
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