Provide Protocol.derive/3
Migrate from size to byte_size and tuple_size