#name: combined definitions
#evalPartial
-- in.cue --
// Allow combining of structs within a definition
#D1: {
	env: a: "A"
	env: b: "B"
	#def: {a: "A"}
	#def: {b: "B"}
}
d1: #D1 & {env: c: "C"}
#D2: {
	a: int
}
#D2: {
	b: int
}
#D3: {
	env: a: "A"
}
#D3: {
	env: b: "B"
}
#D4: {
	env: #DC
	env: b: int
}
#DC: {a: int}
-- out/compile --
--- in.cue
{
  #D1: {
    env: {
      a: "A"
    }
    env: {
      b: "B"
    }
    #def: {
      a: "A"
    }
    #def: {
      b: "B"
    }
  }
  d1: (〈0;#D1〉 & {
    env: {
      c: "C"
    }
  })
  #D2: {
    a: int
  }
  #D2: {
    b: int
  }
  #D3: {
    env: {
      a: "A"
    }
  }
  #D3: {
    env: {
      b: "B"
    }
  }
  #D4: {
    env: 〈1;#DC〉
    env: {
      b: int
    }
  }
  #DC: {
    a: int
  }
}
