Primitive
type native_repr =
| Same_as_ocaml_repr |
| Unboxed_float |
| Unboxed_integer of boxed_integer |
| Untagged_int |
type description = private {
prim_name : string; |
prim_arity : int; |
prim_alloc : bool; |
prim_native_name : string; |
prim_native_repr_args : native_repr list; |
prim_native_repr_res : native_repr; |
}
val simple : name:string -> arity:int -> alloc:bool -> description
val make : name:string -> alloc:bool -> native_name:string ->
native_repr_args:native_repr list -> native_repr_res:native_repr -> description
val parse_declaration : Parsetree.value_description -> native_repr_args:native_repr list -> native_repr_res:native_repr -> description
val print : description -> Outcometree.out_val_decl -> Outcometree.out_val_decl
val native_name : description -> string
val byte_name : description -> string
val native_name_is_external : description -> bool
native_name_is_externa
returns true
iff the native_name
for the given primitive identifies that the primitive is not implemented in the compiler itself.
exception Error of Location.t * error