Isn't there a discrepancy between the comment here, which says `raw_pointer -> Obj.t array -> unit`, and the OCaml interface which as `raw_pointer -> (Obj.t array * int) -> unit`?

(I'm just trying to make sense of the code to understand the `Val_unit` initialization problem. On a different note orthogonal to this patch, why aren't the OCaml-exposed functions annotated with `CAMLprim`?)