Seriously consider fixing the `size_of` integers to have proper byte granularity.
Currently any integer and boolean and () have a size_of 8, which is the size of a register in the FuelVM. I think this was originally chosen to keep memory operations simple -- especially because lw and sw are word oriented.
This is confusing and less useful -- often we actually need size_of::<u8>() to be 1.
I think the compiler is mature enough now to 'do it properly' for those types, especially integers. (I guess bool and unit could remain at 8.)
But there may be many assumptions throughout the compiler and the standard libraries which need to be handled or may still prevent this change, especially when it comes to the layout of arrays (currently smaller integer arrays are padded/gapped) or other data structures (it makes sense to keep structs word aligned).
I'd love to give this a go.