Having looked through some of the ocaml runtime's code, I have a question regarding the Double_array block tag. Why not use a single tag for all block content that doesn't contain pointers instead? This would allow optimization of all cases where no pointers are involved, including float tuples, records with ints, bools and floats etc.

The only use-case I've seen so far for Double_array tags is for polymorphic comparison ie. we need the type information to parse doubles correctly. However, the only default comparison that's valid on an array of anything is an equality comparison, which is easily doable without type information. Therefore, I'm confused as to why this is necessary.

Thanks in advance for any answers
Yotam Barnoy