How about adding a byte buffer concept alongside with ranges? I'm thinking an API similar to Netty's ByteBuf but using D's compile-time capabilities instead. These would be valid ranges as well but offer direct byte access on top.
It would be great if the reflection info could be outputted to a separate file for those cases where its only needed during program initialization or used by external tools.
I want more than empty, front and popFront to manipulate byte buffers with high performance.
I'm thinking about reading data structures, performing bit conversion, and extracting primitive values from untyped byte arrays. Going as far as to reuse the array's memory for the values being read which isn't possible with ranges.