+ I like "inheritance" but that doesn't allow the size of the whole to
+ be known in advance.
+ I need a way to talk about which instance is active, even if the value
+ isn't stored. So Pascal-like variant records are good.
+ Maybe a struct could be declared as 'extensible' and other structs
+ could 'extend', and it literally makes it bigger
+ struct a extensible {x1:int}
+ struct b extends a {y1:int}
+ struct c extends a extensible {y2:int}
+ struct d extends c {z1:int}
+
+ now 'a' has room for x1, (y2 and z1) or y1
+ Which is used depends on context .. or by assertion on content.
+ So extensions can set values for existing fields
+ struct z extends a {x1=4; string c}
+
+ Syntax is a bit clumsy. Do I need "extensible"??
+
+
+