Interaction between defaults, embedding and disjunctions.

// TODO: at the moment, using a default will select it.
-- in.cue --
x: {
    // All of these resolve to *2 | 3
    m1: (*1 | (*2 | 3)) & (>=2 & <=3)
    m2: (*1 | (*2 | 3)) & (2 | 3)
    m3: (*1 | *(*2 | 3)) & (2 | 3)
}
y1: x & {
    {m4: x.m1+x.m2+x.m3}
}
y2: {
    x
    {m4: y2.m1+y2.m2+y2.m3}
}
Y=y3: {
    x
    {m4: Y.m1+Y.m2+Y.m3}
}
y4: x & {
    {m4: y4.m1+y4.m2+y4.m3}
}

// Second disjunct in embedding is not possible because of previous declaration
// of `b`, so it should be resolved to {a: 1}.
b: (*"a" | "b") | "c"
{a: b} | {b: int}

-- out/eval --
(struct){
  x: (struct){
    m1: (int){ |(*(int){ 2 }, (int){ 3 }) }
    m2: (int){ |(*(int){ 2 }, (int){ 3 }) }
    m3: (int){ |(*(int){ 2 }, (int){ 3 }) }
  }
  y1: (struct){
    m1: (int){ |(*(int){ 2 }, (int){ 3 }) }
    m2: (int){ |(*(int){ 2 }, (int){ 3 }) }
    m3: (int){ |(*(int){ 2 }, (int){ 3 }) }
    m4: (int){ 6 }
  }
  y2: (struct){
    m1: (int){ |(*(int){ 2 }, (int){ 3 }) }
    m2: (int){ |(*(int){ 2 }, (int){ 3 }) }
    m3: (int){ |(*(int){ 2 }, (int){ 3 }) }
    m4: (int){ 6 }
  }
  y3: (struct){
    m1: (int){ |(*(int){ 2 }, (int){ 3 }) }
    m2: (int){ |(*(int){ 2 }, (int){ 3 }) }
    m3: (int){ |(*(int){ 2 }, (int){ 3 }) }
    m4: (int){ 6 }
  }
  y4: (struct){
    m1: (int){ |(*(int){ 2 }, (int){ 3 }) }
    m2: (int){ |(*(int){ 2 }, (int){ 3 }) }
    m3: (int){ |(*(int){ 2 }, (int){ 3 }) }
    m4: (int){ 6 }
  }
  b: (string){ |(*(string){ "a" }, (string){ "b" }, (string){ "c" }) }
  a: (string){ |(*(string){ "a" }, (string){ "b" }, (string){ "c" }) }
}
-- out/compile --
--- in.cue
{
  x: {
    m1: ((*1|(*2|3)) & (>=2 & <=3))
    m2: ((*1|(*2|3)) & (2|3))
    m3: ((*1|*(*2|3)) & (2|3))
  }
  y1: (〈0;x〉 & {
    {
      m4: ((〈2;x〉.m1 + 〈2;x〉.m2) + 〈2;x〉.m3)
    }
  })
  y2: {
    〈1;x〉
    {
      m4: ((〈2;y2〉.m1 + 〈2;y2〉.m2) + 〈2;y2〉.m3)
    }
  }
  y3: {
    〈1;x〉
    {
      m4: ((〈2;y3〉.m1 + 〈2;y3〉.m2) + 〈2;y3〉.m3)
    }
  }
  y4: (〈0;x〉 & {
    {
      m4: ((〈2;y4〉.m1 + 〈2;y4〉.m2) + 〈2;y4〉.m3)
    }
  })
  b: ((*"a"|"b")|"c")
  ({
    a: 〈1;b〉
  }|{
    b: int
  })
}
