Melange_compiler_libs.Primitive
type native_repr =
| Same_as_ocaml_repr
| Unboxed_float
| Unboxed_integer of boxed_integer
| Untagged_immediate
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 equal_boxed_integer : boxed_integer -> boxed_integer -> bool
val equal_native_repr : native_repr -> native_repr -> bool
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