-- in.cue --
_Q : [{pos: 0},{pos: 1}]

a: [rn=string]:  _Q[0:len(a[rn])]
a: ben: [{}]

b: [rn=string]: _Q[0:1]
b: ben: [{}]

c: [rn=string]: [...{l: len(a[rn])}]
c: ben: [{}]

#d: [rn=string]:  [...{pos:uint}] & _Q[0:len(#d[rn])]
#d: ben: [{}]

d: #d

e: [rn=string]:  _Q[0:len(a[rn])+1]
e: ben: [{}, ...]

f: [rn=string]:  _Q[0:len(a[rn])+1]
f: ben: [{}]

g: [rn=string]:  _Q[0:len(a[rn])]
g: ben: [{}, {}]

-- out/eval --
Errors:
f.ben: incompatible list lengths (1 and 2)
g.ben: incompatible list lengths (1 and 2)

Result:
(_|_){
  // [eval]
  _Q: (#list){
    0: (struct){
      pos: (int){ 0 }
    }
    1: (struct){
      pos: (int){ 1 }
    }
  }
  a: (struct){
    ben: (#list){
      0: (struct){
        pos: (int){ 0 }
      }
    }
  }
  b: (struct){
    ben: (#list){
      0: (struct){
        pos: (int){ 0 }
      }
    }
  }
  c: (struct){
    ben: (#list){
      0: (struct){
        l: (int){ 1 }
      }
    }
  }
  #d: (#struct){
    ben: (#list){
      0: (#struct){
        pos: (int){ 0 }
      }
    }
  }
  d: (#struct){
    ben: (#list){
      0: (#struct){
        pos: (int){ 0 }
      }
    }
  }
  e: (struct){
    ben: (#list){
      0: (struct){
        pos: (int){ 0 }
      }
      1: (struct){
        pos: (int){ 1 }
      }
    }
  }
  f: (_|_){
    // [eval]
    ben: (_|_){
      // [eval] f.ben: incompatible list lengths (1 and 2)
      0: (struct){
        pos: (int){ 0 }
      }
      1: (struct){
        pos: (int){ 1 }
      }
    }
  }
  g: (_|_){
    // [eval]
    ben: (_|_){
      // [eval] g.ben: incompatible list lengths (1 and 2)
      0: (struct){
        pos: (int){ 0 }
      }
      1: (struct){
      }
    }
  }
}
-- out/compile --
--- in.cue
{
  _Q: [
    {
      pos: 0
    },
    {
      pos: 1
    },
  ]
  a: {
    [string]: 〈1;_Q〉[0:len(〈1;a〉[〈0;-〉])]
  }
  a: {
    ben: [
      {},
    ]
  }
  b: {
    [string]: 〈1;_Q〉[0:1]
  }
  b: {
    ben: [
      {},
    ]
  }
  c: {
    [string]: [
      ...{
        l: len(〈2;a〉[〈1;-〉])
      },
    ]
  }
  c: {
    ben: [
      {},
    ]
  }
  #d: {
    [string]: ([
      ...{
        pos: &(int, >=0)
      },
    ] & 〈1;_Q〉[0:len(〈1;#d〉[〈0;-〉])])
  }
  #d: {
    ben: [
      {},
    ]
  }
  d: 〈0;#d〉
  e: {
    [string]: 〈1;_Q〉[0:(len(〈1;a〉[〈0;-〉]) + 1)]
  }
  e: {
    ben: [
      {},
      ...,
    ]
  }
  f: {
    [string]: 〈1;_Q〉[0:(len(〈1;a〉[〈0;-〉]) + 1)]
  }
  f: {
    ben: [
      {},
    ]
  }
  g: {
    [string]: 〈1;_Q〉[0:len(〈1;a〉[〈0;-〉])]
  }
  g: {
    ben: [
      {},
      {},
    ]
  }
}
