Did you mean that the primitive would have type int * int -> Int.int and that it (the C code) would do the allocation? The problem then is what should it do if it runs out of space?