I think the whole idea is a good one; +1. Bikeshed: I'm not sure if `repr(C)` is the right notation - you might want a defined layout for other reasons - maybe `repr(fixed)`?