-- in.cue --
#E: {
	a: {b: int}
}

#S: {
	#E
	a: {c: int}
	b: 3
}

// adding a field to a nested struct that is closed.
#e1: #S & {a: d: 4}

// literal struct not closed until after unification.
#v1: #S & {a: c: 4}
-- out/compile --
--- in.cue
{
  #E: {
    a: {
      b: int
    }
  }
  #S: {
    〈1;#E〉
    a: {
      c: int
    }
    b: 3
  }
  #e1: (〈0;#S〉 & {
    a: {
      d: 4
    }
  })
  #v1: (〈0;#S〉 & {
    a: {
      c: 4
    }
  })
}
