NativevaluesThis modules defines the representation of values internally used by the native compiler. Be careful when removing apparently dead code from this interface, as it may be used by programs generated at runtime.
When -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 annot_sw = {asw_ind : Names.inductive; |
asw_ci : Constr.case_info; |
asw_reloc : reloc_table; |
asw_finite : bool; |
asw_prefix : string; |
}val hash_annot_sw : annot_sw -> inttype 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 * accumulator |
type 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 |
| SymbLevel of Univ.Level.t |
| SymbProj of Names.inductive * int |
type symbols = symbol arrayval empty_symbols : symbolsval mk_rel_accu : int -> tval mk_rels_accu : int -> int -> t arrayval mk_constant_accu : Names.Constant.t -> Univ.Level.t array -> tval mk_ind_accu : Names.inductive -> Univ.Level.t array -> tval mk_sort_accu : Sorts.t -> Univ.Level.t array -> tval mk_var_accu : Names.Id.t -> tval mk_sw_accu : annot_sw -> accumulator -> t -> t -> tval mk_proj_accu : (Names.inductive * int) -> accumulator -> tval mk_prod : Names.Name.t -> t -> t -> tval mk_bool : bool -> tval mk_int : int -> tval dummy_value : unit -> tval atom_of_accu : accumulator -> atomval args_of_accu : accumulator -> t arrayval accu_nargs : accumulator -> intval cast_accu : t -> accumulatorval block_size : block -> intval block_tag : block -> inttype kind = (t, accumulator, t -> t, Names.Name.t * t * t, Util.Empty.t, Util.Empty.t, block) Values.kindSupport for machine integers
val val_to_int : t -> intval is_int : t -> boolSupport for machine floating point values
val is_float : t -> boolSupport for arrays
val is_parray : t -> bool