I don't think it is easily possible inside Caml, as the data representation is tightly bound to the runtime system, and it would be very delicate to change it.
It's obvious that avoiding pointer chasing, improving locality and reducing storage will in some cases improve performance considerably. I've found many discussions about unboxing, but I haven't seen any solutions that would satisfy high-performance-computing programmers, who would probably like to have better (i.e. fine-grained) control over memory layout (unboxing double arrays isn't enough). In C++ this is trivial, because C++ is just an abstraction of assembly code. To cut it short, could not we have basically the same affordances of C++ in ocaml by annotating type definitions to indicate where unboxing would be forced? Such annotations aren't a new idea in programming languages, specifically HPF was based largely on parallel storage annotations.Regards,
--
Eray Ozkural, PhD candidate. Comp. Sci. Dept., Bilkent University, Ankara