#name: disjunctions of lists
#evalFull
-- in.cue --
l: *[ int, int] | [ string, string]

l1: ["a", "b"]
l2: l & ["c", "d"]
-- out/def --
l: *[int, int] | [string, string]
l1: ["a", "b"]
l2: ["c", "d"]
-- out/legacy-debug --
<0>{l: [int,int], l1: ["a","b"], l2: ["c","d"]}
-- out/compile --
--- in.cue
{
  l: (*[
    int,
    int,
  ]|[
    string,
    string,
  ])
  l1: [
    "a",
    "b",
  ]
  l2: (〈0;l〉 & [
    "c",
    "d",
  ])
}
-- out/eval/stats --
Leaks:  0
Freed:  18
Reused: 13
Allocs: 5
Retain: 0

Unifications: 14
Conjuncts:    24
Disjuncts:    18
-- out/eval --
(struct){
  l: (list){ |(*(#list){
      0: (int){ int }
      1: (int){ int }
    }, (#list){
      0: (string){ string }
      1: (string){ string }
    }) }
  l1: (#list){
    0: (string){ "a" }
    1: (string){ "b" }
  }
  l2: (#list){
    0: (string){ "c" }
    1: (string){ "d" }
  }
}
