-- in.cue -- #A: { a: string } #B: { b: string } #X: #A | #B l: [...#X] l: [ {b: "bar"}, ] -- out/eval/stats -- Leaks: 0 Freed: 17 Reused: 12 Allocs: 5 Retain: 0 Unifications: 13 Conjuncts: 25 Disjuncts: 17 -- out/eval -- (struct){ #A: (#struct){ a: (string){ string } } #B: (#struct){ b: (string){ string } } #X: (#struct){ |((#struct){ a: (string){ string } }, (#struct){ b: (string){ string } }) } l: (#list){ 0: (#struct){ b: (string){ "bar" } } } } -- out/compile -- --- in.cue { #A: { a: string } #B: { b: string } #X: (〈0;#A〉|〈0;#B〉) l: [ ...〈1;#X〉, ] l: [ { b: "bar" }, ] }