s ::= fn(t:: Type) Type { struct { c :: t = 7 as t; m: t; } } main ::= fn() { o: s(int); x := o["m"]; y ::= o["c"]; }