Erik de Castro Lopo wrote:
 b) caml_copy_nativeint creates a boxed native int (either Int32.t
   or Int64.t) not an unboxed Ocaml int. To create an unboxed
   Ocaml int, Val_int() is the correct macro.

caml_copy_nativeint returns a element of the OCaml type 'nativeint':
  http://caml.inria.fr/pub/docs/manual-ocaml/libref/Nativeint.html

The caml_copy_* documentation:
  http://caml.inria.fr/pub/docs/manual-ocaml/manual032.html#htoc238