-- in.cue -- package main #d1: { as: [...string] #c: [ #f1 & { "as": ["go"] + as }, ] } #d2: { p: *"." | string #c: [ #f2 & { from: #d1 & { as: [p] } }, ] } #c1: { #c: [...#o] _ ... } #o: #f1 | #f2 #f1: { do: "f1" as: [...string] } #f2: { do: "f2" from: #c1 } -- out/eval/stats -- Leaks: 9 Freed: 55 Reused: 41 Allocs: 23 Retain: 14 Unifications: 52 Conjuncts: 120 Disjuncts: 66 -- out/eval -- (struct){ #d1: (#struct){ as: (list){ } #c: (#list){ 0: (#struct){ do: (string){ "f1" } as: (#list){ 0: (string){ "go" } } } } } #d2: (#struct){ p: (string){ |(*(string){ "." }, (string){ string }) } #c: (#list){ 0: (#struct){ do: (string){ "f2" } from: (#struct){ #c: (#list){ 0: (#struct){ do: (string){ "f1" } as: (#list){ 0: (string){ "go" } 1: (string){ |(*(string){ "." }, (string){ string }) } } } } as: (#list){ 0: (string){ |(*(string){ "." }, (string){ string }) } } } } } } #c1: (_){ _ #c: (list){ } } #o: (#struct){ |((#struct){ do: (string){ "f1" } as: (list){ } }, (#struct){ do: (string){ "f2" } from: (_){ _ #c: (list){ } } }) } #f1: (#struct){ do: (string){ "f1" } as: (list){ } } #f2: (#struct){ do: (string){ "f2" } from: (_){ _ #c: (list){ } } } } -- out/compile -- --- in.cue { #d1: { as: [ ...string, ] #c: [ (〈2;#f1〉 & { as: ([ "go", ] + 〈2;as〉) }), ] } #d2: { p: (*"."|string) #c: [ (〈2;#f2〉 & { from: (〈3;#d1〉 & { as: [ 〈4;p〉, ] }) }), ] } #c1: { #c: [ ...〈2;#o〉, ] _ ... } #o: (〈0;#f1〉|〈0;#f2〉) #f1: { do: "f1" as: [ ...string, ] } #f2: { do: "f2" from: 〈1;#c1〉 } }