| -- in.cue -- |
| range1: { |
| min: *1 | int |
| range: >min |
| range: 8 |
| } |
| range2: { |
| min: *1 | int |
| max: int & >min |
| } |
| rg: range2 & { |
| // min: 1 |
| max: 8 |
| } |
| #Size : { |
| res: uint | * 0 |
| num: > res | *(1 + res) |
| max: > num | *num |
| } |
| |
| a: #Size & { |
| num: 5 |
| } |
| -- out/eval -- |
| (struct){ |
| range1: (struct){ |
| min: (int){ |(*(int){ 1 }, (int){ int }) } |
| range: (int){ 8 } |
| } |
| range2: (struct){ |
| min: (int){ |(*(int){ 1 }, (int){ int }) } |
| max: (int){ &(>1, int) } |
| } |
| rg: (struct){ |
| min: (int){ |(*(int){ 1 }, (int){ int }) } |
| max: (int){ 8 } |
| } |
| #Size: (#struct){ |
| res: (int){ |(*(int){ 0 }, (int){ &(>=0, int) }) } |
| num: (number){ |(*(int){ 1 }, (number){ >0 }) } |
| max: (number){ |(*(int){ 1 }, (number){ >0 }, (number){ >1 }) } |
| } |
| a: (#struct){ |
| res: (int){ |(*(int){ 0 }, (int){ &(>=0, int) }) } |
| num: (int){ 5 } |
| max: (number){ |((int){ 5 }, (number){ >5 }) } |
| } |
| } |
| -- out/compile -- |
| --- in.cue |
| { |
| range1: { |
| min: (*1|int) |
| range: >〈0;min〉 |
| range: 8 |
| } |
| range2: { |
| min: (*1|int) |
| max: (int & >〈0;min〉) |
| } |
| rg: (〈0;range2〉 & { |
| max: 8 |
| }) |
| #Size: { |
| res: (&(int, >=0)|*0) |
| num: (>〈0;res〉|*(1 + 〈0;res〉)) |
| max: (>〈0;num〉|*〈0;num〉) |
| } |
| a: (〈0;#Size〉 & { |
| num: 5 |
| }) |
| } |