#name: self-reference cycles conflicts with strings
#evalPartial
-- in.cue --
a: {
	x: y + "?"
	y: x + "!"
}
a: x: "hey"
-- out/def --
a: {
	x: _|_ // conflicting values "hey!?" and "hey"
	y: "hey!"
}
-- out/legacy-debug --
<0>{a: <1>{x: _|_(("hey!?" & "hey"):conflicting values "hey!?" and "hey"), y: "hey!"}}
-- out/compile --
--- in.cue
{
  a: {
    x: (〈0;y〉 + "?")
    y: (〈0;x〉 + "!")
  }
  a: {
    x: "hey"
  }
}
-- out/eval/stats --
Leaks:  0
Freed:  4
Reused: 0
Allocs: 4
Retain: 1

Unifications: 4
Conjuncts:    5
Disjuncts:    5
-- out/eval --
Errors:
a.x: conflicting values "hey!?" and "hey":
    ./in.cue:2:5
    ./in.cue:5:7

Result:
(_|_){
  // [eval]
  a: (_|_){
    // [eval]
    x: (_|_){
      // [eval] a.x: conflicting values "hey!?" and "hey":
      //     ./in.cue:2:5
      //     ./in.cue:5:7
    }
    y: (string){ "hey!" }
  }
}
