public unsafe static void SetByte(Union *ptr, uint index, byte v) => ((byte *)ptr)[index] = v;
public unsafe static byte ByteAt(Union *ptr, uint index) => ((byte *)ptr)[index];