-- in.cue --
#simple: {
  peso: *1|int
  edad: *2|int
}

// Second struct is not considered closed, as expected
good: #simple & {
  peso: 4
}


#complex: {
  things: [string]: #simple
}

// Still, no closedness issue in the second struct
#many: #complex & {
  things: hola: peso: 2
  things: sol: peso: 3
}

// Inner struct in second struct IS considered closed: why?
bad: #many  & {
  things: hola: peso: 2
}

// non-definition equivalent
many: #complex & {
  things: hola: peso: 2
  things: sol: peso: 3
}

// Now inner struct on second struct is NOT considered closed
notbad: many  & {
  things: hola: peso: 2
}
-- out/eval --
(struct){
  #simple: (#struct){
    peso: (int){ |(*(int){ 1 }, (int){ int }) }
    edad: (int){ |(*(int){ 2 }, (int){ int }) }
  }
  good: (#struct){
    peso: (int){ 4 }
    edad: (int){ |(*(int){ 2 }, (int){ int }) }
  }
  #complex: (#struct){
    things: (#struct){
    }
  }
  #many: (#struct){
    things: (#struct){
      hola: (#struct){
        peso: (int){ 2 }
        edad: (int){ |(*(int){ 2 }, (int){ int }) }
      }
      sol: (#struct){
        peso: (int){ 3 }
        edad: (int){ |(*(int){ 2 }, (int){ int }) }
      }
    }
  }
  bad: (#struct){
    things: (#struct){
      hola: (#struct){
        peso: (int){ 2 }
        edad: (int){ |(*(int){ 2 }, (int){ int }) }
      }
      sol: (#struct){
        peso: (int){ 3 }
        edad: (int){ |(*(int){ 2 }, (int){ int }) }
      }
    }
  }
  many: (#struct){
    things: (#struct){
      hola: (#struct){
        peso: (int){ 2 }
        edad: (int){ |(*(int){ 2 }, (int){ int }) }
      }
      sol: (#struct){
        peso: (int){ 3 }
        edad: (int){ |(*(int){ 2 }, (int){ int }) }
      }
    }
  }
  notbad: (#struct){
    things: (#struct){
      hola: (#struct){
        peso: (int){ 2 }
        edad: (int){ |(*(int){ 2 }, (int){ int }) }
      }
      sol: (#struct){
        peso: (int){ 3 }
        edad: (int){ |(*(int){ 2 }, (int){ int }) }
      }
    }
  }
}
-- out/compile --
--- in.cue
{
  #simple: {
    peso: (*1|int)
    edad: (*2|int)
  }
  good: (〈0;#simple〉 & {
    peso: 4
  })
  #complex: {
    things: {
      [string]: 〈2;#simple〉
    }
  }
  #many: (〈0;#complex〉 & {
    things: {
      hola: {
        peso: 2
      }
    }
    things: {
      sol: {
        peso: 3
      }
    }
  })
  bad: (〈0;#many〉 & {
    things: {
      hola: {
        peso: 2
      }
    }
  })
  many: (〈0;#complex〉 & {
    things: {
      hola: {
        peso: 2
      }
    }
    things: {
      sol: {
        peso: 3
      }
    }
  })
  notbad: (〈0;many〉 & {
    things: {
      hola: {
        peso: 2
      }
    }
  })
}
