On Mon, 9 Nov 2009, Daniel Bünzli wrote: > Tuples and records are represented the same way. However when it comes > to records with only floats fields we get a special unboxed > representation. > > Why don't we get that for tuples of floats only ? Because tuples are generic data types. Access to records and arrays are special cased- in the record case, because the compiler knows the type of the record, in the array case because array access is via C code which handles the special case. But the compiler needs to be able to compile code with generic tuple accesses, like: let third_of_four (_, _, x, _) -> x;; Fixing this would require a major rearchitecting and rewrite of not only the compiler, but also the garbage collector, the run time, and all the C bindings that have been written. Brian