-- in.cue --
#A: {
	a:      "foo"
	"\(a)": 3
}
#B: a: b: {
	c: string
	d: 2
}
#C: a: b: {
	c: *"d" | string
	(c): 2
}

x: #B & #C

-- out/eval/stats --
Leaks:  0
Freed:  23
Reused: 16
Allocs: 7
Retain: 1

Unifications: 19
Conjuncts:    29
Disjuncts:    23
-- out/eval --
(struct){
  #A: (#struct){
    a: (string){ "foo" }
    foo: (int){ 3 }
  }
  #B: (#struct){
    a: (#struct){
      b: (#struct){
        c: (string){ string }
        d: (int){ 2 }
      }
    }
  }
  #C: (#struct){
    a: (#struct){
      b: (#struct){
        c: (string){ |(*(string){ "d" }, (string){ string }) }
        d: (int){ 2 }
      }
    }
  }
  x: (#struct){
    a: (#struct){
      b: (#struct){
        c: (string){ |(*(string){ "d" }, (string){ string }) }
        d: (int){ 2 }
      }
    }
  }
}
-- out/compile --
--- in.cue
{
  #A: {
    a: "foo"
    "\(〈0;a〉)": 3
  }
  #B: {
    a: {
      b: {
        c: string
        d: 2
      }
    }
  }
  #C: {
    a: {
      b: {
        c: (*"d"|string)
        〈0;c〉: 2
      }
    }
  }
  x: (〈0;#B〉 & 〈0;#C〉)
}
