-- in.cue --
x0: 5
x1: b5 & 30

b0: <x0 & >0
b1: b0 & int
b2: int & <5.5
b3: <10 & <=5
b4: >=20 & >20
b5: >=21 & >20
b6: int & >5 & <= 6

simplifyExpr: {
    less1: <(<3)
    less2: <(<=3)
    less3: <=(<3)
    less4: <=(<=3)
    less5: <(!=3)
    less6: <=(!=3)

    gtr1: >(>3)
    gtr2: >(>=3)
    gtr3: >=(>3)
    gtr4: >=(>=3)
    gtr5: >(!=3)
    gtr6: >=(!=3)

    lg1: <(>3)
    lg2: <(>=3)
    lg3: <=(>3)
    lg4: <=(>=3)

    gl1: >(<3)
    gl2: >(<=3)
    gl3: >=(<3)
    gl4: >=(<=3)

    ne1: !=(!=3)
    ne2: !=(<3)
    ne3: !=(<=3)
    ne4: !=(>3)
    ne5: !=(>=3)

    s: string
    n: number
    i: int
    f: float
    b: bytes
    basic1: <(i)
    basic2: >(n)
    basic3: >=(s)
    basic4: <=(f)
    basic5: <=(b)

    // Do NOT interpret this the same as `!= type`.
    bne1: !=(s)
    bne2: !=(n)
    bne3: !=(n)
    bne4: !=(i)
    bne5: !=(b)

    e1: <(=~"foo")
    e2: >(null)
}

-- out/eval --
Errors:
simplifyExpr.e2: cannot use null for bound >:
    ./in.cue:62:11

Result:
(_|_){
  // [eval]
  x0: (int){ 5 }
  x1: (int){ 30 }
  b0: (number){ &(>0, <5) }
  b1: (int){ &(>0, <5, int) }
  b2: (int){ &(<5.5, int) }
  b3: (number){ <=5 }
  b4: (number){ >20 }
  b5: (number){ >=21 }
  b6: (int){ 6 }
  simplifyExpr: (_|_){
    // [eval]
    less1: (number){ <3 }
    less2: (number){ <3 }
    less3: (number){ <3 }
    less4: (number){ <=3 }
    less5: (number){ number }
    less6: (number){ number }
    gtr1: (number){ >3 }
    gtr2: (number){ >3 }
    gtr3: (number){ >3 }
    gtr4: (number){ >=3 }
    gtr5: (number){ number }
    gtr6: (number){ number }
    lg1: (number){ number }
    lg2: (number){ number }
    lg3: (number){ number }
    lg4: (number){ number }
    gl1: (number){ number }
    gl2: (number){ number }
    gl3: (number){ number }
    gl4: (number){ number }
    ne1: (int){ 3 }
    ne2: (number){ >=3 }
    ne3: (number){ >3 }
    ne4: (number){ <=3 }
    ne5: (number){ <3 }
    s: (string){ string }
    n: (number){ number }
    i: (int){ int }
    f: (float){ float }
    b: (bytes){ bytes }
    basic1: (int){ int }
    basic2: (number){ number }
    basic3: (string){ string }
    basic4: (float){ float }
    basic5: (bytes){ bytes }
    bne1: (_|_){
      // [incomplete] simplifyExpr.bne1: non-concrete value s for bound !=:
      //     ./in.cue:55:11
    }
    bne2: (_|_){
      // [incomplete] simplifyExpr.bne2: non-concrete value n for bound !=:
      //     ./in.cue:56:11
    }
    bne3: (_|_){
      // [incomplete] simplifyExpr.bne3: non-concrete value n for bound !=:
      //     ./in.cue:57:11
    }
    bne4: (_|_){
      // [incomplete] simplifyExpr.bne4: non-concrete value i for bound !=:
      //     ./in.cue:58:11
    }
    bne5: (_|_){
      // [incomplete] simplifyExpr.bne5: non-concrete value b for bound !=:
      //     ./in.cue:59:11
    }
    e1: (_|_){
      // [incomplete] simplifyExpr.e1: non-concrete value =~"foo" for bound <:
      //     ./in.cue:61:9
    }
    e2: (_|_){
      // [eval] simplifyExpr.e2: cannot use null for bound >:
      //     ./in.cue:62:11
    }
  }
}
-- out/compile --
--- in.cue
{
  x0: 5
  x1: (〈0;b5〉 & 30)
  b0: (<〈0;x0〉 & >0)
  b1: (〈0;b0〉 & int)
  b2: (int & <5.5)
  b3: (<10 & <=5)
  b4: (>=20 & >20)
  b5: (>=21 & >20)
  b6: ((int & >5) & <=6)
  simplifyExpr: {
    less1: <<3
    less2: <<=3
    less3: <=<3
    less4: <=<=3
    less5: <!=3
    less6: <=!=3
    gtr1: >>3
    gtr2: >>=3
    gtr3: >=>3
    gtr4: >=>=3
    gtr5: >!=3
    gtr6: >=!=3
    lg1: <>3
    lg2: <>=3
    lg3: <=>3
    lg4: <=>=3
    gl1: ><3
    gl2: ><=3
    gl3: >=<3
    gl4: >=<=3
    ne1: !=!=3
    ne2: !=<3
    ne3: !=<=3
    ne4: !=>3
    ne5: !=>=3
    s: string
    n: number
    i: int
    f: float
    b: bytes
    basic1: <〈0;i〉
    basic2: >〈0;n〉
    basic3: >=〈0;s〉
    basic4: <=〈0;f〉
    basic5: <=〈0;b〉
    bne1: !=〈0;s〉
    bne2: !=〈0;n〉
    bne3: !=〈0;n〉
    bne4: !=〈0;i〉
    bne5: !=〈0;b〉
    e1: <=~"foo"
    e2: >null
  }
}
