We don't allow layouts to be under-specified for now. E.g., a Bool type can't be larger than 1 bit. This design simplifies C code generation a lot, and also makes sense, as you really don't need more space than necessary to store anything. Variant tags are not currently checked for under-specification. They can be larger than necessary; this is just a thing we haven't implemented in the typechecker, and should be relatively easy to add.
We don't allow layouts to be under-specified for now. E.g., a Bool type can't be larger than 1 bit. This design simplifies C code generation a lot, and also makes sense, as you really don't need more space than necessary to store anything. Variant tags are not currently checked for under-specification. They can be larger than necessary; this is just a thing we haven't implemented in the typechecker, and should be relatively easy to add.