-- in.cue --
a: 1
b: a + 1
d: {
	x: _
	y: b + x
}
e: d & {
	x: 5
}
f: {
	a: "foo-bar": 3
	b: a."foo-bar"
}
g: {
	a: "foo-bar": c: 3
	b: a."foo-bar".c
}
-- out/eval/stats --
Leaks:  0
Freed:  18
Reused: 13
Allocs: 5
Retain: 0

Unifications: 18
Conjuncts:    27
Disjuncts:    18
-- out/eval --
(struct){
  a: (int){ 1 }
  b: (int){ 2 }
  d: (struct){
    x: (_){ _ }
    y: (_|_){
      // [incomplete] d.y: non-concrete value _ in operand to +:
      //     ./in.cue:5:5
      //     ./in.cue:4:5
    }
  }
  e: (struct){
    x: (int){ 5 }
    y: (int){ 7 }
  }
  f: (struct){
    a: (struct){
      "foo-bar": (int){ 3 }
    }
    b: (int){ 3 }
  }
  g: (struct){
    a: (struct){
      "foo-bar": (struct){
        c: (int){ 3 }
      }
    }
    b: (int){ 3 }
  }
}
-- out/compile --
--- in.cue
{
  a: 1
  b: (〈0;a〉 + 1)
  d: {
    x: _
    y: (〈1;b〉 + 〈0;x〉)
  }
  e: (〈0;d〉 & {
    x: 5
  })
  f: {
    a: {
      "foo-bar": 3
    }
    b: 〈0;a〉."foo-bar"
  }
  g: {
    a: {
      "foo-bar": {
        c: 3
      }
    }
    b: 〈0;a〉."foo-bar".c
  }
}
