Special array index to replace b[...] with *b
Access to a F* (or Steel) reference r is currently extracted to C as r[0], both for reading and writing. Currently, the only way to produce *r instead has been to use the special operators in LowStar.BufferOps, but this only works with Low* buffers.
This PR proposes an alternative way: I introduce a new constant, C._zero_for_deref, defined as 0, and I change C code generation from r[C._zero_for_deref] to *r. This avoids adding a new node in the Karamel source AST.
I have an Everest green (project-everest/everest@35b47bb1ac32eb01f6f507dc65d00ebe0e5609aa) with a companion F* commit (FStarLang/FStar@984a531b50b07794d4edd91bc47ccaaa13546796) that enacts such code generation improvement for F* and Steel references, for which I'll open a F* PR shortly.