No boxing

We can't completely leave it to the users. The calls to `__data` are generated on the client side. What we could do though, is not define a common record supertype at all. Then we could leave the whole implementation entirely to the client.