...
1-- in.cue --
2package x
3
4#a: (#c | #d) & {
5 name: string
6}
7
8#a1: #c & {
9 name: string
10}
11
12#a2: #d & {
13 name: string
14}
15
16#c: {
17 name: string
18 age: int
19}
20
21#d: {
22 name: string
23 address: string
24}
25-- out/eval/stats --
26Leaks: 0
27Freed: 20
28Reused: 14
29Allocs: 6
30Retain: 2
31
32Unifications: 18
33Conjuncts: 31
34Disjuncts: 22
35-- out/eval --
36(struct){
37 #a: (#struct){ |((#struct){
38 name: (string){ string }
39 age: (int){ int }
40 }, (#struct){
41 name: (string){ string }
42 address: (string){ string }
43 }) }
44 #a1: (#struct){
45 name: (string){ string }
46 age: (int){ int }
47 }
48 #a2: (#struct){
49 name: (string){ string }
50 address: (string){ string }
51 }
52 #c: (#struct){
53 name: (string){ string }
54 age: (int){ int }
55 }
56 #d: (#struct){
57 name: (string){ string }
58 address: (string){ string }
59 }
60}
61-- out/compile --
62--- in.cue
63{
64 #a: ((〈0;#c〉|〈0;#d〉) & {
65 name: string
66 })
67 #a1: (〈0;#c〉 & {
68 name: string
69 })
70 #a2: (〈0;#d〉 & {
71 name: string
72 })
73 #c: {
74 name: string
75 age: int
76 }
77 #d: {
78 name: string
79 address: string
80 }
81}
View as plain text